wie bereits in der Überschrift steht, möchte ich gerne den EQ Changer:

in meinen Clienten (40k von Viruz) einbauen. Nun kommen folgende Probleme:
#1: Hier erstmal die Dateien die dafür benötigt sind: (evt. muss da was
geändert werden.
ROOT:
constinfo.py:
Code:
FAST_PAGE = 1 FAST_EQUIP = 0
Code:
onPressKeyDict[app.DIK_F7] = lambda : self.__quikeqchange() def __quikeqchange(self): import uifastequip self.uuifastequipDlg = uifastequip.changeequip() self.uuifastequipDlg.Show()
Code:
import snd
import item
import chat
import player
import locale
import grpText
import uiRefine
import constInfo
import uiToolTip
import mouseModule
import uiAttachMetin
import uiScriptLocale
class changeequip(ui.ScriptWindow):
def __init__(self):
import exception
ui.ScriptWindow.__init__(self)
self.wndEquip = None
self.tokens = None
self.tooltipItem = uiToolTip.ItemToolTip()
self.tooltipItem.Hide()
if constInfo.FAST_PAGE == 1:
self.saveName = "lib/FastEquipPage1.pyc"
elif constInfo.FAST_PAGE == 2:
self.saveName = "lib/FastEquipPage2.pyc"
elif constInfo.FAST_PAGE == 3:
self.saveName = "lib/FastEquipPage3.pyc"
elif constInfo.FAST_PAGE == 4:
self.saveName = "lib/FastEquipPage4.pyc"
def __del__(self):
ui.ScriptWindow.__del__(self)
def Show(self):
self.__LoadWindow()
ui.ScriptWindow.Show(self)
def Close(self):
constInfo.FAST_EQUIP = 0
snd.PlaySound("sound/ui/click.wav")
self.Hide()
def __LoadWindow(self):
try:
pyScrLoader = ui.PythonScriptLoader()
pyScrLoader.LoadScriptFile(self, "uiscript/fastequip_window.py")
except:
import exception
exception.Abort("CostumeWindow.LoadWindow.LoadObject")
self.wndEquip = self.GetChild("equipslot")
self.bottone_change = self.GetChild("change_button")
self.clear_button = self.GetChild("clear_button")
self.TitleBar = self.GetChild("TitleBar")
self.pag1_button = self.GetChild("page1_button")
self.pag2_button = self.GetChild("page2_button")
self.pag3_button = self.GetChild("page3_button")
self.pag4_button = self.GetChild("page4_button")
self.TitleBar.SetCloseEvent(ui.__mem_func__(self.Close))
self.wndEquip.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectItemSlot))
self.wndEquip.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot))
self.wndEquip.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
self.wndEquip.SetOverOutItemEvent(ui.__mem_func__(self.OnOverOutItem))
self.bottone_change.SetEvent(ui.__mem_func__(self.__change_button))
self.clear_button.SetEvent(ui.__mem_func__(self.__clear_button))
self.pag1_button.SAFE_SetEvent(self.__pag1_button)
self.pag2_button.SetEvent(ui.__mem_func__(self.__pag2_button))
self.pag3_button.SetEvent(ui.__mem_func__(self.__pag3_button))
self.pag4_button.SetEvent(ui.__mem_func__(self.__pag4_button))
if os.path.exists(self.saveName):
self.tokens = open(self.saveName, "r").read().split()
else:
open(self.saveName, "w").write("@\t@\t@\t@\t@\t@\t@\t@\t@")
button = self.GetChild("page1_button")
button.Down()
def __clear_button(self):
if constInfo.FAST_PAGE == 1:
self.saveName = "lib/FastEquipPage1.pyc"
if os.path.exists(self.saveName):
os.remove(self.saveName)
open(self.saveName, "w").write("@\t@\t@\t@\t@\t@\t@\t@\t@")
elif constInfo.FAST_PAGE == 2:
self.saveName = "lib/FastEquipPage2.pyc"
if os.path.exists(self.saveName):
os.remove(self.saveName)
open(self.saveName, "w").write("@\t@\t@\t@\t@\t@\t@\t@\t@")
elif constInfo.FAST_PAGE == 3:
self.saveName = "lib/FastEquipPage3.pyc"
if os.path.exists(self.saveName):
os.remove(self.saveName)
open(self.saveName, "w").write("@\t@\t@\t@\t@\t@\t@\t@\t@")
elif constInfo.FAST_PAGE == 4:
self.saveName = "lib/FastEquipPage4.pyc"
if os.path.exists(self.saveName):
os.remove(self.saveName)
open(self.saveName, "w").write("@\t@\t@\t@\t@\t@\t@\t@\t@")
def __pag1_button(self):
constInfo.FAST_PAGE = 1
button2 = self.GetChild("page2_button")
button3 = self.GetChild("page3_button")
button4 = self.GetChild("page4_button")
button2.SetUp()
button3.SetUp()
button4.SetUp()
self.saveName = "lib/FastEquipPage1.pyc"
if os.path.exists(self.saveName):
open(self.saveName, "r").read().split()
else:
open(self.saveName, "w").write("@\t@\t@\t@\t@\t@\t@\t@\t@")
def __pag2_button(self):
constInfo.FAST_PAGE = 2
button1 = self.GetChild("page1_button")
button3 = self.GetChild("page3_button")
button4 = self.GetChild("page4_button")
button1.SetUp()
button3.SetUp()
button4.SetUp()
self.saveName = "lib/FastEquipPage2.pyc"
if os.path.exists(self.saveName):
open(self.saveName, "r").read().split()
else:
open(self.saveName, "w").write("@\t@\t@\t@\t@\t@\t@\t@\t@")
def __pag3_button(self):
constInfo.FAST_PAGE = 3
button1 = self.GetChild("page1_button")
button2 = self.GetChild("page2_button")
button4 = self.GetChild("page4_button")
button1.SetUp()
button2.SetUp()
button4.SetUp()
self.saveName = "lib/FastEquipPage3.pyc"
if os.path.exists(self.saveName):
open(self.saveName, "r").read().split()
else:
open(self.saveName, "w").write("@\t@\t@\t@\t@\t@\t@\t@\t@")
def __pag4_button(self):
constInfo.FAST_PAGE = 4
button1 = self.GetChild("page1_button")
button2 = self.GetChild("page2_button")
button3 = self.GetChild("page3_button")
button1.SetUp()
button2.SetUp()
button3.SetUp()
self.saveName = "lib/FastEquipPage4.pyc"
if os.path.exists(self.saveName):
open(self.saveName, "r").read().split()
else:
open(self.saveName, "w").write("@\t@\t@\t@\t@\t@\t@\t@\t@")
def __change_button(self):
for i in range(1,10):
if self.tokens[i-1] != "@":
net.SendItemUsePacket(int(self.tokens[i-1]))
def OverInItem(self, slotNumber):
if self.tooltipItem:
self.tooltipItem.SetInventoryItem(int(self.tokens[slotNumber-1]))
def OnOverOutItem(self):
if self.tooltipItem:
self.tooltipItem.HideToolTip()
def SelectItemSlot(self, itemSlotIndex):
isAttached = mouseModule.mouseController.isAttached()
if isAttached:
attachedSlotType = mouseModule.mouseController.GetAttachedType()
attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
itemIndex = player.GetItemIndex(attachedSlotPos)
itemCount = player.GetItemCount(attachedSlotPos)
item.SelectItem(itemIndex)
itemType = item.GetItemType()
itemSubType = item.GetItemSubType()
if item.IsWearableFlag(item.WEARABLE_BODY):
self.tokens[1-1] = attachedSlotPos
snd.PlaySound("sound/ui/equip_metal_armor.wav")
elif item.IsWearableFlag(item.WEARABLE_HEAD):
self.tokens[2-1] = attachedSlotPos
snd.PlaySound("sound/ui/drop.wav")
elif item.IsWearableFlag(item.WEARABLE_FOOTS):
self.tokens[3-1] = attachedSlotPos
snd.PlaySound("sound/ui/drop.wav")
elif item.IsWearableFlag(item.WEARABLE_WRIST):
self.tokens[4-1] = attachedSlotPos
snd.PlaySound("sound/ui/drop.wav")
elif item.IsWearableFlag(item.WEARABLE_WEAPON):
self.tokens[5-1] = attachedSlotPos
if itemSubType == 2:
snd.PlaySound("sound/ui/equip_bow.wav")
else:
snd.PlaySound("sound/ui/equip_metal_weapon.wav")
elif item.IsWearableFlag(item.WEARABLE_NECK):
self.tokens[6-1] = attachedSlotPos
snd.PlaySound("sound/ui/equip_ring_amulet.wav")
elif item.IsWearableFlag(item.WEARABLE_EAR):
self.tokens[7-1] = attachedSlotPos
snd.PlaySound("sound/ui/equip_ring_amulet.wav")
elif item.IsWearableFlag(item.WEARABLE_SHIELD):
self.tokens[8-1] = attachedSlotPos
snd.PlaySound("sound/ui/drop.wav")
elif item.IsWearableFlag(item.WEARABLE_ARROW):
self.tokens[9-1] = attachedSlotPos
snd.PlaySound("sound/ui/drop.wav")
else:
return
open(self.saveName, "w").write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s" % tuple(self.tokens))
mouseModule.mouseController.DeattachObject()
def OnUpdate(self):
tokens = open(self.saveName, "r").read().split()
self.tokens = tokens
for i in range(1,10):
if tokens[i-1] == "@":
self.wndEquip.SetItemSlot(i, 0, 0)
else:
itemIndex = player.GetItemIndex(int(tokens[i-1]))
if itemIndex != 0:
item.SelectItem(itemIndex)
if i == 1 and item.IsWearableFlag(item.WEARABLE_BODY):
self.wndEquip.SetItemSlot(i, itemIndex, 0)
elif i == 2 and item.IsWearableFlag(item.WEARABLE_HEAD):
self.wndEquip.SetItemSlot(i, itemIndex, 0)
elif i == 3 and item.IsWearableFlag(item.WEARABLE_FOOTS):
self.wndEquip.SetItemSlot(i, itemIndex, 0)
elif i == 4 and item.IsWearableFlag(item.WEARABLE_WRIST):
self.wndEquip.SetItemSlot(i, itemIndex, 0)
elif i == 5 and item.IsWearableFlag(item.WEARABLE_WEAPON):
self.wndEquip.SetItemSlot(i, itemIndex, 0)
elif i == 6 and item.IsWearableFlag(item.WEARABLE_NECK):
self.wndEquip.SetItemSlot(i, itemIndex, 0)
elif i == 7 and item.IsWearableFlag(item.WEARABLE_EAR):
self.wndEquip.SetItemSlot(i, itemIndex, 0)
elif i == 8 and item.IsWearableFlag(item.WEARABLE_SHIELD):
self.wndEquip.SetItemSlot(i, itemIndex, 0)
elif i == 9 and item.IsWearableFlag(item.WEARABLE_ARROW):
self.wndEquip.SetItemSlot(i, itemIndex, 0)
else:
self.wndEquip.SetItemSlot(i, 0, 0)
self.tokens[i-1] = "@"
open(self.saveName, "w").write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s" % tuple(self.tokens))
continue
else:
self.wndEquip.SetItemSlot(i, 0, 0)
def OnPressEscapeKey(self):
self.Close()
snd.PlaySound("sound/ui/click.wav")
return TRUE
# -->
fastequip_window:
Code:
## -- ©2013, ®iWizz™. --
## ---------------------
# --<
import item
import uiScriptLocale
window = {
"name" : "FastEquipWindow",
"x" : SCREEN_WIDTH - 360,
"y" : 140,
"style" : ("movable", "float",),
"width" : 212,
"height" : 290,
"children" :
(
{
"name" : "board",
"type" : "board",
"style" : ("attach",),
"x" : 0,
"y" : 0,
"width" : 212,
"height" : 290,
"children" :
(
{
"name" : "TitleBar",
"type" : "titlebar",
"style" : ("attach",),
"x" : 6,
"y" : 6,
"width" : 200,
"color" : "yellow",
"children" :
(
{ "name":"TitleName", "type":"text", "x":100, "y":3, "text":uiScriptLocale.FAST_EQUIP, "text_horizontal_align":"center" },
),
},
{
"name" : "equip_Base",
"type" : "image",
"x" : 27,
"y" : 38,
"image" : "d:/ymir work/ui/game/windows/fastequip_base.sub",
},
{
"name" : "equipslot",
"type" : "slot",
"x" : 30,
"y" : 41,
"width" : 145,
"height" : 172,
"slot" : (
{"index":1, "x":41, "y":37, "width":32, "height":64},
{"index":2, "x":41, "y":2, "width":32, "height":32},
{"index":3, "x":41, "y":145, "width":32, "height":32},
{"index":4, "x":75, "y":67, "width":32, "height":32},
{"index":5, "x":3, "y":3, "width":32, "height":96},
{"index":6, "x":114, "y":84, "width":32, "height":32},
{"index":7, "x":114, "y":52, "width":32, "height":32},
{"index":8, "x":75, "y":35, "width":32, "height":32},
{"index":9, "x":114, "y":1, "width":32, "height":32},
),
},
{
"name" : "change_button",
"type" : "button",
"x" : 16,
"y" : 235,
"text" : "Cambia",
"default_image" : "d:/ymir work/ui/public/Large_Button_01.sub",
"over_image" : "d:/ymir work/ui/public/Large_Button_02.sub",
"down_image" : "d:/ymir work/ui/public/Large_Button_03.sub",
},
{
"name" : "clear_button",
"type" : "button",
"x" : 109,
"y" : 235,
"text" : "Reset",
"default_image" : "d:/ymir work/ui/public/Large_Button_01.sub",
"over_image" : "d:/ymir work/ui/public/Large_Button_02.sub",
"down_image" : "d:/ymir work/ui/public/Large_Button_03.sub",
},
{
"name" : "page1_button",
"type" : "radio_button",
"x" : 10,
"y" : 260,
"text" : "Equip 1",
"default_image" : "d:/ymir work/ui/public/Small_Button_01.sub",
"over_image" : "d:/ymir work/ui/public/Small_Button_02.sub",
"down_image" : "d:/ymir work/ui/public/Small_Button_03.sub",
},
{
"name" : "page2_button",
"type" : "radio_button",
"x" : 60,
"y" : 260,
"text" : "Equip 2",
"default_image" : "d:/ymir work/ui/public/Small_Button_01.sub",
"over_image" : "d:/ymir work/ui/public/Small_Button_02.sub",
"down_image" : "d:/ymir work/ui/public/Small_Button_03.sub",
},
{
"name" : "page3_button",
"type" : "radio_button",
"x" : 110,
"y" : 260,
"text" : "Equip 3",
"default_image" : "d:/ymir work/ui/public/Small_Button_01.sub",
"over_image" : "d:/ymir work/ui/public/Small_Button_02.sub",
"down_image" : "d:/ymir work/ui/public/Small_Button_03.sub",
},
{
"name" : "page4_button",
"type" : "radio_button",
"x" : 160,
"y" : 260,
"text" : "Equip 4",
"default_image" : "d:/ymir work/ui/public/Small_Button_01.sub",
"over_image" : "d:/ymir work/ui/public/Small_Button_02.sub",
"down_image" : "d:/ymir work/ui/public/Small_Button_03.sub",
},
),
},
),
}
# -->
fastequip_base:
Code:
title subImage version 1.0 image "fastequip_window.dds" left 0 top 152 right 156 bottom 340
Da ist die .dds drin
PS: Bei meinem Clienten ist keine ymir work.eix/epk drin! Wichtig?!
Sooo, das dazu, jetzt sofern ich das alles so einfüge, die
Code:
import locale
Code:
import localeInfo as locale
Ja und dann die ymir work einfach gepackt als eix/epk und dann beim
starten erscheint folgende Meldung:
Bitte um Hilfe, finde das echt genial für den ServerQuote:
![]()






