|
You last visited: Today at 08:23
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
03/29/2017, 15:23
|
#12511
|
elite*gold: 0
Join Date: Dec 2016
Posts: 29
Received Thanks: 6
|
Kann wer helfen?
elseif panel1 == 2 then
local panel3 = select("Event: OX", "Event: Reichsschlacht", "Event: Mob Spawn", "Abbrechen")
if panel3 == 1 then
local oxm = select("OX Starten", "Ox Beenden", "Ox Frage stellen", "Abbrechen")
local stat = oxevent.get_status()
if stat == 0 and oxm == 1 then
say_title("Servername Event Panel:")
say("Möchtest du das OX-Wettbewerb starten?")
local s = select("Ja", "Nein")
if s == 1 then
local v = oxevent.open()
if v == 0 then
say_title("Servername Event Panel:")
say("Der OX-Wettbewerb ist schon aktiviert.")
elseif v == 1 then
say_title("Servername Event Panel:")
say("Der OX-Wettbewerb wurde gestartet.")
notice_all("Der OX-Wettbewerb hat begonnen, um beizutreten bitte zu Uriel!")
else
say_title("Servername Event Panel:")
say("Der OX-Wettbewerb könnte nicht ausgeführt werden.")
end
end
if stat == 1 and oxm == 2 then
say_title("Servername Event Panel:")
say("Es ist/sind "..oxevent.get_attender().." Spieler hier.")
say("Willst du den Zugang wirklich schließen?")
local s = select("Ja", "Nein")
if s == 1 then
oxevent.close()
say_title("Servername Event Panel:")
say("Der Zugang wurde soeben geschlossen!")
end
elseif stat == 2 and oxm == 3 then
say_title("Servername Event Panel:")
say("Was möchtest du machen?")
local s = select("Frage stellen", "Alle Spieler belohnen", "Beenden", "Schließen")
if s == 1 then
local v = oxevent.quiz(1, 30)
if v == 1 then
say_title("Servername Event Panel:")
say("Das OX-Wettbewerb läuft zurzeit noch nicht!")
elseif v == 0 then
say_title("Servername Event Panel:")
say("Die Frage wurde erfolgreich abgesendet!")
else
say_title("Servername Event Panel:")
say("Es wird schon eine Frage gestellt!")
end
elseif s == 2 then
say_title("Servername Event Panel:")
say("Bitte gib die Itemnummer in das Feld ein.")
local item_vnum = input()
say_title("Servername Event Panel:")
say("Bitte gib die Itemanzahl in das Feld ein.")
local item_count = input()
oxevent.give_item(item_vnum, item_count)
say_title("Servername Event Panel:")
say("Du hast "..oxevent.get_attender().." Spieler die Belohnung gegeben!")
elseif s == 3 then
oxevent.end_event()
notice_all("Der OX-Wettbewerb ist vorbei, wir wünschen euch weiterhin viel Spaß! Euer Servername Team!")
say_title("Servername Event Panel:")
say("Du hast den OX-Wettbewerb beendet!")
end
elseif stat == 3 then
say_title("Servername Event Panel:")
say("Bitte warte einen Augenblick.")
else
say("Ein Fehler ist aufgetreten!")
end
end
Ist nur der teil der fehlerhaft ist.
|
|
|
04/02/2017, 17:52
|
#12512
|
elite*gold: 34
Join Date: Apr 2011
Posts: 998
Received Thanks: 136
|
#done
|
|
|
04/02/2017, 19:06
|
#12513
|
elite*gold: 310
Join Date: May 2011
Posts: 1,592
Received Thanks: 105
|
Hey,
wollte mal fragen, ob jemand über diese Quest schauen könnte?
Code:
quest bio_level90 begin
state start begin
when login or levelup with pc.level() >= 90 begin
set_state(information)
end
end
state information begin
when letter begin
local virtualFind = find_npc_by_vnum(20084)
if virtualFind != 0 then
target.vid("__TARGET__", virtualFind, "Sammle Notizen der Anführer")
end
send_letter("Sammle Notizen der Anführer")
end
when button or info begin
say_title("Sammle Notizen der Anführer:")
say("Der Biologe Chaegirab, Lehrling Uriels,")
say("sammelt Informationen über die Bosse.")
say("Für seine Forschung benötigt er 10 Notizen")
say("Bringe sie ihm einzeln, damit er")
say("sie in Ruhe studieren kann.")
say("Du bekommst sie von den Bossen.")
say("")
end
when __TARGET__.target.click or 20084.chat."Sammle Notizen" begin
target.delete("__TARGET__")
say_title("Biologe Chaegirab:")
say("Sei gegrüßt edler Held!")
say("Ich sammle Informationen über die Bosse .")
say("Doch leider bin ich nicht im stande die Bosse allein zu Untersuchen.")
say("Darum bitte ich dich 10 Notizen der Anführer zu beschaffen und mir zu bringen .")
say("Man kann nicht jeden Tag etwas Großes tun, aber gewiss immer etwas Gutes.")
say("Nur wenn man das Unerreichbare anstrebt, gelingt das Erreichbare.")
say("")
pc.setqf("actual_collect_count", 0)
pc.setqf("increase_chance", 0)
set_state(kill_teh_viecher)
end
end
state kill_teh_viecher begin
when letter begin
send_letter("Auftrag von Biologe Chaegirab")
end
when button or info begin
say_title("Notiz der Anführer:")
say("Biologe Chaegirab gab euch den Auftrag")
say("10 Notizen der Anführer zu sammeln!")
say("Das Item bekommst du von den Bossen.")
say("Viel Glück!")
say("")
say_item_vnum(30168)
say_reward("Du hast bis jetzt "..pc.getqf("actual_collect_count").." Stück gesammelt!")
say("")
end
when 591.kill or 691.kill or 791.kill or 793.kill or 991.kill or 992.kill or 993.kill or 1091.kill or 1092.kill or 1093.kill or 1094.kill or 1095.kill or 1304.kill or
1403.kill or 2091.kill or 2191.kill or 2206.kill or 2207.kill or 2306.kill or 2493.kill or 2494.kill or 5004.kill or
5161.kill or 5162.kill or 5163.kill or 2597.kill begin
local dropChance = number(10,100)
if dropChance == 1 and pc.count_item(30168) < 20-pc.getqf("actual_collect_count") then
pc.give_item2(30168, 1)
end
end
end
when 20084.chat."Notizen der Anführer " with pc.count_item(30168) > 0 then
if get_time() > pc.getqf("give_next_item") then
local erfolgschance
say_title("Biologe Chaegirab:")
say("Einen Moment!")
say("Ich werde die Notiz überprüfen.")
say("Hoffentlich ist sie von guter Qualität!")
pc.remove_item(30168, 1)
pc.setqf("give_next_item", get_time()+1)
wait()
if pc.getqf("increase_chance") == 0 then
gebrauchte_erfolgschance = 45
else
gebrauchte_erfolgschance = 100
end
local erfolg_zufall = number(1, 100)
if erfolg_zufall <= gebrauchte_erfolgschance then
if pc.getqf("actual_collect_count") < 14 then
local newCount = pc.getqf("actual_collect_count")+1
pc.setqf("actual_collect_count", newCount)
say_title("Biologe Chaegirab:")
say("Pefekt! Diese Notizg ist ein Prachtexemplar.")
say("Dir fehlen nun noch "..10-pc.getqf("actual_collect_count").." Stück")
say("Bringe mir die Restlichen!")
say("")
return
end
say_title("Biologe Chaegirab:")
say("Danke! Du hast alle Bosse vernichtet")
say("und mir alle Notizen der Anführer gebracht!")
say("Dafür werde ich dich wie versprochen belohnen!")
say("")
say_reward("Deine Zaubergeschwindigkeit hat sich permanent um 20% erhöht")
say_reward("Dein HP hat sich permanent um 2000 erhöht.")
say_reward("Deine Schadenreduzierung hat sich permanent um 10% erhöht")
say_reward("Dein Angriffswert hat sich permanent um 100 erhöht")
clear_letter()
affect.add_collect(apply.MAX_HP,2000,60*60*24*365*60)
affect.add_collect(apply.ATT_GRADE_BONUS,100,60*60*24*365*60)
affect.add_collect(apply.RESIST_TWOHAND,10,60*60*24*365*60)
affect.add_collect(apply.RESIST_SWORD,10,60*60*24*365*60)
affect.add_collect(apply.RESIST_DAGGER,10,60*60*24*365*60)
affect.add_collect(apply.RESIST_BELL,10,60*60*24*365*60)
affect.add_collect(apply.RESIST_FAN,10,60*60*24*365*60)
affect.add_collect(apply.RESIST_BOW,10,60*60*24*365*60)
set_state(__COMPLETE__)
return
else
say_title("Biologe Chaegirab:")
say("Die Notiz ist von schlechter Qualität!")
say("Ich kann ihn leider nicht weiter verwenden.")
say("Besorg mir schnell eine Neue!")
say("")
pc.setqf("increase_chance", 0)
return
end
else --
say_title("Biologe Chaegirab:")
say("Ich bin mit dem vorherigen Exemplar noch nicht fertig")
say("Bitte warte noch ein wenig bevor du mir eine Neue bringst.")
return
end
end
end
state __COMPLETE__ begin
end
Er gibt beim Compilieren folgenden Fehler aus: expecting 'state'
Leider finde ich denn Fehler grade nicht selbst.
Die Quest ist nicht von mir sondern von einem anderen User.
Hoffe mir bzw ihm kann jemand Helfen.
Mit freundlichen Grüßen
Anonyme™
|
|
|
04/08/2017, 18:29
|
#12514
|
elite*gold: 0
Join Date: Jun 2011
Posts: 13
Received Thanks: 0
|
Questhilfe
Moin, die Quest funktioniert jetzt so wie sie soll allerdings stört mich noch eine sache..
der 2. questbrief zurück zum stallburschen soll ja erscheinen sobald ich lvl 10 erreicht habe und 10 pms habe..
aber mal angenommen ich werde lvl 10, habe aber erst 9 medailen, hebe ich dann die 10. auf kommt der 2. questbrief nicht...
erscheint nur wenn ich bereits 10 medailen habe und dann lvl 10 erreiche..
kann einer das noch so umschreiben das es egal ist was ich zuerst erreiche, wenn die bedingungen lvl 10 und 10 pms erfüllt sind der questbrief automatisch aufploppt?
PHP Code:
quest horse_getting begin state start begin when login begin send_letter("Der Stallbursche braucht deine Hilfe") end when button or info begin say_title("Ich brauche dringend Hilfe "..pc.get_name()) say("Ich war letztens auf einer Fortbildung.") say("Auf dem Rueckweg ist mir meine Tasche gerissen") say("und habe ein paar meiner Medailen verloren.") say_item_vnum(50050) say(string.format("Geh und bringe mir bitte %d dieser Medailen wieder", 10)) say(string.format("wenn du hier dein %d. Lebensjahr erreicht hast.", 10)) end when login or levelup with pc.get_level()>=9 and pc.count_item(50050)>=9 begin set_state(anfang) end end state anfang begin when letter begin send_letter("Zurueck zum Stallburschen") local vid = find_npc_by_vnum(20349) if vid ~= 0 then target.vid("TARGET_HORSE_GETTING", vid, "gehe zum Stallburschen") end end when TARGET_HORSE_GETTING.target.click begin if pc.count_item(50050)<=9 then say("Komme wieder wenn du 10 meiner Medailen hast") return end pc.remove_item(50050, 10) pc.give_item2(50051, 1) pc.set_skill_level(131, 10) horse.set_level(1) horse.summon() horse.ride() say("Heey nicht so schnell das Ding hat") say("mich viel Arbeit gekostet.") set_state(ende) end end state ende begin end end
noch eine frage am rande, wann benutze ich den befehl return in einer quest?
Benutze ich das dann wenn ich in einer quest einen befehl habe der erst später ausgeführt werden kann und ich hinter diesem befehl noch sachen stehen habe die davor ausgeführt werden sollen?
|
|
|
04/10/2017, 20:30
|
#12515
|
elite*gold: 0
Join Date: Mar 2017
Posts: 103
Received Thanks: 20
|
Code:
when 591.kill or 691.kill or 791.kill or 793.kill or 991.kill or 992.kill or 993.kill or 1091.kill or 1092.kill or 1093.kill or 1094.kill or 1095.kill or 1304.kill or
1403.kill or 2091.kill or 2191.kill or 2206.kill or 2207.kill or 2306.kill or 2493.kill or 2494.kill or 5004.kill or
5161.kill or 5162.kill or 5163.kill or 2597.kill begin
local dropChance = number(10,100)
if dropChance == 1 and pc.count_item(30168) < 20-pc.getqf("actual_collect_count") then
pc.give_item2(30168, 1)
end
end
end
when 20084.chat."Notizen der Anführer " with pc.count_it
when ... if ... end end end when ...
Du hast 1 end zu viel, in Zukunft bitte korrekt einrücken, dann passiert sowas nicht.
Das rote end hat deinen state Block beendet. Demensprechend erwartet der quest Compiler einen state Block und keinen when Block
Edit: Das Ende deiner Quest sieht auch nicht so gesund aus. Da fehlt das end.
|
|
|
04/10/2017, 21:44
|
#12516
|
elite*gold: 310
Join Date: May 2011
Posts: 1,592
Received Thanks: 105
|
Quote:
Originally Posted by std::max
Code:
when 591.kill or 691.kill or 791.kill or 793.kill or 991.kill or 992.kill or 993.kill or 1091.kill or 1092.kill or 1093.kill or 1094.kill or 1095.kill or 1304.kill or
1403.kill or 2091.kill or 2191.kill or 2206.kill or 2207.kill or 2306.kill or 2493.kill or 2494.kill or 5004.kill or
5161.kill or 5162.kill or 5163.kill or 2597.kill begin
local dropChance = number(10,100)
if dropChance == 1 and pc.count_item(30168) < 20-pc.getqf("actual_collect_count") then
pc.give_item2(30168, 1)
end
end
end
when 20084.chat."Notizen der Anführer " with pc.count_it
when ... if ... end end end when ...
Du hast 1 end zu viel, in Zukunft bitte korrekt einrücken, dann passiert sowas nicht.
Das rote end hat deinen state Block beendet. Demensprechend erwartet der quest Compiler einen state Block und keinen when Block
Edit: Das Ende deiner Quest sieht auch nicht so gesund aus. Da fehlt das end.
|
Könntest du eventuell genauer Erklären was du meinst?
Da ich ein Neuling im bereich Questen bin
Dankeschön im Voraus
|
|
|
04/12/2017, 15:23
|
#12517
|
elite*gold: 0
Join Date: Jan 2015
Posts: 4
Received Thanks: 2
|
Code:
state kill_teh_viecher begin
when letter begin
send_letter("Auftrag von Biologe Chaegirab")
end
when button or info begin
say_title("Notiz der Anführer:")
say("Biologe Chaegirab gab euch den Auftrag")
say("10 Notizen der Anführer zu sammeln!")
say("Das Item bekommst du von den Bossen.")
say("Viel Glück!")
say("")
say_item_vnum(30168)
say_reward("Du hast bis jetzt "..pc.getqf("actual_collect_count").." Stück gesammelt!")
say("")
end
when 591.kill or 691.kill or 791.kill or 793.kill or 991.kill or 992.kill or 993.kill or 1091.kill or 1092.kill or 1093.kill or 1094.kill or 1095.kill or 1304.kill or
1403.kill or 2091.kill or 2191.kill or 2206.kill or 2207.kill or 2306.kill or 2493.kill or 2494.kill or 5004.kill or
5161.kill or 5162.kill or 5163.kill or 2597.kill begin
local dropChance = number(10,100)
if dropChance == 1 and pc.count_item(30168) < 20-pc.getqf("actual_collect_count") then
pc.give_item2(30168, 1)
end //beendet if-Statement
end //beendet when
end //beendet State kill_teh_viecher
Sprich du hast an der Stelle ein end zuviel.
Code:
state __COMPLETE__ begin
end
Das letzte end beendet die Quest, aber du beendest nie den State-Block, dass ist der andere Punkt den er meinte.
|
|
|
04/20/2017, 14:47
|
#12518
|
elite*gold: 0
Join Date: Apr 2013
Posts: 22
Received Thanks: 13
|
PHP Code:
quest Trump begin state start begin when login with pc.getqf("start") == 0 begin pc.setqf("Guthaben", 0) pc.setqf("start", 1) set_state(affe) end end state affe begin when 20041.chat."Items Umtauschen" begin say_title("Items Umtauschen") say("Hier kannst du deine Uppitems") say("gegen Punkte eintauschen, welche") say("du gegen Itemshop-Coins tauschen kannst.") say("") say("Was möchtest du tun?") local a = select("Guthaben abfragen","Items eintauschen","Punkte eintauschen","Nichts") if a == 1 then say_title("Guthaben") say("Dein Guthaben beträgt "..pc.getqf("Guthaben").." Punkte.") end if a == 2 then say_title("Items eintauschen") say("") say("Welche Art von Item möchtest du eintauschen?") say("") local i = select("Beran-Setaou","Azrael","Metinstein") if i == 1 then say_title("Beran-Setaou") say("") say("Welches Item möchtest du eintauschen?") say("") local o = select("Drachenschuppe","Drachenkralle","Traktat zur Fechtkunst") if o = 1 then say_title("Drachenschuppe") say("") say("Eine Drachenschuppe ist 4 Punkte wert.") say("Wie viele Drachenschuppen möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(71123) >= 1 then pc.remove_item(71123,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+4) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(71123) >= 5 then pc.remove_item(71123,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+20) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(71123) >= 10 then pc.remove_item(71123,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+40) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(71123) >= 50 then pc.remove_item(71123,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+200) else say("Du hast nicht genug Items.") return end end end if o = 2 then say_title("Drachenkralle") say("") say("Eine Drachenkralle ist 4 Punkte wert.") say("Wie viele Drachenkrallen möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(71129) >= 1 then pc.remove_item(71129,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+4) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(71129) >= 5 then pc.remove_item(71129,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+20) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(71129) >= 10 then pc.remove_item(71129,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+40) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(71129) >= 50 then pc.remove_item(71129,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+200) else say("Du hast nicht genug Items.") return end end end if o = 3 then say_title("Traktat zur Fechtkunst") say("") say("Ein Traktat zur Fechtkunst ist 2 Punkte wert.") say("Wie viele Traktate zur Fechtkunst möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(70031) >= 1 then pc.remove_item(70031,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+2) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(70031) >= 5 then pc.remove_item(70031,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+10) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(70031) >= 10 then pc.remove_item(70031,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+20) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(70031) >= 50 then pc.remove_item(70031,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+100) else say("Du hast nicht genug Items.") return end end end end if i == 2 then say_title("Azrael") say("") say("Welches Item möchtest du eintauschen?") say("") local o = select("Gegenstand Verhexen","gegenstand Verzaubern","Azraels Herz") if o = 1 then say_title("Gegenstand Verhexen") say("") say("Ein Gegenstand Verhexen ist 1 Punkt wert.") say("Wie viele Gegenstand Verhexen möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(71052) >= 1 then pc.remove_item(71052,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+1) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(71052) >= 5 then pc.remove_item(71052,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+5) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(71052) >= 10 then pc.remove_item(71052,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+10) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(71052) >= 50 then pc.remove_item(71052,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+50) else say("Du hast nicht genug Items.") return end end end if o = 2 then say_title("Gegenstand Segnen") say("") say("Ein Gegenstand Segnen ist 1 Punkt wert.") say("Wie viele Gegenstand Segnen möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(71051) >= 1 then pc.remove_item(71051,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+1) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(71051) >= 5 then pc.remove_item(71051,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+5) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(71051) >= 10 then pc.remove_item(71051,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+10) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(71051) >= 50 then pc.remove_item(71051,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+50) else say("Du hast nicht genug Items.") return end end end if o = 3 then say_title("Azraels Herz") say("") say("Ein Azraels Herz ist 4 Punkte wert.") say("Wie viele Azraels Herzen möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(70022) >= 1 then pc.remove_item(70022,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+4) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(70022) >= 5 then pc.remove_item(70022,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+20) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(70022) >= 10 then pc.remove_item(70022,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+40) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(70022) >= 50 then pc.remove_item(70022,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+200) else say("Du hast nicht genug Items.") return end end end end if i == 3 then say_title("Metinsteine") say("") say("Welches Item möchtest du eintauschen?") say("") local o = select("Blaudrachenstahl","Rotdrachenstahl","Wasserstein","Tränen Baljit-Elvedins") if o = 1 then say_title("Blaudrachenstahl") say("") say("Ein Blaudrachenstahl ist 1 Punkt wert.") say("Wie viel Blaudrachenstahl möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(30509) >= 1 then pc.remove_item(30509,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+1) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(30509) >= 5 then pc.remove_item(30509,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+5) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(30509) >= 10 then pc.remove_item(30509,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+10) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(30509) >= 50 then pc.remove_item(30509,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+50) else say("Du hast nicht genug Items.") return end end end if o = 2 then say_title("Rotdrachenstahl") say("") say("Ein Rotdrachenstahl ist 2 Punkt wert.") say("Wie viel Rotdrachenstahl möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(30512) >= 1 then pc.remove_item(30512,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+2) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(30512) >= 5 then pc.remove_item(30512,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+10) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(30512) >= 10 then pc.remove_item(30512,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+20) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(30512) >= 50 then pc.remove_item(30512,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+100) else say("Du hast nicht genug Items.") return end end end if o = 3 then say_title("Wasserstein") say("") say("Ein Wasserstein ist 3 Punkte wert.") say("Wie viele Wassersteine möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(90005) >= 1 then pc.remove_item(90005,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+3) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(90005) >= 5 then pc.remove_item(90005,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+15) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(90005) >= 10 then pc.remove_item(90005,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+30) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(90005) >= 50 then pc.remove_item(90005,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+150) else say("Du hast nicht genug Items.") return end end end if o = 4 then say_title("Tränen Baljit-Elvedins") say("") say("Eine Tränen Baljit-Elvedins ist 1 Punkt wert.") say("Wie viele Tränen Baljit-Elvedins möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(30189) >= 1 then pc.remove_item(30189,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+1) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(30189) >= 5 then pc.remove_item(30189,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+5) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(30189) >= 10 then pc.remove_item(30189,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+10) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(30189) >= 50 then pc.remove_item(30189,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+50) else say("Du hast nicht genug Items.") return end end end end end if a == 3 then say_title("Punkte eintauschen") say("") say("Hier kannst du deine Punkte gegen") say("Coins tauschen. Für 10 Punkte") say("bekommst du 100 Coins.") say("") say("Wie viele Punkte möchtest du eintauschen?") say("") local y = select("10","50","100","500") if y == 1 then if pc.getqf("Guthaben") >= 10 then pc.setqf("Guthaben"), pc.getqf("Guthaben")-10) pc.give_item2(80014, 1) else say("Du hast nicht genug Punkte") return end if y == 2 then if pc.getqf("Guthaben") >= 50 then pc.setqf("Guthaben"), pc.getqf("Guthaben")-50) pc.give_item2(80015, 1) else say("Du hast nicht genug Punkte") return end if y == 3 then if pc.getqf("Guthaben") >= 100 then pc.setqf("Guthaben"), pc.getqf("Guthaben")-100) pc.give_item2(80016, 1) else say("Du hast nicht genug Punkte") return end if y == 4 then if pc.getqf("Guthaben") >= 500 then pc.setqf("Guthaben"), pc.getqf("Guthaben")-500) pc.give_item2(80016, 1) pc.give_item2(80016, 1) pc.give_item2(80016, 1) pc.give_item2(80016, 1) pc.give_item2(80016, 1) else say("Du hast nicht genug Punkte") return end end end if a == 4 then return end end end end
Fehlermeldung:
Error occured on compile Runs/Trump.quest
|
|
|
04/23/2017, 17:50
|
#12519
|
elite*gold: 30
Join Date: Jul 2010
Posts: 1,627
Received Thanks: 1,450
|
Quote:
Originally Posted by Mytho2
PHP Code:
quest Trump begin state start begin when login with pc.getqf("start") == 0 begin pc.setqf("Guthaben", 0) pc.setqf("start", 1) set_state(affe) end end state affe begin when 20041.chat."Items Umtauschen" begin say_title("Items Umtauschen") say("Hier kannst du deine Uppitems") say("gegen Punkte eintauschen, welche") say("du gegen Itemshop-Coins tauschen kannst.") say("") say("Was möchtest du tun?") local a = select("Guthaben abfragen","Items eintauschen","Punkte eintauschen","Nichts") if a == 1 then say_title("Guthaben") say("Dein Guthaben beträgt "..pc.getqf("Guthaben").." Punkte.") end if a == 2 then say_title("Items eintauschen") say("") say("Welche Art von Item möchtest du eintauschen?") say("") local i = select("Beran-Setaou","Azrael","Metinstein") if i == 1 then say_title("Beran-Setaou") say("") say("Welches Item möchtest du eintauschen?") say("") local o = select("Drachenschuppe","Drachenkralle","Traktat zur Fechtkunst") if o = 1 then say_title("Drachenschuppe") say("") say("Eine Drachenschuppe ist 4 Punkte wert.") say("Wie viele Drachenschuppen möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(71123) >= 1 then pc.remove_item(71123,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+4) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(71123) >= 5 then pc.remove_item(71123,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+20) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(71123) >= 10 then pc.remove_item(71123,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+40) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(71123) >= 50 then pc.remove_item(71123,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+200) else say("Du hast nicht genug Items.") return end end end if o = 2 then say_title("Drachenkralle") say("") say("Eine Drachenkralle ist 4 Punkte wert.") say("Wie viele Drachenkrallen möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(71129) >= 1 then pc.remove_item(71129,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+4) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(71129) >= 5 then pc.remove_item(71129,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+20) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(71129) >= 10 then pc.remove_item(71129,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+40) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(71129) >= 50 then pc.remove_item(71129,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+200) else say("Du hast nicht genug Items.") return end end end if o = 3 then say_title("Traktat zur Fechtkunst") say("") say("Ein Traktat zur Fechtkunst ist 2 Punkte wert.") say("Wie viele Traktate zur Fechtkunst möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(70031) >= 1 then pc.remove_item(70031,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+2) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(70031) >= 5 then pc.remove_item(70031,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+10) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(70031) >= 10 then pc.remove_item(70031,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+20) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(70031) >= 50 then pc.remove_item(70031,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+100) else say("Du hast nicht genug Items.") return end end end end if i == 2 then say_title("Azrael") say("") say("Welches Item möchtest du eintauschen?") say("") local o = select("Gegenstand Verhexen","gegenstand Verzaubern","Azraels Herz") if o = 1 then say_title("Gegenstand Verhexen") say("") say("Ein Gegenstand Verhexen ist 1 Punkt wert.") say("Wie viele Gegenstand Verhexen möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(71052) >= 1 then pc.remove_item(71052,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+1) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(71052) >= 5 then pc.remove_item(71052,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+5) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(71052) >= 10 then pc.remove_item(71052,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+10) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(71052) >= 50 then pc.remove_item(71052,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+50) else say("Du hast nicht genug Items.") return end end end if o = 2 then say_title("Gegenstand Segnen") say("") say("Ein Gegenstand Segnen ist 1 Punkt wert.") say("Wie viele Gegenstand Segnen möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(71051) >= 1 then pc.remove_item(71051,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+1) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(71051) >= 5 then pc.remove_item(71051,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+5) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(71051) >= 10 then pc.remove_item(71051,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+10) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(71051) >= 50 then pc.remove_item(71051,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+50) else say("Du hast nicht genug Items.") return end end end if o = 3 then say_title("Azraels Herz") say("") say("Ein Azraels Herz ist 4 Punkte wert.") say("Wie viele Azraels Herzen möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(70022) >= 1 then pc.remove_item(70022,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+4) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(70022) >= 5 then pc.remove_item(70022,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+20) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(70022) >= 10 then pc.remove_item(70022,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+40) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(70022) >= 50 then pc.remove_item(70022,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+200) else say("Du hast nicht genug Items.") return end end end end if i == 3 then say_title("Metinsteine") say("") say("Welches Item möchtest du eintauschen?") say("") local o = select("Blaudrachenstahl","Rotdrachenstahl","Wasserstein","Tränen Baljit-Elvedins") if o = 1 then say_title("Blaudrachenstahl") say("") say("Ein Blaudrachenstahl ist 1 Punkt wert.") say("Wie viel Blaudrachenstahl möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(30509) >= 1 then pc.remove_item(30509,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+1) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(30509) >= 5 then pc.remove_item(30509,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+5) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(30509) >= 10 then pc.remove_item(30509,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+10) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(30509) >= 50 then pc.remove_item(30509,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+50) else say("Du hast nicht genug Items.") return end end end if o = 2 then say_title("Rotdrachenstahl") say("") say("Ein Rotdrachenstahl ist 2 Punkt wert.") say("Wie viel Rotdrachenstahl möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(30512) >= 1 then pc.remove_item(30512,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+2) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(30512) >= 5 then pc.remove_item(30512,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+10) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(30512) >= 10 then pc.remove_item(30512,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+20) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(30512) >= 50 then pc.remove_item(30512,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+100) else say("Du hast nicht genug Items.") return end end end if o = 3 then say_title("Wasserstein") say("") say("Ein Wasserstein ist 3 Punkte wert.") say("Wie viele Wassersteine möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(90005) >= 1 then pc.remove_item(90005,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+3) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(90005) >= 5 then pc.remove_item(90005,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+15) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(90005) >= 10 then pc.remove_item(90005,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+30) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(90005) >= 50 then pc.remove_item(90005,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+150) else say("Du hast nicht genug Items.") return end end end if o = 4 then say_title("Tränen Baljit-Elvedins") say("") say("Eine Tränen Baljit-Elvedins ist 1 Punkt wert.") say("Wie viele Tränen Baljit-Elvedins möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(30189) >= 1 then pc.remove_item(30189,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+1) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(30189) >= 5 then pc.remove_item(30189,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+5) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(30189) >= 10 then pc.remove_item(30189,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+10) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(30189) >= 50 then pc.remove_item(30189,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+50) else say("Du hast nicht genug Items.") return end end end end end if a == 3 then say_title("Punkte eintauschen") say("") say("Hier kannst du deine Punkte gegen") say("Coins tauschen. Für 10 Punkte") say("bekommst du 100 Coins.") say("") say("Wie viele Punkte möchtest du eintauschen?") say("") local y = select("10","50","100","500") if y == 1 then if pc.getqf("Guthaben") >= 10 then pc.setqf("Guthaben"), pc.getqf("Guthaben")-10) pc.give_item2(80014, 1) else say("Du hast nicht genug Punkte") return end if y == 2 then if pc.getqf("Guthaben") >= 50 then pc.setqf("Guthaben"), pc.getqf("Guthaben")-50) pc.give_item2(80015, 1) else say("Du hast nicht genug Punkte") return end if y == 3 then if pc.getqf("Guthaben") >= 100 then pc.setqf("Guthaben"), pc.getqf("Guthaben")-100) pc.give_item2(80016, 1) else say("Du hast nicht genug Punkte") return end if y == 4 then if pc.getqf("Guthaben") >= 500 then pc.setqf("Guthaben"), pc.getqf("Guthaben")-500) pc.give_item2(80016, 1) pc.give_item2(80016, 1) pc.give_item2(80016, 1) pc.give_item2(80016, 1) pc.give_item2(80016, 1) else say("Du hast nicht genug Punkte") return end end end if a == 4 then return end end end end
Fehlermeldung:
Error occured on compile Runs/Trump.quest
|
Sorry, muss zugeben hast dir mühe gegeben aber das so extrem lang... vefasse dich mal mit tables.. sieht schicker aus und macht den code theoretisch gleich 85% kleiner...
mfg Risan
|
|
|
04/23/2017, 20:45
|
#12520
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by Mytho2
PHP Code:
quest Trump begin state start begin when login with pc.getqf("start") == 0 begin pc.setqf("Guthaben", 0) pc.setqf("start", 1) set_state(affe) end end state affe begin when 20041.chat."Items Umtauschen" begin say_title("Items Umtauschen") say("Hier kannst du deine Uppitems") say("gegen Punkte eintauschen, welche") say("du gegen Itemshop-Coins tauschen kannst.") say("") say("Was möchtest du tun?") local a = select("Guthaben abfragen","Items eintauschen","Punkte eintauschen","Nichts") if a == 1 then say_title("Guthaben") say("Dein Guthaben beträgt "..pc.getqf("Guthaben").." Punkte.") end if a == 2 then say_title("Items eintauschen") say("") say("Welche Art von Item möchtest du eintauschen?") say("") local i = select("Beran-Setaou","Azrael","Metinstein") if i == 1 then say_title("Beran-Setaou") say("") say("Welches Item möchtest du eintauschen?") say("") local o = select("Drachenschuppe","Drachenkralle","Traktat zur Fechtkunst") if o = 1 then say_title("Drachenschuppe") say("") say("Eine Drachenschuppe ist 4 Punkte wert.") say("Wie viele Drachenschuppen möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(71123) >= 1 then pc.remove_item(71123,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+4) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(71123) >= 5 then pc.remove_item(71123,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+20) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(71123) >= 10 then pc.remove_item(71123,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+40) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(71123) >= 50 then pc.remove_item(71123,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+200) else say("Du hast nicht genug Items.") return end end end if o = 2 then say_title("Drachenkralle") say("") say("Eine Drachenkralle ist 4 Punkte wert.") say("Wie viele Drachenkrallen möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(71129) >= 1 then pc.remove_item(71129,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+4) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(71129) >= 5 then pc.remove_item(71129,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+20) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(71129) >= 10 then pc.remove_item(71129,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+40) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(71129) >= 50 then pc.remove_item(71129,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+200) else say("Du hast nicht genug Items.") return end end end if o = 3 then say_title("Traktat zur Fechtkunst") say("") say("Ein Traktat zur Fechtkunst ist 2 Punkte wert.") say("Wie viele Traktate zur Fechtkunst möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(70031) >= 1 then pc.remove_item(70031,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+2) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(70031) >= 5 then pc.remove_item(70031,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+10) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(70031) >= 10 then pc.remove_item(70031,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+20) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(70031) >= 50 then pc.remove_item(70031,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+100) else say("Du hast nicht genug Items.") return end end end end if i == 2 then say_title("Azrael") say("") say("Welches Item möchtest du eintauschen?") say("") local o = select("Gegenstand Verhexen","gegenstand Verzaubern","Azraels Herz") if o = 1 then say_title("Gegenstand Verhexen") say("") say("Ein Gegenstand Verhexen ist 1 Punkt wert.") say("Wie viele Gegenstand Verhexen möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(71052) >= 1 then pc.remove_item(71052,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+1) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(71052) >= 5 then pc.remove_item(71052,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+5) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(71052) >= 10 then pc.remove_item(71052,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+10) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(71052) >= 50 then pc.remove_item(71052,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+50) else say("Du hast nicht genug Items.") return end end end if o = 2 then say_title("Gegenstand Segnen") say("") say("Ein Gegenstand Segnen ist 1 Punkt wert.") say("Wie viele Gegenstand Segnen möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(71051) >= 1 then pc.remove_item(71051,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+1) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(71051) >= 5 then pc.remove_item(71051,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+5) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(71051) >= 10 then pc.remove_item(71051,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+10) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(71051) >= 50 then pc.remove_item(71051,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+50) else say("Du hast nicht genug Items.") return end end end if o = 3 then say_title("Azraels Herz") say("") say("Ein Azraels Herz ist 4 Punkte wert.") say("Wie viele Azraels Herzen möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(70022) >= 1 then pc.remove_item(70022,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+4) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(70022) >= 5 then pc.remove_item(70022,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+20) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(70022) >= 10 then pc.remove_item(70022,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+40) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(70022) >= 50 then pc.remove_item(70022,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+200) else say("Du hast nicht genug Items.") return end end end end if i == 3 then say_title("Metinsteine") say("") say("Welches Item möchtest du eintauschen?") say("") local o = select("Blaudrachenstahl","Rotdrachenstahl","Wasserstein","Tränen Baljit-Elvedins") if o = 1 then say_title("Blaudrachenstahl") say("") say("Ein Blaudrachenstahl ist 1 Punkt wert.") say("Wie viel Blaudrachenstahl möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(30509) >= 1 then pc.remove_item(30509,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+1) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(30509) >= 5 then pc.remove_item(30509,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+5) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(30509) >= 10 then pc.remove_item(30509,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+10) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(30509) >= 50 then pc.remove_item(30509,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+50) else say("Du hast nicht genug Items.") return end end end if o = 2 then say_title("Rotdrachenstahl") say("") say("Ein Rotdrachenstahl ist 2 Punkt wert.") say("Wie viel Rotdrachenstahl möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(30512) >= 1 then pc.remove_item(30512,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+2) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(30512) >= 5 then pc.remove_item(30512,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+10) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(30512) >= 10 then pc.remove_item(30512,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+20) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(30512) >= 50 then pc.remove_item(30512,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+100) else say("Du hast nicht genug Items.") return end end end if o = 3 then say_title("Wasserstein") say("") say("Ein Wasserstein ist 3 Punkte wert.") say("Wie viele Wassersteine möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(90005) >= 1 then pc.remove_item(90005,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+3) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(90005) >= 5 then pc.remove_item(90005,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+15) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(90005) >= 10 then pc.remove_item(90005,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+30) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(90005) >= 50 then pc.remove_item(90005,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+150) else say("Du hast nicht genug Items.") return end end end if o = 4 then say_title("Tränen Baljit-Elvedins") say("") say("Eine Tränen Baljit-Elvedins ist 1 Punkt wert.") say("Wie viele Tränen Baljit-Elvedins möchtest du eintauschen?") say("") local p = select("1","5","10","50") if p == 1 then if pc.count_item(30189) >= 1 then pc.remove_item(30189,1) pc.setqf("Guthaben", pc.getqf("Guthaben")+1) else say("Du hast nicht genug Items.") return end end if p == 2 then if pc.count_item(30189) >= 5 then pc.remove_item(30189,5) pc.setqf("Guthaben", pc.getqf("Guthaben")+5) else say("Du hast nicht genug Items.") return end end if p == 3 then if pc.count_item(30189) >= 10 then pc.remove_item(30189,10) pc.setqf("Guthaben", pc.getqf("Guthaben")+10) else say("Du hast nicht genug Items.") return end end if p == 4 then if pc.count_item(30189) >= 50 then pc.remove_item(30189,50) pc.setqf("Guthaben", pc.getqf("Guthaben")+50) else say("Du hast nicht genug Items.") return end end end end end if a == 3 then say_title("Punkte eintauschen") say("") say("Hier kannst du deine Punkte gegen") say("Coins tauschen. Für 10 Punkte") say("bekommst du 100 Coins.") say("") say("Wie viele Punkte möchtest du eintauschen?") say("") local y = select("10","50","100","500") if y == 1 then if pc.getqf("Guthaben") >= 10 then pc.setqf("Guthaben"), pc.getqf("Guthaben")-10) pc.give_item2(80014, 1) else say("Du hast nicht genug Punkte") return end if y == 2 then if pc.getqf("Guthaben") >= 50 then pc.setqf("Guthaben"), pc.getqf("Guthaben")-50) pc.give_item2(80015, 1) else say("Du hast nicht genug Punkte") return end if y == 3 then if pc.getqf("Guthaben") >= 100 then pc.setqf("Guthaben"), pc.getqf("Guthaben")-100) pc.give_item2(80016, 1) else say("Du hast nicht genug Punkte") return end if y == 4 then if pc.getqf("Guthaben") >= 500 then pc.setqf("Guthaben"), pc.getqf("Guthaben")-500) pc.give_item2(80016, 1) pc.give_item2(80016, 1) pc.give_item2(80016, 1) pc.give_item2(80016, 1) pc.give_item2(80016, 1) else say("Du hast nicht genug Punkte") return end end end if a == 4 then return end end end end
Fehlermeldung:
Error occured on compile Runs/Trump.quest
|
Ich stimme Risan zu. Du solltest immer vermeiden Code doppelt zu schreiben. Das birgt Raum für Fehler und dadurch unerwünschtes Verhalten der Quest und ist natürlich auch deutlich schwerer anzupassen.
Da du die Quest selbst geschrieben hast gehe ich davon aus, dass du mein Beispiel relativ eigenständig erweitern kannst, falls nicht melde dich einfach hier im Thread.
Die erste state ist nicht nötig, eine Questflag, die noch nicht explizit gesetzt wurde, gibt beim Anfordern des Wertes 0 zurück. Diesen Wert also Anfangs mithilfe einer anderen State auf 0 zu setzen ist nicht nötig.
Das Eintauschen von Punkten zu Coins habe ich noch nicht umgesetzt, daran kannst du dich ja mal versuchen
Code:
quest item_exchange begin
state start begin
function getSettings()
if not item_exchange.settings then
item_exchange.settings = {
ITEM_EXCHANGE = {
{
name = "Beran-Setaou",
items = {
{vnum = 71123, value = 4},
{vnum = 71129, value = 4},
{vnum = 70031, value = 2},
}
},
{
name = "Azrael",
items = {
{vnum = 71123, value = 4},
{vnum = 71129, value = 4},
{vnum = 70031, value = 2},
}
},
{
name = "Metinstein",
items = {
{vnum = 71123, value = 4},
{vnum = 71129, value = 4},
{vnum = 70031, value = 2},
}
},
},
}
end
return item_exchange.settings
end
when 20041.chat."Items Umtauschen" begin
say_title("Items Umtauschen")
say("Hier kannst du deine Uppitems")
say("gegen Punkte eintauschen, welche")
say("du gegen Itemshop-Coins tauschen kannst.")
say("")
say("Was möchtest du tun?")
local target = ({item_exchange.showShowCreditMenu, item_exchange.showExchangeItemMenu, item_exchange.showExchangeCreditMenu})[select("Guthaben abfragen", "Items eintauschen", "Punkte eintauschen", "Nichts")]
if not target then return end
local settings = item_exchange.getSettings()
target(settings)
end
function showExchangeItemMenu(settings)
item_exchange.showExchangeItemCategories({name = "Hauptmenü", categories = settings.ITEM_EXCHANGE})
end
function showExchangeItemCategories(category)
say_title("Items eintauschen")
say("Wähle eine Kategorie")
local categoryNames = {}
for _, subCategory in ipairs(category.categories) do
table.insert(categoryNames, subCategory.name)
end
table.insert(categoryNames, "Abbrechen")
local selectedCategory = category.categories[select_table(categoryNames)]
if not selectedCategory then return end
if selectedCategory.items then
item_exchange.showExchangeItemCategoryItems(selectedCategory)
elseif selectedCategory.categories then
item_exchange.showExchangeItemCategories(selectedCategory)
else
say("Diese Kategorie enthält weder Items noch Unterkategorien.")
end
end
function showExchangeItemCategoryItems(category)
say_title("Items eintauschen")
say(string.format("Wähle ein Item aus der Kategorie %s", category.name))
local itemNames = {}
for _, item in ipairs(category.items) do
table.insert(itemNames, item_name(item.vnum))
end
table.insert(itemNames, "Abbrechen")
local selectedItem = category.items[select_table(itemNames)]
if not selectedItem then return end
local itemName = item_name(selectedItem.vnum)
say_title(itemName)
say("")
say(string.format("Ein %s ist %d Punkte wert.", itemName, selectedItem.value))
say(string.format("Wie viele %s möchtest du eintauschen?", itemName))
say("Die Eingabe muss zwischen 1 und 200 liegen.")
local exchangeCount = tonumber(input())
if not exchangeCount or exchangeCount < 1 or exchangeCount > 200 then
say("Ungültige Eingabe")
else
local realExchangeCount = math.min(exchangeCount, pc.count_item(selectedItem.vnum))
if realExchangeCount >= 1 then
pc.remove_item(selectedItem.vnum, realExchangeCount)
item_exchange.addToCredit(selectedItem.value * realExchangeCount)
else
say("Du besitzt das benötigte Item nicht.")
end
end
end
function showExchangeCreditMenu(settings)
say_title("Guthaben eintauschen")
say("Noch nicht umgesetzt")
end
function showShowCreditMenu(settings)
say_title("Guthaben")
say(string.format("Dein Guthaben beträgt %d Punkte.", item_exchange.getCredit()))
end
function getCredit()
return pc.getqf("credit")
end
function addToCredit(value)
pc.setqf("credit", item_exchange.getCredit() + value)
end
function removeFromCredit(value)
pc.setqf("credit", item_exchange.getCredit() - value)
end
end
end
|
|
|
05/01/2017, 10:16
|
#12521
|
elite*gold: 50
Join Date: Aug 2014
Posts: 508
Received Thanks: 201
|
Könnte mir bitte einmal über die Quest schauen?
Bekomme dort einen compile Fehler in der 6. Zeile:
PHP Code:
quest warpring begin state start begin when letter begin cmdchat("OpenTP "..q.getcurrentquestindex()) end say_title("Warpring") say("Wohin möchtest du Teleportiert werden?") local empire = pc.get_empire() local selectmap = select("Map1","Wüste","Abbrechen") if selectmap == 3 then return elseif selectmap == 2 then say_title("Warpring") say("Wohin möchtest du Teleportiert werden?") local wuestenselect = select("Anfang","Abbrechen") if wuestenselect == 2 then return elseif wuestenselect == 1 then pc.warp(290500,5700) end elseif selectmap == 1 then say_title("Warpring") say("Wohin möchtest du Teleportiert werden?") local map1select = select("Rotes Reich","Gelbes Reich","Blaues Reich","Abbrechen") if map1select == 4 then return elseif map1select == 1 then pc.warp(474300, 954800) elseif map1select == 2 then pc.warp(63800, 166400) elseif map1select == 3 then pc.warp(959900, 269200) end end end end
|
|
|
05/02/2017, 14:45
|
#12522
|
elite*gold: 30
Join Date: Jul 2010
Posts: 1,627
Received Thanks: 1,450
|
Du musst eine When Bedingung setzen...
PHP Code:
quest warpring begin state start begin when letter begin cmdchat("OpenTP "..q.getcurrentquestindex()) end --[[ Hier muss eine Bedingung stehen. (When UseIem oder chat vom npc) beispiel: ]] when 9010.chat."Warpring" begin say_title("Warpring") say("Wohin möchtest du Teleportiert werden?") local empire = pc.get_empire() local selectmap = select("Map1","Wüste","Abbrechen") if selectmap == 3 then return elseif selectmap == 2 then say_title("Warpring") say("Wohin möchtest du Teleportiert werden?") local wuestenselect = select("Anfang","Abbrechen") if wuestenselect == 2 then return elseif wuestenselect == 1 then pc.warp(290500,5700) end elseif selectmap == 1 then say_title("Warpring") say("Wohin möchtest du Teleportiert werden?") local map1select = select("Rotes Reich","Gelbes Reich","Blaues Reich","Abbrechen") if map1select == 4 then return elseif map1select == 1 then pc.warp(474300, 954800) elseif map1select == 2 then pc.warp(63800, 166400) elseif map1select == 3 then pc.warp(959900, 269200) end end end end end
|
|
|
05/02/2017, 15:45
|
#12523
|
elite*gold: 50
Join Date: Aug 2014
Posts: 508
Received Thanks: 201
|
Quote:
Originally Posted by .Risan.
Du musst eine When Bedingung setzen...
PHP Code:
quest warpring begin state start begin when letter begin cmdchat("OpenTP "..q.getcurrentquestindex()) end --[[ Hier muss eine Bedingung stehen. (When UseIem oder chat vom npc) beispiel: ]] when 9010.chat."Warpring" begin say_title("Warpring") say("Wohin möchtest du Teleportiert werden?") local empire = pc.get_empire() local selectmap = select("Map1","Wüste","Abbrechen") if selectmap == 3 then return elseif selectmap == 2 then say_title("Warpring") say("Wohin möchtest du Teleportiert werden?") local wuestenselect = select("Anfang","Abbrechen") if wuestenselect == 2 then return elseif wuestenselect == 1 then pc.warp(290500,5700) end elseif selectmap == 1 then say_title("Warpring") say("Wohin möchtest du Teleportiert werden?") local map1select = select("Rotes Reich","Gelbes Reich","Blaues Reich","Abbrechen") if map1select == 4 then return elseif map1select == 1 then pc.warp(474300, 954800) elseif map1select == 2 then pc.warp(63800, 166400) elseif map1select == 3 then pc.warp(959900, 269200) end end end end end
|
Dafür steht doch oben
"when letter begin" . Die Quest soll ja per Button geöffnet werden?
|
|
|
05/02/2017, 17:47
|
#12524
|
elite*gold: 30
Join Date: Jul 2010
Posts: 1,627
Received Thanks: 1,450
|
Probiere das mal:
PHP Code:
quest warpring begin state start begin when letter or button begin cmdchat("OpenTP "..q.getcurrentquestindex()) say_title("Warpring") say("Wohin möchtest du Teleportiert werden?") local selectmap = select("Map1","Wüste","Abbrechen") if selectmap == 2 then say_title("Warpring") say("Wohin möchtest du Teleportiert werden?") if select("Anfang","Abbrechen") == 1 then pc.warp(290500,5700) end elseif selectmap == 1 then say_title("Warpring") say("Wohin möchtest du Teleportiert werden?") local map1select = select("Rotes Reich","Gelbes Reich","Blaues Reich","Abbrechen") local warps = { {474300, 95480},{63800, 166400 } , {959900, 269200} } if map1select == 4 then return else pc.warp( warps[map1select][1],warps[map1select][2] ) end --map1select end end --selectmap end end --when end end end
habs nicht getestet, nur rein theoretisch
|
|
|
05/04/2017, 10:25
|
#12525
|
elite*gold: 50
Join Date: Aug 2014
Posts: 508
Received Thanks: 201
|
Hab es anders gelöst, aber deine Variante funktioniert auch!
Danke.
|
|
|
All times are GMT +2. The time now is 08:23.
|
|