Скрипт на ковку/шитье бодов
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
-
Не в сети
- cocaine_deluxe
- Senior Member
- Сообщений: 23
- Thanks: 0

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

CTEPBA
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
-
Не в сети
- Allice [FreeZzy]
- Пророк
- United Pirates Guild
- Сообщений: 3317
- Thanks: 53

Вас ожидает в будущем произвольное появление кнопок и айди их в гампах на квесты и крафт =)) (Это шутка наверное. А может и не шутка)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
С каждым открытым окном крафта разные айди?FreeZzy написал:
Когда нибудь макросы убьют этот сервер (А сколько уже задонейчено в музей и билиотеку, врядли кто руками рубил)
Вас ожидает в будущем произвольное появление кнопок и айди их в гампах на квесты и крафт =)) (Это шутка наверное. А может и не шутка)

PS А что? Возможно и такое)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
-
Не в сети
- darkshadows
- Premium Member
- Сообщений: 100
- Thanks: 0

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
-
Не в сети
- darkshadows
- Premium Member
- Сообщений: 100
- Thanks: 0

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
По идее надо делать так:
1. Узнать какие кнопки не работают или срабатывает не то что нужно;
2. Узнать ID нерабочих кнопок;
3. Найти их в скрипте;
4. Составить алгоритм работы макроса с новыми кнопками;
5. Допилить скрипт.
Либо узнать у автора скрипта где и как зашифрованы гампы, хотя вряд ли он даст такую информацию.
[u:1lemh7cq]З.ы. Все что описал выше относится конечно же к s7BodFiller скрипту[/u:1lemh7cq]
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Razor в помощь.HxCKid написал:
Либо узнать у автора скрипта где и как зашифрованы гампы, хотя вряд ли он даст такую информацию.
[/u]
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
-
Не в сети
- darkshadows
- Premium Member
- Сообщений: 100
- Thanks: 0

;===================================================
; Script Name: s7BodFiller
; Author: snicker7
; Version: 2.6.1c
; Client Tested with: 7.0.1.1
; EUO version tested with: 1.5
; Shard OSI / FS: OSI / FS
; Revision Date: 04/25/10
; Public Release: 09/23/05
; Global Variables Used: no
; Purpose: Fills all smith and tailor large BODs and small BODs. Extremely easy setup, automatic. Also callable to fill a specific BOD from within another script should you so wish to do that. Works flawlessly on both EA shards AND RunUO Post-AOS freeshards!! Packy support and dropping finished BODs to a container or BOD book.
;====================================================
; Bugfixes in 2.6.1c:
; =- Works with new SA changes on EA shards. Should remain fully functional on freeshards.
; =- Script now comes with 2 versions of craftInfo.txt because of the major changes on EA shards.
; =- Big thanks to sciondal on the EUO forums for updating craftInfo.txt for EA shards.
; =- Tool making subroutine now looks up categories and selections on the craft menu from craftInfo.txt. Ensures accuracy.
; =- Fixed one missing BOD gump size that would cause occasional hangs.
; =- Some optimizations and other crap.
; =- Updated some mess for UO Legends freeshard.
; =- Adjusted gump sizes for recent EA shard changes.
;====================================================
set %pathlib #pathlib
if 1_5 in #euover
set %pathlib
; ===================================================================== ;
; ----------------------Do Not Edit Beyond Here------------------------ ;
; ===================================================================== ;
namespace push
namespace local _s7BFiller
set #lpc 60
set %debugMode #false
;thankin RK for the below:
set %freeshard _ , #shard , _ notin _TC1_origin_pacific_sonoma_baja_legends_atlantic_chesapeake_catskills_lake , #spc , austin_napa , #spc , valley_lake , #spc , superior_great , #spc , lakes_siege , #spc , perilous_europa_drachenfels_oceania_wakoku_formosa_arirang_balhae_asuka_yamato_mugen_hokuto_misuho_izumo_sakura_
set %nonSEFreeshard _ , #shard , _ in _Defiance , #spc , AOS_ABC , #spc , UO_
set %craftinfo craftInfo.txt
set %craftinfo_FS craftInfo_FS.txt
if %0 > 0
{
if %1 = exists 2
set #result #true
exit
set %s7BFCalled #true
gosub getEUOVer
set %s7BFBodID %1
set %s7BFSecureID %2
set %freeshard %3
if %freeshard
set %craftinfo %craftInfo_FS
gosub craftInfoCheck
gosub checkSBar
set %maxweight #maxweight
if %maxweight > 420
set %maxweight 420
for !fillbod 1 1
{
set !fillbod 0
gosub s7GetBODData
gosub getBodName %s7BFBodID
set %s7BF_BodName #result
if %s7BFBodAmountToMake = 0 2
namespace pop
exit
repeat
{
gosub MakeItems
menu set s7BFMenuStatus Filling %s7BF_BodName BOD...
gosub FillBod
}
until #result
wait 20
;gosub closeGump generic_gump %craftgumpx %craftgumpy
gosub returnResources
namespace pop
exit
}
}
if %0 = 0 || %0 = N/A
{
set %s7BFCalled #false
gosub getEUOVer
gosub craftInfoCheck
gosub initMenu
menu get chkFreeshard
set %freeshard #menures
if %freeshard
set %craftinfo %craftInfo_FS
menu get chkFillLbods
set %filllbods #menures
gosub checkSBar
set %maxweight #maxweight
if %maxweight > 420
set %maxweight 420
gosub makingMenu
if %euoVer < 15000 || %debugMode
{
finditem %s7BFSecureID C
set %returnResources #false
if #findbagID <> X && ( #findbagID <> #charid || %s7BFSecureID = #backpackid )
{
set %returnResources #true
set %s7BFMotherSecure #findbagid
set #lobjectid %s7BFMotherSecure
menu set s7BFMenuStatus Opening Mother Secure...
gosub s7WaitForAction 12
event macro 17 0
gosub s7WaitForVars contid = %s7BFMotherSecure 5
if #result
contpos 400 500
if ! #result
{
display ok The mother secure was unable to be opened correctly.$$The script may still continue provided that the secure opens correctly (which it probably won't) but resource returning will not function properly.
set %returnResources #false
}
}
}
set #lobjectid %s7BFSecureID
menu set s7BFMenuStatus Opening secure...
gosub s7WaitForAction 12
event macro 17 0
gosub s7WaitForVars contid = %s7BFSecureID 5
if #result
contpos 0 500
if ! #result
display ok The secure was unable to be opened.$$The script may still continue if you have some resources in your backpack, but most likely you're going to get an out of resources error.
if %fillall 2
finditem EYM C_ , #backpackid
set %s7BF_Bods2FillCnt #findcnt
set %s7BF_Bods2FillCnt2 %s7BF_Bods2FillCnt
set %bodi2 0
for %BODi 1 %s7BF_Bods2FillCnt
{
set %bodi2 %bodi2 + 1
set %s7BFBodID %s7BF_BodID . %BODi
if %fillall 2
finditem EYM %bodi c_ , #backpackid
set %s7BFBodID #findid
gosub getBodName %s7BFBodID
set %s7BF_BodName #result
menu set s7BFMenuStatus Getting bod data for %s7BF_BodName BOD # , %bodi2 of %s7BF_Bods2FillCnt2
gosub s7GetBODData
if ! #result
{
if %s7BFLBodIDs <> N/A
set %s7BFLBodIDs %s7BFLBodIDs , _ , %s7BFBodID
if %s7BFLBodIDs = N/A
set %s7BFLBodIDs %s7BFBodID
}
if #result && %s7BFBodAmountToMake > 0
{
repeat
{
gosub MakeItems
menu set s7BFMenuStatus Filling %s7BF_BodName BOD...
gosub FillBod
}
until #result
}
if %s7BFFBodContainer <> N/A
{
if %fillall
set %bodI %bodI - 1
if %fillAll && %bodi2 = %s7BF_Bods2FillCnt
set %bodI %s7BF_Bods2FillCnt
finditem %s7BFFBodContainer
set %s7BFBodContType #findtype
gosub s7MoveToCont %s7BFBodID %s7BFFBodContainer #findbagID 12_24
if %s7BFBodContType = dym
{
gosub s7WaitForVars contsize = !bodGumpContSize contname = generic_gump 2
if #result
{
set %cx #contposx + 10
set %cy #contposy + 10
click %cx %cy f r dmc
}
}
wait 10
}
gosub returnResources
}
if %s7BFLBodIDs <> N/A && %fillLbods
{
finditem %s7BFLBodIDs C_ , #backpackid
set %totallbods #findcnt
set %totallbods2 #findcnt
set %bodi2 0
for %BODi 1 %totallbods2
{
set %bodi2 %bodi2 + 1
finditem %s7BFLBodIDs %bodi C_ , #backpackid
menu set s7BFMenuStatus Getting LBOD data for LBOD %bodI2 of %totallbods
set %s7BFBodID #findid
gosub s7GetLBodData
if %S7BFLBODPIECES > 0
{
menu set s7BFMenuStatus Filling LBOD, could take a few seconds...
gosub s7FillLBod
if %s7BFFBodContainer <> N/A
{
wait 20
gosub s7GetLBodData
if %s7BFLBodPieces = 0
{
set %bodi %bodi - 1
set %totallbods2 %totallbods2 - 1
finditem %s7BFFBodContainer
gosub s7MoveToCont %s7BFBodID %s7BFFBodContainer #findbagID 12_24
}
}
}
}
}
;gosub closeGump generic_gump %craftgumpx %craftgumpy
menu set s7BFMenuStatus ALL DONE!!
halt
}
sub returnResources
if ( ! %returnResources && %euoVer < 15000 ) || %s7BFSecureID = #backpackid
return
set %resourceTypes CUI_BUI_AUI_DUI_FUI_GUI_ENK_JJG_GUF
for %_RR 1 1
{
finditem %resourceTypes C_ , #backpackid
if #findkind <> -1
{
set %_RR 0
gosub s7MoveToCont #findid %s7BFSecureID %s7BFMotherSecure 12_24
}
}
return
sub checkSbar
if #charname = N/A
{
event macro 8 2
gosub s7WaitForVars contsize = 432_184 contname = status_gump 2
if #result
{
set %tVar #contposx , _ , #contposy
event macro 10 2
for %i 1 40
{
wait 1
if #contposx , _ , #contposy <> %tvar
set %i 40
}
contpos 0 #cliyRes
}
}
return
sub craftInfoCheck
set !cgiItemName N/A
call %pathlib , %craftInfo wsf
if !cgiItemName <> dagger
{
display ok ERROR:$
+ , %craftInfo , #spc , is an incorrect version or$
+was not located. The correct location for$
+ , %craftInfo , #spc , should be:$ , #curpath , $
+so please make sure that , #spc , %craftInfo , #spc , is$
+in that location and the latest version.
halt
}
return
sub makingMenu
menu clear
menu window size 300 20
menu window color black
menu window title s7BODFiller
menu font color lime
menu font bgcolor black
menu font name arial
menu font size 8
menu text s7BFMenuStatus 2 2 Initializing...
set %menux #clileft
set %menuy #clitop + #cliyres
menu show %menux %menuy
return
sub initMenu
set #lpc 75
menu clear
menu window size 260 180
menu window color black
menu window title s7BodFiller
menu font color lime
menu font bgcolor black
menu font name Arial
menu font size 12
menu font style u
menu text title 2 2 s 7 B o d F i l l e r
menu font style
menu font size 8
menu text lblSelectedBods 4 24 Selected BODs:
menu list create lstSelectedBods 4 40 130 100
menu check chkFreeShard 136 40 100 14 %freeshard Freeshard?
menu check chkFillLBods 136 58 150 18 #true Fill Large Bods?
menu button btnChooseSecure 136 76 120 20 Choose Secure
menu button btnChooseContainer 136 98 120 20 Store finished BODs?
menu button btnBodAdd 4 142 31 20 add
menu button btnBodAddAll 37 142 31 20 all
menu button btnBodDel 70 142 31 20 del
menu button btnBodClr 103 142 31 20 clr
menu text s7BFMenuStatus 4 164 Please select the BODs and secure container...
set %readyToGoAll #false
set %readyToGo #false
set #menubutton N/A
menu show
for %_menu 1 1
{
set %_menu 0
if #menubutton <> N/A
{
if btnFill in #menubutton
{
set %fillall #false
if all in #menubutton 2
set %fillall #true
set %_menu 1
if all notin #menubutton && %readyToGo
set %_menu 1
}
if btnFill notin #menubutton
{
str del #menubutton 1 3
gosub #strRes
}
set #menubutton N/A
}
if %s7BFSecureID <> N/A && %s7BF_Bods2FillCnt > 0 && ! %readyToGo 2
menu button btnFill 196 142 60 20 Fill
set %readyToGo #true
if ( %s7BFSecureID = N/A || %s7BF_Bods2FillCnt = 0 ) && %readyToGo 2
menu delete btnFill
set %readyToGo #false
if %s7BFSecureID <> N/A && ! %readyToGoAll 2
menu button btnFillAll 196 120 60 20 Fill All
set %readyToGoAll #true
if %s7BFSecureID = N/A && %readyToGoAll 2
menu delete btnFillAll
set %readyToGoAll #false
wait 1
}
set #lpc 10
return
sub chooseContainer
menu set s7BFMenuStatus Please target your BOD book or container:
gosub s7GetTarget
set %s7BFFBodContainer #result
gosub s7GetProperty #result
str pos #property $
set #strRes #strres - 1
str left #property #strres
set %strres #strres
str len %strres
if #strres > 14
{
str left %strRes 14
str ins #strRes ... 15
set %strRes #strRes
}
str lower %strRes
menu set btnChooseContainer Drop: #strRes
menu set s7BFMenuStatus You have chosen " , #strRes , " as your drop.
return
sub chooseSecure
menu set s7BFMenuStatus Please target your secure:
gosub s7GetTarget
set %s7BFTargetedSecure #result
set %s7BFPackAnimalID N/A
finditem %s7BFTargetedSecure
if #findtype in bo_wn_zgb
{
if %euoVer < 15000 2
menu set s7BFMenuStatus Pack animals are only supported in EUO 1.5+.
return
menu set s7BFMenuStatus Pack animal targeted. Opening pack...
set %s7BFPackAnimalID %s7BFTargetedSecure
set %_tCont #contid
exevent popup %s7BFPackAnimalID 11
gosub s7WaitForVars contid <> %_tCont conttype = zjf 4
if ! #result 2
menu set s7BFMenuStatus Failed to open pack animal pack.
return
set %s7BFSecureID #contid
}
if #findtype notin bo_wn_zgb
set %s7BFSecureID %s7BFTargetedSecure
if %s7BFPackAnimalID <> N/A
gosub s7GetProperty %s7BFPAckAnimalID
if %s7BFPackAnimalID = N/A
gosub s7GetProperty %s7BFSecureID
str pos #property $
set #strRes #strres - 1
str left #property #strres
str lower #strRes
menu set btnChooseSecure Secure: #strRes
menu set s7BFMenuStatus You have chosen " , #strRes , " as your secure.
return
sub BodClr
set %s7BF_Bods2FillCnt 0
menu delete lstSelectedBods
menu list create lstSelectedBods 4 40 130 100
return
sub BodDel
menu get lstSelectedBods
for %b2fI #menures %s7BF_Bods2FillCnt
{
set %b2fioffset %b2fi + 1
set %s7BF_BodID . %b2fi %s7BF_BodID . %b2fioffset
set %s7BF_BodName . %b2fi %s7BF_BodName . %b2fioffset
}
set %s7BF_Bods2FillCnt %s7BF_Bods2FillCnt - 1
if %s7BF_Bods2FillCnt < 0
set %s7BF_Bods2FillCnt 0
menu delete lstSelectedBods
menu list create lstSelectedBods 4 40 130 100
if %s7BF_Bods2FillCnt > 0
{
for %b2fi 1 %s7BF_Bods2FillCnt
{
str lower %s7BF_BodName . %b2fi
menu list add lstSelectedBods #strRes
}
}
return
sub BodAddAll
finditem EYM C_ , #backpackid
if #findkind = -1 2
menu set s7BFMenuStatus No BODs found in backpack...
return
for %b2fi 1 1
{
finditem EYM C_ , #backpackid
if #findkind <> -1
{
gosub BodAdd #findid
ignoreitem #findid BODIgnore
set %b2fi 0
}
}
ignoreitem reset BODIgnore
return
sub BODAdd
set %bodtype EYM
if %0 = 0
{
menu set s7BFMenuStatus Please target the BOD to add...
gosub s7GetTarget
}
if %0 > 0
set #result %1
finditem #result
if #findtype <> %bodtype
{
menu set s7BFMenuStatus That is not a BOD!
return
}
if %s7BF_Bods2FillCnt <> 0
{
for %BBI 1 %s7BF_Bods2FillCnt
{
if #findid = %s7BF_BodID . %BBI
{
menu set s7BFMenuStatus That BOD is already in the list.
return
}
}
}
set %s7BF_Bods2FillCnt %s7BF_Bods2FillCnt + 1
set %s7BF_BodID . %s7BF_Bods2FillCnt #findid
gosub getBodName #findid
set %s7BF_BodName . %s7BF_Bods2FillCnt #result
str lower %s7BF_BodName . %s7BF_Bods2FillCnt
menu list add lstSelectedBods #strRes
menu delete status
return
;===================================;
;= PARSING SUBS ====================;
;===================================;
sub getBodName
gosub s7GetProperty %1 A , #spc , Bulk , #spc , Order , #spc , Deed$
set %s7BFLbodExceptional n
if exceptional in #property
set %s7BFLbodExceptional x
str pos #property make:
set %pos #strRes + 3
str del #property 1 %pos
set %s7BFItemString #strRes
str pos %s7BFItemString :
set %pos #strRes + 1
str pos %s7BFItemString $
set %len #strRes - %pos
str mid %s7BFItemString %pos %len
set %s7BFLBodCnt #strRes
str del %s7BFItemString 1 5
set %s7BFItemString #strRes
str pos %s7BFItemString :
set #strres #strres - 1
str left %s7BFItemString #strRes
set !gbi_item1 #strRes
if large , #spc , bulk in #property
{
if cutlass in !gbi_item1 || katana in !gbi_item1 || scimitar in !gbi_item1 || broad in !gbi_item1 || longsword in !gbi_item1 || viking in !gbi_item1
set %lbod Swords
if kryss in !gbi_item1 || spear in !gbi_item1 || warfork in !gbi_item1 || dagger in !gbi_item1
set %lbod Piercing
if axe in !gbi_item1 && war notin !gbi_item1
set %lbod Axes
if mace in !gbi_item1 || maul in !gbi_item1 || hammer in !gbi_item1 || war , #spc , axe in !gbi_item1
set %lbod Bashing
if bardiche in !gbi_item1 || halberd in !gbi_item1
set %lbod Polearms
if chainmail in !gbi_item1
set %lbod Chainmail
if ringmail in !gbi_item1
set %lbod Ringmail
if gorget in !gbi_item1
set %lbod Studded , #spc , Set
if plate in !gbi_item1 || plate in !gbi_item
set %lbod Platemail
if sandals in !gbi_item1
set %lbod Footwear , #spc , Set
if gorget in !gbi_item1
set %lbod Leather , #spc , Set
if skirt in !gbi_item1
set %lbod Female , #spc , Set
if bone in !gbi_item1
set %lbod Bone , #spc , AR
if bandana in !gbi_item1
set %lbod The , #spc , Gypsy
if skullcap in !gbi_item1
set %lbod The , #spc , Pirate
if straw in !gbi_item1
set %lbod The , #spc , Farmer
if wizard in !gbi_item1
set %lbod The , #spc , Wizard
if floppy in !gbi_item1
set %lbod Fishergirl
if feathered in !gbi_item1
set %lbod Town , #spc , Crier
if bonnet in !gbi_item1
set %lbod The , #spc , Lady
if jester in !gbi_item1
set %lbod The , #spc , Jester
if tricorne in !gbi_item1
set %lbod The , #spc , Hat-Set
return %s7BFLbodCnt , %s7bflbodexceptional , #spc , large , #spc , bod , #spc , " , %lbod , "
}
if small , #spc , bulk in #property
return %s7BFLbodCnt , %s7BFLBodExceptional , #spc , !gbi_item1
;///////////////////////////////////;
; getYContsize
; gets the height of a gump, used for clicking the combine button
;///////////////////////////////////;
sub getYContsize
str len #contsize
set %CSL #strRes
str pos #contsize _
set %CSFR %CSL - #strRes
str right #contsize %CSFR
return #strRes
;///////////////////////////////////;
; s7GetBodData
; parses the property of the bod and makes a call to Kal's craftinfo.txt to get the information about the item.
;///////////////////////////////////;
sub s7GetBODData
finditem %s7BFBodID C_ , #backpackid
gosub s7GetProperty %s7BFBodID A , #spc , Bulk , #spc , Order , #spc , Deed$
if large , #spc , bulk in #property
return #false
if #findcol = 1155
{
set %s7BFBodType Tailor
set %s7BFBodMaterial 0
set %s7BFBodMatFindCol N/A
if boots in #property || shoes in #property || sandals in #property || leather in #property || studded in #property 2
set %s7BFBodMatFindCol 0
set %s7BFBodMaterial 1
if cloth in #property
set %s7BFBodMaterial 0
if normal , #spc , leather in #property || bone in #property 2
set %s7BFBodMatFindCol 0
set %s7BFBodMaterial 1
if spined , #spc , leather in #property 2
set %s7BFBodMatFindCol 2220
set %s7BFBodMaterial 2
if horned , #spc , leather in #property 2
set %s7BFBodMatFindCol 2117
set %s7BFBodMaterial 3
if barbed , #spc , leather in #property 2
set %s7BFBodMatFindCol 2129
set %s7BFBodMaterial 4
}
if #findcol = 1102
{
set %s7BFBodType Smith
set %s7BFBodMaterial 1
set %s7BFBodMatFindCol 0
if iron , #spc , ingots in #property && shadow notin #property 2
set %s7BFBodMatFindCol 0
set %s7BFBodMaterial 1
if dull , #spc , copper , #spc , ingots in #property 2
set %s7BFBodMatFindCol 2419
set %s7BFBodMaterial 2
if shadow , #spc , ingots in #property 2
set %s7BFBodMatFindCol 2406
set %s7BFBodMaterial 3
if shadow , #spc , iron , #spc , ingots in #property 2
set %s7BFBodMatFindCol 2406
set %s7BFBodMaterial 3
if copper , #spc , ingots in #property && dull , #spc , copper notin #property 2
set %s7BFBodMatFindCol 2413
set %s7BFBodMaterial 4
if bronze , #spc , ingots in #property 2
set %s7BFBodMatFindCol 2418
set %s7BFBodMaterial 5
if gold , #spc , ingots in #property 2
set %s7BFBodMatFindCol 2213
set %s7BFBodMaterial 6
if agapite , #spc , ingots in #property 2
set %s7BFBodMatFindCol 2425
set %s7BFBodMaterial 7
if verite , #spc , ingots in #property 2
set %s7BFBodMatFindCol 2207
set %s7BFBodMaterial 8
if valorite , #spc , ingots in #property 2
set %s7BFBodMatFindCol 2219
set %s7BFBodMaterial 9
}
set %s7BFBodExceptional #false
if exceptional in #property
set %s7BFBodExceptional #true
if make: , #spc , 10 in #property
set %s7BFBodAmount 10
if make: , #spc , 15 in #property
set %s7BFBodAmount 15
if make: , #spc , 20 in #property
set %s7BFBodAmount 20
str pos #property make:
set %pos #strRes + 8
str del #property 1 %pos
set %s7BFItemString #strRes
str pos %s7BFItemString :
set %pos #strRes - 1
str left %s7BFItemString %pos
set %s7BFBodItem #strRes
gosub s7GetBodAmountMade
set %s7BFBodAmountToMake %s7BFBodAmount - %s7BFBodAmountMade
set !CGIMATERIALNAME2 N/A
call %pathlib , %craftInfo %s7BFBodItem
;====
;category/selection exceptions
;====
if %freeshard && %s7BFBodType = Tailor && #shard <> Alexandria
set !cgiCategory !cgiCategory - 1
if %freeshard && %nonSEFreeshard && %s7BFBodType = Tailor && !cgiCategory = 5
set !cgiSelection !cgiSelection - 2
;if ! %freeshard && %s7BFBodType = Tailor && !cgiCategory = 7
; set !cgiSelection !cgiSelection + 3
;if ! %freeshard && %s7BFBodType = Tailor && !cgiCategory = 6
; set !cgiSelection !cgiSelection + 1
;====
;end category/selection exceptions
;====
set !cgiSelection !cgiSelection + 1
if !cgiMaterialName1 = Cloth 2
set %s7BFBodMatWeight 1
set %s7BFBodMatType cui_bui_AUI_DUI_FUI_GUI
if !cgiMaterialName1 = Leather 2
set %s7BFBodMatWeight 10
set %s7BFBodMatType JJG
if !cgiMaterialName1 = ingots 2
set %s7BFBodMatWeight 1
set %s7BFBodMatType ENK
return #true
;///////////////////////////////////;
; s7GetBodAmountMade
; sub to get the number of pieces already in the bod ie 15/20, 15
;///////////////////////////////////;
sub s7GetBodAmountMade
set #lpc 100
str pos #property make:
set %pos #strRes + 8
str del #property 1 %pos
set %s7BFItemString #strRes
str pos %s7BFItemString :
set %pos #strRes + 1
str pos %s7BFItemString $
set %len #strRes - %pos
str mid %s7BFItemString %pos %len
set %s7BFBodAmountMade #strRes
set #lpc 10
return
;///////////////////////////////////;
; s7GetLBodData
; parses the lbod property and extracts number of items, names of items, and count/quality of items.
;///////////////////////////////////;
sub s7GetLBodData
set #lpc 100
finditem %s7BFBodID C_ , #backpackid
gosub s7GetProperty %s7BFBodID A , #spc , Bulk , #spc , Order , #spc , Deed$
set %s7BFLbodExceptional #false
if exceptional in #property
set %s7BFLbodExceptional #true
set %s7BFLBodMaterial 0
set %s7BFLBodProperty #property
str pos #property make:
set %pos #strRes + 3
str del #property 1 %pos
set %s7BFItemString #strRes
str pos %s7BFItemString :
set %pos #strRes + 1
str pos %s7BFItemString $
set %len #strRes - %pos
str mid %s7BFItemString %pos %len
set %s7BFLBodCnt #strRes
str del %s7BFItemString 1 5
set %s7BFItemString #strRes
set %s7BFLBodPieces 0
for %_ 1 1
{
str pos %s7BFItemString $
if #strRes > 0
{
set %_ 0
str pos %s7BFItemString :
set %pos #strRes + 2
str pos %s7BFItemString $
set %len #strRes - %pos
str mid %s7BFItemString %pos %len
if #strres = 0
{
set %s7BFLBodPieces %s7BFLBodPieces + 1
str pos %s7BFItemString :
set #strres #strRes - 1
str left %s7BFItemString #strRes
set %s7BFLBodPiece . %s7BFLBodPieces #strRes
}
str pos %s7BFITemString $
str del %s7BFItemString 1 #strRes
set %s7bfitemstring #strres
}
}
set #lpc 10
return
sub getEUOVer
set %euoVer #euover
for %_ 1 1
{
str pos %euoVer _
if #strRes > 0 3
set %_ 0
str del %euoVer #strRes 1
set %euoVer #strRes
}
return
;===================================;
;= FILLING SUBS ====================;
;===================================;
;///////////////////////////////////;
; FillBod
; opens current bod, clicks combine, targets items in pack
;///////////////////////////////////;
sub FillBod
set %s7FB_PreLPC #lpc
set #lpc 200
ignoreitem reset
gosub OpenBod %s7BFBodID target
gosub s7GetProperty %s7BFBodID A , #spc , Bulk , #spc , Order , #spc , Deed$
gosub s7GetBodAmountMade
finditem !cgiItemType C_ , #backpackid
if #findcnt > 0 && %s7BFBodAmountMade < %s7BFBodAmount
{
for #findindex 1 #findcnt
{
if #findcol <> %s7BFBODMATFINDCOL && %s7BFBODMatFindCol <> N/A
continue
if %s7BFBodExceptional
{
gosub s7GetProperty #findid
if exceptional notin #property
continue
}
set #ltargetid #findid
set #ltargetkind 1
gosub s7WaitForVars targCurs = 1 2
if #result
event macro 22 0
if ! #result
{
gosub s7GetProperty %s7BFBodID A , #spc , Bulk , #spc , Order , #spc , Deed$
gosub s7GetBodAmountMade
if %s7BFBodAmountMade < %s7BFBodAmount
{
gosub OpenBod %s7BFBodID target
set #findindex #findindex - 1
}
}
if #findindex < 1
set #findindex 1
}
wait 15
gosub s7GetProperty %s7BFBodID A , #spc , Bulk , #spc , Order , #spc , Deed$
gosub s7GetBodAmountMade
}
click %tx %ty f r dmc
set #lpc %S7BF_FBPreLPC
return %s7BFBodAmountMade >= %s7BFBodAmount
;///////////////////////////////////;
; OpenBod
; opens bod with ID passed as %1,
; clicks combine if %2 = "target"
;///////////////////////////////////;
sub OpenBod
set #lobjectid %1
set %two %2
gosub s7WaitForAction 12
event macro 17 0
gosub s7WaitForVars contsize in 510_275_510_230_510_275_510_254_510_395_510_347_510_371_510_323_510_182_510_302_510_326_510_350_524_275 contname = generic_gump 4
if %two = target && #result
{
gosub getycontsize
set %tx #contposx + 140
set %ty #contposy + #result - 75
if ! %freeshard
;set %ty %ty + 25
click %tx %ty
}
return #result
sub FillBodOLD
ignoreitem reset
set #lobjectid %s7BFBodID
set %s7BF_FBSuccess #true
gosub s7WaitForAction 12
event macro 17 0
gosub s7WaitForVars contsize in 510_275_510_230_510_275_510_254_510_395_510_347_510_371_510_323_510_182_510_302_510_326_510_350 contname = generic_gump 4
gosub getycontsize
set %tx #contposx + 140
set %ty #contposy + #result - 75
if ! %freeshard
set %ty %ty + 25
click %tx %ty
wait 10
targeting:
gosub s7GetProperty %s7BFBodID A , #spc , Bulk , #spc , Order , #spc , Deed$
gosub s7GetBodAmountMade
finditem !cgiItemType C_ , #backpackid
if #findcnt > 0 && %s7BFBodAmountMade < %s7BFBodAmount
{
if %s7BFBodExceptional
{
gosub s7GetProperty #findid
if exceptional notin #property || ( #findcol <> %s7BFBODMATFINDCOL && %s7BFBODMatFindCol <> N/A )
{
set %s7BF_FBSuccess #false
ignoreitem #findid
goto targeting
}
}
ignoreitem #findid
set #ltargetid #findid
set #ltargetkind 1
gosub s7WaitForVars targCurs = 1 2
if #result 2
event macro 22 0
goto targeting
if ! #result
{
set #lobjectid %s7BFBodID
gosub s7WaitForAction 12
event macro 17 0
gosub s7WaitForVars contsize in 510_275_510_230_510_275_510_254_510_395_510_347_510_371_510_323_510_182_510_302_510_326_510_350 contname = generic_gump 4
gosub getycontsize
set %tx #contposx + 140
set %ty #contposy + #result - 75
if ! %freeshard
set %ty %ty + 25
click %tx %ty
wait 10
ignoreitem reset
goto targeting
}
}
else if #findcnt = 0
{
wait 10
gosub s7GetProperty %s7BFBodID A , #spc , Bulk , #spc , Order , #spc , Deed$
gosub s7GetBodAmountMade
if %s7BFBODAmountMade < %s7BFBODAmount
set %s7BF_FBSuccess #false
}
wait 10
click %tx %ty f r dmc
return %s7BF_FBSuccess
;///////////////////////////////////;
; findTrashCan
; looks for the nearest circular filing cabinet
;///////////////////////////////////;
sub findTrashCan
gosub s7FindNamedItem BKF_HIF_IKF G_2 trash
if #result = #false
return #false
set %trashid #result
return #true
;///////////////////////////////////;
; openTrashCan
; opens the can and places it in a nice place for dropping items.
;///////////////////////////////////;
sub openTrashCan
set #lobjectid %trashid
gosub s7waitforaction 13
event macro 17 0
gosub s7waitforvars contid = %trashid 5
if ! #result
return #false
wait 10
contpos 250 500
set %trashx 270
set %trashy 530
wait 10
return #true
;///////////////////////////////////;
; s7FindSBod
; finds a filled sbod in backpack by name, quantity, and quality
;///////////////////////////////////;
sub s7FindSBod
set %FSBProp %2
set %FSBcnt %1
finditem EYM C_ , #backpackid
set %FSBfindcnt #findcnt
for %FSBfindI 1 %FSBfindcnt
{
finditem EYM %FSBfindI C_ , #backpackid
gosub s7GetProperty #findid A , #spc , Bulk , #spc , Order , #spc , Deed$
if %FSBProp in #property && large , #spc , bulk notin #property && ( ( %s7BFLbodExceptional && exceptional in #property ) || ( ! %s7BFLbodExceptional && exceptional notin #property ) )
{
gosub s7GetBodAmountMade
if %s7BFBodAmountMade = %FSBCnt && barbed notin %s7BFLBodProperty && horned notin %s7BFLBodProperty && spined notin %s7BFLBodProperty && shadow notin %s7BFLBodProperty && copper notin %s7BFLBodProperty && bronze notin %s7BFLBodProperty && gold notin %s7BFLBodProperty && agapite notin %s7BFLBodProperty && verite notin %s7BFLBodProperty && valorite notin %s7BFLBodProperty && barbed notin #property && horned notin #property && spined notin #property && shadow notin #property && copper notin #property && bronze notin #property && gold notin #property && agapite notin #property && verite notin #property && valorite notin #property
return #true
if %s7BFBodAmountMade = %FSBCnt && spined in %s7BFLBodProperty && spined in #property
return #true
if %s7BFBodAmountMade = %FSBCnt && horned in %s7BFLBodProperty && horned in #property
return #true
if %s7BFBodAmountMade = %FSBCnt && barbed in %s7BFLBodProperty && barbed in #property
return #true
if %s7BFBodAmountMade = %FSBCnt && dull , #spc , copper in %s7BFLBodProperty && dull , #spc , copper in #property
return #true
if %s7BFBodAmountMade = %FSBCnt && shadow , #spc , iron in %s7BFLBodProperty && shadow , #spc , iron in #property
return #true
if %s7BFBodAmountMade = %FSBCnt && copper in %s7BFLBodProperty && dull notin %s7BFLBodProperty && copper in #property && dull notin #property
return #true
if %s7BFBodAmountMade = %FSBCnt && bronze in %s7BFLBodProperty && bronze in #property
return #true
if %s7BFBodAmountMade = %FSBCnt && gold in %s7BFLBodProperty && gold in #property
return #true
if %s7BFBodAmountMade = %FSBCnt && agapite in %s7BFLBodProperty && agapite in #property
return #true
if %s7BFBodAmountMade = %FSBCnt && verite in %s7BFLBodProperty && verite in #property
return #true
if %s7BFBodAmountMade = %FSBCnt && valorite in %s7BFLBodProperty && valorite in #property
return #true
}
}
return #false
;///////////////////////////////////;
; s7FillLBod
; opens large bod, clicks combine, searches for the correct sbods to combine
;///////////////////////////////////;
sub s7FillLBod
set #lpc 60
set #lobjectid %s7BFBodID
gosub s7WaitForAction 12
event macro 17 0
gosub s7WaitForVars contsize in 510_275_510_230_510_275_510_254_510_395_510_347_510_371_510_323_510_182_510_302_510_326_510_350 contname = generic_gump 4
gosub getycontsize
set %tx #contposx + 140
set %ty #contposy + #result - 75
if ! %freeshard
set %ty %ty + 25
click %tx %ty
wait 10
for %sbodNum 1 %s7BFLBodPieces
{
if %s7BFLbodExceptional
menu set s7BFMenuStatus Looking for filled smallbod %s7BFLBodCnt , x %s7BFLBodPiece . %sbodNum ...
if ! %s7BFLbodExceptional
menu set s7BFMenuStatus Looking for filled smallbod %s7BFLBodCnt , n %s7BFLBodPiece . %sbodNum ...
gosub s7FindSbod %s7BFLBodCnt %s7BFLBodPiece . %sbodNum
if #result
{
set #ltargetid #findid
set #ltargetkind 1
for %_ 1 1
{
gosub s7WaitForVars targCurs = 1 2
if #result
event macro 22 0
if ! #result
{
set #lobjectid %s7BFBodID
gosub s7WaitForAction 12
event macro 17 0
gosub s7WaitForVars contsize in 510_275_510_230_510_275_510_254_510_395_510_347_510_371_510_323_510_182_510_302_510_326_510_350 contname = generic_gump 4
gosub getycontsize
set %tx #contposx + 140
set %ty #contposy + #result - 75
if ! %freeshard
set %ty %ty + 25
click %tx %ty
wait 10
set %_ 0
}
}
}
}
wait 10
click %tx %ty f r dmc
set #lpc 10
return
;===================================;
;= CRAFTING SUBS ===================;
;===================================;
;///////////////////////////////////;
; MakeItems
; loops through crafting the required amount of items for the current bod
;///////////////////////////////////;
sub MakeItems
set %s7BFMaterialSelected #false
gosub s7GetProperty %s7BFBodID A , #spc , Bulk , #spc , Order , #spc , Deed$
gosub s7GetBodAmountMade
set %s7BFBodAmountToMake %s7BFBodAmount - %s7BFBodAmountMade
set %s7BFBodMadeCnt 0
set %craftAttempts 0
for %MIi 1 1
{
finditem !cgiItemType C_ , #backpackid
set %MIItemFindCnt #findcnt
if #findkind <> -1
{
for %MIItemFindI 1 %MIItemFindCnt
{
finditem !cgiItemType C_ , #backpackid
if #findkind <> -1
{
set %MIItemFindID #findid
set %MiItemFindKind #findkind
set %s7BFBodMadeCnt %s7BFBodMadeCnt + 1
set %MIItemIgnore #true
if %s7BFBODMatFindCol <> N/A && #findcol <> %S7BFBODMATFINDCOL
{
set %s7BFBodMadeCnt %s7BFBodMadeCnt - 1
set %MIItemIgnore #false
ignoreitem #findid MIWrongColoredItems
}
if %s7BFBodExceptional && ( #findcol = %S7BFBODMATFINDCOL || %s7BFBODMatFindCol = N/A )
{
gosub s7GetProperty %MiItemFindID
if exceptional notin #property
{
set %s7BFBodMadeCnt %s7BFBodMadeCnt - 1
if %s7BFBodType = tailor
{
if bone in !CGICATEGORYNAME
{
gosub findTrashCan
if ! #result
{
display ok no trashcan found!!! halt.ing.
halt
}
if %euoVer < 15000
{
set %gumpcx #contposx + 10
set %gumpcy #contposy + 10
for %trashopen 1 1
{
click %trashx %trashy
wait 1
if #contid <> %trashID || %trashID = N/A 2
gosub openTrashcan
set %trashopen 0
}
gosub s7waitforaction 13
gosub s7MoveToPos %MIItemFindID %trashx %trashy 3
wait 10
click %gumpcx %gumpcy
}
else
{
gosub findTrashCan
gosub s7WaitForAction 13
gosub s7MoveToCont %MIItemFindID %trashID
}
}
if bone notin !CGICATEGORYNAME
{
set #ltargetid %MiItemFindID
set #ltargetkind 1
finditem JAG_KAG C
if #findkind = -1 2
display ok No scissors found! Get some!
halt
set #lobjectid #findid
gosub s7WaitForAction 12
event macro 17 0
target 2s
event macro 22 0
}
}
if %s7BFBodType = smith
{
gosub s7MakeAnything Smith Smelt %MIItemfindid
if ! #result
{
ignoreitem reset MICraftedItems
gosub MakeNewTool
set %s7BFBodMadeCnt 0
}
}
set %MIi 0
set %MIItemIgnore #false
}
}
if %MIItemIgnore
ignoreitem %MIItemFindID MICraftedItems
}
}
}
if %craftAttempts >= 2 && %s7BFBodMadeCnt = 0
{
namespace push
namespace local _s7MakeAnything
set !2 N/A
set !1 N/A
namespace pop
set %craftAttempts 0
set %s7BFMaterialSelected #false
}
if %MIi <> 0 && #weight > ( %maxweight - 5 - ( !cgiItemWeight * 2 ) )
{
ignoreitem reset MICraftedItems
finditem !cgiItemType C_ , #backpackid
if #findkind = -1 2
display ok We have a major problem. You are getting close to being overweight, yet you havent crafted any items to fill the BODs with. Please make some room in your pack, and restart the script.
halt
gosub FillBod
wait 3s
gosub s7GetProperty %s7BFBodID A , #spc , Bulk , #spc , Order , #spc , Deed$
gosub s7GetBodAmountMade
set %s7BFBodAmountToMake %s7BFBodAmount - %s7BFBodAmountMade
set %s7BFBodMadeCnt 0
set %craftAttempts 0
set %MIi 0
}
set %menucnt %s7bfbodamountmade + %s7bfbodmadecnt
if ! %s7BFCalled
menu set s7BFMenuStatus Making item %menucnt of %s7bfbodamount for %s7BF_BodName BOD %bodi2 of %s7BF_Bods2FillCnt2
if %s7BFCalled
menu set s7BFMenuStatus Making item %menucnt of %s7bfbodamount for %s7BF_BodName BOD
if %s7BFBodMadeCnt < %s7BFBodAmountToMake && %MIi <> 0
{
if ! %s7BFMaterialSelected && !CGIMATERIALNAME1 <> Cloth
{
gosub s7MakeAnything %s7BFBodType SelectMaterial %s7BFBodMaterial
set %s7BFMaterialSelected #true
if ! #result
{
ignoreitem reset MICraftedItems
gosub MakeNewTool
set %s7BFBodMadeCnt 0
set %s7BFMaterialSelected #false
}
}
if !CGIMATERIALNAME1 = INGOTS || !CGIMATERIALNAME1 = CLOTH
set %grabAmt ( %maxweight - #weight - 15 ) * 10
if !CGIMATERIALNAME1 = LEATHER
set %grabAmt ( %maxweight - #weight - 15 )
if %grabAmt > 250
set %grabAmt 250
if !cgiMaterialValue1 > %grabAmt
set %grabAmt !cgiMaterialValue1
if !CGIMATERIALNAME2 = BONES
{
set %boneGrabAmt 50
if %grabAmt - %boneGrabAmt < 0
set %boneGrabAmt !cgiMaterialValue2
if %grabAmt - %boneGrabAmt < 0 2
display ok You have too much extra weight on you to be able to grab enough bones and leather to make one more item. Please lose some weight and restart the script.
halt
set %grabAmt %grabAmt - %boneGrabAmt
}
gosub s7ResourceCheck %s7BFBodMatType %s7BFBodMatFindCol !cgiMaterialValue1 %grabAmt #true %s7BFSecureID
if !CGIMATERIALNAME2 = BONES && #result
gosub s7ResourceCheck GUF 0 !cgiMaterialValue2 %boneGrabAmt #true %s7BFSecureID
set %result #result
if ! %result
{
ignoreitem reset MICraftedItems
set %s7BFBodMadeCnt 0
finditem !cgiItemType C_ , #backpackid
if #findkind <> -1
{
gosub FillBod
wait 3s
gosub s7GetProperty %s7BFBodID A , #spc , Bulk , #spc , Order , #spc , Deed$
gosub s7GetBodAmountMade
set %s7BFBodAmountToMake %s7BFBodAmount - %s7BFBodAmountMade
set %craftAttempts 0
}
display ok You seem to lack materials! Pausing!
pause
}
if %result
{
gosub s7MakeAnything %s7BFBodType !CGICategory !CGISelection
if #result
{
namespace push
namespace local _s7MakeAnything
set %craftGumpx !CraftContPosX + 60
set %craftGumpy !CraftContPosY + 60
namespace pop
set %craftAttempts %craftAttempts + 1
}
if ! #result
{
ignoreitem reset MICraftedItems
gosub MakeNewTool
set %s7BFBodMadeCnt 0
}
if %s7BFBodMadeCnt >= ( %s7BFBodAmountToMake - 3 )
{
wait 3s
}
}
set %MIi 0
}
if ( %s7BFBodMadeCnt >= %s7BFBodAmountToMake && %MIi <> 0 ) || ( %s7BFBodAmountMade >= %s7BFBodAmount )
{
ignoreitem reset MIWrongColoredItems
ignoreitem reset MICraftedItems
gosub closeCraftGump
return #true
}
set %MIi 0
}
sub closeCraftGump
set %_CGt #systime
repeat
wait 1
until %_CGt + 500 < #systime || ( #contname = generic_gump && #contsize = !craftGumpContSize )
if #contname = generic_gump && #contsize = !craftGumpContSize
{
namespace push
namespace local _s7MakeAnything
set %cx !CraftContPosX + 30
set %cy !CraftContPosY + 415
click %cx %cy dmc
namespace pop
}
return
sub closeGump
click %2 %3
set %_CGt #systime
for %_CG 1 1
{
if %_CGt + 400 < #systime
return
if #contname <> %1
set %_CG 0
}
click %2 %3 r
return
;///////////////////////////////////;
; MakeNewTool
; makes a new tool. duh
;///////////////////////////////////;
sub MakeNewTool
namespace push
namespace local _s7BF_MakeNewTool
if !_s7BF_MNT_Init = N/A
{
set !_s7BF_MNT_Init #true
call %pathlib , %craftinfo HAG
set !tailorCat !cgiCategory
set !tailorSel !cgiSelection + 1
call %pathlib , %craftinfo tongs
set !smithCat !cgiCategory
set !smithSel !cgiSelection + 1
call %pathlib , %craftinfo tinker's_tools
set !tinkerCat !cgiCategory
set !tinkerSel !cgiSelection + 1
}
makeNewTool:
set %MNTCat !tailorCat
set %MNTSel !tailorSel
set %MNTTool HAG
ignoreitem reset
if %s7BFBodType = Smith
{
set %MNTCat !smithCat
set %MNTSel !smithSel
set %MNTTool OBG_TBG_TLH
}
gosub s7ResourceCheck %MNTTool 0 1 1 #false %s7BFSecureID
if ! #result
{
gosub s7ResourceCheck ENK 0 10 10 #true %s7BFSecureID
if ! #result 2
display ok You ran out of materials while crafting a tool$because you ran out of tools. pausing.$(upon your return please make sure you have 10 iron ingots in your pack.)
pause
if #result
{
finditem JTL_KTL_GTL C_ , #backpackid
if #findcnt = 0 2
display ok You ran out of tinker tools.. how are you going to craft tinker tools without more tinker tools?
halt
if #findcnt < 2
{
if %MNTMatSel = N/A || %MNTMatSel = #false
{
set %MNTMatSel #true
gosub s7MakeAnything Tinker SelectMaterial 1
if ! #result
set %MNTMatSel #false
}
gosub s7MakeAnything Tinker !tinkerCat !tinkerSel
wait 10
goto makeNewTool
}
gosub s7MakeAnything Tinker %MNTCat %MNTSel
if #result
{
gosub s7WaitForVars 530_ in #contsize contname = generic_gump 2
if #result
{
set %cx #contposx + 10
set %cy #contposy + 10
click %cx %cy f r dmc
}
}
}
}
namespace pop
return
; ===================================================================== ;
; ///////////////////////////////////////////////////////////////////// ;
; // EXCERPTS FROM S7SUBS.EUO ///////////////////////////////////////// ;
; ///////////////////////////////////////////////////////////////////// ;
; // Any reproduction of the subroutines below is strictly pro- /////// ;
; // hibited without express written permission of the author ///////// ;
; // (snicker7). Violation of the above will result in malicious ////// ;
; // actions by the aforementioned author performed upon your person // ;
; // including but not limited to: bodily harm, slander, maternal ///// ;
; // insults, possible legal action, and callin' the five-oh. Thank /// ;
; // you. ///////////////////////////////////////////////////////////// ;
; ///////////////////////////////////////////////////////////////////// ;
; ===================================================================== ;
;----
;* @name s7MoveToPos
;* @author snicker7
;* @ver 1.2 24Aug05
;* @purpose Just Another Item Dragger.
;* @params %1 is the item to be dragged
;* %2 is the x-coord to drop to
;* %3 is the y-coord to drop to
;* %4 is the timeout in seconds
;* %5 is the amount to be dragged (blank for all)
;* @returns #true if drop was successful
;* #false on error (drop to backpack, insufficient params, failed to drag)
;* halt on critical error
;* @notes moves any item to a position on the screen. Will
;* attempt to drop on character if drop fails. If character
;* drop fails, halts and error message to avoid crash.
;* @dependencies
;* s7WaitForAction
;* @example: call s7Subs.euo s7MoveToPos #findid 7 9 4 77
;* @status unknown
sub s7MoveToPos
if %0 < 4
return #false
namespace Push
namespace Local _s7MvToPos
set !_ID %1
set !_x %2
set !_y %3
set !_tO %4
set !_Amt #spc
if %0 > 4
set !_Amt %5
set !_retry 0
_s7MvToPos_SD:
finditem !_ID
if #findkind = -1 2
namespace pop
return #false
gosub s7WaitForAction 13
event drag #findid
if #findstack > 1
{
set !_timeOut #scnt
for !_ 1 1
{
if #contname <> stack_gump && #contname <> drag_gump
{
wait 1
if !_timeOut + !_tO < #scnt
{
set !_retry !_retry + 1
if !_retry > 2 2
namespace pop
return #false
goto _s7MvToPos_SD
}
set !_ 0
}
}
if !_Amt > #findstack
set !_Amt #findstack
msg !_Amt , $
}
set !_retry 0
set !_timeOut #scnt
for !_ 1 1
{
if #lliftedkind <> 1
{
wait 1
if !_timeOut + !_tO < #scnt
{
set !_retry !_retry + 1
if !_retry > 2 2
namespace pop
return #false
goto _s7MvToPos_SD
}
set !_ 0
}
}
set !_retry 0
click !_x !_y p
set !_timeout #scnt
for !_ 1 1
{
if #lliftedkind = 1
{
wait 1
if !_timeout + !_t0 < #scnt
{
set !_retry !_retry + 1
if !_retry = 1
{
set !_x #clixres / 2
set !_y ( #cliyres / 2 ) - 30
click !_x !_y p
set #result #false
set !_timeout #scnt
}
if !_retry = 2 2
display ok You have failed to drop an item to the correct position.$$The script is now halting to prevent a crash.
halt
}
set !_ 0
}
}
set #result #true
namespace pop
return #result
;----
;* @name s7MoveToCont
;* @author snicker7
;* @ver 1.2 24Aug05
;* @purpose A wrapper for the sub s7MoveToPos for moving to containers.
;* @params %1 is the item to be dragged
;* %2 is the container to drag to
;* %3 is the mother container in which %2 is contained
;* %4 is the #findmod value for the container
;* %5 is the amount to be dragged (blank for all)
;* @returns none
;* @notes this is mad basic. no error checking. That is up to you.
;* @dependencies s7MoveToPos
;* @example: call s7Subs.euo s7MoveToCont #findid #backpackid #charid 140_220
;* @status tested good
sub s7MoveToCont
namespace Push
namespace Local _s7MoveToCont
set !_ID %1
set !_DCont %2
set !_MCont %3
set !_FMod %4
if %euover >= 15000
{
set !_Amt 65535
if %0 > 4
set !_Amt abs %5
finditem !_ID
if #findkind = -1 2
namespace pop
return #false
gosub s7WaitForAction 13
exevent drag #findid !_Amt
exevent dropc !_DCont
namespace pop
return #true
}
set !_Amt #spc
if %0 > 4
set !_Amt %5
set #result #true
set !_retry 0
for !_ 1 1
{
finditem !_DCont C_ , !_MCont
if #findkind = -1
{
set #lobjectid !_MCont
gosub s7WaitForAction 13
event macro 17 0
gosub s7WaitForVars contid = !_MCont 3
if ! #result
{
set !_retry !_retry + 1
if !_retry > 2 2
namespace pop
return #false
}
set !_ 0
}
}
set !_retry 0
set #findmod !_Fmod
for !_ 1 1
{
gosub s7MoveToPos !_ID #findx #findy 4 !_Amt
if ! #result
{
set !_retry !_retry + 1
if !_retry > 2 2
namespace pop
return #false
set !_ 0
}
}
namespace Pop
return #true
;----
;* @name s7WaitForAction
;* @author snicker7
;* @ver 1.1 31Jan05
;* @purpose waits 1.3 seconds before continuing, useful for waiting to perform
;* another action
;* @params none
;* @returns none
;* @notes probably not an original idea, but I need to use it frequently and it
;* was easier to write it myself than to try to look for it as written by
;* someone else
;* @example: call s7Subs.euo s7WaitForAction 13
;* @status tested good
sub s7WaitForAction
_s7WaitForAction:
if %_s7ActionTimer + %1 > #scnt2 2
wait 1
goto _s7WaitForAction
set %_s7ActionTimer #scnt2
return
;----
;* @name s7WaitForVars
;* @author snicker7, inspired by Quintok, and of course, Smertrios
;* @ver 1.2 24Aug05
;* @purpose Multiple input sysvar waiter.
;* @params %1*n is the gump sysvar being checked
;* %2*n is the comparative operator (>, <, <>, =, etc)
;* %3*n is the desired value of the sysvar
;* %nfinal is the timeout in seconds
;* @returns #false if it times out
;* #true if success
;* @notes %1 does not require the preceding number sign
;* one line shorter than Q's, no disrespect son
;* originally written by Smertrios, included in Lexia
;* Multiple inputs by Quintok, Obfuscation and name-
;* spacing by snicker7!
;* @example: call s7Subs.euo s7WaitForVars contID = #backpackID contSize = 7_9 3
;* @status tested good
sub s7WaitForVars
namespace Push
namespace Local _s7WFVs
set !C %0 / 3
set !T #scnt + 5
if ( %0 % 3 ) = 1
set !T #scnt + % . %0
for !i 1 !C
{
set !o 3 * !i - 2
set !p !o + 1
set !q !o + 2
if ! ( # . % . !o % . !p % . !q )
set !i 0
if #scnt > !T 2
namespace pop
return #false
}
namespace Pop
return #true
;----
;* @name s7MakeAnything
;* @author snicker7
;* @ver 1.5 09Oct09
;* @purpose Crafting sub capable of dealing with the
;* standard crafting gump for all crafting skills.
;* @params %1 Crafting skill. Possible values are:
;* Tailor, Smith, Carpentry, Cooking,
;* Alchemy, Stonecrafting, Tinker,
;* Inscription, or Cartography
;* %2 Three possible options:
;* SelectMaterial: Selects the material to
;* craft with (if avaliable) by
;* index which is defined by %3.
;* Smelt/Cut: Only avaliable if %1 is
;* 'Tailor' or 'Smith', respectively.
;* Will cut or smelt the item passed
;* by ID as variable %3.
;* For Crafting: This should be a number
;* which corresponds to the category
;* on the crafting gump beginning
;* with the first category as 1.
;* %3 The material index for SelectMaterial,
;* the ID of the item to be smelted/cut for
;* Smelt/Cut, or the selection number of the
;* item you wish to make on the crafting menu.
;* %4 (optional) ID of specific tool to use. If
;* %4 is defined, the sub will use this tool
;* only to craft with. Used for runic kits.
;* The sub will return #false if the tool is
;* not found. Slower, as the tool will be
;* opened every call of the script, rather
;* than just waiting for the gump to return,
;* ensuring that the tool menu is the right
;* tool.
;* @returns #true The sub executed successfully.
;* #false A tool was not found to perform the
;* necessary operations. Useful, if the sub
;* returns #false, simply call it again to
;* make the correct tool.
;* @notes This sub automatically determines when to "Make Last."
;* If you call the sub twice in a row with the same
;* options, the second time it will click make last
;* instead of clicking through the whole menu.
;* @example: call s7subs.euo s7MakeAnything Smith 7 10 ;Make a warfork
;* call s7subs.euo s7MakeAnything Stonecrafting SelectMaterial 2 ;select dullcopper granite
;* call s7subs.euo s7MakeAnything Tailor Cut DFKLSED ;cuts the item with ID DFKLSED
;* call s7subs.euo s7MakeAnything Smith 7 10 EASUSPS ;makes a warfork using the tool with ID EASUSPS
;* @status almost done. still need to put in the cartotool type and find all types for all tools.
;----
sub s7MakeAnything
if %0 < 3
return #false
namespace push
namespace local _s7MakeAnything
if !s7MA_Init = N/A
{
set !s7MA_Init #true
set !freeshard abs ( _ , #shard , _ notin origin_pacific_sonoma_baja_legends_atlantic_chesapeake_catskills_lake , #spc , austin_napa , #spc , valley_lake , #spc , superior_great , #spc , lakes_siege , #spc , perilous_europa_drachenfels_oceania_wakoku_formosa_arirang_balhae_asuka_yamato_mugen_hokuto_misuho_izumo_sakura_TC1_ )
if %freeshard <> N/A
set !freeshard abs ( %freeshard )
set !nonSEFreeshard abs ( _ , #shard , _ in _Defiance , #spc , AOS_ABC , #spc , UO_ )
set !craftGumpContSize 530_437
set !bodGumpContSize 615_454
if !freeshard <> 1
{
set !craftGumpContSize 530_497
set !bodGumpContSize 620_459
}
}
if %0 = 4 && !tool <> N/A
{
finditem %4 C_ , #backpackid
if #findkind = -1 2
namespace pop
return #false
if ( #findtype notin !tool && #findid notin !tool ) 2
namespace pop
return #false
set !tool %4
set !FirstCall #true
}
if !1 = %1 && !2 = %2 && !3 = %3 && %2 <> SelectMaterial && !2 notin Smelt_Cut
set !MakeLast #true
if !1 <> %1 || !2 <> %2 || !3 <> %3 || %2 = SelectMaterial || %2 in Smelt_Cut
{
set !1 %1
if !1 = Tailor
set !tool HAG
if !1 = Smith
set !tool OBG_TBG_TLH_FBG
if !1 = Carpentry
set !tool EGG_IGG_KGG
if !1 = Cooking
set !tool BCG_DND_OGG
if !1 = Alchemy
set !tool RQF
if !1 = Stonecrafting
set !tool ZEH
if !1 = Tinker
set !tool JTL_KTL_GTL
if !1 = Inscription
set !tool PBG
if !1 = Cartography
set !tool PBG
if %0 = 4
{
finditem %4 C_ , #backpackid
if #findkind = -1 2
namespace pop
return #false
if #findtype notin !tool 2
namespace pop
return #false
set !tool %4
}
if %0 < 4
{
finditem !tool C_ , #backpackid
if #findkind = -1 2
namespace Pop
return #false
}
set !FirstCall #true
set !MakeLast #false
if %2 in smelt_cut 3
set !FirstCall #false
set !destroyID %3
set !destroy #true
if !Destroy && !1 notin smith_tailor 2
namespace Pop
return #false
if %2 notin smelt_cut 2
set !3 %3
set !2 %2
if !2 = SelectMaterial
set !2 15
}
for !selection 2 3
{
for !loop 1 1
{
set #result #true
if !1 = Tailor && !destroy
set !loop 2
if ( ! !FirstCall || ( !1 = Smith && !Destroy ) ) && !loop <> 2 2
gosub s7WaitForVars contsize = !craftGumpContSize contname = generic_gump 2
set !loop 1
if ( ! #result || !FirstCall ) && !loop <> 2
{
gosub s7WaitForVars contsize = !craftGumpContSize contname = generic_gump 1
finditem !tool C_ , #backpackid
if #findkind = -1 2
namespace Pop
return #false
gosub s7WaitForAction 12
set #lobjectid #findid
event macro 17 0
set !loop 0
set !FirstCall #False
}
}
set !CraftContPosX #contposx
set !CraftContPosY #contposy
if !MakeLast && ! !destroy
{
set !_Cx #contposx + 280
set !_Cy #contposy + 450 - !freeshard * 40
click !_Cx !_Cy
namespace Pop
return #true
}
if !selection = 2
{
if !destroy && !1 = Tailor
{
finditem JAG_KAG C
if #findkind = -1 2
namespace pop
return #false
set #lobjectid #findid
set #ltargetid !destroyid
set #ltargetkind 1
gosub s7WaitForAction 12
event macro 17 0
target 2s
event macro 22 0
set !destroy #false
namespace pop
return #true
}
wait 10
set !_Cx #contposx + 20
set !_Cy ( #contposy + 70 + ( !2 * 20 ) )
if !destroy && !1 = Smith
set !_Cy ( #contposy + 70 + ( 14 * 20 ) )
click !_Cx !_Cy
if !destroy && !1 = Smith
{
target 2s
set #ltargetid !destroyid
set #ltargetkind 1
event macro 22 0
set !destroy #false
gosub s7WaitForVars contsize = !craftGumpContSize contname = generic_gump 2
namespace pop
return #true
}
}
if !selection = 3
{
set !3t !3
for !loop 0 1
{
if !3t > 10
{
;set !_Cx #contposx + 380
;set !_Cy #contposy + 270
set !_Cx #contposx + 382
set !_Cy #contposy + 292
click !_Cx !_Cy
set !3t !3t - 10
set !loop 0
}
if !3t <= 10
{
set !_Cx #contposx + 230
set !_Cy ( #contposy + 50 + ( !3t * 20 ) )
click !_Cx !_Cy
gosub s7WaitForVars contsize = !craftGumpContSize contname = generic_gump 2
namespace Pop
return #true
}
}
}
}
;----
;* @name s7GetTarget
;* @author snicker7
;* @ver 1.0 27Dec04
;* @purpose Returns a target using #targcurs, objects only.
;* @params none
;* @returns Item id of the targeted item.
;* @notes none
;* @example: gosub getTarget
;* @status tested good
sub s7GetTarget
set #targcurs 1
_waitfortargcurs:
if #targcurs = 1 2
wait 1
goto _waitfortargcurs
return #ltargetid
;----
;* @name s7FindNamedItem
;* @author snicker7
;* @ver 1.1 06Aug05
;* @purpose find an item based on its name
;* @params %1 type of item to search for
;* %2 "location" to search (typical finditem values: G_3; C_ , #backpackid; etc)
;* %3-%n properties to match
;* @dependencies
;* @returns #false no such item was found
;* <ItmID> the ID of the item found
;* @notes Written for bodcollectorer.
;* @example: gosub s7FindNamedItem HS_IS G_10 tailor weaver ;finds all BOD giving tailors within 10 tiles
;* @status done
sub s7FindNamedItem
namespace push
namespace local _s7_FNI
set !zero %0
set !type %1
set !location %2
finditem !type !location
if #findkind = -1
{
namespace pop
return #false
}
set !findcnt #findcnt
for !findI 1 !findcnt
{
finditem !type !findI !location
gosub s7GetProperty #findid
for !nameI 3 !zero
{
if % . !nameI in #property
{
namespace pop
return #findid
}
}
}
return #false
;----
;* @name s7GetProperty
;* @author snicker7
;* @ver 2.1 20080309
;* @purpose failsafe method for obtaining property values.
;* @params %1 ID of item to get property of.
;* @dependencies N/A
;* @returns N/A
;* @notes N/A
;* @example: gosub s7GetProperty #findid
;* @status done
sub s7GetProperty
set !_7gpt #systime
event property %1
for !_7gp 1 1
{
if !_7gpt + 1500 < #systime
return #false
if #property = $ || no , #spc , significant in #property || no , #spc , data in #property || ( %0 > 1 && %0 = 2 && #property = %2 )
set !_7gp 0
if no , #spc , data in #property || ( %0 > 1 && %0 = 2 && #property = %2 )
event property %1
}
return #true
;===========
;**
;* @name s7ResourceCheck
;* @ver 1.1 05May05
;* @author snicker7
;* @purpose Checks to see if a certain amount of resources are in the backpack, if not, restocks from a set container
;* @params %1 Type of resource to check
;* %2 FindCol of resource, N/A if irrelevant
;* %3 Minimum amount of resource to have
;* %4 How many to restock if not enough found
;* %5 True/False: is the resource stackable
;* %6 Container ID to restock from
;* @returns #true Restock was successful
;* #false Resources not found in backpack or secure
;* @dependencies s7MoveToCont
;* @example call s7subs.euo s7ResourceCheck WZF N/A 6 100 #true %secure
;* @status testing
sub s7ResourceCheck
namespace push
namespace local _s7ResCzech
set !ResType %1
set !ResCol %2
set !ResCount %3
set !RestockCnt %4
set !StkCnt cnt
if %5
set !StkCnt stack
set !RestockCont %6
for !ResI 0 1
{
finditem !resType C_ , #backpackid
set !BPItemCount 0
if #findkind <> -1
{
set !FindCnt #findCnt
for !CountItem 1 !FindCnt
{
finditem !resType !CountItem C_ , #backpackid
if ( !ResCol <> N/A && #findcol = !ResCol ) || !ResCol = N/A
set !BPItemCount !BPItemCount + #find . !stkCnt
}
}
if !BPItemCount >= !ResCount && !ResI <> 0
{
namespace pop
return #true
}
if !BPItemCount < !resCount && !ResI <> 0
{
finditem !resType C_ , !restockCont
set !SecureItemCount 0
if #findkind <> -1
{
set !FindCnt #findCnt
for !CountItem 1 !FindCnt
{
finditem !resType !CountItem C_ , !restockCont
if ( !ResCol <> N/A && #findcol = !ResCol ) || !ResCol = N/A 2
set !SecureItemCount !SecureItemCount + #find . !stkCnt
set !RestockID #findid
}
}
if ( !SecureItemCount + !BPItemCount ) < !resCount
{
namespace pop
return #false
}
set !RestockAmt !restockCnt - !BPItemCount
gosub s7MoveToCont !RestockID #backpackid #charid 140_220 !restockAmt
wait 20
set !ResI 0
}
}
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
-
Не в сети
- darkshadows
- Premium Member
- Сообщений: 100
- Thanks: 0

;==================================
; Script Name: craftinfo.txt
; Author: Kal In Ex
; Version: 2.00-EA
; Client Tested with:
; EUO version tested with:
; Shard OSI / FS: OSI
; Revision Date: October 09, 2009
; Public Release: April 21, 2005
; Global Variables Used:
; Purpose: info useful for crafting. Version sanctioned by snicker7
; for use with s7BODFiller on EA Shards. Thanks to sciondal for
; updating this to the new SA crafting menu locations.
; Copyright 2005 Kal In Ex
;==================================
; tailoring, blacksmithy, tinkering
set !cgiItemName n/a
set !cgiItemType n/a
set !cgiItemWeight n/a
set !cgiItemDisposal n/a
set !cgiCategoryName n/a
set !cgiCategory n/a
set !cgiSelection n/a
set !cgiSkillCount n/a
set !cgiSkillName1 n/a
set !cgiSkillValue1 n/a
set !cgiMaterialCount n/a
set !cgiMaterialName1 n/a
set !cgiMaterialValue1 n/a
if %1 = cut-up_cloth || %1 = cut-up , #spc , cloth || %1 = cui
gosub _sub cut-up_cloth bui 1 trash materials 1 0 1 tailoring 0 1 cloth 0
if %1 = combine_cloth || %1 = combine , #spc , cloth || %1 = bui
gosub _sub combine_cloth bui 1 trash materials 1 1 1 tailoring 0 1 cloth 0
if %1 = skullcap || %1 = czh
gosub _sub skullcap czh 1 scissors hats 1 0 1 tailoring 0 1 cloth 2
if %1 = bandana || %1 = gzh
gosub _sub bandana gzh 1 scissors hats 1 1 1 tailoring 0 1 cloth 2
if %1 = floppy_hat || %1 = floppy , #spc , hat || %1 = bwi
gosub _sub floppy_hat bwi 1 trash hats 1 2 1 tailoring 62 1 cloth 11
if %1 = cap || %1 = vvi
gosub _sub cap vvi 1 trash hats 1 3 1 tailoring 62 1 cloth 11
if %1 = wide-brim_hat || %1 = wide-brim , #spc , hat || %1 = wvi
gosub _sub wide-brim_hat wvi 1 trash hats 1 4 1 tailoring 62 1 cloth 12
if %1 = straw_hat || %1 = straw , #spc , hat || %1 = xvi
gosub _sub straw_hat xvi 1 trash hats 1 5 1 tailoring 62 1 cloth 10
if %1 = tall_straw_hat || %1 = tall , #spc , straw , #spc , hat
gosub _sub tall_straw_hat yvi 1 trash hats 1 6 1 tailoring 67 1 cloth 13
if %1 = wizard's_hat || %1 = wizard's , #spc , hat || %1 = iwi
gosub _sub wizard's_hat iwi 1 trash hats 1 7 1 tailoring 72 1 cloth 15
if %1 = bonnet || %1 = hwi
gosub _sub bonnet hwi 1 trash hats 1 8 1 tailoring 62 1 cloth 11
if %1 = feathered_hat || %1 = feathered , #spc , hat || %1 = kwi
gosub _sub feathered_hat kwi 1 trash hats 1 9 1 tailoring 62 1 cloth 12
if %1 = tricorne_hat || %1 = tricorne , #spc , hat || %1 = jwi
gosub _sub tricorne_hat jwi 1 trash hats 1 10 1 tailoring 62 1 cloth 12
if %1 = jester_hat || %1 = jester , #spc , hat || %1 = ewi
gosub _sub jester_hat ewi 1 trash hats 1 11 1 tailoring 72 1 cloth 15
if %1 = flower_garland || %1 = flower , #spc , garland || %1 = jjn
gosub _sub flower_garland jjn 1 scissors hats 1 12 1 tailoring 100 1 cloth 5
if %1 = cloth_ninja_hood || %1 = cloth , #spc , ninja , #spc , hood
gosub _sub cloth_ninja_hood bcp 2 scissors hats 1 13 1 tailoring 800 1 cloth 13
if %1 = kasa || %1 = ucp
gosub _sub kasa ucp 3 scissors hats 1 14 1 tailoring 600 1 cloth 12
if %1 = doublet || %1 = xvl
gosub _sub doublet xvl 2 scissors shirts 2 0 1 tailoring 0 1 cloth 8
if %1 = shirt || %1 = fci
gosub _sub shirt fci 1 scissors shirts 2 1 1 tailoring 207 1 cloth 8
if %1 = fancy_shirt || %1 = fancy , #spc , shirt || %1 = tql
gosub _sub fancy_shirt tql 2 scissors shirts 2 2 1 tailoring 248 1 cloth 8
if %1 = tunic || %1 = hcm
gosub _sub tunic hcm 5 scissors shirts 2 3 1 tailoring 0 1 cloth 12
if %1 = surcoat || %1 = pam
gosub _sub surcoat pam 6 scissors shirts 2 4 1 tailoring 82 1 cloth 14
if %1 = plain_dress || %1 = plain , #spc , dress || %1 = dwl
gosub _sub plain_dress dwl 2 scissors shirts 2 5 1 tailoring 124 1 cloth 10
if %1 = fancy_dress || %1 = fancy , #spc , dress || %1 = vql_EWL
gosub _sub fancy_dress vql_EWL 3 scissors shirts 2 6 1 tailoring 331 1 cloth 12
if %1 = cloak || %1 = dci
gosub _sub cloak dci 5 scissors shirts 2 7 1 tailoring 414 1 cloth 14
if %1 = robe || %1 = fwl
gosub _sub robe fwl 3 scissors shirts 2 8 1 tailoring 539 1 cloth 16
if %1 = jester_suit || %1 = jester , #spc , suit || %1 = xbm
gosub _sub jester_suit xbm 4 scissors shirts 2 9 1 tailoring 82 1 cloth 24
if %1 = fur_cape || %1 = fur , #spc , cape || %1 = vjn
gosub _sub fur_cape vjn 4 scissors shirts 2 10 1 tailoring 350 1 cloth 13
if %1 = gilded_dress || %1 = gilded , #spc , dress || %1 = rjn
gosub _sub gilded_dress rjn 3 scissors shirts 2 11 1 tailoring 375 1 cloth 16
if %1 = formal_shirt || %1 = formal , #spc , shirt || %1 = tjn
gosub _sub formal_shirt tjn 1 scissors shirts 2 12 1 tailoring 260 1 cloth 16
if %1 = cloth_ninja_jacket || %1 = cloth , #spc , ninja , #spc , jacket
gosub _sub cloth_ninja_jacket icp 5 scissors shirts 2 13 1 tailoring 750 1 cloth 12
if %1 = kamishimo || %1 = tcp
gosub _sub kamishimo tcp 3 scissors shirts 2 14 1 tailoring 750 1 cloth 15
if %1 = hakama-shita || %1 = qcp
gosub _sub hakama-shita qcp 3 scissors shirts 2 15 1 tailoring 400 1 cloth 14
if %1 = male_kimono || %1 = male , #spc , kimono || %1 = ybp
gosub _sub male_kimono ybp 4 scissors shirts 2 16 1 tailoring 500 1 cloth 16
if %1 = female_kimono || %1 = female , #spc , kimono || %1 = xbp
gosub _sub female_kimono xbp 4 scissors shirts 2 17 1 tailoring 500 1 cloth 16
if %1 = jin-baori || %1 = bdp
gosub _sub jin-baori bdp 3 scissors shirts 2 18 1 tailoring 300 1 cloth 10
if %1 = short_pants || %1 = short , #spc , pants || %1 = edi
gosub _sub short_pants edi 2 scissors pants 3 0 1 tailoring 248 1 cloth 6
if %1 = long_pants || %1 = long , #spc , pants || %1 = vdi
gosub _sub long_pants vdi 2 scissors pants 3 1 1 tailoring 248 1 cloth 8
if %1 = kilt || %1 = ldi
gosub _sub kilt ldi 2 scissors pants 3 2 1 tailoring 207 1 cloth 8
if %1 = skirt || %1 = gci
gosub _sub skirt gci 4 scissors pants 3 3 1 tailoring 290 1 cloth 10
if %1 = fur_sarong || %1 = fur , #spc , sarong || %1 = xjn
gosub _sub fur_sarong xjn 3 scissors pants 3 4 1 tailoring 350 1 cloth 12
if %1 = hakama || %1 = wcp
gosub _sub hakama wcp 2 scissors pants 3 5 1 tailoring 500 1 cloth 16
if %1 = tattsuke-hakama || %1 = vcp
gosub _sub tattsuke-hakama vcp 2 scissors pants 3 6 1 tailoring 500 1 cloth 16
if %1 = body_sash || %1 = body , #spc , sash || %1 = fzh
gosub _sub body_sash fzh 1 scissors miscellaneous 4 0 1 tailoring 41 1 cloth 4
if %1 = half_apron || %1 = half , #spc , apron || %1 = xdi
gosub _sub half_apron xdi 2 scissors miscellaneous 4 1 1 tailoring 207 1 cloth 6
if %1 = full_apron || %1 = full , #spc , apron || %1 = rdi
gosub _sub full_apron rdi 4 scissors miscellaneous 4 2 1 tailoring 290 1 cloth 10
if %1 = obi || %1 = cdp
gosub _sub obi cdp 1 scissors miscellaneous 4 3 1 tailoring 200 1 cloth 6
if %1 = oil_cloth || %1 = oil , #spc , cloth || %1 = rti
gosub _sub oil_cloth rti 1 trash miscellaneous 4 10 1 tailoring 746 1 cloth 1
if %1 = goza_(east) || %1 = goza , #spc , (east) || %1 = ewh
gosub _sub goza_(east) ewh 1 trash miscellaneous 4 11 1 tailoring 550 1 cloth 25
if %1 = goza_(south) || %1 = goza , #spc , (south) || %1 = ewh
gosub _sub goza_(south) ewh 1 trash miscellaneous 4 12 1 tailoring 550 1 cloth 25
if %1 = square_goza_(east) || %1 = square , #spc , goza , #spc , (east)
gosub _sub square_goza_(east) ewh 1 trash miscellaneous 4 13 1 tailoring 550 1 cloth 25
if %1 = square_goza_(south) || %1 = square , #spc , goza , #spc , (south)
gosub _sub square_goza_(south) ewh 1 trash miscellaneous 4 14 1 tailoring 550 1 cloth 25
if %1 = brocade_goza_(east) || %1 = brocade , #spc , goza , #spc , (east)
gosub _sub brocade_goza_(east) ewh 1 trash miscellaneous 4 15 1 tailoring 550 1 cloth 25
if %1 = brocade_goza_(south) || %1 = brocade , #spc , goza , #spc , (south)
gosub _sub brocade_goza_(south) ewh 1 trash miscellaneous 4 16 1 tailoring 550 1 cloth 25
if %1 = square_brocade_goza_(east) || %1 = square , #spc , brocade , #spc , goza
gosub _sub square_brocade_goza_(east) ewh 1 trash miscellaneous 4 17 1 tailoring 550 1 cloth 25
if %1 = square_brocade_goza_(south) || %1 = square , #spc , brocade , #spc , goza
gosub _sub square_brocade_goza_(south) ewh 1 trash miscellaneous 4 18 1 tailoring 550 1 cloth 25
if %1 = fur_boots || %1 = fur , #spc , boots || %1 = ljn
gosub _sub fur_boots ljn 3 scissors footwear 5 1 1 tailoring 500 1 cloth 12
if %1 = ninja_tabi || %1 = ninja , #spc , tabi || %1 = jcp
gosub _sub ninja_tabi jcp 2 scissors footwear 5 2 1 tailoring 700 1 cloth 10
if %1 = waraji_and_tabi || %1 = waraji , #spc , and , #spc , tabi
gosub _sub waraji_and_tabi kcp 2 scissors footwear 5 3 1 tailoring 200 1 cloth 6
if %1 = sandals || %1 = nvi
gosub _sub sandals nvi 1 trash footwear 5 4 1 tailoring 124 1 leather 4
if %1 = shoes || %1 in pvi_awi
gosub _sub shoes pvi_awi 2 trash footwear 5 5 1 tailoring 165 1 leather 6
if %1 = boots || %1 = tvi
gosub _sub boots tvi 3 trash footwear 5 6 1 tailoring 331 1 leather 8
if %1 = thigh_boots || %1 = thigh , #spc , boots || %1 in cwi_ZVI
gosub _sub thigh_boots cwi_ZVI 4 trash footwear 5 7 1 tailoring 414 1 leather 10
if %1 = leather_gorget || %1 = leather , #spc , gorget || %1 = jkh
gosub _sub leather_gorget jkh 1 scissors lether_armor 6 3 1 tailoring 539 1 leather 4
if %1 = leather_cap || %1 = leather , #spc , cap || %1 = njl
gosub _sub leather_cap njl 2 scissors lether_armor 6 4 1 tailoring 62 1 leather 2
if %1 = leather_gloves || %1 = leather , #spc , gloves || %1 = kkh
gosub _sub leather_gloves kkh 1 scissors lether_armor 6 5 1 tailoring 518 1 leather 3
if %1 = leather_sleeves || %1 = leather , #spc , sleeves || %1 = hkh
gosub _sub leather_sleeves hkh_PKH 2 scissors lether_armor 6 6 1 tailoring 539 1 leather 8
if %1 = leather_leggings || %1 = leather , #spc , leggings || %1 = vkh
gosub _sub leather_leggings vkh 4 scissors lether_armor 6 7 1 tailoring 663 1 leather 10
if %1 = leather_tunic || %1 = leather , #spc , tunic || %1 = qkh
gosub _sub leather_tunic qkh 6 scissors lether_armor 6 8 1 tailoring 705 1 leather 12
if %1 = leather_jingasa || %1 = leather , #spc , jingasa || %1 = gwo
gosub _sub leather_jingasa gwo 3 scissors lether_armor 6 9 1 tailoring 450 1 leather 4
if %1 = leather_mempo || %1 = leather , #spc , mempo || %1 = swo
gosub _sub leather_mempo swo 2 scissors lether_armor 6 10 1 tailoring 800 1 leather 8
if %1 = leather_do || %1 = leather , #spc , do || %1 = rwo
gosub _sub leather_do rwo 6 scissors lether_armor 6 11 1 tailoring 750 1 leather 12
if %1 = leather_hiro_sode || %1 = leather , #spc , hiro , #spc , sode
gosub _sub leather_hiro_sode owo 1 scissors lether_armor 6 12 1 tailoring 550 1 leather 5
if %1 = leather_suneate || %1 = leather , #spc , suneate || %1 = ubp
gosub _sub leather_suneate ubp 4 scissors lether_armor 6 13 1 tailoring 680 1 leather 12
if %1 = leather_haidate || %1 = leather , #spc , haidate || %1 = gcp
gosub _sub leather_haidate gcp 4 scissors lether_armor 6 14 1 tailoring 680 1 leather 12
if %1 = leather_ninja_pants || %1 = leather , #spc , ninja , #spc , pants
gosub _sub leather_ninja_pants lcp 3 scissors lether_armor 6 15 1 tailoring 800 1 leather 13
if %1 = leather_ninja_jacket || %1 = leather , #spc , ninja , #spc , jacket
gosub _sub leather_ninja_jacket ncp 5 scissors lether_armor 6 16 1 tailoring 850 1 leather 13
if %1 = leather_ninja_belt || %1 = leather , #spc , ninja , #spc , belt
gosub _sub leather_ninja_belt mcp 1 scissors lether_armor 6 17 1 tailoring 500 1 leather 5
if %1 = leather_ninja_mitts || %1 = leather , #spc , ninja , #spc , mitts
gosub _sub leather_ninja_mitts ocp 2 scissors lether_armor 6 18 1 tailoring 650 1 leather 12
if %1 = leather_ninja_hood || %1 = leather , #spc , ninja , #spc , hood
gosub _sub leather_ninja_hood ccp 2 scissors lether_armor 6 19 1 tailoring 900 1 leather 14
if %1 = studded_gorget || %1 = studded , #spc , gorget || %1 = alh
gosub _sub studded_gorget alh 1 scissors studded_armor 8 0 1 tailoring 788 1 leather 6
if %1 = studded_gloves || %1 = studded , #spc , gloves || %1 = xkh
gosub _sub studded_gloves xkh 1 scissors studded_armor 8 1 1 tailoring 829 1 leather 8
if %1 = studded_sleeves || %1 = studded , #spc , sleeves || %1 = ykh_GLH
gosub _sub studded_sleeves ykh_GLH 4 scissors studded_armor 8 2 1 tailoring 871 1 leather 10
if %1 = studded_leggings || %1 = studded , #spc , leggings || %1 = mlh
gosub _sub studded_leggings mlh 5 scissors studded_armor 8 3 1 tailoring 912 1 leather 12
if %1 = studded_tunic || %1 = studded , #spc , tunic || %1 = llh
gosub _sub studded_tunic llh 8 scissors studded_armor 8 4 1 tailoring 940 1 leather 14
if %1 = studded_mempo || %1 = studded , #spc , mempo || %1 = pcp
gosub _sub studded_mempo pcp 2 scissors studded_armor 8 5 1 tailoring 800 1 leather 8
if %1 = studded_do || %1 = studded , #spc , do || %1 = mwo
gosub _sub studded_do mwo 8 scissors studded_armor 8 6 1 tailoring 950 1 leather 14
if %1 = studded_hiro_sode || %1 = studded , #spc , hiro , #spc , sode
gosub _sub studded_hiro_sode nwo 1 scissors studded_armor 8 7 1 tailoring 850 1 leather 8
if %1 = studded_suneate || %1 = studded , #spc , suneate || %1 = tbp
gosub _sub studded_suneate tbp 5 scissors studded_armor 8 8 1 tailoring 920 1 leather 14
if %1 = studded_haidate || %1 = studded , #spc , haidate || %1 = fcp
gosub _sub studded_haidate fcp 5 scissors studded_armor 8 9 1 tailoring 920 1 leather 14
if %1 = leather_shorts || %1 = leather , #spc , shorts || %1 = qsk
gosub _sub leather_shorts qsk 3 scissors female_armor 9 0 1 tailoring 622 1 leather 8
if %1 = leather_skirt || %1 = leather , #spc , skirt || %1 = ysk
gosub _sub leather_skirt ysk 1 scissors female_armor 9 1 1 tailoring 580 1 leather 6
if %1 = leather_bustier || %1 = leather , #spc , bustier || %1 = atk
gosub _sub leather_bustier atk 1 scissors female_armor 9 2 1 tailoring 580 1 leather 6
if %1 = studded_bustier || %1 = studded , #spc , bustier || %1 = usk
gosub _sub studded_bustier usk 1 scissors female_armor 9 3 1 tailoring 829 1 leather 8
if %1 = female_leather_armor || %1 = female , #spc , leather , #spc , armor
gosub _sub female_leather_armor osk 1 scissors female_armor 9 4 1 tailoring 622 1 leather 8
if %1 = studded_armor || %1 = studded , #spc , armor || %1 = ssk
gosub _sub studded_armor ssk 6 scissors female_armor 9 5 1 tailoring 871 1 leather 10
if %1 = bone_helmet || %1 = bone , #spc , helmet || %1 in yph_zph
gosub _sub bone_helmet yph_zph 3 trash bone_armor 10 0 1 tailoring 850 2 leather 4 bones 2
if %1 = bone_gloves || %1 = bone , #spc , gloves || %1 in vph_AQH
gosub _sub bone_gloves vph_aqh 2 trash bone_armor 10 1 1 tailoring 890 2 leather 6 bones 2
if %1 = bone_arms || %1 = bone , #spc , arms || %1 in bqh_qph
gosub _sub bone_arms bqh_qph 2 trash bone_armor 10 2 1 tailoring 920 2 leather 8 bones 4
if %1 = bone_leggings || %1 = bone , #spc , leggings || %1 = cqh
gosub _sub bone_leggings cqh 3 trash bone_armor 10 3 1 tailoring 950 2 leather 10 bones 6
if %1 = bone_armor || %1 = bone , #spc , armor || %1 = pph
gosub _sub bone_armor pph 6 trash bone_armor 10 4 1 tailoring 960 2 leather 12 bones 10
if %1 = ringmail_gloves || %1 = ringmail , #spc , gloves || %1 = bmh
gosub _sub ringmail_gloves bmh 2 smelt ringmail 1 0 1 blacksmithy 120 1 ingots 10
if %1 = ringmail_leggings || %1 = ringmail , #spc , leggings || %1 = imh
gosub _sub ringmail_leggings imh 15 smelt ringmail 1 1 1 blacksmithy 194 1 ingots 16
if %1 = ringmail_sleeves || %1 = ringmail , #spc , sleeves || %1 = xlh
gosub _sub ringmail_sleeves xlh_ylh 15 smelt ringmail 1 2 1 blacksmithy 169 1 ingots 14
if %1 = ringmail_tunic || %1 = ringmail , #spc , tunic || %1 = wlh
gosub _sub ringmail_tunic wlh 15 smelt ringmail 1 3 1 blacksmithy 219 1 ingots 18
if %1 = chainmail_coif || %1 = chainmail__coif || %1 = chainmail , #spc , #spc , coif || %1 = chainmail , #spc , coif || %1 = dph
gosub _sub chainmail_coif dph 7 smelt chainmail 1 4 1 blacksmithy 145 1 ingots 10
if %1 = chainmail_leggings || %1 = chainmail , #spc , leggings || %1 = aph
gosub _sub chainmail_leggings aph 7 smelt chainmail 1 5 1 blacksmithy 367 1 ingots 18
if %1 = chainmail_tunic || %1 = chainmail , #spc , tunic || %1 = zoh
gosub _sub chainmail_tunic zoh 7 smelt chainmail 1 6 1 blacksmithy 391 1 ingots 20
if %1 = platemail_arms || %1 = platemail , #spc , arms || %1 = msh
gosub _sub platemail_arms msh 5 smelt platemail 1 7 1 blacksmithy 663 1 ingots 18
if %1 = platemail_gloves || %1 = platemail , #spc , gloves || %1 = ish
gosub _sub platemail_gloves ish 2 smelt platemail 1 8 1 blacksmithy 589 1 ingots 12
if %1 = platemail_gorget || %1 = platemail , #spc , gorget || %1 = nsh
gosub _sub platemail_gorget nsh 2 smelt platemail 1 9 1 blacksmithy 564 1 ingots 10
if %1 = platemail_legs || %1 = platemail , #spc , legs || %1 = lsh
gosub _sub platemail_legs lsh 7 smelt platemail 1 10 1 blacksmithy 688 1 ingots 20
if %1 = platemail_(tunic) || %1 = platemail , #spc , (tunic) || %1 = platemail_tunic || %1 = platemail , #spc , tunic || %1 = hsh
gosub _sub platemail_(tunic) hsh 10 smelt platemail 1 11 1 blacksmithy 750 1 ingots 25
if %1 = platemail_(female) || %1 = platemail , #spc , (female) || %1 = female_plate || %1 = female , #spc , plate || %1 = msk
gosub _sub platemail_(female) msk 4 smelt platemail 1 12 1 blacksmithy 441 1 ingots 20
if %1 = dragon_barding_deed || %1 = dragon , #spc , barding , #spc , deed
gosub _sub dragon_barding_deed ewh 1 smelt platemail 1 13 1 blacksmithy 725 1 ingots 750
if %1 = platemail_mempo || %1 = platemail , #spc , mempo || %1 = pwo
gosub _sub platemail_mempo pwo 3 smelt platemail 1 14 1 blacksmithy 800 1 ingots 18
if %1 = platemail_do || %1 = platemail , #spc , do || %1 = lwo
gosub _sub platemail_do lwo 10 smelt platemail 1 15 1 blacksmithy 870 1 ingots 28
if %1 = platemail_hiro_sode || %1 = platemail , #spc , hiro , #spc , sode
gosub _sub platemail_hiro_sode wbp 2 smelt platemail 1 16 1 blacksmithy 800 1 ingots 16
if %1 = platemail_suneate || %1 = platemail , #spc , suneate || %1 = ecp
gosub _sub platemail_suneate ecp 7 smelt platemail 1 17 1 blacksmithy 650 1 ingots 20
if %1 = platemail_haidate || %1 = platemail , #spc , haidate || %1 = zbp
gosub _sub platemail_haidate zbp 7 smelt platemail 1 18 1 blacksmithy 650 1 ingots 20
if %1 = bascinet || %1 = ash
gosub _sub bascinet ash 5 smelt helmets 2 0 1 blacksmithy 83 1 ingots 15
if %1 = close_helmet || %1 = close , #spc , helmet || %1 = esh
gosub _sub close_helmet esh 5 smelt helmets 2 1 1 blacksmithy 379 1 ingots 15
if %1 = helmet || %1 = gsh
gosub _sub helmet gsh 5 smelt helmets 2 2 1 blacksmithy 379 1 ingots 15
if %1 = norse_helm || %1 = norse , #spc , helm || %1 = csh
gosub _sub norse_helm csh 5 smelt helmets 2 3 1 blacksmithy 379 1 ingots 15
if %1 = plate_helm || %1 = plate , #spc , helm || %1 = osh
gosub _sub plate_helm osh 5 smelt helmets 2 4 1 blacksmithy 626 1 ingots 15
if %1 = chainmail_hatsuburi || %1 = chainmail , #spc , hatsuburi || %1 = ewo
gosub _sub chainmail_hatsuburi ewo 7 smelt helmets 2 5 1 blacksmithy 300 1 ingots 20
if %1 = platemail_hatsuburi || %1 = platemail , #spc , hatsuburi || %1 = dwo
gosub _sub platemail_hatsuburi dwo 5 smelt helmets 2 6 1 blacksmithy 450 1 ingots 20
if %1 = heavy_platemail_jingasa || %1 = heavy , #spc , platemail , #spc , jingasa
gosub _sub heavy_platemail_jingasa fwo 5 smelt helmets 2 7 1 blacksmithy 450 1 ingots 20
if %1 = light_platemail_jingasa || %1 = light , #spc , platemail , #spc , jingasa
gosub _sub light_platemail_jingasa vbp 5 smelt helmets 2 8 1 blacksmithy 450 1 ingots 20
if %1 = small_platemail_jingasa || %1 = small , #spc , platemail , #spc , jingasa
gosub _sub small_platemail_jingasa sbp 5 smelt helmets 2 9 1 blacksmithy 450 1 ingots 20
if %1 = decorative_platemail_kabuto || %1 = decorative , #spc , platemail , #spc , kabuto
gosub _sub decorative_platemail_kabuto qwo 6 smelt helmets 2 10 1 blacksmithy 900 1 ingots 25
if %1 = platemail_battle_kabuto || %1 = platemail , #spc , battle , #spc , kabuto
gosub _sub platemail_battle_kabuto rbp 6 smelt helmets 2 11 1 blacksmithy 900 1 ingots 25
if %1 = standard_platemail_kabuto || %1 = standard , #spc , platemail , #spc , kabuto
gosub _sub standard_platemail_kabuto dcp 6 smelt helmets 2 12 1 blacksmithy 900 1 ingots 25
if %1 = buckler || %1 = buckler , #spc || %1 = fik
gosub _sub buckler fik 5 smelt shields 3 0 1 blacksmithy 0 1 ingots 10
if %1 = bronze_shield || %1 = bronze , #spc , shield || %1 = gik
gosub _sub bronze_shield gik 6 smelt shields 3 1 1 blacksmithy 0 1 ingots 12
if %1 = heater_shield || %1 = heater , #spc , shield || %1 = cik
gosub _sub heater_shield cik 8 smelt shields 3 2 1 blacksmithy 243 1 ingots 18
if %1 = metal_shield || %1 = metal , #spc , shield || %1 = nik
gosub _sub metal_shield nik 6 smelt shields 3 3 1 blacksmithy 0 1 ingots 14
if %1 = metal_kite_shield || %1 = metal , #spc , kite , #spc , shield
gosub _sub metal_kite_shield aik 7 smelt shields 3 4 1 blacksmithy 46 1 ingots 16
if %1 = tear_kite_shield || %1 = tear , #spc , kite , #spc , shield
gosub _sub tear_kite_shield mik_lik 5 smelt shields 3 5 1 blacksmithy 0 1 ingots 8
if %1 = chaos_shield || %1 = chaos , #spc , shield || %1 = hlk
gosub _sub chaos_shield hlk 5 smelt shields 3 6 1 blacksmithy 850 1 ingots 25
if %1 = order_shield || %1 = order , #spc , shield || %1 = clk
gosub _sub order_shield clk 7 smelt shields 3 7 1 blacksmithy 850 1 ingots 25
if %1 = bone_harvester || %1 = bone , #spc , harvester || %1 = fuo
gosub _sub bone_harvester fuo 3 smelt bladed 4 0 1 blacksmithy 330 1 ingots 10
if %1 = broadsword || %1 = atf
gosub _sub broadsword atf 6 smelt bladed 4 1 1 blacksmithy 354 1 ingots 10
if %1 = crescent_blade || %1 = crescent , #spc , blade || %1 = npo
gosub _sub crescent_blade npo 1 smelt bladed 4 2 1 blacksmithy 450 1 ingots 14
if %1 = cutlass || %1 = jph
gosub _sub cutlass jph 8 smelt bladed 4 3 1 blacksmithy 243 1 ingots 8
if %1 = dagger || %1 in tsf_wsf
gosub _sub dagger tsf_wsf 1 smelt bladed 4 4 1 blacksmithy 0 1 ingots 3
if %1 = katana || %1 = nmh
gosub _sub katana nmh 6 smelt bladed 4 5 1 blacksmithy 441 1 ingots 8
if %1 = kryss || %1 = vrh
gosub _sub kryss vrh 2 smelt bladed 4 6 1 blacksmithy 367 1 ingots 8
if %1 = longsword || %1 = jtf
gosub _sub longsword jtf 7 smelt bladed 4 7 1 blacksmithy 280 1 ingots 12
if %1 = scimitar || %1 = soh
gosub _sub scimitar soh 5 smelt bladed 4 8 1 blacksmithy 317 1 ingots 10
if %1 = viking_sword || %1 = viking , #spc , sword || %1 = bph
gosub _sub viking_sword bph 6 smelt bladed 4 9 1 blacksmithy 243 1 ingots 14
if %1 = no-dachi || %1 = edp
gosub _sub no-dachi edp 10 smelt bladed 4 10 1 blacksmithy 750 1 ingots 18
if %1 = wakizashi || %1 = ycp
gosub _sub wakizashi ycp 5 smelt bladed 4 11 1 blacksmithy 500 1 ingots 8
if %1 = lajatang || %1 = zcp
gosub _sub lajatang zcp 12 smelt bladed 4 12 1 blacksmithy 800 1 ingots 25
if %1 = daisho || %1 = jdp
gosub _sub daisho jdp 8 smelt bladed 4 13 1 blacksmithy 600 1 ingots 15
if %1 = tekagi || %1 = ldp
gosub _sub tekagi ldp 5 smelt bladed 4 14 1 blacksmithy 550 1 ingots 12
if %1 = shuriken || %1 = gdp
gosub _sub shuriken gdp 1 smelt bladed 4 15 1 blacksmithy 450 1 ingots 5
if %1 = kama || %1 = fdp
gosub _sub kama fdp 7 smelt bladed 4 16 1 blacksmithy 400 1 ingots 14
if %1 = sai || %1 = hdp
gosub _sub sai hdp 7 smelt bladed 4 17 1 blacksmithy 500 1 ingots 12
if %1 = axe || %1 = lsf
gosub _sub axe lsf 4 smelt axes 5 0 1 blacksmithy 342 1 ingots 14
if %1 = battle_axe || %1 = battle , #spc , axe || %1 = bsf
gosub _sub battle_axe bsf 4 smelt axes 5 1 1 blacksmithy 305 1 ingots 14
if %1 = double_axe || %1 = double , #spc , axe || %1 = nsf
gosub _sub double_axe nsf 8 smelt axes 5 2 1 blacksmithy 293 1 ingots 12
if %1 = executioner's_axe || %1 = executioner's , #spc , axe || %1 = zrf
gosub _sub executioner's_axe zrf 8 smelt axes 5 3 1 blacksmithy 342 1 ingots 14
if %1 = large_battle_axe || %1 = large , #spc , battle , #spc , axe
gosub _sub large_battle_axe rmh 6 smelt axes 5 4 1 blacksmithy 280 1 ingots 12
if %1 = two_handed_axe || %1 = two , #spc , handed , #spc , axe
gosub _sub two_handed_axe lph 8 smelt axes 5 5 1 blacksmithy 330 1 ingots 16
if %1 = war_axe || %1 = war , #spc , axe || %1 = uoh
gosub _sub war_axe uoh 8 smelt axes 5 6 1 blacksmithy 391 1 ingots 16
if %1 = bardiche || %1 = hsf
gosub _sub bardiche hsf 7 smelt polearms 6 0 1 blacksmithy 317 1 ingots 18
if %1 = bladed_staff || %1 = bladed , #spc , staff || %1 = zto
gosub _sub bladed_staff zto 4 smelt polearms 6 1 1 blacksmithy 400 1 ingots 12
if %1 = double_bladed_staff || %1 = double , #spc , bladed , #spc , staff
gosub _sub double_bladed_staff buo 2 smelt polearms 6 2 1 blacksmithy 450 1 ingots 16
if %1 = halberd || %1 in yth_xth
gosub _sub halberd yth_xth 16 smelt polearms 6 3 1 blacksmithy 391 1 ingots 20
if %1 = lance || %1 = opo
gosub _sub lance opo 12 smelt polearms 6 4 1 blacksmithy 480 1 ingots 20
if %1 = pike || %1 = cuo
gosub _sub pike cuo 8 smelt polearms 6 5 1 blacksmithy 470 1 ingots 12
if %1 = short_spear || %1 = short , #spc , spear || %1 = xrh
gosub _sub short_spear xrh 4 smelt polearms 6 6 1 blacksmithy 453 1 ingots 6
if %1 = scythe || %1 = guo
gosub _sub scythe guo 5 smelt polearms 6 7 1 blacksmithy 390 1 ingots 14
if %1 = spear || %1 = mtf
gosub _sub spear mtf 7 smelt polearms 6 8 1 blacksmithy 490 1 ingots 12
if %1 = war_fork || %1 = war , #spc , fork || %1 = rrh
gosub _sub war_fork rrh 9 smelt polearms 6 9 1 blacksmithy 429 1 ingots 12
if %1 = hammer_pick || %1 = hammer , #spc , pick || %1 = vth
gosub _sub hammer_pick vth 9 smelt bashing 7 0 1 blacksmithy 342 1 ingots 16
if %1 = mace || %1 = ysf
gosub _sub mace ysf 14 smelt bashing 7 1 1 blacksmithy 145 1 ingots 6
if %1 = maul || %1 = buh
gosub _sub maul buh 10 smelt bashing 7 2 1 blacksmithy 194 1 ingots 10
if %1 = scepter || %1 = auo
gosub _sub scepter auo 8 smelt bashing 7 3 1 blacksmithy 214 1 ingots 10
if %1 = war_mace || %1 = war , #spc , mace || %1 = trh
gosub _sub war_mace trh 17 smelt bashing 7 4 1 blacksmithy 280 1 ingots 14
if %1 = war_hammer || %1 = war , #spc , hammer || %1 = zth
gosub _sub war_hammer zth 10 smelt bashing 7 5 1 blacksmithy 342 1 ingots 16
if %1 = tessen || %1 = ddp
gosub _sub tessen ddp 1 smelt bashing 7 6 2 blacksmithy 850 tailoring 500 2 ingots 16 cloth 10
if %1 = dragon_gloves || %1 = dragon , #spc , gloves || %1 = rko
gosub _sub dragon_gloves rko 2 trash dragon_scale_armor 9 0 1 blacksmithy 689 1 dragon_scales 16
if %1 = dragon_helm || %1 = dragon , #spc , helm || %1 = lko
gosub _sub dragon_helm lko 5 trash dragon_scale_armor 9 1 1 blacksmithy 726 1 dragon_scales 20
if %1 = dragon_leggings || %1 = dragon , #spc , leggings || %1 = nko
gosub _sub dragon_leggings nko 6 trash dragon_scale_armor 9 2 1 blacksmithy 788 1 dragon_scales 28
if %1 = dragon_sleeves || %1 = dragon , #spc , sleeves || %1 = dlo
gosub _sub dragon_sleeves dlo 5 trash dragon_scale_armor 9 3 1 blacksmithy 763 1 dragon_scales 24
if %1 = dragon_breastplate || %1 = dragon , #spc , breastplate || %1 = pko
gosub _sub dragon_breastplate pko 10 trash dragon_scale_armor 9 4 1 blacksmithy 850 1 dragon_scales 36
if %1 = jointing_plane || %1 = jointing , #spc , plane || %1 = igg
gosub _sub jointing_plane igg 2 trash wooden_items 2 1 1 tinkering 0 1 boards 4
if %1 = moulding_planes || %1 = moulding , #spc , planes || %1 = wfg
gosub _sub moulding_planes wfg 2 trash wooden_items 2 2 1 tinkering 0 1 boards 4
if %1 = smoothing_plane || %1 = smoothing , #spc , plane || %1 = kgg
gosub _sub smoothing_plane kgg 1 trash wooden_items 2 3 1 tinkering 0 1 boards 4
if %1 = clock_frame || %1 = clock , #spc , frame || %1 = dcg
gosub _sub clock_frame dcg 2 trash wooden_items 2 4 1 tinkering 0 1 boards 6
if %1 = axle || %1 = zcg
gosub _sub axle zcg 1 trash wooden_items 2 5 1 tinkering 0 1 boards 1
if %1 = rolling_pin || %1 = rolling , #spc , pin || %1 = bcg
gosub _sub rolling_pin bcg 1 trash wooden_items 2 6 1 tinkering 0 1 boards 5
if %1 = nunchaku || %1 = idp
gosub _sub nunchaku idp 5 trash wooden_items 2 0 1 tinkering 700 2 ingots 3 boards 8
if %1 = scissors || %1 = kag
gosub _sub scissors kag 1 trash tools 3 0 1 tinkering 50 1 ingots 2
if %1 = mortar_and_pestle || %1 = mortar , #spc , and , #spc , pestle
gosub _sub mortar_and_pestle rqf 1 trash tools 3 1 1 tinkering 200 1 ingots 3
if %1 = scorp || %1 = big
gosub _sub scorp big 1 trash tools 3 2 1 tinkering 300 1 ingots 2
if %1 = tinker's_tools || %1 = tinker's , #spc , tools || %1 = jtl
gosub _sub tinker's_tools jtl 1 trash tools 3 3 1 tinkering 100 1 ingots 2
if %1 = hatchet || %1 = fsf
gosub _sub hatchet fsf 4 trash tools 3 4 1 tinkering 300 1 ingots 4
if %1 = draw_knife || %1 = draw , #spc , knife || %1 = aig
gosub _sub draw_knife aig 1 trash tools 3 5 1 tinkering 300 1 ingots 2
if %1 = sewing_kit || %1 = sewing , #spc , kit || %1 = hag
gosub _sub sewing_kit hag 2 trash tools 3 6 1 tinkering 100 1 ingots 2
if %1 = saw || %1 = egg
gosub _sub saw egg 2 trash tools 3 7 1 tinkering 300 1 ingots 4
if %1 = dovetail_saw || %1 = dovetail , #spc , saw || %1 = agg
gosub _sub dovetail_saw agg 2 trash tools 3 8 1 tinkering 300 1 ingots 4
if %1 = froe || %1 = zhg
gosub _sub froe zhg 1 trash tools 3 9 1 tinkering 300 1 ingots 2
if %1 = shovel || %1 = wwf
gosub _sub shovel wwf 5 trash tools 3 10 1 tinkering 400 1 ingots 4
if %1 = hammer || %1 = cgg
gosub _sub hammer cgg 2 trash tools 3 11 1 tinkering 300 1 ingots 1
if %1 = tongs || %1 = obg
gosub _sub tongs obg 2 trash tools 3 12 1 tinkering 350 1 ingots 1
if %1 = smith's_hammer || %1 = smith's , #spc , hammer || %1 = tlh
gosub _sub smith's_hammer tlh 8 trash tools 3 13 1 tinkering 400 1 ingots 4
if %1 = sledge_hammer || %1 = sledge , #spc , hammer || %1 = fbg
gosub _sub sledge_hammer fbg 10 trash tools 3 14 1 tinkering 400 1 ingots 4
if %1 = inshave || %1 = cig
gosub _sub inshave cig 1 trash tools 3 15 1 tinkering 300 1 ingots 2
if %1 = pickaxe || %1 = qpf
gosub _sub pickaxe qpf n/a trash tools 3 16 1 tinkering 400 1 ingots 4
if %1 = lockpick || %1 = nwh
gosub _sub lockpick nwh 1 trash tools 3 17 1 tinkering 450 1 ingots 1
if %1 = skillet || %1 = dnd
gosub _sub skillet dnd 1 trash tools 3 18 1 tinkering 300 1 ingots 4
if %1 = flour_sifter || %1 = flour , #spc , sifter || %1 = ogg
gosub _sub flour_sifter ogg 1 trash tools 3 19 1 tinkering 500 1 ingots 3
if %1 = fletcher's_tools || %1 = fletcher's , #spc , tools || %1 = ufg
gosub _sub fletcher's_tools ufg 2 trash tools 3 20 1 tinkering 350 1 ingots 3
if %1 = mapmaker's_pen || %1 = mapmaker's , #spc , pen || %1 = cxf
gosub _sub mapmaker's_pen cxf 1 trash tools 3 21 1 tinkering 250 1 ingots 1
if %1 = scribe's_pen || %1 = scribe's , #spc , pen || %1 = pbg
gosub _sub scribe's_pen pbg 1 trash tools 3 22 1 tinkering 250 1 ingots 1
if %1 = gears || %1 = rcg
gosub _sub gears rcg 1 trash parts 4 0 1 tinkering 50 1 ingots 2
if %1 = clock_parts || %1 = clock , #spc , parts || %1 = fcg
gosub _sub clock_parts fcg 1 trash parts 4 1 1 tinkering 250 1 ingots 1
if %1 = barrel_tap || %1 = barrel , #spc , tap || %1 = ieg
gosub _sub barrel_tap ieg 1 trash parts 4 2 1 tinkering 350 1 ingots 2
if %1 = springs || %1 = tcg
gosub _sub springs tcg 1 trash parts 4 3 1 tinkering 50 1 ingots 2
if %1 = sextant_parts || %1 = sextant , #spc , parts || %1 = xcg
gosub _sub sextant_parts xcg 2 trash parts 4 4 1 tinkering 300 1 ingots 4
if %1 = barrel_hoops || %1 = barrel , #spc , hoops || %1 = dig
gosub _sub barrel_hoops dig 5 trash parts 4 5 1 tinkering 0 1 ingots 5
if %1 = hinge || %1 = lcg
gosub _sub hinge lcg 1 trash parts 4 6 1 tinkering 50 1 ingots 2
if %1 = bola_balls || %1 = bola , #spc , balls || %1 = fkf
gosub _sub bola_balls fkf 1 trash parts 4 7 1 tinkering 450 1 ingots 10
if %1 = butcher_knife || %1 = butcher , #spc , knife || %1 = gmh
gosub _sub butcher_knife gmh 1 trash utensils 5 0 1 tinkering 250 1 ingots 2
if %1 = spoon_(left) || %1 = spoon , #spc , (left) || %1 = dsd
gosub _sub spoon_(left) dsd 1 trash utensils 5 1 1 tinkering 0 1 ingots 1
if %1 = spoon_(right) || %1 = spoon , #spc , (right) || %1 = esd
gosub _sub spoon_(right) esd 1 trash utensils 5 2 1 tinkering 0 1 ingots 1
if %1 = plate || %1 = nqd
gosub _sub plate nqd 1 trash utensils 5 3 1 tinkering 0 1 ingots 2
if %1 = fork_(left) || %1 = fork , #spc , (left) || %1 = rrd
gosub _sub fork_(left) rrd 1 trash utensils 5 4 1 tinkering 0 1 ingots 1
if %1 = fork_(right) || %1 = fork , #spc , (right) || %1 = srd
gosub _sub fork_(right) srd 1 trash utensils 5 5 1 tinkering 0 1 ingots 1
if %1 = cleaver || %1 = inf
gosub _sub cleaver inf 2 trash utensils 5 6 1 tinkering 200 1 ingots 3
if %1 = knife_(left) || %1 = knife , #spc , (left) || %1 = trd
gosub _sub knife_(left) trd 1 trash utensils 5 7 1 tinkering 0 1 ingots 1
if %1 = knife_(right) || %1 = knife , #spc , (right) || %1 = urd
gosub _sub knife_(right) urd 1 trash utensils 5 8 1 tinkering 0 1 ingots 1
if %1 = goblet || %1 = mtd
gosub _sub goblet mtd 1 trash utensils 5 9 1 tinkering 100 1 ingots 2
if %1 = pewter_mug || %1 = pewter , #spc , mug || %1 = leg
gosub _sub pewter_mug leg 1 trash utensils 5 10 1 tinkering 100 1 ingots 2
if %1 = skinning_knife || %1 = skinning , #spc , knife || %1 = bnf
gosub _sub skinning_knife bnf 1 trash utensils 5 11 1 tinkering 250 1 ingots 2
if %1 = key_ring || %1 = key , #spc , ring || %1 = bfg
gosub _sub key_ring bfg 1 trash miscellaneous 6 0 1 tinkering 100 1 ingots 2
if %1 = candelabra || %1 = nyd
gosub _sub candelabra nyd 3 trash miscellaneous 6 1 1 tinkering 550 1 ingots 4
if %1 = scales || %1 = jdj
gosub _sub scales jdj 4 trash miscellaneous 6 2 1 tinkering 600 1 ingots 4
if %1 = iron_key || %1 = iron , #spc , key || %1 = cfg
gosub _sub iron_key cfg 1 trash miscellaneous 6 3 1 tinkering 200 1 ingots 3
if %1 = globe || %1 = xbg
gosub _sub globe xbg 3 trash miscellaneous 6 4 1 tinkering 550 1 ingots 4
if %1 = spyglass || %1 = zvh
gosub _sub spyglass zvh 3 trash miscellaneous 6 5 1 tinkering 600 1 ingots 4
if %1 = lantern || %1 = lyd
gosub _sub lantern lyd 2 trash miscellaneous 6 6 1 tinkering 300 1 ingots 4
if %1 = heating_stand || %1 = heating , #spc , stand || %1 = bdj
gosub _sub heating_stand bdj 1 trash miscellaneous 6 7 1 tinkering 600 1 ingots 4
if %1 = shoji_lantern || %1 = shoji , #spc , lantern || %1 = iao
gosub _sub shoji_lantern iao 1 trash miscellaneous 6 8 1 tinkering 650 2 ingots 10 boards 5
if %1 = paper_lantern || %1 = paper , #spc , lantern || %1 = kao
gosub _sub paper_lantern kao 1 trash miscellaneous 6 9 1 tinkering 650 2 ingots 10 boards 5
if %1 = round_paper_lantern || %1 = round , #spc , paper , #spc , lantern
gosub _sub round_paper_lantern gwn 1 trash miscellaneous 6 10 1 tinkering 650 2 ingots 10 boards 5
if %1 = wind_chimes || %1 = wind , #spc , chimes || %1 = sip
gosub _sub wind_chimes sip 3 trash miscellaneous 6 11 1 tinkering 800 1 ingots 15
if %1 = fancy_wind_chimes || %1 = fancy , #spc , wind , #spc , chimes
gosub _sub fancy_wind_chimes rip 3 trash miscellaneous 6 12 1 tinkering 800 1 ingots 15
if !cgiItemName = n/a
{
display ok script halting$craftInfo: item %1 not found
halt
}
exit
sub _sub
set !cgiItemName %1
set !cgiItemType %2
set !cgiItemWeight %3
set !cgiItemDisposal %4
set !cgiCategoryName %5
set !cgiCategory %6
set !cgiSelection %7
set %1 8
set !cgiSkillCount % . %1
set %1 %1 + 1
set %2 1
for %3 1 !cgiSkillCount
{
set !cgiSkillName . %2 % . %1
set %1 %1 + 1
set !cgiSkillValue . %2 % . %1
set %1 %1 + 1
set %2 %2 + 1
}
set !cgiMaterialCount % . %1
set %1 %1 + 1
set %2 1
for %3 1 !cgiMaterialCount
{
set !cgiMaterialName . %2 % . %1
set %1 %1 + 1
set !cgiMaterialValue . %2 % . %1
set %1 %1 + 1
set %2 %2 + 1
}
return
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.