[SERVICE] Die Questkontrolle

02/26/2014 17:38 rollback#9766
Quote:
Originally Posted by AuRaBuG View Post
Funktioniert leider immernoch nicht, bekomme bei folgender Quest in VBox die Meldung: "syntax error: [string "start"]:11: <eof> expected near 'elseif'. farmmapwarp.quest:26: Error occured on compile farmmapwarp.quest :(:confused:


Würde mich über Hilfe verdammt freuen^^
kleiner tipp: weil ich öfters mal sehe, dass quests mit ae usw anstatt mit ä usw geschrieben werden --> In Notepad++ oben auf Kodierung --> ANSI und speichern. Dann werden auch die Umlaute Ingame richtig angezeigt
02/26/2014 17:51 AuRaBuG#9767
Ah ok danke :D Und hast du auch ne Idee wieso die nich angenommen wird die Quest?
02/26/2014 18:13 rollback#9768
Quote:
Originally Posted by AuRaBuG View Post
Ah ok danke :D Und hast du auch ne Idee wieso die nich angenommen wird die Quest?
paar tabs haben gefehlt.
habe auch noch ein bischen was geändert und so. texte ändern und ansi kodierung wirste wohl selber schaffen (bin aber nicht 100% sicher obs jetzt klappt, müsste aber)

achja: wenn du ne quest aus epvp kopierst dann mach am besten auch immer folgendes:
beim kopieren werden die tabs mit leerzeichen gemacht (was mehr speicher braucht)
kopier einen richtigen tab (strg+c) dann öffne in notepad++ das suchen/ersetzen fenster (strg+f) und geh auf ersetzen
in das obere feld machst du 4 leerzeichen, in das untere feld kopierst du den tab rein dann auf alle ersetzen drücken

hier die quest:

PHP Code:
quest farmmapwarp begin 
    state start begin 
        when 20095.chat
."Farmmap" begin 
            say_title
("Seon-Hae") 
            
say("") 
            
say("Sei gegruesst!") 
            
say("Bei mir kannst du dich in die Farmmap teleportieren.") 
            
say("Das geht allerdings erst ab Level 75.") 
            
say("Moechtest du darauf?") 
            
local s = select("Ja", "Nein") 
            if 
s == 2 then 
                
return 
            
end                           
            
if s == 1 then  
                say_title
("Seon-Hae") 
                
say("Möchtest du wirklich geportet werden?") 
                
local c = select("Ja", "Nein") 
                if 
c == 2 then
                    
return
                
end
                
if c == 1 and pc.get_level() < 75 then 
                    say
("Du kannst dort erst ab 75 hin.") 
                    return 
                
end
                
if c == 1 and pc.get_level() > 75 then
                    pc
.warp(12800, 17450)
                
end
            end
        end
    end
end 
02/26/2014 21:47 Tiger121282#9769
Weil noch keine Hilfe ging frage ich noch mal.
Wenn man Ingame ist kommen keine Ansagen.
Weiss jemand den Fehler?
Danke für die Hilfe bis jetzt, aber leider noch keine Lösung dabei.

Code:
quest tt begin 
    state start begin 
        when login begin 
            timer("eins", 60*15)  
        end 
        when eins.timer begin 
            chat("Hallo zusammen!") 
            chat("Vote täglich MIT ABSTIMMUNG und verdiene dir Coins!") 
            chat("") 
            chat("Das xxxxxx Team wünscht dir viel Spaß bei uns.") 
            timer("zwei", 60*30) 
        end 
        when zwei.timer begin 
            chat("Hallo zusammen!") 
            chat("Ein Gamemaster fragt dich nie nach deinen Logindaten!") 
            chat("Geklaute Items werden von uns nicht zurück erstattet!") 
            chat("") 
            chat("Das xxxxxx Team wünscht dir viel Spaß bei uns.") 
            timer("drei", 60*30) 
        end 
        when drei.timer begin 
            chat("Hallo zusammen!") 
            chat("www.xxxxxx.de - Homepage // www.xxxxxx.com - Forum") 
            chat("") 
            chat("Das xxxxxx Team wünscht euch viel Spaß bei uns") 
            timer("eins", 60*30) 
        end 
    end 
end
02/27/2014 16:28 discchanger#9770
Er gibt mir immer nur Ingame die Ursprünglichen Items der Truhe ins Inventar beim Öffnen -.-

Quote:
quest truhen_zero begin
state start begin
when login begin
pc.give_item2(50187)
set_state(truhen)
end
end
state truhen begin
when 50187.use begin
pc.give_item2("27003", 200)
pc.give_item2("27003", 200)
pc.give_item2("27003", 200)
pc.give_item2("27003", 200)
pc.give_item2("27003", 200)
pc.give_item2("27006", 200)
pc.give_item2("27006", 200)
pc.give_item2("71050" , 200)
pc.give_item2("72702", 1)
pc.give_item2("50052", 1)
pc.give_item2("50051" ,1)
pc.give_item2("70007", 1)
pc.give_item2("70038", 200)
pc.give_item2("70038", 200)
pc.give_item2("70038",200)
pc.give_item2("27112", 200)
pc.give_item2("50103", 200)
horse . advance ( )
pc.remove_item(50187, 1)
if pc.job == 0 then
pc . give_item2 ( "19" , 1 )
pc . give_item2 ( "3009" , 1 )
pc . give_item2 ( "11209" , 1 )
pc . give_item2 ( "12209" , 1 )
pc . give_item2 ( "13009" , 1 )
pc . give_item2 ( "14009" , 1 )
pc . give_item2 ( "15009" , 1 )
pc . give_item2 ( "16009" , 1 )
pc . give_item2 ( "17009" , 1 )
elseif pc.job == 1 then
pc . give_item2 ( "1009" , 1 )
pc . give_item2 ( "2009" , 1 )
pc . give_item2 ( "8000" , 200 )
pc . give_item2 ( "12349" , 1 )
pc . give_item2 ( "11409" , 1 )
pc . give_item2 ( "13009" , 1 )
pc . give_item2 ( "14009" , 1 )
pc . give_item2 ( "15009" , 1 )
pc . give_item2 ( "16009" , 1 )
pc . give_item2 ( "17009" , 1 )
elseif pc.job == 2 then
pc . give_item2 ( "19" , 1 )
pc . give_item2 ( "12489" , 1 )
pc . give_item2 ( "11609" , 1 )
pc . give_item2 ( "13009" , 1 )
pc . give_item2 ( "14009" , 1 )
pc . give_item2 ( "15009" , 1 )
pc . give_item2 ( "16009" , 1 )
pc . give_item2 ( "17009" , 1 )
elseif pc.job == 3 then
pc . give_item2 ( "5019" , 1 )
pc . give_item2 ( "7009" , 1 )
pc . give_item2 ( "12629" , 1 )
pc . give_item2 ( "11809" , 1 )
pc . give_item2 ( "13009" , 1 )
pc . give_item2 ( "14009" , 1 )
pc . give_item2 ( "15009" , 1 )
pc . give_item2 ( "16009" , 1 )
pc . give_item2 ( "17009" , 1 )
end
end
end
end
02/27/2014 18:17 .Delta#9771
Quote:
Originally Posted by Tiger121282 View Post
Weil noch keine Hilfe ging frage ich noch mal.
Wenn man Ingame ist kommen keine Ansagen.
Weiss jemand den Fehler?
Danke für die Hilfe bis jetzt, aber leider noch keine Lösung dabei.

Code:
quest tt begin 
    state start begin 
        when login begin 
            timer("eins", 60*15)  
        end 
        when eins.timer begin 
            chat("Hallo zusammen!") 
            chat("Vote täglich MIT ABSTIMMUNG und verdiene dir Coins!") 
            chat("") 
            chat("Das xxxxxx Team wünscht dir viel Spaß bei uns.") 
            timer("zwei", 60*30) 
        end 
        when zwei.timer begin 
            chat("Hallo zusammen!") 
            chat("Ein Gamemaster fragt dich nie nach deinen Logindaten!") 
            chat("Geklaute Items werden von uns nicht zurück erstattet!") 
            chat("") 
            chat("Das xxxxxx Team wünscht dir viel Spaß bei uns.") 
            timer("drei", 60*30) 
        end 
        when drei.timer begin 
            chat("Hallo zusammen!") 
            chat("www.xxxxxx.de - Homepage // www.xxxxxx.com - Forum") 
            chat("") 
            chat("Das xxxxxx Team wünscht euch viel Spaß bei uns") 
            timer("eins", 60*30) 
        end 
    end 
end
wenn du dich ausloggst, während der timer läuft, wird dieser beim erneuten login neu starten^^
that's why
02/27/2014 21:54 Tiger121282#9772
Quote:
Originally Posted by .Delta View Post
wenn du dich ausloggst, während der timer läuft, wird dieser beim erneuten login neu starten^^
that's why
Ich habe 45 min gewartet und es kamm keine Ankündigung.
02/28/2014 10:10 rollback#9773
Quote:
Originally Posted by .Weezy View Post
Weiß jemand warum das Item nicht anklickbar ist Quest fehlerhaft? am Item liegt es nicht Type ist auf 18 und habe es schon mit anderen Items getestet

PHP Code:
quest is_coins begin  
    state start begin  
        when 50026.
use begin  
            local accountid 
= mysql_query("SELECT * FROM player.player WHERE name='"..pc.get_name().."'","user","pw","player","ip")  
            
local coins = mysql_query("SELECT * FROM account.account WHERE id='"..accountid.account_id[1].."'","user","pw","account","ip")  
            
say_title("Coin Gutschein")  
            
say("Hallo "..pc.get_name()..".")  
            
say("Möchtest du diesen Gutschein")  
            
say("im Wert von 2000 Coins einlösen?")  
                
local s = select ("Ja","Nein")  
                    if 
s == 1 then  
                    local updatecoins 
= mysql_query("UPDATE account.account SET coins='"..coins.coins[1]+2000.."' WHERE id='"..accountid.account_id[1].."'","user","pw","account","ip")  
                    
chat("Deine Coins wurden dir erfolgreich gutgeschrieben.")  
                    
pc.remove_item(50026, 1)  
                
end  
                    
if s == 2 then  
                
return  
            
end  
        end  
    end  
end 
Probiers mal so:

PHP Code:
quest is_coins begin   
    state start begin   
        when 50026.
use begin   
            local accountid 
= mysql_query("SELECT * FROM player.player WHERE name='"..pc.get_name().."'","user","pw","player","ip")   
            
local coins = mysql_query("SELECT * FROM account.account WHERE id='"..accountid.account_id[1].."'","user","pw","account","ip")   
            
say_title("Coin Gutschein")   
            
say("Hallo "..pc.get_name()..".")   
            
say("Möchtest du diesen Gutschein")   
            
say("im Wert von 2000 Coins einlösen?")   
            
local s = select ("Ja","Nein")   
            if 
s == 1 then   
                local updatecoins 
= mysql_query("UPDATE account.account SET coins='"..coins.coins[1]+2000.."' WHERE id='"..accountid.account_id[1].."'","user","pw","account","ip")   
                
chat("Deine Coins wurden dir erfolgreich gutgeschrieben.")   
                
pc.remove_item(50026, 1)   
            
end   
            
if s == 2 then   
                
return   
            
end   
        end   
    end   
end 
02/28/2014 12:04 xMasi95#9774
Wenn man denn Oberork tötet sollte man eine Truhe bekommen
Und die Quest soll sich immer wieder wiederholen, sprich
Wenn ich ihn 5 mal hintereinander töte soll es auch 5 Truhen geben.


PHP Code:
quest pvm begin
    state start begin
        when login 
or levelup with pc.level <= 51 begin
            set_state
(information)
               
end
        end
    end
    
    state information begin
        when letter begin
            send_letter
("Oberork")
        
end

        when info 
or button begin
        say_title
("Oberork")
        
say("Toete einen Oberork")
        
say("und du kannst zwischen")
        
say("3 Items waehlen")
        
say("")
        
local s = select("Ja","Nein keine Zeit")
        if 
s == 2 then
                    say
("Hmm schade")
                    
clear_letter()
                    
set_state (start)
                  
        else
            
say("Okay los gehts!")
            
q.set_counter("Oberork", 1)
            
set_state(kill)
            
end
        end
    end
    
    state kill begin
        when letter begin
            send_letter
("Oberork")
        
end
    
        when info 
or button begin
            say_title
("Oberork")
            
say("Staus:")
            
say_reward("Du hast noch keinen Oberork getötet.")
        
end
        
        when 691.kill begin
            local count 
= pc.getqf("state") + 1
            
if count < 1 then
                pc
.setqf("state", count)
                
q.set_counter("Oberork", count)
            
end
            
if count == 1 then
             say_reward
("Oberork-Truhe")
                
pc . give_item2 ( "50070" , 1 ) 
                
clear_letter()
                
set_state(start)
            
end
            end
        end      
    end
    end 
02/28/2014 12:53 .yorliK#9775
Quote:
Originally Posted by xMasi95 View Post
Wenn man denn Oberork tötet sollte man eine Truhe bekommen
Und die Quest soll sich immer wieder wiederholen, sprich
Wenn ich ihn 5 mal hintereinander töte soll es auch 5 Truhen geben.
Ist das Absicht das die Quest nur bis Level 51 geht? Mit Level 52 wird sie nämlich nicht mehr auftauchen, falls sie abgeschlossen wurde.

Hier deine Quest:
PHP Code:
quest pvm begin
    state start begin
        when login 
or levelup with pc.level <= 51 begin
            set_state
(information)
        
end
    end
    
    state information begin
        when letter with pc
.level <= 51 begin
            send_letter
("Oberork!")
        
end

        when info 
or button begin
            say_title
("Oberork!")
            
say("Toete einen Oberork und du")
            
say("kannst zwischen 3 Items wählen")
            
say("")
            if 
select("Ja, mach ich","Nein, keine Zeit") == 1 then
                say
("Okay los gehts!")
                
set_state(kill)
                
clear_letter()
            else
                
say("Hmm schade, vielleicht später.")
                if 
select("Ok") == 1 then
                    send_letter
("Oberork!")
                
end
            end
        end
    end
    state kill begin
        when letter begin
            send_letter
("Oberork!")
            
q.set_counter("Oberork", 1)
        
end

        when info 
or button begin
            say_title
("Oberork!")
            
say("")
            
say("Status:")
            
say_reward("Du hast noch keinen Oberork getötet.")
        
end
        
        when kill with npc
.get_race()==691 begin
            q
.set_counter("Oberork", 0)
            
say_title("Oberork!")
            
say("")
            
say("Du hast ihn getötet, schön")
            
say("hier hast du deine Oberork Truhe")
            
say("")
            
say_reward("1x Oberork Truhe")
            
pc.give_item2(50070, 1) 
            
clear_letter()
            
set_state(information)
        
end
    end
end 
02/28/2014 13:08 rollback#9776
Quote:
Originally Posted by .Weezy View Post
geht immer noch nicht, habe die items auch bei einer anderen quest getestet dort lassen die sich anklicken.
PHP Code:
quest is_coins begin    
    state start begin    
        when 50026.
use begin    
            local accountid 
= mysql_query("SELECT * FROM player.player WHERE name='"..pc.get_name().."'","user","pw","player","ip")    
            
local coins = mysql_query("SELECT * FROM account.account WHERE id='"..accountid.account_id[1].."'","user","pw","account","ip")    
            
say_title("Coin Gutschein")    
            
say("")
            
say("Hallo "..pc.get_name()..".")    
            
say("Möchtest du diesen Gutschein")    
            
say("im Wert von 2000 Coins einlösen?")    
            
local s = select ("Ja", "Nein")    
            if 
s == 1 then    
                local updatecoins 
= mysql_query("UPDATE account.account SET coins='"..coins.coins[1]+2000.."' WHERE id='"..accountid.account_id[1].."'","user","pw","account","ip")    
                
chat("Deine Coins wurden dir erfolgreich gutgeschrieben.")    
                
pc.remove_item(50026, 1)    
            
end    
            
if s == 2 then    
                
return    
            
end    
        end    
    end    
end 
Hat eine Leerzeile gefehlt bei
Code:
local s = select ("Ja", "Nein")
(zwischen dem Komma hinter "Nein" muss eine Leerzeile)
03/01/2014 02:40 -Zhui-#9777
Code:
		when 53005.use begin
			if pet.is_summon() then
				pet.unsummon()
                chat("Dein Haustier verabschiedet sich nun von dir!")
                affect.remove_collect(apply.ATT_BONUS_TO_MONSTER, 50, 60*60*24*365*60)
				affect.remove_collect(apply.MAX_HP, 1500, 60*60*24*365*60)
			else
				chat("Du hast dein Haustier gerufen!")
				local old_level = horse.get_level()
				local old_name = horse.get_name()
				horse.set_level(25)
				horse.set_name(haustiere.get_pet_name())
				pet.summon()
				horse.set_level(old_level)
				horse.set_name(old_name)
                affect.add_collect(apply.ATT_BONUS_TO_MONSTER, 50, 60*60*24*365*60)
                affect.add_collect(apply.MAX_HP, 1500, 60*60*24*365*60)
			end
		end
HP krieg ich, Monster iwie nicht :s
03/01/2014 11:31 BlackBynes#9778
Quote:
Originally Posted by Tiger121282 View Post
Weil noch keine Hilfe ging frage ich noch mal.
Wenn man Ingame ist kommen keine Ansagen.
Weiss jemand den Fehler?
Danke für die Hilfe bis jetzt, aber leider noch keine Lösung dabei.
Hi

ich denke das es so klappen sollte, habe es nicht getestet. Bedenke aber das bei der Quest die Zeit immer wieder von vorne beginnt sobald man sich neu einloggt, sprich auch wenn man die map wechselt.
Hoffe ich konnte helfen.


------------------------------------------------------

Ich hätte auch noch ein Frage an euch
und zwar habe ich nach dem [Only registered and activated users can see links. Click Here To Register...] das Design eingebaut, nur wenn ich das Pet nun rufe erscheint leider nicht der Gui kann mir hierbei jemand helfen?
Vielen Dank
by blacky

-----------------------------------------------------

Quote:
Originally Posted by 3zPx View Post
Code:
		when 53005.use begin
			if pet.is_summon() then
				pet.unsummon()
                chat("Dein Haustier verabschiedet sich nun von dir!")
                affect.remove_collect(apply.ATT_BONUS_TO_MONSTER, 50, 60*60*24*365*60)
				affect.remove_collect(apply.MAX_HP, 1500, 60*60*24*365*60)
			else
				chat("Du hast dein Haustier gerufen!")
				local old_level = horse.get_level()
				local old_name = horse.get_name()
				horse.set_level(25)
				horse.set_name(haustiere.get_pet_name())
				pet.summon()
				horse.set_level(old_level)
				horse.set_name(old_name)
                affect.add_collect(apply.ATT_BONUS_TO_MONSTER, 50, 60*60*24*365*60)
                affect.add_collect(apply.MAX_HP, 1500, 60*60*24*365*60)
			end
		end
HP krieg ich, Monster iwie nicht :s

Hi,
ich nehme an du benutzt eine "etwas neuere" game datei oder?
hier musst du noch genau sagen bei welchem Item welcher Mob erscheinen soll.

Zum veranschaulichen die original quest

du musst sie eventuell nur noch deinen Wünsche anpassen.
Ich hoffe ich konnte etwas weiter helfen

03/01/2014 12:00 DerForenLeser#9779
Quote:
Originally Posted by 3zPx View Post
Code:
		when 53005.use begin
			if pet.is_summon() then
				pet.unsummon()
                chat("Dein Haustier verabschiedet sich nun von dir!")
                affect.remove_collect(apply.ATT_BONUS_TO_MONSTER, 50, 60*60*24*365*60)
				affect.remove_collect(apply.MAX_HP, 1500, 60*60*24*365*60)
			else
				chat("Du hast dein Haustier gerufen!")
				local old_level = horse.get_level()
				local old_name = horse.get_name()
				horse.set_level(25)
				horse.set_name(haustiere.get_pet_name())
				pet.summon()
				horse.set_level(old_level)
				horse.set_name(old_name)
                affect.add_collect(apply.ATT_BONUS_TO_MONSTER, 50, 60*60*24*365*60)
                affect.add_collect(apply.MAX_HP, 1500, 60*60*24*365*60)
			end
		end
HP krieg ich, Monster iwie nicht :s

Mach den Monster Bonus über die Datenbank. Der spackt gerne mal bei jeder Version der Game herum. Der Befehl ist in einigen Versionen mit der passenden quest_function auch anders genannt, wobei es in der Game wieder anders genannt ist.
Einfach zum entsprechenden Item in der DB & als applytype & applyvalue den Bonus eintragen. Dann verschwindet er auch & man kann nicht buggen, was bei deinem Ausschnitt der Quest noch möglich ist.
03/02/2014 22:40 fairplay44#9780
Kann mir einer helfen bei der Quest

quest user_panel begin
state start begin
when letter with pc.is_player() begin
send_letter("User Panel by CrazyWorld2")
end
when button or info begin
say_title("Willkommen im User Panel by CrazyWorld2")
say("")
say_reward("Bitte waehle deine Option")
local head = select("Teleportieren", "Lager ", "Abbrechen")

if main_set == 1 then
say("Du willst dich also Teleportieren?")
say("")
local j = select("Ja","Nein")
if j == 2 then
return
end
if j == 1 then
say_reward("Wo möchtest du hin:")
local k = select("Map1-Rot","Map1-Blau","Map1-Gelb","Nirgens")
if k == 4 then
return
end
if k == 1 then
pc.warp(469300, 964200)
end
if k == 2 then
pc.warp(969600, 278400)
end
if k == 3 then
pc.warp (55700, 157900)
end

elseif head == 2 then
say_title("Lager")
say_reward("Waehle deine Option")
local lager = select("Lager oeffnen", "Itemshop Lager oeffnen", "Abbrechen")

if lager ==1 then
send_letter("User Panel by CrazyWorld2")
game.open_safebox()
setskin(NOWINDOW)

elseif lager == 2 then
send_letter("User Panel by CrazyWorld2")
game.open_mall()
setskin(NOWINDOW)

elseif lager == 3 then
send_letter("User Panel by CrazyWorld2")
return
end

elseif head == 5 then
send_letter("User Panel by CrazyWorld2")
return
end
end
end
end