|
You last visited: Today at 00:33
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
01/23/2018, 01:36
|
#12571
|
elite*gold: 0
Join Date: Mar 2011
Posts: 415
Received Thanks: 17
|
Guten Tag.
Hier ist eine Quest aber ich bekomme kein Yang. Alles andere Läuft super.
Code:
quest metinkill1 begin
state start begin
when login or levelup with pc.level >= 25 begin
set_state(information)
end
end
state information begin
when letter begin
send_letter("Metin-Auftrag 25")
end
when info or button begin
say_title("Metin-Auftrag")
say("Hallo Spieler von Servername!")
say("Überall spawnen die Metinsteine. Unsere")
say("Krieger sind alle beim versuch sie zu")
say("töten gefallen. Wir hoffen auf")
say("deine Hilfe. Bitte befreie uns von von diesem")
say("Unheil, damit wir wieder in Frieden leben können")
say("Bitte hilf uns:")
say_reward("Töte 10 x Metin der Schwärze.")
say_reward("Du findest sie auf Map2.")
say_reward("Wenn du es geschafft hast bekommst du eine Belohnung!")
say_reward("")
say_reward("")
say("")
pc.setqf("state", 1)
q.set_counter("Metin der Schwärze", 1)
end
when 8005.kill begin
local count = pc.getqf("state") - 1
if count <= 1 then
pc.setqf("state", count)
q.set_counter("Metin der Schwärze", count)
end
if count == 0 then
say_title("PvM Quest")
say("")
say("")
say("Gut du hast es geschafft.")
say("Hier deine Belohnung")
say_reward("1 22 55 50")
pc.give_item2(159, 1)
pc.give_item2(159, 1)
pc.give_item2(189, 1)
pc.give_item2(189, 1)
pc.give_exp2(500)
pc.get_money(50000)
clear_letter()
set_state(__COMPLETE__)
end
end
end
state __COMPLETE__ begin
end
end
|
|
|
01/23/2018, 13:09
|
#12572
|
elite*gold: 12
Join Date: Feb 2014
Posts: 877
Received Thanks: 272
|
Quote:
Originally Posted by Cc_Cc_Cc
Guten Tag.
Hier ist eine Quest aber ich bekomme kein Yang. Alles andere Läuft super.
Code:
quest metinkill1 begin
state start begin
when login or levelup with pc.level >= 25 begin
set_state(information)
end
end
state information begin
when letter begin
send_letter("Metin-Auftrag 25")
end
when info or button begin
say_title("Metin-Auftrag")
say("Hallo Spieler von Servername!")
say("Überall spawnen die Metinsteine. Unsere")
say("Krieger sind alle beim versuch sie zu")
say("töten gefallen. Wir hoffen auf")
say("deine Hilfe. Bitte befreie uns von von diesem")
say("Unheil, damit wir wieder in Frieden leben können")
say("Bitte hilf uns:")
say_reward("Töte 10 x Metin der Schwärze.")
say_reward("Du findest sie auf Map2.")
say_reward("Wenn du es geschafft hast bekommst du eine Belohnung!")
say_reward("")
say_reward("")
say("")
pc.setqf("state", 1)
q.set_counter("Metin der Schwärze", 1)
end
when 8005.kill begin
local count = pc.getqf("state") - 1
if count <= 1 then
pc.setqf("state", count)
q.set_counter("Metin der Schwärze", count)
end
if count == 0 then
say_title("PvM Quest")
say("")
say("")
say("Gut du hast es geschafft.")
say("Hier deine Belohnung")
say_reward("1 22 55 50")
pc.give_item2(159, 1)
pc.give_item2(159, 1)
pc.give_item2(189, 1)
pc.give_item2(189, 1)
pc.give_exp2(500)
pc.get_money(50000)
clear_letter()
set_state(__COMPLETE__)
end
end
end
state __COMPLETE__ begin
end
end
|
Der Befehl lautet pc.give_gold(amount).
|
|
|
01/28/2018, 19:10
|
#12573
|
elite*gold: 0
Join Date: Sep 2015
Posts: 685
Received Thanks: 551
|
Quote:
Originally Posted by Guron
hallo ich lerne gerade questen. kann mir hierbei jemand bei meiner kleinen simplen pvp quest helfen?
PHP Code:
quest kill begin
state start begin
when login or levelup with pc.get_level() >= 15 and pc.getqf("qfset") == 0 begin
set_state(killquest)
end
end
state killquest begin
when letter begin
send_letter("Jäger und Sammler")
end
when button or info begin
say_title("Jäger und Sammler")
say("")
say("Töte so viele dudes wie nur möglich. Töte einfach... 5!")
say("")
say("")
say_reward("Du hast "..pc.getqf("kills").." von 5 getötet");
end
when kill with npc.is_pc() begin
pc.setqf("kills", pc.getqf("kills")+1)
chat("Jäger und Sammler: Du hast "..pc.getqf("kills").." von 5 Leute getötet")
if pc.getqf("kills") == 5 then
pc.setqf("qfset", pc.getqf("qfset")+1)
say("Du hast 5 Leute getötet, Glückwunsch!")
say("Du erhältst jetzt etwas Gold")
pc.give_gold(500)
end
end
end
end
ganz simpel. spieler soll 5 leute ins jenseits befördern. funktioniert leider auch nur halbwegs. die chat nachricht wird doppelt ausgegeben und der zähler bleibt bei 1 hängen. kann mir jemand mit einer erklärung helfen? danke
|
Deine Quest ist korrekt, der Fehler kommt von dem Gamecore. Du musst die Kill funktion im Source anpassen, dann wird das nichtmehr doppelt gezählt.
|
|
|
02/04/2018, 04:46
|
#12574
|
elite*gold: 0
Join Date: Nov 2012
Posts: 35
Received Thanks: 4
|
Duplicated name Quest VIP
Code:
quest vip begin
state start begin
when 40003.use begin
if pc.count_item(40003)>=1 then
say_title("Inel [VIP]")
say("Vrei sa ai VIP in fata numelui")
local a = select("Da!", "Nu")
if a == 1 then
local name = pc.get_name()
local find_id = mysql_query("SELECT account_id from player.player WHERE name='"..name.."' LIMIT 1;")
local id = find_id[1][1]+1-1
mysql_query("UPDATE player.player SET name='[VIP]"..name.."' WHERE account_id='"..id.."' LIMIT 1;")
pc.remove_item(40003)
syschat("Votre demande à été envoyé au serveur. Votre")
syschat("changera dès que le serveur aura retourné l'information!")
else
return
end
else
say_title("Inel [VIP]")
say("Aveti Nevoie de")
say("Inelul VIP pentru a activa numele:")
say_item_vnum(40003)
say("Intoarcete cand ai.")
return
end
end
end
end
Duplicated name quest vip :
|
|
|
02/22/2018, 12:27
|
#12575
|
elite*gold: 0
Join Date: Jul 2016
Posts: 21
Received Thanks: 7
|
Hi guys, so.. Uh.. I have a little bit of problem with this quest, i mean, this quest gives the killer 1 random item from that list, what i want to do? Well, i want to give 2 items insead of one.. Can someone help me?
Code:
quest pvpkills begin
state start begin
when kill with npc.is_pc() and pc.get_level() >= 250 and pc.get_map_index() == "72" begin
local items = {--vnum, count
{44040, 1},
{44047, 1},
{4047, 1},
{4040, 1}
}
if number(1, 100) <= 100 then
local rand = number(2, table.getn(items))
pc.give_item2(items[rand][1], items[rand][2])
end
end
end
end
|
|
|
02/23/2018, 02:18
|
#12576
|
elite*gold: 0
Join Date: Nov 2011
Posts: 343
Received Thanks: 10
|
Hallo ich weis das es eine Falsche section dafür ist, aber ich bekomm meine alte Pferde quest nicht mehr hin.
Hat jemand eine wo alles inbegriffen ist?
Die quest soll:
lvl 0 auf 1 also horse buy quest
+
lvl 1-30 quest beinhalten.
Wäre mega wenn mir da einer eine lua/quest zukommen lassen kann
Mfg Valle
Er spuckt mir Error occured on compile aus, kann jemand mal bitte drüber schauen?
Code:
quest horse_upgrade2 begin
state start begin
when 20349.chat."Militär-Pferde Prüfung" with horse.get_grade()==2 and horse.get_level()==20 begin
if horse.is_dead() then
say("Dein Pferd ist Tod.")
say("Bitte belebe es erst")
say("wieder.")
elseif pc.level<=49 then
say("Dein Level ist zu gering.")
say("Du musst erst Level 50 erreichen.")
elseif horse.get_level()<=19 then
say("Dein Pferd ist zu klein.")
say("Dein Pferd muss erst")
say("Level 20 erreichen.")
elseif pc.countitem("50050")<1 then
say("Du besitzt keine")
say("Pferdemedaille.")
say("Bitte besorge erst")
say("eine.")
say("")
say("")
setstate(need_item50050)
elseif pc.countitem("50052")<1 then
say("Du hast kein Kampf-Pferdebild.")
say("Bitte kauf erst eins.")
elseif horse.get_level()==20 and not horse.is_dead() and pc.countitem("50050")>=1 and pc.level>=50 then
say("Dein Pferd ist nun")
say("groß genug für die")
say("Militär Pferde Prüfung.")
say("Du musst 300 Dämonenbogenschützen")
say("in 30 Minuten töten.")
say("Möchtest du den Test beginnen?")
say("")
local b=select("Test beginnen", "Nein, noch nicht.")
if 1==b then
if pc.countitem("50050")>=1 then
pc.removeitem("50050", 1)
setstate(test)
end
elseif 2==b then
say("Komm später wieder.")
else
say("UNKNOWN BUTTON ["..b.."]")
end
else
say("Viel erfolg.")
say("")
say("")
end
end
end
state need_item50050 begin
when letter begin
setskin(NOWINDOW)
makequestbutton("Pferdemedaille")
q.set_title("Pferdemedaille")
q.start()
end
when button begin
say(locale.NOTICE_COLOR.."Pferdemedaille"..locale.NORMAL_COLOR)
say("Gehe ins Affendungeon")
say("und besorge eine Pferdemedaille.")
setstate(start)
q.done()
end
when info begin
say(locale.NOTICE_COLOR.."Pferdemedaille"..locale.NORMAL_COLOR)
say("Gehe ins Affendungeon")
say("und besorge eine Pferdemedaille.")
setstate(start)
q.done()
end
end
state test begin
when letter begin
q.set_counter("³Ñ¾l¤`ÆF¤}½b¤â", 300-pc.getqf("kill_count"))
end
when 1002.party_kill begin
pc.setqf("kill_count", pc.getqf("kill_count")+1)
q.set_counter("³Ñ¾l¤`ÆF¤}½b¤â", 300-pc.getqf("kill_count"))
if get_time()>=pc.getqf("limit_time") then
setstate(failure)
q.done()
end
end
when letter begin
q.set_clock("³Ñ¾l®É¶¡", pc.getqf("limit_time")-get_time())
end
when enter begin
pc.setqf("limit_time", get_time()+30*60)
pc.setqf("kill_count", 0)
end
when leave begin
q.done()
end
when letter begin
setskin(NOWINDOW)
makequestbutton("Militär-Pferde Prüfung")
q.set_title("Militär-Pferde Prüfung")
q.start()
end
when button begin
say(locale.NOTICE_COLOR.."Militär-Pferde Prüfung"..locale.NORMAL_COLOR)
say("Töte 300 Dämonenbogenschützen")
say("in 30 Minuten.")
say("")
say("Deine Gruppe kann dir helfen.")
end
when info begin
say(locale.NOTICE_COLOR.."Militär-Pferde Prüfungç"..locale.NORMAL_COLOR)
say("Töte 300 Dämonenbogenschützen")
say("in 30 Minuten.")
say("")
say("Deine Gruppe kann dir helfen.")
end
when 1002.party_kill with pc.getf("horse_upgrade2","kill_count") >= 300 and pc.getqf("limit_time")>=get_time() begin
setstate(report)
end
when 20349.chat."¬d¬Ý¥Ø«eª¬ªp" begin
say("30¤ÀÄÁ¤º®ø·À300¥u¤`ÆF¤}½b¤â")
say("")
say("¤¹³\²Õ¶¤§¹¦¨¡A¦ý*n¨D±z¬°²Õ¶¤¶¤ªø")
local b=select("±µ¨ü", "©ñ±ó")
if 1==b then
elseif 2==b then
say("¯uªº*n¤¤³~©ñ±ó¦¹¦¸¾÷·|¶Ü¡H")
local b=select("¬Oªº", "¶}ª±¯º")
if 1==b then
say("¯¬§A¤U¦¸¦³¦n¹B")
setstate(start)
q.done()
elseif 2==b then
say("²{¦b¨S¦³®É¶¡¦b³oùض¢²á")
say("§Ö¥h®ø·À¤`ÆF¤}½b¤â")
else
say("UNKNOWN BUTTON ["..b.."]")
end
else
say("UNKNOWN BUTTON ["..b.."]")
end
end
end
state report begin
when letter begin
setskin(NOWINDOW)
makequestbutton("Rückkehr zum Stallburschen")
q.set_title("Rückkehr zum Stallburschen")
q.start()
end
when button begin
say(locale.NOTICE_COLOR.."Rückkehr zum Stallburschen"..locale.NORMAL_COLOR)
say("Sage dem Stallburschen")
say("das du es Geschafft hast.")
end
when info begin
say(locale.NOTICE_COLOR.."Rückkehr zum Stallburschen"..locale.NORMAL_COLOR)
say("Sage dem Stallburschen")
say("das du es Geschafft hast.")
end
when 20349.chat."HORSE2 QUEST STATE REPAIR" with horse.get_grade()!=2 begin
setstate(start)
q.done()
end
when 20349.chat."Ich hab es Geschafft!" with horse.get_grade()==2 begin
say("Na dann")
say("Herzlichen Glückwunsch.")
say("Ich stelle dir nun dein")
say("Militär-Pferdebuch her.")
say("Es dauert 24 Stunden.")
if is_test_server() then
pc.setqf("make_time", get_time()+0)
else
pc.setqf("make_time", get_time()+0*60*60)
end
setstate(wait)
end
end
state wait begin
when letter begin
setskin(NOWINDOW)
makequestbutton("Warten auf das Militär-Pferdebuch")
q.set_title("Warten auf das Militär-Pferdebuch")
q.start()
end
when button begin
say(locale.NOTICE_COLOR.."Warten auf das Militär-Pferdebuch"..locale.NORMAL_COLOR)
say("Warte bis der Stallbursche")
say("das Militär-Pferdebuch fertig hat.")
end
when info begin
say(locale.NOTICE_COLOR.."Warten auf das Militär-Pferdebuch"..locale.NORMAL_COLOR)
say("Warte bis der Stallbursche")
say("das Militär-Pferdebuch fertig hat.")
end
when login with get_time()>=pc.getf("horse_upgrade2","make_time") begin
setstate(buy)
end
when 20349.chat."HORSE2 UPGRADE QUEST STATE REPAIR" with horse.get_grade()!=2 begin
setstate(start)
q.done()
end
when 20349.chat."Militär-Pferdebuch?" with horse.get_grade()==2 begin
say("Es tut mir leid aber")
say("das Militär-Pferdebuch")
say("ist noch nicht fertig.")
say("")
end
end
state buy begin
when letter begin
setskin(NOWINDOW)
makequestbutton("Dein Pferdebuch ist Fertig!")
q.set_title("Dein Pferdebuch ist Fertig!")
q.start()
end
when button begin
say(locale.NOTICE_COLOR.."Dein Pferdebuch ist Fertig!"..locale.NORMAL_COLOR)
say("Geh zum Stallburschen und hole")
say("dein Militär-Pferdebuch ab.")
say("Es kostet 1.000.000 Yang.")
say("")
end
when info begin
say(locale.NOTICE_COLOR.."Dein Pferdebuch ist Fertig!"..locale.NORMAL_COLOR)
say("Geh zum Stallburschen und hole")
say("dein Militär-Pferdebuch ab.")
say("Es kostet 1.000.000 Yang.")
say("")
end
when 20349.chat."HORSE2 UPGRADE QUEST STATE REPAIR" with horse.get_grade()!=2 begin
setstate(start)
q.done()
end
when 20349.chat."HORSE2 UPGRADE QUEST STATE REPAIR" with horse.get_grade()==2 and horse.get_level()!=20 begin
setstate(start)
q.done()
end
when 20349.chat."Mein Militär-Pferdebuch!" with horse.get_grade()==2 and horse.get_level()==20 begin
say("Dein Militär-Pferdebuch ist fertig.")
say("Es kostet dich 1.000.000 Yang.")
say("Möchtest du das Militär-Pferdebuch")
say("nun kaufen?")
say("")
say("")
local b=select("Kaufen", "Später", "Quest beenden")
if 1==b then
if pc.money>=1000000 then
if pc.countitem("50052")>=1 then
char_log(0, "HORSE_UPGRADE2", "BEGIN")
pc.changemoney(-1000000)
char_log(0, "HORSE_UPGRADE2", "DEC money 1000000")
pc.removeitem("50052", 1)
char_log(0, "HORSE_UPGRADE2", "DEC 50052 1")
horse.unride()
horse.advance()
horse.ride()
char_log(0, "HORSE_UPGRADE2", "INC horse_advance 1")
pc.give_item2("50053", 1)
char_log(0, "HORSE_UPGRADE2", "INC 50053 1")
pc.give_item2("50060", 1)
char_log(0, "HORSE_UPGRADE2", "INC 50060 1")
char_log(0, "HORSE_UPGRADE2", "END")
say("Herzlichen Glückwunsch.")
say("Du besitzt nun ein Militär Pferd")
say("Bitte Fütter es Regelmässig.")
say("")
say("")
say("")
setstate(start)
q.done()
else
say("")
end
else
say("")
end
elseif 2==b then
say("Bis Später.")
elseif 3==b then
say("Möctest du wirklich die")
say("Quest abbrechen?")
local b=select("Ja", "Nein")
if 1==b then
setstate(start)
elseif 2==b then
else
say("UNKNOWN BUTTON ["..b.."]")
end
else
say("UNKNOWN BUTTON ["..b.."]")
end
end
end
state failure begin
when letter begin
setskin(NOWINDOW)
makequestbutton("Prüfung misslungen!")
q.set_title("Prüfung misslungen!")
q.start()
end
when button begin
say(locale.NOTICE_COLOR.."Prüfung misslungen!"..locale.NORMAL_COLOR)
say("Du hast es leider nicht geschafft")
say("300 Dämonenbogenschützen in")
say("30 minuten zu töten.")
say("Gehe zum Stallburschen um es noch")
say("einmal zu versuchen.")
setstate(start)
q.done()
end
when info begin
say(locale.NOTICE_COLOR.."Prüfung misslungen!"..locale.NORMAL_COLOR)
say("Du hast es leider nicht geschafft")
say("300 Dämonenbogenschützen in")
say("30 minuten zu töten.")
say("Gehe zum Stallburschen um es noch")
say("einmal zu versuchen.")
setstate(start)
q.done()
end
end
state __COMPLETE__ begin
when enter begin
q.done()
end
end
end
Keine eine Idee?
Echt schade.
Jede Quest die ich getestet habe war ein Fehltritt <.<
Wäre echt nice wenn da mal einer sich mal melden könnte.
|
|
|
03/13/2018, 17:06
|
#12577
|
elite*gold: 0
Join Date: Aug 2014
Posts: 86
Received Thanks: 25
|
Servus, ich hab mich n bissel seit Gerauerzeit wieder ans Questen ran gemacht, doch irgend wie will diese Quest ab "Nein", "Ja" nicht
denn nach dem man Ja oder nein gedrückt hat, passiert nix mehr...
Der State geht nicht weiter und man wird auch nicht raus geportet (Kein Error oder sonstiges)
hier ist der Abschnitt:
PHP Code:
state krieger1 begin
when letter begin
send_letter("Naricht von Amarok")
local v=find_npc_by_vnum(20403)
if 0==v then
else
target.vid("__TARGET__", v, "Naricht von Amarok")
end
end
when button or info begin
say_title("Naricht vom Amarok")
say("Naricht vom Amarok:")
say("Komm zu mir Neuling hab keine Angst")
say("Ich warte hier auf dich ".. pc.get_name() .."")
say("")
end
when __TARGET__.target.click begin
target.delete("__TARGET__")
say_title("Überspringe das Tutorial")
say("")
say("Du kennst das Tutorial schon?")
local v = select("Nein", "Ja")
if v == 1 then
set_state( krieger2 )
elseif v == 2 then
pc.warp (3330, 7450)
end
end
end
|
|
|
03/24/2018, 12:22
|
#12578
|
elite*gold: 10
Join Date: Apr 2014
Posts: 490
Received Thanks: 75
|
Bekomme da immer "when doesnt have begin-end"
PHP Code:
quest cube begin
state start begin
when 20018.chat.gameforge[get_lang()].cube_text._010 with pc.level >=1 begin
setskin(NOWINDOW)
command("cube open")
end
when 20383.chat.gameforge[get_lang()].cube_text._020 with pc.level >=1 begin
setskin(NOWINDOW)
command("cube open")
end
when 20016.chat.gameforge[get_lang()].cube_text._030 with pc.level >=1 begin
setskin(NOWINDOW)
command("cube open")
end
when 20413.chat.gameforge[get_lang()].cube_text._040 with pc.level >=1 begin
setskin(NOWINDOW)
command("cube open")
end
when 20091.chat.gameforge[get_lang()].cube_text._050 with pc.level >=1 begin
setskin(NOWINDOW)
command("cube open")
end
when 20001.chat.gameforge[get_lang()].cube_text._060 with pc.level >=1 begin
setskin(NOWINDOW)
command("cube open")
end
when 60003.chat.gameforge[get_lang()].cube_text._080 with pc.level >=1 begin
setskin(NOWINDOW)
command("cube open")
end
when 20022.chat.gameforge[get_lang()].cube_text._090 with pc.level >=1 begin
setskin(NOWINDOW)
command("cube open")
end
when 20421.chat.gameforge[get_lang()].cube_text._110 with pc.level >=1 begin
setskin(NOWINDOW)
command("cube open")
end
when 20369.chat.gameforge[get_lang()].cube_text._130 with pc.level >=1 begin
setskin(NOWINDOW)
command("cube open")
end
when 20416.chat.gameforge[get_lang()].cube_text._120 with pc.level >=1 begin
setskin(NOWINDOW)
command("cube open")
end
end
end
|
|
|
04/29/2018, 15:50
|
#12579
|
elite*gold: 313
Join Date: Apr 2013
Posts: 585
Received Thanks: 122
|
Quote:
Originally Posted by Timau
Servus, ich hab mich n bissel seit Gerauerzeit wieder ans Questen ran gemacht, doch irgend wie will diese Quest ab "Nein", "Ja" nicht
denn nach dem man Ja oder nein gedrückt hat, passiert nix mehr...
Der State geht nicht weiter und man wird auch nicht raus geportet (Kein Error oder sonstiges)
hier ist der Abschnitt:
PHP Code:
state krieger1 begin when letter begin send_letter("Naricht von Amarok") local v=find_npc_by_vnum(20403) if 0==v then else target.vid("__TARGET__", v, "Naricht von Amarok") end end when button or info begin say_title("Naricht vom Amarok") say("Naricht vom Amarok:") say("Komm zu mir Neuling hab keine Angst") say("Ich warte hier auf dich ".. pc.get_name() .."") say("") end when __TARGET__.target.click begin target.delete("__TARGET__") say_title("Überspringe das Tutorial") say("") say("Du kennst das Tutorial schon?") local v = select("Nein", "Ja") if v == 1 then set_state( krieger2 ) elseif v == 2 then pc.warp (3330, 7450) end end end
|
Kannst du die ganze Quest posten?
Quote:
Originally Posted by Crushiero
Bekomme da immer "when doesnt have begin-end"
PHP Code:
quest cube begin state start begin when 20018.chat.gameforge[get_lang()].cube_text._010 with pc.level >=1 begin setskin(NOWINDOW) command("cube open") end when 20383.chat.gameforge[get_lang()].cube_text._020 with pc.level >=1 begin setskin(NOWINDOW) command("cube open") end when 20016.chat.gameforge[get_lang()].cube_text._030 with pc.level >=1 begin setskin(NOWINDOW) command("cube open") end when 20413.chat.gameforge[get_lang()].cube_text._040 with pc.level >=1 begin setskin(NOWINDOW) command("cube open") end when 20091.chat.gameforge[get_lang()].cube_text._050 with pc.level >=1 begin setskin(NOWINDOW) command("cube open") end when 20001.chat.gameforge[get_lang()].cube_text._060 with pc.level >=1 begin setskin(NOWINDOW) command("cube open") end when 60003.chat.gameforge[get_lang()].cube_text._080 with pc.level >=1 begin setskin(NOWINDOW) command("cube open") end when 20022.chat.gameforge[get_lang()].cube_text._090 with pc.level >=1 begin setskin(NOWINDOW) command("cube open") end when 20421.chat.gameforge[get_lang()].cube_text._110 with pc.level >=1 begin setskin(NOWINDOW) command("cube open") end when 20369.chat.gameforge[get_lang()].cube_text._130 with pc.level >=1 begin setskin(NOWINDOW) command("cube open") end when 20416.chat.gameforge[get_lang()].cube_text._120 with pc.level >=1 begin setskin(NOWINDOW) command("cube open") end end end
|
Probiers mal so
PHP Code:
quest cube begin state start begin when 20018.chat.gameforge[get_lang()].cube_text._010 with pc.get_level() >= 1 begin setskin(NOWINDOW) command("cube open") end when 20383.chat.gameforge[get_lang()].cube_text._020 with pc.get_level() >= 1 begin setskin(NOWINDOW) command("cube open") end when 20016.chat.gameforge[get_lang()].cube_text._030 with pc.get_level() >= 1 begin setskin(NOWINDOW) command("cube open") end when 20413.chat.gameforge[get_lang()].cube_text._040 with pc.get_level() >= 1 begin setskin(NOWINDOW) command("cube open") end when 20091.chat.gameforge[get_lang()].cube_text._050 with pc.get_level() >= 1 begin setskin(NOWINDOW) command("cube open") end when 20001.chat.gameforge[get_lang()].cube_text._060 with pc.get_level() >= 1 begin setskin(NOWINDOW) command("cube open") end when 60003.chat.gameforge[get_lang()].cube_text._080 with pc.get_level() >= 1 begin setskin(NOWINDOW) command("cube open") end when 20022.chat.gameforge[get_lang()].cube_text._090 with pc.get_level() >= 1 begin setskin(NOWINDOW) command("cube open") end when 20421.chat.gameforge[get_lang()].cube_text._110 with pc.get_level() >= 1 begin setskin(NOWINDOW) command("cube open") end when 20369.chat.gameforge[get_lang()].cube_text._130 with pc.get_level() >= 1 begin setskin(NOWINDOW) command("cube open") end when 20416.chat.gameforge[get_lang()].cube_text._120 with pc.get_level() >= 1 begin setskin(NOWINDOW) command("cube open") end end end
|
|
|
05/26/2018, 18:59
|
#12580
|
elite*gold: 9
Join Date: Nov 2014
Posts: 22
Received Thanks: 1
|
Quest Problem
erstmal danke dass du wen Willen hast mir zu helfen <3
Mein Problem ist, dass ich mich selbst drangewagt habe selbst eine kleine Quest zu schreiben, dessen Nutzen es ist; dass man wenn man Lv 5 erreicht hat eins von drei Pets auswählen kann. Also hab ich mal danach gegoogelt um
so nen groben Überblick über Lua zu bekommen (Python beherrsche ich ziemlich gut).
Nun hab ich als Lua Laie mal das folgende geschrieben:
quest pet_Waehlen begin
state start begin
if pc.get_level() == 5 then
say("Als Geschenk vom Lost-Empire Team kannst du dich nun zwischen")
say("drei verschiedenen Pets die dir als treue Begleiter folgen")
say("werden auswählen, wähle weise!")
local s = select("Jadephönix(TP + KRIT)", "Feuerphönix(DB + HM)", "Eisphönix(TP + MOB)"
if s == 1 then
pc.give_item2(53017, 1)
say("Der Jadephönix, eine weise Entscheidung.")
say("Fortan steht er als treuer Begleiter")
say("an deiner Seite und unterstützt dich")
say("im Kampf mit 2000 Tp sowie einer")
say("einer Chance von 10% auf krit. Treffer!")
elseif s == 2 then
pc.give_item2(53001, 1)
say("Der Feuerphönix, eine weise Entscheidung.")
say("Fortan steht er als treuer Begleiter")
say("im Kampf mit einer 5% Chance auf ")
say("durchbohrende Treffer sowie")
say("mit 5% stark gegen Halbmenschen!")
elseif s == 3 then
pc.give_item2(53003, 1)
say("Der Eisphönix, eine weise Entscheidung.")
say("Fortan steht er als treuer Begleiter")
("an deiner Seite und unterstützt dich")
say("im Kampf mit 2000 Tp sowie")
say("mit 5% stark gegen Monster!")
end
end
end
end
Leider funktioniert es so nicht und mir ist auch nicht ganz klar, was ich falsch gemacht habe, da mir die Machine nur zurückgibt, dass ein Syntax Fehler vorliegt, jedoch nicht wo.
Wäre sehr dankbar, wenn sich jemand hier die Zeit nimmt und mir meinen Fehler nennt und wieso genau das so auch keinen Sinn macht.
Gruß
|
|
|
05/27/2018, 03:37
|
#12581
|
elite*gold: 76
Join Date: Mar 2015
Posts: 698
Received Thanks: 245
|
Quote:
Originally Posted by xFlightMode
erstmal danke dass du wen Willen hast mir zu helfen <3
Mein Problem ist, dass ich mich selbst drangewagt habe selbst eine kleine Quest zu schreiben, dessen Nutzen es ist; dass man wenn man Lv 5 erreicht hat eins von drei Pets auswählen kann. Also hab ich mal danach gegoogelt um
so nen groben Überblick über Lua zu bekommen (Python beherrsche ich ziemlich gut).
Nun hab ich als Lua Laie mal das folgende geschrieben:
quest pet_Waehlen begin
state start begin
if pc.get_level() == 5 then
say("Als Geschenk vom Lost-Empire Team kannst du dich nun zwischen")
say("drei verschiedenen Pets die dir als treue Begleiter folgen")
say("werden auswählen, wähle weise!")
local s = select("Jadephönix(TP + KRIT)", "Feuerphönix(DB + HM)", "Eisphönix(TP + MOB)"
if s == 1 then
pc.give_item2(53017, 1)
say("Der Jadephönix, eine weise Entscheidung.")
say("Fortan steht er als treuer Begleiter")
say("an deiner Seite und unterstützt dich")
say("im Kampf mit 2000 Tp sowie einer")
say("einer Chance von 10% auf krit. Treffer!")
elseif s == 2 then
pc.give_item2(53001, 1)
say("Der Feuerphönix, eine weise Entscheidung.")
say("Fortan steht er als treuer Begleiter")
say("im Kampf mit einer 5% Chance auf ")
say("durchbohrende Treffer sowie")
say("mit 5% stark gegen Halbmenschen!")
elseif s == 3 then
pc.give_item2(53003, 1)
say("Der Eisphönix, eine weise Entscheidung.")
say("Fortan steht er als treuer Begleiter")
("an deiner Seite und unterstützt dich")
say("im Kampf mit 2000 Tp sowie")
say("mit 5% stark gegen Monster!")
end
end
end
end
Leider funktioniert es so nicht und mir ist auch nicht ganz klar, was ich falsch gemacht habe, da mir die Machine nur zurückgibt, dass ein Syntax Fehler vorliegt, jedoch nicht wo.
Wäre sehr dankbar, wenn sich jemand hier die Zeit nimmt und mir meinen Fehler nennt und wieso genau das so auch keinen Sinn macht.
Gruß
|
Hier die korriegierte Quest (habe die Fehler dran geschrieben):
PHP Code:
quest pet_Waehlen begin
state start begin
when login or levelup with pc.get_level() == 5 begin --Quest muss mit einer when-abfrage anfangen
say("Als Geschenk vom Lost-Empire Team kannst du dich nun zwischen")
say("drei verschiedenen Pets die dir als treue Begleiter folgen")
say("werden auswählen, wähle weise!")
local s = select("Jadephönix(TP + KRIT)", "Feuerphönix(DB + HM)", "Eisphönix(TP + MOB)") -- Klammer am Ende vergessen
if s == 1 then
pc.give_item2(53017, 1)
say("Der Jadephönix, eine weise Entscheidung.")
say("Fortan steht er als treuer Begleiter")
say("an deiner Seite und unterstützt dich")
say("im Kampf mit 2000 Tp sowie einer")
say("einer Chance von 10% auf krit. Treffer!")
set_state(__COMPLETE__) -- neuer state gesetzt, damit die Quest bei jedem Spieler auch wirklich nur 1mal erscheint.
elseif s == 2 then
pc.give_item2(53001, 1)
say("Der Feuerphönix, eine weise Entscheidung.")
say("Fortan steht er als treuer Begleiter")
say("im Kampf mit einer 5% Chance auf ")
say("durchbohrende Treffer sowie")
say("mit 5% stark gegen Halbmenschen!")
set_state(__COMPLETE__)
elseif s == 3 then
pc.give_item2(53003, 1)
say("Der Eisphönix, eine weise Entscheidung.")
say("Fortan steht er als treuer Begleiter")
say("an deiner Seite und unterstützt dich") --say wurde vergessen
say("im Kampf mit 2000 Tp sowie")
say("mit 5% stark gegen Monster!")
set_state(__COMPLETE__)
end
end
end
state __COMPLETE__ begin
end
end
|
|
|
06/17/2018, 22:14
|
#12582
|
elite*gold: 0
Join Date: Sep 2009
Posts: 154
Received Thanks: 8
|
Nabend,
ich scheine hier irgendwas zu übersehen.
Quest funktioniert soweit, nur bekomme ich bei jedem Stein nur einen Splitter, egal ob +0 oder +4.
Vielleicht findet ja jemand den Fehler.
Desweiteren gibt es sicher eine Möglichkeit das ganze etwas kürzer zu gestalten, nur da komm ich nicht drauf bzw. kenne mich zu wenig aus, vielleicht mag es mir jemand erklären. ^^
PHP Code:
quest Geiststeinsplitter begin
state start begin
when 20001.chat."Geiststeinsplitter" begin
say_gold("Alchemist:")
say_white("")
say_white("Hallo,")
say_white("ich kann deine Geiststeine+0 - +4 zerstören,")
say_white("wodurch du Geiststeinsplitter erhältst.")
say_white("")
say_white("Wenn du Geiststeine zerstören möchtest,")
say_white("zieh sie einfach auf mich.")
end
when 20001.take begin
if item.vnum == 28030 or 28031 or 28032 or 28033 or 28034 or 28035 or 28036 or 28037 or 28038 or 28039 or 28040 or 28041 or 28042 or 28043 then
pc.remove_item(item.vnum, 1)
pc.give_item2(28961, 1)
elseif item.vnum == 28130 or 28131 or 28132 or 28133 or 28134 or 28135 or 28136 or 28137 or 28138 or 28139 or 28140 or 28141 or 28142 or 28143 then
pc.remove_item(item.vnum, 1)
pc.give_item2(28961, 2)
elseif item.vnum == 28230 or 28231 or 28232 or 28233 or 28234 or 28235 or 28236 or 28237 or 28238 or 28239 or 28240 or 28241 or 28242 or 28243 then
pc.remove_item(item.vnum, 1)
pc.give_item2(28961, 4)
elseif item.vnum == 28330 or 28331 or 28332 or 28333 or 28334 or 28335 or 28336 or 28337 or 28338 or 28339 or 28340 or 28341 or 28342 or 28343 then
pc.remove_item(item.vnum, 1)
pc.give_item2(28961, 6)
elseif item.vnum == 28430 or 28431 or 28432 or 28433 or 28434 or 28435 or 28436 or 28437 or 28438 or 28439 or 28440 or 28441 or 28442 or 28443 then
pc.remove_item(item.vnum, 1)
pc.give_item2(28961, 10)
end
end
end
end
|
|
|
06/24/2018, 16:42
|
#12583
|
elite*gold: 1810
Join Date: Jan 2012
Posts: 2,208
Received Thanks: 1,630
|
Quote:
Originally Posted by Brodan
Nabend,
ich scheine hier irgendwas zu übersehen.
Quest funktioniert soweit, nur bekomme ich bei jedem Stein nur einen Splitter, egal ob +0 oder +4.
Vielleicht findet ja jemand den Fehler.
Desweiteren gibt es sicher eine Möglichkeit das ganze etwas kürzer zu gestalten, nur da komm ich nicht drauf bzw. kenne mich zu wenig aus, vielleicht mag es mir jemand erklären. ^^
PHP Code:
quest Geiststeinsplitter begin state start begin when 20001.chat."Geiststeinsplitter" begin say_gold("Alchemist:") say_white("") say_white("Hallo,") say_white("ich kann deine Geiststeine+0 - +4 zerstören,") say_white("wodurch du Geiststeinsplitter erhältst.") say_white("") say_white("Wenn du Geiststeine zerstören möchtest,") say_white("zieh sie einfach auf mich.") end when 20001.take begin if item.vnum == 28030 or 28031 or 28032 or 28033 or 28034 or 28035 or 28036 or 28037 or 28038 or 28039 or 28040 or 28041 or 28042 or 28043 then pc.remove_item(item.vnum, 1) pc.give_item2(28961, 1) elseif item.vnum == 28130 or 28131 or 28132 or 28133 or 28134 or 28135 or 28136 or 28137 or 28138 or 28139 or 28140 or 28141 or 28142 or 28143 then pc.remove_item(item.vnum, 1) pc.give_item2(28961, 2) elseif item.vnum == 28230 or 28231 or 28232 or 28233 or 28234 or 28235 or 28236 or 28237 or 28238 or 28239 or 28240 or 28241 or 28242 or 28243 then pc.remove_item(item.vnum, 1) pc.give_item2(28961, 4) elseif item.vnum == 28330 or 28331 or 28332 or 28333 or 28334 or 28335 or 28336 or 28337 or 28338 or 28339 or 28340 or 28341 or 28342 or 28343 then pc.remove_item(item.vnum, 1) pc.give_item2(28961, 6) elseif item.vnum == 28430 or 28431 or 28432 or 28433 or 28434 or 28435 or 28436 or 28437 or 28438 or 28439 or 28440 or 28441 or 28442 or 28443 then pc.remove_item(item.vnum, 1) pc.give_item2(28961, 10) end end end end
|
Du musst immer "item.vnum ==" vor die Zahl schreiben. Man vergleicht ja nicht immer das gleiche, sondern auch mal andere Werte miteinander.
|
|
|
06/24/2018, 20:06
|
#12584
|
elite*gold: 0
Join Date: Sep 2009
Posts: 154
Received Thanks: 8
|
Quote:
Originally Posted by MaxChri
Du musst immer "item.vnum ==" vor die Zahl schreiben. Man vergleicht ja nicht immer das gleiche, sondern auch mal andere Werte miteinander. 
|
Ahh, vielen Dank.
|
|
|
07/04/2018, 08:30
|
#12585
|
elite*gold: 191
Join Date: May 2009
Posts: 1,214
Received Thanks: 2,597
|
Quote:
Originally Posted by Brodan
Nabend,
ich scheine hier irgendwas zu übersehen.
Quest funktioniert soweit, nur bekomme ich bei jedem Stein nur einen Splitter, egal ob +0 oder +4.
Vielleicht findet ja jemand den Fehler.
Desweiteren gibt es sicher eine Möglichkeit das ganze etwas kürzer zu gestalten, nur da komm ich nicht drauf bzw. kenne mich zu wenig aus, vielleicht mag es mir jemand erklären. ^^
PHP Code:
quest Geiststeinsplitter begin
state start begin
when 20001.chat."Geiststeinsplitter" begin
say_gold("Alchemist:")
say_white("")
say_white("Hallo,")
say_white("ich kann deine Geiststeine+0 - +4 zerstören,")
say_white("wodurch du Geiststeinsplitter erhältst.")
say_white("")
say_white("Wenn du Geiststeine zerstören möchtest,")
say_white("zieh sie einfach auf mich.")
end
when 20001.take begin
if item.vnum == 28030 or 28031 or 28032 or 28033 or 28034 or 28035 or 28036 or 28037 or 28038 or 28039 or 28040 or 28041 or 28042 or 28043 then
pc.remove_item(item.vnum, 1)
pc.give_item2(28961, 1)
elseif item.vnum == 28130 or 28131 or 28132 or 28133 or 28134 or 28135 or 28136 or 28137 or 28138 or 28139 or 28140 or 28141 or 28142 or 28143 then
pc.remove_item(item.vnum, 1)
pc.give_item2(28961, 2)
elseif item.vnum == 28230 or 28231 or 28232 or 28233 or 28234 or 28235 or 28236 or 28237 or 28238 or 28239 or 28240 or 28241 or 28242 or 28243 then
pc.remove_item(item.vnum, 1)
pc.give_item2(28961, 4)
elseif item.vnum == 28330 or 28331 or 28332 or 28333 or 28334 or 28335 or 28336 or 28337 or 28338 or 28339 or 28340 or 28341 or 28342 or 28343 then
pc.remove_item(item.vnum, 1)
pc.give_item2(28961, 6)
elseif item.vnum == 28430 or 28431 or 28432 or 28433 or 28434 or 28435 or 28436 or 28437 or 28438 or 28439 or 28440 or 28441 or 28442 or 28443 then
pc.remove_item(item.vnum, 1)
pc.give_item2(28961, 10)
end
end
end
end
|
Alternativ, wenn es nur Reihen sind, kannst du auch folgendes einfügen:
if item.vnum >= 28030 and item.vnum <= 28043 then
Macht das ganze deutlich kürzer und im Endeffekt hast du viel weniger Abfragen.
|
|
|
All times are GMT +1. The time now is 00:33.
|
|