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:
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







