rogue.mac - AutoRogue v. 2.0l 5-1-2004

Post your completed (working) macros here. Only for macros using MQ2Data syntax!

Moderator: MacroQuest Developers

crisdan
a ghoul
a ghoul
Posts: 126
Joined: Mon Mar 24, 2003 1:56 pm

Post by crisdan » Fri May 21, 2004 7:22 pm

Has any attempts at fixing hte engrage events etc been made succesfully by anyone? if so can you post your working version please.

dirx
orc pawn
orc pawn
Posts: 21
Joined: Fri Dec 05, 2003 1:00 am
Location: orlando

Post by dirx » Fri May 21, 2004 8:53 pm

The problem with enrage is in the Attack loop.

Code: Select all


/if (!${bAttackTarget}) /Attack off 
/if (!${bAttackTarget}) /Attack on 

should be

Code: Select all


/if (!${bAttackTarget}) /Attack off 
/if (${bAttackTarget}) /Attack on


here is what i am using for the events section I am having no problems.

Code: Select all


#Event Enraged "#*#has become ENRAGED#*#" 
#Event Offrage "#*#is no longer enraged#*#" 
#Event Slainby "#*#You have been slain by#*#" 
#Event Zonechange "#*#You have entered#*#" 


Dirx

Thylias
decaying skeleton
decaying skeleton
Posts: 1
Joined: Tue May 18, 2004 3:07 pm

Post by Thylias » Sat May 22, 2004 1:47 am

Hi.

This is actually Cunning. I forgot my password AND managed to have the wrong email address when I signed up a while back, so my account is hosed. In any event, I'm sorry I haven't been able to do any updates. If anyone wants to take over this script feel free as I don't have much in the way of free time as of late. Here's my final signoff, 2.0m, with the changes I've seen on the boards concerning the new events (and the pesky enrage bug):

Code: Select all

|AutoRogue 2.0m 5-22-2004 
|---------------------------------------------------------------------- 
| By Cunning. 
| Original AutoRogue by Jay. 
| Credits to GrimJack for the getbehind and moveto logic from GenBot. 
| 
| Usage: /macro rogue.mac Assist HpPct AnchorBit Follow 
| 
| Examples: 
|     Assist tank at 95% 
|       /macro rogue.mac Happytank 95 0    (or leave the zero off) 
| 
|     Assist tank at 95%, set anchor at current loc 
|       /macro rogue.mac Happytank 95 1 
| 
|     Same as above but moveto/follow a target between fights 
|       /macro rogue.mac Happytank 95 2 Stationarycleric 
| 
| DON'T FORGET TO VIEW/MODIFY YOUR CUSTOM.INC FILE!!! 
| 
| Version History
|     2.0m -  Fixed enrage bug and new event handling.
|     2.0l -  Changed Target.MaxRange to Target.MaxRangeTo. 
|             Removed some unnecessary delay instances from combat loop. 
|             Upped turbo to 40 for shits/giggles. 
|             Added a new boolean in custom.inc, bUseStrike. 
|             Fixed a logic bug in CheckDefSpecial (was causing a pause in macro if you got hit).           
|     2.0k -  MQ2DataVars conversion. 
|     2.0j -  Getbehind working...again... 
|     2.0i -  Fixed the weird running in circles on anchor. 
|             Fixed the crazy wobble that getbehind would do in certain instances. 
|             Changed all /face nolook fast calls back to /face fast.  Wasn't a good idea. 
|             Tweaked melee distance on chase. 
|     2.0h -  Bugfixes in GetBehind and the zonechange event. 
|     2.0g -  MQ2Data phase 2 conversion. 
|     2.0f -  Added GM detection (script will pause when gm in zone, resume after) 
|     2.0e -  Chase range improved! 
|     2.0d -  Fixed target moveto on engage.  Set sStrikeDisc to 0 also available as option. 
|     2.0c -  Added delays to address crashing issue. 
|     2.0b -  Bugfixes (hopefully).  The iSetAnchor param is changed too (read above). 
|     2.0a -  Added follow distance and replaced depreciated /sendkey's. 
|     2.0  -  Added rogue offensive and defensive discipline usage option. 
|             Lots of code fixes/optimizations.  Options in custom.inc. 
|     1.9  -  Added move to anchor and move to/follow target 
|             options between fights.  Fixed sneak/hide after fight. 
|             Other minor code cleanup. 
|     1.8  -  Cleaned up some of the code, tossed the xp stuff 
|             and fixed events, evade and getbehind. 
|     1.7  -  Base code (Jay's script) 

#turbo 40 

#Event Enraged "#*#has become ENRAGED#*#" 
#Event Offrage "#*#is no longer enraged#*#" 
#Event Slainby "#*#You have been slain by#*#" 
#Event Zonechange "#*#You have entered#*#" 

Sub Main    
    /declare bAttackTarget bool outer 
    /declare bStrikeFlag bool outer 
    /declare AnchorX float outer 
    /declare AnchorY float outer 
    /declare fXLoc float outer 
    /declare fYLoc float outer 
    /declare iSetAnchor int outer 
    /declare sFollowTarget string outer 

    /declare iAssistHealthPct int local 
    /declare iTargetId int local 
    /declare iTargetIdTmp int local    
    /declare sAssistName string local 
    /declare sTargetName string local 
    
    /varset iTargetIdTmp 0 
    /varset bStrikeFlag 0 
    
    /echo AutoRogue v. 2.0m Started. 

    /if (${Defined[Param0]}) { 
       /varset sAssistName ${Param0}              
    } else { 
        /echo Error:  The name of your assist is not optional. 
        /echo Usage:  /macro rogue.mac AssistName <AssistHpPct> <AnchorFlag> <sFollowTarget> 
    } 
        
    /if (${Defined[Param1]}) { 
        /varset iAssistHealthPct ${Param1}        
    } else /varset iAssistHealthPct 90 
    
    /if (${Defined[Param2]}) { 
       /varset iSetAnchor ${Param2}              
       /if (${iSetAnchor}==2) { 
           /if (${Defined[Param3]}) { 
              /varset sFollowTarget ${Param3} 
           } else /varset sFollowTarget ${sAssistName} 
         } 
   } else /varset iSetAnchor 0 
    
    #include custom.inc 

    /echo ${sAssistName} is main assist. 
    /echo Will start combat when MA target is at ${iAssistHealthPct}%. 
    
    /assist off 
    /attack off 
        
    /if (${iSetAnchor}==1) { 
        /varset AnchorX ${Me.X} 
        /varset AnchorY ${Me.Y} 
        /echo Created anchor at Loc: ${AnchorY}, ${AnchorX}. 
    } 
    
    /if (${iSetAnchor}==2) { 
        /target ${sFollowTarget} 
        /delay 5 
        /if (!${Target.ID}) /varset sFollowTarget ${sAssistName} 
        /echo Created MoveToTarget: ${sFollowTarget}. 
    }      

    /if (${bSneakHide}) /echo SneakHide Enabled. 
        
    /if (${bUseSpecial}) { 
        /call CheckRegenEnd 
        /echo Discipline/Escape Usage Enabled. 
        /echo Your current endurance is ${Me.Endurance}/${Me.MaxEndurance}. 
        /echo Regen endurance percent:  ${iRegenEndPct}. 
    } 
    
    /echo Waiting for ${sAssistName} to select a new target... 
    
:Wait 
    /delay 1    

    /doevents 
    
    /call SneakHide 
    /call CheckRegenEnd 
    /call CheckAnchor 

    /assist ${sAssistName} 
    /delay 4 
    
    /if (!${Target.ID}) /goto :Wait 
    /if (!${Target.Type.Equal["NPC"]}) /goto :Wait 
    /if (${Target.CleanName.Equal[${Me.Name}]}) /goto :Wait 
    
    /if (${iTargetIdTmp}!=${Target.PctHPs}) /echo ${Target.CleanName} targeted at ${Target.PctHPs} %hp, distance ${Target.Distance}. 
    
    /varset iTargetIdTmp ${Target.PctHPs} 

    /if (${Target.PctHPs}<=${iAssistHealthPct} && ${Target.Distance}<${iEngageDistance}) /goto :Attack 

    /goto :Wait 

:Attack 
    /echo Fighting ${Target.CleanName} | ${Target.Level} ${Target.Class.Name}. 
    /varset sTargetName ${Target.CleanName} 
    /varset iTargetId ${Target.ID} 
    /varset bAttackTarget 1 
    /varset bStrikeFlag 0 
    
    /call CheckGM 
    /call MoveTo 
    /call GetBehind 
    
    /face fast 

:AttackLoop 
    /assist ${sAssistName} 
    
    /doevents 

    /if (!${Target.ID}) /goto :AttackEnd 
    /if (${Target.ID}!=${iTargetId}) /goto :AttackEnd 

    /call GetBehind 
    /call CheckMeleeRange 

    /if (${bAttackTarget}) { 
        /if (!${bStrikeFlag}) /call CheckStrikeSpecial 
        /if (${Target.Distance}<${Target.MaxRangeTo} && ${Me.AbilityReady["Backstab"]}) /doability "Backstab" 

        /attack on 
        /if (${Me.Sneaking}) /doability "Sneak" 

        /if (${bStrikeFlag}) /call CheckAtkSpecial 
        
        /if (${Me.AbilityReady["Hide"]}) { 
           /attack off 
           /delay 2 
           /doability "Hide" 
        } 
    } 
    
    /doevents        

    /if (!${bAttackTarget}) /Attack off 
    /if (${bAttackTarget}) /Attack on 

    /call CheckDefSpecial        

    /goto :AttackLoop 

:AttackEnd 
    /echo Combat with ${sTargetName} has ended. 
    /keypress forward 
    /keypress back 
    /varset iTargetIdTmp 0 
    /varset bDiscActive 0 
    /varset bStrikeFlag 0 

    /varset bAttackTarget 0 
    /attack off 

    /echo Waiting for ${sAssistName} to select a new target. 
    
    /call SneakHide 
    /call CheckRegenEnd 
    /call CheckGM 
    
    /goto :Wait 

/endmacro 

Sub CheckMeleeRange 
   /if (!${Target.ID}) /return 

    /face fast 
    
    /if (${Target.Distance}>${Target.MaxRangeTo}*2) /call MoveTo 
    /if (${Target.Distance}>${Target.MaxRangeTo}) /keypress forward hold |If target is farther then MaxRange move forward 
    /if (${Target.Distance}<8) /keypress back hold |If target is closer then 8 move back 
    /if (${Target.Distance}<10) /keypress forward  |If target is closer then 10 stop moving forward 
    /if (${Target.Distance}>9) /keypress back |If target is farther then 9 stop moving back 

    /face fast 
/return 

Sub SneakHide 
    /delay 4 
    /if (${bSneakHide}) { 
:WaitForSneak 
        /if (${Me.Sneaking}) { 
            /goto :WaitForHide 
        } else { 
            /doability "Sneak" 
            /delay 4 
            /goto :WaitForSneak 
        } 
        
:WaitForHide 
      /delay 4 
      /if (${Me.AbilityReady["Hide"]}) /doability "Hide" 
    }    
/return 

Sub GetBehind 
    /declare iCount int local 
    
    /varset iCount 0 
    /varset fXLoc ${Me.X} 
    /varset fYLoc ${Me.Y} 

    /if (!${Target.ID}) /goto :noneed 
    /if (${Math.Distance[${Math.Calc[${Target.Y}-${Math.Cos[${Target.Heading.DegreesCCW}]}*10]},${Math.Calc[${Target.X}-${Math.Sin[${Target.Heading.DegreesCCW}]}*10]}]}<5) /goto :noneed 
    /if (${Target.Distance}>${Target.MaxRangeTo}*2) /call MoveTo 

    /keypress forward hold 

:gobehindloop 
    /delay 1 
    /call CheckGM 
    
    /if (!${Target.ID}) { 
       /keypress forward 
       /goto :noneed 
    } 
    
    /if (${iCount}>1) { 
        /if (${fXLoc}==${Me.X} && ${fYLoc}==${Me.Y}) { 
              /keypress forward 
              /goto :noneed 
        } 

        /varset fXLoc ${Me.X} 
        /varset fYLoc ${Me.Y} 
        /varset iCount 0 
    } 
    
    /varcalc iCount ${iCount}+1 
    /doevents 

    /face nolook fast loc ${Math.Calc[${Target.Y}-${Math.Cos[${Target.Heading.DegreesCCW}]}*10]},${Math.Calc[${Target.X}-${Math.Sin[${Target.Heading.DegreesCCW}]}*10]} 
    /if (${Math.Distance[${Math.Calc[${Target.Y}-${Math.Cos[${Target.Heading.DegreesCCW}]}*10]},${Math.Calc[${Target.X}-${Math.Sin[${Target.Heading.DegreesCCW}]}*10]}]}>3) /goto :gobehindloop 

    /keypress forward 
    /face fast 

:noneed 

/return 

Sub CheckDefSpecial 
   /if (${bUseSpecial}) { 
       /if (${Me.PctHPs}<${iNimblePct}) { 
           /if (${Me.PctHPs}<${iEscapePct}) { 
              /echo Escaping. 
              /attack off 
              /varset bAttackTarget 0 
              /delay 2 
              /alt activate 102 | escape aa 
              /call SneakHide 
              /goto :EscapedWaitHeal 
           } else { 
            /echo Nimble. 
               /delay 2 
               /disc nimble 
               /attack off 
               /varset bAttackTarget 0 
               /delay 5 
               /doability "Hide" 
               /goto :NimbleWaitHeal 
           } 
      } 
   } 
    
   /goto :HpOk 
    
:EscapedWaitHeal 
    /if (${Me.PctHPs}>${iHealPausePct}) { 
        /varset bAttackTarget 1 
        /return 
    } 
    /delay 10 
    /goto :EscapedWaitHeal 

:NimbleWaitHeal    
    /if (${Me.PctHPs}>${iHealPausePct}) { 
         /varset bAttackTarget 1 
         /return 
    } 

    /delay hiderefresh 
    /doability "Hide"          
    /goto :NimbleWaitHeal 

:HpOk 

/return 

Sub CheckAtkSpecial 
   /call CheckRegenEnd 

   /if (${bUseSpecial} && !${bDiscActive} && !${bRegenEnd} && ${Target.PctHPs}<${iAttackDiscPct}) { 
       /disc duelist 
       /delay 4 
       /disc deadly 
       /varset bDiscActive 1 
   } 
/return 

Sub CheckStrikeSpecial 
   /call CheckRegenEnd 
    
   /if (${bUseStrike} && !${bRegenEnd}) { 
      /varset bStrikeFlag 1 
      /call CheckMeleeRange 
      /disc ${sStrikeDisc} 

:WaitForBackstabRange 
      /if (${Target.Distance}<${Target.MaxRangeTo}) { 
         /doability "Backstab" 
      } else { 
         /call CheckMeleeRange 
         /goto :WaitForBackstabRange 
      } 
    } 
/return 
        
Sub CheckRegenEnd 
   /if (!${bRegenEnd} && ${Me.PctEndurance}<${iRegenEndPct}) { 
      /varset bRegenEnd 1 
      /echo Regen endurance to full. 
   } 
    
   /if (${bRegenEnd}) { 
       /if (${Me.Endurance}==${Me.MaxEndurance}) { 
           /varset bRegenEnd 0 
           /echo Endurance regenerated. 
      } 
   } 
    
/return    

Sub CheckAnchor 
   /call CheckGM 
    
    /if (${iSetAnchor}==1) /if (${Math.Distance[${AnchorY},${AnchorX}]}>12) /call MoveToAnchor 
    
    /if (${iSetAnchor}==2) { 
        /target ${sFollowTarget} 
        /delay 4 
        /if (${Target.Distance}>${Target.MaxRangeTo} && ${Target.ID} && ${Target.CleanName.NotEqual[${Me.CleanName}]}) /call MoveTo 
    }      
/return 

Sub CheckGM 
   /if (${Spawn[gm].ID}) { 
      /echo Waiting on GM to leave zone. 
      /keypress forward 
      /keypress esc 
      /attack off 
       /delay 4 
       /call SneakHide 
:gmcheck 
      /if (${Spawn[gm].ID}) { 
           /delay 10 
            /goto :gmcheck 
         } else /return 
   } 
/return 

Sub MoveTo 
    /declare iCount int local 
    
    /varset iCount 0 
    /varset fXLoc ${Me.X} 
    /varset fYLoc ${Me.Y} 

    /if (!${Target.ID}) { 
       /keypress forward 
       /return 
    } 
    
    /if (${Target.Distance}<${Target.MaxRangeTo}) { 
       /keypress forward 
       /return 
    } 
    
    /echo Moving to Target: ${Target.CleanName}. 

:fastmoveloop 
   /delay 1 
   /doevents 
    
    /if (!${Target.ID}) { 
        /keypress forward 
        /return 
    } 
    
    /face fast 

    /if (${Target.Distance}>${Target.MaxRangeTo}) /keypress forward hold 

    /if (${Target.Distance}<${Target.MaxRangeTo}) { 
        /keypress forward 
        /return 
    } 
    
    /if (${iCount}>2) { 
        /call Detectobst 
        /face fast 
        /varset iCount 0 
    } 
    
    /if (${Target.Distance}>${Math.Calc[${Target.MaxRangeTo}*2]}) /varcalc iCount ${iCount}+1 
    /goto :fastmoveloop 
/return 


Sub MoveToAnchor 
    /declare iCount int local 

    /varset fXLoc ${Me.X} 
    /varset fYLoc ${Me.Y} 
    /varset iCount 0 

    /echo Moving to Anchor at Loc: ${AnchorY}, ${AnchorX}. 

:AnchorMoveLoop  
    /delay 1 
    /doevents 
    /face nolook loc ${AnchorY},${AnchorX} 
    
    /if (${Math.Distance[${AnchorY},${AnchorX}]}>12) { 
       /keypress forward hold 
   } else { 
       /keypress forward 
        /return 
    } 

    /if (${iCount}>2) { 
        /call Detectobst 
        /face nolook loc ${AnchorY},${AnchorX} 
        /varset iCount 0 
    } 
    
    /varcalc iCount ${iCount}+1 
    /goto :AnchorMoveLoop 
/return 

Sub Detectobst 
    /delay 2 
    /if (${fXLoc}==${Me.X}) /if (${fYLoc}==${Me.Y}) /call Hitobst 
    /varset fXLoc ${Me.X} 
    /varset fYLoc ${Me.Y} 
/return 

Sub Hitobst 
    /keypress forward 
    /keypress back hold 
    
    /if (${Math.Rand[2]}) {    
        /delay 2s    
        /keypress back 
        /keypress right hold 
        /delay 8 
        /keypress right 
        
        /if (${bUseJump}) { 
           /keypress forward hold 
           /delay 8 
           /keypress jump 
        } 
    } else { 
        /delay 2s 
        /keypress back 
        /keypress left hold 
        /delay 8 
        /keypress left 
        
        /if (${bUseJump}) { 
           /keypress forward hold 
           /delay 8 
           /keypress jump 
        } 
    } 
    /delay 10 
    /keypress forward hold 
/return 

| ----- Events called by /DoEvents ----- 

Sub Event_Enraged 
    /varset bAttackTarget 0 
    /attack off 
/return 

Sub Event_Offrage 
    /varset bAttackTarget 1 
    /attack on 
/return 

Sub Event_Zonechange 
   /keypress up 
   /endmacro 
/return 

Sub Event_Slainby 
    /keypress up 
    /endmacro 
/return 

User avatar
ap50
a snow griffon
a snow griffon
Posts: 425
Joined: Sun Aug 18, 2002 2:29 pm

Post by ap50 » Sat May 22, 2004 8:14 am

Beware the 8) becoming :) on line 232.
[color=yellow][size=92][b]Just because you're paranoid, it doesn't mean everyone isn't out to get you![/b][/size][/color]

Wendel
a lesser mummy
a lesser mummy
Posts: 58
Joined: Wed Jul 24, 2002 1:48 am

Post by Wendel » Wed Jun 09, 2004 5:12 pm

I was wondering if we could do two things with this macro.

The first being perhaps call the movebehind routine every 15 seconds or so. This would make the rogue look a little more natural if he get's agro.

The other is maybe have a variance in exactly how perfectly behind a mob he is. I run a group with two rogues and it would look a little better if rogue one was behind the mob in like the 220 degree range and the other rogue was perhaps in the 160 degree range.

Other than that it's a great mac and I like it alot!

Jerle69
a hill giant
a hill giant
Posts: 263
Joined: Wed Apr 28, 2004 3:26 pm

Post by Jerle69 » Wed Jun 09, 2004 6:41 pm

Wendel, not to pimp my own macro, but you may find what you're looking for in Rogue Helper... At this point, RH does everything autorogue does and quite a few things it doesn't (and a bit more natural).
--Jerle

msdss
decaying skeleton
decaying skeleton
Posts: 6
Joined: Fri Apr 30, 2004 8:13 pm

Post by msdss » Wed Jun 16, 2004 9:07 am

I've been using this script to run all of my melee's basically, and was wondering how I could modify this to work wtih a Berserker. Instead of backstabbing, it frenzies, and setting it up to auto disarm, and use the berserker evade disc when low health.... I'm not really that great with code, so if anyone has any tips I would appreciate it...

N0ctrnl
a lesser mummy
a lesser mummy
Posts: 60
Joined: Thu Apr 29, 2004 12:49 pm

Post by N0ctrnl » Thu Jun 17, 2004 9:22 pm

Rogue helper is indeed very full-featured, but that documentation is a fucking nightmare. You need to seperate the changelog from the actual docs and make it somewhat less of a labyrinth.

msdss
decaying skeleton
decaying skeleton
Posts: 6
Joined: Fri Apr 30, 2004 8:13 pm

Post by msdss » Fri Jun 18, 2004 2:37 am

this macro stopped working with that latest source on the 16th or 17th ..... when I run it, and even older versions it generates an error and i crash to desktop....

Omiime
a ghoul
a ghoul
Posts: 92
Joined: Tue Mar 30, 2004 9:53 pm

Post by Omiime » Fri Jun 18, 2004 2:40 am

Caladine wrote:A whole bunch of shit just isn't parsing right with Lax's new calculate command, most notably if statements using '=='.

Go into MQ2Utilities.c and uncomment the old calculate "ActualCalculate", and uncomment the Benchmarks line at the bottom of the file with ActualCalculate, and comment out the other.

do this for now, and it'll work again

Jerle69
a hill giant
a hill giant
Posts: 263
Joined: Wed Apr 28, 2004 3:26 pm

Post by Jerle69 » Fri Jun 18, 2004 10:33 am

N0ctrnl:
Rogue helper is indeed very full-featured, but that documentation is a fucking nightmare. You need to seperate the changelog from the actual docs and make it somewhat less of a labyrinth.
There's two sections to the documentation (well three if you want to get technical), the introductory part of the macro, the changelog, and the in-macro supplied help (via the /rhhelp). The changelog is more or less "just for me" so that I know what I did to the macro in case some weird side-effect pops up due to a change--hasn't happened yet thankfully. The /rhhelp is just a brain tickler that provides generic syntax for the commands, and not much else. The introductory part of the macro documents all the features in detail, in the chronological order in which they were written.

Do you suggest I cut the changelog out? (I'd hope a user could do this when they cut and paste the macro from the message board; after all, if thine eye offends thee, pluck it out). Did you mean just the changelog or the chronological feature documentation? If you meant that the feature documentation is a labyrinth, I suppose I could go and rewrite it all based on a feature list intstead of chronology, but I was (and am) too busy making the actual macro better to write a BOOK to describe it's use. As is, I think there is more documentation associated with RH than almost any other macro I've ever seen, and I try damn hard to explain things that are butt-obvious to me and make alot of sense either way.

Sorry if you find it confusing or longwinded or ordered distastefully--I didn't get paid alot to write any of it, you know? Considering that, it's not bad for free, I think.

Hasta,
--Jerle

N0ctrnl
a lesser mummy
a lesser mummy
Posts: 60
Joined: Thu Apr 29, 2004 12:49 pm

Post by N0ctrnl » Fri Jun 18, 2004 11:47 am

It was never my intention to offend you. If I have, then I apologize.

I was mainly referring to the chronological stuff. Yes, the /rhhelp is nice, but on a 2nd PC (which is where it lives most of the time for me, and I'm sure for several others), it's a pain to go through that.

Anyway, was just a suggestion. Do it or don't, but I thought it'd be helpful. :)

Jerle69
a hill giant
a hill giant
Posts: 263
Joined: Wed Apr 28, 2004 3:26 pm

Post by Jerle69 » Fri Jun 18, 2004 1:38 pm

Point taken. If I get a chance, I'll reorganize all of the documentation and make a new reference document separate from RH. To be honest, I never thought I'd make it as huge or complex as it is (nor do so in less than 3 weeks).

Food for thought:

I discovered MQ2 in late April (or Early May), and I wrote RH as my very first macro in early May. Over the past month it's been enhanced tremendously. Explosive growth like that is very hard to concisely and cleanly document. Now that it's pretty much done, I can retrofit the documents to be cleaner and easier to understand for new users, but for those who've followed it's development probably just want to read "what's new" with every version instead of sifting through a manual. I guess I could write both, but I'm lazy like that. /shrug

Ta ta,
--Jerle

TrippyTom
a lesser mummy
a lesser mummy
Posts: 75
Joined: Sun May 30, 2004 10:18 am

Post by TrippyTom » Fri Jun 18, 2004 7:09 pm

I just tried the latest download today (6/18/04) and it works fine. RH doesn't even LD me now.

Could you give us your latest version now?

p.s. - trying to get my paypal account activated...
May the eclipse of your soul never fade to light!

TrippyTom
a lesser mummy
a lesser mummy
Posts: 75
Joined: Sun May 30, 2004 10:18 am

Post by TrippyTom » Sat Jun 19, 2004 8:40 am

hmm... it keeps ending in the if Me.X && Me.Y section for some reason. I'm not smart enuf to figure out how to fix it.

I get "Failed to parse... non-numeric encountered"
May the eclipse of your soul never fade to light!