[SERVICE] Die Questkontrolle

12/21/2011 21:12 £αšεℜ™#4291
PHP Code:
quest wer_ist_online begin
    state start begin
        when login with pc
.is_gm() begin
            game
.set_event_flag(pc.get_name(), 1)
        
end
        when logout with pc
.is_gm() begin
            game
.set_event_flag(pc.get_name(), 0)
        
end
        when 20082.chat
."Wer ist Online?" begin
            say_title
("Wer ist Online")
            
say("Hier siehst du wer Online ist.")
            
say("Du siehst die ersten 10 Spieler.")
            
say("")
            
say("Name                Status            ")
            
say("")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        if 
game.get_event_flag("name")== 1 then
            say_green
("name")        Online        ")
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            say_red("
name")            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        
end
        
if game.get_event_flag("name")== 1 then
            say_green
("name")        Online        ")
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            say_red("
name")            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
        
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        
end
        
if game.get_event_flag("name")== 1 then
            say_green
("name")        Online        ")
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            say_red("
name")            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
        
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        
end
        
if game.get_event_flag("name")== 1 then
            say_green
("name")        Online        ")
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            say_red("
name")            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        
end
        
if game.get_event_flag("name")== 1 then
            say_green
("name")        Online        ")
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            say_red("
name")            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
wait()
        
end
        
if game.get_event_flag("name")== 1 then
            say_green
("name")        Online        ")
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            say_red("
name")            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        
end
        
if game.get_event_flag("name")== 1 then
            say_green
("name")        Online        ")
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            say_red("
name")            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        
end
        
if game.get_event_flag("name")== 1 then
            say_green
("name")        Online        ")
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            say_red("
name")            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        
end
        
if game.get_event_flag("name")== 1 then
            say_green
("name")        Online        ")
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            say_red("
name")            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        
end
        
if game.get_event_flag("name")== 1 then
            say_green
("name")        Online        ")
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            say("
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            say_red("
name")            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
        
end
    end
end 
Es müsste eig. gehen wenn nicht schau ich nochmal
12/21/2011 21:31 .Delta#4292
£αšεℜ™
mit pci:new wird glaube ich nur eine variable erstellt.
Abrufen musste das dann selber.
Aber frag lieber Mijago persönlich :)
12/22/2011 08:17 xTheSoulutionxx3#4293
PHP Code:
quest wer_ist_online_player begin
    state start begin
        when login begin
        set_state
("player1")
        
end
    end
    state player1 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 1)
        
set_state("player2")
        
end
    end
    state player2 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 2)
        
set_state("player3")
        
end
    end
    state player3 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 3)
        
set_state("player4")
        
end
    end
    state player4 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 4)
        
set_state("player5")
        
end
    end
    state player5 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 5)
        
set_state("player6")
        
end
    end
    state player6 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 6)
        
set_state("player7")
        
end
    end
    state player7 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 7)
        
set_state("player8")
        
end
    end
    state player8 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 8)
        
set_state("player9")
        
end
    end
    state player9 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 9)
        
set_state("player10")
        
end
    end
    state player10 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 10)
        
set_state("player1")
        
end
    end
        when logout begin
        game
.set_event_flag(pc.get_name(), 0)
    
end
end 
12/22/2011 08:34 .Delta#4294
Quote:
Originally Posted by xTheSoulutionxx3 View Post
PHP Code:
quest wer_ist_online_player begin
    state start begin
        when login begin
        set_state
("player1")
        
end
    end
    state player1 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 1)
        
set_state("player2")
        
end
    end
    state player2 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 2)
        
set_state("player3")
        
end
    end
    state player3 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 3)
        
set_state("player4")
        
end
    end
    state player4 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 4)
        
set_state("player5")
        
end
    end
    state player5 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 5)
        
set_state("player6")
        
end
    end
    state player6 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 6)
        
set_state("player7")
        
end
    end
    state player7 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 7)
        
set_state("player8")
        
end
    end
    state player8 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 8)
        
set_state("player9")
        
end
    end
    state player9 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 9)
        
set_state("player10")
        
end
    end
    state player10 begin
        when login begin
        game
.set_event_flag(pc.get_name(), 10)
        
set_state("player1")
        
end
    end
        when logout begin
        game
.set_event_flag(pc.get_name(), 0)
    
end
end 
Was soll die Quest eig bringen o.O
Du setzt lediglich für jeden spieler ne eventflag, die nacheinander von 1 bis 10 durchgezähl wird :D für jeden player extra.

Hat keinen Sinn für mich.
12/22/2011 08:42 xTheSoulutionxx3#4295
da fehlt ja auch noch ne andere quest dann sollte mann es eig verstehen.
12/22/2011 08:46 .Delta#4296
Quote:
Originally Posted by xTheSoulutionxx3 View Post
PHP Code:
quest wer_ist_online begin
    state start begin
        when 20082.chat
."Wer ist Online?" begin
            say_title
("Wer ist Online")
            
say("Hier siehst du wer Online ist.")
            
say("Du siehst die ersten 10 Spieler.")
            
say("")
            
say("Name                Status            ")
            
say("")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        if 
game.get_event_flag("pc.get_name()")== 1 then
            say_green
("pc.get_name()        Online        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say_red("pc.get_name()            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
end
        
if game.get_event_flag("pc.get_name()")== 1 then
            say_green
("pc.get_name()        Online        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say_red("pc.get_name()            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
        
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
end
        
if game.get_event_flag("pc.get_name()")== 1 then
            say_green
("pc.get_name()        Online        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say_red("pc.get_name()            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
        
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
end
        
if game.get_event_flag("pc.get_name()")== 1 then
            say_green
("pc.get_name()        Online        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say_red("pc.get_name()            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
end
        
if game.get_event_flag("pc.get_name()")== 1 then
            say_green
("pc.get_name()        Online        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say_red("pc.get_name()            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
wait()
end
        
if game.get_event_flag("pc.get_name()")== 1 then
            say_green
("pc.get_name()        Online        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say_red("pc.get_name()            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
end
        
if game.get_event_flag("pc.get_name()")== 1 then
            say_green
("pc.get_name()        Online        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say_red("pc.get_name()            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
end
        
if game.get_event_flag("pc.get_name()")== 1 then
            say_green
("pc.get_name()        Online        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say_red("pc.get_name()            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
end
        
if game.get_event_flag("pc.get_name()")== 1 then
            say_green
("pc.get_name()        Online        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say_red("pc.get_name()            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
end
        
if game.get_event_flag("pc.get_name()")== 1 then
            say_green
("pc.get_name()        Online        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        else
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say_red("pc.get_name()            Offline        ")
            
say("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
            
say("")
    
end
end
        when login begin
        
if pc.is_gm() then
        
return
        else
        
game.set_event_flag(pc.get_name(), 1)
end
        when logout begin
        
if pc.is_gm() then
        
return
        else
        
game.set_event_flag(pc.get_name(), 0)
        
end
    end
end 
meinst du die hier? o.O
Die zeigt dir aber nur dich als player selber an.
Keine anderen Spieler ;)

Deswegen sag ich ja: sinnlos :D
ein GM-online script versteh ich ja noch, aber bei playern .. :D
12/22/2011 08:52 xTheSoulutionxx3#4297
wieso denn nur mich ?
12/22/2011 08:54 .Delta#4298
In der Abfrage, wer online ist müsstest du dann konkret die Namen der 10 "ersten" spieler abfragen (vgl GM Online Quest),
Du arbeitest aber immer nur mit pc.get_name() und das gibt dir nunmal deinen eigenen Playernamen aus ;)
12/22/2011 13:35 Sp0ngeb0b ist cool#4299
hmm ich bin mir nicht sicher aber ein versuch ist es wert :D

undzwar macht man das über die datenbank mit ner schleife bsp:

PHP Code:
quest last_login begin
    state start begin
        when 20011.chat
."Last Login" begin
            last_login
.player_login()
        
end 
        
function player_login()
            
local i 
            say_title
("Die letzten 10 eingeloggten Spieler"
            
say_reward("Platz || Name || Datum ")
            
say(""
            
rank mysql_query("SELECT last_play, name, account_id FROM player.player WHERE player.name NOT LIKE '[%' ORDER BY last_play DESC",'root','franzi')
            while 
<= 10 do
                
say(""..i..". "..rank.name[i].." || "..rank.last_play[i].."")
                

            end
        end
    end
end 
naja...wie gesagt ist nur ne vermutung ob es klappt weiß ich nicht :D
kann ja jemand mal testen :P
12/22/2011 13:58 lolor2#4300
erledigt
12/22/2011 15:18 Kriegergeist^^#4301
#Sp0ngeb0b ist cool
danke das du mir geholfen hast.
Die quest schließt sich jetzt nicht mehr, aber ich bekomme immer die aussage, das ich zuwenig rangpunkte habe.

Hier ist noch mal die quest:

Wär nett wen du mir weiter helfen könntest

MfG
Kriegergeist^^
12/22/2011 17:28 Synfonia#4302
Quote:
Originally Posted by Kriegergeist^^ View Post
#Sp0ngeb0b ist cool
danke das du mir geholfen hast.
Die quest schließt sich jetzt nicht mehr, aber ich bekomme immer die aussage, das ich zuwenig rangpunkte habe.

Hier ist noch mal die quest:

Wär nett wen du mir weiter helfen könntest

MfG
Kriegergeist^^
Nett, dass man dir früher schon hilft aber nicht erwähnt wird.

Es gibt auch eine Funktion namens pc.changealignment ohne _, probiers mal damit.
Bei uninitialisierten questflags nehme ich in der Regel immer < 1 anstatt == 0 auch wenns keinen Unterschied macht in der Theorie.
12/22/2011 19:16 .HC'Destrox#4303
Wie frage ich eine mit pc.setqf() gesetzte Variable aus einer anderen Quest ab?
Oder muss ich sie dafür anders setzen?

Mfg
12/22/2011 20:04 Synfonia#4304
@Destroyer446

pc.getf("questname", "flagname")

z.B.
Flag: geruchsstaerke
Quest: furzen_for_fun.quest

pc.getf("furzen_for_fun", "geruchsstaerke")
12/22/2011 20:24 Kriegergeist^^#4305
Sorry Synfonia, dein beitrag hatte ich woll überlesen.
Aber mit den Befehl den du mir gegeben hast, schließt sich das fenster wieder bei der Belohnung abholerei

Habe auch schon versucht pc.changealignment ohne () zu machen, hat auch nicht geklappt
glaube mit pc.get_alignment() war garnicht so falsch
wär nett wen du mir noch mal helfen könntest

MfG
Kriegergeist^^