-
Posts
53 -
Joined
-
Last visited
-
Days Won
2 -
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by Retro
-
-
check protoreader
- 1
-
If i remember well i had this problem too , if you use martysama's source the problem could be from protoreader or length.h
check if it is like there
enum EWearPositions
{
WEAR_BODY, // 0
WEAR_HEAD, // 1
WEAR_FOOTS, // 2
WEAR_WRIST, // 3
WEAR_WEAPON, // 4
WEAR_NECK, // 5
WEAR_EAR, // 6
WEAR_UNIQUE1, // 7
WEAR_UNIQUE2, // 8
WEAR_ARROW, // 9
WEAR_SHIELD, // 10
WEAR_ABILITY1, // 11
WEAR_ABILITY2, // 12
WEAR_ABILITY3, // 13
WEAR_ABILITY4, // 14
WEAR_ABILITY5, // 15
WEAR_ABILITY6, // 16
WEAR_ABILITY7, // 17
WEAR_ABILITY8, // 18
WEAR_RING1, // : 신규 반지슬롯1 (왼쪽)
WEAR_RING2, // : 신규 반지슬롯2 (오른쪽)WEAR_BELT, // : 신규 벨트슬롯
WEAR_MAX = 32 //
};And in protoreader.cpp from db it should be in that order.
-
replace with this
{"index":COSTUME_START_INDEX+4, "x":10, "y":20, "width":32, "height":96},
or replace 20 with even more for example 30 if it doesn't work till it is going down
-
replace this:
{"index":COSTUME_START_INDEX+4, "x":10, "y":5, "width":32, "height":96},
with this:
{"index":COSTUME_START_INDEX+4, "x":10, "y":10, "width":32, "height":96},
-
This doesn't look so bad at all but navicat was is and will be the best tool for mysql.
-
uiscript costumewindow.py , post it there if you don't know how to do it .
-
the best free source clean is mainline_released or if you're searching for one with wolfman check source with wolfman syron or something like that , it's not very fixed but it's somehow clean
-
why have you deleted the topic's name and question? mabye anybody else need it.
-
gf protos are uploaded somewhere in this topic
check there
-
RefreshState(CRaceMotionData::NAME_WAIT, true);
comment this line in function change acce or delete it. -
If you don't know what you installed last or deleted or something you can't find the problem. Only comparing packets you'll never find the problem.Packed errors could be caused by any file which include or use packets.
-
-
Check points from packets
- 1
-
yes it's good, just drag example.xml on ProtoArchiver.exe and it will pack mob_names and mob_proto.txt to mob_proto
-
next time explain better.
npc.purge() to ,,despawn'' npc
- 1
-
<Actiontype="item_proto_pack"path="item_proto"OutType="TXT"TxTProto="item_proto.txt"TxTNames="item_names.txt"/><Actiontype="mob_proto_pack"path="mob_proto"OutType="TXT"TxTProto="mob_proto.txt"TxTNames="mob_names.txt"/><Actiontype="mob_proto_extract"path="mob_proto"OutType="TXT"TxTProto="mob_proto.txt"TxTNames="mob_names.txt"/><Actiontype="item_proto_extract"path="item_proto"OutType="TXT"TxTProto="item_proto.txt"TxTNames="item_names.txt"/></Buildfile>
Make a file for example item_proto_pack.xml and copy one from those:
<Actiontype="mob_proto_pack"path="mob_proto"OutType="TXT"TxTProto="mob_proto.txt"TxTNames="mob_names.txt"/></Buildfile>I don't know if </Buildfile> is needed test with it and also without it , then drag the item_proto_pack.xml to the tool and wait to do the work -
if you want to know how to pack back check exemple.xml file i think that was the name.
-
-
yes you have to remove it from taskbar.py too
check this
search for vectorsefsunbutton or something like that in your whole root and delete the functions you find.
-
Spoiler
import ui
import net
import item
import skill
import localeInfo
import wndMgr
import player
import constInfo
import mouseModule
import uiScriptLocale
import appMOUSE_SETTINGS = [0, 0]
def InitMouseButtonSettings(left, right):
global MOUSE_SETTINGS
MOUSE_SETTINGS = [left, right]def SetMouseButtonSetting(dir, event):
global MOUSE_SETTINGS
MOUSE_SETTINGS[dir] = event
def GetMouseButtonSettings():
global MOUSE_SETTINGS
return MOUSE_SETTINGSdef SaveMouseButtonSettings():
global MOUSE_SETTINGS
open("mouse.cfg", "w").write("%s\t%s" % tuple(MOUSE_SETTINGS))def LoadMouseButtonSettings():
global MOUSE_SETTINGS
tokens = open("mouse.cfg", "r").read().split()if len(tokens) != 2:
raise RuntimeError, "MOUSE_SETTINGS_FILE_ERROR"MOUSE_SETTINGS[0] = int(tokens[0])
MOUSE_SETTINGS[1] = int(tokens[1])def unsigned32(n):
return n & 0xFFFFFFFFL#-------------------Giftbox Begin------------------------------
class GiftBox(ui.ScriptWindow):
class TextToolTip(ui.Window):
def __init__(self):
ui.Window.__init__(self, "TOP_MOST")
self.SetWindowName("GiftBox")
textLine = ui.TextLine()
textLine.SetParent(self)
textLine.SetHorizontalAlignCenter()
textLine.SetOutline()
textLine.Show()
self.textLine = textLinedef __del__(self):
ui.Window.__del__(self)def SetText(self, text):
self.textLine.SetText(text)def OnRender(self):
(mouseX, mouseY) = wndMgr.GetMousePosition()
self.textLine.SetPosition(mouseX, mouseY - 15)def __init__(self):
#print "NEW TASKBAR ----------------------------------------------------------------------------"
ui.ScriptWindow.__init__(self)
self.tooltipGift = self.TextToolTip()
self.tooltipGift.Show()
def __del__(self):
#print "---------------------------------------------------------------------------- DELETE TASKBAR"
ui.ScriptWindow.__del__(self)def LoadWindow(self):
try:
pyScrLoader = ui.PythonScriptLoader()
pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "giftbox.py")
except:
import exception
exception.Abort("GiftBox.LoadWindow.LoadObject")self.giftBoxIcon = self.GetChild("GiftBox_Icon")
self.giftBoxToolTip = self.GetChild("GiftBox_ToolTip")
def Destroy(self):
self.giftBoxIcon = 0
self.giftBoxToolTip = 0
#-------------------Giftbox End------------------------------class EnergyBar(ui.ScriptWindow):
class TextToolTip(ui.Window):
def __init__(self):
ui.Window.__init__(self, "TOP_MOST")
self.SetWindowName("EnergyBar")
textLine = ui.TextLine()
textLine.SetParent(self)
textLine.SetHorizontalAlignCenter()
textLine.SetOutline()
textLine.Show()
self.textLine = textLinedef __del__(self):
ui.Window.__del__(self)def SetText(self, text):
self.textLine.SetText(text)def OnRender(self):
(mouseX, mouseY) = wndMgr.GetMousePosition()
self.textLine.SetPosition(mouseX, mouseY - 15)def __init__(self):
#print "NEW TASKBAR ----------------------------------------------------------------------------"
ui.ScriptWindow.__init__(self)
self.tooltipEnergy = self.TextToolTip()
self.tooltipEnergy.Show()
def __del__(self):
#print "---------------------------------------------------------------------------- DELETE TASKBAR"
ui.ScriptWindow.__del__(self)def LoadWindow(self):
try:
pyScrLoader = ui.PythonScriptLoader()
pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "EnergyBar.py")
except:
import exception
exception.Abort("EnergyBar.LoadWindow.LoadObject")self.energyEmpty = self.GetChild("EnergyGauge_Empty")
self.energyHungry = self.GetChild("EnergyGauge_Hungry")
self.energyFull = self.GetChild("EnergyGauge_Full")self.energyGaugeBoard = self.GetChild("EnergyGauge_Board")
self.energyGaugeToolTip = self.GetChild("EnergyGauge_ToolTip")
def Destroy(self):
self.energyEmpty = None
self.energyHungry = None
self.energyFull = None
self.energyGaugeBoard = 0
self.energyGaugeToolTip = 0
self.tooltipEnergy = 0## Gauge
def RefreshStatus(self):
pointEnergy = player.GetStatus (player.ENERGY)
leftTimeEnergy = player.GetStatus (player.ENERGY_END_TIME) - app.GetGlobalTimeStamp()
# 충기환 지속 시간 = 2시간.
self.SetEnergy (pointEnergy, leftTimeEnergy, 7200)
def SetEnergy (self, point, leftTime, maxTime):
leftTime = max (leftTime, 0)
maxTime = max (maxTime, 0)
self.energyEmpty.Hide()
self.energyHungry.Hide()
self.energyFull.Hide()
if leftTime == 0:
self.energyEmpty.Show()
elif ((leftTime * 100) / maxTime) < 15:
self.energyHungry.Show()
else:
self.energyFull.Show()
self.tooltipEnergy.SetText("%s" % (localeInfo.TOOLTIP_ENERGY(point)))def OnUpdate(self):
if TRUE == self.energyGaugeToolTip.IsIn():
self.RefreshStatus()
self.tooltipEnergy.Show()
else:
self.tooltipEnergy.Hide()class ExpandedTaskBar(ui.ScriptWindow):
BUTTON_DRAGON_SOUL = 0
def __init__(self):
ui.Window.__init__(self)
self.SetWindowName("ExpandedTaskBar")
def LoadWindow(self):
try:
pyScrLoader = ui.PythonScriptLoader()
pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "ExpandedTaskBar.py")
except:
import exception
exception.Abort("ExpandedTaskBar.LoadWindow.LoadObject")self.expandedTaskBarBoard = self.GetChild("ExpanedTaskBar_Board")
self.toggleButtonDict = {}
self.toggleButtonDict[ExpandedTaskBar.BUTTON_DRAGON_SOUL] = self.GetChild("DragonSoulButton")
self.toggleButtonDict[ExpandedTaskBar.BUTTON_DRAGON_SOUL].SetParent(self)
def SetTop(self):
super(ExpandedTaskBar, self).SetTop()
for button in self.toggleButtonDict.values():
button.SetTop()
def Show(self):
ui.ScriptWindow.Show(self)
def Close(self):
self.Hide()
def SetToolTipText(self, eButton, text):
self.toggleButtonDict[eButton].SetToolTipText(text)
def SetToggleButtonEvent(self, eButton, kEventFunc):
self.toggleButtonDict[eButton].SetEvent(kEventFunc)def OnPressEscapeKey(self):
self.Close()
return TRUE
class TaskBar(ui.ScriptWindow):BUTTON_CHARACTER = 0
BUTTON_INVENTORY = 1
BUTTON_MESSENGER = 2
BUTTON_SYSTEM = 3
BUTTON_CHAT = 4
BUTTON_EXPAND = 4
IS_EXPANDED = FALSEMOUSE_BUTTON_LEFT = 0
MOUSE_BUTTON_RIGHT = 1
NONE = 255EVENT_MOVE = 0
EVENT_ATTACK = 1
EVENT_MOVE_AND_ATTACK = 2
EVENT_CAMERA = 3
EVENT_SKILL = 4
EVENT_AUTO = 5GAUGE_WIDTH = 95
GAUGE_HEIGHT = 13QUICKPAGE_NUMBER_FILENAME = [
"d:/ymir work/ui/game/taskbar/1.sub",
"d:/ymir work/ui/game/taskbar/2.sub",
"d:/ymir work/ui/game/taskbar/3.sub",
"d:/ymir work/ui/game/taskbar/4.sub",
]#gift icon show and hide
def ShowGift(self):
if not localeInfo.IsBRAZIL():
self.wndGiftBox.Show()
def HideGift(self):
self.wndGiftBox.Hide()class TextToolTip(ui.Window):
def __init__(self):
ui.Window.__init__(self, "TOP_MOST")textLine = ui.TextLine()
textLine.SetParent(self)
textLine.SetHorizontalAlignCenter()
textLine.SetOutline()
textLine.Show()
self.textLine = textLinedef __del__(self):
ui.Window.__del__(self)def SetText(self, text):
self.textLine.SetText(text)def OnRender(self):
(mouseX, mouseY) = wndMgr.GetMousePosition()
self.textLine.SetPosition(mouseX, mouseY - 15)class SkillButton(ui.SlotWindow):
def __init__(self):
ui.SlotWindow.__init__(self)self.event = 0
self.arg = 0self.slotIndex = 0
self.skillIndex = 0slotIndex = 0
wndMgr.SetSlotBaseImage(self.hWnd, "d:/ymir work/ui/public/slot_base.sub", 1.0, 1.0, 1.0, 1.0)
wndMgr.AppendSlot(self.hWnd, slotIndex, 0, 0, 32, 32)
self.SetCoverButton(slotIndex, "d:/ymir work/ui/public/slot_cover_button_01.sub",\
"d:/ymir work/ui/public/slot_cover_button_02.sub",\
"d:/ymir work/ui/public/slot_cover_button_03.sub",\
"d:/ymir work/ui/public/slot_cover_button_04.sub", TRUE, FALSE)
self.SetSize(32, 32)def __del__(self):
ui.SlotWindow.__del__(self)def Destroy(self):
if 0 != self.tooltipSkill:
self.tooltipSkill.HideToolTip()def RefreshSkill(self):
if 0 != self.slotIndex:
self.SetSkill(self.slotIndex)def SetSkillToolTip(self, tooltip):
self.tooltipSkill = tooltipdef SetSkill(self, skillSlotNumber):
slotNumber = 0
skillIndex = player.GetSkillIndex(skillSlotNumber)
skillGrade = player.GetSkillGrade(skillSlotNumber)
skillLevel = player.GetSkillLevel(skillSlotNumber)
skillType = skill.GetSkillType(skillIndex)self.skillIndex = skillIndex
if 0 == self.skillIndex:
self.ClearSlot(slotNumber)
returnself.slotIndex = skillSlotNumber
self.SetSkillSlotNew(slotNumber, skillIndex, skillGrade, skillLevel)
self.SetSlotCountNew(slotNumber, skillGrade, skillLevel)## NOTE : CoolTime 체크
if player.IsSkillCoolTime(skillSlotNumber):
(coolTime, elapsedTime) = player.GetSkillCoolTime(skillSlotNumber)
self.SetSlotCoolTime(slotNumber, coolTime, elapsedTime)## NOTE : Activate 되어 있다면 아이콘도 업데이트
if player.IsSkillActive(skillSlotNumber):
self.ActivateSlot(slotNumber)def SetSkillEvent(self, event, arg=0):
self.event = event
self.arg = argdef GetSkillIndex(self):
return self.skillIndexdef GetSlotIndex(self):
return self.slotIndexdef Activate(self, coolTime):
self.SetSlotCoolTime(0, coolTime)if skill.IsToggleSkill(self.skillIndex):
self.ActivateSlot(0)def Deactivate(self):
if skill.IsToggleSkill(self.skillIndex):
self.DeactivateSlot(0)def OnOverInItem(self, dummy):
self.tooltipSkill.SetSkill(self.skillIndex)def OnOverOutItem(self):
self.tooltipSkill.HideToolTip()def OnSelectItemSlot(self, dummy):
if 0 != self.event:
if 0 != self.arg:
self.event(self.arg)
else:
self.event()def __init__(self):
#print "NEW TASKBAR ----------------------------------------------------------------------------"ui.ScriptWindow.__init__(self, "TOP_MOST")
self.quickPageNumImageBox = None
self.tooltipItem = 0
self.tooltipSkill = 0
self.mouseModeButtonList = [ ui.ScriptWindow("TOP_MOST"), ui.ScriptWindow("TOP_MOST") ]self.tooltipHP = self.TextToolTip()
self.tooltipHP.Show()
self.tooltipSP = self.TextToolTip()
self.tooltipSP.Show()
self.tooltipST = self.TextToolTip()
self.tooltipST.Show()
self.tooltipEXP = self.TextToolTip()
self.tooltipEXP.Show()
self.skillCategoryNameList = [ "ACTIVE_1", "ACTIVE_2", "ACTIVE_3" ]
self.skillPageStartSlotIndexDict = {
"ACTIVE_1" : 1,
"ACTIVE_2" : 21,
"ACTIVE_3" : 41,
}self.selectSkillButtonList = []
self.lastUpdateQuickSlot = 0
self.SetWindowName("TaskBar")def __del__(self):
#print "---------------------------------------------------------------------------- DELETE TASKBAR"
ui.ScriptWindow.__del__(self)def LoadWindow(self):
try:
pyScrLoader = ui.PythonScriptLoader()if constInfo.IN_GAME_SHOP_ENABLE:
pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "TaskBar.py")
else:
pyScrLoader.LoadScriptFile(self, "UIScript/TaskBar.py")
pyScrLoader.LoadScriptFile(self.mouseModeButtonList[self.MOUSE_BUTTON_LEFT], "UIScript/MouseButtonWindow.py")
pyScrLoader.LoadScriptFile(self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT], "UIScript/RightMouseButtonWindow.py")
except:
import exception
exception.Abort("TaskBar.LoadWindow.LoadObject")self.quickslot = []
self.quickslot.append(self.GetChild("quick_slot_1"))
self.quickslot.append(self.GetChild("quick_slot_2"))
for slot in self.quickslot:
slot.SetSlotStyle(wndMgr.SLOT_STYLE_NONE)
slot.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptyQuickSlot))
slot.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemQuickSlot))
slot.SetUnselectItemSlotEvent(ui.__mem_func__(self.UnselectItemQuickSlot))
slot.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
slot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))toggleButtonDict = {}
toggleButtonDict[TaskBar.BUTTON_CHARACTER]=self.GetChild("CharacterButton")
toggleButtonDict[TaskBar.BUTTON_INVENTORY]=self.GetChild("InventoryButton")
toggleButtonDict[TaskBar.BUTTON_MESSENGER]=self.GetChild("MessengerButton")
toggleButtonDict[TaskBar.BUTTON_SYSTEM]=self.GetChild("SystemButton")
# ChatButton, ExpandButton 둘 중 하나는 반드시 존재한다.
try:
toggleButtonDict[TaskBar.BUTTON_CHAT]=self.GetChild("ChatButton")
except:
toggleButtonDict[TaskBar.BUTTON_EXPAND]=self.GetChild("ExpandButton")
TaskBar.IS_EXPANDED = TRUE
if localeInfo.IsARABIC():
systemButton = toggleButtonDict[TaskBar.BUTTON_SYSTEM]
if systemButton.ToolTipText:
tx, ty = systemButton.ToolTipText.GetLocalPosition()
tw = systemButton.ToolTipText.GetWidth()
systemButton.ToolTipText.SetPosition(-tw/2, ty)
expGauge = []
expGauge.append(self.GetChild("EXPGauge_01"))
expGauge.append(self.GetChild("EXPGauge_02"))
expGauge.append(self.GetChild("EXPGauge_03"))
expGauge.append(self.GetChild("EXPGauge_04"))for exp in expGauge:
exp.SetSize(0, 0)
self.quickPageNumImageBox=self.GetChild("QuickPageNumber")self.GetChild("QuickPageUpButton").SetEvent(ui.__mem_func__(self.__OnClickQuickPageUpButton))
self.GetChild("QuickPageDownButton").SetEvent(ui.__mem_func__(self.__OnClickQuickPageDownButton))mouseLeftButtonModeButton = self.GetChild("LeftMouseButton")
mouseRightButtonModeButton = self.GetChild("RightMouseButton")
mouseLeftButtonModeButton.SetEvent(ui.__mem_func__(self.ToggleLeftMouseButtonModeWindow))
mouseRightButtonModeButton.SetEvent(ui.__mem_func__(self.ToggleRightMouseButtonModeWindow))
self.curMouseModeButton = [ mouseLeftButtonModeButton, mouseRightButtonModeButton ](xLocalRight, yLocalRight) = mouseRightButtonModeButton.GetLocalPosition()
self.curSkillButton = self.SkillButton()
self.curSkillButton.SetParent(self)
self.curSkillButton.SetPosition(xLocalRight, 3)
self.curSkillButton.SetSkillEvent(ui.__mem_func__(self.ToggleRightMouseButtonModeWindow))
self.curSkillButton.Hide()(xLeft, yLeft) = mouseLeftButtonModeButton.GetGlobalPosition()
(xRight, yRight) = mouseRightButtonModeButton.GetGlobalPosition()
leftModeButtonList = self.mouseModeButtonList[self.MOUSE_BUTTON_LEFT]
leftModeButtonList.SetPosition(xLeft, yLeft - leftModeButtonList.GetHeight()-5)
rightModeButtonList = self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT]
rightModeButtonList.SetPosition(xRight - rightModeButtonList.GetWidth() + 32, yRight - rightModeButtonList.GetHeight()-5)
rightModeButtonList.GetChild("button_skill").SetEvent(lambda adir=self.MOUSE_BUTTON_RIGHT, aevent=self.EVENT_SKILL: self.SelectMouseButtonEvent(adir, aevent))
rightModeButtonList.GetChild("button_skill").Hide()mouseImage = ui.ImageBox("TOP_MOST")
mouseImage.AddFlag("float")
mouseImage.LoadImage("d:/ymir work/ui/game/taskbar/mouse_button_camera_01.sub")
mouseImage.SetPosition(xRight, wndMgr.GetScreenHeight() - 34)
mouseImage.Hide()
self.mouseImage = mouseImagedir = self.MOUSE_BUTTON_LEFT
wnd = self.mouseModeButtonList[dir]
wnd.GetChild("button_move_and_attack").SetEvent(lambda adir=dir, aevent=self.EVENT_MOVE_AND_ATTACK: self.SelectMouseButtonEvent(adir, aevent))
wnd.GetChild("button_auto_attack").SetEvent(lambda adir=dir, aevent=self.EVENT_AUTO: self.SelectMouseButtonEvent(adir, aevent))
wnd.GetChild("button_camera").SetEvent(lambda adir=dir, aevent=self.EVENT_CAMERA: self.SelectMouseButtonEvent(adir, aevent))dir = self.MOUSE_BUTTON_RIGHT
wnd = self.mouseModeButtonList[dir]
wnd.GetChild("button_move_and_attack").SetEvent(lambda adir=dir, aevent=self.EVENT_MOVE_AND_ATTACK: self.SelectMouseButtonEvent(adir, aevent))
wnd.GetChild("button_camera").SetEvent(lambda adir=dir, aevent=self.EVENT_CAMERA: self.SelectMouseButtonEvent(adir, aevent))self.toggleButtonDict = toggleButtonDict
self.expGauge = expGaugeif constInfo.IN_GAME_SHOP_ENABLE:
self.rampageGauge1 = self.GetChild("RampageGauge")
self.rampageGauge1.OnMouseOverIn = ui.__mem_func__(self.__RampageGauge_OverIn)
self.rampageGauge2 = self.GetChild("RampageGauge2")
self.rampageGauge2.OnMouseOverOut = ui.__mem_func__(self.__RampageGauge_OverOut)
self.rampageGauge2.OnMouseLeftButtonUp = ui.__mem_func__(self.__RampageGauge_Click)
print "[DEBUG]: constInfo.IN_GAME_SHOP_ENABLE / self.rampageGauge1",constInfo.IN_GAME_SHOP_ENABLE, self.rampageGauge1
self.__RampageGauge_OverOut()self.hpGauge = self.GetChild("HPGauge")
self.mpGauge = self.GetChild("SPGauge")
self.stGauge = self.GetChild("STGauge")
self.hpRecoveryGaugeBar = self.GetChild("HPRecoveryGaugeBar")
self.spRecoveryGaugeBar = self.GetChild("SPRecoveryGaugeBar")self.hpGaugeBoard=self.GetChild("HPGauge_Board")
self.mpGaugeBoard=self.GetChild("SPGauge_Board")
self.stGaugeBoard=self.GetChild("STGauge_Board")
self.expGaugeBoard=self.GetChild("EXP_Gauge_Board")
#giftbox object
wndGiftBox = GiftBox()
wndGiftBox.LoadWindow()
self.wndGiftBox = wndGiftBox
self.__LoadMouseSettings()
self.RefreshStatus()
self.RefreshQuickSlot()def __RampageGauge_OverIn(self):
print "rampage_over_in"
self.rampageGauge2.Show()
self.rampageGauge1.Hide()def __RampageGauge_OverOut(self):
print "rampage_over_out"
self.rampageGauge2.Hide()
self.rampageGauge1.Show()def __RampageGauge_Click(self):
print "rampage_up"
net.SendChatPacket("/in_game_mall")
# gift icon hide when click mall icon
self.wndGiftBox.Hide()def __LoadMouseSettings(self):
try:
LoadMouseButtonSettings()
(mouseLeftButtonEvent, mouseRightButtonEvent) = GetMouseButtonSettings()
if not self.__IsInSafeMouseButtonSettingRange(mouseLeftButtonEvent) or not self.__IsInSafeMouseButtonSettingRange(mouseRightButtonEvent):
raise RuntimeError, "INVALID_MOUSE_BUTTON_SETTINGS"
except:
InitMouseButtonSettings(self.EVENT_MOVE_AND_ATTACK, self.EVENT_CAMERA)
(mouseLeftButtonEvent, mouseRightButtonEvent) = GetMouseButtonSettings()try:
self.SelectMouseButtonEvent(self.MOUSE_BUTTON_LEFT, mouseLeftButtonEvent)
self.SelectMouseButtonEvent(self.MOUSE_BUTTON_RIGHT, mouseRightButtonEvent)
except:
InitMouseButtonSettings(self.EVENT_MOVE_AND_ATTACK, self.EVENT_CAMERA)
(mouseLeftButtonEvent, mouseRightButtonEvent) = GetMouseButtonSettings()self.SelectMouseButtonEvent(self.MOUSE_BUTTON_LEFT, mouseLeftButtonEvent)
self.SelectMouseButtonEvent(self.MOUSE_BUTTON_RIGHT, mouseRightButtonEvent)def __IsInSafeMouseButtonSettingRange(self, arg):
return arg >= self.EVENT_MOVE and arg <= self.EVENT_AUTOdef Destroy(self):
SaveMouseButtonSettings()self.ClearDictionary()
self.mouseModeButtonList[0].ClearDictionary()
self.mouseModeButtonList[1].ClearDictionary()
self.mouseModeButtonList = 0
self.curMouseModeButton = 0
self.curSkillButton = 0
self.selectSkillButtonList = 0
self.expGauge = None
self.hpGauge = None
self.mpGauge = None
self.stGauge = None
self.hpRecoveryGaugeBar = None
self.spRecoveryGaugeBar = None
self.tooltipItem = 0
self.tooltipSkill = 0
self.quickslot = 0
self.toggleButtonDict = 0self.hpGaugeBoard = 0
self.mpGaugeBoard = 0
self.stGaugeBoard = 0
self.expGaugeBoard = 0self.tooltipHP = 0
self.tooltipSP = 0
self.tooltipST = 0
self.tooltipEXP = 0self.mouseImage = None
def __OnClickQuickPageUpButton(self):
player.SetQuickPage(player.GetQuickPage()-1)def __OnClickQuickPageDownButton(self):
player.SetQuickPage(player.GetQuickPage()+1)def SetToggleButtonEvent(self, eButton, kEventFunc):
self.toggleButtonDict[eButton].SetEvent(kEventFunc)def SetItemToolTip(self, tooltipItem):
self.tooltipItem = tooltipItemdef SetSkillToolTip(self, tooltipSkill):
self.tooltipSkill = tooltipSkill
self.curSkillButton.SetSkillToolTip(self.tooltipSkill)## Mouse Image
def ShowMouseImage(self):
self.mouseImage.SetTop()
self.mouseImage.Show()def HideMouseImage(self):
player.SetQuickCameraMode(FALSE)
self.mouseImage.Hide()## Gauge
def RefreshStatus(self):
curHP = player.GetStatus(player.HP)
maxHP = player.GetStatus(player.MAX_HP)
curSP = player.GetStatus(player.SP)
maxSP = player.GetStatus(player.MAX_SP)
curEXP = unsigned32(player.GetStatus(player.EXP))
nextEXP = unsigned32(player.GetStatus(player.NEXT_EXP))
recoveryHP = player.GetStatus(player.HP_RECOVERY)
recoverySP = player.GetStatus(player.SP_RECOVERY)
self.RefreshStamina()self.SetHP(curHP, recoveryHP, maxHP)
self.SetSP(curSP, recoverySP, maxSP)
self.SetExperience(curEXP, nextEXP)
def RefreshStamina(self):
curST = player.GetStatus(player.STAMINA)
maxST = player.GetStatus(player.MAX_STAMINA)
self.SetST(curST, maxST)def RefreshSkill(self):
self.curSkillButton.RefreshSkill()
for button in self.selectSkillButtonList:
button.RefreshSkill()def SetHP(self, curPoint, recoveryPoint, maxPoint):
curPoint = min(curPoint, maxPoint)
if maxPoint > 0:
self.hpGauge.SetPercentage(curPoint, maxPoint)
self.tooltipHP.SetText("%s : %d / %d" % (localeInfo.TASKBAR_HP, curPoint, maxPoint))if 0 == recoveryPoint:
self.hpRecoveryGaugeBar.Hide()
else:
destPoint = min(maxPoint, curPoint + recoveryPoint)
newWidth = int(self.GAUGE_WIDTH * (float(destPoint) / float(maxPoint)))
self.hpRecoveryGaugeBar.SetSize(newWidth, self.GAUGE_HEIGHT)
self.hpRecoveryGaugeBar.Show()def SetSP(self, curPoint, recoveryPoint, maxPoint):
curPoint = min(curPoint, maxPoint)
if maxPoint > 0:
self.mpGauge.SetPercentage(curPoint, maxPoint)
self.tooltipSP.SetText("%s : %d / %d" % (localeInfo.TASKBAR_SP, curPoint, maxPoint))if 0 == recoveryPoint:
self.spRecoveryGaugeBar.Hide()
else:
destPoint = min(maxPoint, curPoint + recoveryPoint)
newWidth = int(self.GAUGE_WIDTH * (float(destPoint) / float(maxPoint)))
self.spRecoveryGaugeBar.SetSize(newWidth, self.GAUGE_HEIGHT)
self.spRecoveryGaugeBar.Show()def SetST(self, curPoint, maxPoint):
curPoint = min(curPoint, maxPoint)
if maxPoint > 0:
self.stGauge.SetPercentage(curPoint, maxPoint)
self.tooltipST.SetText("%s : %d / %d" % (localeInfo.TASKBAR_ST, curPoint, maxPoint))def SetExperience(self, curPoint, maxPoint):
curPoint = min(curPoint, maxPoint)
curPoint = max(curPoint, 0)
maxPoint = max(maxPoint, 0)quarterPoint = maxPoint / 4
FullCount = 0if 0 != quarterPoint:
FullCount = min(4, curPoint / quarterPoint)for i in xrange(4):
self.expGauge.Hide()for i in xrange(FullCount):
self.expGauge.SetRenderingRect(0.0, 0.0, 0.0, 0.0)
self.expGauge.Show()if 0 != quarterPoint:
if FullCount < 4:
Percentage = float(curPoint % quarterPoint) / quarterPoint - 1.0
self.expGauge[FullCount].SetRenderingRect(0.0, Percentage, 0.0, 0.0)
self.expGauge[FullCount].Show()#####
self.tooltipEXP.SetText("%s : %.2f%%" % (localeInfo.TASKBAR_EXP, float(curPoint) / max(1, float(maxPoint)) * 100))
## QuickSlot
def RefreshQuickSlot(self):pageNum = player.GetQuickPage()
try:
self.quickPageNumImageBox.LoadImage(TaskBar.QUICKPAGE_NUMBER_FILENAME[pageNum])
except:
passstartNumber = 0
for slot in self.quickslot:for i in xrange(4):
slotNumber = i+startNumber
(Type, Position) = player.GetLocalQuickSlot(slotNumber)
if player.SLOT_TYPE_NONE == Type:
slot.ClearSlot(slotNumber)
continueif player.SLOT_TYPE_INVENTORY == Type:
itemIndex = player.GetItemIndex(Position)
itemCount = player.GetItemCount(Position)
if itemCount <= 1:
itemCount = 0
## 자동물약 (#72723, #72724) 특수처리 - 아이템인데도 슬롯에 활성화/비활성화 표시를 위한 작업임 - [hyo]
if constInfo.IS_AUTO_POTION(itemIndex):
# metinSocket - [0] : 활성화 여부, [1] : 사용한 양, [2] : 최대 용량
metinSocket = [player.GetItemMetinSocket(Position, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]
if 0 != int(metinSocket[0]):
slot.ActivateSlot(slotNumber)
else:
slot.DeactivateSlot(slotNumber)
slot.SetItemSlot(slotNumber, itemIndex, itemCount)elif player.SLOT_TYPE_SKILL == Type:
skillIndex = player.GetSkillIndex(Position)
if 0 == skillIndex:
slot.ClearSlot(slotNumber)
continueskillType = skill.GetSkillType(skillIndex)
if skill.SKILL_TYPE_GUILD == skillType:
import guild
skillGrade = 0
skillLevel = guild.GetSkillLevel(Position)else:
skillGrade = player.GetSkillGrade(Position)
skillLevel = player.GetSkillLevel(Position)slot.SetSkillSlotNew(slotNumber, skillIndex, skillGrade, skillLevel)
slot.SetSlotCountNew(slotNumber, skillGrade, skillLevel)
slot.SetCoverButton(slotNumber)## NOTE : CoolTime 체크
if player.IsSkillCoolTime(Position):
(coolTime, elapsedTime) = player.GetSkillCoolTime(Position)
slot.SetSlotCoolTime(slotNumber, coolTime, elapsedTime)## NOTE : Activate 되어 있다면 아이콘도 업데이트
if player.IsSkillActive(Position):
slot.ActivateSlot(slotNumber)elif player.SLOT_TYPE_EMOTION == Type:
emotionIndex = Position
slot.SetEmotionSlot(slotNumber, emotionIndex)
slot.SetCoverButton(slotNumber)
slot.SetSlotCount(slotNumber, 0)slot.RefreshSlot()
startNumber += 4def canAddQuickSlot(self, Type, slotNumber):
if player.SLOT_TYPE_INVENTORY == Type:
itemIndex = player.GetItemIndex(slotNumber)
return item.CanAddToQuickSlotItem(itemIndex)return TRUE
def AddQuickSlot(self, localSlotIndex):
AttachedSlotType = mouseModule.mouseController.GetAttachedType()
AttachedSlotNumber = mouseModule.mouseController.GetAttachedSlotNumber()
AttachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex()if player.SLOT_TYPE_QUICK_SLOT == AttachedSlotType:
player.RequestMoveGlobalQuickSlotToLocalQuickSlot(AttachedSlotNumber, localSlotIndex)elif player.SLOT_TYPE_EMOTION == AttachedSlotType:
player.RequestAddLocalQuickSlot(localSlotIndex, AttachedSlotType, AttachedItemIndex)
elif TRUE == self.canAddQuickSlot(AttachedSlotType, AttachedSlotNumber):
## Online Code
player.RequestAddLocalQuickSlot(localSlotIndex, AttachedSlotType, AttachedSlotNumber)
mouseModule.mouseController.DeattachObject()
self.RefreshQuickSlot()def SelectEmptyQuickSlot(self, slotIndex):
if TRUE == mouseModule.mouseController.isAttached():
self.AddQuickSlot(slotIndex)def SelectItemQuickSlot(self, localQuickSlotIndex):
if TRUE == mouseModule.mouseController.isAttached():
self.AddQuickSlot(localQuickSlotIndex)else:
globalQuickSlotIndex=player.LocalQuickSlotIndexToGlobalQuickSlotIndex(localQuickSlotIndex)
mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_QUICK_SLOT, globalQuickSlotIndex, globalQuickSlotIndex)def UnselectItemQuickSlot(self, localSlotIndex):
if FALSE == mouseModule.mouseController.isAttached():
player.RequestUseLocalQuickSlot(localSlotIndex)
returnelif mouseModule.mouseController.isAttached():
mouseModule.mouseController.DeattachObject()
return
def OnUseSkill(self, usedSlotIndex, coolTime):QUICK_SLOT_SLOT_COUNT = 4
slotIndex = 0## Current Skill Button
if usedSlotIndex == self.curSkillButton.GetSlotIndex():
self.curSkillButton.Activate(coolTime)## Quick Slot
for slotWindow in self.quickslot:for i in xrange(QUICK_SLOT_SLOT_COUNT):
(Type, Position) = player.GetLocalQuickSlot(slotIndex)
if Type == player.SLOT_TYPE_SKILL:
if usedSlotIndex == Position:
slotWindow.SetSlotCoolTime(slotIndex, coolTime)
returnslotIndex += 1
def OnActivateSkill(self, usedSlotIndex):
slotIndex = 0## Current Skill Button
if usedSlotIndex == self.curSkillButton.GetSlotIndex():
self.curSkillButton.Deactivate()## Quick Slot
for slotWindow in self.quickslot:for i in xrange(4):
(Type, Position) = player.GetLocalQuickSlot(slotIndex)
if Type == player.SLOT_TYPE_SKILL:
if usedSlotIndex == Position:
slotWindow.ActivateSlot(slotIndex)
returnslotIndex += 1
def OnDeactivateSkill(self, usedSlotIndex):
slotIndex = 0## Current Skill Button
if usedSlotIndex == self.curSkillButton.GetSlotIndex():
self.curSkillButton.Deactivate()## Quick Slot
for slotWindow in self.quickslot:for i in xrange(4):
(Type, Position) = player.GetLocalQuickSlot(slotIndex)
if Type == player.SLOT_TYPE_SKILL:
if usedSlotIndex == Position:
slotWindow.DeactivateSlot(slotIndex)
returnslotIndex += 1
## ToolTip
def OverInItem(self, slotNumber):
if mouseModule.mouseController.isAttached():
return(Type, Position) = player.GetLocalQuickSlot(slotNumber)
if player.SLOT_TYPE_INVENTORY == Type:
self.tooltipItem.SetInventoryItem(Position)
self.tooltipSkill.HideToolTip()elif player.SLOT_TYPE_SKILL == Type:
skillIndex = player.GetSkillIndex(Position)
skillType = skill.GetSkillType(skillIndex)if skill.SKILL_TYPE_GUILD == skillType:
import guild
skillGrade = 0
skillLevel = guild.GetSkillLevel(Position)else:
skillGrade = player.GetSkillGrade(Position)
skillLevel = player.GetSkillLevel(Position)self.tooltipSkill.SetSkillNew(Position, skillIndex, skillGrade, skillLevel)
self.tooltipItem.HideToolTip()def OverOutItem(self):
if 0 != self.tooltipItem:
self.tooltipItem.HideToolTip()
if 0 != self.tooltipSkill:
self.tooltipSkill.HideToolTip()def OnUpdate(self):
if app.GetGlobalTime() - self.lastUpdateQuickSlot > 500:
self.lastUpdateQuickSlot = app.GetGlobalTime()
self.RefreshQuickSlot()if TRUE == self.hpGaugeBoard.IsIn():
self.tooltipHP.Show()
else:
self.tooltipHP.Hide()if TRUE == self.mpGaugeBoard.IsIn():
self.tooltipSP.Show()
else:
self.tooltipSP.Hide()if TRUE == self.stGaugeBoard.IsIn():
self.tooltipST.Show()
else:
self.tooltipST.Hide()
if TRUE == self.expGaugeBoard.IsIn():
self.tooltipEXP.Show()
else:
self.tooltipEXP.Hide()
## Skill
def ToggleLeftMouseButtonModeWindow(self):wndMouseButtonMode = self.mouseModeButtonList[self.MOUSE_BUTTON_LEFT]
if TRUE == wndMouseButtonMode.IsShow():
wndMouseButtonMode.Hide()
else:
wndMouseButtonMode.Show()def ToggleRightMouseButtonModeWindow(self):
wndMouseButtonMode = self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT]
if TRUE == wndMouseButtonMode.IsShow():
wndMouseButtonMode.Hide()
self.CloseSelectSkill()else:
wndMouseButtonMode.Show()
self.OpenSelectSkill()def OpenSelectSkill(self):
PAGE_SLOT_COUNT = 6
(xSkillButton, y) = self.curSkillButton.GetGlobalPosition()
y -= (37 + 32 + 1)for key in self.skillCategoryNameList:
appendCount = 0
startNumber = self.skillPageStartSlotIndexDict[key]
x = xSkillButtongetSkillIndex=player.GetSkillIndex
getSkillLevel=player.GetSkillLevel
for i in xrange(PAGE_SLOT_COUNT):skillIndex = getSkillIndex(startNumber+i)
skillLevel = getSkillLevel(startNumber+i)if 0 == skillIndex:
continue
if 0 == skillLevel:
continue
if skill.IsStandingSkill(skillIndex):
continue## FIXME : 스킬 하나당 슬롯 하나씩 할당하는건 아무리 봐도 부하가 크다.
## 이 부분은 시간을 나면 고치도록. - [levites]
skillButton = self.SkillButton()
skillButton.SetSkill(startNumber+i)
skillButton.SetPosition(x, y)
skillButton.SetSkillEvent(ui.__mem_func__(self.CloseSelectSkill), startNumber+i+1)
skillButton.SetSkillToolTip(self.tooltipSkill)
skillButton.SetTop()
skillButton.Show()
self.selectSkillButtonList.append(skillButton)appendCount += 1
x -= 32if appendCount > 0:
y -= 32def CloseSelectSkill(self, slotIndex=-1):
self.mouseModeButtonList[self.MOUSE_BUTTON_RIGHT].Hide()
for button in self.selectSkillButtonList:
button.Destroy()self.selectSkillButtonList = []
if -1 != slotIndex:
self.curSkillButton.Show()
self.curMouseModeButton[self.MOUSE_BUTTON_RIGHT].Hide()
player.SetMouseFunc(player.MBT_RIGHT, player.MBF_SKILL)
player.ChangeCurrentSkillNumberOnly(slotIndex-1)
else:
self.curSkillButton.Hide()
self.curMouseModeButton[self.MOUSE_BUTTON_RIGHT].Show()def SelectMouseButtonEvent(self, dir, event):
SetMouseButtonSetting(dir, event)self.CloseSelectSkill()
self.mouseModeButtonList[dir].Hide()btn = 0
type = self.NONE
func = self.NONE
tooltip_text = ""
if self.MOUSE_BUTTON_LEFT == dir:
type = player.MBT_LEFTelif self.MOUSE_BUTTON_RIGHT == dir:
type = player.MBT_RIGHTif self.EVENT_MOVE == event:
btn = self.mouseModeButtonList[dir].GetChild("button_move")
func = player.MBF_MOVE
tooltip_text = localeInfo.TASKBAR_MOVE
elif self.EVENT_ATTACK == event:
btn = self.mouseModeButtonList[dir].GetChild("button_attack")
func = player.MBF_ATTACK
tooltip_text = localeInfo.TASKBAR_ATTACK
elif self.EVENT_AUTO == event:
btn = self.mouseModeButtonList[dir].GetChild("button_auto_attack")
func = player.MBF_AUTO
tooltip_text = localeInfo.TASKBAR_AUTO
elif self.EVENT_MOVE_AND_ATTACK == event:
btn = self.mouseModeButtonList[dir].GetChild("button_move_and_attack")
func = player.MBF_SMART
tooltip_text = localeInfo.TASKBAR_ATTACK
elif self.EVENT_CAMERA == event:
btn = self.mouseModeButtonList[dir].GetChild("button_camera")
func = player.MBF_CAMERA
tooltip_text = localeInfo.TASKBAR_CAMERA
elif self.EVENT_SKILL == event:
btn = self.mouseModeButtonList[dir].GetChild("button_skill")
func = player.MBF_SKILL
tooltip_text = localeInfo.TASKBAR_SKILLif 0 != btn:
self.curMouseModeButton[dir].SetToolTipText(tooltip_text, 0, -18)
self.curMouseModeButton[dir].SetUpVisual(btn.GetUpVisualFileName())
self.curMouseModeButton[dir].SetOverVisual(btn.GetOverVisualFileName())
self.curMouseModeButton[dir].SetDownVisual(btn.GetDownVisualFileName())
self.curMouseModeButton[dir].Show()player.SetMouseFunc(type, func)
def OnChangeCurrentSkill(self, skillSlotNumber):
self.curSkillButton.SetSkill(skillSlotNumber)
self.curSkillButton.Show()
self.curMouseModeButton[self.MOUSE_BUTTON_RIGHT].Hide()Try with this, if you still got errors post them there
-
that's why i asked you for uitaskbar.py too
-
remove it
{
"name" : "VectorsEfsunButton",
"type" : "button","x" : SCREEN_WIDTH - 178,
"y" : 3 + Y_ADD_POSITION,"tooltip_text" : "Efsun Botu",
"default_image" : "d:/ymir work/ui/Vectorsefs1.tga",
"over_image" : "d:/ymir work/ui/Vectorsefs2.tga",
"down_image" : "d:/ymir work/ui/Vectorsefs1.tga",
}, -
leave here uitaskbar.py and taskbar.py from locale/country/ui
-
You probably use a leaked version, try this function you have nothing to lose, also change define with yours if it's different.
Remove empire flag
in Community Support - Questions & Answers
Posted
What are you trying to do is pretty simple
open instancebaseeffect.cpp from userinterface
search:
__EffectContainer_AttachEffect(EFFECT_EMPIRE+eEmpire);
Look if it's member of void CInstanceBase::__AttachEmpireEffect(DWORD eEmpire)
Add below(up to): __EffectContainer_AttachEffect(EFFECT_EMPIRE+eEmpire);
if (IsPC())
return;
Done.