|
You last visited: Today at 04:14
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
07/12/2013, 02:49
|
#8521
|
elite*gold: 0
Join Date: Nov 2008
Posts: 569
Received Thanks: 103
|
Ich brauche nochmal eure hilfe^^
Und zwar will ich aus der quest datenbank eine
Code:
game.set_event_flag
komplett rauslöschen, ich habe es so versucht
Code:
local name = pc.get_name()
locale del = mysql_query("DELETE FROM player.quest WHERE ""..name.."kg")
funzt aber nicht, gibt in der console dann einen error.
wer von euch kann mir diesmal aus der patsche helfen? ^-^
|
|
|
07/12/2013, 04:05
|
#8522
|
elite*gold: 10
Join Date: Jun 2012
Posts: 2,932
Received Thanks: 656
|
Ich hätte wieder gerne eine Quest kontrolliert, da ich sie selbst nicht testen kann.
Tut mir leid wegen der Umstände.
Code:
quest Gruppenarbeit begin
state start begin
when pc.get_level == 155 begin
say_title ("Gruppenarbeit")
say ("Hey! Man braucht deine Hilfe, doch du alleine")
say (" reichst nicht. Bewältige MAPNAME in einer Gruppe")
say (" und erreiche Level 170 um eine Belohnung zu erhalten.")
set_state(170)
end
end
state 170 begin
when pc.get_level == 170 begin
say_titel ("Erfolg!")
say ("Du hast die Aufgabe bewältigt.")
say ("Als Belohnung erhälst du 10 Goldklumpen!")
say ("Viel Spaß noch weiterhin.")
pc.give_item2(VNUM)
end
end
end
Außerdem wollte ich fragen wann ich "return" benutzen muss und wann nicht.
Würde bei meiner Quest das Fenster von alleine weg gehen und kann man das so überhaupt machen, das einfach aus dem Nichts ein Fenster auftaucht?
Mfg,
Vegaaz
|
|
|
07/12/2013, 05:18
|
#8523
|
elite*gold: 222
Join Date: Oct 2012
Posts: 2,369
Received Thanks: 3,389
|
Quote:
Originally Posted by Vegaaz
Ich hätte wieder gerne eine Quest kontrolliert, da ich sie selbst nicht testen kann.
Tut mir leid wegen der Umstände.
Code:
quest Gruppenarbeit begin
state start begin
when pc.get_level == 155 begin
say_title ("Gruppenarbeit")
say ("Hey! Man braucht deine Hilfe, doch du alleine")
say (" reichst nicht. Bewältige MAPNAME in einer Gruppe")
say (" und erreiche Level 170 um eine Belohnung zu erhalten.")
set_state(170)
end
end
state 170 begin
when pc.get_level == 170 begin
say_titel ("Erfolg!")
say ("Du hast die Aufgabe bewältigt.")
say ("Als Belohnung erhälst du 10 Goldklumpen!")
say ("Viel Spaß noch weiterhin.")
pc.give_item2(VNUM)
end
end
end
Außerdem wollte ich fragen wann ich "return" benutzen muss und wann nicht.
Würde bei meiner Quest das Fenster von alleine weg gehen und kann man das so überhaupt machen, das einfach aus dem Nichts ein Fenster auftaucht?
Mfg,
Vegaaz
|
Code:
quest gruppenarbeit begin
state start begin
when levelup begin
if pc.get_level() == 155 then
say_title ("Gruppenarbeit")
say ("Hey! Man braucht deine Hilfe, doch du alleine")
say (" reichst nicht. Bewältige MAPNAME in einer Gruppe")
say (" und erreiche Level 170 um eine Belohnung zu erhalten.")
elseif pc.get_level() == 170 then
say_titel ("Erfolg!")
say ("Du hast die Aufgabe bewältigt.")
say ("Als Belohnung erhälst du 10 Goldklumpen!")
say ("Viel Spaß noch weiterhin.")
pc.give_item2(VNUM, ANZAHL)
end
end
end
end
- Questname darf NIE großgeschrieben werden, also NICHT Gruppenarbeit sondern gruppenarbeit
- Du kannst keine variable direkt abfragen (in dem fall pc.get_level()) sondern musst erst eine vorvariable oder so abrufen (levelup in dem Fall)
Zu deiner Frage:
- du kannst return zum zurückgeben eines Werts & zum abbrechen benutzen.
Beispiele:
zurückgeben eines Werts (Zahl - number) (questflag)
PHP Code:
return tonumber(pc.getqf("kills"))
abbrechen
PHP Code:
local x = select("Bla","Abbrechen")
if x == 1 then
chat("blabla")
elseif x == 2 then
return
end
|
|
|
07/12/2013, 11:29
|
#8524
|
elite*gold: 435
Join Date: Nov 2009
Posts: 602
Received Thanks: 194
|
PHP Code:
quest test_123 begin state start begin when login or levelup with pc.get_level() == 40 begin set_state( gotoinfomation ) end end state gotoinfomation begin when letter begin send_letter("Gehe zum Hauptmann") end when button or info begin say_title("Gehe zum Hauptmann") say("") ----"123456789012345678901234567890123456789012345678901234567890"| say("") say("") say("") say("") say("") say("") say("") say("") wait() set_state( gotoguard ) end end end state gotoguard begin when letter begin local v=find_npc_by_vnum(20355) if 0==v then else target.vid("__TARGET__", v, "Gehe zum Hauptmann") end end when letter begin send_letter("Gehe zum Hauptmann") end when button or info begin say_title("Gehe zum Hauptmann") say("Suche den Hauptmann auf der Karte.") say("") ----------"12345678901234567890123456789012345678901234567890"| say_reward("") say_reward("") say("") end when __TARGET__.target.click begin target.delete("__TARGET__") say("Hauptmann:")
----"12345678901234567890123456789012345678901234567890"| say("") say("") wait() say("Hauptmann:") say("") clear_letter()
set_state( stone ) end state stone begin when letter begin send_letter("Zerstöre die Steine") end when button or info begin say_title("Der ewige Kampf") say("Zerstöre Metinsteine im") say("Orktal um die Lage unter") say("Kontrolle zu bekommen.") end when 8001.kill begin local pct = number(1,200) if pct==5 then clear_letter() chat("Genug für den Anfang...") set_state(guard2) end end end end state guard2 begin when letter begin send_letter("Zurück zum Hauptmann") local v = find_npc_by_vnum(20355) if v != 0 then target.vid("target2", v, "Hauptmann") end end when button or info begin say_title("") say("Du hast genug Steine zerstört,") end when target2.target.click or 20355.chat."blablabla" begin target.delete("target2") say_title("") say("") pc.give_item2(19, 2) pc.give_item2(29, 2) pc.give_item2(39, 2) clear_letter() end end set_state ( __COMPLETE__ ) set_quest_state("test_12345","run") end state __COMPLETE__ begin end end
die quest will irgendwie nicht was ist den daran flasch ?
|
|
|
07/12/2013, 12:31
|
#8525
|
elite*gold: 0
Join Date: Jul 2012
Posts: 1,036
Received Thanks: 328
|
Quote:
Originally Posted by Michi1994
PHP Code:
quest test_123 begin
state start begin
when login or levelup with pc.get_level() == 40 begin
set_state( gotoinfomation )
end
end
state gotoinfomation begin
when letter begin
send_letter("Gehe zum Hauptmann")
end
when button or info begin
say_title("Gehe zum Hauptmann")
say("")
----"123456789012345678901234567890123456789012345678901234567890"|
say("")
say("")
say("")
say("")
say("")
say("")
say("")
say("")
wait()
set_state( gotoguard )
end
end
end
state gotoguard begin
when letter begin
local v=find_npc_by_vnum(20355)
if 0==v then
else
target.vid("__TARGET__", v, "Gehe zum Hauptmann")
end
end
when letter begin
send_letter("Gehe zum Hauptmann")
end
when button or info begin
say_title("Gehe zum Hauptmann")
say("Suche den Hauptmann auf der Karte.")
say("")
----------"12345678901234567890123456789012345678901234567890"|
say_reward("")
say_reward("")
say("")
end
when __TARGET__.target.click begin
target.delete("__TARGET__")
say("Hauptmann:")
----"12345678901234567890123456789012345678901234567890"|
say("")
say("")
wait()
say("Hauptmann:")
say("")
clear_letter()
set_state( stone )
end
state stone begin
when letter begin
send_letter("Zerstöre die Steine")
end
when button or info begin
say_title("Der ewige Kampf")
say("Zerstöre Metinsteine im")
say("Orktal um die Lage unter")
say("Kontrolle zu bekommen.")
end
when 8001.kill begin
local pct = number(1,200)
if pct==5 then
clear_letter()
chat("Genug für den Anfang...")
set_state(guard2)
end
end
end
end
state guard2 begin
when letter begin
send_letter("Zurück zum Hauptmann")
local v = find_npc_by_vnum(20355)
if v != 0 then
target.vid("target2", v, "Hauptmann")
end
end
when button or info begin
say_title("")
say("Du hast genug Steine zerstört,")
end
when target2.target.click or 20355.chat."blablabla" begin
target.delete("target2")
say_title("")
say("")
pc.give_item2(19, 2)
pc.give_item2(29, 2)
pc.give_item2(39, 2)
clear_letter()
end
end
set_state ( __COMPLETE__ )
set_quest_state("test_12345","run")
end
state __COMPLETE__ begin
end
end
die quest will irgendwie nicht was ist den daran flasch ?
|
PHP Code:
quest test_123 begin
state start begin
when login or levelup with pc.get_level() == 40 begin
set_state( gotoinfomation )
end
end
state gotoinfomation begin
when letter begin
send_letter("Gehe zum Hauptmann")
end
when button or info begin
say_title("Gehe zum Hauptmann")
say("")
----"123456789012345678901234567890123456789012345678901234567890"|
say("")
say("")
say("")
say("")
say("")
say("")
say("")
say("")
wait()
set_state( gotoguard )
end
end
end
state gotoguard begin
when letter begin
local v=find_npc_by_vnum(20355)
if 0==v then
else
target.vid("__TARGET__", v, "Gehe zum Hauptmann")
end
end
when letter begin
send_letter("Gehe zum Hauptmann")
end
when button or info begin
say_title("Gehe zum Hauptmann")
say("Suche den Hauptmann auf der Karte.")
say("")
----------"12345678901234567890123456789012345678901234567890"|
say_reward("")
say_reward("")
say("")
end
when __TARGET__.target.click begin
target.delete("__TARGET__")
say("Hauptmann:")
----"12345678901234567890123456789012345678901234567890"|
say("")
say("")
wait()
say("Hauptmann:")
say("")
clear_letter()
set_state( stone )
end
state stone begin
when letter begin
send_letter("Zerstöre die Steine")
end
when button or info begin
say_title("Der ewige Kampf")
say("Zerstöre Metinsteine im")
say("Orktal um die Lage unter")
say("Kontrolle zu bekommen.")
end
when 8001.kill begin
local pct = number(1,200)
if pct==5 then
clear_letter()
chat("Genug für den Anfang...")
set_state(guard2)
end
end
end
end
state guard2 begin
when letter begin
send_letter("Zurück zum Hauptmann")
local v = find_npc_by_vnum(20355)
if v != 0 then
target.vid("target2", v, "Hauptmann")
end
end
when button or info begin
say_title("")
say("Du hast genug Steine zerstört,")
end
when target2.target.click or 20355.chat."blablabla" begin
target.delete("target2")
say_title("")
say("")
pc.give_item2(19, 2)
pc.give_item2(29, 2)
pc.give_item2(39, 2)
clear_letter()
end
end
set_state ( __COMPLETE__ )
set_quest_state("test_12345","run")
end
state __COMPLETE__ begin
end
end
end
Versuchs mal so.
|
|
|
07/12/2013, 12:46
|
#8526
|
elite*gold: 435
Join Date: Nov 2009
Posts: 602
Received Thanks: 194
|
test_123.quest:28:must start with 'quest'
Error occured on compile test_123.quest
ne geht nicht
|
|
|
07/12/2013, 14:15
|
#8527
|
elite*gold: 0
Join Date: May 2011
Posts: 106
Received Thanks: 22
|
hab nen problem mit ner quest
Code:
quest tausch begin
state start begin
when 9010.chat."Tauschsystem" begin
say("Hier kannst du die legendaeren Saende gegen")
say("Rohdiamanten eintauschen")
local s = select("Blauer Sand","Roter Sand","Gruener Sand","Weisser Sand","Schwarzer Sand","Orangener Sand","Abbrechen")
if s==1 then
if pc.countitem(102101) >=5 then
pc.removeitem(102101,5)
pc.give_item2(102041, 1)
end
else
say_reward("Du hast nicht genug Sand komme wieder wenn du mindestens")
say_reward("5 Stück hast!")
return
end
elseif s==2 then
if pc.countitem(102102) >=5 then
pc.removeitem(102102,5)
pc.give_item2(102042, 1)
end
else
say_reward("Du hast nicht genug Sand komme wieder wenn du mindestens")
say_reward("5 Stueck hast!")
return
end
elseif s==3 then
if pc.countitem(102103) >=5 then
pc.removeitem(102103,5)
pc.give_item2(102043, 1)
end
else
say_reward("Du hast nicht genug Sand komme wieder wenn du mindestens")
say_reward("5 Stueck hast!")
return
end
elseif s==4 then
if pc.countitem(102104) >=5 then
pc.removeitem(102104,5)
pc.give_item2(102044, 1)
end
else
say_reward("Du hast nicht genug Sand komme wieder wenn du mindestens")
say_reward("5 Stueck hast!")
return
end
elseif s==5 then
if pc.countitem(102105) >=5 then
pc.removeitem(102105,5)
pc.give_item2(102045, 1)
end
else
say_reward("Du hast nicht genug Sand komme wieder wenn du mindestens")
say_reward("5 Stueck hast!")
return
end
elseif s==6 then
if pc.countitem(102100) >=5 then
pc.removeitem(102100,5)
pc.give_item2(102040, 1)
end
else
say_reward("Du hast nicht genug Sand komme wieder wenn du mindestens")
say_reward("5 Stueck hast!")
return
end
else
return
end
end
end
end
|
|
|
07/12/2013, 14:28
|
#8528
|
elite*gold: 150
Join Date: Sep 2009
Posts: 855
Received Thanks: 486
|
Quote:
Originally Posted by GoldenLegend
hab nen problem mit ner quest
Code:
quest tausch begin
state start begin
when 9010.chat."Tauschsystem" begin
say("Hier kannst du die legendaeren Saende gegen")
say("Rohdiamanten eintauschen")
local s = select("Blauer Sand","Roter Sand","Gruener Sand","Weisser Sand","Schwarzer Sand","Orangener Sand","Abbrechen")
if s==1 then
if pc.countitem(102101) >=5 then
pc.removeitem(102101,5)
pc.give_item2(102041, 1)
end
else
say_reward("Du hast nicht genug Sand komme wieder wenn du mindestens")
say_reward("5 Stück hast!")
return
end
elseif s==2 then
if pc.countitem(102102) >=5 then
pc.removeitem(102102,5)
pc.give_item2(102042, 1)
end
else
say_reward("Du hast nicht genug Sand komme wieder wenn du mindestens")
say_reward("5 Stueck hast!")
return
end
elseif s==3 then
if pc.countitem(102103) >=5 then
pc.removeitem(102103,5)
pc.give_item2(102043, 1)
end
else
say_reward("Du hast nicht genug Sand komme wieder wenn du mindestens")
say_reward("5 Stueck hast!")
return
end
elseif s==4 then
if pc.countitem(102104) >=5 then
pc.removeitem(102104,5)
pc.give_item2(102044, 1)
end
else
say_reward("Du hast nicht genug Sand komme wieder wenn du mindestens")
say_reward("5 Stueck hast!")
return
end
elseif s==5 then
if pc.countitem(102105) >=5 then
pc.removeitem(102105,5)
pc.give_item2(102045, 1)
end
else
say_reward("Du hast nicht genug Sand komme wieder wenn du mindestens")
say_reward("5 Stueck hast!")
return
end
elseif s==6 then
if pc.countitem(102100) >=5 then
pc.removeitem(102100,5)
pc.give_item2(102040, 1)
end
else
say_reward("Du hast nicht genug Sand komme wieder wenn du mindestens")
say_reward("5 Stueck hast!")
return
end
else
return
end
end
end
end
|
PHP Code:
quest tausch begin
state start begin
when 9010.chat."Tauschsystem" begin
say("Hier kannst du die legendaeren Saende gegen")
say("Rohdiamanten eintauschen")
local s = select("Blauer Sand","Roter Sand","Gruener Sand","Weisser Sand","Schwarzer Sand","Orangener Sand","Abbrechen")
if s==1 then
if pc.countitem(102101) >=5 then
pc.removeitem(102101,5)
pc.give_item2(102041, 1)
else
say_reward("Du hast nicht genug Sand komme wieder wenn du mindestens")
say_reward("5 Stück hast!")
return
end
elseif s==2 then
if pc.countitem(102102) >=5 then
pc.removeitem(102102,5)
pc.give_item2(102042, 1)
else
say_reward("Du hast nicht genug Sand komme wieder wenn du mindestens")
say_reward("5 Stueck hast!")
return
end
elseif s==3 then
if pc.countitem(102103) >=5 then
pc.removeitem(102103,5)
pc.give_item2(102043, 1)
else
say_reward("Du hast nicht genug Sand komme wieder wenn du mindestens")
say_reward("5 Stueck hast!")
return
end
elseif s==4 then
if pc.countitem(102104) >=5 then
pc.removeitem(102104,5)
pc.give_item2(102044, 1)
else
say_reward("Du hast nicht genug Sand komme wieder wenn du mindestens")
say_reward("5 Stueck hast!")
return
end
elseif s==5 then
if pc.countitem(102105) >=5 then
pc.removeitem(102105,5)
pc.give_item2(102045, 1)
else
say_reward("Du hast nicht genug Sand komme wieder wenn du mindestens")
say_reward("5 Stueck hast!")
return
end
elseif s==6 then
if pc.countitem(102100) >=5 then
pc.removeitem(102100,5)
pc.give_item2(102040, 1)
else
say_reward("Du hast nicht genug Sand komme wieder wenn du mindestens")
say_reward("5 Stueck hast!")
return
end
else
return
end
end
end
end
|
|
|
07/12/2013, 15:56
|
#8529
|
elite*gold: 0
Join Date: Dec 2011
Posts: 449
Received Thanks: 17
|
PHP Code:
quest tausch begin state start begin when 20011.chat."Ninja Ruesstung Eintauschen" begin say_title("Eintauschen") say("Hallo lieber user von ..!") say("Ich bin der Tausch Haendler,") say("Ich tausche bestimmte Ruestungen") wait() say("Ich habe noch ein paar Dinge zu erledigen") say("deswegen Entscheide dich bitte schnell.") say("Du kannst desoefteren zu mir um deine Sachen") say("einzutauschen denn das wuerde mich sehr freuen,") say("da ich ein sehr erfreuter Anti Haendler bin.") say("") say("") say("") say("") wait() say("Also was moechtest du eintauschen ?") local v = select ("VIP-Ninja-Zu-VIP-Krieger", "VIP-Ninja-Zu-VIP-Sura", "VIP-Ninja-Zu-VIP-Schamane", "VIP-Krieger-Zu-VIP-Ninja", "VIP-Krieger-Zu-VIP-Sura", "VIP-Krieger-Zu-VIP-Schamane", "Weiter") if v == 1 then if pc.count_item(12029) >= 1 then pc.remove_item(12029, 1) pc.give_item2(12019, 1) say("Ich freue mich das wir ein Geschaeft") say("machen konnten. Lass dich mal wieder") say("bei mir blicken falls du etwas") say("eintauschen moechtest") say("") say("") say_reward("VIP-Krieger erhalten") else return end elseif v == 2 then if pc.count_item(12029) >= 1 then pc.remove_item(12029, 1) pc.give_item2(12039, 1) say("Ich freue mich das wir ein Geschaeft") say("machen konnten. Lass dich mal wieder") say("bei mir blicken falls du etwas") say("eintauschen moechtest") say("") say("") say_reward("VIP-Sura erhalten") else return end elseif v == 3 then if pc.count_item(12029) >= 1 then pc.remove_item(12029, 1) pc.give_item2(12049, 1) say("Ich freue mich das wir ein Geschaeft") say("machen konnten. Lass dich mal wieder") say("bei mir blicken falls du etwas") say("eintauschen moechtest") say("") say("") say_reward("VIP-Schamane erhalten") else return end elseif v == 4 then if pc.count_item(12019) >= 1 then pc.remove_item(12019, 1) pc.give_item2(12029, 1) say("Ich freue mich das wir ein Geschaeft") say("machen konnten. Lass dich mal wieder") say("bei mir blicken falls du etwas") say("eintauschen moechtest") say("") say("") say_reward("VIP-Ninja erhalten") else return end elseif v == 5 then if pc.count_item(12019) >= 1 then pc.remove_item(12019, 1) pc.give_item2(12039, 1) say("Ich freue mich das wir ein Geschaeft") say("machen konnten. Lass dich mal wieder") say("bei mir blicken falls du etwas") say("eintauschen moechtest") say("") say("") say_reward("VIP-Sura erhalten") else return end elseif v == 6 then if pc.count_item(12019) >= 1 then pc.remove_item(12019, 1) pc.give_item2(12049, 1) say("Ich freue mich das wir ein Geschaeft") say("machen konnten. Lass dich mal wieder") say("bei mir blicken falls du etwas") say("eintauschen moechtest") say("") say("") say_reward("VIP-Schamane erhalten") else return end elseif v == 7 then local v = select ("VIP-Sura-Zu-VIP-Krieger", "VIP-Sura-Zu-VIP-Ninja", "VIP-Sura-Zu-VIP-Schamane", "Schamane-Zu-VIP-Ninja", "VIP-Schamane-Zu-VIP-Sura", "VIP-Schamane-Zu-VIP-Krieger", "Abbrechen") if a == 1 then if pc.count_item(12039 >= 1 then pc.remove_item(12039, 1) pc.give_item2(12019, 1) say("Ich freue mich das wir ein Geschaeft") say("machen konnten. Lass dich mal wieder") say("bei mir blicken falls du etwas") say("eintauschen moechtest") say("") say("") say_reward("VIP-Krieger erhalten") else return end elseif a == 2 then if pc.count_item(12039) >= 1 then pc.remove_item(12039, 1) pc.give_item2(12029, 1) say("Ich freue mich das wir ein Geschaeft") say("machen konnten. Lass dich mal wieder") say("bei mir blicken falls du etwas") say("eintauschen moechtest") say("") say("") say_reward("VIP-Ninja erhalten") else return end elseif a == 3 then if pc.count_item(12039) >= 1 then pc.remove_item(12039, 1) pc.give_item2(12049, 1) say("Ich freue mich das wir ein Geschaeft") say("machen konnten. Lass dich mal wieder") say("bei mir blicken falls du etwas") say("eintauschen moechtest") say("") say("") say_reward("VIP-Schamane erhalten") else return end elseif a == 4 then if pc.count_item(12049) >= 1 then pc.remove_item(12049, 1) pc.give_item2(12029, 1) say("Ich freue mich das wir ein Geschaeft") say("machen konnten. Lass dich mal wieder") say("bei mir blicken falls du etwas") say("eintauschen moechtest") say("") say("") say_reward("VIP-Ninja erhalten") else return end elseif a == 5 then if pc.count_item(12049) >= 1 then pc.remove_item(12049, 1) pc.give_item2(12039, 1) say("Ich freue mich das wir ein Geschaeft") say("machen konnten. Lass dich mal wieder") say("bei mir blicken falls du etwas") say("eintauschen moechtest") say("") say("") say_reward("VIP-Sura erhalten") else return end elseif a == 6 then if pc.count_item(12049) >= 1 then pc.remove_item(12049, 1) pc.give_item2(12019, 1) say("Ich freue mich das wir ein Geschaeft") say("machen konnten. Lass dich mal wieder") say("bei mir blicken falls du etwas") say("eintauschen moechtest") say("") say("") say_reward("VIP-Krieger erhalten") else return end elseif a == 7 then return end end end end end
|
|
|
07/12/2013, 16:03
|
#8530
|
elite*gold: 2
Join Date: Jun 2013
Posts: 1,063
Received Thanks: 1,724
|
Quote:
Originally Posted by rakuz123456
PHP Code:
quest tausch begin
state start begin
when 20011.chat."Ninja Ruesstung Eintauschen" begin
say_title("Eintauschen")
say("Hallo lieber user von Kiyoshi2!")
say("Ich bin der Tausch Haendler,")
say("Ich tausche bestimmte Ruestungen")
wait()
say("Ich habe noch ein paar Dinge zu erledigen")
say("deswegen Entscheide dich bitte schnell.")
say("Du kannst desoefteren zu mir um deine Sachen")
say("einzutauschen denn das wuerde mich sehr freuen,")
say("da ich ein sehr erfreuter Anti Haendler bin.")
say("")
say("")
say("")
say("")
wait()
say("Also was moechtest du eintauschen ?")
local v = select ("VIP-Ninja-Zu-VIP-Krieger", "VIP-Ninja-Zu-VIP-Sura", "VIP-Ninja-Zu-VIP-Schamane", "VIP-Krieger-Zu-VIP-Ninja", "VIP-Krieger-Zu-VIP-Sura", "VIP-Krieger-Zu-VIP-Schamane", "Weiter")
if v == 1 then
if pc.count_item(12029) >= 1 then
pc.remove_item(12029, 1)
pc.give_item2(12019, 1)
say("Ich freue mich das wir ein Geschaeft")
say("machen konnten. Lass dich mal wieder")
say("bei mir blicken falls du etwas")
say("eintauschen moechtest")
say("")
say("")
say_reward("VIP-Krieger erhalten")
else
return
end
elseif v == 2 then
if pc.count_item(12029) >= 1 then
pc.remove_item(12029, 1)
pc.give_item2(12039, 1)
say("Ich freue mich das wir ein Geschaeft")
say("machen konnten. Lass dich mal wieder")
say("bei mir blicken falls du etwas")
say("eintauschen moechtest")
say("")
say("")
say_reward("VIP-Sura erhalten")
else
return
end
elseif v == 3 then
if pc.count_item(12029) >= 1 then
pc.remove_item(12029, 1)
pc.give_item2(12049, 1)
say("Ich freue mich das wir ein Geschaeft")
say("machen konnten. Lass dich mal wieder")
say("bei mir blicken falls du etwas")
say("eintauschen moechtest")
say("")
say("")
say_reward("VIP-Schamane erhalten")
else
return
end
elseif v == 4 then
if pc.count_item(12019) >= 1 then
pc.remove_item(12019, 1)
pc.give_item2(12029, 1)
say("Ich freue mich das wir ein Geschaeft")
say("machen konnten. Lass dich mal wieder")
say("bei mir blicken falls du etwas")
say("eintauschen moechtest")
say("")
say("")
say_reward("VIP-Ninja erhalten")
else
return
end
elseif v == 5 then
if pc.count_item(12019) >= 1 then
pc.remove_item(12019, 1)
pc.give_item2(12039, 1)
say("Ich freue mich das wir ein Geschaeft")
say("machen konnten. Lass dich mal wieder")
say("bei mir blicken falls du etwas")
say("eintauschen moechtest")
say("")
say("")
say_reward("VIP-Sura erhalten")
else
return
end
elseif v == 6 then
if pc.count_item(12019) >= 1 then
pc.remove_item(12019, 1)
pc.give_item2(12049, 1)
say("Ich freue mich das wir ein Geschaeft")
say("machen konnten. Lass dich mal wieder")
say("bei mir blicken falls du etwas")
say("eintauschen moechtest")
say("")
say("")
say_reward("VIP-Schamane erhalten")
else
return
end
elseif v == 7 then
local v = select ("VIP-Sura-Zu-VIP-Krieger", "VIP-Sura-Zu-VIP-Ninja", "VIP-Sura-Zu-VIP-Schamane", "Schamane-Zu-VIP-Ninja", "VIP-Schamane-Zu-VIP-Sura", "VIP-Schamane-Zu-VIP-Krieger", "Abbrechen")
if a == 1 then
if pc.count_item(12039 >= 1 then
pc.remove_item(12039, 1)
pc.give_item2(12019, 1)
say("Ich freue mich das wir ein Geschaeft")
say("machen konnten. Lass dich mal wieder")
say("bei mir blicken falls du etwas")
say("eintauschen moechtest")
say("")
say("")
say_reward("VIP-Krieger erhalten")
else
return
end
elseif a == 2 then
if pc.count_item(12039) >= 1 then
pc.remove_item(12039, 1)
pc.give_item2(12029, 1)
say("Ich freue mich das wir ein Geschaeft")
say("machen konnten. Lass dich mal wieder")
say("bei mir blicken falls du etwas")
say("eintauschen moechtest")
say("")
say("")
say_reward("VIP-Ninja erhalten")
else
return
end
elseif a == 3 then
if pc.count_item(12039) >= 1 then
pc.remove_item(12039, 1)
pc.give_item2(12049, 1)
say("Ich freue mich das wir ein Geschaeft")
say("machen konnten. Lass dich mal wieder")
say("bei mir blicken falls du etwas")
say("eintauschen moechtest")
say("")
say("")
say_reward("VIP-Schamane erhalten")
else
return
end
elseif a == 4 then
if pc.count_item(12049) >= 1 then
pc.remove_item(12049, 1)
pc.give_item2(12029, 1)
say("Ich freue mich das wir ein Geschaeft")
say("machen konnten. Lass dich mal wieder")
say("bei mir blicken falls du etwas")
say("eintauschen moechtest")
say("")
say("")
say_reward("VIP-Ninja erhalten")
else
return
end
elseif a == 5 then
if pc.count_item(12049) >= 1 then
pc.remove_item(12049, 1)
pc.give_item2(12039, 1)
say("Ich freue mich das wir ein Geschaeft")
say("machen konnten. Lass dich mal wieder")
say("bei mir blicken falls du etwas")
say("eintauschen moechtest")
say("")
say("")
say_reward("VIP-Sura erhalten")
else
return
end
elseif a == 6 then
if pc.count_item(12049) >= 1 then
pc.remove_item(12049, 1)
pc.give_item2(12019, 1)
say("Ich freue mich das wir ein Geschaeft")
say("machen konnten. Lass dich mal wieder")
say("bei mir blicken falls du etwas")
say("eintauschen moechtest")
say("")
say("")
say_reward("VIP-Krieger erhalten")
else
return
end
elseif a == 7 then
return
end
end
end
end
end
|
Hey,
PHP Code:
local v = select ("VIP-Sura-Zu-VIP-Krieger", "VIP-Sura-Zu-VIP-Ninja", "VIP-Sura-Zu-VIP-Schamane", "Schamane-Zu-VIP-Ninja", "VIP-Schamane-Zu-VIP-Sura", "VIP-Schamane-Zu-VIP-Krieger", "Abbrechen")
if a == 1 then
if pc.count_item(12039 >= 1 then
den Part solltest zu dem aendern:
PHP Code:
local a = select ("VIP-Sura-Zu-VIP-Krieger", "VIP-Sura-Zu-VIP-Ninja", "VIP-Sura-Zu-VIP-Schamane", "Schamane-Zu-VIP-Ninja", "VIP-Schamane-Zu-VIP-Sura", "VIP-Schamane-Zu-VIP-Krieger", "Abbrechen")
if a == 1 then
if pc.count_item(12039) >= 1 then
Die variable war falsch und du hast eine Klammer vergessen.
Mfg,
ProfessorEnte
|
|
|
07/12/2013, 16:04
|
#8531
|
elite*gold: 0
Join Date: Dec 2011
Posts: 449
Received Thanks: 17
|
THX Die quest war von einem Freund Danke sollte die bearbeiten aber fail xD
|
|
|
07/12/2013, 16:15
|
#8532
|
elite*gold: 435
Join Date: Nov 2009
Posts: 602
Received Thanks: 194
|
PHP Code:
quest test_123 begin state start begin when login or levelup with pc.get_level() == 40 begin set_state( gotoinfomation ) end end state gotoinfomation begin when letter begin send_letter("Gehe zum Hauptmann") end when button or info begin say_title("Gehe zum Hauptmann") say("") ----"123456789012345678901234567890123456789012345678901234567890"| say("") say("") say("") say("") say("") say("") say("") say("") wait() set_state( gotoguard ) end end end state gotoguard begin when letter begin local v=find_npc_by_vnum(20355) if 0==v then else target.vid("__TARGET__", v, "Gehe zum Hauptmann") end end when letter begin send_letter("Gehe zum Hauptmann") end when button or info begin say_title("Gehe zum Hauptmann") say("Suche den Hauptmann auf der Karte.") say("") ----------"12345678901234567890123456789012345678901234567890"| say_reward("") say_reward("") say("") end when __TARGET__.target.click begin target.delete("__TARGET__") say("Hauptmann:")
----"12345678901234567890123456789012345678901234567890"| say("") say("") wait() say("Hauptmann:") say("") clear_letter()
set_state( stone ) end state stone begin when letter begin send_letter("Zerstöre die Steine") end when button or info begin say_title("Der ewige Kampf") say("Zerstöre Metinsteine im") say("Orktal um die Lage unter") say("Kontrolle zu bekommen.") end when 8001.kill begin local pct = number(1,200) if pct==5 then clear_letter() chat("Genug für den Anfang...") set_state(guard2) end end end end state guard2 begin when letter begin send_letter("Zurück zum Hauptmann") local v = find_npc_by_vnum(20355) if v != 0 then target.vid("target2", v, "Hauptmann") end end when button or info begin say_title("") say("Du hast genug Steine zerstört,") end when target2.target.click or 20355.chat."blablabla" begin target.delete("target2") say_title("") say("") pc.give_item2(19, 2) pc.give_item2(29, 2) pc.give_item2(39, 2) clear_letter() end end set_state ( __COMPLETE__ ) set_quest_state("test_12345","run") end state __COMPLETE__ begin end end
die quest will irgendwie nicht was ist den daran flasch ?
brauch immernoch hilfe
|
|
|
07/12/2013, 16:20
|
#8533
|
elite*gold: 2
Join Date: Jun 2013
Posts: 1,063
Received Thanks: 1,724
|
Quote:
Originally Posted by Michi1994
PHP Code:
quest test_123 begin
state start begin
when login or levelup with pc.get_level() == 40 begin
set_state( gotoinfomation )
end
end
state gotoinfomation begin
when letter begin
send_letter("Gehe zum Hauptmann")
end
when button or info begin
say_title("Gehe zum Hauptmann")
say("")
----"123456789012345678901234567890123456789012345678901234567890"|
say("")
say("")
say("")
say("")
say("")
say("")
say("")
say("")
wait()
set_state( gotoguard )
end
end
end
state gotoguard begin
when letter begin
local v=find_npc_by_vnum(20355)
if 0==v then
else
target.vid("__TARGET__", v, "Gehe zum Hauptmann")
end
end
when letter begin
send_letter("Gehe zum Hauptmann")
end
when button or info begin
say_title("Gehe zum Hauptmann")
say("Suche den Hauptmann auf der Karte.")
say("")
----------"12345678901234567890123456789012345678901234567890"|
say_reward("")
say_reward("")
say("")
end
when __TARGET__.target.click begin
target.delete("__TARGET__")
say("Hauptmann:")
----"12345678901234567890123456789012345678901234567890"|
say("")
say("")
wait()
say("Hauptmann:")
say("")
clear_letter()
set_state( stone )
end
state stone begin
when letter begin
send_letter("Zerstöre die Steine")
end
when button or info begin
say_title("Der ewige Kampf")
say("Zerstöre Metinsteine im")
say("Orktal um die Lage unter")
say("Kontrolle zu bekommen.")
end
when 8001.kill begin
local pct = number(1,200)
if pct==5 then
clear_letter()
chat("Genug für den Anfang...")
set_state(guard2)
end
end
end
end
state guard2 begin
when letter begin
send_letter("Zurück zum Hauptmann")
local v = find_npc_by_vnum(20355)
if v != 0 then
target.vid("target2", v, "Hauptmann")
end
end
when button or info begin
say_title("")
say("Du hast genug Steine zerstört,")
end
when target2.target.click or 20355.chat."blablabla" begin
target.delete("target2")
say_title("")
say("")
pc.give_item2(19, 2)
pc.give_item2(29, 2)
pc.give_item2(39, 2)
clear_letter()
end
end
set_state ( __COMPLETE__ )
set_quest_state("test_12345","run")
end
state __COMPLETE__ begin
end
end
die quest will irgendwie nicht was ist den daran flasch ?
brauch immernoch hilfe
|
Ab Zeile 27 beendest du die ganze Quest einfach.
Du solltest mal aufs einruecken etwas mehr achten, dann wirkt alles uebersichtlicher und sowas kann dir nichtmehr passieren! :P
Kurz und knapp, ein end zuviel in Zeile 25. Weiter hab ich noch nicht geschaut.
EDIT:
Bittesehr, waren noch einige end Fehler und manchmal schreibst du außerhalb eines states Befehle...:
PHP Code:
quest test_123 begin
state start begin
when login or levelup with pc.get_level() == 40 begin
set_state( gotoinfomation )
end
end
state gotoinfomation begin
when letter begin
send_letter("Gehe zum Hauptmann")
end
when button or info begin
say_title("Gehe zum Hauptmann")
say("")
----"123456789012345678901234567890123456789012345678901234567890"|
say("")
say("")
say("")
say("")
say("")
say("")
say("")
say("")
wait()
set_state( gotoguard )
end
end
state gotoguard begin
when letter begin
local v=find_npc_by_vnum(20355)
if 0==v then
else
target.vid("__TARGET__", v, "Gehe zum Hauptmann")
end
end
when letter begin
send_letter("Gehe zum Hauptmann")
end
when button or info begin
say_title("Gehe zum Hauptmann")
say("Suche den Hauptmann auf der Karte.")
say("")
----------"12345678901234567890123456789012345678901234567890"|
say_reward("")
say_reward("")
say("")
end
when __TARGET__.target.click begin
target.delete("__TARGET__")
say("Hauptmann:")
----"12345678901234567890123456789012345678901234567890"|
say("")
say("")
wait()
say("Hauptmann:")
say("")
clear_letter()
set_state( stone )
end
end
state stone begin
when letter begin
send_letter("Zerstöre die Steine")
end
when button or info begin
say_title("Der ewige Kampf")
say("Zerstöre Metinsteine im")
say("Orktal um die Lage unter")
say("Kontrolle zu bekommen.")
end
when 8001.kill begin
local pct = number(1,200)
if pct==5 then
clear_letter()
chat("Genug für den Anfang...")
set_state(guard2)
end
end
end
state guard2 begin
when letter begin
send_letter("Zurück zum Hauptmann")
local v = find_npc_by_vnum(20355)
if v != 0 then
target.vid("target2", v, "Hauptmann")
end
end
when button or info begin
say_title("")
say("Du hast genug Steine zerstört,")
end
when target2.target.click or 20355.chat."blablabla" begin
target.delete("target2")
say_title("")
say("")
pc.give_item2(19, 2)
pc.give_item2(29, 2)
pc.give_item2(39, 2)
clear_letter()
set_state ( __COMPLETE__ )
set_quest_state("test_12345","run")
end
end
state __COMPLETE__ begin
end
end
-nicht getestet nur die ersichtlichen Fehler behoben vom schreiben her.
Mfg,
ProfessorEnte
|
|
|
07/12/2013, 19:22
|
#8534
|
elite*gold: 210
Join Date: Jun 2013
Posts: 1,203
Received Thanks: 390
|
Habe mir gerade ne Quest geschrieben und bekomme folgenden Fehler
Code:
when doesn't have begin-end clause. (wit)
pvm_quest.quest:3:Error occured on compile pvm_quest.quest
Hier mal die Quest:
PHP Code:
quest pvm_quest begin state start begin when login or levelup wit pc.get_level() >= 85 begin set_state(information) end end state information begin when letter begin send letter("Töte Bosse") end when button or info begin say_title("Töte Bosse") say("Hallo Abenteurer,") say("Du hast, wie es aussieht, nun die Stärke") say("ein paar Bosse zu Töten, um deine Stärke zu") say("beweisen. Töte 5x den Wasserdrachen, und du") say("wirst kräftig belohnt.") say_reward("Möchtest du die herrausforderung annehmen?") local s = select("Ja", "Nein") if s == 2 then say("Okay, schade.") clear_letter() set_state (aufgeben) else say("Viel Glück!") say_reward("Töte 5 x Wasserdrache") pc.setqf("state1", 0) q.set_counter("Wasserdrache", 5) set_state(kill) end end end state kill begin when letter begin send_letter("Töte Bosse") end when info or button begin say_title("Töte Bosse") say_reward("Du hast "..pc.getqf("state1").." von 5 Wasserdrachenn getötet.") end when 2493.kill begin local count1 = pc.getqf("state1") + 1 if count <= 5 then pc.setqf("state1", count1) q.set_counter("Wasserdrache", count1) end if count1 == 5 then set_state(fertig) end end state fertig begin when letter begin send_letter("Töte Bosse Abgeschlossen") end when info or button begin say_title("Aufgabe abgeschlossen!") say("Du hast 5 x Wasserdrache getötet!") say("Welche Belohung möchtest du wählen?") local s=select("10% gegen Monster","5% Durchbohren") if s== 1 then say_reward("Du has 10% Stärke gegen Monster bekommen.") affect.add_collect(apply.ATT_BONUS_TO_MONSTER,5,60*60*24*365*60) -----¡V60¦~ else say_reward("Du hast 5% Durchbohrender Treffer Bonus erhalten.") affect.add_collect(apply.PENETRATE_PCT,5,60*60*24*365*60) -----¡V60¦~ end end end state aufgeben begin end end end end end
LG
|
|
|
07/12/2013, 19:38
|
#8535
|
elite*gold: 260
Join Date: Sep 2012
Posts: 1,515
Received Thanks: 185
|
Quote:
Originally Posted by .LuckyStrike
Habe mir gerade ne Quest geschrieben und bekomme folgenden Fehler
Code:
when doesn't have begin-end clause. (wit)
pvm_quest.quest:3:Error occured on compile pvm_quest.quest
Hier mal die Quest:
PHP Code:
quest pvm_quest begin
state start begin
when login or levelup wit pc.get_level() >= 85 begin
set_state(information)
end
end
state information begin
when letter begin
send letter("Töte Bosse")
end
when button or info begin
say_title("Töte Bosse")
say("Hallo Abenteurer,")
say("Du hast, wie es aussieht, nun die Stärke")
say("ein paar Bosse zu Töten, um deine Stärke zu")
say("beweisen. Töte 5x den Wasserdrachen, und du")
say("wirst kräftig belohnt.")
say_reward("Möchtest du die herrausforderung annehmen?")
local s = select("Ja", "Nein")
if s == 2 then
say("Okay, schade.")
clear_letter()
set_state (aufgeben)
else
say("Viel Glück!")
say_reward("Töte 5 x Wasserdrache")
pc.setqf("state1", 0)
q.set_counter("Wasserdrache", 5)
set_state(kill)
end
end
end
state kill begin
when letter begin
send_letter("Töte Bosse")
end
when info or button begin
say_title("Töte Bosse")
say_reward("Du hast "..pc.getqf("state1").." von 5 Wasserdrachenn getötet.")
end
when 2493.kill begin
local count1 = pc.getqf("state1") + 1
if count <= 5 then
pc.setqf("state1", count1)
q.set_counter("Wasserdrache", count1)
end
if count1 == 5 then
set_state(fertig)
end
end
state fertig begin
when letter begin
send_letter("Töte Bosse Abgeschlossen")
end
when info or button begin
say_title("Aufgabe abgeschlossen!")
say("Du hast 5 x Wasserdrache getötet!")
say("Welche Belohung möchtest du wählen?")
local s=select("10% gegen Monster","5% Durchbohren")
if s== 1 then
say_reward("Du has 10% Stärke gegen Monster bekommen.")
affect.add_collect(apply.ATT_BONUS_TO_MONSTER,5,60*60*24*365*60) -----¡V60¦~
else
say_reward("Du hast 5% Durchbohrender Treffer Bonus erhalten.")
affect.add_collect(apply.PENETRATE_PCT,5,60*60*24*365*60) -----¡V60¦~
end
end
end
state aufgeben begin
end
end
end
end
end
LG
|
PHP Code:
quest pvm_quest begin
state start begin
when login or levelup wit pc.get_level() >= 85 begin
set_state(information)
end
end
state information begin
when letter begin
send letter("Töte Bosse")
end
when button or info begin
say_title("Töte Bosse")
say("Hallo Abenteurer,")
say("Du hast, wie es aussieht, nun die Stärke")
say("ein paar Bosse zu Töten, um deine Stärke zu")
say("beweisen. Töte 5x den Wasserdrachen, und du")
say("wirst kräftig belohnt.")
say_reward("Möchtest du die herrausforderung annehmen?")
local s = select("Ja", "Nein")
if s == 2 then
say("Okay, schade.")
clear_letter()
set_state (aufgeben)
else
say("Viel Glück!")
say_reward("Töte 5 x Wasserdrache")
pc.setqf("state1", 0)
q.set_counter("Wasserdrache", 5)
set_state(kill)
end
end
end
end
state kill begin
when letter begin
send_letter("Töte Bosse")
end
when info or button begin
say_title("Töte Bosse")
say_reward("Du hast "..pc.getqf("state1").." von 5 Wasserdrachenn getötet.")
end
when 2493.kill begin
local count1 = pc.getqf("state1") + 1
if count <= 5 then
pc.setqf("state1", count1)
q.set_counter("Wasserdrache", count1)
end
if count1 == 5 then
set_state(fertig)
end
end
end
state fertig begin
when letter begin
send_letter("Töte Bosse Abgeschlossen")
end
when info or button begin
say_title("Aufgabe abgeschlossen!")
say("Du hast 5 x Wasserdrache getötet!")
say("Welche Belohung möchtest du wählen?")
local s=select("10% gegen Monster","5% Durchbohren")
if s== 1 then
say_reward("Du has 10% Stärke gegen Monster bekommen.")
affect.add_collect(apply.ATT_BONUS_TO_MONSTER,5,60*60*24*365*60) -----¡V60¦~
else
say_reward("Du hast 5% Durchbohrender Treffer Bonus erhalten.")
affect.add_collect(apply.PENETRATE_PCT,5,60*60*24*365*60) -----¡V60¦~
end
end
end
state aufgeben begin
end
end
end
end
|
|
|
All times are GMT +1. The time now is 04:16.
|
|