Sie sind nicht angemeldet.

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!