Questbefehl gesucht

02/23/2012 22:38 RealMadrid94rk#1
Hallo Leute,

suche einen Befehl undzwar, soll man nach dem Kill des Drachen für eine Stunde nicht mehr in die Drachenkammer können. Wie mache ich das?
02/23/2012 23:01 Benhero#2
Code:
    pc.setqf("next_dragon", get_time()+60*60)
Anschauen. Verstehen. Bedanken!

Benhero
02/23/2012 23:17 RealMadrid94rk#3
das "next_dragon" kann eigentlich heißen wie es will oder?
02/24/2012 00:19 Benhero#4
Ja das tut es.
Hier die Quest.. Bin ja net so..
PHP Code:
quest dragon_kill begin
  state start begin
    when 2493.kill begin
      local n_dragen 
= get_time() + 60*60
      game
.set_event_flag("next_drageon", n_dragon)
      
notice_all(pc.get_name().. " hat " ..mob_name(2493).. " getötet!")
      
notice_all("Der Nächste Drache kann erst in einer Stunde getötet werden!")
    
end
  end
end 
und hier die quest für den NPC:
PHP Code:
quest dragon_port begin
  state start begin
    when xxx
.chat."In Den Drachenraum" begin
      local c_dragon 
= game.get_evnet_flag("next_dragon")
      if 
c_dragon > get_time() then
        say_title
(mob_name(npc.get_race()).. ":")
        
say("")
        
say("Tut mir leid. Du kannst den Drachenraum noch nicht")
        
say("betreten. Komm in " ..(c_dragon-get_time())/60.. " Minuten wieder.")
        
say("")
      else
        -- 
Hier den Code einfügen wenn die Stunde vorbei ist
      end
    end
  end
end 
Mfg. Benhero

#Code Kann fehler enthalten. Alles von hand geschrieben! Bei fehlern melden Danke
02/24/2012 00:37 Ocelot2606#5
Warum machst du bei der einen Quest

PHP Code:
game.set_event_flag("next_drageon", n_dragon) 
fragst aber in der 2 nach

PHP Code:
local c_dragon = game.get_evnet_flag("next_dragon") 
Wieso einmal n und einmal c?
02/24/2012 00:57 Benhero#6
Weil ich es kann? :D
n_dragon = Next Dragon
c_dragon = Check Dragon

Benhero
02/24/2012 08:53 Synfonia#7
Quote:
Originally Posted by Benhero View Post
Ja das tut es.
Hier die Quest.. Bin ja net so..
PHP Code:
quest dragon_kill begin
  state start begin
    when 2493.kill begin
      local n_dragen 
= get_time() + 60*60
      game
.set_event_flag("next_drageon", n_dragon)
      
notice_all(pc.get_name().. " hat " ..mob_name(2493).. " getötet!")
      
notice_all("Der Nächste Drache kann erst in einer Stunde getötet werden!")
    
end
  end
end 
und hier die quest für den NPC:
PHP Code:
quest dragon_port begin
  state start begin
    when xxx
.chat."In Den Drachenraum" begin
      local c_dragon 
= game.get_evnet_flag("next_dragon")
      if 
c_dragon > get_time() then
        say_title
(mob_name(npc.get_race()).. ":")
        
say("")
        
say("Tut mir leid. Du kannst den Drachenraum noch nicht")
        
say("betreten. Komm in " ..(c_dragon-get_time())/60.. " Minuten wieder.")
        
say("")
      else
        -- 
Hier den Code einfügen wenn die Stunde vorbei ist
      end
    end
  end
end 
Mfg. Benhero

#Code Kann fehler enthalten. Alles von hand geschrieben! Bei fehlern melden Danke
1. Lauter Rechtschreibfehler (dragen, drageon, Nächste, Den, evnet_flag)
2. Sind die ganzen Variablen recht unnötig.
Man kann genauso game.set_event_flag("next_dragon",get_time()+60*60 ) oder if get_time() < game.get_event_flag("next_dragon") then
3. Verbesserungsvorschlag:
notice_all("Der nächste Drache kann erst in einer Stunde getötet werden!")
Die Zeile ist recht überflüssig. Die Leute werden das entweder von der Vorstellung oder nach ner Zeit sowieso wissen und dann ist die Zeile nur unnötige Wiederholung.
4. Muss man dafür keine Extra-Quests schreiben sondern einfach in die Drachenraumquest einbauen.

Anhang an die Drachenraum-Quest
PHP Code:
    when 2493.kill begin
      game
.set_event_flag("next_dragon", get_time()+3600)
      
notice_all(pc.get_name().. " hat " ..mob_name(2493).. " getötet!")
    
end 
Anhang für den when-befehl zum betreten des Drachenraums in der Drachenraum-Quest:
PHP Code:
      if get_time() < game.get_event_flag("next_dragon")
        
say_title(mob_name(npc.get_race()).. ":")
        
say("")
        
say("Tut mir leid. Du kannst den Drachenraum noch nicht")
        
say("betreten. Komm in " ..(c_dragon-get_time())/60.. " Minuten wieder.")
        
say("")
      elseif 
oder if
        
Rest des NPC-Chat Dialogs.
      ...
      
end