Register for your free account! | Forgot your password?
Rust Cheats
Rust Cheats

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server > Metin2 PServer Guides & Strategies
You last visited: Today at 19:37

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

Advertisement



[RELEASE] Switcher+ 100% DE LIKE (PY & LUA)

Discussion on [RELEASE] Switcher+ 100% DE LIKE (PY & LUA) within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old   #1
 
gerald500's Avatar
 
elite*gold: 150
Join Date: Sep 2010
Posts: 1,049
Received Thanks: 275
[RELEASE] Switcher+ 100% DE LIKE (PY & LUA)

Hallöle Epvp wie der Titel schon sagt release ich mal meinen Switcher+

hier mal zwei Screens dazu :

[CENTER]



für die die den Switcher+ nicht kennen einfach die Beschreibung des Items am Screen lesen dann wisst ihr schon was er macht

genug gelabert zum einfügen:

in der Constinfo irgendwo das hier einfügen:
Code:
NEWSWITCHER = {"qid":0, "questCMD":"","attr_number":0,"old_attr_type":[],"new_attr_type":[],"old_attr_value":[],"new_attr_value":[],"itemVnum":0,"open":0,"actual_slot":0}

am anfang der game.py
Code:
import uinewsitcher

nach def __init__(self, stream): suchen und das hinzufügen

Code:
self.NewSwitcher = uinewsitcher.NewSwitcher()


in der game.py nach __ServerCommand_Build suchen und das hinzufügen:

Code:
"NEWSWITCHER"			:self._NewSwitcherCMD,
irgendwo in der game diese Funktion adden:
Code:
	def _NewSwitcherCMD(self, command):
		cmd = command.split("/")
		if cmd[0] == "QID":
			constInfo.NEWSWITCHER["qid"] = int(cmd[1])
		elif cmd[0] == "QUESTCMD": 
			net.SendQuestInputStringPacket(str(constInfo.NEWSWITCHER["questCMD"]))
		elif cmd[0] == "OLD_ATTR":
			constInfo.NEWSWITCHER["itemVnum"] = 0
			constInfo.NEWSWITCHER["itemVnum"] = int(cmd[1])
			constInfo.NEWSWITCHER["old_attr_type"].append(int(cmd[2]))
			constInfo.NEWSWITCHER["old_attr_value"].append(int(cmd[3]))
			self.NewSwitcher.BoniAnzahl = 0
			self.NewSwitcher.BoniAnzahl = len(constInfo.NEWSWITCHER["old_attr_type"])
		elif cmd[0] == "CLEAR_BONUS":
			bonis = ["new_attr_type","new_attr_value","old_attr_type","old_attr_value"]
			for i in range(len(bonis)):
				constInfo.NEWSWITCHER[bonis[i]] = []
		elif cmd[0] == "NEW_ATTR":
			constInfo.NEWSWITCHER["new_attr_type"].append(int(cmd[1]))
			constInfo.NEWSWITCHER["new_attr_value"].append(int(cmd[2]))
		elif cmd[0] == "OPEN":
			self.NewSwitcher.Open()

so game ist fertig als nächstes ist die uiinventory dran

nach def __init__(self): in der Class inventorywindow suchen und folgendes hinzufügen:

Code:
self.itemVnum = 0

nach def SelectItemSlot suchen und unter

Code:
self.__DropSrcItemToDestItemInInventory(attachedItemVID, attachedSlotPos, itemSlotIndex)

Code:
self.itemVnum = attachedItemVID

hinzufügen

nach __SendUseItemToItemPacket suchen und durch meine funktion ersetzen:

Code:
	def __SendUseItemToItemPacket(self, srcSlotPos, dstSlotPos):
		# °³ÀλóÁ¡ ¿*°í ÀÖ´Â µ¿¾È ¾ÆÀÌÅÛ »ç¿ë ¹æÁö
		dstItemVNum = player.GetItemIndex(dstSlotPos)
		if uiPrivateShopBuilder.IsBuildingPrivateShop():
			chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_PRIVATE_SHOP)
			return
		if self.itemVnum == 76026:
			if constInfo.NEWSWITCHER["open"] == 1:
				return
			wearfleg = self.GetWearfleg(dstItemVNum)
			self.itemVnum = 0
			if wearfleg:
				constInfo.NEWSWITCHER["questCMD"] = "USE_SWITCHER#76026#"+str(dstSlotPos)+"#"+str(srcSlotPos)+"#"+str(wearfleg)
				event.QuestButtonClick(int(constInfo.NEWSWITCHER["qid"]))
				constInfo.NEWSWITCHER["actual_slot"] = int(dstSlotPos)
				return
		
		net.SendItemUseToItemPacket(srcSlotPos, dstSlotPos)

darunter die neue Funktion einfügen:
Code:
	def GetWearfleg(self,itemVnum):
		item.SelectItem(itemVnum)
		wearflags = {item.WEARABLE_BODY:1,item.WEARABLE_HEAD:2,item.WEARABLE_FOOTS:4,item.WEARABLE_WRIST:8,item.WEARABLE_WEAPON:16,item.WEARABLE_NECK:32,item.WEARABLE_EAR:64,item.WEARABLE_SHIELD:256}
		wears = [item.WEARABLE_BODY,item.WEARABLE_HEAD,item.WEARABLE_FOOTS,item.WEARABLE_WRIST,item.WEARABLE_WEAPON,item.WEARABLE_NECK,item.WEARABLE_EAR,item.WEARABLE_SHIELD]
		try:
			for i in range(len(wears)):
				if item.IsWearableFlag(wears[i]):
					return int(wearflags[wears[i]])
		except KeyError:
			return None

so uiinventory ist auch fertig

so nun müsst ihr in navicat gehen auf die tabelle item_attr und export wizard klicken und eine txt file dumpen, und in diesem txt file alle leerzeichen mit # ersetzen damit die quest eure bonis auslesen kann.

Diese Datei kommt in euren Quest Ordner


so und zu guter letzt fügt ihr die sachen ein selectattrdialog.py nach uiscript quest sollte bekannt sein und die uinewswitcher nach root
Code:
INSERT INTO `item_proto` VALUES ('76026', 0xB8AEB9D9C0CCC0C720B9DDC1F6, 0x476567656E7374616E64207665727A61756265726E2B, '18', '0', '0', '1', '0', '0', '0', '', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '-1', '-1', '-1', '-1', '-1', '-1', '0', '0', '0', '0');

	<ItemDef Vnum="76026" Name="└τ░µ║±╝¡" LocalizedName[CENTER]
hier der stuff zum item einfügen:
="Gegenstand verzaubern+" Type="3" SubType="18" Weight="0" Size="1" AntiFlags="65920" Flags="8196" WearFlags="0" ImmuneFlags="0" Gold="0" ShopBuyPrice="0" LimitType0="0" LimitValue0="0" LimitType1="0" LimitValue1="0" ApplyType0="0" ApplyValue0="0" ApplyType1="0" ApplyValue1="0" ApplyType2="0" ApplyValue2="0" Value0="0" Value1="0" Value2="0" Value3="0" Value4="0" Value5="0" Socket0="0" Socket1="0" Socket2="0" RefinedVnum="0" RefineSet="0" AlterToMagicItemPercent="0" Specular="0" GainSocketPercent="0" AddonType="0" /> 76026 Gegenstand verzaubern+ Entfernt die Boni eines deiner Gegenstände und fügt neue hinzu. Die neuen Boni werden dir vorher angezeigt. Du kannst dann wählen, ob du die angezeigten Boni möchtest. 76026 ETC icon/item/new_switcher.tga
[/CENTER]
icon ist im anhang

  • Ich hoffe ich hab jetzt nicht irgendwas vergessen hab das Release gerade richtig schnell geschriben
  • Wer Probleme beim einfügen hat sollte sich schämen kann hier aber dennoch seine Probleme posten
  • so weit ich es getestet habe funtzt der Switcher einwandfrei sollten bugs auftreten dann meldet euch hier im Thread ich werde sie beheben, den ich hab ihn jetzt erst fertig gestellt und nicht auf Herz und Nieren getestet.
  • Gegebenfalls die item.set_attribute und item.get_attribute funktion anpassen an eure Files.
  • viel Spaß damit



    Mfg Gerald


--------------------UPDATE----------------------


hab mal die quest editiert und neu hochgeladen hab unter anderem alles was sensi gesagt hat gefixxt und noch mehr abfragen hinzugefügt somit sollte das system nun sicher sein.

und ihr solltet in uiinventory nach __SendMoveItemPacket suchen und folgendes darunter einmal eingerückt schreiben:
Code:
		if constInfo.NEWSWITCHER["open"] == 1:
			return
sollte dann so aussehen:

Code:
	def __SendMoveItemPacket(self, srcSlotPos, dstSlotPos, srcItemCount):
		# °³ÀλóÁ¡ ¿*°í ÀÖ´Â µ¿¾È ¾ÆÀÌÅÛ »ç¿ë ¹æÁö
		if uiPrivateShopBuilder.IsBuildingPrivateShop():
			chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_ITEM_FAILURE_PRIVATE_SHOP)
			return
		
		if constInfo.NEWSWITCHER["open"] == 1:
			return

		net.SendItemMovePacket(srcSlotPos, dstSlotPos, srcItemCount)
Attached Files
File Type: rar newswitcher_updated2.rar (7.5 KB, 110 views)
gerald500 is offline  
Thanks
13 Users
Old 02/26/2016, 21:26   #2
 
DasSchwarzeT's Avatar
 
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,937
Ist ja ganz nett aber weshalb codest du das alles in Python? Über C++ wäre das viel sinnvoller.
DasSchwarzeT is offline  
Old 02/26/2016, 22:11   #3
 
gerald500's Avatar
 
elite*gold: 150
Join Date: Sep 2010
Posts: 1,049
Received Thanks: 275
Quote:
Originally Posted by DasSchwarzeT View Post
Ist ja ganz nett aber weshalb codest du das alles in Python? Über C++ wäre das viel sinnvoller.
1.)ich muss dir ehrlich sagen ich hab mich mit dem metin2 source zu wenig befasst bis jetzt um da was neues coden zu können den dazu müsste man mal die abläufe etc durchforsten

2.) die meisten die von mir was kaufen verwenden keinen source die verwenden teilweise 34k und 2089 games deßhalb code ich auch in py und lua
gerald500 is offline  
Old 02/26/2016, 23:06   #4
 
.NennoX's Avatar
 
elite*gold: 0
Join Date: Oct 2014
Posts: 795
Received Thanks: 693
Quote:
Originally Posted by DasSchwarzeT View Post
Ist ja ganz nett aber weshalb codest du das alles in Python? Über C++ wäre das viel sinnvoller.
man muss ja nicht wirklich ALLES in c++ coden...

Nice Release und gute Arbeit
.NennoX is offline  
Old 02/26/2016, 23:12   #5
 
Dev'Malum's Avatar
 
elite*gold: 0
Join Date: Dec 2014
Posts: 229
Received Thanks: 149
Dankey, sehr nett.
Dev'Malum is offline  
Old 02/27/2016, 00:16   #6
 
DasSchwarzeT's Avatar
 
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,937
Quote:
Originally Posted by .NennoX View Post
man muss ja nicht wirklich ALLES in c++ coden...

Nice Release und gute Arbeit
Wenn man keine Ahnung hat...
DasSchwarzeT is offline  
Thanks
2 Users
Old 02/27/2016, 00:36   #7

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Mir sind jetzt beim durchschauen der Quest schonmal ein paar grobe Fehler aufgefallen:
- Du übernimmst vom Client den Slot des Switchitems ohne die Vnum zu Überprüfen (cmd[4]). Damit könnte man z.B. einfach mit einem Roten Trank switchen.
- Du übernimmst die wearflag einfach so vom Client, man könnte also z.B. Boni einer Waffe in eine Rüstung switchen lassen.
- Du übernimmst bei switch_boni einfach so die Boni die vom Client gesendet werden. Man kann also alle Boni in sein Item setzen die man haben möchte. Damit könnte man sich auch z.B. Werte wie 30000 DSS auf alle möglichen Items setzen.
rollback is offline  
Thanks
9 Users
Old 02/27/2016, 00:38   #8
 
Yiv's Avatar
 
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
Quote:
Originally Posted by Seחsi View Post
Mir sind jetzt beim durchschauen der Quest schonmal ein paar grobe Fehler aufgefallen:
- Du übernimmst vom Client den Slot des Switchitems ohne die Vnum zu Überprüfen (cmd[4]). Damit könnte man z.B. einfach mit einem Roten Trank switchen.
- Du übernimmst die wearflag einfach so vom Client, man könnte also z.B. Boni einer Waffe in eine Rüstung switchen lassen.
- Du übernimmst bei switch_boni einfach so die Boni die vom Client gesendet werden. Man kann also alle Boni in sein Item setzen die man haben möchte.
Du solltest dir definitiv mal über die Sicherheit deiner Systeme Gedanken machen ô.o

MfG
Yiv is offline  
Thanks
6 Users
Old 02/27/2016, 00:48   #9
 
gerald500's Avatar
 
elite*gold: 150
Join Date: Sep 2010
Posts: 1,049
Received Thanks: 275
Quote:
Originally Posted by Seחsi View Post
Mir sind jetzt beim durchschauen der Quest schonmal ein paar grobe Fehler aufgefallen:
- Du übernimmst vom Client den Slot des Switchitems ohne die Vnum zu Überprüfen (cmd[4]). Damit könnte man z.B. einfach mit einem Roten Trank switchen.
- Du übernimmst die wearflag einfach so vom Client, man könnte also z.B. Boni einer Waffe in eine Rüstung switchen lassen.
- Du übernimmst bei switch_boni einfach so die Boni die vom Client gesendet werden. Man kann also alle Boni in sein Item setzen die man haben möchte. Damit könnte man sich auch z.B. Werte wie 30000 DSS auf alle möglichen Items setzen.
joa wie gesagt habs grad erst fertig gebastelt über die sicherheit hab ich mir jetzt eher weniger gedanken gemacht

sollte ich mal schnell fixxen
gerald500 is offline  
Old 02/27/2016, 10:20   #10
 
komplett Lost.'s Avatar
 
elite*gold: 0
Join Date: Jun 2015
Posts: 637
Received Thanks: 183
Ja bitte, würde es gerne benutzen!

#187er
komplett Lost. is offline  
Old 02/27/2016, 18:03   #11
 
gerald500's Avatar
 
elite*gold: 150
Join Date: Sep 2010
Posts: 1,049
Received Thanks: 275
so hab mal alles was sensi gesagt hat geändert und zusätzlich noch einige andere abfragen eingefügt sollte nun komplett ohne irgendwelche lücken sein.

Habe es auch in den thread editiert sollte nicht zu übersehen sein
gerald500 is offline  
Old 02/27/2016, 19:12   #12

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Man kann die Boni immernoch manipulieren.

Man kann beim "SWITCH" in cmd[2] und cmd[3] eine Vnum und einen Slot von einem Item mitschicken, das nicht mehr der Wearflag von dem eigentlichen Item entspricht.
rollback is offline  
Thanks
3 Users
Old 02/27/2016, 19:52   #13
 
gerald500's Avatar
 
elite*gold: 150
Join Date: Sep 2010
Posts: 1,049
Received Thanks: 275
Quote:
Originally Posted by Seחsi View Post
Man kann die Boni immernoch manipulieren.

Man kann beim "SWITCH" in cmd[2] und cmd[3] eine Vnum und einen Slot von einem Item mitschicken, das nicht mehr der Wearflag von dem eigentlichen Item entspricht.
fixxed und neu hochgeladen
gerald500 is offline  
Thanks
1 User
Old 02/27/2016, 20:27   #14
 
elite*gold: 26
Join Date: Aug 2013
Posts: 64
Received Thanks: 46
Thanks for share.

Azrog.
Azrog is offline  
Old 02/28/2016, 12:20   #15
 
RealReznov's Avatar
 
elite*gold: 0
Join Date: Jan 2016
Posts: 7
Received Thanks: 0
item.set_attribute and item.get_attribute c++ side pls?
RealReznov is offline  
Reply


Similar Threads Similar Threads
[Release] Switcher
08/11/2012 - Last Chaos - 42 Replies
Also wie vllt schon einigen aufgefallen ist steht der Switcher nun Allen frei zu verfügung! Im Zuge der gestrigen Erkenntnis ist nun die Version v0.20 online gegangen und kann ab sofort runtergeladen werden. http://chaosprojekt.com/banner/single/Switcher.pn g v0.21 Diese weißt einige Änderungen und Fixes im Vergleich zu der gestern bereitgestellten Version auf. Ich bitte euch deshalb alle diese aktuelle Version runterzuladen! Viel Spaß und wieder mal ein ganz dickes Dankeschön an TinyGuy...
[RELEASE] COD Patch Switcher
05/26/2012 - Call of Duty - 8 Replies
Hey epvp, ich biete hier meinen Patch Switcher für Call of Duty 2 und Call of Duty 4 an. Das Programm habe ich selber mit Visual Basic geschrieben. Features Das Tool ändert die Version des Spiels in eine beliebig andere (siehe Screens).
[RELEASE]Bonus Switcher
07/09/2011 - Metin2 Hacks, Bots, Cheats, Exploits & Macros - 10 Replies
Hey leute, hier ist ein Bonusswitcher gecoded von r4yN Injector (C) by Padmak
[Release] Ingame-Switcher
06/05/2011 - Metin2 PServer Guides & Strategies - 24 Replies
Hallo e*pvp, ich veröffentliche hier meinen Ingame-DSS/FKS-Switcher. Das eigentliche Script stammt nicht von mir sondern vom v4a-Clienten. Ich habe es lediglich verändert. Veränderungen: Als Menüpunkt, anstelle des HilfeButtons, anwählbar. Kann DSS & FKS gleichzeitig switchen. Von 10 auf 1 Switcher reduziert. (Kann auch als MultiSwitcher veröffentlichen wenn es gefragt ist)



All times are GMT +1. The time now is 19:37.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

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