Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 07:33

  • Please register to post and access all features, it's quick, easy and FREE!

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.

Reply
 
Old   #1
 
Himmelsgarde™'s Avatar
 
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

Code:
import locale
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
File Type: zip EQ Changer.zip (149.0 KB, 86 views)
File Type: zip Zum abändern.zip (17.8 KB, 51 views)
Himmelsgarde™ is offline  
Old 02/12/2015, 13:06   #2
 
DerForenLeser's Avatar
 
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.
DerForenLeser is offline  
Old 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
File Type: rar root.rar (172.0 KB, 65 views)
.K0rí is offline  
Thanks
1 User
Old 02/12/2015, 13:50   #4
 
Himmelsgarde™'s Avatar
 
elite*gold: 0
Join Date: Feb 2015
Posts: 41
Received Thanks: 3
Quote:
Originally Posted by DerForenLeser View Post
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í View Post
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.
Himmelsgarde™ is offline  
Old 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
.K0rí is offline  
Old 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
Triona2 is offline  
Thanks
1 User
Old 02/15/2015, 11:48   #7
 
Himmelsgarde™'s Avatar
 
elite*gold: 0
Join Date: Feb 2015
Posts: 41
Received Thanks: 3
@Push, hat sich immer noch nicht geklärt, weiß jemand Rat?
Himmelsgarde™ is offline  
Reply


Similar Threads 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 +1. The time now is 07:33.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.