You last visited: Today at 12:21
Advertisement
Python, Emotion Error & socket_pct
Discussion on Python, Emotion Error & socket_pct within the Metin2 Private Server forum part of the Metin2 category.
11/19/2014, 00:45
#1
elite*gold: 56
Join Date: Sep 2011
Posts: 777
Received Thanks: 365
Python, Emotion Error & socket_pct
Hallo, ich brauche ein bissl Hilfe:
1. In meiner Syerr kommt der Fehler "ELTimer_GetMSec() - m_dwEmoticonTime" seid ich neue Smileys eingefügt habe, habe auch schon die alten wider rein gemacht, aber trd kommt der fehler wenn man einen benutzt.
2. Möchte in von einer .py eine Funktion von der game.py aufrufen per Button.
Mit den Button:
Quote:
self.PickOff = ui.Button()
self.PickOff.SetParent(self.Board)
self.PickOff.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub")
self.PickOff.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub")
self.PickOff.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub")
self.PickOff.SetText("Switchbot")
self.PickOff.SetPosition(100, 34)
#self.PickOff.SetEvent(#)
self.PickOff.Show()
Die Funktion in der game.py aufrufen:
Quote:
def __showkillgui(self):
if constInfo.killgui == 0:
constInfo.killgui = 1
self.KillGuiBg.Show()
self.KillBlauReich.Show()
self.KillGelbReich.Show()
self.KillRotReich.Show()
self.KillMob.Show()
elif constInfo.killgui == 1:
constInfo.killgui = 0
self.KillGuiBg.Hide()
self.KillBlauReich.Hide()
self.KillGelbReich.Hide()
self.KillRotReich.Hide()
self.KillMob.Hide()
3. Wie bekomme ich die socket_pct ID raus ?
Quote:
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+1, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/sword_7.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+2, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/sword_8.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+3, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/clean.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+4, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/weiss.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+5, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/orange.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+6, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/rot.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+7, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/blau.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+8, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/schwarz.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+11, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/sword_7_b.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+12, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/sword_8_b.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+13, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/clean_b.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+14, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/weiss_b.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+15, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/orange_b.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+16, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/rot_b.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+17, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/blau_b.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+18, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/schwarz_b.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+21, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/sword_7_f.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+22, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/sword_8_f.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+23, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/clean_f.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+24, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/weiss_f.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+25, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/orange_f.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+26, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/rot_f.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+27, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/blau_f.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+28, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/schwarz_f.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+31, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/sword_7_s.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+32, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/sword_8_s.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+33, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/clean_s.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+34, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/weiss_s.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+35, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/orange_s.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+36, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/rot_s.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+37, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/blau_s.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+38, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/schwarz_s.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+41, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/sword_7_s.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+42, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/sword_8_s.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+43, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/clean_s.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+44, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/weiss_s.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+45, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/orange_s.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+46, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/rot_s.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+47, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/blau_s.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+48, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/schwarz_s.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+16, "Bip01", "D:/ymir work/pc/common/effect/armor/armor_7.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+17, "Bip01", "D:/ymir work/pc/common/effect/armor/armor_8.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+18, "Bip01", "D:/ymir work/pc/common/effect/armor/clean.mse")=
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+19, "Bip01", "D:/ymir work/pc/common/effect/armor/weiss.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+20, "Bip01", "D:/ymir work/pc/common/effect/armor/orange.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+21, "Bip01", "D:/ymir work/pc/common/effect/armor/rot.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+22, "Bip01", "D:/ymir work/pc/common/effect/armor/blau.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+23, "Bip01", "D:/ymir work/pc/common/effect/armor/schwarz.mse")
11/19/2014, 09:16
#2
elite*gold: 0
Join Date: Feb 2009
Posts: 68
Received Thanks: 4
zu 2. mach die doppel __ Weg von der __showkillgui Funktion, damit sie nur so heißt:
Code:
def showkillgui(self):
Weil durch das Underscore sagt man eigentlich, dass die Funktion nur in der eigenen Datei bzw. eigentlich in der eigenen Klasse aufgerufen werden soll.
Naja und dann musst du nun in deiner anderen .py Datei die game-Datei importieren, das geht mit
und dann kannst du mit
Code:
game.GameWindow().showkillgui()
auf die Funktion zugreifen.
Jetzt kann du halt dann deinem Button noch ein Event setzten, dass wenn man auf ihn klickt die Funktion eben aufgerufen wird. Das sollte so gehen:
Code:
self.PickOff.SetEvent(game.GameWindow().showkillgui())
Ich hoffe das klappt so.
11/19/2014, 12:30
#3
elite*gold: 0
Join Date: Jan 2014
Posts: 268
Received Thanks: 373
Nein, du musst dafür im Gamewindow (game.py) den Handle der Klasse Gamewindow ("self") an die Klasse übergeben, wo der "PickOff"-Button drinnen steht. Dafür erstellst du in der Klasse des "PickOff"-Buttons in der Funktion "def __init__(self[, *]):" eine Variable namens "self.gameHandle = None", erstellst dann in derselben Klasse eine Funktion um den Handle zu übergeben:
Code:
def SetGameHandle(self, handle):
self.gameHandle = handle
Und jetzt kannst du im Button z.B. die Funktion "showkillgui" in der Klasse "Gamewindow" aufrufen, indem du machst:
Code:
self.pickOff.SAFE_SetEvent(self.gameHandle.showkillgui)
Achso, du musst natürlich noch die Funktion "SetGameHandle" nach dem Erstellen der Klasse aufrufen... z.B. so:
Code:
self.myTestWindow = uiDateiname.Klassenname()
self.myTestWindow.SetGameHandle(self)
Dabei muss die Erstellung der Klasse in der "game.py" stattfinden.
PS: Entferne die "__" vor dem Funktionsnamen! Sonst wird das nicht funktionieren.. (die Funktion gilt so als "Privat", also dass nur in der "game.py" selbst die Funktion aufgerufen werden darf.)
Kind Regards
11/19/2014, 12:48
#4
elite*gold: 56
Join Date: Sep 2011
Posts: 777
Received Thanks: 365
Erstmal danke für die Hilfe, aber da kommt ein Error raus.
Quote:
1119 12:44:19464 :: Traceback (most recent call last):
1119 12:44:19465 :: File "networkModule.py", line 233, in SetGamePhase
1119 12:44:19465 :: File "game.py", line 126, in __init__
1119 12:44:19465 :: File "game.py", line 1675, in __ServerCommand_Build
1119 12:44:19465 :: AttributeError
1119 12:44:19465 :: :
1119 12:44:19465 :: 'GameWindow' object has no attribute '_GameWindow__showkillgui'
1119 12:44:19465 ::
#Lefloyd
Ich poste einfach mal das Menu.
Quote:
import os
import app
import dbg
import grp
import item
import background
import chr
import chrmgr
import player
import snd
import chat
import textTail
import snd
import net
import effect
import wndMgr
import fly
import systemSetting
import quest
import guild
import skill
import messenger
import locale
import time
import constInfo
import exchange
import ime
import ui
import uiCommon
import uiPhaseCurtain
import uiMapNameShower
import uiAffectShower
import uiPlayerGauge
import uiCharacter
import uiTarget
import uiPrivateShopBuilder
import mouseModule
import consoleModule
import locale
import playerSettingModule
import interfaceModule
import musicInfo
import debugInfo
import stringCommander
import game
class l2menu(ui.ScriptWindow):
def __init__(self):
ui.ScriptWindow.__init__(self)
self.LoadMainForm()
self.FaceButton()
self.gameHandle = None
def __del__(self):
ui.ScriptWindow.__del__(self)
def SetGameHandle(self, handle):
self.gameHandle = handle
def LoadMainForm(self):
global OnOff
self.Board = ui.BoardWithTitleBar()
self.Board.SetSize(200, 70)
self.Board.SetPosition(wndMgr.GetScreenWidth()-500, wndMgr.GetScreenHeight()-400)
self.Board.AddFlag("movable")
self.Board.AddFlag("float")
self.Board.SetTitleName("##### - Menu")
self.Board.SetCloseEvent(self.Board.Hide)
self.Board.Show()
self.PickOn = ui.Button()
self.PickOn.SetParent(self.Board)
self.PickOn.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub")
self.PickOn.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub")
self.PickOn.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub")
self.PickOn.SetText("PvP - Interface")
self.PickOn.SetPosition(10, 34)
#self.PickOn.SetEvent(game.GameWindow().showkillgu i())
self.pickOff.SAFE_SetEvent(self.gameHandle.showkil lgui)
self.PickOn.Show()
self.PickOff = ui.Button()
self.PickOff.SetParent(self.Board)
self.PickOff.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub")
self.PickOff.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub")
self.PickOff.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub")
self.PickOff.SetText("Switchbot")
self.PickOff.SetPosition(100, 34)
#self.PickOff.SetEvent(#)
self.PickOff.Show()
def FaceButton(self):
global PickButton
PickButton = ui.Button()
PickButton.SetText("")
PickButton.SetPosition(wndMgr.GetScreenWidth()-100,wndMgr.GetScreenHeight()-675)
PickButton.SetSize(88, 21)
PickButton.SetEvent(self.Board.Show)
PickButton.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub")
PickButton.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub")
PickButton.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub")
PickButton.Show()
global PickText
PickText = ui.TextLine()
PickText.SetParent(PickButton)
PickText.SetVerticalAlignCenter()
PickText.SetHorizontalAlignCenter()
PickText.SetPosition(43,9)
PickText.SetText("##### - Menu")
PickText.Show()
self.myTestWindow = mmenu.l2menu()
self.myTestWindow.SetGameHandle(self)
class WaitingDialog(ui.ScriptWindow):
def __init__(self):
ui.ScriptWindow.__init__(self)
self.eventTimeOver = lambda *arg: None
self.eventExit = lambda *arg: None
def __del__(self):
ui.ScriptWindow.__del__(self)
def Open(self, waitTime):
curTime = time.clock()
self.endTime = curTime + waitTime
self.Show()
def Close(self):
self.Hide()
def Destroy(self):
self.Hide()
def SAFE_SetTimeOverEvent(self, event):
self.eventTimeOver = ui.__mem_func__(event)
def SAFE_SetExitEvent(self, event):
self.eventExit = ui.__mem_func__(event)
def OnUpdate(self):
lastTime = max(0, self.endTime - time.clock())
if 0 == lastTime:
self.Close()
self.eventTimeOver()
else:
return
StartDialog = l2menu()
StartDialog.Board.Show()
11/19/2014, 12:57
#5
elite*gold: 0
Join Date: Jan 2014
Posts: 268
Received Thanks: 373
Das ist der Fehler den ich bereits genannt hatte und ebenso den Fix dazu genannt hatte. Ich zitiere:
Quote:
PS: Entferne die "__" vor dem Funktionsnamen! Sonst wird das nicht funktionieren.. (die Funktion gilt so als "Privat", also dass nur in der "game.py" selbst die Funktion aufgerufen werden darf.)
Und das
Quote:
sieht nicht so aus, als wären sie entfernt worden
Kind Regards
11/19/2014, 13:11
#6
elite*gold: 56
Join Date: Sep 2011
Posts: 777
Received Thanks: 365
Eigl doch hier die Stelle in der game.
Quote:
def showkillgui(self):
if constInfo.killgui == 0:
constInfo.killgui = 1
self.KillGuiBg.Show()
self.KillBlauReich.Show()
self.KillGelbReich.Show()
self.KillRotReich.Show()
self.KillMob.Show()
elif constInfo.killgui == 1:
constInfo.killgui = 0
self.KillGuiBg.Hide()
self.KillBlauReich.Hide()
self.KillGelbReich.Hide()
self.KillRotReich.Hide()
self.KillMob.Hide()
Und der Button.
Quote:
self.PickOn = ui.Button()
self.PickOn.SetParent(self.Board)
self.PickOn.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub")
self.PickOn.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub")
self.PickOn.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub")
self.PickOn.SetText("PvP - Interface")
self.PickOn.SetPosition(10, 34)
#self.PickOn.SetEvent(game.GameWindow().showkillgu i())
self.pickOff.SAFE_SetEvent(self.gameHandle.showkil lgui)
self.PickOn.Show()
11/19/2014, 13:19
#7
elite*gold: 0
Join Date: Jan 2014
Posts: 268
Received Thanks: 373
Du hast aber den Command noch in der "Commandlist" drinne... in der game.py selbst. Da musst du ihn natürlich auch anpassen (Zeile 1675 *hust*)
Kind Regards
11/19/2014, 13:31
#8
elite*gold: 56
Join Date: Sep 2011
Posts: 777
Received Thanks: 365
Ok scheint zu klappen danke, aber wie mache ich das, der es läd wenn ich es in der root packe ?
11/19/2014, 13:34
#9
elite*gold: 0
Join Date: Jan 2014
Posts: 268
Received Thanks: 373
Ehm, ich weiß gerade nicht genau was du meinst.. was willst du laden? Und wann?
Kind Regards
11/19/2014, 13:38
#10
elite*gold: 56
Join Date: Sep 2011
Posts: 777
Received Thanks: 365
Ich hatte ja das Menü gepostet.
Das hatte ich immer so geladen einfach logininfo.py in den Client mit der .exe usw. dann hat er es beim client start geladen.
Jetzt habe ich es aber in der root gepackt und umbenannt zu mmenu.py, und ich möchte gerne das es dann ingame läd/der button da ist.
11/19/2014, 13:40
#11
elite*gold: 0
Join Date: Jan 2014
Posts: 268
Received Thanks: 373
#Skype sent.
Similar Threads
Python Conversion Error
01/26/2014 - Metin2 Private Server - 0 Replies
Hat wer den Python Conversion Error schon gefixxt? Und wenn ja möge er es mir bitte mitteilen. Habe einiges schon versucht ohne Erfolg bis jetzt (Außer die Lösung über Python aber das ist ja Langweilig).
Es handelt sich um diesen Fehler:
Python int too large to convert to C long
[HELP] Python Error
07/26/2013 - Metin2 Private Server - 4 Replies
Hi, i have an problem with an python file...
Someone help please?
python error
07/23/2013 - Metin2 - 0 Replies
Hello,:handsdown:
I have a problem with multihack and do not know how to fix it ....
it gives me error python22.dll
here's a picture that you realize what you say
http://img534.imageshack.us/img534/3378/385z.png
Please a little help python error. THANKS
07/06/2013 - Metin2 Private Server - 2 Replies
Hi i have this erro when i press game option button:
OptionDialog.__Load_BindObject - exceptions.KeyError:salestext_on_button
And another error:
0705 02:43:40666 :: File "ui.py", line 1447, in OnOverInItem
0705 02:43:40666 :: File "ui.py", line 87, in __call__
Python error
06/11/2010 - Metin2 Private Server - 1 Replies
Hi leute,
bei mir steht immer beim server starten "Fatal Error!! Python Library not exist!"
Was bedeutet das und was soll ich jetzt machen??
Mfg
HSG
All times are GMT +2. The time now is 12:23 .