Herkese selamlar. Bu scripti hem kendim hem de bir iki arkadaşım için yazıp geliştirdim. Bunu yazarken amacım hem teker teker item bakma derdinden kurtulmak, hem de scroll ya da reg arkasına gizlenen yüzük bilezikleri atlamamaktı.
2 peti hotkey ile heallıyor. İlk kullanımdaki setuptan sonra otomatik olarak petlerinizi tanıyor.
Ancient Lich kesiyorsanız hotkey ile kapıları açıp kapatıyor. (Razor da yapıyormuş bunu ama ben kullanmıyorum razor)
Hotkey ile yaratığın cesedini açıp, otomatik olarak goldu alıp, düşen itemları sizin için puanlandırıyor.
Puanlandırma sistemi uzun süre denemeye tabii tutulup şu andaki en iyi haline gelmiştir. Damage increase, mana leech, hit lower defense, hit lightning-harm-fireball, swing speed gibi özellikler silahlar için, fc fcr str dex int gibi özellikler yüzük bilezik için, lmc hit point mana regen gibi statlar da armorlar için özellikle ayarlanmıştır ve itemların puan olarak değerini arttırır.
Scripti yazarken EasyUO forumlarındaki BadManiac'ın item evaluator scriptinden esinlendim, fakat çoğu benim emeğimdir. Özellikle itemin ismini yazdırana kadar akla karayı seçtim.
Uzun zamandır kullanıyorum hata ile karşılaşmadım. Eklenmesini istediğiniz güzel özellikler varsa seve seve yardımcı olurum. Umarım birilerinin işine yarar.
Kod:
set #sysmsgcol 77
set %value 0
set #lpc 400
ignoreitem AUL_BUL_CUL_DUL_EUL_FUL_GUL_HUL_IUL_JUL_KUL_LUL_MUL_NUL_OUL_PUL_QUL_RUL_SUL_TUL_UUL_VUL_WUL_XUL_YUL_ZUL_AVL_GVL_FVL_IVL_HVL_CVL_NTL_OTL_PTL_QTL_RTL_STL_TTL_UTL_VTL_WTL_XTL_YTL_ZTL_QXL_PXL_ZXL_NXL_WXL_VXL_YXL_XXL_ZFJ_BYL_CYL_DYL_EYL_FYL_GYL_HYL_IYL_JYL_KYL_KYM_PYM_SYM_TYM_WYM_UYM_GCR_ZBR_NCR_ACR_HCR_LCR_ICR_CCR_UCR_OCR_KCR_DCR_JCR_FCR_
set %kapi FJC_IJC_HJC_SJC_RJC_UJC_TJC_OJC_NJC_QJC_PJC_YOC_APC_DOC_ZOC_UOC_TOC_WOC_VOC_GPC_FPC_IPC_HPC_CPC_BPC_EPC_DPC_OPC_NPC_QPC_PPC_KPC_HMC_KMC_JMC_UMC_TMC_WMC_VMC_QMC_PMC_SMC_RMC_CNC_BNC_ENC_DNC_YMC_ZZL_CAM_BAM_MAM_LAM_OAM_NAM_IAM_HAM_KAM_JAM_UAM_TAM_WAM_VAM_QAM_
if *pet1 = N/A
gosub ilksetup
display yesno Ayarlarinda degisiklik yapmak istiyor musun?
if #dispres = yes
gosub ilksetup
Event SysMessage Script Aktif
loop:
OnHotKey f
goto loot
OnHotKey 1
goto pet1
OnHotKey 2
goto pet2
OnHotKey 3
goto kapi
OnHotKey g
goto runebook
OnHotkey h
goto dismount
goto loop
loot:
finditem YFM G_2
if #findcnt > 0
{
set #lobjectid #findid
set %ceset #findid
event macro 17 0
wait 10
ignoreitem #findid
finditem POF C_ , %ceset
if #findstack > 1
{
exevent drag #findid #findstack
wait 15
exevent dropc #backpackID
wait 5
}
find:
finditem * C_ , %ceset
if #findstack > 2
{
ignoreitem #findid
goto find
}
if #findcnt > 0
{
set %object #findid
gosub Check
event sysmessage %name %value
set %value 0
ignoreitem #findid
goto find
}
}
goto loop
runebook:
set #lobjectid %runebook
wait 5
event macro 17 0
wait 5
goto loop
dismount:
finditem %mount
if #findkind = 1
{
set #lobjectid #findid
wait 5
event macro 17 0
}
else
{
set #lobjectid #charid
wait 5
event macro 17 0
}
goto loop
pet1:
event macro 1 0 [band
wait 2
set #ltargetid *pet1
wait 5
event macro 22 0
wait 10
goto loop
pet2:
event macro 1 0 [band
wait 2
set #ltargetid *pet2
wait 5
event macro 22 0
wait 10
goto loop
kapi:
finditem %kapi G_2
if #findcnt > 0
wait 5
set #lobjectid #findid
event macro 17 0
wait 5
goto loop
sub Check
GOSUB BMGetProperty #FINDID
GOSUB chanceIncrease
GOSUB damageIncrease
GOSUB speedIncrease
GOSUB leech
GOSUB lower
GOSUB spellChance
GOSUB luck
GOSUB regeneration
GOSUB resist
GOSUB lowercost
GOSUB increase
GOSUB reflectPhysical
GOSUB stats
GOSUB fastercast
GOSUB enhancepots
GOSUB channeling
GOSUB name
Return
SUB skill
{
GOSUB Skills
SET %value %value + ( #RESULT )
RETURN
}
SUB fastercast
{
IF faster , #spc , casting in #property && faster , #spc , cast , #spc , recovery in #property
SET %value %value + 20
GOSUB Property faster , #SPC , casting
IF #RESULT > 0 && durability NOTIN #property
SET %value %value + ( #RESULT * 20 )
GOSUB Property faster , #spc , cast , #spc , recovery
SET %value %value + ( #RESULT * 15 )
RETURN
}
SUB stats
{
GOSUB Property intelligence , #spc , bonus
SET %value %value + ( #RESULT * 2 )
GOSUB Property strength , #spc , bonus
SET %value %value + ( #RESULT * 3 )
GOSUB Property dexterity , #spc , bonus
SET %value %value + ( #RESULT * 4 )
RETURN
}
SUB increase
{
GOSUB Property hit , #SPC , point , #SPC , increase
SET %value %value + ( #RESULT * 6 )
GOSUB Property mana , #SPC , increase
SET %value %value + ( #RESULT * 4 )
GOSUB Property stamina , #SPC , increase
SET %value %value + ( #RESULT * 2 )
RETURN
}
SUB lowercost
{
GOSUB Property lower , #spc , reagent , #spc , cost
IF #RESULT >= 14
{
SET %value %value + #RESULT
}
GOSUB Property lower , #spc , mana , #spc , cost
SET %value %value + ( #RESULT * 5 )
RETURN
}
SUB enhancepots
{
GOSUB Property enhance , #spc , potions
SET %value %value + ( #RESULT )
RETURN
}
SUB regeneration
{
GOSUB Property mana , #spc , regeneration
SET %value %value + ( #RESULT * 10 )
RETURN
}
SUB slayer
{
IF ( dragon in #property ) || ( blood , #SPC , elemental IN #PROPERTY )
SET %value %value + 10
IF ( undead in #property ) || ( demon in #property )
SET %value %value + 25
RETURN
}
}
SUB spellChance
{
GOSUB Property hit , #spc , lightning
IF #RESULT >= 30
SET %value %value + ( #RESULT / 2 )
IF #RESULT >= 40
SET %value %value + ( #RESULT / 2 )
GOSUB Property hit , #spc , harm
IF #RESULT >= 30
SET %value %value + ( #RESULT / 2 )
IF #RESULT >= 40
SET %value %value + ( #RESULT / 2 )
GOSUB Property hit , #spc , fireball
IF #RESULT >= 30
SET %value %value + ( #RESULT / 2 )
IF #RESULT >= 40
SET %value %value + ( #RESULT / 2 )
GOSUB Property area
IF #RESULT >= 35
SET %value %value + ( #RESULT / 2 )
RETURN
}
SUB lower
{
GOSUB Property lower , #spc , attack
IF #RESULT >= 30
SET %value %value + ( ( #RESULT * 3 ) / 5 )
GOSUB Property lower , #spc , defense
IF #RESULT >= 30
SET %value %value + ( ( #RESULT * 2 ) / 3 )
RETURN
}
SUB luck
{
GOSUB Property luck
IF #RESULT >= 80
SET %value %value + ( #RESULT )
RETURN
}
SUB chanceIncrease
{
GOSUB Property hit , #spc , chance
IF #RESULT >= 9
SET %value %value + ( #RESULT * 3 )
GOSUB Property defense , #spc , chance
IF #RESULT >= 9
SET %value %value + ( #RESULT * 3 )
RETURN
}
SUB speedIncrease
{
GOSUB Property swing , #spc , speed , #spc , increase
IF #RESULT >= 15
SET %value %value + ( ( #RESULT * 3 ) / 2 )
RETURN
}
SUB channeling
{
IF ( spell , #SPC , channeling IN #PROPERTY )
{
SET %value %value + 40
IF ( faster , #SPC , casting , #SPC , -1 IN #PROPERTY )
SET %value %value - 40
}
RETURN
}
}
SUB leech
{
GOSUB Property mana , #spc , leech
IF #RESULT >= 30
SET %value %value + ( #RESULT )
GOSUB Property life , #spc , leech
IF #RESULT >= 20
SET %value %value + ( #RESULT / 3 )
GOSUB Property stamina , #spc , leech
IF #RESULT >= 20
SET %value %value + ( #RESULT / 3 )
RETURN
}
SUB damageIncrease
{
GOSUB Property spell , #SPC , damage , #spc , increase
IF #RESULT > 0
SET %value %value + ( #RESULT * 3 )
GOSUB Property $damage , #spc , increase
IF #RESULT >= 10 && durability NOTIN #property
SET %value %value + ( #RESULT * 2 )
IF #RESULT >= 30
SET %value %value + ( #RESULT )
RETURN
}
SUB reflectPhysical
{
GOSUB Property reflect , #SPC , physical , #SPC , damage
SET %value %value + ( ( #RESULT * 3 ) / 2 )
RETURN
}
SUB resist
{
GOSUB Resists
IF #RESULT > 10 && durability NOTIN #property
set %value %value + ( #RESULT )
IF #RESULT >= 35
SET %value %value + ( #RESULT )
RETURN
}
;---
SUB Resists
{
IF Resist , #SPC NOTIN #PROPERTY
RETURN #FALSE
SET %resiststring #PROPERTY
SET %totalresists 0
WHILE #TRUE
{
STR POS %resiststring Resist , #SPC
IF #STRRES > 0
{
SET #STRRES #STRRES + 6
STR DEL %resiststring 1 #STRRES
SET %resiststring #STRRES
STR POS #STRRES %
STR DEL %resiststring #STRRES 9999
SET %totalresists %totalresists + #STRRES
SET %ri 0
}
ELSE
BREAK
}
IF Total , #SPC , Resist , #SPC in #PROPERTY
{
GOSUB Property Total , #SPC , Resist , #SPC
SET %totalresists %totalresists - #RESULT
}
RETURN %totalresists
}
SUB Skills
{
IF #SPC , + NOTIN #PROPERTY
RETURN #FALSE
SET %skillstring #PROPERTY
SET %totalskills 0
SET %allskilltotal 0
WHILE #TRUE
{
STR POS %skillstring #SPC , +
IF #STRRES > 0
{
SET #STRRES #STRRES + 1
STR DEL %skillstring 1 #STRRES
SET %skillstring #STRRES
STR POS #STRRES $
STR DEL %skillstring #STRRES 9999
SET %allskilltotal %allskilltotal + #STRRES
IF #STRRES >= 10
SET %totalskills %totalskills + #STRRES
}
ELSE
BREAK
}
IF %totalskills >= 10
SET %totalskills %allskilltotal
RETURN %totalskills
}
SUB Property
{
IF ( %0 <> 1 ) || ( %1 NOTIN #PROPERTY )
RETURN #FALSE
SET %_property %1
STR POS #PROPERTY %_property
STR DEL #PROPERTY 1 #STRRES
SET %_string #STRRES
STR POS #STRRES $
STR DEL %_string #STRRES 9999
SET %_string #STRRES
STR LEN %_string
IF skill IN %_string
SET #STRRES #STRRES - 6
IF % IN %_string
SET #STRRES #STRRES - 1
SET %num_len 0
FOR %i #STRRES 1
{
SET %num_len %num_len + 1
STR MID %_string %i 1
IF #SPC IN #STRRES
{
STR MID %_string %i %num_len
SET %i 1
}
}
RETURN #STRRES
}
SUB BMGetProperty
{
SET %prop_timeout #SYSTIME + 1500
EVENT PROPERTY %1
WHILE #PROPERTY = $ || No , #SPC , Data IN #PROPERTY
{
IF No , #SPC , Data IN #PROPERTY
EVENT PROPERTY %1
IF #SYSTIME > %prop_timeout
RETURN #FALSE
}
RETURN #TRUE
}
SUB name
event property #findid
STR POS #property $
set %isim ( #strres - 1 )
STR LEFT #property %isim
set %name #strres
RETURN
sub ilksetup
display ok Birinci peti secelim.
SET #TARGCURS 1
pet1:
IF #TARGCURS = 1
{
WAIT 2
GOTO pet1
}
SET *pet1 #LTARGETID
wait 10
display ok Ikinci peti secelim.
SET #TARGCURS 1
pet2:
IF #TARGCURS = 1
{
WAIT 2
GOTO pet2
}
SET *pet2 #LTARGETID
wait 10
display yesnocancel Birinci pet mount ise yes'e, ikinci pet mount ise no'ya, ikisi de mount degilse cancel'a tiklayalim.
if #dispRes = yes
set %mount *pet1
if #dispres = no
set %mount *pet2
return