Author Topic: Gen's Library Donations  (Read 75997 times)

0 Members and 1 Guest are viewing this topic.

Offline The Ghost

  • Elite
  • *
  • *
  • Posts: 1917
  • Activity:
    0%
  • Reputation Power: 25
  • The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.
  • Respect: +245
  • Referrals: 0
    • View Profile
Re: Gen's Library Donations
« Reply #105 on: August 26, 2015, 05:27:03 PM »
0
Look at the gump  and container size.   those two thing can mess u build.

Offline KaliOfLS

  • That's "Dr." Kali to you!
  • Sr. Member
  • *
  • Posts: 406
  • Activity:
    0%
  • Reputation Power: 6
  • KaliOfLS has no influence.
  • Gender: Male
  • Respect: +33
  • Referrals: 2
    • View Profile
Re: Gen's Library Donations
« Reply #106 on: September 17, 2015, 06:45:19 PM »
0
Ok I'm stumped. I have read every post in on the topic and made all the changes. at first it would really to the vendor and pathfind to it. once there it would bring up the buy sell menu but would keep trying to sell instead of buy. can someone please tell me what I'm doing wrong because now with all the changes I did it will recall to vendor and then just sit there counting while it says finding vendor instead of pathfinding and opening the buy sell menu.

I had to modify the donate sub to walk into the library house to get to the guy for mace and sheild RG.  Then I to change the vendors name.  I think I had to modify the click location in the vendor buy loop to click buy and not bulk order or something like that.  Then I had to modify the click location on the donation guy's gump to hit the right spot, it was trying to click the item above.  So check all of those things.
R~~~~ B~~~~~~~~ 
^ real life signature for sure

Offline gruntman

  • Full Member
  • ***
  • Posts: 168
  • Activity:
    0%
  • Reputation Power: 2
  • gruntman has no influence.
  • Gender: Male
  • Respect: +33
  • Referrals: 0
    • View Profile
Re: Gen's Library Donations
« Reply #107 on: December 16, 2015, 10:06:28 PM »
0
Yeah I just fired this up and after many alterations I cannot get it to put in the amount it wants to donate after clicking the donation button....it just keeps hitting the button without ever inputting the donation amount...anyone with a thought please share...

Edit: Got that all worked out and now I have a different issue maybe someone can shed some light on:

in the menu it gives you the option to set how many vendor locations you have in your book...when i set this to the correct amount it cycles through the book trying all 16 spots no matter what...any help on where i might look to correct this please?

Thanks!!


Gruntman
« Last Edit: December 17, 2015, 11:47:44 AM by gruntman »

Offline Gemviper

  • Sr. Member
  • *
  • Posts: 481
  • Activity:
    0%
  • Reputation Power: 0
  • Gemviper hides in shadows.
  • Respect: +57
  • Referrals: 2
    • View Profile
Re: Gen's Library Donations
« Reply #108 on: December 17, 2015, 01:25:58 PM »
0
Just tried this as well for ideas on another script I need and it's not working as is anymore, needs some updating.

Offline Crisis

  • Global Moderator
  • *
  • *
  • Posts: 3014
  • Activity:
    4%
  • Reputation Power: 41
  • Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.
  • Gender: Male
  • Scripting well enough to break things!
  • Respect: +206
  • Referrals: 2
    • View Profile
Re: Gen's Library Donations
« Reply #109 on: December 17, 2015, 05:25:20 PM »
0
I play on OSI and I first used this a little over a year ago, the only thing that I changed was the gump sizes. I am running this as we speak just fine. I had to change the rune for the mace and shield donation guy because they have all been moved to one central location but after making the new rune it is running like a champ. I know Gemviper is on OSI, what about you gruntman?

EDIT: I was watching the script run when it occurred to me I can make it faster. On OSI, you no longer need to make bank runs since it takes the gold right from your account at the vendors. it will also let me carry a few extra axes!
« Last Edit: December 17, 2015, 06:27:13 PM by Crisis »

Offline Insideout

  • Full Member
  • ***
  • Posts: 185
  • Activity:
    0.4%
  • Reputation Power: 2
  • Insideout has no influence.
  • Respect: +13
  • Referrals: 0
    • View Profile
Re: Gen's Library Donations
« Reply #110 on: December 18, 2015, 05:12:38 AM »
0
I play osi i'll  give it a whirl after I get my plants done

Offline Crisis

  • Global Moderator
  • *
  • *
  • Posts: 3014
  • Activity:
    4%
  • Reputation Power: 41
  • Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.
  • Gender: Male
  • Scripting well enough to break things!
  • Respect: +206
  • Referrals: 2
    • View Profile
Re: Gen's Library Donations
« Reply #111 on: December 18, 2015, 12:34:19 PM »
0
Editing out the non-needed bank run made it soo much faster!

Offline gruntman

  • Full Member
  • ***
  • Posts: 168
  • Activity:
    0%
  • Reputation Power: 2
  • gruntman has no influence.
  • Gender: Male
  • Respect: +33
  • Referrals: 0
    • View Profile
Re: Gen's Library Donations
« Reply #112 on: December 20, 2015, 02:55:14 PM »
0
Yeah guess I forgot to mention I am on a freeserver :(

Offline The Ghost

  • Elite
  • *
  • *
  • Posts: 1917
  • Activity:
    0%
  • Reputation Power: 25
  • The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.
  • Respect: +245
  • Referrals: 0
    • View Profile
Re: Gen's Library Donations
« Reply #113 on: December 21, 2015, 03:44:39 PM »
0
Which Free shard you on

Offline gruntman

  • Full Member
  • ***
  • Posts: 168
  • Activity:
    0%
  • Reputation Power: 2
  • gruntman has no influence.
  • Gender: Male
  • Respect: +33
  • Referrals: 0
    • View Profile
Re: Gen's Library Donations
« Reply #114 on: December 21, 2015, 09:25:40 PM »
0
Which Free shard you on
Same as you :) Rebirth

Offline hrs024

  • Jr. Member
  • **
  • Posts: 32
  • Activity:
    0%
  • Reputation Power: 1
  • hrs024 has no influence.
  • Respect: +5
  • Referrals: 0
    • View Profile
Re: Gen's Library Donations
« Reply #115 on: January 13, 2016, 05:52:35 PM »
0
going to test this out tonight 0.0

Offline Dan123The123Man

  • Jr. Member
  • **
  • Posts: 31
  • Activity:
    0%
  • Reputation Power: 1
  • Dan123The123Man has no influence.
  • Respect: 0
  • Referrals: 0
    • View Profile
Re: Gen's Library Donations
« Reply #116 on: January 14, 2016, 06:01:49 PM »
0
Any Updates on this? Mine sets the status bar up and everything and it starts recalling to the vendor locations.. When it recalls to the first location it says "Recalling to Vendor Spot" then "Finding Vendor" and then recalls to the next vendor spot... It does this all the way through all 16 vendor spots. It doesn't even attempt to click the vendor or open a buy menu before it does this.

EDIT: If anyone has a working version of this could they post it please? I can't for the life of me figure out why it is doing what its doing.
« Last Edit: January 15, 2016, 03:16:19 AM by Dan123The123Man »

Offline Crisis

  • Global Moderator
  • *
  • *
  • Posts: 3014
  • Activity:
    4%
  • Reputation Power: 41
  • Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.
  • Gender: Male
  • Scripting well enough to break things!
  • Respect: +206
  • Referrals: 2
    • View Profile
Re: Gen's Library Donations
« Reply #117 on: January 15, 2016, 01:59:59 PM »
0
I play on OSI and it works just fine. If you are on a freeshard it may take quite a bit of editing. If you are on OSI, you need to read the thread. This script was posted in 2009 and requires some changes. Once you make those changes, it should work for you. It sounds like the script is not recognizing the vendors so those are the changes I would look at first.

Offline Dan123The123Man

  • Jr. Member
  • **
  • Posts: 31
  • Activity:
    0%
  • Reputation Power: 1
  • Dan123The123Man has no influence.
  • Respect: 0
  • Referrals: 0
    • View Profile
Re: Gen's Library Donations
« Reply #118 on: January 16, 2016, 01:45:10 AM »
0
I play on OSI and it works just fine. If you are on a freeshard it may take quite a bit of editing. If you are on OSI, you need to read the thread. This script was posted in 2009 and requires some changes. Once you make those changes, it should work for you. It sounds like the script is not recognizing the vendors so those are the changes I would look at first.

Hey, thank you for the reply. I actually have read all the posts on every page in this thread and I play OSI as well on the Atlantic shard. The previous post I made was the result I get every time I try to run the script. I already tweaked the script some as far as the donating part is concerned, but so far I can't even get the script to get that far. If you have a working version would you mind posting it? I'm not very scripter savvy so for me trying to determine why the script won't attempt to buy from the vendors is like looking at hieroglyphics. I'm sure it's not a hard fix, but I really don't know what I'm doing. The problem I'm having is the same, he recalls to the locations in order and the little menu says finding vendor and then just recalls to the next location... I have all my runes marked to recall to blacksmith shops so the vendors would be the blacksmiths. But if you do have a working version of this for OSI it would help me a ton if you could release it on here. Thank you again for taking the time to read my wall of text lol

The script version that I am using is below, and as you can see I have changed the #FINDREPs to 255. A screenshot below is a picture of what its doing right before it recalls away. I have also already got the "Status Bar" corrected so I know thats not the problem because it didnt do anything until after I got that fixed. Also my client.exe version is 7.0.47.0 (patch 66) and the EasyUO version that ive always been using that works is EasyUO 1.5.1.294



Code: [Select]
;===========================================================================
; Script Name: Gen's Library Donations
; Author: Gen2000
; Version: 1.5
; Client Tested with: 7.0.1.1
; EUO version tested with: 1.5 155
; Shard OSI/FS: OSI
; Public Release: 11/1/09
; Revision Date:
; Global Variables Used: CEO*FILESYSTEM
; Purpose: Recalls to smith/mage shops, buys axes/spell books,
;          Recalls to library & donates for glasses
;
; Glasses: Mace & Sheild, Wizard's Crystal , Fold & Steel
;===========================================================================
; http://www.scriptuo.com
;===========================================================================
; Special Thanks:
;---------------------------------------------------------------------------
; Author:  snicker7
; Script Name:  sub s7UseRunebook
;---------------------------------------------------------------------------
; Author:  Quintok / Raziel
; Script Name: sub waitForSysVars
;---------------------------------------------------------------------------
; Author  CEO
; Script Name: Sub CEO*FILESYSTEM
;===========================================================================
; Items Needed:
; Backpack:     2 Rune Books, 1 bank/library runes, and 1 with vendor shops.
;===========================================================================
; Instructions:  Bank/Library runebook should have rune to bank and library.
;                Vendor runebook should have runes marked to vendor shops.
;                Start off at any bank, click play and follow menu.
;===========================================================================
; Tips:  *DO NOT START WITH MORE THAN 3K GOLD IN PACK.
;        *REMOVE ALL BATTLE AXES YOU MAY WANT TO KEEP FROM PACK.
;        *REMOVE ALL SPELLBOOKS (SLAYERS ECT.) FROM PACK IF DONATING TO MAGE.
;         AND THE SPELLBOOK YOUR USING IN HAND!
;===========================================================================
set %lpc 1000               ;Adjust lpc if buying menu is going too fast.
set %axe_amount 95          ;Amount of axes to buy at a time.
set %spellbook_amount 100   ;Amount of spellbooks to buy at a time.
set %No_Dachi_amount 40     ;Amount of No-Dashis to buy at a time.
set %NPC_axe Clyde           ;Name of NPC to Donate Axes.
set %NPC_spellbook Abram  ;Name of NPC to Donate Spellbooks
set %NPC_No_Dachi Madeline  ;Name of NPC to Donate No Dachis
;===========================================================================
;Option below is used to setup points you already have or reset points.
;Set %reset to #true, set %donated to points you have divided by 9/10 axe/spellbook.
;===========================================================================
set %reset #false ;set true to reset count
if %reset
{
   set %donated 2046 ;Number of points divided by points per item(s).
   gosub putGlobalVar Gen LD #CHARID DONATED
   display set reset back to false and restart script
   halt
}
;===========================================================================
;----------------------------------Setup------------------------------------
;===========================================================================
set %start #true
set %vendortype IS_HS
set #menubutton closed
set %vendor 1
set %pause pause
set %pause_resume Pause
set %d_lpc #lpc
set %status Please , #spc , Wait...
gosub openpack
gosub openstatusbar
gosub getGlobalVar GEN LD #CHARID first
if ! #result
{
   set %first 1
   gosub putGlobalVar GEN LD #CHARID first
   set %donated 0
   set %points 0
   gosub showeuomenu1
   set %status Ready...
   gosub menu_refresh2
   goto setup
}
gosub first_setup
if %SETUP = NO
{
   gosub GetGlobalVars
   goto setup3
}
menu hideeuo
gosub showeuomenu1
set %status Ready...
gosub menu_refresh2
setup:
if #menubutton = runebook
   goto runebook
if #menubutton = runebook2
   goto runebook2
if #menubutton = start
   goto setup2
goto setup
setup2:
menu get travel
if #MENURES = 1
   set %travel r
if #MENURES = 2
   set %travel c
menu get Donation
if #MENURES = 1
   set %donationtype warrior
if #MENURES = 2
   set %donationtype mage
if #MENURES = 3
   set %donationtype warrior2
menu get library
set %library #MENURES
menu get bank
set %bank #MENURES
menu get vendors
set %vendors #MENURES
setup3:
gosub donationtype
gosub showeuomenu2
menu hide
menu hideeuo
set #menubutton closed
gosub SetGlobalVars
goto mainloop
;======================================
;---------------Main Loop--------------
;======================================
mainloop:
finditem %items c_ , #BACKPACKID
if #FINDCNT > 0
{
   set %start #false
   goto mainloop3
}
gosub recall2bank
mainloop2:
gosub recall2vendor
goto findvendor
mainloop3:
gosub recall2library
gosub donate
goto mainloop
;=======================================
;--------------Buy----------------------
;=======================================
findvendor:
set %status Finding , #spc , vendor..
gosub menu_refresh
if *stop
{
   set #menubutton pause
   set *stop #false
}
if #menubutton = pause
   gosub pause
finditem %vendortype G_25
if #findkind = -1
{
   if %donationtype = warrior || %donationtype = mage
   {
      set %vendor %vendor + 1
      if %vendor > %vendors
      {
         set %vendor 1
         ignoreitem reset 2
      }
      if #gold = %did_I_buy
         goto mainloop2
      goto mainloop3
   }
   if %donationtype = Warrior2
   {
      set %wait_count 0
      repeat
      set %wait_count %wait_count + 1
      wait 20
      set %status Waiting , #spc , %wait_count , #spc , Secs
      gosub menu_refresh
      until %wait_count > 60
      ignoreitem reset 2
      goto findvendor
   }
}
if #FINDREP <> 255
{
   ignoreitem #findid 3
   goto findvendor
}
set %vendorid #findid
event Property #findID
if %vendorname notin #property || quest in #property || banker in #property || minter in

#property
{
   ignoreitem #findid 3
   goto findvendor
}
;-------------------------------------
if #finddist > 7
{
   set %jindex #jIndex
   set %wait #SCNT + 2
   event pathfind #FINDX #FINDY #FINDZ
   repeat
   scanjournal %jindex
   if get_there in #journal
   {
      ignoreitem #findid 3
      goto findvendor
   }
   set %jindex %jindex + 1
   if N/A in #journal
      set %jindex %jindex - 1
   until pathfinding in #journal || %wait < #SCNT
   wait 2s
}
;-----------------------------------------
exevent popup %vendorid
wait 20
click 20 55
gosub WaitForSysVars CONTNAME = bill_gump CONTSIZE = 283_248 5
if ! #result
{
   if #CONTSIZE = 507_436 ;Quest menu
   {
      set %x2 #CONTPOSX + 350
      set %y2 #CONTPOSY + 400
      click %x2 %y2
      wait 30
      click %x2 %y2
      wait 10
      ignoreitem #findid 3
      set %trys 0
   }
   if #CONTSIZE = 463_414 ;Quest menu 2
   {
      set %x1 #CONTPOSX + 245
      set %y1 #CONTPOSY + 344
      click %x1 %y1
      wait 10
      ignoreitem #findid 3
      set %trys 0
   }
   set %trys %trys + 1
   if %trys > 2
   {
      ignoreitem #findid 3
      set %trys 0
   }
      goto findvendor
}
set %x_buy #CONTPOSX - 118
set %y_buy #CONTPOSY - 135
set %x_next #CONTPOSX + 73
set %y_next #CONTPOSY - 11
set %x_sign #CONTPOSX + 43
set %y_sign #CONTPOSY + 205
itemtobuy:
set #lpc %lpc
set %status Shopping..
gosub menu_refresh
if *stop
{
   set #menubutton pause
   set *stop #false
}
if #menubutton = pause
   gosub pause
getshopinfo
if #SHOPITEMTYPE in %ITEMS
{
goto buy
}
click %x_next %y_next ;next
if #SHOPCURPOS = #SHOPCNT
{
  set #lpc %d_lpc
  click %x_sign %y_sign ;sign
  gosub WaitForSysVars CONTNAME <> bill_gump CONTSIZE <> 283_248 5
ignoreitem %vendorid 2
  goto findvendor
}
goto itemtobuy


buy:
if *stop
{
   set #menubutton pause
   set *stop #false
}
if #menubutton = pause
   gosub pause
if #SHOPITEMPRICE > %MAX_PRICE
{
   click %x_next %y_next
   goto skip
}
click %x_buy %y_buy d ;buy
click %x_buy %y_buy d ;buy
getShopInfo
set %amount %number
if #SHOPITEMMAX < %number
   set %amount #SHOPITEMMAX
setShopItem #shopItemID %amount
set #lpc %d_lpc
click %x_sign %y_sign ;sign
gosub WaitForSysVars CONTNAME <> bill_gump CONTSIZE <> 283_248 5
;ignoreitem reset 2
goto mainloop3
skip:
if #SHOPCURPOS = #SHOPCNT
{
  set #lpc %d_lpc
  click %x_sign %y_sign ;sign
  gosub WaitForSysVars CONTNAME <> bill_gump CONTSIZE <> 283_248 5
  ignoreitem %vendorid 2
  if #gold = %did_I_buy
     goto findvendor
  goto mainloop3
}
goto itemtobuy
;=======================================
;--------------Subs---------------------
;=======================================
sub donationtype
if %donationtype = warrior
{
   set %MAX_PRICE 23
   set %number %axe_amount
   set %donate %NPC_axe
   set %items BSF_HSF
   set %points_per 9
   set %vendorname smith
   return
}
if %donationtype = mage
{
   set %MAX_PRICE 18
   set %number %spellbook_amount
   set %donate %NPC_spellbook
   set %items MPF
   set %points_per 10
   set %vendorname mage
   return
}
if %donationtype = warrior2
{
   set %MAX_PRICE 73
   set %number %No_Dachi_amount
   set %donate %NPC_No_Dachi
   set %items EDP
   set %points_per 27
   set %vendorname smith
   return
}
display Error in setup!
halt

sub first_setup
gosub showeuomenu3
first_setup:
if #MENUBUTTON = yes
{
   set #MENUBUTTON closed
   set %SETUP yes
   return
}
if #MENUBUTTON = no
{
   set #MENUBUTTON closed
   set %SETUP no
   return
}
goto first_setup

sub recall2bank
if %start
{
set %start #false
set %gold %number * %MAX_PRICE
set %gold %gold - #GOLD
if %gold < 1
   return
event macro 3 0 withdraw %gold
return
}
bank:
if *stop
{
      set #menubutton pause
      set *stop #false
}
if #menubutton = pause
   gosub pause
set %status Recalling , #spc , to , #spc , bank
gosub menu_refresh
set %start #CHARPOSX
gosub s7UseRunebook %runebook %bank %travel
set %recall_timer #SCNT + 10
wait_bank:
if %recall_timer < #SCNT
{
   goto bank
}
if %start = #CHARPOSX
   goto wait_bank
set %start #false
;set %number ( #MAXWEIGHT - #WEIGHT ) / 4
set %gold %number * %MAX_PRICE
set %gold %gold - #GOLD
if %gold < 1
   return
event macro 3 0 withdraw %gold
return


sub recall2vendor
if *stop
{
   set #menubutton pause
   set *stop #false
}
if #menubutton = pause
   gosub pause
set %status Recalling , #spc , to , #spc , vendor , #spc , %vendor
gosub menu_refresh
set %start #CHARPOSX
gosub s7UseRunebook %runebook2 %vendor %travel
set %recall_timer #SCNT + 10
wait_vendor:
if %recall_timer < #SCNT
{
   if err in #result
      set %vendor %vendor + 1
   goto mainloop2
}
if %start = #CHARPOSX
   goto wait_vendor
set %did_I_buy #gold
wait 20
return

sub recall2library
library:
if *stop
{
   set #menubutton pause
   set *stop #false
}
if #menubutton = pause
   gosub pause
set %status Recalling , #spc , to , #spc , library
gosub menu_refresh
set %start #CHARPOSX
gosub s7UseRunebook %runebook %library %travel
set %recall_timer #SCNT + 10
wait_library:
if %recall_timer < #SCNT
{
   goto library
}
if %start = #CHARPOSX
   goto wait_library
return


sub donate
set %status Donating...
gosub menu_refresh
if *stop
{
   set #menubutton pause
   set *stop #false
}
if #menubutton = pause
   gosub pause
donate:
finditem IS_HS g_4
if #findkind = -1
{
   display Not close enough to %Donate - Fix it - Script Paused
   gosub pause
   goto donate
}
if #findrep <> 255
{
   ignoreitem #findid player
   goto donate
}
event property #findid
if #property = $
   goto donate
if %donate notin #property
{
   ignoreitem #findid npc
   goto donate
}
set #lobjectid #findid
finditem %items c_ , #BACKPACKID
if #findkind = -1
{
   click %x %y r
   return
}
set #ltargetid #findid
set #ltargetkind 1
event macro 17 0
set #ltargetid #findid
set #ltargetkind 1
donate2:
if *stop
{
   set #menubutton pause
   set *stop #false
}
if #menubutton = pause
   gosub pause
gosub waitforsysvars CONTNAME = generic_gump CONTSIZE = 345_359 2
if ! #result
   goto donate
if #result
{
   finditem %items c_ , #BACKPACKID
   if #findkind = -1
   {
      click %x %y r
      return
   }
   set #ltargetid #findid
   set #ltargetkind 1
   if %donationtype = Warrior || %donationtype = mage
   {
      set %x #CONTPOSX + 39
      set %y #CONTPOSY + 268
      click %x %y
      target 2s
      event macro 22 0
   }
   if %donationtype = Warrior2
   {
      set %x #CONTPOSX + 306
      set %y #CONTPOSY + 343
      click %x %y
      click %x %y
      set %x #CONTPOSX + 40
      set %y #CONTPOSY + 177
      click %x %y
      target 2s
      event macro 22 0
   }
   set %donated %donated + 1
   set %points ( %donated * %points_per )
   gosub putGlobalVar Gen LD #CHARID DONATED
   gosub menu_refresh
   goto donate2
}
goto donate


runebook:
set %status Target , #spc , your , #spc , #spc , Bank/Library , #spc , Runebook
gosub menu_refresh2
set #targcurs 1
repeat
until #targcurs = 0
set %runebook #ltargetid
set %status Ready...
gosub menu_refresh2
set #menubutton closed
goto setup

runebook2:
set %status Target , #spc , your , #spc , #spc , Vendor(s) , #spc , Runebook
gosub menu_refresh2
set #targcurs 1
repeat
until #targcurs = 0
set %runebook2 #ltargetid
set %status Ready...
gosub menu_refresh2
set #menubutton closed
goto setup


sub openstatusbar
openstatusbar:
event macro 8 2
gosub WaitForSysVars CONTSIZE = 584_216 CONTNAME = status_gump
if ! #result
{
   goto openstatusbar
}
movestatus:
set #CONTPOSX 800
set #CONTPOSY 420
gosub WaitForSysVars CONTPOSX = 800 CONTPOSY = 420 5
if ! #result
{
   goto movestatus
}
wait 20
return

sub openpack
openpack:
event macro 8 7
gosub WaitForSysVars CONTSIZE = 230_204 CONTNAME = container_gump
if ! #result
{
   goto openpack
}
movepack:
set #CONTPOSX 815
set #CONTPOSY 255
gosub WaitForSysVars CONTPOSX = 815 CONTPOSY = 255 5
if ! #result
{
   goto movepack
}
wait 20
return


sub pause
set %pause resume
set %pause_resume Resume
set %status Paused..
menu Font Color Aqua
menu Button %pause 160 20 75 25 %pause_resume
menu set %pause %pause_resume
gosub menu_refresh
pause:
if #menubutton = resume
{
   set %pause pause
   set %pause_resume pause
   menu Font Color Aqua
   menu Button %pause 160 20 75 25 %pause_resume
   menu set %pause %pause_resume
   gosub menu_refresh
   return
}
goto pause
;===================================================
; Script Name:  sub s7UseRunebook
; Author:  snicker7
; Version:  2.0
; Client Tested with:  4.0.11c
; EUO version tested with:  1.42/1.5
; Shard OSI / FS:  OSI/FS
; Revision Date:  24Aug05
; Public Release:  24Aug05
; Global Variables Used: N/A
; Purpose:  Failsafe sub to recall, gate, sacred journey flawlessly. Options to use scrolls,

default locations, recharge books with scrolls in pack if book runs out of charges, and

perfect gate travel. Not for the feint of heart!
;===================================================
;======= This file includes the main sub and =======
;===== several support subs that are required. =====
;===================================================
;===== Much love for T-Mo and BM, but I needed =====
;====== to write something I could only blame ======
;======= myself for if it fails. even though =======
;=================== it doesn't. ===================
;===================================================

; ===================================================================== ;
; ///////////////////////////////////////////////////////////////////// ;
; // 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. ///////////////////////////////////////////////////////////// ;
; ///////////////////////////////////////////////////////////////////// ;
; ===================================================================== ;

;=/ 1NCLUD3D SUBS: /================================
; s7UseRunebook: Duh, you know why it's there.
; s7ScanJournalFor: SuperMultiParameterJournalScanning Power!
; s7MoveToPos: Legendary snicker7 brand name drag and drop sub. updated!
; s7MoveToCont: Wrapper for the above sub, updated for 1.5 exevents!
; s7WaitForAction: Mildly obsolete, begging for a rewrite object-delay sub!
; s7WaitForVars: Classic sysvar wait sub. One line shorter than Quintok's!
;===================================================

;----
;* @name s7UseRunebook
;* @author snicker7
;* @ver 2.0a 24Aug05
;* @purpose   do anything and everything travel related with a runebook
;* @params    %1   Rune or Runebook item ID to use
;*      %2   number of rune to travel to, use "default" for runes or default in runebook
;*      %3   travel method:
;*         r: recall
;*         g: gate
;*         c: sacred journey
;*         s: scrolls
;* @dependencies
;*      s7WaitForVars
;*      s7WaitForAction
;*      s7ScanJournalFor
;*      s7MoveToCont for recharging runebooks
;* @returns    #true   on success
;*      ERR_*   various errors.
;* @notes    none
;* @example:    gosub s7UseRunebook %bookID 14 r
;* @status done
sub s7UseRunebook
  if %0 < 3 || _ , %2 , _ notin _1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_default_
    return ERR_IncorrectParams
  namespace push
  namespace local _s7URB
  set !runebook %1
  set !index %2
  set !method %3
  set !fails 0
  if #contsize = 452_236
  {
    set !_cx #contposx + 20
    set !_cy #contposy + 20
    click !_cx !_cy r f dmc
    wait 5
  }
  for !_ 1 1
  {
    finditem OTF_JEF_KEF G_0
    if #findkind <> -1
      set !_ 0
  }
  for !orb 1 1
  {
    if !fails > 0 2
      namespace pop
      return ERR_ , #journal
    set !jStart #jindex + 1
    if !index <> default
    {
      gosub s7WaitForAction 12
      set #lobjectid !runebook
      event macro 17 0
      gosub s7WaitForVars contname = generic_gump contsize = 452_236 3
      if ! #result 2
        set !fails !fails + 1
        set !orb 0
      if #result
      {
        set !_cy #contposy + 196
        set !_cx #contposx + 105 + ( ( ( !index / 2 ) + ( !index % 2 ) ) * 35 )
        if !index > 8
          set !_cx !_cx + 30
        click !_cx !_cy f dmc
        wait 5
        set !_cx #contposx + 135
        set !_cy #contposy + 144
        if !method = G
          set !_cy !_cy + 20
        if !method = C
          set !_cy !_cy + 36
        if !method = S
          set !_cy !_cy - 76
        if ( !index % 2 ) = 0
          set !_cx !_cx + 160
        set !charpos #charposx , _ , #charposy
        set !timeout #scnt2
        click !_cx !_cy f dmc
      }
    }
    if !index = default
    {
      set #ltargetid !runebook
      set #ltargetkind 1
      if !method = c
        event macro 15 210
      if !method = r
        event macro 15 31
      if !method = g
        event macro 15 51
      if !method = s
      {
        finditem WTL C_ , #backpackid
        if #findkind = -1 2
          namespace pop
          return ERR_NoRecallScrolls
        if #findkind <> -1 3
          set #lobjectid #findid
          gosub s7WaitForAction 12
          event macro 17 0
      }
      for !_ 1 1
      {
        if #targcurs <> 1
          set !_ 0
        gosub s7ScanJournalFor !jStart fizzles more_reagents tithing_points insufficient_mana
        if #result 3
          set !_ 1
          set !orb 0
          wait 20
      }
      set !charpos #charposx , _ , #charposy
      set !timeout #scnt2
      event macro 22 0
    }
    if !orb = 1
    {
      for !success 1 1
      {
        if #charposx , _ , #charposy = !charpos && !method in _r_c_s_
          set !success 0
        if !method = g
        {
          finditem OTF_JEF_KEF G_0
          if #findkind = -1
            set !success 0
          if #findkind <> -1
          {
            set #lobjectid #findid
            gosub s7WaitForAction 12
            event macro 17 0
            for !_ 1 1
            {
              if #charposx , _ , #charposy = !charpos
                set !_ 0
              if #contname = generic_gump && #contsize = 420_280
              {
                set !_cx #contposx + 20
                set !_cy #contposy + 260
                click !_cx !_cy f dmc
              }
            }
          }
        }
        gosub s7ScanJournalFor !jStart fizzles location_is_blocked not_yet_recovered

no_charges_left more_reagents tithing_points insufficient_mana not_marked
        if #result || !timeout + 60 < #scnt2
        {
          if no_charges in #journal
          {
            finditem WTL C_ , #backpackid
            if #findkind = -1
              set !fails 2
            if #findkind <> -1
            {
              set !scrolls #findid
              finditem !runebook
              set #findmod 0
              gosub s7WaitForAction 12
              event drag !runebook
              for !_ 1 1
              {
                if #lliftedkind <> 1 2
                  wait 1
                  set !_ 0
              }
              str pos #contsize _
              set #strres #strres - 1
              str left #contsize #strres
              set !_cx #findx + #strres / 2
              str pos #contsize _
              str del #contsize 1 #strres
              set !_cy #findy + #strres / 2
              click !_cx !_cy p f dmc
              gosub s7MoveToCont !scrolls !runebook #backpackid 20_10
            }
          }
          set !fails !fails + 1
          set !success 1
          set !orb 0
        }
      }
      wait 20
    }
  }
namespace pop
return #true

sub s7ScanJournalFor
  set !SJFje #jindex + 1
  for !SJFji %1 !SJFje
  {
    scanjournal !SJFji
    for !SJFpi 2 %0
    {
      if % . !SJFpi in #journal
        return #true
    }
  }
return #false

;----
;* @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 1_5 in #euover
  {
    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
;======================================
;----------End of S7urb----------------
;======================================


;======================================
; Script Name: sub waitForSysVars
; Author: Quintok / Raziel
; Version: 1.05
; Client Tested with: 4.0.2b
; EUO version tested with: 0078
; Shard OSI / FS: OSI / FS
; Revision Date: 22th August 2005
; Public Release: 20th March 2004
; Global Variables Used: none
; Purpose: same as waitForSysVar but for multiple inputs.
;%1 system variable without '#'
;%2 = <> > < ... etc
;%3 comparing value
;%4 system variable without '#'
;%5 = <> > < ... etc
;%6 comparing value
;%n = timeout (not required)
;======================================
sub waitForSysVars
  set !cnt %0 / 3
  set !timeOut #scnt + 5
  if ( %0 % 3 = 1 )
    set !timeOut #scnt + % . %0
  for !i 1 !cnt
  {
    set !offset 3 * !i - 2
    set !evaluation !offset + 1
    set !value !offset + 2
    if ! ( # . % . !offset % . !evaluation % . !value )
      set !i 0
    if #scnt > !timeout
      return #false
  }
return #true
;=======================================
sub SetGlobalVars
gosub putGlobalVar GEN LD #CHARID BANK
gosub putGlobalVar Gen LD #CHARID LIBRARY
gosub putGlobalVar Gen LD #CHARID RUNEBOOK
gosub putGlobalVar Gen LD #CHARID RUNEBOOK2
gosub putGlobalVar Gen LD #CHARID TRAVEL
gosub putGlobalVar Gen LD #CHARID VENDORS
gosub putGlobalVar Gen LD #CHARID DONATIONTYPE
return

sub GetGlobalVars
gosub getGlobalVar Gen LD #CHARID BANK
gosub getGlobalVar Gen LD #CHARID DONATED
gosub getGlobalVar Gen LD #CHARID LIBRARY
gosub getGlobalVar Gen LD #CHARID RUNEBOOK
gosub getGlobalVar Gen LD #CHARID RUNEBOOK2
gosub getGlobalVar Gen LD #CHARID TRAVEL
gosub getGlobalVar Gen LD #CHARID VENDORS
gosub getGlobalVar Gen LD #CHARID DONATIONTYPE
return

;==================================
; Script Name:  CEO*FileSystem (pseudo filesystem)
; Author: CEO
; Version: 1.1
; Client Tested with: 4.0.1b
; EUO version tested with: 1_41_103
; Shard OSI / FS: OSI
; Revision Date: 040219
; Public Release: 040219
; Globals Used: User specified (2 total)
; Purpose: Allows you to use a * variable as a pseudo-filesystem
;=======================================
; CEO's global variable management subs:
;      getGlobalVar  . putGlobalVar  . delGlobalVar
;=======================================
;
;ver 1.1
;changed the lock file to use *variablename_lock so it'll work with any named *variable
;
Sub getGlobalVar

;ver 1.0 posted 19Feb04 by CEO
;purpose: Allows you to store multiple variables in one global variable unique to
;             each player and script. getGlobaVar retrieves a value from a global variable.
;@returns: #result = #false if variable not found, #true if found
;            % . %3 contains variable value
;%1 is the global/persistant variable to use ( %1 + 1 is used for locking)
;%2 is the script identifer or pseudo filename
;%3 is #charid or pseudo filename
;%4 is the variable to search for and return in %. %3
;%5 is for lock control. By default getGlobalVar uses a lock to return a value. In some cases

you may want to
;       retrieve a variable (mostly for speed) without needing a lock as long as you are aware

of
;      any potentional conflicts, that very rarely may occur. Set this param to NOLOCK to

access
;      global storage without a lock.
;sample usage:
;               gosub getGlobalVar 50 MyScript #charid backpackid
; Using global var *50 finds the variable labeled MyScript#charidbackpackid and returns it in

%backpackid
;
;               gosub getGlobalVar 50 MyScript #charid clothstat NOLOCK
; Using global var *50 find the variable labeled MyScript#charidclothstat and returns it in

%clothstat without using a lock
; Warning: do not use *1000. * %1 + 1 is used for locking and there is no *1001!
nameSpace push
nameSpace local #systime , _ , %2 , _ , %3 , _ , %4 , _ , GET
set !lpc #lpc
set #lpc 1000
set !lock %1 , _lock
if ( %0 = 5 ) && ( %5 = NOLOCK )
   goto getGlobalVar_skiplock
set !lockcount 0
getGlobalVar_waitforlock:
if * . !lock <> N/A && * . !lock <> #nsname
{
   wait 1 4
   set !lockcount !lockcount + 1
   if !lockcount < 10
      goto getGlobalVar_waitforlock
   if * . !lock <> N/A
   {
      set !currentlock * . !lock
      if !currentlock = N/A
         goto getGlobalVar_waitforlock
      str pos !currentlock _
      set !strres #strres - 1
      str left !currentlock !strres
      set !systime #systime - #strres
      if !systime < 10000 ; if over 10 seconds assume a broken lock and take it
      {
         set !lockcount 0
         goto getGlobalVar_waitforlock
      }
   }
}
set * . !lock #nsname
wait 3 2
if  * . !lock <> #nsname
{
   set !lockcount 0
   goto getGlobalVar_waitforlock
}
getGlobalVar_skiplock:
set !global * . %1
set !varName %2 , ^ , %3 , ^ , %4 , |
str pos !global !varName
set #result #strres <> 0
if #result
{
   set !varNamePos #strres
   str len !varName
   set !delString !varNamePos + #strres - 1
   str del !global 1 !delString
   set !global #strres
   str pos !global |
   set !varNamePos #strres - 1
   str left !global !varNamePos
   set % . %4 #strres
}
if ( %0 < 5 || %5 <> NOLOCK ) && * . !lock = #nsname
   set * . !lock N/A
set #lpc !lpc
nameSpace Clear
nameSpace Pop
return #result

Sub putGlobalVar
;ver 1.0 posted 19Feb04 by CEO
;purpose: Allows you to store multiple variables in one global variable unique to
;             each player and script. putGlobaVar stores a value into a global variable.

;@returns: #result = #false if variable not found, #true if found
;            % . %3 contains variable
;%1 is the global/persistant variable to use
;%2 is the script identifer or pseudo filename
;%3 #charid or other identifier
;%4 is the variable name of the variable to save into the* variable identified in %1
;sample usage:
;               gosub putGlovalVar 50 MyScript #chardid backpackid
; Using global var *50 stores/updates the variable labeled MyScript#charidbackpackid  with

%backpackid
; Warning: do not use *1000. * %1 + 1 is used for locking and there is no *1001!
nameSpace push
nameSpace local #systime , _ , %2 , _ , %3 , _ , %4 , _ , PUT
set !lpc #lpc
set #lpc 1000
set !lock %1 , _lock
set !lockcount 0
putGlobalVar_waitforlock:
if * . !lock <> N/A && * . !lock <> #nsname
{
   wait 1 4
   set !lockcount !lockcount + 1
   if !lockcount < 10
      goto putGlobalVar_waitforlock
   if * . !lock <> N/A
   {
      set !currentlock * . !lock
      if !currentlock = N/A
         goto putGlobalVar_waitforlock
      str pos !currentlock _
      set !strres #strres - 1
      str left !currentlock !strres
      set !systime #systime - #strres
      if !systime < 10000 ; if over 10 seconds assume a hung lock and take it
      {
         set !lockcount 0
         goto putGlobalVar_waitforlock
      }
   }
}
set * . !lock #nsname
wait 4
set !global * . %1
set !varName %2 , ^ , %3 , ^ , %4 , |
str pos !global !varName
if #strres = 0
{
   if  * . !lock <> #nsname
   {
      set !lockcount 0
      goto putGlobalVar_waitforlock
   }
   if  |CEO*FILESYSTEM| notin !global
      set !global |CEO*FILESYSTEM|
   set * . %1 !global , !varName , % . %4 , |
   set * . !lock N/A
   set #lpc !lpc
   nameSpace clear
   nameSpace pop
   return #true
}
set !varNamePos #strres
str len !varName
set !splitString !varNamePos + #strres - 1
str left !global !splitstring
set !globalPart1 #strres
str del !global 1 !splitString
set !global #strres
str len !global
set !globalLen #strres
str pos !global |
set !splitString !globalLen - #strres + 1
str right !global !splitstring
set !global #strres
if  * . !lock <> #nsname
{
   set !lockcount 0
   goto putGlobalVar_waitforlock
}
set * . %1 !globalPart1 , % . %4 , !global
set * . !lock N/A
set #lpc !lpc
nameSpace clear
nameSpace pop
return #true


Sub delGlobalVar
;ver 1.0 posted 19Feb04 by CEO
;purpose: Allows you to delete a variable out of the globalvar pool unique to
;             each player and script. delGlobaVar deletes a global variable in a * variable.

;@returns: #result = #false if variable not found, #true if  deleted
;
;%1 is the global/persistant variable to use
;%2 is the script identifer or pseudo filename
;%3 is #charid or other identifier
;%4 is the variable name of the variable to save into the* variable identified in %1
;sample usage:
;               gosub delGlovalVar 50 MyScript #charid backpackid
; Using global var *50 deletes  the variable label MyScript#charidbackpackid  and it's

associated value.
; Warning: do not use *1000. * %1 + 1 is used for locking and there is no *1001!
nameSpace push
nameSpace local #systime , _ , %2 , _ , %3 , _ , %4 , _ , DEL
set !lpc #lpc
set #lpc 1000
set !lock %1 , _lock
set !lockcount 0
delGlobalVar_waitforlock:
if * . !lock <> N/A && * . !lock <> #nsname
{
   wait 1 4
   set !lockcount !lockcount + 1
   if !lockcount <  10
      goto delGlobalVar_waitforlock

   if * . !lock <> N/A
   {
      set !currentlock * . !lock
      if !currentlock = N/A
         goto delGlobalVar_waitforlock
      str pos !currentlock _
      set !strres #strres - 1
      str left !currentlock !strres
      set !systime #systime - #strres
      if !systime < 10000 ; if over 10 seconds assume a broken lock and take it
      {
         set !lockcount 0
         goto delGlobalVar_waitforlock
      }
   }

}
set * . !lock #nsname
wait 4
set !global * . %1
set !varName %2 , ^ , %3 , ^ , %4 , |
str pos !global !varName
set #result #strres <> 0
if #result
{
   set !varNamePos #strres
   str len !varName
   set !splitString !varNamePos + #strres - 1
   set !delString !varNamePos - 1
   str left !global !delString
   set !globalPart1 #strres
   str del !global 1 !splitString
   set !global #strres
   str pos !global |
   set !delString #strres
   str del !global 1 !delString
   if  * . !lock <> #nsname
   {
      set !lockcount 0
      goto delGlobalVar_waitforlock
   }
   set * . %1 !globalPart1 , #strres
}
if  * . !lock = #nsname
   set * . !lock N/A
set #lpc !lpc
nameSpace clear
nameSpace pop
return #result

;=======================================
;----------------Menu-------------------
;=======================================
sub showEUOMenu1
menu Clear
menu Window Title Gen's Library Donations
menu Window Color BtnShadow
menu Window Size 361 442
menu Font Transparent #true
menu Font Align Right
menu Font Name MS Sans Serif
menu Font Size 8
menu Font Style
menu Font Color Aqua
menu Font Transparent #false
menu Font Align Left
menu Font BGColor BtnShadow
menu Text EUOLabel1 52 44 Library rune number
menu Text EUOLabel2 52 72 Bank rune number
menu Text EUOLabel3 92 128 Travel Method
menu Text EUOLabel4 8 212 Status:
menu Font Color Lime
menu Text EUOLabel5 44 212 %status
menu Font Color Aqua
menu Text EUOLabel6 52 100 Number of vendors in runebook
menu Text EUOLabel7 8 236 Instructions:
menu Text EUOLabel8 8 252 1. Start at any bank
menu Text EUOLabel9 8 268 2. setup runebooks.
menu Text EUOLabel10 8 284 3. Set Library/Bank rune numbers, # of vendor runes, and

travel mothod.
menu Text EUOLabel11 8 316 5. Click start.
menu Text EUOLabel12 8 336 Tips:
menu Text EUOLabel13 8 352 * Don't start with more than 3k gold in pack.
menu Text EUOLabel14 8 368 * You can start with items already in pack.
menu Text EUOLabel15 8 300 4. Choose Donations Type
menu Text EUOLabel16 132 156 Donation Type
menu Text EUOLabel17 8 384 * Mark library runes within 3 tiles of npc.
menu Text EUOLabel18 8 400 * Make sure and remove all items you don't wish to donate!
menu Text EUOLabel19 16 416 Spellbooks, weapons, ect.
menu Button runebook 4 8 131 25 Bank/Library Runebook
menu Combo Create library 4 40 41
menu Combo Add library 1
menu Combo Add library 2
menu Combo Add library 3
menu Combo Add library 4
menu Combo Add library 5
menu Combo Add library 6
menu Combo Add library 7
menu Combo Add library 8
menu Combo Add library 9
menu Combo Add library 10
menu Combo Add library 11
menu Combo Add library 12
menu Combo Add library 13
menu Combo Add library 14
menu Combo Add library 15
menu Combo Add library 16
menu Combo Create bank 4 68 41
menu Combo Add bank 1
menu Combo Add bank 2
menu Combo Add bank 3
menu Combo Add bank 4
menu Combo Add bank 5
menu Combo Add bank 6
menu Combo Add bank 7
menu Combo Add bank 8
menu Combo Add bank 9
menu Combo Add bank 10
menu Combo Add bank 11
menu Combo Add bank 12
menu Combo Add bank 13
menu Combo Add bank 14
menu Combo Add bank 15
menu Combo Add bank 16
menu Button start 4 180 75 25 Start
menu Combo Create travel 4 124 81
menu Combo Add travel Magery
menu Combo Add travel Chiv
menu Combo Create vendors 4 96 41
menu Combo Add vendors 1
menu Combo Add vendors 2
menu Combo Add vendors 3
menu Combo Add vendors 4
menu Combo Add vendors 5
menu Combo Add vendors 6
menu Combo Add vendors 7
menu Combo Add vendors 8
menu Combo Add vendors 9
menu Combo Add vendors 10
menu Combo Add vendors 11
menu Combo Add vendors 12
menu Combo Add vendors 13
menu Combo Add vendors 14
menu Combo Add vendors 15
menu Combo Add vendors 16
menu Button runebook2 148 8 115 25 Vendor(s) Runebook
menu Combo Create Donation 4 152 121
menu Combo Add Donation Mace and Sheild
menu Combo Add Donation Wizard's Crystal
menu Combo Add Donation Fold & Steel
menu Show 10 50
return


sub showEUOMenu2
menu Clear
menu Window Title Gen's Library Donations
menu Window Color BtnShadow
menu Window Size 256 72
menu Font Transparent #true
menu Font Align Right
menu Font Name MS Sans Serif
menu Font Size 8
menu Font Style
menu Font Color Aqua
menu Font Transparent #false
menu Font Align Left
menu Font BGColor BtnShadow
menu Text EUOLabel1 14 4 Status:
menu Text EUOLabel3 4 24 Donated:
menu Text EUOLabel5 16 44 Points:
menu Button %pause 160 20 75 25 %pause_resume
menu Show 250 495
return

sub showEUOMenu3
menu Clear
menu Window Transparent 80
menu Window Title Gen's Library Donations
menu Window Color BtnShadow
menu Window Size 190 75
menu Font Transparent #true
menu Font Align Right
menu Font Name MS Sans Serif
menu Font Size 10
menu Font Style
menu Font Color Aqua
menu Font Transparent #false
menu Font Align Left
menu Font BGColor BtnShadow
menu Text EUOLabel1 16 8 Do you wish to run setup?
menu Font Size 8
menu Button yes 8 44 75 25 YES
menu Button no 96 44 75 25 NO
menu Show 350 300
return

sub menu_refresh
menu delete status
menu delete donated
menu delete points
menu Font Color lime
menu Text status 52 4 %status
menu Text donated 52 24 %donated
menu Text points 52 44 %points
return

sub menu_refresh2
menu delete euolabel5
menu Font Color lime
menu Text EUOLabel5 44 212 %status
return

Also not sure if it matters or not but when I try to change the line below to "TRUE" the script just stops and i have to change it back to "FALSE"... But still I dont think thats the reason why i cant get it to work correctly.

set %reset #false ;set true to reset count
« Last Edit: January 16, 2016, 05:27:06 AM by Dan123The123Man »

Offline cybercasper

  • Full Member
  • ***
  • Posts: 228
  • Activity:
    0%
  • Reputation Power: 3
  • cybercasper has no influence.
  • Respect: +41
  • Referrals: 1
    • View Profile
Re: Gen's Library Donations
« Reply #119 on: January 18, 2016, 05:52:59 AM »
0
dan I have actually got it to work I had to change a few things let me remember what I changed and I will post. here is a key thing too remember that the names are not the same at the library anymore and that they have moved. I had that problem but once I figured out that it was good to go so let me know what you are trying to get and I will get u a working one

Tags: