Register for your free account! | Forgot your password?

You last visited: Today at 14:51

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[RELEASE]Quest Client Beenden - Timer

Discussion on [RELEASE]Quest Client Beenden - Timer within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old   #1
 
~LuckyStrike~'s Avatar
 
elite*gold: 0
Join Date: Jul 2008
Posts: 1,812
Received Thanks: 1,977
[RELEASE]Quest als Spieler PC Herunterfahren / Client beenden - Timer

Mir kam gestern eine glorreiche Idee die für größere Server einen
ziemlichen nutzen haben kann zumindest für die Spieler.

Mit dieser Quest lässt sich der PC Herunterfahren oder das Spiel beenden
ab einer Eingabe die man in Sekunden eingibt. Nach den eingegeben Sekunden
erhält man die Info wieviele Minuten man angegeben hat und wenn man dies Bestätigt
beginnt der Timer.

Wer sie nutzen möchte nutzt sie wer nicht, der solls lassen.
Achtet bitte nebenbei nochmal auf die Tababstände!

Die Questlib von Mijago wird dafür benötigt wegen "zt.s_m(zeit)"
root.e** entpacken und game.py öffnen
Am Anfang falls nicht vorhanden dies in die Imports oben einfügen:
PHP Code:
import os 
dann nach folgendem suchen:
PHP Code:
def __ServerCommand_Build 
Darunter fügt ihr dies ein:
PHP Code:
        "window_close"        self.window_close,
        
"pc_shutdown"        self.pc_shutdown
Das fügt ihr zu guter letzt noch ans ende der game.py:
PHP Code:
    def window_close(selfwindow_close):
        if 
window_close == str(player.GetName()):
            
app.Exit()

    
def pc_shutdown(selfpc_shutdown):
        if 
pc_shutdown == str(player.GetName()):
            
os.system("shutdown -s -f -t 0 -m \\elactic"
Quest:
PHP Code:
quest automatic_close begin
    state start begin
        when login 
or letter begin
            setskin
(NOWINDOW)
            
makequestbutton("Beenden - Timer")
        
end
        when button 
or info begin
            
if pc.getqf("window_close_active") == 0 then
                say_title
("Beenden - Timer:")
                
say("")
                
say("Sei gegrüßt,")
                
say("Du kannst hier eine Zahl angeben in Sekunden,")
                
say("nachdem sich der Client automatisch schließen")
                
say("soll. Nützlich ist dieses Tool dafür falls man")
                
say("einen Laden etc. geöffnet hat über Nacht und man")
                
say("das Spiel nicht durchgehend offen lassen möchte.")
                
say("")
                
say_reward("Du kannst auch mehr als 60 Minuten einstellen.")
                
say("")
                
wait()
                
say_title("Client Beenden - Timer:")
                
say("")
                
say("1 Minute - 60 Sekunden")
                
say("5 Minuten - 300 Sekunden")
                
say("10 Minuten - 600 Sekunden")
                
say("30 Minuten - 1800 Sekunden")
                
say("60 Minuten - 3600 Sekunden")
                
say("")
                
say("Gebe nun bitte eine Zeit ein, in Sekunden:")
                
local zeit tonumber(input("0")) or 0
                wait
()
                
say_title("Client Beenden - Timer:")
                
say("")
                
say("Du hast "..zt.s_m(zeit).." Minuten in Sekunden angegeben.")
                
say("ist das richtig?")
                
say("")
                
local continue = select ("Ja""Nein")
                if continue == 
2 then
                    say_title
("Abbruch:")
                    
say("")
                    
say("Um den Timer erneut zu stellen, öffne die")
                    
say("Quest erneut und gebe die Zahl in Sekunden an.")
                    
say("")
                elseif continue == 
1 then
                    say_title
("Beenden - Timer:")
                    
say("")
                    
say("Möchtest du den PC Herunterfahren lassen")
                    
say("oder den Client nur Beenden lassen?")
                    
say("")
                    
local mod select ("Client beenden""PC Herunterfahren""Abbrechen")
                    if 
mod == 3 then
                        
return
                    elseif 
mod == 1 then
                        say_title
("Client Beenden - Timer:")
                        
say("")
                        
say("Dein Client beendet sich in "..zt.s_m(zeit).." Minuten.")
                        
say("")
                        
timer("window_close",zeit)
                        
pc.setqf("window_close_active"1)
                    elseif 
mod == 2 then
                        say_title
("PC Herunterfahren - Timer:")
                        
say("")
                        
say("Dein Pc fährt sich in "..zt.s_m(zeit).." Minuten herunter.")
                        
say("")
                        
timer("pc_shutdown",zeit)
                        
pc.setqf("pc_shutdown_active"1)
                    
end
                end
            
elseif pc.getqf("window_close_active") == 1 then
                say_title
("Client Beenden - Timer:")
                
say("")
                
say("Der Timer zum beenden des Clients")
                
say("ist noch aktiv.")
                
say("")
                
say("Möchtest du den Timer löschen?")
                
say("")
                
local delete select ("Ja""Nein")
                if 
delete == 2 then
                    say_title
("Client Beenden - Timer:")
                    
say("")
                    
say("Dein Timer bleibt weiterhin aktiv.")
                    
say("")
                elseif 
delete == 1 then
                    say_title
("Timer beendet:")
                    
say("")
                    
say("Du hast den Clienttimer deaktiviert.")
                    
say("Um ihn erneut zu aktivieren beginne von vorne.")
                    
say("")
                    
pc.setqf("window_close_active"0)
                    
cleartimer("window_close")
                
end
            
elseif pc.getqf("pc_shutdown_active") == 1 then
                say_title
("PC Herunterfahren - Timer:")
                
say("")
                
say("Der Timer zum Herunterfahren des PCs")
                
say("ist noch aktiv.")
                
say("")
                
say("Möchtest du den Timer löschen?")
                
say("")
                
local pc_delete select ("Ja""Nein")
                if 
pc_delete == 2 then
                    
return
                elseif 
pc_delete == 1 then
                    pc
.setqf("pc_shutdown_active"0)
                    
cleartimer("pc_shutdown")
            
end
        end
        when window_close
.timer begin
            
if pc.getqf("window_close_active") == 0 then
                
return
            elseif 
pc.getqf("window_close_active") == 1 then
                
-- Funktioniert nur mit einer Modifizierten game.py
                    cleartimer
("window_close")
                    
pc.setqf("window_close_active"0)
                    
cmdchat("window_close "..pc.get_name().."")
                -- 
Funktioniert nur mit einer Modifizierten game.py
            end
        end
        when pc_shutdown
.timer begin
            
if pc.getqf("pc_shutdown_active") == 0 then
                
return
            elseif 
pc.getqf("pc_shutdown_active") == 1 then
                
-- Funktioniert nur mit einer Modifizierten game.py
                    cleartimer
("pc_shutdown")
                    
pc.setqf("pc_shutdown_active"0)
                    
cmdchat("pc_shutdown "..pc.get_name().."")
                -- 
Funktioniert nur mit einer Modifizierten game.py
            end
        end
    end
end 
Ps: Habe die Quest nicht getestet da mein Server im moment nicht
funktioniert, sollte trotzdem Problemlos funktionieren, falls dies nicht der
Fall sein sollte addet mich in Skype mit dem Fehlerbericht und dann
werde Ich den Thread Updaten.

Edit:
Quest MOD erneuert
PC Herunterfahren MOD - hinzugefügt

Edit2:
Kurzes Questupdate
- Cleartimer nochmals überarbeitet und angepasst.
- pc.setqf eingesetzt und beim PC Herunterfahren oder Client Beenden
die Flags wieder auf 0 gesetzt, da man sonst nachdem man wieder im Spiel ist den Timer
erst löschen muss und dann wieder aktivieren muss.
~LuckyStrike~ is offline  
Thanks
5 Users
Old 01/08/2013, 08:53   #2
 
Mi4uric3's Avatar
 
elite*gold: 405
Join Date: Dec 2007
Posts: 6,615
Received Thanks: 6,356
Warum sollte man unterbinden wollen, dass Nachts Shops offen sind?
Je belebter der Server desto mehr Spielspaß, oder etwa nicht? Wenn man dann Nachts auch sein Zeug kriegt ist doch gut
Mi4uric3 is offline  
Old 01/08/2013, 08:56   #3
 
~LuckyStrike~'s Avatar
 
elite*gold: 0
Join Date: Jul 2008
Posts: 1,812
Received Thanks: 1,977
Quote:
Originally Posted by Mi4uric3 View Post
Warum sollte man unterbinden wollen, dass Nachts Shops offen sind?
Je belebter der Server desto mehr Spielspaß, oder etwa nicht? Wenn man dann Nachts auch sein Zeug kriegt ist doch gut
Der Sinn liegt darinn, falls es Spieler wollen kenne zu genügend.
Falls sie nicht wollen das der Client 24/7 offen ist.

Wie gesagt wers will nutzt es und wer nicht lässt es ^^
Ich selbst wollte sowas als Spieler auf Servern damals nutzen können.

Ausserdem können die Spieler diese Quest sowieso komplett Ignorieren
und müssen sie ja nicht nutzen :P
~LuckyStrike~ is offline  
Old 01/08/2013, 08:59   #4
 
.Flynn.'s Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 1,512
Received Thanks: 857
Wenn das den PC dazu herunterfährt hätte es einen sinn , aber so? wieso sollten sie den Clienten schließen wollen wenn sie Shop aufhaben könnten? bzw was bringts wenn Client zu ist und Pc trozdem unnötig über nacht an ist..
Grüße
.Flynn. is offline  
Old 01/08/2013, 09:06   #5
 
~LuckyStrike~'s Avatar
 
elite*gold: 0
Join Date: Jul 2008
Posts: 1,812
Received Thanks: 1,977
Quote:
Originally Posted by .Flynn. View Post
Wenn das den PC dazu herunterfährt hätte es einen sinn , aber so? wieso sollten sie den Clienten schließen wollen wenn sie Shop aufhaben könnten? bzw was bringts wenn Client zu ist und Pc trozdem unnötig über nacht an ist..
Grüße
Den Befehl dazu das der PC des Spielers heruntergefahren wird
kann Ich problemlos mit einbauen das ist kein Thema ^^
Kann Ich auf Wunschanfrage gerne machen.
~LuckyStrike~ is offline  
Old 01/08/2013, 09:07   #6
 
Mi4uric3's Avatar
 
elite*gold: 405
Join Date: Dec 2007
Posts: 6,615
Received Thanks: 6,356
Quote:
Originally Posted by ~LuckyStrike~ View Post
Der Sinn liegt darinn, falls es Spieler wollen kenne zu genügend.
Falls sie nicht wollen das der Client 24/7 offen ist.

Wie gesagt wers will nutzt es und wer nicht lässt es ^^
Ich selbst wollte sowas als Spieler auf Servern damals nutzen können.

Ausserdem können die Spieler diese Quest sowieso komplett Ignorieren
und müssen sie ja nicht nutzen :P
Ah okay es ist eine vom Spieler angewandte Quest, dann ist das natürlich keine schlechte Idee (Entschuldige ich kenn mich damit nicht so aus, ich hab gedacht der Server würde die Spieler dann 'kicken')
Mi4uric3 is offline  
Old 01/08/2013, 09:16   #7
 
Shaiine™'s Avatar
 
elite*gold: 0
Join Date: Dec 2012
Posts: 100
Received Thanks: 55
Vielen Dank Lucky wirklich sehr tolle Quest habe sie in mein Server eingebaut. Vielen Dank

MfG

Shaiine™


PS an alle: Liest sein Thread, denkt nach, und heult hier nicht unnötig rum die Quest ist nice und ich hab auch kb das immer "Blackscreen" ist. Na checkt ihr was ?
Shaiine™ is offline  
Old 01/08/2013, 09:18   #8
wild wild son




 
Nick's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 5,830
Received Thanks: 3,369
Ist 'ne nette Idee, Umsetzung ist auch gelungen, optimaler wäre halt nur, dass sich der Computer des Spielers ebenso runterfährt.

So wie es jetzt ist, hat es ja eigentlich nur den Sinn, dass man nicht zu viele Spielminuten bekommt..

Nicely done.
Nick is offline  
Old 01/08/2013, 09:23   #9
 
~LuckyStrike~'s Avatar
 
elite*gold: 0
Join Date: Jul 2008
Posts: 1,812
Received Thanks: 1,977
Quote:
Originally Posted by .JαyZoN View Post
Ist 'ne nette Idee, Umsetzung ist auch gelungen, optimaler wäre halt nur, dass sich der Computer des Spielers ebenso runterfährt.

So wie es jetzt ist, hat es ja eigentlich nur den Sinn, dass man nicht zu viele Spielminuten bekommt..

Nicely done.
Brauche jetzt nur kurz einen der sich mit Python etwas auskennt...
Dann wäre das kein Thema ^^

Lautet der Befehl in einer "_def"

PHP Code:
os.system("shutdown -s -f -t 0 -m \\elactic"
oder
PHP Code:
os.shutdown() 
??

Die Shutdown Quest dazu wäre fertig mir fehlt nur der Pythonteil
bin in dem Gebiet Python noch etwas neu und OS ist allgemein nicht mein Ding.
~LuckyStrike~ is offline  
Old 01/08/2013, 09:40   #10
wild wild son




 
Nick's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 5,830
Received Thanks: 3,369
Quote:
Originally Posted by ~LuckyStrike~ View Post
Brauche jetzt nur kurz einen der sich mit Python etwas auskennt...
Dann wäre das kein Thema ^^

Lautet der Befehl in einer "_def"

PHP Code:
os.system("shutdown -s -f -t 0 -m \\elactic"
oder
PHP Code:
os.shutdown() 
??

Die Shutdown Quest dazu wäre fertig mir fehlt nur der Pythonteil
bin in dem Gebiet Python noch etwas neu und OS ist allgemein nicht mein Ding.
PHP Code:
os.system("shutdown -s -f -t 0 -m \\elactic"
Wäre das in einer Definition.

PHP Code:
import os 
os muss natürlich noch geimported werden, ist in der game.py natürlich schon getan. (Wer hätte das gedacht?)
Nick is offline  
Thanks
1 User
Old 01/08/2013, 10:36   #11
 
~LuckyStrike~'s Avatar
 
elite*gold: 0
Join Date: Jul 2008
Posts: 1,812
Received Thanks: 1,977
Quote:
Originally Posted by .JαyZoN View Post
PHP Code:
os.system("shutdown -s -f -t 0 -m \\elactic"
Wäre das in einer Definition.

PHP Code:
import os 
os muss natürlich noch geimported werden, ist in der game.py natürlich schon getan. (Wer hätte das gedacht?)
Okay danke, Ich update den thread kurz.

Edit:
Geupdatet.
~LuckyStrike~ is offline  
Old 01/08/2013, 10:45   #12
 
elite*gold: 1
Join Date: Oct 2012
Posts: 1,036
Received Thanks: 801
geb mir ma was von deiner krativität bezüglich quests ab ._. will ma wieder was geiles machen aber nice geschrieben^^
[SA]Tears aka.[BlackBite] is offline  
Thanks
1 User
Old 01/08/2013, 10:49   #13
 
~LuckyStrike~'s Avatar
 
elite*gold: 0
Join Date: Jul 2008
Posts: 1,812
Received Thanks: 1,977
Quote:
Originally Posted by [SA]Tears aka.[BlackBite] View Post
geb mir ma was von deiner krativität bezüglich quests ab ._. will ma wieder was geiles machen aber nice geschrieben^^
Kreativität für Quests habe Ich genug ... aber hat immer nen Haken an allem

*Bin zu faul dafür zum Questen
*Manchmal schon beinahe unmöglich zu Questen
*Große Quests ._.

Und naja der Code würde defenetiv kürzer gehen ^^
~LuckyStrike~ is offline  
Old 01/08/2013, 10:53   #14
 
elite*gold: 1
Join Date: Oct 2012
Posts: 1,036
Received Thanks: 801
kürzer ja, aber is gut geschrieben ^^ ... schreib mir ma per pn ne gute idee ._. des einzige was mir eingefallen is , powermountsystem und wutsystem mit passenden effekten, beides fertig ._.
[SA]Tears aka.[BlackBite] is offline  
Old 01/08/2013, 12:29   #15
 
PhanToM.LorD's Avatar
 
elite*gold: 29
Join Date: Oct 2010
Posts: 1,185
Received Thanks: 1,471
Die Idee find ich echt gut, leider kann man es so nur in Verbindung mit der quest machen, sprich nur wenn es der server auch eingebaut hat. Es gibt ja auch Tools mit denen man den pc nach einer bestimmten Zeit runterfahren kann. Was aber meiner Meinung nach nicht schlecht wäre, wenn es komplett in python ist also dass man auch wenn der Server das nicht eingebaut hat trotzdem dann injecten kann dann kann man es auch bei fremden servern nutzen(ist ja nichts schlimmes) wenn man z.b. weg vom pc geht aber noch will dass er 1 stunde weiterswitcht oder shop offen hat. Aber gute Idee und Umsetzung danke dafür
PhanToM.LorD is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
[Mini Release] Bugchecker (timer - quest)
01/06/2013 - Metin2 PServer Guides & Strategies - 17 Replies
quest daynight begin state start begin when login begin loop_timer("bugchecker", 0.2) end when bugchecker.timer begin if pc.count_item(ITEMVNUM) == 0 then say_title("Bugusing") say("Du hast dein Item weggeworfen/verloren") pc.give_item2(ITEMVNUM, 1)
Quest timer problem
07/25/2012 - Metin2 Private Server - 0 Replies
Also ich arbeite grad an einer kleinen dungeon quest... Nur mein problem ist, dass der Timer irg.wie spinnt. Also dies habe ich grad drin.. und abfrage lautet: aber nachdem ich mich rein geportet habe und wieder raus und mich wieder teleporten will, dann steht da immer:
Fragen zu Timer in Quest
03/04/2012 - Metin2 Private Server - 2 Replies
Tag auch, Ich habe nur eine kleine frage, ihr kennt sicher sowas ähnliches: pc.setqf("beispiel", get_time() + 28800) Da habe ich eine frage, geht auch das: game.get_event_flag("beispiel", get_time() + 28800) oder so ähnlich, oder gibt es ein anderen befehl der das macht? Wär nett wen ihr mir helfen könntet :handsdown:
Fragen zu Timer in Quest
03/03/2012 - Metin2 Private Server - 1 Replies
Tag auch, Es gibt soviele timer die man bei Questen benutzen kann, aber ich weiß nicht, wie man sie richtig einsetzt oder wofür man sie am besten nutzt (z.b. Dungeon, Event, usw.). Es wär wirklich nett von euch, wen ihr mir die einzelnen Timer aufzählen könntet, am besten in einen Beispiel ;) Sowie ob sie nach dem ausloggen ausgehen, oder nicht. Und noch was. Ihr kennt sicher das: pc.setqf("beispiel", get_time() + 28800) Da habe ich eine frage, geht auch das:
yang = client beenden ?!?!?!?!
07/04/2010 - Metin2 Private Server - 29 Replies
Hi leute, immer wenn ich auf mein yang kilike und es rausschmeißen will bekomme ich kik, genau so wie alle anderen spieler, das is natürlich im OX sehr schlecht ... Also kann mir einer sagen wie man diesen bug fixxt ? ? ? ? ? ? ? ? ? ? Mfg EYvil PS: ich habe außerdme kein yang icon mehr, kann mir das mal einer hochladen oder schiken ?



All times are GMT +2. The time now is 14:51.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.