Pythonscript bricht ab!?

06/02/2014 14:17 AriaSwitkona#1
Hey hab mal wieder ein Problem mit Python, genauer der OnUpdate. Und zwar stellt folgendes Script nach ner gewissen Zeit die Arbeit ein. Ich habe versucht was einzubauen, das den client killt und ihn dann neugestartet, was auch das gewünschte ergebnis erzielt(das script arbeitet wieder) aber nicht die endlösung sein kann weil ich eben Metin immer neu aufrufen muss. Entfert man den teil, stellt es nach etwas mehr als einer Stunde die arbeit ein. Hat jemand ne Idee woran das liegen könnte und wie ich das beheben oder umgehen kann?
Code:
import ui
import game
import chat
import time
import player
import net
import event
import shop
import chr
import time
import thread
import constInfo
import background

timeskip = 0
time_old = int(time.strftime("%H%M%S"))
time_verz = 10
time_verz2 = 3400
time_old2 = int(time.strftime("%H%M%S"))+time_verz2

class switchhelper(ui.ScriptWindow):

    def __init__(self):
	ui.ScriptWindow.__init__(self)
	self.OldRecv = game.GameWindow.OpenQuestWindow
	chat.AppendChat(1, "Switchhelper")

    def __del__(self):
	ui.ScriptWindow.__del__(self)

    def Destroy(self):
	self.Hide()
	return TRUE

    def InstallQuestWindowHook(self):
	game.GameWindow.OpenQuestWindow = self.HookedQuestWindow
	chat.AppendChat(1, "Quest Window wurde erfolgreich gehooked.")		

    def UnHookQuestWindow(self):
	game.GameWindow.OpenQuestWindow = self.OldRecv
	chat.AppendChat(1, "Quest Window Hook wurde entfernt.")

    def HookedQuestWindow(self, skin, idx):
	pass

    def rebuy(self):
	if player.GetItemCountByVnum(71084) <= 400:
	    net.SendShopBuyPacket(6)

    def yangspeicher(self):
	if player.GetMoney() <= 6000000:
	    self.quest()
	else:
	    self.shopopen()
	    self.rebuy()

    def quest(self):
	global timeskip
	if timeskip == 2:
	    event.SelectAnswer(1, 0)
	    self.UnHookQuestWindow()
	    timeskip = 0
	if timeskip == 1:
	    for Slot in xrange(player.INVENTORY_PAGE_SIZE * 2):
		ItemValue = player.GetItemIndex(Slot)
		if ItemValue == 91805:
		    net.SendItemUsePacket(Slot)
		    timeskip = 2
	if timeskip == 0:
	    self.OldRecv = game.GameWindow.OpenQuestWindow
	    self.InstallQuestWindowHook()
	    timeskip = 1

    def shopopen(self):
	if shop.IsOpen() == 0:
	    self.open()

    def open(self):
	for vid in range(100000):
    	    if chr.IsNPC(vid) == 1 and chr.GetNameByVID(vid) == "Schatztruhe" and player.GetCharacterDistance(vid) <= 600:
	        net.SendOnClickPacket(vid)

    def OnUpdate(self):
	global time_verz
	global time_old
	global time_verz2
	global time_old2
	if time_old2 <= int(time.strftime("%H%M%S")):
	    if net.IsConnect() == 1:
		app.Abort()
	    time_old2 = int(time.strftime("%H%M%S"))+time_verz2

	if time_old <= int(time.strftime("%H%M%S")):
	    self.yangspeicher()
	    time_old = int(time.strftime("%H%M%S"))+time_verz

start = switchhelper()
start.Show()
Schonmal vielen dank mfg Arya

niemand ne Idee?

niemand ne Idee?