31
Script Debug / Re: Having issue with my runebook code.
« on: July 09, 2008, 07:09:04 AM »
I was unable to post to the site last night. I will try again today when I get home from work.
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
;==============================================================
; Script Name: Sheep Shear, Kill and Repeat
; Author: Ramses
; Version: 1.0
; Client Tested with:
; EUO version tested with: 141
; Shard OSI / FS: OSI
; Revision Date:
; Public Release:
; Purpose: To gather wool for making cloth
;
;==============================================================
;
; Acknowledgements:
; Drak for testing
; Nicar for support and help
;
;==============================================================
;
; Script Notes:
; Rune Books must be labeled with the word Sheep, multiple books are ok.
; One Rune book must be labeled House or Home with your house as rune #1
;
;==============================================================
;==============================================================
;==============================================================
; Inits & Setup GoSubs
;==============================================================
finditem TSF c
if #findkind = -1
{
display ok you do not have a dagger in your backpack, please get
+ one and then restart the script.
halt
}
set %daggerID #findid
GoSub setup
GoSub setup_runebooks
GoSub setup_opperation
;===============================================================
; Begin Main Loop
;===============================================================
MAIN_LOOP:
GoSub to_sheep
GoSub find_sheep ;%sheeptypes G_16
if %overweight = YES
{
GoSub to_house
}
goto main_loop
halt
;===============================================================
; End Main Loop
;===============================================================
;===============================================================
; Kill sheep
;===============================================================
Sub kill
;set #lobjectid %sheepID
event macro 27 0
wait 3
return
;===============================================================
; Check to ensure dead
;===============================================================
Sub check_death
SCAN:
event macro 27 0
finditem #ltargetid
if #findkind = -1
return
Goto scan
;===============================================================
; Find the Sheep
;===============================================================
sub find_sheep
set %new_startposx #CHARPOSX
set %new_startposy #CHARPOSY
set %new_startposz #CHARPOSZ
set %moveinitposy %new_startposy + 1
{
event pathfind %new_startposx %moveinitposy %new_startposz
{
finditem %sheeptypes G_16
for #findindex 1 #findcnt
{
set %sheepID #findid
set %x #charposx - 1
set %y #charposy - 1
set %x_limit #charposx + 16
set %y_limit #charposy + 16
While #finddist > 2
{
event pathfind #findx #findy #findz
wait 1
}
GoSub check_weight
GoSub shear_sheep
GoSub kill
GoSub check_death
}
return
;===============================================================
; Shear Sheep
;===============================================================
sub shear_sheep
wait 1
set #lobjectid %daggerID
event macro 17 0
target
wait 5
set #ltargetid %sheepID
;set #ltargetkind 1
event macro 22 0
return
;===============================================================
; Sub Setup_Opperation for method of travel
;===============================================================
sub setup_opperation
; DEFAULT VALUES
set %method_of_travel RECALL
set %use_invis NO
set %use_hiding NO
display YESNO Do you wish to use sacred journaey rather than recalling?
if #dispres = YES
{
set %method_of_travel SACRED
}
SETUP_OF_OPPERATION_COMPLETE:
GoSub setup_secure
return
;===============================================================
; Check Weight
;===============================================================
sub check_weight
if #weight > #maxweight - 30
set %overweight YES
if #weight > 390
set %overweight YES
if %overweight = YES
{
GoSub to_house
}
return
;===============================================================
; Drop Wool
;===============================================================
sub drop_off
finditem %wool C_ , %packid
if #findkind <> -1
{
exevent drag #findid #findstack
exevent dropc %secure
wait 5s
}
set %overweight NO
return
;===============================================================
; To Sheep Pen
;===============================================================
sub to_sheep
GoSub use_runebook %sheep_runebook . %book %method_of_travel %rune
wait 1s
return
;===============================================================
; Movement with runebook
; Runebook subs came from Peragins LJ script (2005)
;===============================================================
sub use_runebook
;%1 - Runebook ID
;%2 - Method used on book - Use runebook charge / Recall / Sacred Journey or Gate
;%3 - Index number of rune to use
;Useage - gosub use_runebook RUNEBOOKID METHOD RUNE#
;===============================================================
; ERROR CHECKS
;===============================================================
if %3 < 1 || %3 > 16
{
display OK Rune number outwith perameters.
halt
}
finditem %1
if #findkind = -1
{
display OK Specified Runebook not found, Check that the container is open.
halt
}
set #lobjectid #findid
set %methods RECALL_CHARGES_SACRED_JOURNEY_GATE_TRAVEL
if %2 NOTIN %methods
{
display OK Method to travel not set correctly, please refer to documentation in the subroutine header.
halt
}
set %charposx #charposx ; next 3 lines set current postion to check to see if you have recalled
set %charposy #charposy
set %charposz #charposz
;===============================================================
; Opening Runebook
;===============================================================
OPEN_RUNEBOOK:
if #charposx <> %charposx || #charposy <> %charposy
{
return
}
set %error #scnt + 3
event macro 17 0
wait 5
OPENING_RUNEBOOK:
if #contsize <> 452_236
{
if #scnt > %error
{
goto open_runebook
}
goto opening_runebook
}
set %test_X 137 + #contposx ;X co-ord of pixel to colour check for page turns
set %test_Y 31 + #contposy ;Y co-ord for above
;===============================================================
; SET CO-ORDS OF TAB FOR PAGE TO TURN TO
;===============================================================
set %index_tab %3 * 10 / 2 ;Rune # * 2 / 3 gives the runebook page index tab
str len %index_tab
if #strres = 1
{
set %index_tab 1
goto index_tab_set
}
str right %index_tab 1
if #strres = 5
{
set %index_tab %index_tab / 10
set %index_tab %index_tab + 1
goto index_tab_set
}
if #strres = 0
{
set %index_tab %index_tab / 10
goto index_tab_set
}
display OK Error proccessing Index tab, please check passed rune number.
INDEX_TAB_SET:
set %index_tab_offset 35 ;Pixels between page index tabs on the runebook GUMP
set %index_tab_X %index_tab * %index_tab_offset ; Number of TAB offsets
set %index_tab_offset 105 ;Pixels between GUMP edge and the first TAB
set %index_tab_X %index_tab_X + %index_tab_offset ; Number of TAB offsets + distance from edge of GUMP
if %index_tab > 4
{
set %index_tab_X %index_tab_X + 28 ;set for gap between page 1 and 2
}
set %index_tab_X %index_tab_X + #contposx ;Distance from edge of screen
set %index_tab_Y 196 ;Y co-ord from TOP of GUMP
set %index_tab_Y %index_tab_Y + #contposy ; Y co-ord from TOP of screen
;===============================================================
; Turn to page of Rune Book
;===============================================================
if CHARGE NOTIN %2
{
click %index_tab_X %index_tab_Y f
wait 10
set %page 1
;===============================================================
; SET IF THE JEWEL TO CLICK IS ON THE LEFT OR RIGHT PAGE
;===============================================================
set %jewel_offset_X 140 ; X CO-ORD OF JEWEL ON LEFT PAGE
if %rune = 2 || %rune = 4 || %rune = 6 || %rune = 8 || %rune = 10 || %rune = 12 || %rune = 14 || %rune = 16
{
set %page 2
set %jewel_offset_X 300 ; X CO-ORD OF JEWEL ON RIGHT PAGE
}
set %jewel_X %jewel_offset_X + #contposx
}
;===============================================================
; SACRED JOURNEY
;===============================================================
if SACRED IN %2
set %jewel_offset_Y 181
;===============================================================
; GATE TRAVEL
;===============================================================
if GATE IN %2
set %jewel_offset_Y 161
;===============================================================
; RECALL
;===============================================================
if RECALL IN %2
set %jewel_offset_Y 141
set %jewel_Y %jewel_offset_Y + #contposy ; Y CO-ORD OF JEWEL DEPENDING ON METHOD CHOSEN
;===============================================================
; RUNEBOOK CHARGES
;===============================================================
if CHARGE IN %2
{
set %page 1
set %jewel_offset_X 134
set %jewel_offset_Y %jewel_offset_Y * %rune
if %rune > 8
{
set %page 2
set %jewel_offset_X 294
set %jewel_number %rune - 8
set %jewel_offset_Y %jewel_offset_Y * %jewel_number
}
set %jewel_X %jewel_offset_X + #contposx
set %jewel_offset_Y 15
set %jewel_Y 55 + #contposy
set %jewel_Y %jewel_Y + %jewel_offset_Y
}
click %jewel_X %jewel_Y f ; THIS CLICK ACTIVATES THE RUNE
set %jindex #jindex
set %error #scnt + 10
RECALLING:
if GATE IN %2
{
finditem OTF G_1
if #findkind <> -1
{
return
}
}
if #scnt > %error
{
goto open_runebook
}
for %line %jindex #jindex
{
scanjournal %line
if FIZZLES IN #journal
{
goto open_runebook
}
if INSUFFICIENT IN #journal
{
goto open_runebook
}
if REAGENTS IN #journal
{
display ok Not enough reagents to travel, an LRC suit is required for this script to work properly.
halt
}
if TITHING IN #journal
{
display OK You have run out of tithing points, you'd better get some more.
halt
}
if SOMETHING_IS_BLOCKING_THE_LOCATION IN #journal
{
set %3 %3 + 1
if %3 > 16
{
set %3 1
set %book %book + 1
if %book > %number_of_sheep_runebooks
{
set %book 1
}
set %1 %sheep_runebook . %book
}
goto open_runebook
}
}
if #charposx = %charposx && #charposy = %charposy
{
goto recalling
}
return
;===============================================================
; Return Home
;===============================================================
sub to_house
GoSub use_runebook %HOUSE_RUNEBOOK_ID %method_of_travel 1
wait 2s
_pathfind:
event pathfind %start_x %start_y %start_z
wait 2s
if #charposx <> %start_x
goto _pathfind
if #charposy <> %start_y
goto _pathfind
if #charposz <> %start_z
goto _pathfind
GoSub drop_off
GoSub to_sheep
return
;===============================================================
; Setup the Secure at house
;===============================================================
sub setup_secure
event sysmessage Now click on your secure container
wait 5
set #targcurs 1
target
while #targcurs = 1
wait 0
set %secure #ltargetid
set %securex #cursorx
set %securey #cursory
GoSub check_weight
wait 2
return
;===============================================================
; Setup runebooks in pack
;===============================================================
sub setup_runebooks
;========================
; setting house runebook
;========================
find_house_runebook:
finditem ZBN C_ , %packid
wait 1
if #findkind = -1
{
event sysmessage auto find runebook failed, set runebook names as indicated in the Docs and restart.
halt
}
event property #findid
wait 1
if HOUSE notin #property
{
if HOME notin #property
{
ignoreitem #findid house_runebooks
goto find_house_runebook
}
}
set %house_runebook_id #findid
ignoreitem reset house_runebooks
;========================
; setting sheep runebooks
;========================
set %number_of_sheep_runebooks 0
find_sheep_runebook:
finditem ZBN C_ , %packid
if #findkind = -1
{
if %number_of_sheep_runebooks = 0
{
display OK Sheep runebook not found, make sure that the book has the word 'SHEEP' in the title.
halt
}
ignoreitem reset sheep_runebooks
return
}
event property #findid
if SHEEP notin #property
{
ignoreitem #findid sheep_runebooks
goto find_sheep_runebook
}
set %number_of_sheep_runebooks %number_of_sheep_runebooks + 1
set %sheep_runebook , %number_of_sheep_runebooks #findid
ignoreitem #findid sheep_runebooks
goto find_sheep_runebook
return
;===============================================================
; Main Setup
;===============================================================
sub setup
set #lpc 100
set %wool OFF_
set %start_x #charposx
set %start_y #charposy
set %start_z #charposz
set %sheeptypes FG_PF_
set %book 1
set %rune 1
set %runebooksize 452_236
set %runebookkind KJCB
set %runebook_test_colour_x 134
set %runebook_test_colour_y 31
set %runebook_test_colour 1052787
event macro 31 0 ; CLOSES ALL GUMPS
event macro 8 1
wait_for_paperdoll_to_open:
if #contname <> paperdoll_gump
{
goto wait_for_paperdoll_to_open
}
contpos 850 2 ;643 -193 (if normal screen size)
set %packx 781
set %packy 30
set %paperdoll #contid
set %paperdollx 750
set %paperdolly 64
wait 15
event macro 8 2
wait_for_status_to_open:
if #contname <> status_gump
{
goto wait_for_status_to_open
}
contpos 700 300 ;-24 493 (if normal screen size)
wait 15
event macro 8 7
wait_for_pack_to_open:
if #contid <> #backpackid
{
goto wait_for_pack_to_open
}
set %packid #contid
contpos 812 500 ; 612 118 (if normal screen size)
wait 15
return
;===============================================================
; End of Sheep Shearing, Killing, Rinse Repeating Script !!!!!!!
;===============================================================
;
; RAMSES
;
;===============================================================