|
You last visited: Today at 02:40
Advertisement
Absitzen im client
Discussion on Absitzen im client within the Metin2 forum part of the Popular Games category.
11/15/2010, 21:01
|
#1
|
elite*gold: 5
Join Date: Jul 2010
Posts: 654
Received Thanks: 144
|
Absitzen im client
hallo com, ich muss wissen wo ich die datei find in der Steht das wenn man absitzen drück,dismounted wird...kann mir jemand sagen wo das ist?
oder muss ich echt den ganzen client auseinander nemn?
|
|
|
11/15/2010, 23:50
|
#2
|
elite*gold: 5
Join Date: Jul 2010
Posts: 654
Received Thanks: 144
|
ich hab grad die mousemodule.py unter verdacht...
import app
import grp
import grpImage
import item
import wndMgr
import player
import skill
import dbg
import grpText
import ui
import systemSetting
import locale
## 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, locale.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(AttachedCountTextLineHa ndle, 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.SetCur sor - À߸øµÈ Ä¿¼* ¹øÈ£ [%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:
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()
wär nett wenn mal wer hilft
|
|
|
 |
Similar Threads
|
Client Moden um Sachen in Itemshoplager zu legen (Besonders an die Client Modder)
10/05/2010 - Metin2 - 8 Replies
Hey Leute, :D
(besonders die Client Modder)
mir kam da eine Idee auf Metin2 DE. Man könnte sicherlich den Client so Modden das man ins Itemshoplager Sachen rein legen kann.
Zweck:
Stellt euch vor: Ihr seid in SD2 habt keine Scheine mehr und keine Potts. Ihr wollt aber doch noch trozdem weiter lelven aber kein geld um SD 2 Scheine zu kaufen. Ihr erstellt euch einen Neuen Char und gebt dem geld damit der euch immer Potts in stadt kaufen kann und sie ins Itemshop lager legen kann damit...
|
[HELP]I have a 5200+ source and client I make char FINE relog Client exit
03/06/2010 - CO2 Private Server - 66 Replies
Hello,
I have made myself an 5200+ it works just about I have the client updated to 5200 And my source updated to 5200+ here is what my problem Is
So I make an account /newacc hello test and I login all fine my CMD is showing fine too so then I make an character that character gets made the CMD shows no error but then when I relog in my CMD sais
Hello has connected to you!
and then I login and get to Logging into Gameserver and the my client just closes but my CMD does not say hello...
|
All times are GMT +1. The time now is 02:41.
|
|