|
You last visited: Today at 05:27
Advertisement
[SERVICE] Die Questerstellung
Discussion on [SERVICE] Die Questerstellung within the Metin2 Private Server forum part of the Metin2 category.
03/13/2015, 11:55
|
#2311
|
elite*gold: 1
Join Date: Dec 2013
Posts: 3,467
Received Thanks: 720
|
Ich würde mich sehr freuen wenn jemand diese Quests so umschreibt damit man sie bei Items mit einem Klick drauf benutzen muss.
1. Quest
Code:
quest rang_plus_4000 begin
state start begin
when letter begin
send_letter("4000 Rangpunkte +")
end
when button or info begin
say_title("4000 Rangpunkte +")
say("")
say("Möchtest du 4000 Rangpunkte erhalten?")
if select("Ja", "Nein")==2 then send_letter("4000 Rangpunkte +") return end
pc.change_alignment(4000)
send_letter("4000 Rangpunkte +")
end
end
end
2. Quest
Code:
quest rang_minus_4000 begin
state start begin
when letter begin
send_letter("4000 Rangpunkte -")
end
when button or info begin
say_title("4000 Rangpunkte -")
say("")
say("Möchtest du dir 4000 Rangpunkte abziehen?")
if select("Ja", "Nein")==2 then send_letter("4000 Rangpunkte -") return end
pc.change_alignment(-4000)
send_letter("4000 Rangpunkte -")
end
end
end
3. Quest
Code:
quest change_sex begin
state start begin
when letter begin
send_letter("Geschlecht wechseln")
end
when button or info begin
if pc.is_engaged() then
ssay_title("Geschlechtsumwandlung fehlgeschlagen!")
say("")
say_reward("Nur unverheiratete können ihr Geschlecht ändern!")
say("")
say("Wenn Sie sich scheiden lassen, so können Sie ihr Geschlecht")
say("wieder ändern!")
say("")
return
elseif pc.is_married() then
say_title("Geschlechtsumwandlung fehlgeschlagen!")
say("")
say_reward("Nur unverheiratete können ihr Geschlecht ändern!")
say("")
say("Wenn Sie sich scheiden lassen, so können Sie ihr Geschlecht")
say("wieder ändern!")
say("")
return
elseif pc.is_polymorphed() then
say_title("Geschlechtsumwandlung fehlgeschlagen!")
say("")
say_reward("Sie sind derzeit verwandelt!")
say("")
say("Beenden Sie ihre Verwandlung.")
say("")
return
end
say_title("Geschlechtsumwandlung")
say("")
say("Sie sind dabei, ihr Geschlecht")
say("zu ändern. Diese Änderung hat weitgehende")
say("Folgen!")
wait()
say_title("Geschlechtsumwandlung")
say("")
say("Verheiratete können ihr Geschlecht nicht ändern.")
say("Verwandelte Personen müssen die Verwandlung beenden.")
say("Sind Sie sich sicher, dass Sie ihr Geschlecht ändern wollen?")
say("")
if select("Geschlecht Ändern!","Geschlecht nicht Ändern!")==2 then send_letter("Geschlecht ändern") return end
say_title("Geschlechtsumwandlung")
say("Alle ihre Fertigkeiten und Statuspunkte")
say("bleiben erhalten.")
say("")
say("Ein Relog ist nötig, um die Wirkungen sichtbar zu machen!")
say("")
pc.change_sex()
local m_sex = pc.get_sex()
if m_sex == 0 then
char_log(0, "CHANGE_SEX", "F -> M")
else
char_log(0, "CHANGE_SEX", "M -> F")
end
send_letter("Geschlecht ändern")
end
end
end
4. Quest
Code:
quest Fertigkeiten_ruecksetzen begin
state start begin
when letter begin
send_letter("Fertigkeiten!")
end
when button or info begin
say_title("Fertigkeiten")
say("")
say("Hier kannst du deine Fertigkeiten komplett")
say("zurücksetzen lassen.")
say("")
say("Möchtest du?")
if select("Ja","Nein")==2 then send_letter("Fertigkeiten!") return end
pc.clear_skill()
pc.set_skill_group(0)
send_letter("Fertigkeiten!")
end
end
end
5. Quest
Code:
quest Status_Punkte_ruecksetzen begin
state start begin
when letter begin
send_letter("Status-Punkte!")
end
when button or info begin
say_title("Status-Punkte")
say("")
say("Hier kannst du deine Status-Punkte komplett")
say("zurücksetzen lassen.")
say("")
say("Möchtest du?")
if select("Ja","Nein")==2 then send_letter("Status-Punkte!") return end
pc.reset_point()
send_letter("Status-Punkte!")
end
end
end
6. Quest
Code:
quest change_empire begin
state start begin
when letter begin
send_letter("Reich wechseln")
end
when button or info begin
say_title("Reich wechseln")
say("")
if pc.is_engaged() then
say("Sie sind in einer Gilde.")
say("Sie können das Reich nicht wechseln.")
say("")
return
elseif pc.is_married() then
say("Sie sind verheiratet.")
say("Sie können das Reich nicht wechseln.")
say("")
return
elseif pc.is_polymorphed() then
say("Sie sind Verwandelt.")
say("Sie können das Reich nicht wechseln.")
say("")
return
elseif pc.has_guild() then
say("Sie sind in einer Gilde.")
say("Sie können das Reich nicht wechseln.")
say("")
return
end
say("Wählen Sie eines der 3 Reiche")
local s = select("Shinsoo (rotes Reich)", "Chunjo (gelbes Reich)", "Jinno (blaues Reich)", "Abbrechen")
if 4==s then return end
say_title("Reich wechseln")
say("")
say_reward("Wollen Sie wirklich das Reich wechseln?")
say_reward("Für Folksverrat gibt es keine Entschuldigung!")
say("")
if select("Wechseln", "Nicht wechseln")==2 then return end
local ret = pc.change_empire(s)
local oldempire = pc.get_empire()
if ret == 999 then
say("Sie haben das Reich erfolgreich gewechselt.")
say("Bitte loggen Sie sich neu ein.")
say("")
char_log(0, "CHANGE_EMPIRE",string.format("%d -> %d", oldempire, s))
else
if ret == 1 then
say("Sie sind bereits in diesem Reich.")
say("Bitte wählen Sie ein anderes.")
say("")
say("")
elseif ret == 2 then
say("Reichswechsel noch nicht möglich.")
say("Sie können das Reich noch nicht wechseln, da Sie vor kurzem noch in einer Gilde waren.")
say("")
say("")
elseif ret == 3 then
say("Reichswechsel noch nicht möglich.")
say("Sie können das Reich noch nicht wechseln, da Sie vor kurzem noch verheiratet waren.")
say("")
end
end
send_letter("Reich wechseln")
end
end
end
|
|
|
03/13/2015, 12:13
|
#2312
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by Pr0Tube
Ich würde mich sehr freuen wenn jemand diese Quests so umschreibt damit man sie bei Items mit einem Klick drauf benutzen muss.
1. Quest
Code:
quest rang_plus_4000 begin
state start begin
when letter begin
send_letter("4000 Rangpunkte +")
end
when button or info begin
say_title("4000 Rangpunkte +")
say("")
say("Möchtest du 4000 Rangpunkte erhalten?")
if select("Ja", "Nein")==2 then send_letter("4000 Rangpunkte +") return end
pc.change_alignment(4000)
send_letter("4000 Rangpunkte +")
end
end
end
2. Quest
Code:
quest rang_minus_4000 begin
state start begin
when letter begin
send_letter("4000 Rangpunkte -")
end
when button or info begin
say_title("4000 Rangpunkte -")
say("")
say("Möchtest du dir 4000 Rangpunkte abziehen?")
if select("Ja", "Nein")==2 then send_letter("4000 Rangpunkte -") return end
pc.change_alignment(-4000)
send_letter("4000 Rangpunkte -")
end
end
end
3. Quest
Code:
quest change_sex begin
state start begin
when letter begin
send_letter("Geschlecht wechseln")
end
when button or info begin
if pc.is_engaged() then
ssay_title("Geschlechtsumwandlung fehlgeschlagen!")
say("")
say_reward("Nur unverheiratete können ihr Geschlecht ändern!")
say("")
say("Wenn Sie sich scheiden lassen, so können Sie ihr Geschlecht")
say("wieder ändern!")
say("")
return
elseif pc.is_married() then
say_title("Geschlechtsumwandlung fehlgeschlagen!")
say("")
say_reward("Nur unverheiratete können ihr Geschlecht ändern!")
say("")
say("Wenn Sie sich scheiden lassen, so können Sie ihr Geschlecht")
say("wieder ändern!")
say("")
return
elseif pc.is_polymorphed() then
say_title("Geschlechtsumwandlung fehlgeschlagen!")
say("")
say_reward("Sie sind derzeit verwandelt!")
say("")
say("Beenden Sie ihre Verwandlung.")
say("")
return
end
say_title("Geschlechtsumwandlung")
say("")
say("Sie sind dabei, ihr Geschlecht")
say("zu ändern. Diese Änderung hat weitgehende")
say("Folgen!")
wait()
say_title("Geschlechtsumwandlung")
say("")
say("Verheiratete können ihr Geschlecht nicht ändern.")
say("Verwandelte Personen müssen die Verwandlung beenden.")
say("Sind Sie sich sicher, dass Sie ihr Geschlecht ändern wollen?")
say("")
if select("Geschlecht Ändern!","Geschlecht nicht Ändern!")==2 then send_letter("Geschlecht ändern") return end
say_title("Geschlechtsumwandlung")
say("Alle ihre Fertigkeiten und Statuspunkte")
say("bleiben erhalten.")
say("")
say("Ein Relog ist nötig, um die Wirkungen sichtbar zu machen!")
say("")
pc.change_sex()
local m_sex = pc.get_sex()
if m_sex == 0 then
char_log(0, "CHANGE_SEX", "F -> M")
else
char_log(0, "CHANGE_SEX", "M -> F")
end
send_letter("Geschlecht ändern")
end
end
end
4. Quest
Code:
quest Fertigkeiten_ruecksetzen begin
state start begin
when letter begin
send_letter("Fertigkeiten!")
end
when button or info begin
say_title("Fertigkeiten")
say("")
say("Hier kannst du deine Fertigkeiten komplett")
say("zurücksetzen lassen.")
say("")
say("Möchtest du?")
if select("Ja","Nein")==2 then send_letter("Fertigkeiten!") return end
pc.clear_skill()
pc.set_skill_group(0)
send_letter("Fertigkeiten!")
end
end
end
5. Quest
Code:
quest Status_Punkte_ruecksetzen begin
state start begin
when letter begin
send_letter("Status-Punkte!")
end
when button or info begin
say_title("Status-Punkte")
say("")
say("Hier kannst du deine Status-Punkte komplett")
say("zurücksetzen lassen.")
say("")
say("Möchtest du?")
if select("Ja","Nein")==2 then send_letter("Status-Punkte!") return end
pc.reset_point()
send_letter("Status-Punkte!")
end
end
end
6. Quest
Code:
quest change_empire begin
state start begin
when letter begin
send_letter("Reich wechseln")
end
when button or info begin
say_title("Reich wechseln")
say("")
if pc.is_engaged() then
say("Sie sind in einer Gilde.")
say("Sie können das Reich nicht wechseln.")
say("")
return
elseif pc.is_married() then
say("Sie sind verheiratet.")
say("Sie können das Reich nicht wechseln.")
say("")
return
elseif pc.is_polymorphed() then
say("Sie sind Verwandelt.")
say("Sie können das Reich nicht wechseln.")
say("")
return
elseif pc.has_guild() then
say("Sie sind in einer Gilde.")
say("Sie können das Reich nicht wechseln.")
say("")
return
end
say("Wählen Sie eines der 3 Reiche")
local s = select("Shinsoo (rotes Reich)", "Chunjo (gelbes Reich)", "Jinno (blaues Reich)", "Abbrechen")
if 4==s then return end
say_title("Reich wechseln")
say("")
say_reward("Wollen Sie wirklich das Reich wechseln?")
say_reward("Für Folksverrat gibt es keine Entschuldigung!")
say("")
if select("Wechseln", "Nicht wechseln")==2 then return end
local ret = pc.change_empire(s)
local oldempire = pc.get_empire()
if ret == 999 then
say("Sie haben das Reich erfolgreich gewechselt.")
say("Bitte loggen Sie sich neu ein.")
say("")
char_log(0, "CHANGE_EMPIRE",string.format("%d -> %d", oldempire, s))
else
if ret == 1 then
say("Sie sind bereits in diesem Reich.")
say("Bitte wählen Sie ein anderes.")
say("")
say("")
elseif ret == 2 then
say("Reichswechsel noch nicht möglich.")
say("Sie können das Reich noch nicht wechseln, da Sie vor kurzem noch in einer Gilde waren.")
say("")
say("")
elseif ret == 3 then
say("Reichswechsel noch nicht möglich.")
say("Sie können das Reich noch nicht wechseln, da Sie vor kurzem noch verheiratet waren.")
say("")
end
end
send_letter("Reich wechseln")
end
end
end
|
PHP Code:
quest rang_plus_4000 begin state start begin when 1111.use begin say_title("4000 Rangpunkte +") say("") say("Möchtest du 4000 Rangpunkte erhalten?") if select("Ja", "Nein")==2 then return end pc.change_alignment(4000) end end end
ich bin mir sicher, dass du den Rest alleine schaffst
|
|
|
03/13/2015, 15:40
|
#2313
|
elite*gold: 0
Join Date: Nov 2011
Posts: 1,448
Received Thanks: 1,257
|
Quote:
Originally Posted by [SA]Tauron
Hei ich habe eine idee für was neues in Mt2 ein wellen System oder Quest
also ich mache gerade eine 1x1er map wo dann am anfang z.B ein wildhund steht nach demm man ihn gekillt hat spawnen mehr mobs nach den man die killt noch mehr und schwerere
also wäre es möglich eine quest zu schreiben wo nach killen eines mobs mehrere spawnen
also so eine wellen quest ich hab da leider keine ahnung 
|
Um die Quest zu benutzen muss der Index, die Warps etc. angepasst werden und in "data/dungeon/wellen_run/welle" müssen spawn.txts von welle1.txt bis wellemax.txt sein. In Quest gibt es auch eine Variable die nennt sich MAX_WELLE, bis zu dieser Welle müssen die wellex.txts gehen, sonst gibt es Fehler. Nach erreichen der MAX_WELLE wiederholt sich die maximale Welle bis ins unendliche^^ Natürlich kann man auch einbauen, das es irgendwann zu Ende ist.
Code:
quest wellen_run begin
state start begin
when 20011.chat."Wellen-Run"begin
say_title("Wellen-Run")
say("")
say("Starten?")
if select("Ja","Nein")==2 then return end
if party.is_party() then
if party.is_leader() then
if pc.get_level()>=30 then
d.new_jump_all(43, 8731, 2426) -- MapIndex + Warpcodes zu Map
else
say_title("Mindestlevel!")
say("")
say("Alle Gruppenmitglieder müssen ein")
say("Mindestlevel von 30 haben.")
end
else
say_title("Gruppenleiter")
say("")
say("Nur der Gruppenleiter kann den Run")
say("starten!")
end
else
say_title("Gruppe")
say("")
say("Du musst in einer Gruppe sein, damit")
say("du in den Run kannst!")
end
end
-- MapIndex+0000
-- Eingrenzen MapIndex ist z.B. 101 also wäre der DungeonIndex 1010000 der nächstliegende Index ist 102 und wir
-- wissen das alle Koordinaten dieser Map zwischen 101 und 102 Index liegen müssen also
-- 1010000 und 1020000
when login with pc.get_map_index() >= 430000 and pc.get_map_index() < 440000 begin
if pc.get_level()<30 then
d.notice("Einer eurer Mitglieder ist unter Lv120! Betrüger!")
d.exit_all()
end
wellen_run.set_empire_locaction()
if d.getf("isspawn")==1 then return end
d.setf("isspawn", 1)
d.spawn_mob(20019, 548, 364) -- NPC der denn Dungeon im Run startet!
if d.getf("Welle")==0 then
d.notice("Spricht mit dem "..mob_name(20019)..". Er wird euch den Run eröffnen.")
end
end
when 20019.click with pc.get_map_index() >= 430000 and pc.get_map_index() < 440000 begin -- NPC der denn Dungeon im Run startet!
if d.getf("Welle")==0 then
npc.purge()
d.notice("Okay, und los gehts! Versucht euer Glück und kommt soweit wie möglich!")
loop_timer("Welle", 1)
end
end
when Welle.timer begin
local MAX_WELLE = 4
if d.count_monster()==0 then d.setf("IsWelle", 0) d.setf("Welle", d.getf("Welle")+1) end
if d.getf("IsWelle")==1 then return end
d.notice("Welle "..d.getf("Welle").." ist im Anmarsch.")
d.setf("IsWelle", 1)
if d.getf("Welle")>=MAX_WELLE then
d.regen_file("data/dungeon/wellen_run/welle"..MAX_WELLE..".txt") --txt
else
d.regen_file("data/dungeon/wellen_run/welle"..d.getf("Welle")..".txt")
end
end
function set_empire_locaction()
if pc.get_empire()==1 then
pc.set_warp_location(1, 4693, 9642)
elseif pc.get_empire()==2 then
pc.set_warp_location(21, 557, 1579)
elseif pc.get_empire()==3 then
pc.set_warp_location(41, 9696, 2784)
end
end
end
end
|
|
|
03/13/2015, 16:12
|
#2314
|
elite*gold: 0
Join Date: Jan 2010
Posts: 230
Received Thanks: 32
|
Quote:
Originally Posted by Kilroy.
Um die Quest zu benutzen muss der Index, die Warps etc. angepasst werden und in "data/dungeon/wellen_run/welle" müssen spawn.txts von welle1.txt bis wellemax.txt sein. In Quest gibt es auch eine Variable die nennt sich MAX_WELLE, bis zu dieser Welle müssen die wellex.txts gehen, sonst gibt es Fehler. Nach erreichen der MAX_WELLE wiederholt sich die maximale Welle bis ins unendliche^^ Natürlich kann man auch einbauen, das es irgendwann zu Ende ist.
Code:
quest wellen_run begin
state start begin
when 20011.chat."Wellen-Run"begin
say_title("Wellen-Run")
say("")
say("Starten?")
if select("Ja","Nein")==2 then return end
if party.is_party() then
if party.is_leader() then
if pc.get_level()>=30 then
d.new_jump_all(43, 8731, 2426) -- MapIndex + Warpcodes zu Map
else
say_title("Mindestlevel!")
say("")
say("Alle Gruppenmitglieder müssen ein")
say("Mindestlevel von 30 haben.")
end
else
say_title("Gruppenleiter")
say("")
say("Nur der Gruppenleiter kann den Run")
say("starten!")
end
else
say_title("Gruppe")
say("")
say("Du musst in einer Gruppe sein, damit")
say("du in den Run kannst!")
end
end
-- MapIndex+0000
-- Eingrenzen MapIndex ist z.B. 101 also wäre der DungeonIndex 1010000 der nächstliegende Index ist 102 und wir
-- wissen das alle Koordinaten dieser Map zwischen 101 und 102 Index liegen müssen also
-- 1010000 und 1020000
when login with pc.get_map_index() >= 430000 and pc.get_map_index() < 440000 begin
if pc.get_level()<30 then
d.notice("Einer eurer Mitglieder ist unter Lv120! Betrüger!")
d.exit_all()
end
wellen_run.set_empire_locaction()
if d.getf("isspawn")==1 then return end
d.setf("isspawn", 1)
d.spawn_mob(20019, 548, 364) -- NPC der denn Dungeon im Run startet!
if d.getf("Welle")==0 then
d.notice("Spricht mit dem "..mob_name(20019)..". Er wird euch den Run eröffnen.")
end
end
when 20019.click with pc.get_map_index() >= 430000 and pc.get_map_index() < 440000 begin -- NPC der denn Dungeon im Run startet!
if d.getf("Welle")==0 then
npc.purge()
d.notice("Okay, und los gehts! Versucht euer Glück und kommt soweit wie möglich!")
loop_timer("Welle", 1)
end
end
when Welle.timer begin
local MAX_WELLE = 4
if d.count_monster()==0 then d.setf("IsWelle", 0) d.setf("Welle", d.getf("Welle")+1) end
if d.getf("IsWelle")==1 then return end
d.notice("Welle "..d.getf("Welle").." ist im Anmarsch.")
d.setf("IsWelle", 1)
if d.getf("Welle")>=MAX_WELLE then
d.regen_file("data/dungeon/wellen_run/welle"..MAX_WELLE..".txt") --txt
else
d.regen_file("data/dungeon/wellen_run/welle"..d.getf("Welle")..".txt")
end
end
function set_empire_locaction()
if pc.get_empire()==1 then
pc.set_warp_location(1, 4693, 9642)
elseif pc.get_empire()==2 then
pc.set_warp_location(21, 557, 1579)
elseif pc.get_empire()==3 then
pc.set_warp_location(41, 9696, 2784)
end
end
end
end
|
sehr schöne quest  könnte man noch einbauen, dass wenn man stirbt, erst in der nächsten runde wieder reinkann (wenn die welle vorbei ist)? oder wenn alle tot sind, man rausgeportet wird, und ein item abhängig von der wellen anzahl kriegt?^^
lg
E: warum checkt man das level 2mal? ^^ und ich nehme an, dass soll lvl 30 sein oder?
if pc.get_level()<30 then
d.notice("Einer eurer Mitglieder ist unter Lv120! Betrüger!")
|
|
|
03/13/2015, 16:29
|
#2315
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by mkiiing
sehr schöne quest  könnte man noch einbauen, dass wenn man stirbt, erst in der nächsten runde wieder reinkann (wenn die welle vorbei ist)? oder wenn alle tot sind, man rausgeportet wird, und ein item abhängig von der wellen anzahl kriegt?^^
lg
E: warum checkt man das level 2mal? ^^ und ich nehme an, dass soll lvl 30 sein oder?
if pc.get_level()<30 then
d.notice("Einer eurer Mitglieder ist unter Lv120! Betrüger!")
|
Weil nur das Level des Leaders geprüft wird beim starten, dann wird die komplette Gruppe geportet. Deswegen die Abfrage wenn man sich einloggt auf der Map
|
|
|
03/13/2015, 17:16
|
#2316
|
elite*gold: 0
Join Date: Jan 2010
Posts: 230
Received Thanks: 32
|
Quote:
Originally Posted by Kilroy.
Um die Quest zu benutzen muss der Index, die Warps etc. angepasst werden und in "data/dungeon/wellen_run/welle" müssen spawn.txts von welle1.txt bis wellemax.txt sein. In Quest gibt es auch eine Variable die nennt sich MAX_WELLE, bis zu dieser Welle müssen die wellex.txts gehen, sonst gibt es Fehler. Nach erreichen der MAX_WELLE wiederholt sich die maximale Welle bis ins unendliche^^ Natürlich kann man auch einbauen, das es irgendwann zu Ende ist.
Code:
quest wellen_run begin
state start begin
when 20011.chat."Wellen-Run"begin
say_title("Wellen-Run")
say("")
say("Starten?")
if select("Ja","Nein")==2 then return end
if party.is_party() then
if party.is_leader() then
if pc.get_level()>=30 then
d.new_jump_all(43, 8731, 2426) -- MapIndex + Warpcodes zu Map
else
say_title("Mindestlevel!")
say("")
say("Alle Gruppenmitglieder müssen ein")
say("Mindestlevel von 30 haben.")
end
else
say_title("Gruppenleiter")
say("")
say("Nur der Gruppenleiter kann den Run")
say("starten!")
end
else
say_title("Gruppe")
say("")
say("Du musst in einer Gruppe sein, damit")
say("du in den Run kannst!")
end
end
-- MapIndex+0000
-- Eingrenzen MapIndex ist z.B. 101 also wäre der DungeonIndex 1010000 der nächstliegende Index ist 102 und wir
-- wissen das alle Koordinaten dieser Map zwischen 101 und 102 Index liegen müssen also
-- 1010000 und 1020000
when login with pc.get_map_index() >= 430000 and pc.get_map_index() < 440000 begin
if pc.get_level()<30 then
d.notice("Einer eurer Mitglieder ist unter Lv120! Betrüger!")
d.exit_all()
end
wellen_run.set_empire_locaction()
if d.getf("isspawn")==1 then return end
d.setf("isspawn", 1)
d.spawn_mob(20019, 548, 364) -- NPC der denn Dungeon im Run startet!
if d.getf("Welle")==0 then
d.notice("Spricht mit dem "..mob_name(20019)..". Er wird euch den Run eröffnen.")
end
end
when 20019.click with pc.get_map_index() >= 430000 and pc.get_map_index() < 440000 begin -- NPC der denn Dungeon im Run startet!
if d.getf("Welle")==0 then
npc.purge()
d.notice("Okay, und los gehts! Versucht euer Glück und kommt soweit wie möglich!")
loop_timer("Welle", 1)
end
end
when Welle.timer begin
local MAX_WELLE = 4
if d.count_monster()==0 then d.setf("IsWelle", 0) d.setf("Welle", d.getf("Welle")+1) end
if d.getf("IsWelle")==1 then return end
d.notice("Welle "..d.getf("Welle").." ist im Anmarsch.")
d.setf("IsWelle", 1)
if d.getf("Welle")>=MAX_WELLE then
d.regen_file("data/dungeon/wellen_run/welle"..MAX_WELLE..".txt") --txt
else
d.regen_file("data/dungeon/wellen_run/welle"..d.getf("Welle")..".txt")
end
end
function set_empire_locaction()
if pc.get_empire()==1 then
pc.set_warp_location(1, 4693, 9642)
elseif pc.get_empire()==2 then
pc.set_warp_location(21, 557, 1579)
elseif pc.get_empire()==3 then
pc.set_warp_location(41, 9696, 2784)
end
end
end
end
|
also habe ein paar probleme damit...
hab meinen npc, mapindex, koordis eingetragen aber in wenn ich dann auf JA gehe, passiert nichts^^ die syserr
Code:
0313 17:09:20844 :: Traceback (most recent call last):
0313 17:09:20844 :: File "uiTarget.py", line 477, in OnUpdate
0313 17:09:20844 :: NameError
0313 17:09:20844 :: :
0313 17:09:20844 :: global name 'locale' is not defined
0313 17:09:20844 ::
das kommt etwa 100x vor wenn ich auf JA gehe (die Line 477 ist vom Opponent HP/MP von mir eingefügt worden..)^^
das habe ich eingetragen (koordis auch mit 00 am Ende versucht)
PHP Code:
when 20377.chat."Der Überlebenskampf"begin say_title("Überlebenskampf") say("") say("Hast du den Mut diesen Kampf zu starten?") if select("Ja","Nein")==2 then return end if party.is_party() then if party.is_leader() then if pc.get_level()>=75 then d.new_jump_all(70, 8192, 7168)
LG
E: muss der komplette pfad der welle.txt angeben werde? und fängt des bei welle0 oder welle1 an?^^
|
|
|
03/13/2015, 18:01
|
#2317
|
elite*gold: 0
Join Date: Mar 2015
Posts: 82
Received Thanks: 7
|
Kann mir jemand sagen wo der Fehler bei der Quest liegt?
Quote:
quest give_basic_weapon begin
pc . give_item2 ( "72726" , 1 )
pc . give_item2 ( "72730" , 1 )
pc . give_item2 ( "70038" , 200 )
pc . give_item2 ( "27111" , 25 )
pc . give_item2 ( "27114" , 25 )
pc . give_item2 ( "71148" , 1 )
pc . give_item2 ( "50053" , 1 )
pc . give_item2 ( "72702" , 1 )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
horse . advance ( )
if pc . job == 0 then
pc . give_item2 ( "15" , 1 )
pc . give_item2 ( "11207" , 1 )
pc . give_item2 ( "12207" , 1 )
elseif pc . job == 1 then
pc . give_item2 ( "1005" , 1 )
pc . give_item2 ( "11407" , 1 )
pc . give_item2 ( "12347" , 1 )
elseif pc . job == 2 then
pc . give_item2 ( "15" , 1 )
pc . give_item2 ( "11607" , 1 )
pc . give_item2 ( "12487" , 1 )
elseif pc . job == 3 then
pc . give_item2 ( "7005" , 1 )
pc . give_item2 ( "11807" , 1 )
pc . give_item2 ( "12627" , 1 )
end
end
end
|
Immer wenn ich mich einlogge / Wohin porte bekomme ich alles erneut
|
|
|
03/13/2015, 18:10
|
#2318
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by .Skreezh
Kann mir jemand sagen wo der Fehler bei der Quest liegt?
Immer wenn ich mich einlogge / Wohin porte bekomme ich alles erneut
|
Code:
quest give_basic_weapon begin
state start begin
when login begin
local items = {
all = {
{72726, 1},
{72730, 1},
{70038, 200},
{27111, 25},
{27114, 25},
{71148, 1},
{50053, 1},
{72702, 1}
},
krieger = {
{15, 1},
{11207, 1},
{12207, 1}
},
ninja = {
{1005, 1},
{11407, 1},
{12347, 1}
},
sura = {
{15, 1},
{11607, 1},
{12487, 1}
},
schamane = {
{7005, 1},
{11807, 1},
{12627, 1}
}
}
horse.set_level(21)
give_item_from_table(items.all)
if pc.get_job() == 0 then
give_item_from_table(items.krieger)
elseif pc.get_job() == 1 then
give_item_from_table(items.ninja)
elseif pc.get_job() == 2 then
give_item_from_table(items.sura)
elseif pc.get_job() == 3 then
give_item_from_table(items.schamane)
end
set_state(_COMPLETE_)
end
end
state _COMPLETE_ begin
end
end
Code:
function give_item_from_table(tablename, count)
for i = 1, table.getn(tablename) do
if count == nil then
pc.give_item2(tablename[i][1], tablename[i][2])
else
pc.give_item2(tablename[i][1], count)
end
end
end
|
|
|
03/13/2015, 18:18
|
#2319
|
elite*gold: 0
Join Date: Mar 2015
Posts: 82
Received Thanks: 7
|
Quote:
Originally Posted by [Sensenmann]
Code:
quest give_basic_weapon begin
state start begin
when login begin
local items = {
all = {
{72726, 1},
{72730, 1},
{70038, 200},
{27111, 25},
{27114, 25},
{71148, 1},
{50053, 1},
{72702, 1}
},
krieger = {
{15, 1},
{11207, 1},
{12207, 1}
},
ninja = {
{1005, 1},
{11407, 1},
{12347, 1}
},
sura = {
{15, 1},
{11607, 1},
{12487, 1}
},
schamane = {
{7005, 1},
{11807, 1},
{12627, 1}
}
}
horse.set_level(21)
give_item_from_table(items.all)
if pc.get_job() == 0 then
give_item_from_table(items.krieger)
elseif pc.get_job() == 1 then
give_item_from_table(items.ninja)
elseif pc.get_job() == 2 then
give_item_from_table(items.sura)
elseif pc.get_job() == 3 then
give_item_from_table(items.schamane)
end
set_state(_COMPLETE_)
end
end
state _COMPLETE_ begin
end
end
Code:
function give_item_from_table(tablename, count)
for i = 1, table.getn(tablename) do
if count == nil then
pc.give_item2(tablename[i][1], tablename[i][2])
else
pc.give_item2(tablename[i][1], count)
end
end
end
|
Wo soll ich
Quote:
function give_item_from_table(tablename, count)
for i = 1, table.getn(tablename) do
if count == nil then
pc.give_item2(tablename[i][1], tablename[i][2])
else
pc.give_item2(tablename[i][1], count)
end
end
end
|
einfügen ?
|
|
|
03/13/2015, 18:20
|
#2320
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by .Skreezh
Wo soll ich einfügen ?
|
In die Questlib eintragen (einfach nach ganz unten Scrollen, eine leerzeile lassen und dann reinkopoeren)
und in die quest_functions einfach "give_item_from_table" (ohne ()! ) reinschreiben
|
|
|
03/13/2015, 18:26
|
#2321
|
elite*gold: 0
Join Date: Nov 2011
Posts: 1,448
Received Thanks: 1,257
|
Quote:
Originally Posted by mkiiing
also habe ein paar probleme damit...
hab meinen npc, mapindex, koordis eingetragen aber in wenn ich dann auf JA gehe, passiert nichts^^ die syserr
Code:
0313 17:09:20844 :: Traceback (most recent call last):
0313 17:09:20844 :: File "uiTarget.py", line 477, in OnUpdate
0313 17:09:20844 :: NameError
0313 17:09:20844 :: :
0313 17:09:20844 :: global name 'locale' is not defined
0313 17:09:20844 ::
das kommt etwa 100x vor wenn ich auf JA gehe (die Line 477 ist vom Opponent HP/MP von mir eingefügt worden..)^^
das habe ich eingetragen (koordis auch mit 00 am Ende versucht)
PHP Code:
when 20377.chat."Der Überlebenskampf"begin say_title("Überlebenskampf") say("") say("Hast du den Mut diesen Kampf zu starten?") if select("Ja","Nein")==2 then return end if party.is_party() then if party.is_leader() then if pc.get_level()>=75 then d.new_jump_all(70, 8192, 7168)
LG
E: muss der komplette pfad der welle.txt angeben werde? und fängt des bei welle0 oder welle1 an?^^
|
Der Fehler mit der uiTarget.py, dürfte nichts damit zu tun haben und bei jedem NPC kommen, außerdem wenn das Oppo HP Ding die Quest blockieren sollte, dürfte erst gar keine Quest erscheinen.
Das mit Warp, es muss ohne 00 sein und die Map muss auf dem selben Core liegen meine ich.
Zu der Frage mit dem Pfad. Du siehst in der Quest ja ein Beispiel, ab data muss der Pfad angegeben werden. Du kannst also auch data/quest/Blalbla/welle1.txt schreiben, hauptsache der Pfad existiert.
Die Wellen fangen ab 1 an, also ist die erste Txt z.B. Welle1.txt, natürlich kannst du sie auch anders nennen, musst es nachher im Pfad halt angeben und die Txt muss die Zahlenreihenfolge der Wellen einhalten also ab 1 beginnend und am Ende des txt namens z.B. Wette1.txt
Hier die Quest nach dem Index angepasst:
Code:
quest wellen_run begin
state start begin
when 20377.chat."Der Überlebenskampf"begin
say_title("Überlebenskampf")
say("")
say("Hast du den Mut diesen Kampf zu starten?")
if select("Ja","Nein")==2 then return end
if party.is_party() then
if party.is_leader() then
if pc.get_level()>=75 then
d.new_jump_all(70, 8192, 7168) -- MapIndex + Warpcodes zu Map
else
say_title("Mindestlevel!")
say("")
say("Alle Gruppenmitglieder müssen ein")
say("Mindestlevel von 75 haben.")
end
else
say_title("Gruppenleiter")
say("")
say("Nur der Gruppenleiter kann den Run")
say("starten!")
end
else
say_title("Gruppe")
say("")
say("Du musst in einer Gruppe sein, damit")
say("du in den Run kannst!")
end
end
-- MapIndex+0000
-- Eingrenzen MapIndex ist z.B. 101 also wäre der DungeonIndex 1010000 der nächstliegende Index ist 102 und wir
-- wissen das alle Koordinaten dieser Map zwischen 101 und 102 Index liegen müssen also
-- 1010000 und 1020000
when login with pc.get_map_index() >= 700000 and pc.get_map_index() < 710000 begin
if pc.get_level()<75 then
d.notice("Einer eurer Mitglieder ist unter Lv75! Betrüger!")
d.exit_all()
end
wellen_run.set_empire_locaction()
if d.getf("isspawn")==1 then return end
d.setf("isspawn", 1)
d.spawn_mob(20019, 548, 364) -- NPC der denn Dungeon im Run startet!
if d.getf("Welle")==0 then
d.notice("Spricht mit dem "..mob_name(20019)..". Er wird euch den Run eröffnen.")
end
end
when 20019.click with pc.get_map_index() >= 700000 and pc.get_map_index() < 710000 begin -- NPC der denn Dungeon im Run startet!
if d.getf("Welle")==0 then
npc.purge()
d.notice("Okay, und los gehts! Versucht euer Glück und kommt soweit wie möglich!")
loop_timer("Welle", 1)
end
end
when Welle.timer begin
local MAX_WELLE = 4
if d.count_monster()==0 then d.setf("IsWelle", 0) d.setf("Welle", d.getf("Welle")+1) end
if d.getf("IsWelle")==1 then return end
d.notice("Welle "..d.getf("Welle").." ist im Anmarsch.")
d.setf("IsWelle", 1)
if d.getf("Welle")>=MAX_WELLE then
d.regen_file("data/dungeon/wellen_run/welle"..MAX_WELLE..".txt") --txt
else
d.regen_file("data/dungeon/wellen_run/welle"..d.getf("Welle")..".txt")
end
end
function set_empire_locaction()
if pc.get_empire()==1 then
pc.set_warp_location(1, 4693, 9642)
elseif pc.get_empire()==2 then
pc.set_warp_location(21, 557, 1579)
elseif pc.get_empire()==3 then
pc.set_warp_location(41, 9696, 2784)
end
end
end
end
|
|
|
03/13/2015, 18:29
|
#2322
|
elite*gold: 0
Join Date: Mar 2015
Posts: 82
Received Thanks: 7
|
Quote:
Originally Posted by [Sensenmann]
In die Questlib eintragen (einfach nach ganz unten Scrollen, eine leerzeile lassen und dann reinkopoeren)
und in die quest_functions einfach "give_item_from_table" (ohne ()! ) reinschreiben
|
Bekomme immer noch keine Items
|
|
|
03/13/2015, 18:30
|
#2323
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by .Skreezh
Bekomme immer noch keine Items 
|
quests compiled und neu geladen etc?
|
|
|
03/13/2015, 18:32
|
#2324
|
elite*gold: 0
Join Date: Mar 2015
Posts: 82
Received Thanks: 7
|
Quote:
Originally Posted by [Sensenmann]
quests compiled und neu geladen etc?
|
Wie meinst du das? :s
Hab alles so eingefügt wie du es meintest und dann Server rebootet.
|
|
|
03/13/2015, 18:35
|
#2325
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by .Skreezh
Wie meinst du das? :s
Hab alles so eingefügt wie du es meintest und dann Server rebootet.
|
virtualbox:
cd /usr/home/game/share/locale/germany/quest && python make.py
danach ingame:
/reload q
-- du musst nicht immer rebooten ...^^ hast du die quest auch in die quest_list eingetragen?
|
|
|
 |
|
Similar Threads
|
[Community]Questerstellung
09/06/2015 - Metin2 Private Server - 5 Replies
Hallo liebe Community,
ich möchte meine Questkenntnisse ein wenig erweitern, deshalb möchte ich euch hier die Möglichkeit geben, Ideen, Wünsche und alles was mit Quests zu tun hat an mich weiterzuleiten.
Ich werde, sobald ich Zeit und Lust habe, die Ideen größtenteils umsetzen und das Ergebnis hier veröffentlichen. Wie oben schon erwähnt bin ich Quasi noch am 'lernen' (ja ich weis, man lernt nie aus), deshalb bitte ich euch, mich zu informieren wenn ich irgendwo gefailed hab, man es...
|
Hilfe bei Questerstellung
02/25/2012 - Metin2 Private Server - 0 Replies
€dit:
Kan gelöscht werden habe jemanden gefunden!!!!
|
Hilfe bei Questerstellung
02/15/2012 - Metin2 Private Server - 8 Replies
Heyy
Ich hätte eine bitte an euch.
Und zwar einer von euch mir einige quests erstellst.
Ich habe voll kp von quests.
Als blohnung würde ich dir auf meinem server
5k coins (Wert 50€) geben.
also hier die quests:
30 Quest
Belohnung: 100kk 42 rüssi+7 je nach der klasse.
|
Hilfe bei Questerstellung
08/16/2011 - Metin2 Private Server - 0 Replies
Mahlzeit
also ich suche jemanden der mir ein grundgerüst einer quest erstellen kann so das ich diese weiter ausbauen kann,
So nun zur quest idee
Also ich möchte einen NPC hinstellen nennen wir den mal Questnpc
wenn man den anklickt soll man dem levelabhängig quest angeboten bekommen,zum beispiel ab lvl10 töte 50 weisse Tiger,aber lvl40 töte 30 Oberork und so weiter,was mit levelanstieg natürlich komplexer werden sollte.Manche Quest sollten nur einmal zumachen gehen und manche im höheren lvl...
|
[SERVICE]Questerstellung
05/24/2011 - Metin2 Private Server - 4 Replies
Abend e*pvp,
nach langem Überlegen hab ich mich doch dazu entschlossen, meine Arbeit gegen e*gold zur Verfügung zu stellen.
Ich werde euch mal die wichtigsten Fragen beantworten ;)
Woraus besteht dein Service?
Zum einen erstelle ich einzelne, sowie ganze Questreihen. Die von mir verschickten Dateien werden Unikate bleiben, und sofort nach erfolgreichem Transfer gelöscht. Außerdem biete ich nochmal seperat eine Questverbesserung zum Sammelthread an. Diese wird dann natürlich...
|
All times are GMT +1. The time now is 05:31.
|
|