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 - Coragin

Pages: 1 ... 8 9 [10]
136
I am looking for the best template, well two templates to solo DF's.

Make first template a tamer, second, whammy or Samp or dexxer.

I am looking to make this a permanent post with the top post updated to reflect feedback. 

Guidelines to follow:
1. Try to NOT include faction items, if you must, level 1 items only.
2. Try to make any atries used easily obtainable.
3. Try to be specific in suit to choose, with whys and why nots. **
4. Try to be specific in template, whys and why nots *

*i.e. if you choose a tamer template and dont include Vet for example, explain why...
**i.e. If your suit for a mage has no LRC,MR or other stats for example, why?

I am currently soloing Lord Oaks and found if you bring him to a small hill while dragon is fighting him, his AE wont hit you, thus not changing targets.  Must be Z Axis, I dont know, but Im not getting hit just SE of alter on that small slope.

137
This no longer works as it is dead on OSI shards, Pen trick dont work anymore.


This is a script I whipped up with a lot of cut and paste, to do Lord Oaks and Twisted Weald champ spawns fast.  It is largely based on the SUO Champ spawn helper and C2's discord trainer with pen trick.  Using both of those scripts, I came up with this idea to run a character that will auto discord any target on screen that is in the monster type.  It has a journal check for if discord was successful, if it was it will ignore the target and continue.  It will also wait if there are no targets on screen.

In the future I will add in an all attack sub, so this can be a semi-afk script or for a secondary account.

Special credit to C2 for his main sub which made this possible.

If your code is here and I didnt give credit, PLEASE let me know so I can.

Future Additions:

1. Adding in HP check to auto pause/hide/invis for heals, for other champ spawns.
2. Adding in Doom Dark Father support and bone cutter.
3. Create a menu choosing a spawn or location i.e. doom.
4. Sending pet in to kill if all targets are discorded.

Code: [Select]
;==========================================================================
; Script Name: Coragin's Auto area discorder.
; Author: Coragin (Subs from ALOT OF PEOPLE)
; Version: 1.0
; Shard OSI / FS: OSI (Tested)
; Revision Date: 06/05/2009
; Purpose: Auto discords all targets in an area.  Will not discord the same target twice.
;          Useful for Lord Oaks and Twisted Weald champ spawns. This uses the pen trick,
;          so make sure you have a mapmakers pen in your inventory.  And a lot of instuments.
;
;==========================================================================
; Version: 1.0 - first release for testing
;              Currently only set up for Lord Oaks and Twisted Weald.
;==========================================================================
; Special Thanks: C2, TrailMyx, Cervaza for their scripts that gave me the idea for this.
;
; Based on: SUO Champ Spawn Helper || C2's Auto Discord Trainer
;
;==========================================================================
set %animal MHB_FN_NB_XI_EF_WF_PB_ZM
set %waittime 25  ; 25 is recommended you can try to tweak this time 20 = 1 sec
;================set instrument=================================
set %trainit disc
chooseskill %trainit
set %inst QRF_NRF_MQF_PRF_LQF_OQF_RGP_KRF_RPG
event macro 8 7
wait 10
finditem %inst C_ , #backpackid
set %music #findid
set #LOBJECTID #findid
event macro 17 0
wait 20
;==================set pen and locations=========================
finditem CXF C_ , #backpackid
if #findkind = -1
  {
  display Get a Mapmaker's Pen and restart! Halting
  halt  ; no pen
  }
set %pen #findid
    wait 5
set #LOBJECTID %pen
event macro 17 0
wait 20
set %clickx #CONTPOSX + 285
set %clicky #CONTPOSY + 410
;=======================Main=========================
start:
repeat
finditem %animal G_15
if #findkind = -1
   {
   ;gosub reset
   goto start
   }
set %targeted #findid
if #contsize <> 530_437
   {
   set #LOBJECTID %pen  ;this will open up pen each time!
   event macro 17       ;if u lose menu while peacing ever this will
   wait 20              ;be slower for one pass but stabalize menu loss
   }
gosub GumpWait
gosub GumpWait
set #ltargetid %targeted
set #ltargetkind 1
event macro 13 15 ; disco
target
event macro 22
gosub SuccessCheck
;ignoreitem #ltargetid     ;This will be success check in journal
finditem %inst C_ , #backpackid
if #findkind = -1
   {
   Display Out of Instruments
   halt
   }
set #lobjectid #findid
set %music #findid
event macro 17 0
wait %waittime
until #charghost = yes
while #charGhost = YES
  wait 0
goto start

;Gump Wait Sub for Mapmakers pen
sub GumpWait
  set %safety_timer #scnt + 2
  repeat
  until #contsize = 530_437 || ( #scnt > %safety_timer )
  click %clickx %clicky f
return

sub reset
   ignoreitem reset
return

sub SuccessCheck
scanjournal %jindex
if %jindex = %jindexlimit
if you_play_jarring_music in #journal || suppressing_your_target's_strength in #journal || That_creature_is_already_in_discord in #journal
   {
      ignoreitem #ltargetid
   }
return

138
Scripting Chat / Check journal sub, example sub.
« on: June 05, 2009, 11:31:00 AM »
I am putting the moonglow on hold for a bit, right now Im working on something and Im stuck.  I need to have a sub that checks the journal for a specific phrase. Can anyone help me with an example?

Code: [Select]
sub JournalCheck
  ;check for phrase in journal
  ;if found ignore this target
  ;if not return

This is to check if discord was successful or not, if it was, ignore current target, if not, return.

139
Player Templates / Whammy/Tamer YEAH BABY!
« on: June 04, 2009, 02:36:43 AM »
Okay, while playing my whammy, I thought, man it would be GREAT to have a greater with me!  And to have some kind of defensive too!!  So I thought about my whammy.

1. I dont use weapon specials, only bushido lightning strike.
2. If I could invis and have this thing attack a dragon instead of me, it would ROCK!

So I came up with this template, let me know what you think.  I am considering buying another char slot to build this.  It comes out to 705 total skill with not skill rings or talismans ect.

Animal Taming   115 (Obvious)
Animal Lore           115 (to have 99% control over dragons and Cu's ect)
Vet              110 (Duh, heal pet, could even go lower and add necro)
Magery      115-120 (115, cause I got one, 120 if I can ever get one, this is your main weapon skill) Mage Weapon
Tactics      100 (enhanced dmg, can lower to 80-90 to add necro)
Bushido      50 (For lightning strike, could replacewith chiv for EoO and CW)
Spirit Speak   100 (for heals if needed, and for Whammy to work)

So an alternative to this template could be...

Animal Taming   115
Animal Lore           115
Vet              100
Magery      115-120
Tactics      90
Chivalry      50 (would need rings with chiv to get EoO to cast well, can move while healing)
Spirit Speak   100
Necro                20 (Midnight bracer/jewels to go into wraith form)

Now, I designed each of these templates to work with little or no extra skill needed from jewels, so you can build a suit both geared towards tamer AND whammy.  Obviously you will be counting on mage jewels/gear to counteract the mage weapon penalty.  Although there are some out there that do have 0 skill, but no SSI, we can discuss gear.

Okay so with these templates in mind here is what I am thinking:

Myself being a major tamer, have two problems all the time when fighting peerless or doom. 

1. I am always getting hit by an AE, which causes me to get targeted for a short while, and Im toast with no weapon skill.
2. no way to fight off adds that come in since I am a bard tamer.  If a LL pops on DF Im toast.  So, I have 0 defensive at all.

With those two in mind while playing my whammy I thought of the above.

Pros:
1. High weapon skill via mage weapon and can use any kind of weapon, bow, swords, mace ect.
2. Defensive if you get targeted till you can invis and let drag continue tanking.
3. You can cross heal drag while fighting via mele or bow.
4. Dont need a lot of mana due to Wraith form. So you can have high dex for swings. and curse weapon for heals when needed.
5. Having pets fight with you!  Lots of dps!
6. Can still honor and get to perfection. 
7. Heal pet from a distance with chiv and magery weapon bow.

Cons:
1. No weapon special moves (I dont use them as it is with my whammy)
2. less defensive since no parry skill.
3. Lower mana pool than normal tamers due to dex.
4. Less chiv and necro due to points being used.
5. No mana regen except in combat.
6. Harder to build a balanced suit.

I am going to test this I think depending on feedback.

Suit:

For a suit, your going to want a mix of both LRC/High Resists, Sta Regen, LMC, ect.  Kiss luck goodbye.

Basicly your going to look for high resists, with LRC/LMC, pretty much any mod you can add to int/mana, hp/str, sta dex.

Talisman: Pretty simple, Premier on Arms for the DI
Jewels: Magery mods, +10 or more on each, adding in Dmg inc or defensive inc, hci ect if you can get them.
Armor: LMC/LRC, STR, INT, DEX, DCI, Sta Regen (or refresh pots). 

Now, keeping in mind, you are PART Whammy not ALL Whammy!  You are sacrificing defensive for having extra dps with a pet, but you are also able to let pet tank from a distance while you plug arrows or even fight face to face.  But your pet is meant to tank the big guys, while you can kill of adds and add in a good amount of dps yourself.  If you need to run in to heal your pet, you can and survive whirlwind attacks ect and gain hps from curse weapon if you are getting it.  But this template it NOT built to sustain a battle with a peerless solo, only to SURVIVE if your attacked by these creatures.  And you can fight NORMAL creatures such as lich lords, rotting corpse, poison ele, probably balrons one on one should the need arise.  Remember, this is a hybrid of two templates, so you wont be the best at whammy, but you will be able to stand and fight unlike most tamers out there.  You will be giving up a LARGE portion of Whammy dps and defensive ability in return for havign a greater dragon, cu, beetle, bake, mare ect fight with you.  Dropping things ALOT faster.  But your pet is meant to tank the big things, so keep a bow handy for those fights.  Things like greater drags, balrons, ect should all be able to be survived on your own.  Still better to let pet tank if possible.

Pets:

Greater Drag: Obvious, biggest tank, most dps, most hps
Cu: Good tank, heals itself, HEALS YOU, no magery
Rune Beetle: ok tank for dungeon fighting, poison resist is nice, coupled with a mare or bake rules! Good for clearing champ spawns.
Bakes: Good for clearing champ spawns, high dps, LOW defensive vs doom/peerless, also add in the above.
Mares: Same as above.

Overall if you are going more defensive than offensive, use a cu when you can.  Since they can heal themselfs and you.  If you want massive dps output but no tank-ability go with rune/bake, rune/mare, two bakes, two mares.  If you want a massive tank that is dumber than a box of rocks but will do massive dps and take hits well, greater dragon.

In closing, if you can take out a greater drag, blood ele, poison ele, ancient wyrm, balron EASY on your current Whammy, they should be somewhat easy on this template, but you will need to withstand more fighting and more healing as your defensive will be lacking.  If you can take out a peerless/champ/DF on your current whammy, you wont be able to with this setup without your pet.  But you will withstand temporary hits and be able to run in and heal pet with vet and not be killed instantly.

Thoughts?

140
Okay, I take no credit for any of this code, it is from Uncle Daves auto taming script.  I stripped them out, removing a lot of stuff that had to do with menus and taming ignores and such.  This will all be called from the main script I am writing for moonglow turnin (see other thread for variables.

What I want to know is if the basic functionality is here to start working if called correctly from the main script.  I added in my own lines of code for namechanges and if 5 followers will return to turnin sub.

Well here it is, keeping in mind I am totally new, but this look like it will work.  If there is code or set up variables needed please point them out.

I think everything is here that is needed to pathfind with taming and to rename pet to "a"

ClickScreenxyz code from Scriptfellow and Roadkill, modified by Uncle Dave
GetDisplacement for animal type by Roadkill
Original subs by Uncle Dave (before I edited them a lot)

Code: [Select]
gosub InitAnimalTaming ;this will go in beginning at setup
sub Dispatch
    set %finditems N/A
    if %finddist <> N/A
    {
        if %findtype in %tameable
            gosub Taming %findid
    }
return


sub InitAnimalTaming
    event macro 8 2 ; open status
    wait 1s
    set %statusposx #contposx
    set %statusposy #contposy
    set %charstartx #charposx
    set %charstarty #charposy
    set %charstartz #charposz
    set %tameid N/A
return

sub Taming
    if #followers >= #maxfol
    {
        gosub turnin
    }
    finditem %1 G_16
    if #findkind = -1
        return
    set %tameid #findid
    set %tametype #findtype
    set %tamedist #finddist
    if %tameid <> #ltargetid
        event exmsg %tameid 3 30 Pick me!
    set %tamecount 0
    gosub TameAnimal
    set %tameid N/A
return

sub TameAnimal
    TamingLoop:
    finditem %tameid G_16
    if #findkind = -1
        return
    if #finddist > 3
    {
        gosub PathfindWait #findx #findy #findz
        goto TamingLoop
    }
    set %tamefollow #followers
    set #ltargetid %tameid
    set #ltargetkind 1
    event macro 13 35 ; animal taming
    target 2s
    event macro 22 0 ; last target
    goto TamingLoop
return

sub TamingRename
    contpos 5 30
    wait 5
    set %screenx #contposx + 130
    set %screeny #contposy + 20
    click %screenx %screeny
    for %i 1 5
    {
        key RIGHT
    }
    for %i 1 20
    {
        key BACK
    }
    msg a$
    event macro 1 0 All follow me
return

sub TamingMonitor
    TamingMonitorLoop:
    if #followers > %tamefollow
        return success
    if #systime > %tametimer
        return retry
    finditem %tameid G_16
    if #findkind = -1
        return retry
    if #finddist > 3 && #systime > %movetimer
    {
        menu get dontmove
        if #menures = #false
            event pathfind #findx #findy #findz
        set %movetimer #systime + 1500
    }
    goto TamingMonitorLoop
return

; clickScreenXYZ by ScriptFellow modded by Roadkill
; Mods by UncleDave
sub GetScreenXY
    set %1 ( %1 - #charposx ) * 22  ; world x-coordinate
    set %2 ( #charposy - %2 ) * 22  ; world y-coordinate
    set %3 ( %3 - #charposz ) * 4   ; world z-coordinate
    if %0 < 4 || %4 = N/A
        set %4 0                    ; x displacement, added to screen coordinate
    if %0 < 5 || %5 = N/A
        set %5 35                   ; y displacement, added to screen coordinate
    set %screenx #clileft + #clixres / 2 + %1 + %2 + %4
    set %screeny #clitop + #cliyres / 2 + %1 - %2 - %3 + %5
    set %offscreen #true
    if %screenx > #clileft &&
        + %screeny > #clitop &&
        + %screenx < ( #clileft + #clixres ) &&
        + %screeny < ( #clitop + #cliyres )
    {
        set %offscreen #false
        ;click %screenx %screeny F
    }
return

; GetYDisplacementForAnimType by Roadkill
; Mods by UncleDave
sub GetAnimalDisplacement
    set %screenydisp -32
    if %tametype in GE_ZD_L_M_TF__IG_NG__ZF_PF_EG_CO_TG_PG_VD
        set %screenydisp -25
    if %tametype in AH
        set %screenydisp -45
    if %tametype in DG_AG_WC_RF_WG_TC
        set %screenydisp -15
return

sub GetTargetId
    set #ltargetid N/A
    set #targcurs 1
    GetTargetIdLoop:
    if #targcurs = 1
        goto GetTargetIdLoop
return

sub PathfindWait
    set %moveres unknown
    if #charposx = %1 && #charposy = %2
    {
        set %moveres success
        return
    }
    set %js #jindex
    event pathfind %1 %2 %3
    wait 10
    set %je #jindex
    for %ji %js %je
    {
        scanjournal %ji
        if pathfinding in #journal
        {
            set %movex #charposx
            set %movey #charposy
            set %movetimer #systime + 500
            PathfindWaitLoop:
            if #systime < %movetimer
                goto PathfindWaitLoop
            if %movex = %1 && %movey = %2
            {
                set %moveres success
                return
            }
            if %movex = #charposx && %movey = #charposy
            {
                set %moveres stopped
                return
            }
            set %movex #charposx
            set %movey #charposy
            set %movetimer #systime + 500
            goto PathfindWaitLoop
        }
        if can't_get_there in #journal
        {
gosub dispatch
        }
    }
return

141
Scripting Chat / Thank you and Im sorry for all the questions.
« on: May 28, 2009, 12:51:50 PM »
Hi everyone,

Your resident newb here.  First I want to throw some big props to those who have been so patient for helping me in learning scripting, I know I could have picked something smaller and easier for my first project.  But, I want to let you guys know how much it is appreciated, all your time and knowledge being passed on to me.

I also want to apologize for my newbness and the ton of questions that you guys could have easily told me to find out on my own or use search, where I would probably find what I am looking for after hours of looking and referencing.  But you guys have shown that community is valuable to you and helping (so long as people are willing to help themselves) is important. 

So, while I am writing this script and researching what I want to do with it and you guys helping me with all my questions, I wanted to write this little letter of Thanks and Apology for you guys that are helping me so much. 

I truly hope one day to be a great contributor to this community and this is the start I was trying for, learning and wonderful teachers such as yourselves.

Thank you so much.

and one day I will make a signature!

~Coragin

142
Script Debug / Need help with pet transfer sub.
« on: May 28, 2009, 11:21:21 AM »
Okay, so if your reading this, you probably know I am writing a zoo turn in script as my first script.  Yah yah I know, starting out a little big.  So here is what I am working on now, turning in bears/wolves/slimes to the donation box.  Now, I found TM's context menu handler subs, having a little problem understanding it.  Because I dont want to call ALL the context menu options, just the one for transfer and click the donation box, then click yes on the "Are you sure you want to transfer this?".  Original topic is here: http://www.scriptuo.com/index.php?topic=79.0

Code: [Select]

  set %CONTEXT_Transfer 593758  ; is the code for transfer a pet.

Here is my sub for the transfer

Code: [Select]
Sub turnin
gosub Gate ;gates you and pets to moonglow zoo box
donationbox:
set #lObjectID TIGFQMD         ;sets the ID of the donation box
set #lObjectTYPE CUD ; Sets Type of ID of the donation box
event macro ;double click donation box
event macro
turninpets:
                                                        ; Transfer code will go here.
if controlslots >=varTurnins                    ; This checks if your are done with your pet turn ins...
  GoTo turninpets:                                ; if your not done it will return to the turninpets:

return

Now, my question is, what variables do I need from TM's context menu and where do I put them?  Im still a little confused to some parts of scripting.  But I am learning fast.  So, can anyone help with this?

Do I need to put anything at the beginning of the script for config purposes?  Or can it be included in this turn in sub?  I would like it to just randomly target a tame, bring up the context menu, click transfer and target the donation box.

143
Thank you to the following people weather they know it or not.  I either used your code to get this working or you gave me great help or both!

TrailMyx, MadDog, Cerveza, _C2_, Ultima, Uncle Dave for some snippits from his taming script.

I will start off by saying I used the Tutorial section as my template for this, thanks are already in place for those who helped so far.  I am sure more will come.

The only thing I ask is if the code is working, please let me know it works before you suggest a "Better Way".  I am really trying to learn on my own here by reading code and using snippits.  I appreciate ALL help and it is helping me more than you know, but I need to know if my original code is working properly before I do it a better way.  Thank you.

If you feel or know there is a change in what I have so far, please let me know by quoting the code to change in its original form, then what it should be changed to and why.  Possibly highlighting the changed areas.  Please do not get ahead of what I already have here if it can be helped, I am learning and want to learn, I dont want this done for me.  If/When I get stuck I will post a question for that area.  But suggestions to my current work in progress is greatly appreciated, as well as corrections if needed.

Again, please remember, I am learning.  Once I get all the subs and check areas in place and working, I will then fill in and correct the areas one at a time.

Edit 5/29 7:00pm EST:  Think I MAY have fixed the taming problem, give it a go and let me know how it turns out.

Edit 5/29 3:00am EST: Trying Maddogs Subs for taming from his Jhelom Taming Script.

Edit 5/28 12:00 pm:  Fixed a lot of syntax errors, think I fixed the problem that was only turning in one pet at moonglow at a time.  Things I need to work on, one make sure it works, which I cant check now.  And have someone verify some of my syntax, to make sure it is correct.

Are the following lines/subs correct in syntax?  Including and most important, the followers portion.

Code: [Select]
Sub turnin
gosub Gate                                 ; gates you and pets to moonglow zoo box
donationbox:
set #lTargetID TIGFQMD                      ; sets the ID of the donation box
set #lTargetTYPE CUD                        ; Sets Type of ID of the donation box
turninpets:
event macro 1 0 a transfer                    ;
wait 1s
event macro 22 0                                     ;
if #followers >=%2                                   ;<---IS this correct????
  {                                                  ;
  goto turninpets
  }
gosub ReturnToTame
return

Or would it work better with the original Mount checking code which is..

Code: [Select]
set %varUseMount True                    ;Variable if you are using a mount or not.

if #UseMount = #TRUE                    ;if you are using a horse, this will set the
   {                                ;turn in amount to 4.
   set %varTurnins ( %varTurnins - 1 )      ;
   }                                ;This script not set for mounts with more than

Which would make it look like this

Code: [Select]
Sub turnin
gosub Gate                                 ; gates you and pets to moonglow zoo box
donationbox:
set #lTargetID TIGFQMD                      ; sets the ID of the donation box
set #lTargetTYPE CUD                        ; Sets Type of ID of the donation box
turninpets:
event macro 1 0 a transfer                    ;
wait 1s
event macro 22 0                                     ;
if #followers >=%varTurnins                                   ;<---IS this correct????
  {                                                  ;
  goto turninpets
  }
gosub ReturnToTame
return

Now the other problem I am having is, when it runs out of tamables its not moving around like it is supposed to, can someone check that area and see if all is in place?  

Code: [Select]
;==================================================================================================
; Script Name: Coragin's Animal Tame and Donate Script
; Author: Coragin
; Version: 1.1 Beta
; Shard OSI / FS: OSI
; Revision Date: 5/29/2009 7pm
; Purpose: Tame wolves, Polar Bears and Slimes and gate them to moonglow for turn in.
; will also tame white wolves as they can also be donated.
;==================================================================================================
; Special Instructions: Set up a Runebook as follows
; Book Name: Zoo
; Slot One: Your Home (Name Rune HOME or Home)(Can also set this to an Inn, just name it Home)
; Slot Two: Rune for Donation Box at Moonglow Zoo (Name this rune Zoo 1)
; Slot Three: Rune for your first taming location.  Call it Zoo 2.
; Slot Four: Rune for your first taming location.  Call it Taming 1.
; Other Slots: Additional Rune locations for taming. Taming 2, Taming 3, Taming 4 ect ect
; Supports only 4 FOUR Taming locations!  
; Will ALWAYS return to taming area ONE!
; When you start the script recall to your first taming area rune!!!
;
; I take no credit for the Sub-Routines used that were written by others, if your Sub is
; being used and I have not given credit, please let me know and I will correct it.
;
; Thanks: Cerveza, TM, C2 & ScriptUO.com for all their help and tutorials!
; Thanks to TrailMyx, for his Runebook Subs I am using in this script.
;==================================================================================================
gosub TM_AddUnderscore #CHARNAME               ;This is required by TM's Runebook Subs
set %charname #RESULT                          ;This is required by TM's Runebook Subs
gosub InitAnimalTaming                 ;this will go in beginning at setup
gosub AnimalType
set %varTunrins #maxFol                 ;sets the amount of turn ins to max control slots

set %name a                           ;What pet will be renamed to
set %wait 15                         ;Adjust this if you are running into lag issues
set %spot 1
set #lpc 100

set %tameable PG_VF_VE_GE_ZD_              ;Sets the ID of monsters && Animals to Tame
set %tamingtypes PG_VF_VE_GE_ZD_

set %varUseMount True                    ;Variable if you are using a mount or not.

if #UseMount = #TRUE                    ;if you are using a horse, this will set the
   {                                ;turn in amount to 4.
   set %varTunrins ( %varTurnins - 1 )      ;
   }                                ;This script not set for mounts with more than
gosub setup                            ;one control slot.

display yesno Would you like to add a short delay between taming/renaming to $ make the script appear less "Twinkle McNugget"? (Note: Script will be slower!)
if #dispres = YES
   set %scriptdelay 60
if #dispres = NO
   set %scriptdelay 0

chooseSkill Anim
set %initialtaming #skill
chooseSkill Anil
set %initiallore #skill

set %currenttaming %initialtaming
set %currentlore %initiallore

firstspot:


mainloop:

if #followers >=%varTunrins
  {                                        ; This checks for control slots to be full for turn in
  gosub turnin
  }                                      ;
gosub CheckForStatusBar
gosub AnimalType
gosub Tame                              ; This is for the Taming Section
goto mainloop

;====================================================================================================
;
;  TESTING OF TAMING PORTION ALPHA!  I take no credit for this area, copied from Maddog's Jhelom Taming.
;
;====================================================================================================

sub CheckForStatusBar
while #followers = N/A
   {
   event macro 8 2
   wait 5
   }
return

sub AnimalType
   set %tamingtypes PG_VF_VE_GE_ZD_          ;Polar Bears, White Wolves, Slimes
return

sub Tame
findItem %tamingtypes G_12
;If not found, move to next spot
if #findCnt < 1
   {
   gosub NextSpot
   return
   }
set %tamingtarget #findid
WalkToTarget:
if #finddist > 2
   {
   event PathFind #findx #findy #findz
   wait 20
   goto WalkToTarget
   }
;Attempt to tame animal (include safety timer)
AttemptToTame:
event macro 13 35                             ;Use Taming Skill
target 5s                                     ;Wait for targeting cursor
set #ltargetid %tamingtarget                  ;Set taming target to last target
set #ltargetkind 1
event macro 22 0                              ;Target taming target
set %scantimer #scnt + 20                     ;Saftey timer for poor scripting on my part!
ScanForSuccess:
scanjournal 1
if #scnt > %scantimer                         ;Check to see if saftey timer has expired
   {
   deletejournal
   return
   }
if seems_to_accept_you_as_master in #journal
   {
   deletejournal
   goto PetRename
   }
if animal_looks_tame_already in #journal
   {
   deletejournal
   ignoreitem %tamingtarget
   return
   }
if fail_to_tame_the_creature in #journal
   {
   deletejournal
   wait 5
   goto AttemptToTame
   }
if are_too_far_away_to_continue_taming in #journal
   {
   deletejournal
   goto WalkToTarget
   }
if animal_is_too_angry_to_continue_taming in #journal
   {
   deletejournal
   ignoreitem %tamingtarget
   return
   }
finditem %tamingtarget
if #finddist > 2
   {
   event PathFind #findx #findy #findz
   }
goto ScanForSuccess
return

sub NextSpot
if #followers >=2
   {
   event Macro 3 0 All follow me
   }
if %rune = 1
   {
   gosub TM_TravelFromNamedRunebook GA 4 4 Zoo ; gate using Zoo runebook at rune 4
   set %rune 2
   return
   }
if %rune = 2
   {
   gosub TM_TravelFromNamedRunebook GA 5 5 Zoo ; gate using Zoo runebook at rune 5
   set %rune 3
   return
   }
if %rune = 3
   {
   gosub TM_TravelFromNamedRunebook GA 6 6 Zoo ; gate using Zoo runebook at rune 6
   set %rune 4
   return
   }
if %rune = 4
   {
   gosub TM_TravelFromNamedRunebook GA 3 3 Zoo ; gate using Zoo runebook at rune 3
   set %rune 1
   return
   }
return

sub PetRename
event macro 3 0 all follow me                      ; whisper all follow me so you dont have to chase the released pet
wait %scriptdelay
exevent RenamePet %tamingtarget %name              ;Rename tamed target to "tamed"
wait %wait
return
;===================================================================
;
; This is the Sub for gating to moonglow and turning in pets.
;
;===================================================================

Sub turnin
gosub Gate                                 ; gates you and pets to moonglow zoo box
donationbox:
set #lTargetID TIGFQMD                      ; sets the ID of the donation box
set #lTargetTYPE CUD                        ; Sets Type of ID of the donation box
turninpets:
event macro 1 0 a transfer                    ;
wait 1s
event macro 22 0
if #followers >=%1
  {
  goto turninpets:
  }
gosub ReturnToTame
return

;================================================================================
;
; This will return you to taming area after a turn in.
;
;================================================================================

Sub ReturnToTame
if #followers >=%2
  {
  event macro 1 0 All follow me
  }
gosub TM_TravelFromNamedRunebook GA 3 3 Zoo       ; gate using Zoo runebook at rune 3
wait 5s
return

;================================================================================
;
; This is the Gate Sub for Gating to Moonglow && Checking to make sure you gated
;
;================================================================================

Sub Gate
event Macro 1 0 All follow me
gosub TM_TravelFromNamedRunebook GA 2 2 Zoo         ; gate using Zoo runebook at rune 2
wait 5s
return

;=====================================================================================
;
; TM's Runebook Travel Sub
;
;=====================================================================================
sub TM_NewCastSpell
  namespace push
  namespace local NCS
  set !lpc #LPC
  set #LPC 100
  set !whichspell %1
  set !whichtarget %2
  set !castretrymax %3
  set !waitdelay %4
  set !recovery_delay %5

  set !castretry 0
  set !temp_ltargetid #LTARGETID
  set !temp_ltargetkind #LTARGETKIND

  NewCastSpell_loop1:
    if !castretrymax < 0
      goto NewCastSpell_cont1
    if !castretry > !castretrymax
      goto NewCastSpell_end1
    NewCastSpell_cont1:
      gosub TM_AdvJournalSync SPELLCAST
      set #LTARGETKIND 1
      set #LTARGETID !whichtarget
      set !tempmana #MANA
      event macro 15 !whichspell ; cast the spell
      wait !waitdelay
      set !targettimeout #SCNT + 7
      NewCastSpell_wait1:
        gosub TM_AdvJournalScan SPELLCAST VALID you_have_not_yet mana your_spirit more_reagents
        if #RESULT = #TRUE || #SCNT > !targettimeout
        {
          set !casttimeout #SCNT2 + !recovery_delay
          repeat
          until #SCNT2 > !casttimeout     ; finish up cast delay
          set !castretry !castretry + 1
          goto NewCastSpell_loop1
        }
        if !whichtarget = NONE
          goto NewCastSpell_skip1
        if #TARGCURS = 1
          goto NewCastSpell_targ1
        goto NewCastSpell_wait1 ; wait for target cursor

  NewCastSpell_targ1:
    if !whichtarget = SELF
      event macro 23
    else
      event macro 22

  NewCastSpell_skip1:
    wait 5
    set !casttimeout #SCNT2 + !recovery_delay
    NewCastSpell_skip2:
      if !whichspell >= 0 && !whichspell <= 63 ; Magery
      {
        gosub TM_AdvJournalScan SPELLCAST VALID spell_fizzles there_is_already mana your_spirit more_reagents
      }
      else
      {
        set !cont #FALSE  ; Chivalry, Necromancy, etc
        finditem !whichtarget *
        if !whichtarget in SELF_NONE || #FINDKIND <> -1
          set !cont #TRUE

        if #MANA >= !tempmana && !cont = #TRUE ; check if target is still there
          set #RESULT #TRUE
        else
          set #RESULT #FALSE
      }
      repeat
      until #SCNT2 > !casttimeout     ; finish up cast delay
      if #RESULT = #TRUE
      {
        if !castretrymax > -1
        {
          set !castretry !castretry + 1 ; %castretrymax of -1 will cast until successful
          if !castretry > !castretrymax
            goto NewCastSpell_end1
        }
        goto NewCastSpell_loop1
      }
      if #SCNT2 <= !casttimeout     ; finish up cast delay
        goto NewCastSpell_skip2
  NewCastSpell_end1:
    set #LTARGETID !temp_ltargetid
    set #LTARGETKIND !temp_ltargetkind
    set #LPC !lpc
    namespace pop
return
;-------------------------------------------------------------------------------
; %1 = Method (RE, GA, SJ)
; %2 = index location within runebook (1-16)
; %3 = index location within runebook (1-16), try up to this point
; %4 = runebook item id
; returns #TRUE if error, #FALSE for no error
sub TM_TravelFromRunebook
  namespace push
  namespace local RFR
  set #LTARGETKIND 1
  set !method %1
  set !locindex %2
  set !locindexend %3
  set !rbook %4

  finditem !rbook C_ , #BACKPACKID
  if !method notin RE_GA_SJ || #FINDKIND = -1
  {
    namespace pop
    return #TRUE
  }
  if !locindex notin 1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16
  {
    namespace pop
    return #TRUE
  }
  if !locindexend notin 1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16
  {
    namespace pop
    return #TRUE
  }

  TravelFromRunebook_loop1:
    set #LOBJECTID !rbook
    set #LTARGETKIND 1
    event macro 17 0
    gosub GumpWait generic_gump generic_gump

    set !runeclickx 140 ; page 1, rune 1
    set !runeclickx ( #CONTPOSX + !runeclickx + ( 35 * ( ( !locindex - 1 ) / 2 ) ) )
    if !locindex > 8
    {
      set !runeclickx 310 ; page 2, rune 1
      set !runeclickx ( #CONTPOSX + !runeclickx + ( 35 * ( ( !locindex - 9 ) / 2 ) ) )
    }
    set !runeclicky #CONTPOSY + 196
    click !runeclickx !runeclicky
    wait 5

    set !runeclicky #CONTPOSY + 24
    set !runeclickx #CONTPOSX + 164 ; page 1 set to default
    if !locindex % 2 = 0
    {
      set !runeclickx #CONTPOSX + 305 ; page 2 set to default
    }
    click !runeclickx !runeclicky
    wait 5
    set !oldx #CHARPOSX
    set !oldy #CHARPOSY
    if !method = RE
      gosub TM_NewCastSpell 31 !rbook -1 10 10 ; recall until successful
    if !method = GA
    {
      gosub TM_NewCastSpell 51 !rbook -1 10 20 ; gate until successful
      set !temp_cnt #SCNT + 10
      repeat
        finditem KEF_OTF_JEF G_0
      until #FINDKIND <> -1 || #SCNT > !temp_cnt
      if #FINDKIND <> -1
      {
        set #LOBJECTID #FINDID
        wait 10
        event macro 17 0
        wait 20
        if #CONTNAME = generic_gump && #CONTSIZE = 420_280
        {
          gosub TM_AdvJournalSync SPELLCAST
          set !clickx #CONTPOSX + 26
          set !clicky #CONTPOSY + 261
          click !clickx !clicky ; click ok
        }
      }
    }

    if !method = SJ
      gosub TM_NewCastSpell 210 !rbook -1 10 30 ; sacred journey until successful
    wait 30

    set !tempscnt #SCNT + 10
  WaitforTravel_loop1:
    gosub TM_AdvJournalScan SPELLCAST VALID location_is_blocked something_is_blocking you_spirit_lacks
    if #RESULT = #TRUE
    {
      gosub TM_AdvJournalSync SPELLCAST
      set !locindex !locindex + 1
      if !locindex > !locindexend
      {
        namespace pop
        return #TRUE
      }
      goto TravelFromRunebook_loop1
    }
    if ( ( #CHARPOSX = !oldx && #CHARPOSY = !oldy ) && #SCNT < !tempscnt )
      goto WaitforTravel_loop1

  if #CONTNAME = generic_gump && #CONTSIZE = 452_236 ; RunUO close runebook
  {
    set !clickx #CONTPOSX + 120
    set !clicky #CONTPOSY + 60
    click !clickx !clicky mc r
    wait 5
  }
  namespace pop
  click 401 254 n
return #FALSE
;------------------------------------------------
; %1 method
; %2 starting index
; %3 ending index
; %4 runebook name
sub TM_TravelFromNamedRunebook
  namespace push
  namespace local TFNR
  set !method %1
  set !start_index %2
  set !end_index %3
  set !runbook_name %4
  if !method notin RE_GA_SJ
  {
    namespace pop
    return #TRUE
  }
  if !start_index notin 1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16
  {
    namespace pop
    return #TRUE
  }
  if !end_index notin 1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16
  {
    namespace pop
    return #TRUE
  }
  locatenamedrunebook:
    finditem ZBN C_ , #BACKPACKID
    if #FINDKIND <> -1
    {
      event property #FINDID
      if !runbook_name in #PROPERTY
      {
        gosub TM_TravelFromRunebook !method !start_index !end_index #FINDID ; recall to location
      }
      else
      {
        ignoreitem #FINDID rbook
        goto locatenamedrunebook
      }
    }
    else
    {
      display ok Cannot locate specified runebook named , #SPC , !runbook_name
      stop
    }
  ignoreitem reset rbook
  namespace pop
return
;-------------------------------------------------------------------------------
sub TM_RandomRunebookTravel
  namespace push
  namespace local RRT
  set !travelmethod %1
  set !rune1 %2
  set !rune2 %3
  set !runebook %4
  if !rune1 > !rune2
  {
    set !temp !rune2
    set !rune2 !rune1
    set !rune1 !temp
  }
  RunebookTravel_loop1:
    set !random #RANDOM
    set !rune ( ( !random % ( !rune2 - !rune1 + 1 ) ) + !rune1 )
    gosub TM_TravelFromRunebook !travelmethod !rune !rune !runebook
    if #RESULT = #TRUE
      goto RunebookTravel_loop1
  namespace pop
return
;-------------------------------------------------------------------------------
; %1 = Method (RE, GA, SJ)
; %2 = Object Findid
; returns #TRUE if error, #FALSE for no error
sub TM_TravelFromObject
  namespace push
  namespace local RFR
  set !method %1
  set !object %2

  finditem !object C_ , #BACKPACKID
  if !method notin RE_GA_SJ || #FINDKIND = -1
  {
    namespace pop
    return #TRUE
  }

  set !oldx #CHARPOSX
  set !oldy #CHARPOSY
  TravelFromObject_loop1:
    if !method = RE
      gosub TM_NewCastSpell 31 !object -1 10 10 ; recall until successful
    if !method = GA
    {
      gosub TM_NewCastSpell 51 !object -1 10 20 ; gate until successful
      set !temp_cnt #SCNT + 10
      repeat
        finditem KEF_OTF_JEF G_0
      until #FINDKIND <> -1 || #SCNT > !temp_cnt
      if #FINDKIND <> -1
      {
        set #LOBJECTID #FINDID
        wait 10
        event macro 17 0
        wait 20
        if #CONTNAME = generic_gump && #CONTSIZE = 420_280
        {
          gosub TM_AdvJournalSync SPELLCAST
          set !clickx #CONTPOSX + 26
          set !clicky #CONTPOSY + 261
          click !clickx !clicky ; click ok
        }
      }
    }

    if !method = SJ
      gosub TM_NewCastSpell 210 !object -1 10 30 ; sacred journey until successful
    wait 30

    set !tempscnt #SCNT + 10
  WaitforTravel2_loop1:
    gosub TM_AdvJournalScan SPELLCAST VALID location_is_blocked something_is_blocking your_spirit_lacks
    if #RESULT = #TRUE
    {
      gosub TM_AdvJournalSync SPELLCAST
      set !locindex !locindex + 1
      if !locindex > !locindexend
      {
        namespace pop
        return #TRUE
      }
      goto TravelFromObject_loop1
    }

    if ( ( #CHARPOSX = !oldx && #CHARPOSY = !oldy ) && #SCNT < !tempscnt )
      goto WaitforTravel2_loop1
  namespace pop
return #FALSE
;-------------------------------------------------------------------------------
; %1 - Journal Name
; %2 - #LPC setting (optional)
; Brings !_jindex up to the most recent #journal entry
sub TM_AdvJournalSync
  namespace push
  namespace local TM_AdvJS_ , %1
  set !_jindex #jindex + 1
  if %0 > 1
    set !lpc_set %2
  namespace pop
  set !TM_FunctionCalled #TRUE
return
;-------------------------------------------------------------------------------
; %1 - Journal Name
; %2 - NONE, ADVANCE , ( _VALID ) - advances jindex pointer, anything else
; %3, %4, %5, etc strings to match
; returns #TRUE for match, #FALSE for no match
;  Will not advance !_jindex pointer to allow for scanning journal history for more than one search.
;  Also searches for : , #SPC in journal entry to be sure someone isn't spamming the text
;  About %2 arguments:
;    NONE: defaults to basic journal scan (no SPAM checking, no #jindex pointer copy advancing)
;    ADVANCE: no spam checking, advances #jindex copy
;    VALID: invokes SPAM filtering, no advance of #jindex copy
;    VALID_ADVANCE, VALIDADVANCE, ADVANCE_VALID, etc.: invokes SPAM filtering, advances of #jindex copy
sub TM_AdvJournalScan
  namespace push
  namespace local TM_AdvJS_ , %1
  set !args %2
  set !temp_lpc #LPC
  if !lpc_set = N/A
    set #LPC 1000
  else
    set #LPC !lpc_set
  set !num_args %0
  set !first_arg 3
  if !_jindex = N/A
    set !_jindex #jindex
  if !charname = N/A
  {
    set !charname #CHARNAME
    AdvJournalScan_loop1:
      str pos !charname #SPC
      if #STRRES <> 0
      {
        set !val #STRRES - 1
        str left !charname !val
        set !left #STRRES
        set !val !val + 1
        str del !charname 1 !val
        set !charname !left , _ , #STRRES
        goto AdvJournalScan_loop1
      }
  }
  set !index !first_arg
  repeat
    set !temp_jindex !_jindex
    set !text % . !index
    while !temp_jindex <= #jindex
    {
      scanjournal !temp_jindex
      str pos #JOURNAL !charname 1
      set !namepos #STRRES
      str count #JOURNAL !charname
      set !namecnt #STRRES
      str pos #JOURNAL :_ 1
      set !smcpos #STRRES
      str pos #JOURNAL !text 1
      set !textpos #STRRES
      if !textpos < !smcpos && !smcpos <> 0 || !smcpos = 1 || :_ notin #JOURNAL || VALID notin !args
        set !pass #TRUE
      else
        set !pass #FALSE
      if ( !text in #journal && ( ( !namepos = 1 && !namecnt <= 1 ) || !pass ) )
      {
        set !temp_jindex !temp_jindex + 1
        if ADVANCE in !args
          set !_jindex !temp_jindex
        set #LPC !temp_lpc
        namespace pop
        set !TM_FunctionCalled #TRUE
        return #TRUE
      }
      set !temp_jindex !temp_jindex + 1
    }
    set !index !index + 1
  until !index - !first_arg > !num_args - !first_arg
  set #LPC !temp_lpc
  namespace pop
  set !TM_FunctionCalled #TRUE
return #FALSE
;-------------------------------------------------------------------------------
; %1 = Gumpname 1
; %2 = Gumpname 2
; #TRUE gump occured before timeout
sub GumpWait
  namespace push
  namespace local GW
  wait 10
  set !timedelay #SCNT
  while #SCNT <= !timedelay + 7
  {
    if #CONTNAME = %1 || #CONTNAME = %2
    {
      namespace pop
      return #TRUE
    }
  }
  namespace pop
return #FALSE

144
Scripting Chat / Can a scirpt have this basic type of setup....
« on: May 28, 2009, 05:58:33 AM »
I didnt search, because I am SURE no one has ever asked this before, unless they wrote scripts for macroquest 2.

But can I set up my script to work like this....
(code snips taken from TM's how-to step one thread.
Code: [Select]

;Header
;==================================

set %var1 500
set %books 3
gosub setup
gosub main

Sub main
mainloop:
;all the crap the script does here
GoTo mainloop

Sub setup
;all setup commands here
return

This is very similar to MQ2, except most commands use the "/" switch, in MQ2 it would look like this...

Code: [Select]


|Header
|==================================

/set %var1 500
/set %books 3
/call setup
/call main

Sub main
:mainloop
|all the crap the script does here
/goto :mainloop

Sub setup
;all setup commands here
/return

As you can see, it is mostly the same, | used instead of ; and / use with goto and return and : used at the beginning of the command instead of the end.  But for the most part, it is exactly the same and if commands always started with the / switch.

But back to my main question, can the first code I wrote be used?  Having a Sub Main that is called right after setup that is the main loop?  I know for most of you, this is redundant, since just adding in loop: or mainloop: is basicly the same thing, but for me, it makes it easier to read.

I do not have access to UO ATM so I can make a simple script to test if it would work, thats why I am asking here, so I can learn.

Finally, am I the only one who thinks it would be much easier to have the command to use a skill like this

Code: [Select]
useskill hiding

Instead of...

Code: [Select]
macro (numbers here)

145
General UO Chat / Last Target BoS Trick or for chopping boards?
« on: May 27, 2009, 09:59:14 PM »
First, I know this is not a exploit site, but this is more of a trick since I have seen it discussed and explained in UHall in the past.  So please forgive me my lack of knowledge on this well known trick.

There used to be a trick for using a bag of sending and last target on a very large amount of leather to send it with a bag of sending by using last target while holding the stack on your cursor after it has been targeted once.  Its supposed to work the same with logs to boards.

for the life of me, I cannot figure out how to get it to work.  Can anyone clue me in?  Cause I got like 500k boards now and it would work great for farming leather.  I use razor and not UOAssist if that helps.

146
UO-Related Tutorials / Training Pets with two accounts, EASY.
« on: May 27, 2009, 10:48:55 AM »
While sitting in writhing pain from a tooth lastnight I could not find it in me to do ANYTHING in UO lastnight.  But, I do have a couple tamers on two accounts with CU'sand GDragons that needed training badly.  So I came up with a plan.

If you have two accounts with a tamer on each and want to train your CU's and or Dragons or other pets, do this.

Get Roadkills Ultra Pet Fighter, from easyuo.com and set it up on each account for your pet(s).

If your characters are in the same guild perfect, your all set up, if not figure out a way, heres some options.

Train at a house in Fel
If characters are unguilded, guild them for tram.
If Characters are unguilded but in DIFFERENT factions, make a guild for each and goto war for Tram.

Now, fire up Razor and make a macro that says all guard me every 30 seconds.

Empty your pack of everything and put as many bandages in there that you can hold, even over weight, for me it was 5k or so.

Have both toons start their all guard me macro and make sure it loops.  Then have one pet attack the other.  RK's Petfighter will auto vet when needed and the pets will stay fighting until you stop them.  I started this at 11:30pm lastnight and at 8am servers went down and I still was not out of bandages and both CU's for 100 across the board, except for resisting spells.

And there you have it, two pets trained to max in one night.

Hope this helps you guys.

147
General UO Chat / [young] Players and Tameing, Anyone know?
« on: May 26, 2009, 10:45:56 PM »
Anyone ever get a young status player up to the point with jewels and stuff to be able to tame a GD?  When you "Anger the beast" will it not attack still?  Just wondering. 

I suppose I could check this with bakes cause they get angry when you try to tame.  Would be funny to talk around destard taming anything you wanted.

148
Scripting Chat / A couple of script requests, all in one post :)
« on: May 25, 2009, 06:01:42 PM »
Hi everyone.  Im new to the scripting language, but I can say I am understanding it.  Been reading the easyuo wiki, its been helping.  First, I will start with questions on if things can be done, then on with the script requests.

Can a script be created that can do the following either or...

If a RED is on screen auto attack them, say "all kill" ect?
If an opposing FACTION member is on screen auto attack "all kill"?
  Can the above be made to only attack a CERTAIN faction?  i.e. not alliances?

On to the script requests, should be simple, but I dont know to be honest.

Request 1:
A Discord script for champ spawns, that will use the pen trick to discord ALL enemies on screen, not do the same one twice with a pause button and non-intrusive if I am trying to cast or heal pet.

Request 2:
A Peacemaking script for champ spawns, that will use the pen trick to target peace ALL enemies on screen, and start over when it runs out of new targets with a pause button and non-intrusive if I am trying to cast or heal pet.

I am thinking the above two requests could both be done as the same one with a menu on which to use.

Request 3:
A script that will auto tell a pet to kill and target any player that attacks me.  With the option to do what I asked above, all kill as soon as the enemy is on screen.  But also with checks in to make sure it wont spam all kill over and over either to the same target or multiple targets.  i.e. will not command pets to attack if the current target is still alive.

I dont know how easy this would be, I am assuming C2 would be the man to ask about champ spawn scripts since he made those badass ones for training.

Special request:

If anyone makes one of these scripts, if it is at all possible to put in as many...

Quote
;instructions

next to the commands as possible, so I may learn from the script to be able to help the community and one day make my own.

Thanks for reading and thank you in advance if you decide to take on this task, any of them.

149
Television/Movies / TTSCC Canceled but Dollhouse kept???? WTF
« on: May 23, 2009, 10:21:05 PM »
Okay so I am really pissed off at FOX now!  So pissed I wont even be watching House live anymore, only DVR.

Ok so Dollhouse is not all THAT bad, but its not really good in any matter of speaking.  But to keep that and cancel Terminator?????  WTF!?!?  TSCC was in the top three best shows out right now and this is how I rate them in no specific order.

House MD
Fringe
Terminator

Plus Prison Break is over too.  Boy FOX shoot yourself in the foot often???  I sure hope WB or Sci-Fi picks up TSCC.

Discuss...

150
New member introductions / Hi there!
« on: May 23, 2009, 09:13:36 PM »
Hi everyone, first post here, introduction for yall.

Member of some other sites and found this one linked on another site.  Hope to be of some use to the community someday.

Pages: 1 ... 8 9 [10]