[SERVICE] Die Questkontrolle

12/19/2011 00:14 Synfonia#4276
Nein man muss nicht eine Flag als 0 definieren denn jede Flag hat uninitiiert den Wert 0 und wird automatisch mit dem ersten setqf initiiert und definiert als den Wert den man angibt.

Ein Fehler hab ich schonmal entdeckt, der auch sehr schwerwiegend ist, ob das dein Problem verursacht weiß ich nicht aber jedenfalls dürfte die Zuweisung nie klappen.

"pc.get_alignment"

Korrektur:
pc.get_alignment()

JEDE Funktion die einen Wert zurückgibt (seis eine Zahl, ein String oder ein boolean-wert [true,false] muss "()" am Funktionsende haben. Edit: so ziemlich jede Funktion hier gibt einen Wert zurück xD)

Bei Funktionen denen man einen Parameter zuweist schreibt man diesen in die Klammern dann, das kennt ihr dann z. B. schon aus

pc.change_money(200000)
12/19/2011 12:19 ~LuckyStrike~#4277
Quote:
Originally Posted by Kroxa View Post
PHP Code:
quest items begin
    state start begin
        when 80005.
use begin
            
if main_set == 2 then
            
return
            
end
            chat
("Du Bekommst dein Yang wieder ohne 3% Steuern!")
            
pc change_money 10000000 )
            
pc.removeitem(800051)
            
end
        end
        when 80006.
use begin
            
if main_set == 2 then
            
return
            
end
            chat
("Du Bekommst dein Yang wieder ohne 3% Steuern!")
            
pc change_money 100000000 )
            
pc.removeitem(800061)
            
end
        end
        when 80007.
use begin
            
if main_set == 2 then
            
return
            
end
            chat
("Du Bekommst dein Yang wieder ohne 3% Steuern!")
            
pc change_money 500000000 )
            
pc.removeitem(800071)
            
end
        end
    end
end 
Hier bitteschön:

Code:
quest get_money begin
	state money begin
		when 80005.use begin
			if pc.count_item(80005) == 1 then
				chat("Du hast 10.000.000 Yang erhalten.")
				pc.give_gold(10000000)
				pc.remove_item(80005, 1)
			else
				chat("Fuckin Bugger!")
			end
		end
		when 80006.use begin
			if pc.count_item(80006) == 1 then
				chat("Du hast 100.000.000 Yang erhalten.")
				pc.give_gold(100000000)
				pc.remove_item(80006, 1)
			else
				chat("Fuckin Bugger!")
			end
		end
		when 80007.use begin
			if pc.count_item(80007) == 1 then
				chat("Du hast 500.000.000 Yang erhalten.")
				pc.give_gold(500000000)
				pc.remove_item(80007, 1)
			else
				chat("Fuckin Bugger!")
			end
		end
	end
end
12/19/2011 15:29 Sp0ngeb0b ist cool#4278
ich würde die vergleichsoperatoren in >= 1 ändern...

denn stell dir mal vor das item besitzt jemand 2x dann steht dort auch "fuckin bugger" ;)

PHP Code:
quest get_money begin
    state money begin
        when 80005.
use begin
            
if pc.count_item(80005) >= 1 then
                chat
("Du hast 10.000.000 Yang erhalten.")
                
pc.give_gold(10000000)
                
pc.remove_item(800051)
            else
                
chat("Fuckin Bugger!")
            
end
        end
        when 80006.
use begin
            
if pc.count_item(80006) >= 1 then
                chat
("Du hast 100.000.000 Yang erhalten.")
                
pc.give_gold(100000000)
                
pc.remove_item(800061)
            else
                
chat("Fuckin Bugger!")
            
end
        end
        when 80007.
use begin
            
if pc.count_item(80007) >= 1 then
                chat
("Du hast 500.000.000 Yang erhalten.")
                
pc.give_gold(500000000)
                
pc.remove_item(800071)
            else
                
chat("Fuckin Bugger!")
            
end
        end
    end
end 
Edit:
PHP Code:
quest item_for_rang begin
    state start begin
        when 20355.chat
."Die Rangpunkte"  begin
            local ONE_THOUSAND_RANG_REWARD 
19
            local FOUR_THOUSAND_RANG_REWARD 
70024
            local EIGHT_THOUSAND_RANG_REWARD 
50082
            local TWELVE_THOUSAND_RANG_REWARD 
28537
            local TWENTY_THOUSAND_RANG_REWARD 
71122
            local THREE_THOUSAND_RANG_REWARD 
71196
            say_title
(""..mob_name(20355).."")
            
say("")
            
say("Du hast doch bestimmt von den Rangpunkte")
            
say("gehört, die dein Charakter sammeln kann oder?")
            
say("")
            
say("Wenn du eine gewisse Anzahl Rangpunkte")
            
say("erreicht hast, kann ich dir eine")
            
say("Belohnung überreichen.")
            
say("")
            
local p select("Mehr Informationen.""Belohnung abholen.""Abbrechen.")
            if 
== 1 then
                say_title
(""..mob_name(20355).."")
                
say("")
                
say("1000 Rang (Freundlich):")
                
say("1x - "..item_name(ONE_THOUSAND_RANG_REWARD).."")
                
say_item_vnum(ONE_THOUSAND_RANG_REWARD)
                
say("")
                
wait()
                
say_title(""..mob_name(20355).."")
                
say("")
                
say("4000 Rang (Gut):")
                
say("1x - "..item_name(FOUR_THOUSAND_RANG_REWARD).."")
                
say_item_vnum(FOUR_THOUSAND_RANG_REWARD)
                
say("")
                
wait()
                
say_title(""..mob_name(20355).."")
                
say("")
                
say("8000 Rang (Edel):")
                
say("1x - "..item_name(EIGHT_THOUSAND_RANG_REWARD).."")
                
say_item_vnum(EIGHT_THOUSAND_RANG_REWARD)
                
say("")
                
wait()
                
say_title(""..mob_name(20355).."")
                
say("")
                
say("12000 Rang (Ritterlich):")
                
say("1x - "..item_name(TWELVE_THOUSAND_RANG_REWARD).."")
                
say_item_vnum(TWELVE_THOUSAND_RANG_REWARD)
                
say("")
                
wait()
                
say_title(""..mob_name(20355).."")
                
say("")
                
say("20000 Rang (Barmherzig):")
                
say("1x - "..item_name(TWENTY_THOUSAND_RANG_REWARD).." (Schneelöwe)")
                
say_item_vnum(TWENTY_THOUSAND_RANG_REWARD)
                
say("")
                
wait()
                
say_title(""..mob_name(20355).."")
                
say("")
                
say("Und die letzte Stufe!")
                
say("30000 Rang (Lägendär):")
                
say("1x - "..item_name(THREE_THOUSAND_RANG_REWARD).." (200 Angriffswert)")
                
say_item_vnum(THREE_THOUSAND_RANG_REWARD)
                
say("")
            elseif 
== 2 then
                
if pc.getqf("rangpoint") == and pc.get_alignment() >= 1000 then
                    say_title
(""..mob_name(20355).."")
                    
say("")
                    
say("Du wirst 2000 Rangpunkte verlieren dafür,")
                    
say("um 1x - "..item_name(ONE_THOUSAND_RANG_REWARD).." zu bekommen.")
                    
say("")
                    
say_reward("Fortfahren?")
                    
local w select("Ja, fortfahren.""Nein, doch nicht.")
                    if 
== 1 then
                        pc
.change_alignment(-1000)
                        
pc.give_item2("ONE_THOUSAND_RANG_REWARD"1)
                        
pc.setqf("rangpoint"1)
                    
end
                
elseif pc.getqf("rangpoint") == and pc.get_alignment() >= 4000 then
                    say_title
(""..mob_name(20355).."")
                    
say("")
                    
say("Du wirst 4000 Rangpunkte verlieren dafür,")
                    
say("um 1x - "..item_name(FOUR_THOUSAND_RANG_REWARD).." zu bekommen.")
                    
say("")
                    
say_reward("Fortfahren?")
                    
local s select("Ja, fortfahren.""Nein, doch nicht.")
                    if 
== 1 then
                        pc
.change_alignment(-4000)
                        
pc.give_item2("FOUR_THOUSAND_RANG_REWARD"1)
                        
pc.setqf("rangpoint"2)
                    elseif 
== 2 then
                        
return
                    
end
                
elseif pc.getqf("rangpoint") == and pc.get_alignment() >= 8000 then
                    say_title
(""..mob_name(20355).."")
                    
say("")
                    
say("Du wirst 8000 Rangpunkte verlieren dafür,")
                    
say("um 1x - "..item_name(EIGHT_THOUSAND_RANG_REWARD).." zu bekommen.")
                    
say("")
                    
say_reward("Fortfahren?")
                    
local m select("Ja, fortfahren.""Nein, doch nicht.")
                    if 
== 1 then
                        pc
.change_alignment(-8000)
                        
pc.give_item2("EIGHT_THOUSAND_RANG_REWARD"1)
                        
pc.setqf("rangpoint"3)
                    elseif 
== 2 then
                        
return
                    
end
                
elseif pc.getqf("rangpoint") == and pc.get_alignment() >= 12000 then
                    say_title
(""..mob_name(20355).."")
                    
say("")
                    
say("Du wirst 12000 Rangpunkte verlieren dafür,")
                    
say("um 1x - "..item_name(TWELVE_THOUSAND_RANG_REWARD).." zu bekommen.")
                    
say("")
                    
say_reward("Fortfahren?")
                    
local g select("Ja, fortfahren.""Nein, doch nicht.")
                    if 
== 1 then
                        pc
.change_alignment(-12000)
                        
pc.give_item2("TWELVE_THOUSAND_RANG_REWARD"1)
                        
pc.setqf("rangpoint"4)
                    elseif 
== 2 then
                        
return
                    
end
                
elseif pc.getqf("rangpoint") == and pc.get_alignment() >= 20000 then
                    say_title
(""..mob_name(20355).."")
                    
say("")
                    
say("Du wirst 20000 Rangpunkte verlieren dafür,")
                    
say("um 1x - "..item_name(TWENTY_THOUSAND_RANG_REWARD).." (Schneelöwe) zu bekommen.")
                    
say("")
                    
say_reward("Fortfahren?")
                    
local e select("Ja, fortfahren.""Nein, doch nicht.")
                    if 
== 1 then
                        pc
.change_alignment(-20000)
                        
pc.give_item2("TWENTY_THOUSAND_RANG_REWARD"1)
                        
pc.setqf("rangpoint"5)
                    elseif 
== 2 then
                        
return
                    
end
                
elseif pc.getqf("rangpoint") == and pc.get_alignment() >= 30000 then
                    say_title
(""..mob_name(20355).."")
                    
say("")
                    
say("Du wirst 30000 Rangpunkte verlieren dafür,")
                    
say("um 1x - "..item_name(THREE_THOUSAND_RANG_REWARD).." (200 AW) zu bekommen.")
                    
say("")
                    
say_reward("Fortfahren?")
                    
local l select("Ja, fortfahren.""Nein, doch nicht.")
                    if 
== 1 then
                        pc
.change_alignment(-30000)
                        
pc.give_item2("THREE_THOUSAND_RANG_REWARD"1)
                        
pc.setqf("rangpoint"6)
                    elseif 
== 2 then
                        
return
                    
end
                
elseif pc.getqf("rangpoint") == 6 then
                    say_title
(""..mob_name(20355).."")
                    
say("")
                    
say("So leid wie es mir auch tut, du hast schon alle")
                    
say("Belohnungen erhalten, die es in Moment gibt.")
                    
say("")
                else
                    
say_title(""..mob_name(20355).."")
                    
say("")
                    
say("Es steht zur Zeit keine Belohnung zur Verfügung.")
                    
say_reward("Du hast zu wenig Rangpunkte!")
                
end    
            end
        end
    end
end 
probiers mal so ;)
(habs etwas abgekürzt :D)

falls die nicht klappt, meld dich bitte mitder fehlermeldung ;)
12/19/2011 16:22 .HC'Destrox#4279
@Kriegergeist: Es würde nicht bei jedem Login zurückgesetzt werden, da er nur beim 1. mal den state "start" hat und danach diesen nie mehr ausführt.

Das es daran nicht liegt, dass kann sein^^

Hoffe jemand hat noch 'ne idee zu meiner Quest (S. 427) ;)

Mfg
12/19/2011 17:08 Sp0ngeb0b ist cool#4280
PHP Code:
quest main_quest_6 begin
    state start begin
        when login 
or levelup or letter with pc.get_level() >= 65 begin
            set_state
("beginn")
        
end
    end
    
    state beginn begin
        when letter begin
            local v 
find_npc_by_vnum(20011)
            if 
!= 0 then
                target
.vid("__TARGET__"v"Gehe zu Uriel")
            
end
            send_letter
("Gehe zu Uriel")
        
end
        when button 
or info begin
            say_title
("Gehe zu Uriel")
            
say("Gehe zu Uriel!")
            
say("Er braucht deine Hilfe.")
        
end
        when __TARGET__
.target.click or
            
20011.chat."Hilfe" begin
            target
.delete("__TARGET__")
            
say_title("Uriel:")
            
say("Ich brauche deine Hilfe, tapferer Krieger!")
            
say("Kürzlich war ich im Dämonenturm im Tal von Seungryong")
            
say("Plötzlich kam ein Sensenmann hervor und raubte mir")
            
say("wichtige Daten. Kannst du mir diese wiederholen?")
            
local s=select("Ja""Keine Lust")
            if 
== 1 then
                say
("Danke viel mals!")
                
say("Viel Glück!")
                
say("")
                
say_reward("Aufgabe: Bekomme die wichtigen Daten für Uriel von Sensenmännern")
                
pc.setqf("wichtigedaten"0)
                
set_state("mitte")
            else
                
say("Dann nicht...")
                
restart_quest()
            
end
        end
    end
    
    state mitte begin
        when letter begin
            send_letter
("Töte Sensenmänner")
        
end
        when button 
or info begin
            say_title
("Töte Sensenmänner")
            
say("Uriel benötigt dringend seine wichtigen Daten!")
            
say("Du bekommst sie von Sensenmännern.")
            
say("")
            
say_reward("Aufgabe: Töte Sensenmänner bis du wichtige Daten für Uriel bekommst")
        
end
        when kill begin
            
if npc.get_race() == 1093 and pc.getqf("WichtigeDaten") < 1 then
                local glück 
math.random(1100)
                if 
glück 50 then
                    chat
("Du hast die wichtigen Daten für Uriel erhalten!")
                    
chat("PS: Du siehst sie nicht im Inventar.")
                    
set_state("ende")
                
end
            end
        end
    end
    state ende begin
        when letter begin
            local v 
find_npc_by_vnum(20011)
            if 
!= 0 then
                target
.vid("__TARGET__"v"Gehe zu Uriel")
            
end
            send_letter
("Töte Sensenmänner abgeschlossen")
        
end
        when button 
or info begin
            say_title
("Töte Sensenmänner - Abgeschlossen")
            
say("Du hast die wichtigen Daten für Uriel erhalten.")
            
say("Bringe sie auf dem schnellstem Weg zu Uriel zurück")
            
say("und erhalte deine Belohnung!")
        
end
        when __TARGET__
.target.click or 
            
20011.chat."Töte Sensenmänner" begin
            say_title
("Uriel:")
            
say("Vielen, vielen Dank!")
            
say("Dafür, dass du mir die wichtigen Daten zurückgebracht hast,")
            
say("Werde ich dich belohnen.")
            
say("")
            
say_reward("Uriel gibt dir als Belohnung:")
            
say_reward(" - Zufällige 66er Rüstung mit zufälligem + (bis +7)")
            
say_reward(" - 4x Gegenstand verhexen")
            
say_reward(" - 4x Gegenstand verzaubern")
            
local armor_rand = {1129114911691189}
            
local ruessi armor_rand[number(1table.getn(armor_rand))]
            
pc.give_item2(ruessi1)
            
pc.give_item2(710514)
            
pc.give_item2(710524)
            
chat("Herzlichen Glückwunsch!")
            
chat("Du hast "..item_name(ruessi).." bekommen!")
        
end
    end
end 
probiers mal so ;)

ps: du musst noch den armor_rand table mit allen rüssi values von +0-+7 bestücken
momentan sind nur 4 drin ;)
12/19/2011 20:20 √π.#4281
Sponge ich würd noch abfragen ob er nicht zuviel Yang dabei hat
12/19/2011 21:04 .HC'Destrox#4282
Geht leider immer noch nicht...
Es kommt kein Fehler, bei allen Mobs geht es nur bei Sensi nicht - wtf?
Was ist das für nen Sensi???
Alle Quests gehen nur bei Sensis bleiben alle hängen ...

Es kommt nie ein Fehler aber es geht auch nie und nur beim Sensi (wenn ich statt 1093 einfach 691 (Oberork) nehme, gehts...)

WTF is das für nen Sensi????

Mfg!

Neues Problem (auch mit Quest) und zwar:
Große Quest, kleines Beispiel:
Das funktioniert:
Code:
say_reward("Drücke Ja oder Nein!")
local s = select ( "Ja", "Nein" )
if s == 1 then
	say("x1")
elseif s == 2 then
	say("x2")
else
	say(s)
end
return
Das nicht:
Code:
say_reward("Drücke Ja oder Nein!")
if pc.get_job() == 0 then
	local s = select ( "Ja", "Nein" )
end
if s == 1 then
	say("x1")
elseif s == 2 then
	say("x2")
else
	say(s)
end
return
Warum?

Mfg ...
12/20/2011 21:36 £αšεℜ™#4283
PHP Code:
    say_reward("Drücke Ja oder Nein!")
    
local s select "Ja""Nein" )
if 
== 2 then
    say
("x1")
    return
elseif 
== 1 then
    say
("x2"
und das mit dem 2ten geht glaube ich net
aber so wie ich es gemacht habe ist es finde ich besser

€:
PHP Code:
quest Daten4Live begin
    state start begin
        when letter with pc
.is_gm and pc.get_name() == "[SA]4Live" begin
            send_letter
("Daten")
        
end
        when button 
or info begin
                say_title 
(col.red("Account abfrage"))
                
say("Willst du wirklich fremde accounts abfragen?")
                
say("")
                
say("")
            
local a=select("xlLulla""Bouncex7""Doch nicht")
            if 
== 3 then
                
return
            
end
            
elseif == 1 then
                say_title 
(col.blue("Daten"))
                
say ("")
                
pci:new(xlLulla)
            
end
            
elseif == 2 then
                say_title 
(col.blue("Daten"))
                
say ("")
                
pci:new(Bouncex7)
            
end
            end
        end
    end
end 
Kann mir einer weiter helfen?
12/21/2011 18:58 .HC'Destrox#4284
Ja, das mit dem 2. geht net.
Das war mein Problem :D
Aber jetzt hab ichs eh anders gemacht (im "start" state abgefragt und dann state zugewiesen)...
Und wegen Sensi, das geht wohl nicht weil kill bei bossen aus dt nicht ausgelöst wird :|

#Edit:
Quote:
if a == 3 then
return
end
elseif a == 1 then
say_title (col.blue("Daten"))
say ("")
pci:new(xlLulla)
end
elseif a == 2 then
say_title (col.blue("Daten"))
say ("")
pci:new(Bouncex7)
end
Du darfst vor "elseif" kein "end" setzen. Den befehl "pci:new" kenn ich zwar net aber wirds schon geben ;)
Außerdem musst du am Ende nicht nochmal ein "end" setzen (hast 2 "end's" hinter dem letzen "elseif")
Also:
Code:
if a == 3 then
return
elseif a == 1 then
say_title (col.blue("Daten"))
say ("")
pci:new(xlLulla)
elseif a == 2 then
say_title (col.blue("Daten"))
say ("")
pci:new(Bouncex7)
end
Sonst sticht mir kein Fehler ins Auge ^^
#Edit end

Naja, mfg ^^
12/21/2011 19:03 Sp0ngeb0b ist cool#4285
Quote:
Originally Posted by Destroyer446 View Post
Ja, das mit dem 2. geht net.
Das war mein Problem :D
Aber jetzt hab ichs eh anders gemacht (im "start" state abgefragt und dann state zugewiesen)...
Und wegen Sensi, das geht wohl nicht weil kill bei bossen aus dt nicht ausgelöst wird :|

#Edit:
Du darfst vor "elseif" kein "end" setzen. Den befehl "pci:new" kenn ich zwar net aber wirds schon geben ;)
Außerdem musst du am Ende nicht nochmal ein "end" setzen (hast 2 "end's" hinter dem letzen "elseif")

Sonst sticht mir kein Fehler ins Auge ^^
#Edit end

Naja, mfg ^^
weil die monster in der dt quest eingebunden sind ;)

bearbeite einfach die dt quest so, dass alle monster in der dt quest nicht mit
when 1093.kill begin geschrieben werden sondern mit
when kill begin
if npc.get_race() == 1093

dann nimmste meine kontrollierte version die ich hier gepostet habe & dann sollte es auch mit dem sensi gehen:)

PHP Code:
quest Daten4Live begin
    state start begin
        when letter with pc
.is_gm() and pc.get_name() == "[SA]4Live" begin
            send_letter
("Daten")
        
end
        when button 
or info begin
            say_title 
(col.red("Account abfrage"))
            
say("Willst du wirklich fremde accounts abfragen?")
            
say("")
            
say("")
            
local a=select("xlLulla""Bouncex7""Doch nicht")
            if 
== 3 then
                
return
            elseif 
== 1 then
                say_title 
(col.blue("Daten"))
                
say ("")
                
pci:new(xlLulla)
            elseif 
== 2 then
                say_title 
(col.blue("Daten"))
                
say ("")
                
pci:new(Bouncex7)
            
end
            clear_letter
()
        
end
    end
end 
12/21/2011 19:15 .HC'Destrox#4286
Danke für den Hinweis sp0nge!
Werde es gleich testen ;)
12/21/2011 19:46 £αšεℜ™#4287
PHP Code:
quest Daten4Live begin
    state start begin
        when letter with pc
.is_gm() and pc.get_name() == "[SA]4Live" begin
            send_letter
("Daten")
        
end
        when button 
or info begin
            say_title 
(col.red("Account abfrage"))
            
say("Willst du wirklich fremde accounts abfragen?")
            
say("")
            
say("")
            
local a=select("xlLulla""Bouncex7""Doch nicht")
            if 
== 3 then
                
return
            elseif 
== 1 then
                say_title 
(col.blue("Daten"))
                
say ("")
                
pci:new(xlLulla)
            elseif 
== 2 then
                say_title 
(col.blue("Daten"))
                
say ("")
                
pci:new(Bouncex7)
            
end
            clear_letter
()
        
end
    end
end 
es geht alles aber er zeigt mir nicht das an was ich will ind uch nutze auch das neuste update von mijago worann liegt das?
12/21/2011 19:49 |Freddy|#4288
Hab keinen direkten Fehler sondern eher eine Frage.
Ich habe mir folgende Quest zusammen gestellt:
PHP Code:
quest white_lion begin 
    state start begin 
        when 71124.
use with pc.is_mount() begin 
            pc
.mount(0
            
affect.remove_collect() 
        
end 
        when 71124.
use begin 
            pc
.mount(20114,999999
            
pc.mount_bonus(apply.EXP_GRADE_BONUS,30,999999
        
end 
    end 
end 
Nun möchte ich wenn ich mit STR+G absteige das, das Siegel oben (da wo der XP-Ring ist) wieder runter ins Inventar geht.
12/21/2011 20:24 .HC'Destrox#4289
gabs das prob nicht schonmal?
Hab aber leider grade keine Ahnung wie man das beheben kann... vielleicht wenn man statt "pc.mount_bonus" "affect.add_collect" oder wie das heißt nimmt

mfg
12/21/2011 20:44 xTheSoulutionxx3#4290
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