Show Posts

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.


Topics - Crisis

Pages: 1 ... 4 5 [6] 7 8
76
UO-Related Tutorials / A Lazy Man/Idiots Guide to SOS Farming
« on: March 11, 2014, 08:05:54 PM »
Let me start off by saying thank you to Trailmyx for his Full Auto Fisherman script (I love this script!) and Kal In Ex for his MIB SOS Master script. If it were not for these two scripts, I would not have made my SOS Fisher and would not be farming SOS so lazily!  8)

First thing is to decide do you want to go out and shop/pay for your MIB/SOS or be cheap like me? I am as cheap as I am lazy so I use Trailmyx's Faull Auto Fisherman (Did I say that I really love this script?!?!) http://www.scriptuo.com/index.php?topic=41.0 I have edited the script to keep and separate the high seas fish and rare fish. They sell decent to people wanting to do the fishing quests and I use some when I am bored enough to do the fishing quests myself.





I run two fisherman at a time and check their banks periodically. When it starts to get full, I dump the plain green fishing nets and rare fish into the garbage cans for cleanup points. When my bank is full, I stop fishing and get ready to sort my SOS that I collected.




Next, I use Kal In Ex MIB SOS Master for this. http://www.easyuo.com/forum/viewtopic.php?p=97820#97820 I used the changes posted near the end of that thread to be able to modify the script to use the new high seas ships. When using a high seas ship, you must be standing right behind the tillerman to be able to use SOS Master sail to SOS function. I have 2 secures in my house and each secure contains 5 labeled boxes. The top chest has 5 boxes marked Region 1, Region 2, Region 3, Region 4, and Region 5. The bottom chest contains boxes with regions 6-10.



 Kal's SOS master has a button marked "Load SOS Info" I use this to sort the SOS. It plots them into the different regions. When using this script, make sure that you have your container that contains your SOS open and you need to make sure that you have nothing in the top left corner of the screen. This script uses OCR so make sure that you do not alt-tab to another screen while it is reading the SOS.



Once it is done reading them, I use the "Move SOS to" button, which gives me options to move the SOS to specific containers. I use this option to move the SOS into the correct containers. You click on the region or regions that you want to move. I only click one at a time because my OCD forces me to have one container per region. Once you have the correct region checked, you click ok and then hover your pointer over the container you want to move them to and then pres the spacebar. It moves them automatically for you which is awesome!



Once you have them all sorted you are ready for the fun to begin!! I marked runes and made a runebook for boat launch points for each region. This allows me to quickly get to where I want to go. When I am done with a region I can sail to next closest one or drydock my ship and recall to the next region.



I grab the container for the region I want to fish in, recall to that region's launch point and launch my boat. I click on the "Load SOS Info" button and load my SOS. Once I now click on the button marked "Sail To Marked" and SOS Master will start sailing me to my first SOS. It is important to remember that this script does not auto-defend and does not have anti-block so you need to be ATK. I use UO Rudder and Automap along with SOS Master to keep me going strong and quick.



Now that I am at my first SOS location, I start using the best script ever!! (Not that I am biased or anything) Crisis SOS Chest Fisher http://www.scriptuo.com/index.php?topic=9770.0



I click on the start fishing and it will keep fishing until it pulls up the chest. I have not decided if I want to try and work in some kind of auto-defend or have it scan the journal for getting attacked and stopping. Currently, if you pull up a sea serpent, it will keep fishing so you will need to press pause on the fishing and then kill the serpent. If you are in the right location (rarely will it not be right unless it is right on a server line which can get tricky using SOS Master) you will pull up shipwreck junk and then the chest. I save the shipwreck stuff for cleanup points. I have a personal version of SOS Chest Fisher which dumps all of the shipwreck stuff and nets into the trash. I may release that one in the future. I will use the "Cut Stuff" button on the SOS Chest Fisher to cut up and save any bones for tailoring and inscription.



Now I will drop the gold into the hold of the ship and then drop the chest onto the deck. Now I will click the tab on the SOS Master that says "Delete Marked" so that it marks the next closest SOS location.




I collect the chests dropping the chests with less items into other chests until I have 4 chests with about 70-85 items in each chest. I usually have a beetle or a couple of pack horses on the deck of the ship to haul my belongings. I fill my beetle/packy with gold and one of the chests. I then take another chest and recall to the bank. I dump my shipwreck items and any nets from the chests into the garbage for cleanup. I also dump the dime a dozen artifacts such as the leggings, bow, wedding dress, etc for points as well. I have so many of the enhancements that I will dump those as well. I deposit the gold into my bank and recall to my house to start sorting the chests.

I have 8 secures set up to sort into. One has gems, one has magery scrolls, one has necro scrolls, one has reagents, and then I have 4 for the chests full of unravel items. I use the "Sort Chest" button to start sorting. You need to hard code your secures into the SOS Chest Sorter script before using this button. Once it has pulled everything that I want from the chest, I drop the chests into the unravel chests. I don't bother going through the chests because there is nothing in them better than Shame loot so I just unravel whatever is in there. I then dump the empty chests into the garbage for even more cleanup points.

I have made millions from the gold in the chests, gold from the FAF fishing, the imbuing essence, leather, stockpiled fish, regs, scrolls, gems and tons of cleanup points. I can crank these out quickly and very profitably. All I needed to get started was a small boat, 100% LRC Suit, and a fishing pole to start collecting SOS. I soon had enough gold from fishing and selling the fish to buy a Tokuno Ship and then I was rolling in the gold when I started fishing up the SOS. I hope this helps someone who thinks SOS Farming is tedious and boring. I love it now!

77
Off Topic / SUO Forums
« on: February 24, 2014, 03:22:11 AM »
I am not sure where to posts this so I am posting here.

The forums are not loading for me properly but it is just the SUO forums. All the other websites and forums that I visit are loading as normal. These forums seem to be missing all of the formatting and style, all I am getting is the links.

I am guessing that others are not seeing the same thing since there are no posts. I have deleted the forum cookies and have rebooted but no luck. I am running Win 7 64bit and Chrome. Both are currently up to date. Help please??!?!?

And I just found out that I can not add smileys to my post.

78
Scripting Chat / Gumpwaits
« on: February 17, 2014, 03:59:01 PM »
Ok I have some time and I really need to understand how to implement a proper gumpwait. I am using the one that 12XOver posted when he was helping me with gumpwaits and I want to understand how to use it. I have so many script ideas and not enough talent yet to implement them. I am quoting his post from this thread http://www.scriptuo.com/index.php?topic=12006.msg101293#msg101293

I am opening a new thread to make things easier.  8)

That's why a good Gumpwait sub should be able to use both Gumpname and Gumpsize :)

The issue with relying on Gumpname is that there are so many different gumps called "generic_gump". Adding an optional gumpsize to the wait sub gives that added flexibility for when you really want to make sure.

-----

Crisis - The issue with that first one is that it's not waiting until there is a gump, it's waiting for a 5 count only. What if the gump doesn't come up until the 6 count, well now your script is broken.

A basic gump wait sub needs to follow some basic gump wait logic:

Code: [Select]
sub gumpwait
   1) tell me what gump to wait for via name and/or size
   2) set an amount of time to keep looking for the gump before deciding it ain't comin'
   3) keep looking for that gump until it either shows up or the amount of time has expired
   4) tell the rest of the script what happened
return

This is all my example sub above is doing.

Code: [Select]
;#######################
;SUB XIIxGumpWait
;#######################
; %1 = Required: Gumpname 1
; %2 = Required only if using Gumpsize: Gumpname 2
; %3 = Optional: Gumpsize
; Returns #TRUE if gump occured before timeout, #FALSE if timeout occured
sub XIIxGumpWait
   namespace push
   namespace local nsXIIxGumpWait
This is creating the sub and giving it a namespace so that none of it's variables will conflict with the rest of the variables in the script that's calling it

Code: [Select]
  set !gName1 %1
   set !gName2 %2
   set !gSize %3
  1) tell me what gump to wait for via name and/or size

Code: [Select]
  set !_time #SCNT
   while #SCNT <= !_time + 5
  2) set an amount of time to keep looking for the gump before deciding it ain't comin'

Code: [Select]
  while #SCNT <= !_time + 5
      {
      if %0 > 2
         {
         if ( #CONTNAME = !gName1 && #CONTSIZE = !gSize ) || ( #CONTNAME = !gName2 && #CONTSIZE = !gSize )
            {
            namespace clear
            namespace pop
            return #TRUE
            }
         }
      else
         {
         if #CONTNAME = !gName1 || #CONTNAME = !gName2
            {
            namespace clear
            namespace pop
            return #TRUE
            }
         }
      }
  3) keep looking for that gump until it either shows up or the amount of time has expired
   4) tell the rest of the script that it did come up

Code: [Select]
  namespace clear
   namespace pop
Cleanup my namespace

Code: [Select]
return #FALSE   4) tell the rest of the script that it DID NOT come up









So if using this as is, I would use the wait kind of like this?

Code: [Select]
gosub XIIxGumpWait
Would I list a time after like this?

Code: [Select]
gosub XIIxGumpWait 20
On the name part, would this section need to be changed at all?

Code: [Select]
  set !gName1 %1
   set !gName2 %2
   set !gSize %3

I set a gumpsize on my scripts so how would that affect !gName2 %2

Would I need to use %3 on scripts like carpentry which has gumps for tinkering and carpentry?

79
Script Debug / Help with another dumping sub please
« on: January 05, 2014, 03:20:31 PM »
I am trying to get this sub to time out for 3 minutes if the trash barrel is full. It ends up sticking there and I cannot figure out what I missed.

Code: [Select]
sub ClearPackGarbage
  menu delete scriptstatus
  menu Font BGColor Black
  menu Font Color Lime
  menu text scriptstatus 95 100 Clearing Pack of Garbage
  _cleargarbageloop:
  {
  finditem %Garbage C_ , #backpackid
  if #findcnt > 0
  }
  for %ItemToDump 1 #findcnt
  {
    Set #FindIndex %ItemToDump
    exevent drag #findid #findstack
    wait 20
    exevent dropc %trashbarrel
    wait 20
  }
  gosub TM_AdvJournalScan BOWCRAFTING VALID_ADVANCE that_container_cannot_hold_more_weight
  if #result = #true
  {
    menu delete scriptstatus
    menu Font BGColor Black
    menu Font Color Lime
    menu text scriptstatus 95 100 Clearing Pack of Garbage
    wait 180s
    goto _cleargarbageloop
  }
return

Is it the wait I have in there? Should it be written in another way to wait for 3 minutes? It also take a while for it to read the journal and stop trying to dump things.  :(

80
Code: [Select]
;===================================================================
;===================================================================
; Script Name: Crisis Carpentry Trainer
; Author: Crisis
; Version: 1.0
; Client Tested with: 7.0.34.6
; EUO version tested with: 1.5 (version 247)
; Shard OSI / FS: FS (runuo Version 2.2, Build 4925.27724)
; Release Date: 01/03/2013
; Revision Date: N/A
; Purpose:
;     .Train Carpentry 0-100
;
; Revisions:
;     . N/A
;
; Requirements:
;     . Make sure that you do not have colored ingots in your secure, keep only iron ingots in your secure.
;     . You need to have a secure resouce bag and an axe.
;     . You must have at least one tinker tool in your backpack.
;     . You must have enough tinkering to craft tinker tools and fletcher tools
;     . If you are using the bank, you must be at the bank and say "bank" before starting the script. I will adjust the script to include this in a future update.
;
; Future Updates:
;     . Suggest some :)
;
; Special Thanks:
;     . Ximan for helping me work out some of the bugs.
;
; Copyright: 2014 Crisis
;===================================================================
;===================================================================


Okay I have tried this and it seems to be working well but I would love for some people to test it out.

If anyone plays runuo and wants to help, I could use the offset click numbers for the different items to craft. As of right now, this has been tested on OSI only.

Let me know what you think and any suggestions that you may have. Thanks!

I am still working on the timing issues with crafting new tools and moving boards. Try V1.5

81
Script Debug / Frustrated and can use some help
« on: January 02, 2014, 03:31:54 PM »
First thing is my checkboards sub. It is filling boards everytime regardless of how many boards are in my pack.

Code: [Select]
sub CheckBoards
  menu delete scriptstatus
  menu text scriptstatus 95 100 Checking Boards
  finditem %boards C_ , #backpackid
  if #findcnt < 20
  {
    menu delete scriptstatus
    menu text scriptstatus 95 100 Moving Boards
    gosub moveit #backpackid %ResourceSecure %boards 200
    gosub hardwait %postregmovewait
    if #result = 0
    {
      display ok Out of boards in secure, halting...
      halt
    }
  }
return

I may be wrong but it is supposed to find my boards, if I have less than 20 it is supposed to restock. Right now it restocks at every check which overloads me.


I am also not getting my script to target breakable carpentry items and use a axe on them

Code: [Select]
sub CheckWeight
Set %WeightMargin #MaxWeight - #Weight
finditem %garbage C_ , #backpackid
If #FindCnt > 0 && %WeightMargin < 50

finditem %garbage C_ , #backpackid
If #FindCnt > 0
   {
   For %dumpgarbage 1 #FindCnt
       {
       Set #FindIndex %dumpgarbage
       exevent drag #findid #findstack
       wait 10
       exevent dropc %TrashBarrel
       wait 10
       }
   }
finditem %BreakGarbage
if #findkind = 0
  {
return
}

set %breakthis #findid
Breakit:
set #lobjectid %axetype
event macro 17 0
target 4s
set #ltargetid %breakthis
set #ltargetkind 1
event macro 22 0
wait %gumpwait
finditem %breakthis
if #findkind = 0
Return

Grrrrr so frustrating!  I am sure it is small things that I have over looked.

I am adding the entire script in case it is needed

Code: [Select]
;===================================================================
set #lpc 200

; contpos warning:  be sure to manually open
; and move tinkering/carpentry gumps to
; desired location in order to get them to 'stick' there...

; manually set desired open container/gump screen coords
set %menux 800
set %menuy 0

set %journalx 850
set %journaly 420

set %skillx 1100
set %skilly 0

set %statusx 0
set %statusy 700

set %backpackx 650
set %backpacky 450

set %resourcex 475
set %resourcey 450

; runuo or osi -> #true or #false
set %runuo #false

; manually set secure cotainer ID's, or leave blank (or N/A) for automated setup
set %ResourceSecure NACAPQD

;===================================================================

gosub constants
gosub drawmenu
while #true
{
  gosub #menubutton
  gosub *request
}

;===================================================================

sub drawmenu
Menu Window Title Crisis Carpentry Trainer
Menu Window Color Lime
Menu Window Size 270 155
Menu Font BGColor Silver
Menu Font Color Maroon
menu shape skillsbg 5 5 260 85 3 7 1 Silver 7 Black
menu shape statusbg 5 95 260 25 3 7 1 Silver 7 Black
Menu Font Size 10
Menu Font Align Right
Menu Font Color Lime
menu font bgcolor Black
Menu Text Titles 85 10 Carpentry:
Menu Text Titles 85 30 Attempts:
Menu Text Titles 85 50 Time:
Menu Text Titles 85 70 Last Gain:
Menu Text Titles 85 100 Status:
Menu Font Align Left

chooseskill carp real
  set %startingskill #skill
  set %currentskill #skill
  str len %currentskill
  str ins %currentskill #dot #strRes
menu text currentskill 95 10 #strRes
 set %totalgains %currentskill - %startingskill
 str len %totalgains
 str ins %totalgains #dot #strRes
menu Text totalgains 130 10 + #strRes
Set %Attempts 0
Menu Text Attempts 95 30 %Attempts
  Set %start_time #scnt
  set %hours 00
  set %mins 00
  set %secs 00
  Set %total_time %hours , : , %mins , : , %secs
  Set %last_gain %hours , : , %mins , : , %secs , #spc , %ap
menu Text TotalTime 95 50 %total_time
menu Text LastGain 95 70 %last_gain

menu Font BGColor
menu Font Color Lime
menu Button StartP 40 125 75 25 Start
menu Font Color Lime
menu Button QuitP 152 125 75 25 Quit
Menu Font Size 10
Menu Font Color Lime
menu font bgcolor Black

menu delete scriptstatus
menu text scriptstatus 95 100 Click "Start" to begin.
menu show %menux %menuy
Set #menuButton N/A
return

;===================================================================

sub DelStart
   menu Delete StartP
   menu font bgcolor Black
   menu font color Lime
   menu Button PauseP 40 125 75 25 Pause
return

;===================================================================
sub DelPause
  Menu Delete PauseP
  Menu Font Color Lime
  menu font bgcolor Black
  Menu Button ResumeP 40 125 75 25 Resume
return

;===================================================================

sub DelResume
    Menu Delete ResumeP
    Menu Font Color Lime
    menu font bgcolor Black
    Menu Button PauseP 40 125 75 25 Pause
Return

;===================================================================

sub StartP
  gosub DelStart
  set #menubutton N/A
  set *request INIT
return

;===================================================================

sub PauseP
  gosub DelPause
  menu delete scriptstatus
  Menu Font Color Red
  menu font bgcolor Black
  menu text scriptstatus 95 100 Paused
  set #menubutton N/A
  set *request IDLE
return

;===================================================================

sub ResumeP
  gosub DelResume
  set #menubutton N/A
  if %initialized
    set *request CRAFT
  else
    set *request INIT
return

;===================================================================

sub QuitP
  set *request END
return

sub Closed
  set *request END
return

;===================================================================

sub INIT
  set *state INIT
  gosub ScriptBegin
  set *request CRAFT
return

;===================================================================

sub CRAFT
  set *state CRAFT
  gosub %s . *substate
  set *substate ( *substate + 1 ) % 5
return

;===================================================================

sub IDLE
  ; do nothing
  set *state IDLE
  gosub hardwait 1
return

;===================================================================

sub END
   set *state END
   display ok Thank you for using Crisis Carpentry Trainer.$
            +$
            +Script is Halting$
   menu hide
   menu clear
   halt
return

;===================================================================

sub ScriptBegin
  set %lastitemindex 0
  gosub setup
  gosub ClearPackBoards %boards
  gosub ClearPackGarbage %garbage
return

;===================================================================

sub hardwait
  if ( %0 = 0 ) || ( %1 = 1 )
  {
    sleep 10
    return
  }
  wait %1
return

;===================================================================

sub contidwait
  set %_gid %1
  set %_tm #systime + ( %gumptimeout * 50 )
  gosub hardwait %gumpwait
  while %_gid <> #contid
  {
    wait 1
    if #systime > %_tm
    {
      display ok Timeout waiting for container id %1 to open.
        +$ Pausing.
        +$ Manually open container, then hit run button on main easyuo window to resume script.
      pause
      if #contid <> %_gid
        return #false
    }
  }
return #true

;===================================================================

sub setup
  menu delete scriptstatus
  menu text scriptstatus 95 100 Setting Up Script
 
  ;open journal
  event macro 8 3
  gosub hardwait %precontposwait
  contpos %journalx %journaly
  gosub hardwait %postcontposwait

  ;open skills
  gosub actionblock
  event macro 8 4
  gosub hardwait %precontposwait
  contpos %skillx %skilly
  gosub hardwait %postcontposwait

  ;open status
  gosub actionblock
  event macro 8 2
  gosub hardwait %precontposwait
  contpos %statusx %statusy
  gosub hardwait %postcontposwait

  ;open backpack
  gosub actionblock
  event macro 8 7
  gosub contidwait #backpackid
  contpos %backpackx %backpacky
  gosub hardwait %postcontposwait
  gosub CountRegs
  set %mana 0

    ; locate/open resource secure
  str len %ResourceSecure
  if ( N/A notin %ResourceSecure ) && ( #strres > 0 )
  {
    finditem %ResourceSecure
    if #findkind <> -1
      goto _openres
  }
  _selres:
  display Ok Select your Resource Container.
  set #targcurs 1
  while #targcurs = 1
    gosub hardwait 2
  set %ResourceSecure #ltargetid
  _openres:
  set #lobjectid %ResourceSecure
  gosub actionblock
  event macro 17 0
  gosub contidwait %ResourceSecure
  contpos %resourcex %resourcey
  gosub hardwait %postcontposwait

  ; locate trash barrel
  Display Ok Select the trash barrel.
  set #targcurs 1
  while #targcurs = 1
    gosub hardwait 2
  set %Trashbarrel #ltargetID
    wait 20

  set %initialized #true
return

;===================================================================

sub constants

  if %runuo
  {
    set %cwin 530_437      ; Carpentry window size
    set %tinkwin 530_437   ; Tinkering window size

    set %texitx 30
    set %texity 410
    set %tmlx 280
    set %tmly 410
    set %ttoolsx 30
    set %ttoolsy 110
    set %ttinkx 230
    set %ttinky 130
    set %tsawx 230
    set %tsawy 210

    set %cexitx 30
    set %cexity 410
    set %cmlx 280
    set %cmly 410

    set %in ItemRUO
  }
  else
  {
    ; EA OSI
  set %cwin 530_497 ; 530_437        ; Carpentry window size
  set %tinkwin 530_497 ; 530_437     ; Tinkering window size

  set %carpentry carp

 ; Materials
  set %ingots ENK
  set %boards TLK
  set %tinkertool JTL_GTL_KTL
  set %carptool YFG_ZHG_CIG_BIG_AGG_EGG_AIG_WFG_IGG_KGG_ZFG_CGG
  set %axeType LSF_OSF_NSF_BSF_MSF_CSF_ISF_MPH_JOH_UOH_RMH_LPH_ZRF
  set %garbage BTL_OJL_OIK_MDP_ZPF_DMH_GFF_BFR
  set %breakgarbage VMF_UMF

  ; Items to make
  set %Item1 BTL ; Barrel Staves
  set %Item2 OJL ; Barrel Lid
  set %Item3 VMF ; Medium Crate
  set %Item4 UMF ;Crossbow
  set %Item5 OIK ; Wooden Shield
  set %Item6 MDP ; Fukiya
  set %Item7 ZPF ; Quarter Staff
  set %Item8 DMH ; Sheppard's Crook
  set %Item9 GFF ; Black Staff
  set %Item10 BFR ; Wild Staff

  ; max skill threshold for each item
  set %Threshold1 200
  set %Threshold2 320
  set %Threshold3 480
  set %Threshold4 530
  set %Threshold5 600
  set %Threshold6 740
  set %Threshold7 790
  set %Threshold8 820
  set %Threshold9 960
  set %Threshold10 100

  ; CRAFT substates
  set %s0 CheckTinkerTools
  set %s1 CheckCarpTools
  set %s2 CheckBoards
  set %s3 SkillCraft
  set %s4 DumpGarbage

  ; Timing tweaks.  20 = 1 second
  set %gumpwait 1          ; Time to wait before scanning for open gump/container
  set %gumptimeout 60      ; Maximum amount of time to wait for gump to open

  set %precontposwait 10   ; Time to wait after opening gump and moving it using contpos
  set %postcontposwait 30  ; Time to wait after performing contpos

  set %postdropwait 22     ; Time to wait after each exevent drop before attempting any other action
  set %postcraftwait 1     ; Time to wait after an item is crafted before performing any other action

  set %preregmovewait 10   ; Minimum time to wait before moving all regs
  set %postregmovewait 22  ; Extra time to wait after moving all regs, (in addition to %postdropwait, above)

  set %interactiontime 10   ; Minimum measured interval between all { exevent drop, event macro } operations


  set %_lit %interactiontime * 20
  set %_lastactiont #systime - %_lit

  ; initial states
  set %initialized #false
  set *substate 0
  set *state IDLE
  set *request IDLE
return

;===================================================================

sub ClearPackBoards
  menu delete scriptstatus
  Menu Font BGColor Black
  menu Font Color Lime
  menu text scriptstatus 95 100 Clearing Pack of Boards
  finditem %boards C_ , #backpackid
  if #findcnt < 1
    return
  for #findindex 1 #findcnt
  {
    exevent drag #findid #findstack
    wait 20
    exevent dropc %ResourceSecure
    wait 20
  }
return

;===================================================================

sub ClearPackGarbage
  menu delete scriptstatus
  Menu Font BGColor Black
  menu Font Color Lime
  menu text scriptstatus 95 100 Clearing Pack of Garbage
  {
  finditem %Garbage C_ , #backpackid
  if #findcnt > 0
  }
  for %ItemToDump 1 #findcnt
  {
    Set #FindIndex %ItemToDump
    exevent drag #findid #findstack
    wait 20
    exevent dropc %Trashbarrel
    wait 20
  }
return

;===================================================================

sub CheckTinkerTools
menu delete scriptstatus
Menu Font BGColor Black
menu Font Color Lime
menu text scriptstatus 95 100 Getting New Tinker Tool
  finditem %tinkertool C_ , #backpackid
  if #findcnt < 2
    gosub MakeTinkerTools
return

;===================================================================

sub CheckCarpTools
menu delete scriptstatus
Menu Font BGColor Black
menu Font Color Lime
menu text scriptstatus 95 100 Getting New Carpenter's Tool
  ; keep two in pack in case current one gets worn out
  finditem %carptool C_ , #backpackid
  if #findcnt < 2
    gosub MakeCarpTools
return

;===================================================================

sub CheckBoards
  menu delete scriptstatus
  menu text scriptstatus 95 100 Checking Boards
  finditem %boards C_ , #backpackid
  if #findcnt = 0
  {
    menu delete scriptstatus
    menu text scriptstatus 95 100 Moving Boards
    gosub moveit #backpackid %ResourceSecure %boards 200
    gosub hardwait %postregmovewait
    if #result = 0
    {
      display ok Out of boards in secure, halting...
      halt
    }
  }
return
  ;if #findstack < ( 30 * %craftingboards )
   ;{
   ;Set %boardsneeded %craftingboards * 30 - #FindStack
   ;Gosub moveit #BackpackID %ResourceSecure %boardsneeded
   ;}
return

;===================================================================

sub MakeTinkerTools
menu delete scriptstatus
Menu Font BGColor Black
menu Font Color Lime
menu text scriptstatus 95 100 Making New Tinker Tool
  finditem %ingots C_ , #backpackid
  if #findstack >= 25
     goto _maketink
  set %_diff 25 - #findstack
  finditem %ingots C_ , %ResourceSecure
  if #findstack < 25
  {
    display You have used up most of your ingots. Halting...
    set *request END
  }
  gosub moveit #backpackid %ResourceSecure #findid %_diff

  _maketink:
  finditem %tinkertool C_ , #backpackid
  if #FindCnt = 0
  {
    display You are out of tinker tools. Get a tinker tool and restart script.
    halt
  }
  set #lobjectID #findid
  gosub actionblock
  event macro 17 0
  gosub tinkwait
  gosub offsetclick 27 130  ; tools
  wait 5
  gosub tinkwait
  gosub offsetclick 230 130 ; tinker's tools
  wait %postcraftwait
  gosub offsetclick 27 450  ; exit
  finditem %tinkertool c_ , #backpackid
  if #findcnt < 2
  gosub MakeTinkerTools

return

;===================================================================

sub MakeCarpTools
menu delete scriptstatus
Menu Font BGColor Black
menu Font Color Lime
menu text scriptstatus 95 100 Getting New Carpenter's Tool
  finditem %ingots C_ , #BackpackID
  if #findstack >= 25
    goto _makecarptool
  set %_diff 25 - #findstack
  finditem %ingots C_ , %ResourceSecure
  if #findstack < 25
  {
    display You have used up most of your ingots. Halting...
    set *request END
    return
  }
  gosub moveit #backpackid %ResourceSecure #findid %_diff

  _makecarptool:
  finditem %tinkertool C_ , #Backpackid
  if #findcnt = 0
  {
    display You are out of tinker tools. Get a tinker tool and restart script.
    set *request END
    return
  }
  _makecarptool:
  finditem %tinkertool C_ , #Backpackid
  if #findcnt = 0
  {
    display You are out of tinker tools. Get a tinker tool and restart script.
    halt
  }
  set #lobjectID #Findid
  gosub actionblock
  event macro 17 0
  gosub tinkwait
  gosub offsetclick 27 130  ; tools
  wait 5
  gosub tinkwait
  gosub offsetclick 235 210   ; saw
  wait 5
  gosub tinkwait
  gosub offsetclick 280 450   ; make last
  wait 5
  gosub offsetclick 25 450  ; exit
  finditem %carptool c_ , #backpackid
  if #findcnt < 2
    gosub MakeCarpTools
return

;===================================================================

sub actionblock
  while #systime < %_lastactiont
  {
    set %_sl %_lastactiont - #systime - 10
    if %_sl > 0
      sleep %_sl
  }
  set %ji #jindex + 1
  set %_lastactiont #systime + %_lit
return

;===================================================================

sub SkillCraft
  menu delete scriptstatus
  Menu Font BGColor Black
  menu Font Color Lime
  menu text scriptstatus 95 100 Attempting Skill Gains
  gosub Calc_Time

  gosub carptoolwait
  if true in #result
    goto _menu_up

  _getcarptool:
  finditem %carptool C_ , #Backpackid
  if #findcnt < 2
  {
    return
  }
  set #lobjectid #findid
  gosub actionblock
  event macro 17
  gosub carptoolwait
  if getcarptool in #result
  {
    goto _getcarptool
  }
  if false in #result
  {
    gosub carptoolwait
  }
    if true notin #result
  {
      goto _getcarptoolItem
  }
  wait 20

  _menu_up:
  chooseskill carp real
  set %CurrentSkill #Skill
  gosub SkillCheck
  if %lastitemindex <> %itemindex
  {
    gosub Item . %itemindex
    gosub ClickItem
    gosub hardwait %postcraftwait
    gosub carptoolwait
    if getcarptool in #result
      goto _getcarptool
    set %lastitemindex %itemindex
    if false in #result
      goto _getcarptool
  }
 
  gosub offsetclick 280 450 ; make last
  gosub hardwait %postcraftwait
  gosub carptoolwait
  ;gosub CheckWeight
  gosub CheckBoards
  wait 10
 
gosub AddAttempts
gosub MenuSkillCheck
gosub Calc_Time
return

;===================================================================

sub ClickItem
  for %a 1 %numclick
  {
    _clickagain:
    gosub offsetclick %XClick . %a %YClick . %a
    gosub carptoolwait
    if true notin #result
      return #result
  }
return true

;===================================================================

sub Skillcheck
  chooseskill carp real
  for %a 1 10
  {
    if #skill < ( %Threshold . %a )
    {
      set %itemindex %a
      return
    }
  }
  display Congratulations, #charname you are the newest GM Carpenter. Skillcap reached, halting.
  halt
return

;===================================================================

sub Item1        ; Barrel Stave
   set %CraftingBoards 5
   set %XClick1 30   ; other
   set %YClick1 90
   set %XClick2 235  ;barrel stave
   set %YClick2 70
   set %numclick 2
Return

;===================================================================

sub Item2         ; Barrel Lid
   set %CraftingBoards 4
   set %XClick1 30  ; other
   set %YClick1 90
   set %XClick2 235  ; barrel lid
   set %YClick2 90
   set %numclick 2
Return

;===================================================================

sub Item3        ; Medium Crate
   set %CraftingBoards 15
   set %XClick1 30   ; container
   set %YClick1 130
   set %XClick2 235  ; medium crate
   set %YClick2 110
   set %numclick 2
Return

;===================================================================

sub Item4        ; Large Crate
   set %CraftingBoards 18
   set %XClick1 30   ; container
   set %YClick1 130
   set %XClick2 235  ; large crate
   set %YClick2 130
   set %numclick 2
   Return

;===================================================================

 sub Item5        ; Wooden Shield
   set %CraftingBoards 9
   set %XClick1 30   ; armor
   set %YClick1 170
   set %XClick2 235  ; wooden shield
   set %YClick2 70
   set %numclick 2
Return

;===================================================================

sub Item6        ; Fukiya
   set %CraftingBoards 8
   set %XClick1 30   ; weapon
   set %YClick1 150
   set %XClick2 235  ; fuliya
   set %YClick2 150
   set %numclick 2
Return

;===================================================================

sub Item7        ; Quarter Staff
   set %CraftingBoards 6
   set %XClick1 30   ; weapon
   set %YClick1 150
   set %XClick2 235  ; quarter staff
   set %YClick2 90
   set %numclick 2
Return

;===================================================================

sub Item8        ; Sheppard Crook
   set %CraftingBoards 7
   set %XClick1 30   ; weapon
   set %YClick1 150
   set %XClick2 235  ; sheppard's crook
   set %YClick2 70
   set %numclick 2
Return

;===================================================================

sub Item9        ; Black Staff
   set %CraftingBoards 9
   set %XClick1 30   ; weapon
   set %YClick1 150
   set %XClick2 380  ; next page
   set %YClick2 270
   set %XClick3 235  ; black staff
   set %YClick3 170
   set %numclick 3
Return

;===================================================================

sub Item10        ; Wild Staff
   set %CraftingBoards 16
   set %XClick1 30   ; weapon
   set %YClick1 150
   set %XClick2 235  ; wild staff
   set %YClick2 190
   set %numclick 2
Return

;===================================================================

sub GumpWait
  set %_tm #systime + ( %gumptimeout * 50 )
  gosub hardwait %gumpwait
  while #contsize <> %cwin
  {
    sleep 10
    if #systime > %_tm
    {
      display Problem waiting on craft gump, open manually then press play easyuo menu
      pause
    }
  }
return #true

;===================================================================

sub carptoolwait
  set %_t #systime
  set %_tm #systime + ( %gumptimeout * 20 )
  gosub hardwait %gumpwait
  while #contsize <> %cwin
  {
    sleep 10
    if #jindex >= %ji
    {
      for %_a %ji #jindex
      {
        scanjournal %_a
        if worn_out in #journal
        {
          return getcarptool
        }
        set %ji %ji + 1
      }
    }
    if #systime > %_tm
    {
      return false
    }
  }
  set %_t #systime - %_t
return true

;===================================================================

sub tinkwait
  set %_tm #systime + ( %gumptimeout * 20 )
  gosub hardwait %gumpwait
  while #contsize <> %tinkwin
  {
    sleep 10
    if #systime > %_tm
    {
      display Problem waiting on tinkering gump, open manually then press play on easyuo menu
      pause
    }
  }
return  #true

;===================================================================

sub offsetclick
  set %_tempx #contposx + %1
  set %_tempy #contposy + %2
  if %0 > 2
    click %_tempx %_tempy %3
  else
    click %_tempx %_tempy
return

;===================================================================

sub CheckWeight
Set %WeightMargin #MaxWeight - #Weight
finditem %garbage C_ , #backpackid
If #FindCnt > 0 && %WeightMargin < 50

finditem %garbage C_ , #backpackid
If #FindCnt > 0
   {
   For %dumpgarbage 1 #FindCnt
       {
       Set #FindIndex %dumpgarbage
       exevent drag #findid #findstack
       wait 10
       exevent dropc %TrashBarrel
       wait 10
       }
   }
finditem %BreakGarbage
if #findkind = 0
  {
return
}

set %breakthis #findid
Breakit:
set #lobjectid %axetype
event macro 17 0
target 4s
set #ltargetid %breakthis
set #ltargetkind 1
event macro 22 0
wait %gumpwait
finditem %breakthis
if #findkind = 0
Return

;===================================================================

sub moveit
menu delete scriptstatus
Menu Font BGColor Black
menu Font Color Lime
menu text scriptstatus 95 100 Moving Items
  ; %1 destination container ID
  ; %2 source container ID, or * (any except destination), or # (ground)
  ; %3 specific item types to move, or * (all found items)
  ; %4 optional, stacksize
  set %_max 60000
  set %_total 0
  if %0 = 4
    set %_max %4
  set %_from C_ , %2
  if * in %2
    set %_from C
  if # in %2
    set %_from G_2
  finditem %3 %_from
  if #findkind = -1
    return %_total
  set %pd _NULL_
  if * in %2
    set %pd #charid
  for #findindex 1 #findcnt
  {
    if ( #findbagid <> %1 ) && ( #findbagid <> %pd )
    {
      set %_amt %_max
      if #findstack < %_max
        set %_amt #findstack
      set %_total %_total + %_amt

      gosub actionblock

      exevent drag #findid %_amt
      gosub hardwait
      if %1 = #charid
        exevent droppd
      else
        exevent dropc %1
      gosub hardwait %postdropwait
    }
  }
return %_total

;===================================================================

Sub Calc_Time
Set %TT #Scnt - %start_time
Set %hours %TT / 3600
Set %mins ( %TT / 60 ) - ( %hours * 60 )
Set %secs %TT % 60
If %hours =< 9
   Set %hours 0 , %hours
If %mins =< 9
   Set %mins 0 , %mins
If %secs =< 9
   Set %secs 0 , %secs
Set %total_time %hours , : , %mins , : , %secs
Menu Font Color Black
Menu Font Size 10
menu set TotalTime %total_time
Return

;===================================================================

Sub AddAttempts
Set %attempts %attempts + 1
Menu Font Size 10
Menu Font Color Black
menu set Attempts %attempts
Return

;===================================================================

sub time
set %ap AM
set %time #time
str right %time 2
set %sec #StrRes
str left %time 2
set %hr #StrRes
str mid %time 3 2
set %min #StrRes
if %hr > 11 && %hr < 24
  set %ap PM
if %hr > 12
  set %hr ( %hr - 12 )
if %hr = 00
  set %hr 12
set %last_gain %hr , : , %min , : , %sec , #spc , %ap
Menu Font Color Black
Menu Font Size 10
menu set LastGain %last_gain
return

;===================================================================

Sub MenuSkillCheck
  chooseskill carp real
  if #skill = #skillcap
  {
    set %currentskill #skill
    menu set current %currentskill
    wait 10
    display You have reached your skill cap.$
            +Thank you for using Crisis Carpentry Trainer$
            +$
            +Script is Halting$
    menu hide
    set *request END
    return
  }
  if #skill > %currentskill
  {
    Set %currentskill #skill
    str len %currentskill
    str ins %currentskill #dot #strRes
    Menu Font Size 10
    Menu Font Color Lime
    menu set currentskill #strRes
    Set %totalgains %currentskill - %startingskill
    str len %totalgains
    str ins %totalgains #dot #strRes
    menu set totalgains + #strRes
    gosub time
  }
Return

83
UO-Related Tutorials / An Idiots (Crisis) Guide to Reforging
« on: December 31, 2013, 07:12:36 AM »
First off, I do not know everything about reforging nor do I claim to. I have played around a lot with it and found it very rewarding, yet wasteful and expensive. It may take 25-40 burns on a runic, 3 charges per burn,  to get what you are looking for. It is a great way though to get a mod that you want to be over its cap. First the basics so you are familiar with what I am talking about. http://uo2.stratics.com/items/runic-re-forging and http://www.uoguide.com/Runic_Re-Forging

The first thing I recomend is to check out these threads. They are all stratics threads and are extremely worth reading. Semmersets charts are invaluable when choosing your mod, runic, and reforging choices.

CorwinXX has an awesome how to reforge post which almost makes mine unnecessary. http://stratics.com/community/threads/reforging-how-to.264020/  What I did was I experimented with making a luck suit as that is what he used as an example. It made it a lot easier to tell if I was understanding it or not. I don't have a whole lot of use for the suit I made but it did come in handy. Make sure that you read the entire thread of his because a lot of people asked different questions that I had been wondering so almost the entire thread helped me better my understanding. Semmerset adds a bunch of lists of mods and stuff. Those are a great reference and I am going to talk about his charts next.

Semmerset is a reforging genius and able to answer so many questions. He is extremely helpful so if you ever get a chance to ask him something, I highly recommend it. He has charts in tons of threads and Stratics went ahead and put them all in one place for easy reference. http://uo2.stratics.com/items/runic-re-forging/semmersets-re-forging-charts . The charts are based on the materials that you want to use. It tells you which runic to use to get each mod and what to choose. For example, a lot of people are talking about 100% elemental damage. If you look at the second chart, it is the dull, shadow, copper runic chart. Scroll down the chart until you find elemental damage. It then shows that it is for a weapon. This one is obvious that it will be weapon only but other mods have categories for weapon or armor. In order to get 100% elemental damage with a dull copper you will have to choose exquisite/of quality and fundametal reforge but the downside is that it would not be able to be repaired and have a couple of other mods. So right off, you know that dull copper is not the way to go. Shadow and copper runics can get you a 100% elemental damage with only one to 2 mods using a powerful reforge. It would not be brittle or non-repairable. You will also not get 100% right away unless extremely lucky. When I experimented with getting a 100% poison mod on a sword, I made 23 swords before getting 100% poison damage as the only mod and I think that was lucky. Semmerset has a list of reforge caps here http://stratics.com/community/threads/reforging-how-to.264020/#post-2104643 and then the different reforging names choices here http://stratics.com/community/threads/reforging-how-to.264020/#post-2107850

To start reforging, you need to be next to a soulforge, then you double click your runic and target the item to be reforged. Make sure you have plenty of runics and I like to combine 2-3 of them together before starting. To combine runics, they must be the same type. The key to reforging is to only choose one name. When you choose more than one name you end up with more mods. For an example with the 100% elemental damage, if you choose exquisite and of quality, you will most likely get 2-3 mods. To get only 1 - 2 mods you would choose only grand artifice and inspired artifice. Choosing grand artifice only will give you a random mod. If you choose powerful, structural, or fundamental you will end up with more mods and then brittle or cannot repair. Once you have the mod that you want, remember to use POF on it!! I got all excited on a weapon when I was first playing around with it and imbued right after reforging and then it was a DOH moment when I saw that I wasted 2 runics, and some very nice imbuing resources for 48 durability. DOH!

I am not sure what else to add at this point because there is so much out there to get you started. If you have any questions, post them and I will do my best to answer them. Here is a screenshot of the reforge menu





84
Scripting Chat / itemid for Black Staff
« on: December 30, 2013, 12:24:47 PM »
I need the item id for a black staff but I am not high enough in carpentry to make it. Can anyone get it for me please? I checked on easyuo and they are showing 2 different directions. GFF anf FFF but I am not sure which one is the correct one when you craft it.

It is not on this list http://www.easyuo.com/objecttype.php?cat=3

and if you go here it gives you the 2 different ones I listed http://www.easyuo.com/itemdb/index.php?namesearch=search

85
Scripting Chat / Mentor needed
« on: December 28, 2013, 05:01:17 PM »
Novice scripter looking to becoming adept. I have a bunch of crafting scripts that I want to finish but I am struggling with the move resources and the main crafting loop. I am hoping someone that is knowledgable might have some free time to explain the reasons for specific commands in a couple of scripts that I am learning from. I have learned a lot but I really want to understand some of the mechanics and commands better so I can finish some scripts that I am working on. Thanks for reading and let me know if you are interested in helping me understand better. Thanks!  ;D

86
Script Debug / Clearing a pack
« on: December 27, 2013, 07:20:43 PM »
I am trying to clear a pack of bows to the trash barrel in a fletching script.

This is in the set up

Code: [Select]
set %garbage SLK_WOH_SGP_JSF_QPO_LMH_PPO ;crafted bows
This is before the sub

Code: [Select]
sub ScriptBegin
  set %lastitemindex 0
  gosub setup
  gosub ClearPackBoards %Boards
  gosub ClearPackGarbage %Garbage
return

Here is the ClearGarbage sub

Code: [Select]
sub ClearPackGarbage
  menu delete scriptstatus
  Menu Font BGColor Black
  menu Font Color Lime
  menu text scriptstatus 95 100 Clearing Pack of Garbage
  finditem %1 C_ , #backpackid
  if #findcnt < 1
    return
  for #findindex 1 #findcnt
  {
    exevent drag %Garbage
    exevent dropc %Trashbarrel
  }
return

I believe my error is in this line but I am not sure how to fix it.

Code: [Select]
exevent drag %Garbage
How do I fix this?

87
Scripting Chat / A couple of questions about hiding
« on: December 27, 2013, 10:05:30 AM »
1. How script a check to see if your character is hidden? Only thing that I could really find is doing a check for a hidden flag on EUO. I want to add a hide option on a craft script but this would be used at a bank and hiding is low.

Code: [Select]
event macro 13 21
wait 11000

if H in #charStatus
{
gosub startcraft
}
return

Will this continue to try and hide until character is hidden and then move onto the crafting sub? If not, what am I doing wrong? Is there a better way to do this?

2. Using this meditation sub, where would I put in a hide event so that the character hides when meditation is done?

Code: [Select]
sub CheckMana
  menu delete scriptstatus
  Menu Font BGColor Black
  menu Font Color Lime
  menu text scriptstatus 95 100 Checking Mana
  set %_test ( 100 * #mana ) / #maxmana
  if ( %_test < 35 ) || ( #mana < %mana )
  {
    gosub actionblock
    menu delete scriptstatus
    Menu Font BGColor Black
    menu Font Color Lime
    menu text scriptstatus 95 100 Meditating
    event macro 13 46 ; meditate
    set %_tlastskill #systime + 10100
    while #mana < ( 95 * #maxmana / 100 )
    {
      gosub hardwait 1
      if %_tlastskill < #systime
      {
        gosub actionblock
        event macro 13 46 ; meditate
        set %_tlastskill #systime + 10200
      }
    }
    set %_diff #systime - %_tlastskill - 9000
    if %_diff > 0
    {
      set %_diff ( %_diff / 50 ) + 1
      gosub hardwait %_diff
    }
  }
return

88
Scripting Chat / Question on grabbing amounts
« on: September 15, 2013, 09:08:02 AM »
I am working on an inscription script and am wondering on the best way to grab an amount of regs based on the amount of something that I am making. My menu has the combo box where a spell can be chosen and there is an edit box where you can edit how many of the scroll to make. I have never coded anything that multiplies the amount of regs needed by the amount that is being made so not sure how to code it.

Here is an example of the Clumsy Scroll
Code: [Select]
sub Item1ma  ; Clumsy Scroll
    set %mana 4
    set %regs %bm , _ , %ns
    set %current QXL
    set %clumsy QXL
    set %makestr Clumsy
    set %XClick1 27    ; First Circle
    set %YClick1 90
    set %XClick2 230   ; Clumsy
    set %YClick2 70
    set %numclick 2
return

Any suggestions?

89
1. Can someone explain to me how they work their BODS? I am not sure at all which ones are worth bribing up, which ones are worth turning in as is, and which ones to just trash. I have been using Kali's BOD Sorter but not sure if I should make my own index or not.

2. What does one look for in Shame as fas as what to keep and what to leave? I am thinking that I am most likely over looking things that sell.

3. How do you make your money? Looting in dungeons and selling it? Farming resources? Something else? I am just curious cause I make a decent amount of gold but I might be missing out cause I cannot afford to go all out on auctions or put things on vendors for outrageous amounts of money without worrying about the vendor running out of money and disappearing.

Thanks for looking!

90
Scripting Chat / set #lpc What does it do?
« on: July 01, 2013, 09:15:26 PM »
What does this command do? I see it used a lot and I see it usually as set #lpc 100 and a few times as set #lpc 200.

Thanks!!

Pages: 1 ... 4 5 [6] 7 8