quest newrun begin state start begin when 20409.chat."Test-Run" begin say_title("Wächter des TEEEST:") if pc.get_level()<130 then say("Dein Level ist zu niedrig..") say("Mindestlevel: 130") return end say("Soll ich dich in den Test-Run porten?") local s=select("Ja", "Nein") d.join(354, 77865, 55783) d.setf("devillevel", 1) set_state(inrun) if s==2 then return end end end
state inrun begin when login with pc.get_map_index()==354 begin chat("Zerstöre das Test-Metin, um die 1. Ebene") chat("zu erreichen!") d.spawn_mob(8056, 80, 220) if party.is_leader() then d.set_regen_file("data/dungeon/new_dungeon/npc.txt") end end end end
beim compilen zeigt der kein fehler an, jedoch wenn ich den run betrete spawnt weder "8056" noch die regen file
EDIT: immer noch keine lösung gefunden
Dungeons haben nicht den Mapindex der Map, sondern einen zufälligen (bzw. den ersten freien) Mapindex in der Range
Code:
<mapindex>*10000 - <mapindex>*10000+9999
In deinem Fall also:
3540000-3549999
Du musst also deine Bedingung so umschreiben:
Code:
... with pc.get_map_index() >= 3540000 and pc.get_map_index() < 3550000
Ich würde dir außerdem empfehlen in Dungeon Quests nicht mit states zu arbeiten (wenn der Server aus irgendeinem Grund crasht während der Spieler im Dungeon ist, hängt der Spieler in der state fest - das kann man natürlich auch noch mit einem Trigger abfangen und den Spieler wieder in state start packen, machts aber nur unnötig kompliziert).
quest antiexp begin
state start begin
when login begin
if pc.getqf("antiexp") == 1 then
pc.block_exp()
chat("Anti EXP ist noch aktiviert")
end
end
when letter begin
cmdchat("AntiEXP "..q.getcurrentquestindex())
end
when button or info begin
if pc.getqf("antiexp") == 0 then
pc.block_exp()
pc.setqf("antiexp", 1)
chat("Anti EXP wurde aktiviert.")
elseif pc.getqf("antiexp") == 1 then
pc.unblock_exp()
pc.setqf("antiexp", 0)
chat("Anti EXP wurde deaktiviert.")
end
end
end
end
quest test begin
state start begin
when 71090.use begin
send_letter("PvP Quest")
end
when button or information begin
say_title("PvP Quest")
say("Gewinne deine naechsten drei Kaempfe,")
say("und du wirst reich belohnt!")
say("Stirbst du, ist die Quest vorbei, und du")
say("musst dir eine neue Mission kaufen.")
say("")
say("Fuehlst du dich bereit dazu?")
local s=select("Klar, los gehts!","Mach ich spaeter...")
if s==2 then
say_title("PvP Quest")
say("War ja klar, Feigling!")
return
else
say_title("PvP Quest")
say("Super, dann kanns ja losgehen!")
wait()
item.remove(71090)
pc.setqf("kills",3)
setstate(kaempfe)
end
end
end
state kaempfe begin
when login or kill begin
send_letter("PvP Killzaehler")
end
when --Spieler stirbt-- begin
say_title("Versager")
say("Autsch! Du bist leider gestorben.")
say("Komm wieder, wenn du trainiert hast.")
say("Dann sind die 20kk besser investiert.")
wait()
pc.delqf("kills")
setstate(ende)
end
when kill with npc.is_pc() begin
pc.setqf("kills",pc.getqf("kills")-1)
if pc.getqf("kills")<=0 then
setstate(belohnung)
else return end
end
when button or information begin
say_title("PvP Killzaehler")
say("Toete noch "..pc.getqf("kills").." spieler ohne zu sterben!")
end
end
state belohnung begin
when login or kill begin
send_letter("Belohnung")
end
when button or information begin
say_title("Belohnung")
say("Du hast erfolgreich drei Spieler getoetet,")
say("ohne zu sterben.")
say("Hier erhaeltst du deine Belohnung:")
say("")
say("50kk Yang, 1x Giftschwert+0, Perlen")
wait()
pc.give_gold(50000000)
pc.give_item2(180)
pc.delqf("kills")
setstate(ende)
end
end
state ende begin
when login begin
restart_quest()
end
end
end
Das ist meine erste Quest und ich bin für alle Hinweise dankbar!
Falls sich doch nochmal jemand der Kontrolle annimmt habe ich folgende Frage.
Ich habe eine simple Quest geschrieben, um die Drops der Metins anzupassen und zu testen, wie dass funktioniert.
Während der Shinshoofelsen (8020) genau die Drops gibt, die er geben soll,
dropt der Metin des Mordes (8019) überhaupt nix. Dabei nutze ich die selben Befehle.
Wo liegt mein fehler?
quest drops begin state start begin when 8020.kill begin --Shinshoofelsen-- pc.give_item2(189) --Gifti+9-- game.drop_item_with_ownership(149) --Schlachti+9-- end
when 8019.kill begin game.drop_item_with_ownership(149) --Schlachti-- pc.give_item2(189) --Gifti+9-- end end
Falls sich doch nochmal jemand der Kontrolle annimmt habe ich folgende Frage.
Ich habe eine simple Quest geschrieben, um die Drops der Metins anzupassen und zu testen, wie dass funktioniert.
Während der Shinshoofelsen (8020) genau die Drops gibt, die er geben soll,
dropt der Metin des Mordes (8019) überhaupt nix. Dabei nutze ich die selben Befehle.
Wo liegt mein fehler?
quest drops begin state start begin when 8020.kill begin --Shinshoofelsen-- pc.give_item2(189) --Gifti+9-- game.drop_item_with_ownership(149) --Schlachti+9-- end
when 8019.kill begin game.drop_item_with_ownership(149) --Schlachti-- pc.give_item2(189) --Gifti+9-- end end
state ende begin end end
Drops sollte man grundsätzlich nur in den dazu vorgesehenen Systemen einstellen. Quests sind hierfür nicht gedacht und bereiten später ggf. Schwierigkeiten und Probleme.
Hallo, ich habe mir eine Quest erstellt, wenn man Level 10 ist, die Option hat zwischen 3 Pets zu entscheiden. Die Quest funktioniert soweit, nur wenn ich dann das Siegel bekomme, kann ich keine Pets mehr aufrufen (erscheinen nicht), egal welche.
Code:
quest pet begin
state start begin
when levelup with pc.get_level() == 10 begin
set_state(info)
end
end
state info begin
when letter begin
send_letter("Dein Begleiter")
local v = find_npc_by_vnum(20369)
if v != 0 then
target.vid("__TARGET__", v, mob_name(20369))
end
end
when info or button begin
say_title("Hallo "..pc.get_name().."")
say("")
say("Du hast dich tapfer bis Level 10")
say("gekämpft. Nun bekommst du vom Offizier")
say("eine Belohnung, die du dir auch verdient hast!")
say("")
say("Das Adamantia-Team wünscht dir weiterhin viel Spaß.")
say_reward("Du kannst nun deine Belohnung beim Offizier abholen.")
end
when __TARGET__.target.click or 20369.click begin
target.delete("__TARGET__")
say_title(mob_name(20369)..":")
say("")
say("Sei gegrüsst "..pc.get_name().."!")
say_title("Ich soll dir was schenken?")
say("Nun ja, dann muss ich dir wohl was schenken. Du hast")
say("es dir auch verdient. Allerdings kannst du nur ein")
say("Item auswählen. Du kannst dich zwischen 3 Items")
say("entscheiden. Die Items die du bekommen kannst,")
say("werden dir bei der Auswahl beschrieben.")
say_reward("Wähle ein Item aus")
say("")
local pet = select("Feuerphönix +500 TP", "Rufus +30 AW", "Leonidas +5% Monster")
if pet == 1 then
pc.give_item2(53001, 1)
elseif pet == 2 then
pc.give_item2(53006, 1)
elseif pet == 3 then
pc.give_item2(53010, 1)
end
set_state(info)
end
end
end
Ich finde den Fehler nicht, hoffe jemand kann mir hierbei helfen.
Hallo kann mir jemand bei meiner Quest weiter helfen würde es gerne nämlich mit Level Begrenzung haben vielen dank im voraus.
quest warpring begin
state start begin
when 70007.use begin
say_title("Wohin geht die Reise?")
local on = select ("Städte.", "Levelmaps.", "Farmmaps.", "Runs.", "Abbrechen")
if on == 1 then
say_title("Wähle deine Stadt aus!")
local map1 = select ("Shinsoo (Rot Map1)", "Chunjo (Gelb Map1)", "Jinno (Blau Map1)", "-", "Jayang (Rot Map2)", "Bokjung (Gelb Map2)", "Bakra (Blau Map2)", "Abbrechen")
if map1 == 1 then
pc.warp(469300, 964300)
end
if map1 == 2 then
pc.warp(55700, 157800)
end
if map1 == 3 then
pc.warp(969600, 278200)
end
if map1 == 4 then
pc.warp()
end
if map1 == 5 then
pc.warp(353100, 882900)
end
if map1 == 6 then
pc.warp(145500, 240000)
end
if map1 == 7 then
pc.warp(863900, 246000)
end
if map1 == 8 then
return
end
end
if on == 2 then
say_title("Wähle einen Gebiet aus!")
local map2 = select ("SD1 - Ab Level 30-40.", "Wüste - Ab Level 40-50.", "Eisland - Ab Level 50-60.", "Feuerland - Ab Level 60-70.", "Spinnendungoen2 - Ab Level 70-80.", "Grotte der Verbannung - Ab Level 80-90.", "Yangyang - Ab Level 90-99.", "Abbrechen")
if map2 == 1 then
pc.warp(332800, 746100)
end
if map2 == 2 then
pc.warp(553700, 144600)
end
if map2 == 3 then
pc.warp(91900, 525400)
end
if map2 == 4 then
pc.warp(608300, 685400)
end
if map2 == 5 then
pc.warp(665600, 435200)
end
if map2 == 6 then
pc.warp(241700, 1275800
)
end
if map2 == 7 then
pc.warp(1167000, 1676400)
end
if map2 == 8 then
return
end
end
if on == 3 then
say_title("Wähle deinen Gebiet aus!")
local map3 = select ("Farmmap Ab Level 30", "Farmmap Ab Level 75", "Farmmap Ab Level 90", "Abbrechen")
if map3 == 1 then
pc.warp(1114100, 1517000)
end
if map3 == 2 then
pc.warp(1227100, 1679800)
end
if map3 == 3 then
pc.warp(1133800, 1655800)
end
if map3 == 4 then
return
end
end
if on == 4 then
say_title("Wähle deinen Run aus!")
local map4 = select ("DT-Run - Level 70.", "Drachen-Run - Ab Level 75.", "Azrael-Run - Ab Level 80.", "Namara - Ab Level 90.", "Abbrechen")
if map4 == 1 then
pc.warp(590400, 110500)
end
if map4 == 2 then
pc.warp(284200, 810300)
end
if map4== 3 then
pc.warp(591500, 99800)
end
if map4== 4 then
pc.warp(591500, 99800)
end
if map4 == 5 then
return
end
end
end
end
end
Hallo kann mir jemand bei meiner Quest weiter helfen würde es gerne nämlich mit Level Begrenzung haben vielen dank im voraus.
quest warpring begin
state start begin
when 70007.use begin
say_title("Wohin geht die Reise?")
local on = select ("Städte.", "Levelmaps.", "Farmmaps.", "Runs.", "Abbrechen")
if on == 1 then
say_title("Wähle deine Stadt aus!")
local map1 = select ("Shinsoo (Rot Map1)", "Chunjo (Gelb Map1)", "Jinno (Blau Map1)", "-", "Jayang (Rot Map2)", "Bokjung (Gelb Map2)", "Bakra (Blau Map2)", "Abbrechen")
if map1 == 1 then
pc.warp(469300, 964300)
end
if map1 == 2 then
pc.warp(55700, 157800)
end
if map1 == 3 then
pc.warp(969600, 278200)
end
if map1 == 4 then
pc.warp()
end
if map1 == 5 then
pc.warp(353100, 882900)
end
if map1 == 6 then
pc.warp(145500, 240000)
end
if map1 == 7 then
pc.warp(863900, 246000)
end
if map1 == 8 then
return
end
end
if on == 2 then
say_title("Wähle einen Gebiet aus!")
local map2 = select ("SD1 - Ab Level 30-40.", "Wüste - Ab Level 40-50.", "Eisland - Ab Level 50-60.", "Feuerland - Ab Level 60-70.", "Spinnendungoen2 - Ab Level 70-80.", "Grotte der Verbannung - Ab Level 80-90.", "Yangyang - Ab Level 90-99.", "Abbrechen")
if map2 == 1 then
pc.warp(332800, 746100)
end
if map2 == 2 then
pc.warp(553700, 144600)
end
if map2 == 3 then
pc.warp(91900, 525400)
end
if map2 == 4 then
pc.warp(608300, 685400)
end
if map2 == 5 then
pc.warp(665600, 435200)
end
if map2 == 6 then
pc.warp(241700, 1275800
)
end
if map2 == 7 then
pc.warp(1167000, 1676400)
end
if map2 == 8 then
return
end
end
if on == 3 then
say_title("Wähle deinen Gebiet aus!")
local map3 = select ("Farmmap Ab Level 30", "Farmmap Ab Level 75", "Farmmap Ab Level 90", "Abbrechen")
if map3 == 1 then
pc.warp(1114100, 1517000)
end
if map3 == 2 then
pc.warp(1227100, 1679800)
end
if map3 == 3 then
pc.warp(1133800, 1655800)
end
if map3 == 4 then
return
end
end
if on == 4 then
say_title("Wähle deinen Run aus!")
local map4 = select ("DT-Run - Level 70.", "Drachen-Run - Ab Level 75.", "Azrael-Run - Ab Level 80.", "Namara - Ab Level 90.", "Abbrechen")
if map4 == 1 then
pc.warp(590400, 110500)
end
if map4 == 2 then
pc.warp(284200, 810300)
end
if map4== 3 then
pc.warp(591500, 99800)
end
if map4== 4 then
pc.warp(591500, 99800)
end
if map4 == 5 then
return
end
end
end
end
end
Hallo kann mir jemand weiterhelfen? Ich möchte gerne das er 10x Seelensteine entfernt aber es verschwindet immer nur 1
Hier die Quest
quest Herstellung begin
state start begin
when 20094.chat."Regenbogenstein" begin
say_title("Herstellung")
say("Der Regenbogenstein wird benötigt")
say("für die Weiterentwicklung deiner Fertigkeiten.")
say("")
say("Für die Herstellung benötigst du")
say_item("10x Seelenstein", 50513, "")
say_item("25.000", 1, "")
wait()
say_title("Herstellung")
if pc.count_item(50513)==0 then
say("Du besitzt keinen Seelenstein")
say("oder hast nicht die bestimmte Menge.")
say_item("10x Seelenstein", 50513, "")
return
end
say("Möchtest du einen Regenbogenstein")
say("herstellen?")
say_reward("Es kostet 25,000 Yang")
local s=select("Ja", "Nein")
if s==2 then
return
end
say_title("Herstellung")
if pc.count_item(50513)==0 then
return
end
if pc.get_gold() < 25000 then
say_item("25.000", 1, "")
say("Du Benötigst 25.000 Yang.")
return
end
say("Glückwunsch.")
say_item("Regenbogenstein", 50512, "")
say("Die Herstellung war Erfolgreich!")
pc.remove_item(50513, 10)
pc.changegold(-25000)
pc.give_item2(50512)
end
end
end
Hallo kann mir jemand weiterhelfen? Ich möchte gerne das er 10x Seelensteine entfernt aber es verschwindet immer nur 1
Hier die Quest
quest Herstellung begin
state start begin
when 20094.chat."Regenbogenstein" begin
say_title("Herstellung")
say("Der Regenbogenstein wird benötigt")
say("für die Weiterentwicklung deiner Fertigkeiten.")
say("")
say("Für die Herstellung benötigst du")
say_item("10x Seelenstein", 50513, "")
say_item("25.000", 1, "")
wait()
say_title("Herstellung")
if pc.count_item(50513)==0 then
say("Du besitzt keinen Seelenstein")
say("oder hast nicht die bestimmte Menge.")
say_item("10x Seelenstein", 50513, "")
return
end
say("Möchtest du einen Regenbogenstein")
say("herstellen?")
say_reward("Es kostet 25,000 Yang")
local s=select("Ja", "Nein")
if s==2 then
return
end
say_title("Herstellung")
if pc.count_item(50513)==0 then
return
end
if pc.get_gold() < 25000 then
say_item("25.000", 1, "")
say("Du Benötigst 25.000 Yang.")
return
end
say("Glückwunsch.")
say_item("Regenbogenstein", 50512, "")
say("Die Herstellung war Erfolgreich!")
pc.remove_item(50513, 10)
pc.changegold(-25000)
pc.give_item2(50512)
end
end
end
Hallo kann mir jemand weiterhelfen? Ich möchte gerne das er 10x Seelensteine entfernt aber es verschwindet immer nur 1
Hier die Quest
Code:
quest Herstellung begin
state start begin
when 20094.chat."Regenbogenstein" begin
say_title("Herstellung")
say("Der Regenbogenstein wird benötigt")
say("für die Weiterentwicklung deiner Fertigkeiten.")
say("")
say("Für die Herstellung benötigst du")
say_item("10x Seelenstein", 50513, "")
say_item("25.000", 1, "")
wait()
say_title("Herstellung")
if pc.count_item(50513)==0 then
say("Du besitzt keinen Seelenstein")
say("oder hast nicht die bestimmte Menge.")
say_item("10x Seelenstein", 50513, "")
return
end
say("Möchtest du einen Regenbogenstein")
say("herstellen?")
say_reward("Es kostet 25,000 Yang")
local s=select("Ja", "Nein")
if s==2 then
return
end
say_title("Herstellung")
if pc.count_item(50513)==0 then
return
end
if pc.get_gold() < 25000 then
say_item("25.000", 1, "")
say("Du Benötigst 25.000 Yang.")
return
end
say("Glückwunsch.")
say_item("Regenbogenstein", 50512, "")
say("Die Herstellung war Erfolgreich!")
pc.remove_item(50513, 10)
pc.changegold(-25000)
pc.give_item2(50512)
end
end
end
Ungeachtet dessen, das die Items nicht entfernt werden, hast du nur die überprüfung drinnen ob der Spieler überhaupt Seelensteine im Inventar hat, nicht aber wieviele er hat.