Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: sourceserver.info. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

rain

Super Moderator

  • »rain« ist der Autor dieses Themas

Beiträge: 1 410

Wohnort: Lutherstadt Wittenberg

Beruf: Anlagenmechaniker

Rootserver vorhanden: Ja

  • Nachricht senden

1

Samstag, 6. Juni 2009, 12:28

Eventscript 2.0 restart blocks

Hi,


ich weiss nich ob manche mit einem Root Server es auch mitbekommen haben das ES 2.0 ( aktuellste Version ) bei einem Restart des GameServers leichte Startprobleme hat. Erst beim STRG+C lässt er den Server die befehle für den start ausführen. Selbst via Putty lässt ES das beenden des Screens durch STRG+C nicht zu. Liegt das direkt an der pyton sprache?





Chrisber

Administrator

Beiträge: 1 030

Wohnort: localhost

Rootserver vorhanden: Ja

  • Nachricht senden

2

Samstag, 6. Juni 2009, 14:30

Re: Eventscript 2.0 restart blocks

Hi.
Das liegt an der es.py, dafür gibt es aktuell leider noch keine Lösung.

Ein Workaround: Schreibe erst "quit" und drück danach STRG + C, das geht ;)
Eine Lösung habe ich gerade erstellt.

Gehe nach addons/eventscripts/libs/python/ und öffne die gamethread.py mit dem Editor (Notepad).
Als nächstes gehst du zu Zeile 160 und ersetzt den komplett "def tick():"-Block mit diesem Code.
Danach lädst du die Datei auf deinen FTP und startest den Server neu und schon kannst du STRG + C problemlos benutzen ;)

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
def tick():
    try:
        '''
        Internal use recommended.
        '''
        # handle normal q
        while not q.empty():
            function, a, kw = q.get()
            function(*a, **kw)
        # check the first one to speed this up since none are ready unless it is.
        first = timeq.getFirst()
        if first:
            now = time.time()
            if first.gotime <= now:
                _executenode(first)
                # make a copy of the list so that we don't
                tasks = list(timeq.getList())
                for task in tasks:
                    if task.gotime <= now:
                        _executenode(task)
                    else:
                        break
    
        if timeq.empty() and q.empty():
            unregisterTicker()
    except KeyboardInterrupt:
        es.server.cmd("quit")


~ Chris
Und das letzte, was gesagt wird, wenn die Welt untergeht, ist: das ist technisch unmöglich.

rain

Super Moderator

  • »rain« ist der Autor dieses Themas

Beiträge: 1 410

Wohnort: Lutherstadt Wittenberg

Beruf: Anlagenmechaniker

Rootserver vorhanden: Ja

  • Nachricht senden

3

Samstag, 6. Juni 2009, 20:48

Re: Eventscript 2.0 restart blocks

Danke für die feine Sache, funzt Prima!