[Frage]EventQuest!

11/06/2012 21:03 SATunE#1
Hi,

Kann mir einer villeicht in der quest n Timer einschreiben?
Da steht zwar das es ne Ankündigung für Eventende ist, aber es gibt kein Timer!

PHP Code:
quest item_drop begin
    state start begin
        
function kill_in_my_level(vnumlevel)
    ----
Variablen
        
--Mobs
        local mobs 
= {
            {
                {
101657};
                {
701777};
                {
51015116};
            };
            {
                {
901937};
                {
10011071};
                {
11011107};
                {
11711177};
                {
13011303};
                {
13311335};
                {
20012076};
                {
21012158};
                {
51215157};
            };
            {
                {
14011603};
                {
22012205};
                {
22312235};
                {
23012305};
                {
23112414};
            };
        }        
        
local metin = {
            {
80018007};
            {
80088017};
            {
80188030};
        }
        
        -- 
Levelbegrenzungen
        local lvl 
= {356599}
    ----
    
local k=0
    
for i=1do
        if 
level<=lvl[i] and k==0 then
            k 
i
        end
    end
    
for i=1table.getn(mobs[k]) do
        for 
p=mobs[k][i][1], mobs[k][i][2] do
            if 
vnum==p then
                
return true
            end
        end
    end    
    
for p=metin[k][1], metin[k][2] do
        if 
vnum==p then
            
return true
        end        
    end    
    
return false
end
        when 20020.chat
."Item_Drop" with pc.is_gm() begin
            
if game.get_event_flag("item_open") == 0 then
                say
("Hallo "..pc.get_name().." hier kannst")
                
say("ein Item Drop Event starten")
                
say("Willst du das tun?")
                if 
select("Ja","Nein") == 2 then return end
                say
("Bitte gib an welches Item gedroppt werden soll.")
                
kill_item tonumber(input()) or 0
                
if kill_item == 0 then
                    say
("Du musst schon was eingeben.")
                    return
                
end    
                say
("Gibt bitte ein wie die Chance zu 100 sein soll das es gedroppt wird ?")
                
kill_prozent tonumber(input()) or 0
                
if kill_prozent == 0 then
                    say
("Du musst schon was eingeben")
                    return
                
end    
                say
("Bitte gib an wie lange Das Event laufen soll ( in Minuten ) ")
                
zeit tonumber(input()) or 0
                
if zeit == 0 then
                    say
("Falsche eingabe")
                    return
                
end
                game
.set_event_flag("item_time"get_time()+zeit*60)
                
game.set_event_flag("item_open"1)
                
notice_all("Das Item Drop Event wurde gestartet")
                
notice_all("Mann kann das item "..item_name(kill_item).." von allen Monster droppen.")
                
notice_all("Fuer "..zeit.." Minute(n)")
            else 
                
say("Item Drop Event ist derzeit schon aktiv")
                
say("Beenden?")
                if 
select("Ja""Nein")==2 then return end
                game
.set_event_flag("item_open"0)
                
kill_prozentkill_item nilnil
            end
        end
        when kill with kill_in_my_level
(npc.racepc.get_level())==true and game.get_event_flag("item_open") == and not npc.is_pc() begin
            
if kill_prozent == nil then game.set_event_flag("item_open"0) return end
            
if game.get_event_flag("item_time") < get_time() then
                notice_all
("Das Item Drop Event ist vorbei")
                
notice_all("Wir hoffen ihr hattet euren Spass beim Farmen.")
                
game.set_event_flag("item_open"0)
                
kill_prozentkill_item nilnil
                
return
            
end
            local s
=number(1101-kill_prozent
            if 
s==1 then
                game
.drop_item_with_ownership(kill_item1
            
end
        end
        when login with game
.get_event_flag("item_open") == 1 begin
            notice
("Das Item Drop Event laeuft du kannst das"
            
notice("Item "..item_name(kill_item).." von allen Monstern droppen")
        
end
    end
end 
Danke

MFG TunE
11/07/2012 19:50 Chip'#2
Quest ist doch fertig, hab sie nur überflogen aber glaube sollte so richtig erklärt sein, achso der große Quester bin ich auch nicht :D

PHP Code:
Hier wird gestartet mit dem Timer
Für 
''..zeit..'' zeigt kommt ingame dann wielange..
                
game.set_event_flag("item_time"get_time()+zeit*60)
                
game.set_event_flag("item_open"1)
                
notice_all("Das Item Drop Event wurde gestartet")
                
notice_all("Mann kann das item "..item_name(kill_item)..
                von allen Monster droppen."
)
                
notice_all("Fuer "..zeit.." Minute(n)")

Wenn die zeit abgelaufen ist kommt auch eine Nachricht.
und ''item_open'' wird auf 0 gesetzt (wichtig für Login... Siehe unten)

            if 
game.get_event_flag("item_time") < get_time() then
                notice_all
("Das Item Drop Event ist vorbei")
                
notice_all("Wir hoffen ihr hattet euren Spass beim Farmen.")
                
game.set_event_flag("item_open"0)
                
kill_prozentkill_item nilnil
                
return

Wenn man sich einloggt wird geschaut ob ''item_open'' noch aktiv ist wenn ja (also 1dann bekommt man die nachricht das es halt noch an ist und was man droppen kann. ->"..item_name(kill_item).."
        
when login with game.get_event_flag("item_open") == 1 begin
            notice
("Das Item Drop Event laeuft du kannst das"
            
notice("Item "..item_name(kill_item).." von allen Monstern droppen"
Also meiner Meinung nach sollte alles richtig laufen mit timer und Nachrichten.
Hab sie nun selber nicht getestet!