Jump to content

TekkForCe

Inactive Member
  • Posts

    66
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by TekkForCe

  1. vor 1 Stunde schrieb HG66:

    Beautiful everything but a couple of spontaneous questions I have to do:

    1. Note that the server is currently open, can I log in to evaluate the gameplay of the game?
    2. Will there be a reset or do the characters remain inside the server? [I hope they are reset]
    3. Is there a TS / Discord server where you can log in to receive support in all the languages you support?
    4. Does your team know all the languages you support and cover the whole day? (obviously taking away lunch and dinner)

    Congratulations again for the project (it's a pity that it is a reopening and this is a sign against you) but I wish you the best.


    1:
    -> Unfortunately we are currently almost at the end of our Beta Tests. We opened the Server as a closed Beta to do some adaptions and changes. Please wait until the Official Start. We hope to see you there!

    2:
    -> By virtue some changes of the main gameplay and adding new features we resettet everything at our Game Server. 

    3:
    -> Of coure we have a Teamspeak³ (ts3.metin2.international) and Discord Server (https://discordapp.com/invite/asfzdA4)! You're always welcome and we will try to answer all of your questions. We're trying to be as international as possible. This means that we currently support in 7 different languages. In near future we look forward to help in 10 different languages.

    4:
    -> We try to support in as many languages as we can. Currently we can help in 7 different languages. We look forward to support in 10 different languages in near future.


    -> Thank you for your gentle words. We look forward to see you on Serverstart!

  2.  

     

     

    Hello,

    I got this on syserr

    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x09204630>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x09204650>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x09204610>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x09210B30>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x092109D0>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x092109F0>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x09210A10>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x09210A30>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x09210A50>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x09210A70>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x092104B0>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x09210550>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x09210590>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x092106B0>> ignored
    Exception AttributeError: "'NoneType' object has no attribute '__del__'" in <bound method NumberLine.__del__ of <ui.NumberLine object at 0x092106F0>> ignored
    Exception TypeError: "'NoneType' object is not callable" in <bound method CursorImage.__del__ of <mouseModule.CursorImage object at 0x092045D0>> ignored

     

    mousemodule.py

     
    
    import app
    import grp
    import grpImage
    import item
    import wndMgr
    import player
    
    import skill
    import dbg
    import grpText
    
    import ui
    
    import systemSetting
    
    import localeInfo
    
    ## Mouse Controler
    ## ¸¶żě˝ş ÄżĽ­¸¦ Á¦ľîÇĎ¸ç ¸¶żě˝ş ÄżĽ­żˇ AttachµÇľî żňÁ÷ŔĚ´Â Objectµé±îÁö Á¦ľîÇŇ Ľö ŔÖ´Ů.
    
    class CursorImage(object):
    	def __init__(self):
    		self.handle = 0
    
    	def __init__(self, imageName):
    		self.handle = 0
    		self.LoadImage(imageName)
    
    	def __del__(self):
    		grpImage.Delete(self.handle)
    
    	def LoadImage(self, imageName):
    		try:
    			self.handle = grpImage.Generate(imageName)
    
    		except:
    			import sys
    			dbg.TraceError("%s %s" % (sys.exc_info()[0], sys.exc_info()[1]))
    			self.handle = 0
    
    	def DeleteImage(self):
    		if self.handle:
    			grpImage.Delete(self.handle)
    
    	def IsImage(self):
    		if self.handle:
    			return True
    
    		return False
    
    	def SetPosition(self, x, y):
    		if self.handle:
    			grpImage.SetPosition(self.handle, x, y)
    
    	def Render(self):
    		if self.handle:
    			grpImage.Render(self.handle)
    
    class CMouseController(object):
    
    	def __init__(self):
    
    		self.x = 0
    		self.y = 0
    
    		self.IsSoftwareCursor = False
    		self.curCursorName = ""
    		self.curCursorImage = 0
    		self.cursorPosX = 0
    		self.cursorPosY = 0
    
    		self.AttachedIconHandle = 0
    		self.AttachedOwner = 0
    		self.AttachedFlag = False
    		self.AttachedType = 0
    		self.AttachedSlotNumber = 0
    		self.AttachedCount = 1
    		self.AttachedIconHalfWidth = 0
    		self.AttachedIconHalfHeight = 0
    		self.LastAttachedSlotNumber = 0
    
    		self.countNumberLine = None
    
    		self.DeattachObject()
    
    		self.callbackDict = {}
    
    	def __del__(self):
    		self.callbackDict = {}
    
    	def Create(self):
    		self.IsSoftwareCursor = systemSetting.IsSoftwareCursor()
    
    		self.cursorDict = {
    			app.NORMAL			: CursorImage("D:/Ymir Work/UI/Cursor/cursor.sub"),
    			app.ATTACK			: CursorImage("D:/Ymir Work/UI/Cursor/cursor_attack.sub"),
    			app.TARGET			: CursorImage("D:/Ymir Work/UI/Cursor/cursor_attack.sub"),
    			app.TALK			: CursorImage("D:/Ymir Work/UI/Cursor/cursor_talk.sub"),
    			app.CANT_GO			: CursorImage("D:/Ymir Work/UI/Cursor/cursor_no.sub"),
    			app.PICK			: CursorImage("D:/Ymir Work/UI/Cursor/cursor_pick.sub"),
    			app.DOOR			: CursorImage("D:/Ymir Work/UI/Cursor/cursor_door.sub"),
    			app.CHAIR			: CursorImage("D:/Ymir Work/UI/Cursor/cursor_chair.sub"),
    			app.MAGIC			: CursorImage("D:/Ymir Work/UI/Cursor/cursor_chair.sub"),
    			app.BUY				: CursorImage("D:/Ymir Work/UI/Cursor/cursor_buy.sub"),
    			app.SELL			: CursorImage("D:/Ymir Work/UI/Cursor/cursor_sell.sub"),
    			app.CAMERA_ROTATE	: CursorImage("D:/Ymir Work/UI/Cursor/cursor_camera_rotate.sub"),
    			app.HSIZE			: CursorImage("D:/Ymir Work/UI/Cursor/cursor_hsize.sub"),
    			app.VSIZE			: CursorImage("D:/Ymir Work/UI/Cursor/cursor_vsize.sub"),
    			app.HVSIZE			: CursorImage("D:/Ymir Work/UI/Cursor/cursor_hvsize.sub"),
    		}
    		self.cursorPosDict = {
    			app.NORMAL			: (0, 0),
    			app.TARGET			: (0, 0),
    			app.ATTACK			: (0, 0),
    			app.TALK			: (0, 0),
    			app.CANT_GO			: (0, 0),
    			app.PICK			: (0, 0),
    			app.DOOR			: (0, 0),
    			app.CHAIR			: (0, 0),
    			app.MAGIC			: (0, 0),
    			app.BUY				: (0, 0),
    			app.SELL			: (0, 0),
    			app.CAMERA_ROTATE	: (0, 0),
    			app.HSIZE			: (-16, -16),
    			app.VSIZE			: (-16, -16),
    			app.HVSIZE			: (-16, -16),
    		}
    
    		app.SetCursor(app.NORMAL)
    
    		"""
    		AttachedCountTextLineHandle = grpText.Generate()
    		grpText.SetFontName(AttachedCountTextLineHandle, localeInfo.UI_DEF_FONT_SMALL)
    		grpText.SetText(AttachedCountTextLineHandle, "1234")
    		grpText.SetPosition(AttachedCountTextLineHandle, 100, 100)
    		grpText.SetOutline(AttachedCountTextLineHandle, True)
    		grpText.SetFontColor(AttachedCountTextLineHandle, 1.0, 1.0, 1.0)
    		grpText.SetHorizontalAlign(AttachedCountTextLineHandle, wndMgr.TEXT_HORIZONTAL_ALIGN_CENTER)
    		self.AttachedCountTextLineHandle = AttachedCountTextLineHandle
    		"""
    
    		self.countNumberLine = ui.NumberLine("CURTAIN")
    		self.countNumberLine.SetHorizontalAlignCenter()
    		self.countNumberLine.Hide()
    
    		return True
    
    	# Cursor Control
    	def ChangeCursor(self, cursorNum):
    		try:
    			self.curCursorNum = cursorNum
    			self.curCursorImage = self.cursorDict[cursorNum]
    			(self.cursorPosX, self.cursorPosY) = self.cursorPosDict[cursorNum]
    
    			if False == self.curCursorImage.IsImage():
    				self.curCursorNum = app.NORMAL
    				self.curCursorImage = self.cursorDict[app.NORMAL]
    
    		except KeyError:
    			dbg.TraceError("mouseModule.MouseController.SetCursor - Ŕ߸řµČ ÄżĽ­ ąřČŁ [%d]" % cursorNum)
    			self.curCursorName = app.NORMAL
    			self.curCursorImage = self.cursorDict[app.NORMAL]
    
    	# Attaching
    	def AttachObject(self, Owner, Type, SlotNumber, ItemIndex, count = 0):
    
    		self.LastAttachedSlotNumber = self.AttachedSlotNumber
    
    		self.AttachedFlag = True
    		self.AttachedOwner = Owner
    		self.AttachedType = Type
    		self.AttachedSlotNumber = SlotNumber
    		self.AttachedItemIndex = ItemIndex
    		self.AttachedCount = count
    		self.countNumberLine.SetNumber("")
    		self.countNumberLine.Hide()
    
    		if count > 1:
    			self.countNumberLine.SetNumber(str(count))
    			self.countNumberLine.Show()
    
    		try:
    
    			width = 1
    			height = 1
    
    			if Type == player.SLOT_TYPE_INVENTORY or\
    				Type == player.SLOT_TYPE_PRIVATE_SHOP or\
    				Type == player.SLOT_TYPE_SHOP or\
    				Type == player.SLOT_TYPE_SAFEBOX or\
    				Type == player.SLOT_TYPE_MALL or\
    				Type == player.SLOT_TYPE_DRAGON_SOUL_INVENTORY:
    
    				item.SelectItem(self.AttachedItemIndex)
    				self.AttachedIconHandle = item.GetIconInstance()
    
    				if not self.AttachedIconHandle:
    					self.AttachedIconHandle = 0
    					self.DeattachObject()
    					return
    
    				(width, height) = item.GetItemSize()
    
    			elif Type == player.SLOT_TYPE_SKILL:
    				skillGrade = player.GetSkillGrade(SlotNumber)
    				self.AttachedIconHandle = skill.GetIconInstanceNew(self.AttachedItemIndex, skillGrade)
    
    			elif Type == player.SLOT_TYPE_EMOTION:
    				image = player.GetEmotionIconImage(ItemIndex)
    				self.AttachedIconHandle = grpImage.GenerateFromHandle(image)
    
    			elif Type == player.SLOT_TYPE_QUICK_SLOT:
    				(quickSlotType, position) = player.GetGlobalQuickSlot(SlotNumber)
    
    				if quickSlotType == player.SLOT_TYPE_INVENTORY:
    
    					itemIndex = player.GetItemIndex(position)
    					item.SelectItem(itemIndex)
    					self.AttachedIconHandle = item.GetIconInstance()
    					(width, height) = item.GetItemSize()
    
    				elif quickSlotType == player.SLOT_TYPE_SKILL:
    					skillIndex = player.GetSkillIndex(position)
    					skillGrade = player.GetSkillGrade(position)
    					self.AttachedIconHandle = skill.GetIconInstanceNew(skillIndex, skillGrade)
    
    				elif quickSlotType == player.SLOT_TYPE_EMOTION:
    					image = player.GetEmotionIconImage(position)
    					self.AttachedIconHandle = grpImage.GenerateFromHandle(image)
    
    			if not self.AttachedIconHandle:
    				self.DeattachObject()
    				return
    
    			self.AttachedIconHalfWidth = grpImage.GetWidth(self.AttachedIconHandle) / 2
    			self.AttachedIconHalfHeight = grpImage.GetHeight(self.AttachedIconHandle) / 2
    			self.AttachedIconHalfWidth = grpImage.GetWidth(self.AttachedIconHandle) / 2
    			self.AttachedIconHalfHeight = grpImage.GetHeight(self.AttachedIconHandle) / 2
    			wndMgr.AttachIcon(self.AttachedType, self.AttachedItemIndex, self.AttachedSlotNumber, width, height)
    
    		except Exception, e:
    			dbg.TraceError("mouseModule.py: AttachObject : " + str(e))
    			self.AttachedIconHandle = 0
    
    	def IsAttachedMoney(self):
    		if True == self.isAttached():
    			if player.ITEM_MONEY == self.GetAttachedItemIndex():
    				return True
    
    		return False
    
    	def GetAttachedMoneyAmount(self):
    		if True == self.isAttached():
    			if player.ITEM_MONEY == self.GetAttachedItemIndex():
    				return self.GetAttachedItemCount()
    		return 0
    
    	def AttachMoney(self, owner, type, count):
    
    		self.LastAttachedSlotNumber = self.AttachedSlotNumber
    
    		self.AttachedFlag = True
    		self.AttachedOwner = owner
    		self.AttachedType = type
    		self.AttachedSlotNumber = -1
    		self.AttachedItemIndex = player.ITEM_MONEY
    		self.AttachedCount = count
    		self.AttachedIconHandle = grpImage.Generate("icon/item/money.tga")
    		self.AttachedIconHalfWidth = grpImage.GetWidth(self.AttachedIconHandle) / 2
    		self.AttachedIconHalfHeight = grpImage.GetHeight(self.AttachedIconHandle) / 2
    		wndMgr.AttachIcon(self.AttachedType, self.AttachedItemIndex, self.AttachedSlotNumber, 1, 1)
    
    		if count > 1:
    			self.countNumberLine.SetNumber(str(count))
    			self.countNumberLine.Show()
    		#grpText.SetText(self.AttachedCountTextLineHandle, str(count))
    
    	def DeattachObject(self):
    
    		self.ClearCallBack()
    		self.LastAttachedSlotNumber = self.AttachedSlotNumber
    
    		if self.AttachedIconHandle != 0:
    
    			if self.AttachedType == player.SLOT_TYPE_INVENTORY or\
    				self.AttachedType == player.SLOT_TYPE_PRIVATE_SHOP or\
    				self.AttachedType == player.SLOT_TYPE_SHOP or\
    				self.AttachedType == player.SLOT_TYPE_SAFEBOX or\
    				self.AttachedType == player.SLOT_TYPE_MALL:
    
    				item.DeleteIconInstance(self.AttachedIconHandle)
    
    			elif self.AttachedType == player.SLOT_TYPE_SKILL:
    				skill.DeleteIconInstance(self.AttachedIconHandle)
    
    			elif self.AttachedType == player.SLOT_TYPE_EMOTION:
    				grpImage.Delete(self.AttachedIconHandle)
    
    		self.AttachedFlag = False
    		self.AttachedType = -1
    		self.AttachedItemIndex = -1
    		self.AttachedSlotNumber = -1
    		self.AttachedIconHandle = 0
    		wndMgr.SetAttachingFlag(False)
    
    		if self.countNumberLine:
    			self.countNumberLine.Hide()
    
    	def isAttached(self):
    		return self.AttachedFlag
    
    	def GetAttachedOwner(self):
    
    		if False == self.isAttached():
    			return 0
    
    		return self.AttachedOwner
    
    	def GetAttachedType(self):
    
    		if False == self.isAttached():
    			return player.SLOT_TYPE_NONE
    
    		return self.AttachedType
    
    	def GetAttachedSlotNumber(self):
    
    		if False == self.isAttached():
    			return 0
    
    		return self.AttachedSlotNumber
    
    	def GetLastAttachedSlotNumber(self):
    
    		return self.LastAttachedSlotNumber
    
    	def GetAttachedItemIndex(self):
    
    		if False == self.isAttached():
    			return 0
    
    		return self.AttachedItemIndex
    
    	def GetAttachedItemCount(self):
    
    		if False == self.isAttached():
    			return 0
    
    		return self.AttachedCount
    
    	# Update
    	def Update(self, x, y):
    
    		self.x = x
    		self.y = y
    
    		if True == self.isAttached():
    			if 0 != self.AttachedIconHandle:
    				grpImage.SetDiffuseColor(self.AttachedIconHandle, 1.0, 1.0, 1.0, 0.5)
    				grpImage.SetPosition(self.AttachedIconHandle, self.x - self.AttachedIconHalfWidth, self.y - self.AttachedIconHalfHeight)
    				self.countNumberLine.SetPosition(self.x, self.y - self.AttachedIconHalfHeight - 3)
    
    		if self.IsSoftwareCursor:
    			if 0 != self.curCursorImage:
    				self.curCursorImage.SetPosition(self.x + self.cursorPosX, self.y + self.cursorPosY)
    				
    	# Render
    	def Render(self):
    
    		if True == self.isAttached():
    			if 0 != self.AttachedIconHandle:
    				grpImage.Render(self.AttachedIconHandle)
    
    		if self.IsSoftwareCursor:
    			if True == app.IsShowCursor():
    				if 0 != self.curCursorImage:
    					self.curCursorImage.Render()
    		else:
    			if False == app.IsShowCursor():
    				if True == app.IsLiarCursorOn():
    					if 0 != self.curCursorImage:
    						self.curCursorImage.SetPosition(self.x + self.cursorPosX, self.y + self.cursorPosY)
    						self.curCursorImage.Render()
    
    	def SetCallBack(self, type, event=lambda *arg:None):
    		self.callbackDict[type] = event
    
    	def RunCallBack(self, type, *arg):
    
    		if not self.callbackDict.has_key(type):
    			self.DeattachObject()
    			return
    
    		self.callbackDict[type]()
    
    	def ClearCallBack(self):
    		self.callbackDict = {}
    
    mouseController = CMouseController()
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.