You last visited: Today at 20:52
Advertisement
[EQ Changer] Einfügen in den 40k Clienten
Discussion on [EQ Changer] Einfügen in den 40k Clienten within the Metin2 Private Server forum part of the Metin2 category.
02/12/2015, 12:15
#1
elite*gold: 0
Join Date: Feb 2015
Posts: 41
Received Thanks: 3
[EQ Changer] Einfügen in den 40k Clienten
Hallo Com,
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
game.py:
Code:
onPressKeyDict[app.DIK_F7] = lambda : self.__quikeqchange()
def __quikeqchange(self):
import uifastequip
self.uuifastequipDlg = uifastequip.changeequip()
self.uuifastequipDlg.Show()
uifastequip.py:
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
# -->
uiscript
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",
},
),
},
),
}
# -->
ymir work\ui\game\windows
fastequip_base:
Code:
title subImage
version 1.0
image "fastequip_window.dds"
left 0
top 152
right 156
bottom 340
ymir work\ui
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
zu
Code:
import localeInfo as locale
geändert, wegen 40k right?
Ja und dann die ymir work einfach gepackt als eix/epk und dann beim
starten erscheint folgende Meldung:
Quote:
Bitte um Hilfe, finde das echt genial für den Server
Attached Files
EQ Changer.zip
(149.0 KB, 86 views)
Zum abändern.zip
(17.8 KB, 51 views)
02/12/2015, 13:06
#2
elite*gold: 40
Join Date: Nov 2009
Posts: 1,159
Received Thanks: 442
ymir work ist ein Ordner in der locale_de. Locale_de > locale > de > ymir work und dort findest Du die restlichen Verzeichnisse. Da müssen die entsprechenden Dateien herein.
02/12/2015, 13:09
#3
elite*gold: 2785
Join Date: Dec 2014
Posts: 403
Received Thanks: 1,354
So Guten Tag,
Ich habe es dir mal eingebaut, und lade dir auch alles als Anhang mit hoch.
Was du machen musst:
entpacke deine root und füge einfach alles ein! alle Ordner und sachen in die root rein und dann packen, du musst keine neue eix/epk erstellen dafür.
Testen konnte ich es nicht, da ich auf Arbeit bin, fals fehler kommen, hier rein posten ich kümmerre mich dann.
Mit freundlichen Grüßen
.Kori
Attached Files
root.rar
(172.0 KB, 65 views)
02/12/2015, 13:50
#4
elite*gold: 0
Join Date: Feb 2015
Posts: 41
Received Thanks: 3
Quote:
Originally Posted by
DerForenLeser
ymir work ist ein Ordner in der locale_de. Locale_de > locale > de > ymir work und dort findest Du die restlichen Verzeichnisse. Da müssen die entsprechenden Dateien herein.
Auch da ist keine ymir work vorhanden, bei diesem Clienten.
Quote:
Originally Posted by
.K0rí
So Guten Tag,
Ich habe es dir mal eingebaut, und lade dir auch alles als Anhang mit hoch.
Was du machen musst:
entpacke deine root und füge einfach alles ein! alle Ordner und sachen in die root rein und dann packen, du musst keine neue eix/epk erstellen dafür.
Testen konnte ich es nicht, da ich auf Arbeit bin, fals fehler kommen, hier rein posten ich kümmerre mich dann.
Mit freundlichen Grüßen
.Kori
Habe alles in die Root gepackt samt uiscipt Ordner etc. allerdings InGame
nichts zu finden. Laut Video muss man ja den Button unten in der Chat-
Leiste drücken in der Mitte, aber da erscheint leider rein gar nichts.
02/12/2015, 14:57
#5
elite*gold: 2785
Join Date: Dec 2014
Posts: 403
Received Thanks: 1,354
onPressKeyDict[app.DIK_F7] = lambda : self.__quikeqchange()
Mit F7 holst du es
02/12/2015, 15:05
#6
elite*gold: 0
Join Date: Jan 2015
Posts: 94
Received Thanks: 6
Danke .K0ri für deine Hilfe
Aber kannst du das auch umcoden das man es mit einen button öffnet?
MFG Team Triona2
02/15/2015, 11:48
#7
elite*gold: 0
Join Date: Feb 2015
Posts: 41
Received Thanks: 3
@Push, hat sich immer noch nicht geklärt, weiß jemand Rat?
Similar Threads
[SUCHE]Levelanzeige im Clienten einfügen
08/07/2012 - Metin2 Private Server - 7 Replies
Hallo Leute, ich suche ein Tutorial,
wie man eine Levelanzeige in einen Clienten einfügt.
Habe die game_2089 daran sollte es wohl nicht liegen.
Und deshalb meine Frage kennt jemand ein Tutorial?
Finde nur ****** wo man alignment gegen Level tauschen soll.
Maps in 2007ner clienten einfügen
11/13/2010 - Metin2 Private Server - 1 Replies
hi,
brauche ganz schnelle hilfe ich habe computerkrank SF's und will jez dazu mir nen 2007ner clienten modden aber das problen ist ich kriege die maps nicht rein
fragen:
-wo sind die ganzen maps
-wie kriege ich sie in den 2007ner clienten rein
was ich getan habe:
-season 1+2 in den pack ordner des 2007ner kopiert
Waffen im Clienten einfügen HELP!
11/11/2010 - Metin2 Private Server - 2 Replies
Hallo ihr da draußen
Ich verzweifele seid jetzt genau einem Tag daran Waffen im cilenten einzufügen.
Ich habe sie in der db und in der item_proto im clienten. Ich habe sie auch in icon.epk und item.epk eingefügt, sowie ich die item_list richtig angepasst habe. Bei mir ingame werden aber weder icons noch die waffen in der hand angezeigt. Ich habe bei mir die icons einer waffe mal mit den icons einer neuen waffe (welche ich einfügen will) überschrieben und diese wird jetzt als neue angezeigt....
HILFE! Waffen einfügen im clienten
11/07/2010 - Metin2 Private Server - 0 Replies
Hallo ihr da draußen
Ich verzweifele seid jetzt genau einem Tag daran Waffen im cilenten einzufügen.
Ich habe sie in der db und in der item_proto im clienten. Ich habe sie auch in icon.epk und item.epk eingefügt, sowie ich die item_list richtig angepasst habe. Bei mir ingame werden aber weder icons noch die waffen in der hand angezeigt. Ich habe bei mir die icons einer waffe mal mit den icons einer neuen waffe (welche ich einfügen will) überschrieben und diese wird jetzt als neue angezeigt....
[HOW TO] Waffenwerte im Clienten einfügen??
01/25/2010 - Metin2 Private Server - 8 Replies
Hi wollte ma fragen ob einer nen how to hat wo beschrieben wird wie man waffen werte einfügen kann damit sie im spiel so stehen also in den clienten oder ob einer sowas machen kann.
wenn es so was gibt bitte ich um einen link:handsdown:
All times are GMT +2. The time now is 20:55 .