Quote:
Hallo liebe elitepvpers user ich hätte eine frage unszwar
suche ich eine Quest die so auschauen sollte : Man klickt auf einem Npc der zeigt dir 3-4 Quests an und man kann halt eins nehmen muss darraufhin halt jmd töten (Mob) nachdem er es getan muss er halt die quest abgeben und bekommt ein item vom Npc ja das halt darraufhin kann man noch halt die anderen quest machen kann mir vllt da jmd weiterhelfen ? oder existiert so eine quest?
quest quest1 begin
state start begin
when xxx.chat."Quest 1" begin
say("Text")
local accept = select("Quest starten", "Abbrechen")
if accept == 2 then
return
else
say("Du musst 5x bla töten.")
pc.setqf("count", 5)
set_state("quest_do")
end
end
end
state quest_do begin
when kill with npc.get_race() == xxx begin
if pc.getqf("count") >= 2 then
pc.setqf("count", pc.getqf("count")-1)
else
say("Quest abgeschlossen, gehe zu dem Npc")
set_state("quest_succeed")
end
end
end
state quest_succeed begin
when xxx.chat."Quest 1 Belohnung" begin
say("Hier deine Belohnung")
pc.give_item2(vnum, anzahl)
set_state("_COMPLETE_")
end
end
state _COMPLETE_ begin
end
end
quest quest2 begin
state start begin
when xxx.chat."Quest 2" begin
say("Text")
local accept = select("Quest starten", "Abbrechen")
if accept == 2 then
return
else
say("Du musst 10x bla töten.")
pc.setqf("count", 10)
set_state("quest_do")
end
end
end
state quest_do begin
when kill with npc.get_race() == xxx begin
if pc.getqf("count") >= 2 then
pc.setqf("count", pc.getqf("count")-1)
else
say("Quest abgeschlossen, gehe zu dem Npc")
set_state("quest_succeed")
end
end
end
state quest_succeed begin
when xxx.chat."Quest 2 Belohnung" begin
say("Hier deine Belohnung")
pc.give_item2(vnum, anzahl)
set_state("_COMPLETE_")
end
end
state _COMPLETE_ begin
end
end
quest quest3 begin
state start begin
when xxx.chat."Quest 3" begin
say("Text")
local accept = select("Quest starten", "Abbrechen")
if accept == 2 then
return
else
say("Du musst 15x bla töten.")
pc.setqf("count", 15)
set_state("quest_do")
end
end
end
state quest_do begin
when kill with npc.get_race() == xxx begin
if pc.getqf("count") >= 2 then
pc.setqf("count", pc.getqf("count")-1)
else
say("Quest abgeschlossen, gehe zu dem Npc")
set_state("quest_succeed")
end
end
end
state quest_succeed begin
when xxx.chat."Quest 3 Belohnung" begin
say("Hier deine Belohnung")
pc.give_item2(vnum, anzahl)
set_state("_COMPLETE_")
end
end
state _COMPLETE_ begin
end
end
quest quest4 begin
state start begin
when xxx.chat."Quest 4" begin
say("Text")
local accept = select("Quest starten", "Abbrechen")
if accept == 2 then
return
else
say("Du musst 20x bla töten.")
pc.setqf("count", 20)
set_state("quest_do")
end
end
end
state quest_do begin
when kill with npc.get_race() == xxx begin
if pc.getqf("count") >= 2 then
pc.setqf("count", pc.getqf("count")-1)
else
say("Quest abgeschlossen, gehe zu dem Npc")
set_state("quest_succeed")
end
end
end
state quest_succeed begin
when xxx.chat."Quest 4 Belohnung" begin
say("Hier deine Belohnung")
pc.give_item2(vnum, anzahl)
set_state("_COMPLETE_")
end
end
state _COMPLETE_ begin
end
end
Ich danke dir sehr für deine Mühe! Aber ist es denn auch möglich das Monster automatisch spawnen zu lassen? Also dass es normal spawnt wie in der regen.txt und nicht über ein Item? Es funktioniert nämlich bei mir überhaupt nicht, und da hab ich gehofft, dass man das so umsetzen kann.Quote:
#untested, mit dem Handy geschrieben kleine Rückmeldung
wenn's nicht gehn oder gehen sollte ^^
Greetings.PHP Code:quest event_spawn begin
state start begin
when NPC_VALUE.chat."Spawnevent" or ITEM_VALUE.use with pc.is_gm() begin
--Variablen
local mob_vnum = 591 -- Bsp Monster
local filename = "" --derexakte name im mapordner zb. eventspawn ohne .txt
local map_index = 63 --ist jetzt z.B Wüste
local announcement = "Mob xy ist erschienen!" --Ankündigunstext
say_title("Spawnevent")
say("Spawnen lassen?")
local s= select("Ja, mit Ankündigung", "Ja, ohne Ankündigen", "Nein")
if s==1 then
notice_all(announcement)
regen_in_map(map_index, "data/dungeon/"..filename..".txt")
game.set_event_flag("mob_spawn", 1)
server_timer("mob_spawn", 3600)
elseif s == 2 then
regen_in_map(map_index, "data/dungeon/"..filename..".txt")
game.set_event_flag("mob_spawn", 1)
elseif s == 3 then
end
end
when mob_spawn.server_timer begin
if game.get_event_flag("mob_spawn") == 1 then
notice_all("Mob xy zieht immernoch durch die Wüste")
end
if game.get_event_flag("mob_spawn") == 0 then
regen_in_map(map_index, "data/dungeon/"..filename..".txt")
game.set_event_flag("mob_spawn", 1)
server_timer("mob_spawn", 3600)
end
end
when kill with npc.get_race() == mob_vnum and game.get_event_flag("mob_spawn") == 1 begin
notice_all("Mob xy wurde von "..pc.get_name().." getötet!")
game.set_event_flag("mob_spawn", 0)
server_timer("mob_spawn", 3600)
end
end
end
Ich habe fast die gleiche Quest nochmal geschrieben.Quote:
Ich danke dir sehr für deine Mühe! Aber ist es denn auch möglich das Monster automatisch spawnen zu lassen? Also dass es normal spawnt wie in der regen.txt und nicht über ein Item? Es funktioniert nämlich bei mir überhaupt nicht, und da hab ich gehofft, dass man das so umsetzen kann.
Vielleicht über eine Eventflag die dauerhaft aktiv ist? Also schon nach Serverstart? Das könnte man ja dann über eine separate Quest machen.
quest spawnmob begin
state start begin
when xxx.use begin with pc.get_name() == "[SA]Butzbiba" begin
-- CONFIG
regen_path = "/usr/.../.txt"
map_index = 1
mob_vnum = 1
mob_name = "Name"
announcement_spawn = mob_name.." ist erschienen ..."
announcement_killed = mob_name.." wurde von "..pc.get_name.." getötet."
announcement_not_killed = mob_name.." wurde noch nicht getötet ..."
-- CONFIG
say("Möchtest du "..mob_name.." spawnen?")
local spawn = select("Mob spawnen", "Abbrechen")
if spawn == 2 then
return
else
regen_in_map(map_index, regen_path)
game.set_event_flag("spawnmob", 1)
server_timer("spawnmob", 3600)
notice_all(announcement_spawn)
end
end
when kill with npc.get_race() == mob_vnum begin
game.set_event_flag("spawnmob", 0)
notice_all(announcement_killed)
end
when spawnmob.timer begin
if game.get_event_flag("spawnmob") == 0 then
regen_in_map(map_index, regen_path)
game.set_event_flag("spawnmob", 1)
server_timer("spawnmob", 3600)
notice_all(announcement_spawn)
else
server_timer("spawnmob", 3600)
notice(announcement_not_killed)
end
end
end
end
Aber der Drache wird nie von alleine spawnen oder? Ist das nicht möglich quasi 3 "spawnmob" Flags zu machen? 0 - Er spawnt nicht 1- Er spawnt 2- Aktiviert 1 stunde nach dem Ablauf von flag 1 diese wieder...Quote:
Ich habe fast die gleiche Quest nochmal geschrieben.
Wüsste nicht wie es gehen soll ohne, dass nach einem Reboot ein GM / SA das auslöst...
Ist bis auf kleine Änderungen genauso wie die Quest von Duke.PHP Code:quest spawnmob begin
state start begin
when xxx.use begin with pc.get_name() == "[SA]Butzbiba" begin
-- CONFIG
regen_path = "/usr/.../.txt"
map_index = 1
mob_vnum = 1
mob_name = "Name"
announcement_spawn = mob_name.." ist erschienen ..."
announcement_killed = mob_name.." wurde von "..pc.get_name.." getötet."
announcement_not_killed = mob_name.." wurde noch nicht getötet ..."
-- CONFIG
say("Möchtest du "..mob_name.." spawnen?")
local spawn = select("Mob spawnen", "Abbrechen")
if spawn == 2 then
return
else
regen_in_map(map_index, regen_path)
game.set_event_flag("spawnmob", 1)
server_timer("spawnmob", 3600)
notice_all(announcement_spawn)
end
end
when kill with npc.get_race() == mob_vnum begin
game.set_event_flag("spawnmob", 0)
notice_all(announcement_killed)
end
when spawnmob.timer begin
if game.get_event_flag("spawnmob") == 0 then
regen_in_map(map_index, regen_path)
game.set_event_flag("spawnmob", 1)
server_timer("spawnmob", 3600)
notice_all(announcement_spawn)
else
server_timer("spawnmob", 3600)
notice(announcement_not_killed)
end
end
end
end
Ich weiss jetzt nicht wie du das wolltest ... bei der Quest von Duke muss man nachdem das Monster gekillt wurde 1 Std warten, bei der von mir hier oben muss man von Spawn bis Spawn 1 Std warten.
Das heißt z.B. bei der von Duke, wenn der Drache gestorben ist, dauert es 1 Stunde, bis automatisch ein neuer spawnt?Quote:
So wie ich und Duke es jetzt gemacht haben muss das Spawnen nur nach einem Reboot von einem Teamler gemacht werden, alles andere macht die Quest dann alleine.
Genau. Nach einem Reboot / Serverabsturz, halt immer nachdem der Server gestartet wurde, muss die Quest von einem Teamler gestartet werden.Quote:
Das heißt z.B. bei der von Duke, wenn der Drache gestorben ist, dauert es 1 Stunde, bis automatisch ein neuer spawnt?
Ich danke euch sehr für eure Mühen!
Man könnte es auch so lösen, das ein GM wenn er sich einloggt, einen Timer unwissentlich, immer wieder neustartet, dieser würde alle 5 Min checken, wie lang die Ankündigung her ist (falls der Mob nicht getötet wurde) und nach einer Stunde eine Ankündigung raushaut und ggf. den Mob neu spawnt.Quote:
Mercí!!!! Suche schon ewig :)
quest warp_to begin
state start begin
when 70007.use begin --Warpring ID einsetzen!
local empire = pc.get_empire()
say_title("Lieber Spieler von Shining2")
say("")
say("Ich kann dich Teleportieren wohin du willst, sag mir doch wo du hin willst.")
local s = select("Map1", "Map2", "Abbrechen")
if s==4 then
return
elseif s==1 then
say_title("Wohin genau?")
say("")
local a = select("Rotes Reich", "Gelbes Reich", "Blaues Reich", "Abbrechen")
if a == 4 then return end
local map ={
{474300, 954800},
{63800, 166400},
{959900, 269200}
}
pc.warp(map[a][1], map[a][2])
elseif s==2 then
say_title("Wohin genau?")
say("")
local a = select("Rotes Reich", "Gelbes Reich", "Blaues Reich", "Abbrechen")
if a == 4 then return end
local map ={
{353100, 882900},
{145500, 240000},
{863900, 246000}
}
pc.warp(map[a][1], map[a][2])
elseif s==3 then
say_title("Wohin genau?")
say("")
local a = select("Mitte","Abbrechen")
if a == 2 then return end
if s == 1 then
local map ={
(296800, 547100),
(296800, 547100)
}
pc.warp(map[empire][1], map[empire][2])
elseif a == 1 then
pc.warp(296800, 547100)
end
end
end
end
end