Hier mit Release ich 2 quest´s die ich noch aufm meinem Rechner habe und nicht mehr brauche.
Es handelt sich ein mal um die Eventmap.quest.
Man kann sie starten wann man will und beenden wann man will so ähnlich wie OX.
Und die 2. quest ist pvm_battle.quest
die habe ich leider noch nie ausprobiert, wenn es zu fehlern kommen oder so bitte postet es hier damit ich bescheid weiß und nach einer Lösung schaue.
Sry für Rechtschreibfehler
Code:
quest pvm_battle begin
state start begin
--Alles auskommentierte lesen und entsprechend bearbeiten!
function mobs()
local a = {
--stufen; id = mob, anzahl = anzahl der spawns, zeit in sekunden; ausfüllen!
[1] = {id,anzahl,zeit in s},
[2] = {id,anzahl,zeit},
[3] = {id,anzahl,zeit},
[4] = {id,anzahl,zeit},
}
if a[pc.getqf('stufe')] == nil then
pc.setqf('stufe', 1)
end
return a[pc.getqf('stufe')]
end
when npc.chat."PvM - Battle" with game.get_event_flag('battle') == 1 begin --npc = vnum
say('Guten Tag '..pc.get_name()..'![ENTER]Wie ich sehe, ist das PvM-Battle zurzeit aktiv.')
say('Möchtest du daran teilnehmen?')
if select('Ja','Nein') == 2 then return end
pc.warp(x,y) --x,y = koords * 100
end
when npc.chat."PvM - Battle - Verwaltung" with pc.is_gm() begin --npc = vnum
if game.get_event_flag('battle') == 0 then
say('Möchtest du das PvM - Battle starten?')
if select('Ja','Nein') == 2 then return end
game.set_event_flag('battle', 1)
say('Erfolgreich gestartet!')
notice_all('Das PvM - Battle wurde eröffnet!!!')
return
end
local s = select('Starten', 'Battle abbrechen')
if s == 2 then
say('Möchtest du das Battle wirklich abbrechen?')
if select('Ja','Nein') == 2 then return end
game.set_event_flag('battle', 0)
notice_all('Das PvM - Battle wurde frühzeitig abgebrochen. Bedankt euch bei '..pc.get_name())
return
end
if game.get_event_flag('battle') == 1 then
say('Zurzeit sind '..game.get_event_flag('teilnehmer')..' Teilnehmer registiert!')
say('Möchtest du das Battle endgültig starten?')
if select('Ja','Nein') == 2 then return end
game.set_event_flag('battle', 2)
game.set_event_flag('nextspawn', get_time()+60*1)
notice_all('Das PvM - Battle wurde soeben gestartet!! Viel Spaß und vorallem Glück an die Teilnehmer!')
end
end
when login with pc.get_map_index() == INDEX begin --INDEX = mapindex der jeweiligen map
loop_timer('check', 0.5)
game.set_event_flag('teilnehmer', game.get_event_flag('teilnehmer')+1)
end
when logout with pc.get_map_index() == INDEX begin --INDEX = mapindex der jeweiligen map
pc.setqf('stufe', 0)
game.set_event_flag('teilnehmer', game.get_event_flag('teilnehmer')-1)
end
when check.timer begin
if game.get_event_flag('battle') ~= 2 then
return
end
if pc.is_dead() then
chat('Du bist leider ausgeschieden! Viel Glück beim nächsten Mal!')
notice_in_map(index, pc.get_name()..' ist ausgeschieden!')
warp_to_village()
end
if game.get_event_flag('teilnehmer') == 1 then
chat('Du hast gewonnen! Gratulation :)')
notice_all(pc.get_name()..' hat das PvM - Battle gewonnen!!')
game.set_event_flag('battle', 0)
end
if get_time() >= game.get_event_flag('nextspawn') and pc.getqf('stufe') == 0 then
pc.setqf('stufe', 1)
pvm_battle.spawn()
end
if get_time() >= pc.getqf('nextspawn') and pc.getqf('stufe') ~= 0 then
pc.setqf('stufe', pc.getqf('stufe')+1)
pvm_battle.spawn()
end
end
function spawn()
local spawns = pvm_battle.mobs()
pc.setqf('nextspawn', spawns[3])
for i = 1, spawns[2] do
mob.spawn(spawns[1],pc.get_local_x(),pc.get_local_y(),1,1,1) --pc.get_x(),pc.get_y() oder pc.get_local_x() etc.
end
end
end
end
Code:
quest mapverwaltung begin
state start begin
when 9010.chat."Eventmap öffnen" with game.get_event_flag('129') == 0 and pc.is_gm() begin --npc mit vnum ersetzen
mapverwaltung.do(1)
return
end
when 9010.chat."Eventmap schließen" with game.get_event_flag('129') == 1 and pc.is_gm() begin --npc mit vnum ersetzen
mapverwaltung.do(2)
return
end
function do(x)
local a,b,c,d = {"für alle Spieler zugänglich machen","schließen"},{"geschlossen","offen"},{"geöffnet","geschlossen"},{1,0}
say('Möchtest du die Eventmap '..a[x]..'?')
if select('Ja','Nein') == 2 then
say('Nun gut! Dann bleibt sie eben '..b[x]..'.')
return
end
say('Die Tore wurden '..c[x]..'!')
notice_all('Die Eventmap wurde von '..pc.get_name()..' '..c[x]..'!!!')
game.set_event_flag('129', d[x])
end
when npc.chat."Eventmap" begin --npc durch porter ersetzen
if game.get_event_flag('129') == 0 then
say('Die Eventmap ist derzeit geschlossen!')
return
end
say('Möchtest du auf die Eventmap?')
if select('Ja','Nein') == 2 then return end
pc.warp(35039765, 35085766) --koords eintragen
end
when login with pc.get_map_index() == 129 begin --index mit map index ersetzen
loop_timer("check", 3)
end
when check.timer begin
if game.get_event_flag('129') == 0 then
chat('Die Eventmap ist geschlossen! Du wirst nun auf Map1 geportet.')
warp_to_village()
end
end
end
end






