set %gameClass Cleric ; Cleric or Archer set %maxWeight 540 ; Max ves set %box BEEJMMD ; ID korobki, gde sbrasivatj rudu set %foodCont BFCUKMD ; ID korobki, gde stoit zapasi moloko i bekona set %xCoord 2501 ; X koordinata okolo boxa set %yCoord 1278 ; Y koordinata okolo boxa set %dropAspen #true ; #true - sbrasivajet Aspen logi , #false - net set %dropWillow #true ; #true - sbrasivajet Willow logi , #false - net set %dropCedarMapleNoblefire #true ; #true sbrasivajet etie logi, #false - net set %dropCherryEcalyptus #true ; #true sbrasivajet etie logi, #false - net set %skillItemChange #false ; #true - menjajet skill shmotki, #false - net set %recall #false ; #true - letajet s runebook, #false - begut peshkom ; Do Not Set These Items If %skillItemChange #false set %skillRobe KIOSJMD ; Skill Roba (ID) set %skillCloak TCNSJMD ; Skill Cloack (ID) set %skillMask YSNSJMD ; Skill Mask (ID) set %simpleRobe UTRVLMD ; Prostaja Roba (ID) set %simpleCloak VARVLMD ; Prostoj cloack (ID) set %simpleMask CSH ; Helm (TYPE/ID) ; Etix mozhno ne menjatj, esli %recall #false set %runebookID NDWXJMD ; ID runebooka set %runeNumberToHome 7 ; Nr runi na dom set %runeNumberToWood 10 ; Nr runi na les set %amountRecalls 10 ; Skolko recallov vzjatj, kogda ix netu ; special variables for Archer (tolka dlja archera): set %camp heal ; #spc - the best camp, heal - healing campifre +5 set %minKidlings 10 ; minimalnoe kolichestvo kidlov v sumke set %amountKidlings 40 ; skolko kidlov vzjatj, kogda ix netu set %minArrows 150 ; minimalnoe kolichestvo strel v sumke set %amountArrows 400 ; skolko strel vzjatj, kogda ix netu ; special variables for Cleric(tolko dlja klerika): set %Weapon VOH ; oruzhie set %Shield AIK ; shild set %item ZLK_POF_RZF_SJG_CUD_IJG_HSF_RVH_FZH_NZH_UJG_FWL_DCI set %loot POF_RZF_SJG_CUD_IJG_HSF_RVH_FZH_NZH_UJG_FWL_DCI if %recall { gosub Instalyze runeNumberToHome 1 gosub Instalyze runeNumberToWood 2 } if %dropAspen set %aspenCol 973 if %dropWillow set %willowCol 0 if %dropCedarMapleNoblefire 3 set %cedarCol 437 set %mapleCol 1233 set %noblefireCol 153 if %dropCherryEcalyptus 2 set %cherryCol 38 set %ecalyptusCol 81 set %skill %skillRobe , _ , %skillCloak , _ , %skillMask gosub gettingStarted gosub initevents set %k 0 set %lastK 0 move 2896 675 move 2907 659 move 2907 606 start: msg #dot $ GOSUB LJING 2910 579 0 3296 GOSUB LJING 2908 575 0 3280 GOSUB LJING 2911 576 0 3294 GOSUB LJING 2912 575 0 3291 GOSUB LJING 2912 569 0 3280 GOSUB LJING 2913 570 0 3294 GOSUB LJING 2909 556 0 3289 GOSUB LJING 2908 555 0 3302 GOSUB LJING 2913 548 0 3289 GOSUB LJING 2911 544 0 3296 GOSUB LJING 2906 547 0 3283 GOSUB LJING 2912 541 0 3296 GOSUB LJING 2912 541 0 3296 GOSUB LJING 2914 593 0 3302 GOSUB LJING 2916 591 0 3289 GOSUB LJING 2912 585 0 3299 GOSUB LJING 2910 579 0 3296 GOSUB LJING 2911 576 0 3294 GOSUB LJING 2912 575 0 3291 GOSUB LJING 2914 575 0 3277 GOSUB LJING 2913 570 0 3294 GOSUB LJING 2916 567 0 3294 GOSUB LJING 2912 569 0 3280 GOSUB LJING 2917 558 0 3302 GOSUB LJING 2909 556 0 3289 GOSUB LJING 2906 557 0 3302 GOSUB LJING 2908 555 0 3302 GOSUB LJING 2904 557 0 3280 GOSUB LJING 2902 559 0 3302 GOSUB LJING 2904 561 0 3296 GOSUB LJING 2897 552 0 3286 GOSUB LJING 2898 549 0 3289 GOSUB LJING 2899 546 0 3277 GOSUB LJING 2911 540 0 3302 GOSUB LJING 2912 541 0 3296 GOSUB LJING 2911 544 0 3296 GOSUB LJING 2904 527 0 3294 GOSUB LJING 2902 527 0 3286 GOSUB LJING 2901 532 2 3299 GOSUB LJING 2896 522 8 3296 GOSUB LJING 2896 519 8 3299 GOSUB LJING 2892 519 15 3280 GOSUB LJING 2892 522 8 3280 GOSUB LJING 2896 516 15 3299 GOSUB LJING 2892 516 15 3286 GOSUB LJING 2896 510 15 3296 GOSUB LJING 2905 498 10 3299 GOSUB LJING 2902 493 10 3294 GOSUB LJING 2904 495 10 3294 GOSUB LJING 2909 498 15 3289 GOSUB LJING 2908 493 10 3280 GOSUB LJING 2912 495 10 3283 GOSUB LJING 2904 489 10 3294 GOSUB LJING 2904 479 5 3299 GOSUB LJING 2913 472 0 3294 GOSUB LJING 2911 468 0 3299 GOSUB LJING 2911 466 0 3286 GOSUB LJING 2901 470 0 3291 GOSUB LJING 2897 470 0 3299 GOSUB LJING 2898 467 0 3291 GOSUB LJING 2905 460 5 3277 GOSUB LJING 2905 458 5 3296 GOSUB LJING 2902 457 5 3286 GOSUB LJING 2895 458 0 3286 GOSUB LJING 2892 459 0 3294 GOSUB LJING 2888 465 0 3302 GOSUB LJING 2893 468 2 3296 GOSUB LJING 2893 472 1 3289 GOSUB LJING 2884 473 0 3286 GOSUB LJING 2881 472 0 3286 GOSUB LJING 2876 477 0 3277 GOSUB LJING 2879 480 0 3299 GOSUB LJING 2883 486 0 3302 GOSUB LJING 2882 489 0 3296 GOSUB LJING 2884 507 15 3299 GOSUB LJING 2872 507 15 3280 GOSUB LJING 2872 510 15 3302 GOSUB LJING 2872 513 15 3296 GOSUB LJING 2876 510 15 3286 GOSUB LJING 2876 516 15 3302 GOSUB LJING 2880 516 15 3291 GOSUB LJING 2876 519 8 3280 GOSUB LJING 2880 519 8 3277 GOSUB LJING 2880 522 8 3291 GOSUB LJING 2872 522 0 3299 GOSUB LJING 2874 527 0 3286 GOSUB LJING 2874 535 0 3302 GOSUB LJING 2870 539 8 3286 GOSUB LJING 2866 543 0 3291 GOSUB LJING 2871 542 0 3283 GOSUB LJING 2871 550 0 3299 GOSUB LJING 2869 556 0 3277 GOSUB LJING 2871 554 0 3277 GOSUB LJING 2867 560 0 3283 GOSUB LJING 2866 561 0 3289 GOSUB LJING 2866 565 0 3299 GOSUB LJING 2863 570 0 3289 GOSUB LJING 2874 571 0 3302 GOSUB LJING 2877 568 0 3286 GOSUB LJING 2877 572 0 3294 GOSUB LJING 2883 572 0 3299 GOSUB LJING 2884 573 0 3299 goto start sub ljing set %k %k + 1 gosub ghost gosub checkHP gosub reaper gosub checkWeight move %1 %2 1 finditem FSF C set #lobjectid #findid set #ltargetx %1 set #ltargety %2 set #ltargettile %3 set #ltargetz %4 set #ltargetkind 3 event macro 17 0 target 10s event macro 22 0 wait 7 set %overtime #scnt + 20 gosub scan return sub checkWeight if #weight > %maxWeight { if ! %dropAspen && ! %dropWillow && ! %dropCherryEcalyptus && ! %dropCedarMapleNoblefire { if %recall gosub port if ! %recall gosub moveItems } if %dropAspen || %dropWillow || %dropCedarMapleNoblefire || %dropCherryEcalyptus { gosub dropTrashLogs return } } if %afk <> true || %else <> IJG gosub ghost 1 return sub scan scan: scanjournal 1 if hungry in #sysmsg { gosub eat return } %get fixed gosub reaper if ( ( you_can't_reach_this in #sysmsg ) || ( THERE_IS_NOTHING_HERE_TO_CHOP in #sysmsg ) + || ( use_that_in in #journal ) || ( It_appears_immune_to_your_blow in #sysmsg ) ) return gosub checkHP if #scnt >= %overtime return goto scan return sub arm if %gameClass = Cleric { repeat { finditem %Weapon c_ , #BackpackId set #lobjectID #findid event macro 17 0 wait 12 finditem %Weapon c_ , #BackpackId } until #findcnt = 0 repeat { finditem %Shield c_ , #BackpackId set #lobjectID #findid event macro 17 0 wait 12 finditem %Shield c_ , #BackpackId } until #findcnt = 0 } if %gameClass = Archer { msg $.arm bow$ wait 5 } return sub port set %k %k + 1 gosub arm gosub checkHP gosub reaper if G in #charstatus event macro 6 0 event macro 6 0 set %oldPosX #charposx set %oldPosY #charposy gosub openRunebook repeat { click %x1 %y1 wait 20 } until #contname <> generic_gump && #contsize <> 577_426 if %gameClass = Cleric event macro 13 21 if %gameClass = Archer event macro 13 47 gosub changeClothesTo %simpleMask %simpleRobe %simpleCloak while #charposx = %oldPosX && #charposy = %oldPosY wait 10 gosub moveItems gosub back return sub moveItems ignoreitem reset 1 gosub runToBox msg Bank $ wait 1s msg BANK $ finditem %box ZTF wait 10 if #findcnt = 0 { event Sysmessage Box Not Found! pause } repeat { finditem %item c_ , #backpackid if #findcnt >= 1 { if world_save_has_been in #sysmsg wait 15s exevent Drag #Findid #findstack exevent Dropc %box wait 40 } } until #findcnt = 0 ignoreitem reset 1 if %gameClass = Archer gosub rescourses if %recall gosub recalls gosub food ; šeit atpakal move 2896 675 move 2907 659 move 2907 606 ; ------------- return sub back gosub checkHP set %oldPosX #charposx set %oldPosY #charposy for %i 1 2 { gosub openRunebook click 261 215 ; Recharge runebook 2x wait 20 } gosub openRunebook repeat { click %x2 %y2 wait 20 } until #contname <> generic_gump && #contsize <> 577_426 event macro 13 21 wait 2s gosub changeClothesTo %skillMask %skillRobe %skillCloak while #charposx = %oldPosX && #charposy = %oldPosY wait 10 return sub runToBox repeat { move %xCoord %yCoord 0 wait 10 } until #charposx = %xCoord && #charposy = %yCoord return sub checkHP if #hits < #maxhits { if %skillItemChange gosub changeClothesTo %simpleMask %simpleRobe %simpleCloak gosub arm gosub follow&kill if %skillItemChange gosub changeClothesTo %skillMask %skillRobe %skillCloak } return sub fixed set %k %k + 1 %to %bca %be # . %all { repeat { set %up # . %cares %done %start , _ , %else %end , _ , %up %lastdo %race # . %Wsave %lastdo %eaea # . %alpha # . %beta # . %gamma %upgrade 25 %done %start , _ , %else %end , _ , %up } until # . %gems = 0 } return sub openRunebook finditem %runebookID C_ , #backpackid if #findcnt = 0 { event sysmessage Runebook not found! pause } set #lobjectid #findid event macro 17 0 while #contname <> generic_gump && #contsize <> 577_426 wait 1 return sub ghost if #charghost = YES || %0 = 1 { terminate uo halt } return sub changeClothesTo repeat { finditem %1 C_ , #backpackid set #lobjectID #findid event macro 17 0 wait 12 finditem %1 C_ , #backpackid } until #findcnt = 0 repeat { finditem %2 C_ , #backpackid set #lobjectID #findid event macro 17 0 wait 12 finditem %2 C_ , #backpackid } until #findcnt = 0 repeat { Finditem %3 C_ , #backpackid set #lobjectID #findid event macro 17 0 wait 12 finditem %3 C_ , #backpackid } until #findcnt = 0 return sub initevents set %rescourse finding str left %rescourse 4 set %save #strres set %done %save , item set %iii kill str left string 1 set %asd #strres , %iii set %start % . %asd str left CADY 1 set %end #strres str left character 4 set %who #strres set %cares %who , id str left %do 4 set %lastdo ex , #strres , t set %race dragrace str left %race 4 set %race #strres set %Wsave %save , id str right skopg 3 set %jasl #strres str left drive 2 set %eaea #strres , %jasl str left post 3 set %number %who , #strres set %alpha %number , x set %beta %number , y set %gamma %number , z set %repsawn waitrespawn str left %repsawn 4 set %upgrade #strres str left tilbery 3 set %almost #strres str left unuquady 2 set %past #strres , %almost set %gems %save , cnt set %else IJG return sub follow&kill set %charX #charposx set %charY #charposy set %charz #charposz set %killTime #scnt + 60 if %gameClass = Cleric { repeat { finditem #enemyid event pathfind #FINDX #FINDY #FINDZ 1 3s wait 1s msg $.usebandage$ wait 10 target 1s event macro 23 0 wait 10 gosub ghost } until #findcnt = 0 || #scnt > %killTime } if %gameClass = Archer { repeat { msg .camp %camp $ wait 40 finditem #enemyid } until #findcnt = 0 || #scnt > %killTime } gosub loot if #hits < #maxhits gosub heal set %time #scnt + 20 repeat { event pathfind %charX %charY %charz 1 3s wait 1s gosub ghost if #scnt > %time return } until #charposx = %charX && #charposy = %charY return sub heal repeat { msg $.usebandage$ wait 10 target event macro 23 0 wait 20 } until #hits >= #maxhits return sub gettingStarted set %afk true set %ell qaerty str left %ell 1 set %abc #strres , #strres , #strres set %a1 #strres str left %ell 2 str right #strres 1 set %cba %abc , #strres , %a1 set %bca %cba , #strres str right %afk 1 set %bca %bca , #strres set %bra %bca , b set %n1 nlogif str right %n1 2 set %to #strres str left %n1 1 set %be #strres str right %n1 2 str left #strres 1 set %be #strres , %be set %tour jour set %navigate nalliwate str left %navigate 3 set %all %tour , #strres set %navigate gost str left %navigate 3 set %ac #strres str right pub 2 set %get %ac , #strres set %do events str right linit 4 set %toGo #strres , %do return sub eat finditem ZBM C set #lobjectid #findid event macro 17 0 wait 10 finditem GND C set #lobjectid #findid event macro 17 0 wait 10 event macro 17 0 wait 5s return sub Instalyze if % . %1 <= 8 set %x . %2 260 else set %x . %2 420 if % . %1 = 1 || % . %1 = 9 set %y . %2 260 if % . %1 = 2 || % . %1 = 10 set %y . %2 275 if % . %1 = 3 || % . %1 = 11 set %y . %2 290 if % . %1 = 4 || % . %1 = 12 set %y . %2 305 if % . %1 = 5 || % . %1 = 13 set %y . %2 320 if % . %1 = 6 || % . %1 = 14 set %y . %2 335 if % . %1 = 7 || % . %1 = 15 set %y . %2 350 if % . %1 = 8 || % . %1 = 16 set %y . %2 365 return sub loot set %lootTime #scnt + 20 finditem YFM G_4 if #findcnt >= 1 { set #lobjectid #findid set %body #findid event macro 17 0 while #contkind <> ASEB && #contsize <> 144_212 && %lootTime > #scnt wait 1 wait 10 repeat { finditem %loot C_ , %body if #findcnt = 0 || #scnt > %lootTime { ignoreitem %body 2 return } exevent drag #findid #findstack exevent dropc #backpackid wait 40 } until #false } return sub dropTrashLogs repeat { finditem ZLK C_ , #backpackid if #findcnt = 0 { wait 20 if #weight >= %maxweight { if %recall gosub port if ! %recall gosub moveItems return } if #weight < %maxweight return } if #findcol = %willowCol || #findcol = %aspenCol + || #findcol = %cedarCol || #findcol = %mapleCol || #findcol = %noblefireCol + || #findcol = %cherryCol || #findcol = %ecalyptusCol { exevent drag #findid #findstack exevent dropg #charposx #charposy #charposz wait 35 } ignoreitem #findid 1 } until #false return sub reaper if %lastK >= %k gosub ghost 1 set %lastK %k finditem JE G if #findcnt <> 0 { sound gosub arm set %charX #charposx set %charY #charposy set %charz #charposz if %skillItemChange gosub changeClothesTo %simpleMask %simpleRobe %simpleCloak set %killTime #scnt + 60 finditem JE G set %reaper #findid set #ltargetid %reaper event macro 27 0 if %gameClass = Cleric { repeat { finditem %reaper event pathfind #FINDX #FINDY #FINDZ 1 3s wait 1s msg $.usebandage$ wait 10 target 1s event macro 23 0 wait 10 gosub ghost } until #findcnt = 0 || #scnt > %killTime } if %gameClass = Archer { repeat { msg .camp %camp $ wait 40 finditem %reaper } until #findcnt = 0 || #scnt > %killTime } gosub loot if #hits < #maxhits gosub heal if %skillItemChange gosub changeClothesTo %skillMask %skillRobe %skillCloak set %time #scnt + 20 repeat { event pathfind %charX %charY %charz 1 3s wait 1s gosub ghost if #scnt > %time return } until #charposx = %charX && #charposy = %charY } return sub rescourses finditem RWF C_ , #backpackid if #findstack <= %minArrows { set #lobjectid %box event macro 17 0 while #contid <> %box wait 1 finditem RWF C_ , %box exevent drag #findid %amountArrows exevent dropc #backpackid wait 30 } finditem PEF C_ , #backpackid if #findstack <= %minKidlings { set #lobjectid %box event macro 17 0 while #contid <> %box wait 1 finditem PEF C_ , %box exevent drag #findid %amountKidlings exevent dropc #backpackid wait 30 } return sub recalls finditem WTL C_ , #backpackid if #findstack <= 2 || #findcnt = 0 { set #lobjectid %box event macro 17 0 while #contid <> %box wait 1 finditem WTL C_ , %box exevent drag #findid %amountRecalls exevent dropc #backpackid wait 30 } return sub food finditem ZBM C_ , #backpackid if #findcnt = 0 { set #lobjectid %foodCont event macro 17 0 while #contid <> %foodCont wait 1 finditem ZBM C_ , %foodCont ; 1 pitcher of milk exevent drag #findid 1 exevent dropc #backpackid wait 30 } finditem GND C_ , #backpackid if #findcnt = 0 { finditem GND C_ , %foodCont exevent drag #findid 4 ; 4 baocn slices exevent dropc #backpackid wait 30 finditem ZBM C_ , %foodCont ; 1 pitcher of milk exevent drag #findid 1 exevent dropc #backpackid wait 30 } return