this simple script reads itemweapon.csv, itemarmor.csv and itemaccessory.csv and searches for items by name
its not case sensitive, so if the item name is Ultimate Conciana +9, you can just type ultimate conciana +9.
it returns all of the stats the item has:
on the right side - legendary stats (red ones)
on the left side - reinforcement stats (green ones)
it also returns required stats, attack/defense, required level and class.
here's a screenshot of the tool:
and since it's autoit, I wont release an exe, but the code:
#include <file.au3>
#include <array.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=C:\Users\MightyPaPi\Desktop\boty\src boty\item stats.kxf
$Form1 = GUICreate("Item stats - Created by Paul", 615, 312, 574, 203)
$search = GUICtrlCreateInput("", 40, 16, 161, 21)
$Button1 = GUICtrlCreateButton("Search", 216, 16, 49, 25)
$lvllb = GUICtrlCreateLabel("Required Level:", 352, 24, 79, 17)
$classlb = GUICtrlCreateLabel("Class:", 352, 55, 32, 17)
$deflb = GUICtrlCreateLabel("Defense:", 352, 86, 47, 17)
$atklb = GUICtrlCreateLabel("Attack:", 352, 117, 38, 17)
$Mgcatk = GUICtrlCreateLabel("Range Attack:", 352, 179, 100, 17)
$Label9 = GUICtrlCreateLabel("Magic Attack:", 352, 148, 100, 17)
$strlb = GUICtrlCreateLabel("Required STR:", 352, 210, 75, 17)
$dexlb = GUICtrlCreateLabel("Required DEX:", 352, 241, 75, 17)
$sprlb = GUICtrlCreateLabel("Required SPR:", 352, 272, 75, 17)
$ReqLvllab = GUICtrlCreateLabel("", 456, 24, 52, 17)
$Deflab = GUICtrlCreateLabel("", 456, 86, 40, 17)
$Classlab = GUICtrlCreateLabel("", 456, 55, 100, 17)
$Atklab = GUICtrlCreateLabel("", 456, 117, 100, 17)
$matklab = GUICtrlCreateLabel("", 456, 148, 100, 17)
$ratklab = GUICtrlCreateLabel("", 456, 179, 100, 17)
$STRLab = GUICtrlCreateLabel("", 456, 210, 100, 17)
$DEXLab = GUICtrlCreateLabel("", 456, 241, 100, 17)
$SPRLab = GUICtrlCreateLabel("", 456, 272, 100, 17)
$specialstatslb = GUICtrlCreateLabel("Special Stats:", 40, 112, 69, 17)
$Radio1 = GUICtrlCreateRadio("Armor", 40, 48, 81, 17)
$Radio2 = GUICtrlCreateRadio("Weapon", 40, 80, 89, 17)
$Radio3 = GUICtrlCreateRadio("Accessories", 140, 48, 81, 17)
GUICtrlSetState($radio2, $GUI_CHECKED)
$stat1lab = GUICtrlCreateLabel("", 40, 144, 120, 17)
$stat2lab = GUICtrlCreateLabel("", 40, 166, 120, 17)
$stat3lab = GUICtrlCreateLabel("", 40, 189, 120, 17)
$stat4lab = GUICtrlCreateLabel("", 40, 211, 120, 17)
$stat5lab = GUICtrlCreateLabel("", 40, 234, 120, 17)
$stat6lab = GUICtrlCreateLabel("", 40, 256, 120, 17)
$unique1 = GUICtrlCreateLabel("", 160, 144, 120, 17)
$unique2 = GUICtrlCreateLabel("", 160, 166, 120, 17)
$unique3 = GUICtrlCreateLabel("", 160, 190, 120, 17)
$unique4 = GUICtrlCreateLabel("", 160, 211, 120, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $Button1
if GUICtrlRead($radio1) = $GUI_CHECKED Then
$file = "itemarmor.csv"
EndIf
if GUICtrlRead($radio2) = $GUI_CHECKED Then
$file = "itemweapon.csv"
EndIf
if GUICtrlRead($radio3) = $GUI_CHECKED Then
$file = "itemaccessory.csv"
EndIf
$i = 1
$item = guictrlread($search)
searchforitem($item,$file)
EndSwitch
WEnd
func searchforitem($item,$file)
$lines = _FileCountLines($file)
$ff = fileread($file)
$array1 = stringsplit($ff,@CR,2)
progresson("Searching","Searching for "&$item&" in "&$file)
do
$arraytosearch = StringSplit($array1[$i-1],",",2)
$percentage = $i/$lines
$percentage = $percentage*100
$percentage = round($percentage, 0)
progressset($percentage, $percentage&"%")
if $arraytosearch[1] = $item Then
ExitLoop
EndIf
$i = $i+1
until $i = $lines
progressoff()
if $i = $lines Then
if $arraytosearch[1]<>$item Then
msgbox(0,"errur","Sorry, item could not be located :(")
EndIf
EndIf
$line1 = filereadline($file,$i)
$array = StringSplit($line1,",",2)
$index = $array[0]
$name = $array[1]
$class = _assignclass($array[8])
GUICtrlSetData($Classlab,$class)
$reqlvl = $array[15]
GUICtrlSetData($ReqLvllab,$reqlvl)
$minatk = $array[73]
$maxatk = $array[74]
$mminatk = $array[75]
$mmaxatk = $array[76]
$rminatk = $array[77]
$rmaxatk = $array[78]
GUICtrlSetData($Atklab,$minatk&" ~ "&$maxatk)
GUICtrlSetData($ratklab,$rminatk&" ~ "&$rmaxatk)
GUICtrlSetData($matklab,$mminatk&" ~ "&$mmaxatk)
$def = $array[80]
GUICtrlSetData($Deflab,$def)
$val1 = setitemstats($array[42])
$stat1 = $array[43]
if $stat1 > 0 Then
GUICtrlSetData($stat1lab,$val1&" +&"&$stat1)
Else
GUICtrlSetData($stat1lab," ")
EndIf
$val2 = setitemstats($array[44])
$stat2 = $array[45]
if $stat2 > 0 Then
GUICtrlSetData($stat2lab,$val2&" +&"&$stat2)
Else
GUICtrlSetData($stat2lab," ")
EndIf
$val3 = setitemstats($array[46])
$stat3 = $array[47]
if $stat3 > 0 Then
GUICtrlSetData($stat3lab,$val3&" +&"&$stat3)
Else
GUICtrlSetData($stat3lab," ")
EndIf
$val4 = setitemstats($array[48])
$stat4 = $array[49]
if $stat4 > 0 Then
GUICtrlSetData($stat4lab,$val4&" +&"&$stat4)
Else
GUICtrlSetData($stat4lab," ")
EndIf
$val5 = setitemstats($array[50])
$stat5 = $array[51]
if $stat5 > 0 Then
GUICtrlSetData($stat5lab,$val5&" +&"&$stat5)
Else
GUICtrlSetData($stat5lab," ")
EndIf
$val6 = setitemstats($array[52])
$stat6 = $array[53]
if $stat6 > 0 Then
GUICtrlSetData($stat6lab,$val6&" +&"&$stat6)
Else
GUICtrlSetData($stat6lab," ")
EndIf
$reinstat1 = setitemstats($array[54])
$reinval1 = $array[55]
if $reinval1 > 0 Then
GUICtrlSetData($unique1,$reinstat1&" +&"&$reinval1)
Else
GUICtrlSetData($unique1," ")
EndIf
$reinstat2 = setitemstats($array[56])
$reinval2 = $array[57]
if $reinval2 > 0 Then
GUICtrlSetData($unique2,$reinstat2&" +&"&$reinval2)
Else
GUICtrlSetData($unique2," ")
EndIf
$reinstat3 = setitemstats($array[58])
$reinval3 = $array[59]
if $reinval3 > 0 Then
GUICtrlSetData($unique3,$reinstat3&" +&"&$reinval3)
Else
GUICtrlSetData($unique3," ")
EndIf
$reinstat4 = setitemstats($array[60])
$reinval4 = $array[61]
if $reinval4 > 0 Then
GUICtrlSetData($unique4,$reinstat4&" +&"&$reinval4)
Else
GUICtrlSetData($unique4," ")
EndIf
$strreq = $array[85]
GUICtrlSetData($STRLab,$strreq)
$dexreq = $array[86]
GUICtrlSetData($DEXLab,$dexreq)
$sprreq = $array[87]
GUICtrlSetData($SPRLab,$sprreq)
EndFunc
func setitemstats($id)
Switch $id
case 0
$id = 0
case 1
$id = "Str"
case 2
$id = "Dex"
case 3
$id = "Heal"
case 4
$id = "Spr"
case 8
$id = "Max HP"
case 9
$id = "Max HP %"
case 10
$id = "HP Recovery"
case 16
$id = "Max MP"
case 17
$id = "Max MP %"
case 18
$id = "MP Recovery"
case 22
$id = "MP Consumption"
case 29
$id = "Physical Res"
case 31
$id = "Magical Res"
case 34
$id = "Melee Attack"
case 37
$id = "Magic Attack"
case 43
$id = "Movement"
case 49
$id = "Critical Rate %"
case 53
$id = "Abnormal res"
case 54
$id = "Critical res"
case 61
$id = "Critical Damage %"
case 72
$id = "Defense"
case 74
$id = "Defense %"
case 88
$id = "Fire Attack"
case 89
$id = "Ice Attack"
case 90
$id = "Lightning Attack"
case 91
$id = "Poison Attack"
case 92
$id = "Curse Attack"
case 93
$id = "Dark Attack"
case 96
$id = "Max PK Shield"
case 98
$id = "Shield Recovery"
case 168
$id = "Monster Res"
case 169
$id = "PK/PVP Res"
case 225
$id = "Range Attack"
case 232
$id = "Hit Rate"
case 233
$id = "Critical Attack"
case 234
$id = "Block Rate"
case 235
$id = "Guard Rate"
case 236
$id = "Vitality"
case 239
$id = "Fire Res"
case 240
$id = "Ice Res"
case 241
$id = "Lightning Res"
case 242
$id = "Poison Res"
case 243
$id = "Curse Res"
case 244
$id = "All Resistance"
case 245
$id = "Dark Res"
case 286
$id = "- Melee Attack"
case 287
$id = "- Magic Attack"
case 289
$id = "- Ranged Attack"
EndSwitch
return $id
EndFunc
func _assignclass($class)
switch $class
Case "1111-1111-1111-1111-1111-1111-1111-1111"
$class = "All"
Case "0100-0000-0000-0000-0000-0000-0000-0000"
$class = "Segita Hunter"
Case "1000-0000-0000-0000-0000-0000-0000-0000"
$class = "Azure Knight"
Case "0000-0010-0000-0000-0000-0000-0000-0000"
$class = "Aloken"
Case "0000-0100-0000-0000-0000-0000-0000-0000"
$class = "Bagi Warrior"
Case "0010-0000-0000-0000-0000-0000-0000-0000"
$class = "Incar Magician"
Case "0000-0000-0100-0000-0000-0000-0000-0000"
$class = "Black Wizard"
Case "0000-0000-0000-1000-0000-0000-0000-0000"
$class = "Half Bagi"
Case "0000-1000-0000-0000-0000-0000-0000-0000"
$class = "Segnale"
Case "0000-0000-0001-0000-0000-0000-0000-0000"
$class = "Seguripper"
Case "0000-0000-0010-0000-0000-0000-0000-0000"
$class = "Concerra Summoner"
Case "0001-0000-0000-0000-0000-0000-0000-0000"
$class = "Vicious Summoner"
Case "0011-0000-0010-0000-0000-0000-0000-0000"
$class = "Vicious, Concerra, Incar"
EndSwitch
return $class
EndFunc
the tool still needs more descriptions, I didnt really bother though. it's really straight forward so you can add it yourself
OH and obviously, you need itemarmor.csv, itemweapon.csv and itemaccessory.csv in order for this code to work for you xd
you can get it from globals client, just unpack it and get it from share/item folder
this is not a hack, lol. it shows you the stats of items. some items are harder to obtain than others and if you dont want to waste your time or wait for others to post the stats, you can check them yourself with this tool. get the necessary files, put them in the same spot as this tool and run it. then search for the item you want and youre good
[Release] How to change stat points per level and working stat resets 04/08/2017 - Shaiya PServer Guides & Releases - 20 Replies A tutorial on how to change Ultimate Mode stat points and make stat resets give the changed stats back
Things you will need.
ollydbg 2.0 - http://www.ollydbg.de/odbg200.zip
ps_game.exe not to be confused with game.exe can be found in server folder
SHAIYA_SERVER\SERVER\PSM_Client\Bin
Make a back up of your ps_game.exe before you edit it just incase you make a mistake.
[RELEASE] Item Create Tool [Software] 04/11/2013 - Metin2 PServer Guides & Strategies - 20 Replies Hallo @ all
Da ich neulich einen Suchthread zu einem solchen Tool gesehen habe, und ich schon ein paar Mal von Freunden auf so etwas angesprochen wurde, dachte ich mir, "machste mal!"
Und hier ist das Ergebnis:
(Diese Screens wurden mit einer Win2000 GUI auf Win7 gemacht)
1. Login, hier müsst ihr euch mit eurer Server IP/Domain, dem MySQL User und einem Passwort einloggen!
(Da mir eine SSH mit Auth File connection zu doof war, in dieser Version ohne! Vll code ich das später noch nach!)...
[Release]Metin2 Item Tool 05/05/2012 - Metin2 PServer Guides & Strategies - 8 Replies Hey,
blabla noch ein Item Tool, blabla
Das Tool lädt die item_proto_dumb.xml aus dem Ordner, und zeigt dann die Value & den Namen an.
Mehr gibts eigentlich nicht zu sagen!
PS: In V2 wollt ich noch einbauen, das die Werte usw noch angezeigt werden!