Author Topic: Crisis Carpentry Trainer Beta 1.0 *Needs Testers Please*  (Read 44861 times)

0 Members and 1 Guest are viewing this topic.

Offline Tidus

  • Lazy
  • Administrator
  • *
  • *
  • Posts: 1291
  • Activity:
    0%
  • Reputation Power: 15
  • Tidus is working their way up.Tidus is working their way up.Tidus is working their way up.
  • Gender: Male
  • Mind Blown
  • Respect: +367
  • Referrals: 2
    • View Profile
    • Ultimate Apparel
Re: Crisis Carpentry Trainer Beta 1.0 *Needs Testers Please*
« Reply #30 on: January 06, 2014, 02:36:33 PM »
+1
Running Scriptuo Program this is the syntax error check that i am getting for 1.5.  It is hard for me to test fully when there are so many unused and unmatched subroutines.
Code: [Select]
Method count: 56
Command count: 56
*** Pass 1 - Label accounting:
*** Warning - GOSUB #menubutton - Line 72 has no matching SUBroutine
*** Warning - GOSUB *request - Line 73 has no matching SUBroutine
*** Warning - GOSUB %s - Line 214 has no matching SUBroutine
*** Warning - GOSUB countregs - Line 313 has no matching SUBroutine
*** Warning - GOSUB tm_advjournalscan - Line 487 has no matching SUBroutine
*** Warning - GOSUB item - Line 696 has no matching SUBroutine
*** Warning - SUBROUTINE startp - Line 163 unused
*** Warning - SUBROUTINE pausep - Line 171 unused
*** Warning - SUBROUTINE resumep - Line 183 unused
*** Warning - SUBROUTINE quitp - Line 194 unused
*** Warning - SUBROUTINE closed - Line 198 unused
*** Warning - SUBROUTINE init - Line 204 unused
*** Warning - SUBROUTINE craft - Line 212 unused
*** Warning - SUBROUTINE idle - Line 220 unused
*** Warning - SUBROUTINE end - Line 228 unused
*** Warning - SUBROUTINE checktinkertools - Line 497 unused
*** Warning - SUBROUTINE checkcarptools - Line 509 unused
*** Warning - SUBROUTINE skillcraft - Line 649 unused
*** Warning - SUBROUTINE item1 - Line 750 unused
*** Warning - SUBROUTINE item2 - Line 761 unused
*** Warning - SUBROUTINE item3 - Line 772 unused
*** Warning - SUBROUTINE item4 - Line 783 unused
*** Warning - SUBROUTINE item5 - Line 794 unused
*** Warning - SUBROUTINE item6 - Line 805 unused
*** Warning - SUBROUTINE item7 - Line 816 unused
*** Warning - SUBROUTINE item8 - Line 827 unused
*** Warning - SUBROUTINE item9 - Line 838 unused
*** Warning - SUBROUTINE item10 - Line 851 unused
*** Warning - SUBROUTINE gumpwait - Line 862 unused
*** Warning - GOTO _getcarptoolitem - Line 686 has no matching tag
*** Error - Braces not balanced. Imbalanced by: 1
Subroutine labels = 49
Tag labels = 9
43 Code block(s).
30 Warnings(s) encountered.
*** Pass 2 - Execution [SYNTAXCHECK]

If you can make these changes, it will help tremendously in us helping you.
For those who have fought for it, freedom has a taste the protected will never know ~ Anonymous, Vietnam, 1968

Offline Tidus

  • Lazy
  • Administrator
  • *
  • *
  • Posts: 1291
  • Activity:
    0%
  • Reputation Power: 15
  • Tidus is working their way up.Tidus is working their way up.Tidus is working their way up.
  • Gender: Male
  • Mind Blown
  • Respect: +367
  • Referrals: 2
    • View Profile
    • Ultimate Apparel
Re: Crisis Carpentry Trainer Beta 1.0 *Needs Testers Please*
« Reply #31 on: January 06, 2014, 02:46:43 PM »
+1
Funny timing, I decided this morning to train up carpentry so I can make some suits. I was going to write my own but decided I'd go ahead and test for ya.

Just a couple things I've run into so far-

1) The first thing I did was to get rid of all the opening of my journal, pack, skills, etc in the Setup sub. Not sure why you go through all of that but I always find it annoying when a script moves all my stuff around and I couldn't figure out a reason for it :) That could just be a XIIx-ism though.
2) It pulled Shadow Iron ingots out of my secure instead of regular ingots. I paused and moved some Iron into my pack so I could keep testing, it was able to keep going but it did pull more shadow ingots out since it had already set the %ingots to my stack of Shadow. You should either add some color checking when setting the %ingots var or just make it clear in your instructions that only Iron ingots should be in your secure.
3) After this it made a box, axed it, then made 9 Moulding Planes before I hit stop.

Keep it coming!!

X

Thanks for the input!

1. I guess the skills and journal is me being lazy and liking them in a specific place. I can remove that part and have my own copy with it in there.  ;D

2. Checking for colored resources is not something that I have messed with yet. I will put it in the script to have only iron ingots in the secure for now and look at learning the other later. Once I am good with it, I can add the check into the script.

3. I am not sure about it making 9 jointer planes. I had a problem with that a while ago and thought that I had it fixed. Do you happen to see a mistake that would cause it to happen? I tested it last night for a little over 3 hours and it ran smoothly making only 2 at a time. Could it be a timing issue?


I am currently working on a WoodWorker Deluxe which will include Carpentry, Bowcrafting, and Tinker trainers, craft arrows & bolts, craft fukiya darts, poison fukiya darts (for oracle), and craft logs into boards. This is a huge undertaking for me since I am learning but as of right now, I have the 3 trainers into one script and working. I love scripting even though it can get frustrating when you cannot find that one typo or wrong word that is messing everything up. I hope to start doing more advanced stuff in the near future.  8)

To find color of an ingot is quite simple.
Code: [Select]
if #findcol = 0
gosub moveit #backpackid %ResourceSecure #findid %_diff

The main thing to incorporate into that is to make sure you go through all your found items to see whether any of them have the correct #findcol

« Last Edit: January 06, 2014, 02:49:42 PM by Tidus »
For those who have fought for it, freedom has a taste the protected will never know ~ Anonymous, Vietnam, 1968

Offline 12TimesOver

  • Another Day, Another Vendetta
  • Global Moderator
  • *
  • *
  • Posts: 3694
  • Activity:
    0%
  • Reputation Power: 41
  • 12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.
  • Gender: Male
  • Respect: +600
  • Referrals: 2
    • View Profile
Re: Crisis Carpentry Trainer Beta 1.0 *Needs Testers Please*
« Reply #32 on: January 06, 2014, 02:48:08 PM »
+1
Many of those subroutines are indeed used but they aren't called in a way that allows the Syntax checker to know this. I do the same thing all the time, stuff like "gosub #menubutton", stuff like that.

Crisis - ignore the Namespace stuff in my sub for now, yt has nothing to do with your timing issue. Just consider the gumpwait function itself. You can clean up A LOT of your script by simplifying things a bit :)

X
When they come for me I'll be sitting at my desk
     with a gun in my hand wearing a bulletproof vest
My, my, my how the time does fly
     when you know you're gonna die by the end of the night

Offline Tidus

  • Lazy
  • Administrator
  • *
  • *
  • Posts: 1291
  • Activity:
    0%
  • Reputation Power: 15
  • Tidus is working their way up.Tidus is working their way up.Tidus is working their way up.
  • Gender: Male
  • Mind Blown
  • Respect: +367
  • Referrals: 2
    • View Profile
    • Ultimate Apparel
Re: Crisis Carpentry Trainer Beta 1.0 *Needs Testers Please*
« Reply #33 on: January 06, 2014, 02:51:11 PM »
+1
Many of those subroutines are indeed used but they aren't called in a way that allows the Syntax checker to know this. I do the same thing all the time, stuff like "gosub #menubutton", stuff like that.

Crisis - ignore the Namespace stuff in my sub for now, yt has nothing to do with your timing issue. Just consider the gumpwait function itself. You can clean up A LOT of your script by simplifying things a bit :)

X
gotcha. I never did that because i was always afraid that it would go crazy thinking i am trying to call that variable as the name.
For those who have fought for it, freedom has a taste the protected will never know ~ Anonymous, Vietnam, 1968

Offline The Ghost

  • Elite
  • *
  • *
  • Posts: 1917
  • Activity:
    0%
  • Reputation Power: 25
  • The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.
  • Respect: +556
  • Referrals: 0
    • View Profile
Re: Crisis Carpentry Trainer Beta 1.0 *Needs Testers Please*
« Reply #34 on: January 07, 2014, 08:46:20 AM »
+1
Been running ver 1.5 and it holding ground.    

 here some observation:
Line 603 you need to replace ingots for boards


 This is me playing trick on it to force it making tools .  I pause with the carpentry menu up, I remove the carpentry tool and kept one.  the script read that it have one tool remain trying to make new one  but it making stool. I know this is pouching it.  just saying   Now if I close the menu before hitting play, everything is fine.    

Start a new run clean
Update:
was able to walk away for 10 min and still running :)

Speak to soon.  Min 11:30
 My carptool just ghost on my pack making it to attempt to gain skill for while.   have to open main pack to kept going.


Damm  Min 20:50.

My pack is full of Stool now.  
clean it reset make last,  since fine now.

came back Min 38:41 (attempts 651)
pack have stool again.
clear pack and reset make lat again
« Last Edit: January 07, 2014, 09:19:00 AM by The Ghost »

Offline CrisisTopic starter

  • Global Moderator
  • *
  • *
  • Posts: 3084
  • Activity:
    2.6%
  • Reputation Power: 42
  • Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.Crisis is a force to reckon with.
  • Gender: Male
  • Scripting well enough to break things!
  • Respect: +566
  • Referrals: 2
    • View Profile
Re: Crisis Carpentry Trainer Beta 1.0 *Needs Testers Please*
« Reply #35 on: January 07, 2014, 04:37:05 PM »
+1
I think I am more confused on gumpwaits. I have found quite a few different ways and they are very different.

Code: [Select]
set %gumpwait 5
wait %gumpwait

and

Code: [Select]
sub gumpwait
set %timer #SCNT + 5
 repeat
  until #CONTNAME = generic_gump || #SCNT > %timer
if #contname <> generic_gump
   {
   event macro 17 0
   wait 1s
   }
Return

and

Code: [Select]
set %timer #SCNT + 5
repeat
until #CONTNAME = generic_gump || #SCNT > %timer
set %clicktoolsx #CONTPOSX + %one ;clicks tools
set %clicktoolsy #CONTPOSY + %two
click %clicktoolsx %clicktoolsy f
return

and then what 12x posted

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
   set !gName1 %1
   set !gName2 %2
   set !gSize %3
   set !_time #SCNT
   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
            }
         }
      }
   namespace clear
   namespace pop
return #FALSE


They all obviously work, so can it be as simple as the first one?

Offline The Ghost

  • Elite
  • *
  • *
  • Posts: 1917
  • Activity:
    0%
  • Reputation Power: 25
  • The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.
  • Respect: +556
  • Referrals: 0
    • View Profile
Re: Crisis Carpentry Trainer Beta 1.0 *Needs Testers Please*
« Reply #36 on: January 07, 2014, 05:10:00 PM »
+1
I know that CEO make script 12 years and the all still work event with all the change.  ( we did update the gump size)   made you can inspiration from him.

Offline MeWonUo

  • Hero Member
  • *
  • Posts: 913
  • Activity:
    0%
  • Reputation Power: 11
  • MeWonUo barely matters.MeWonUo barely matters.
  • Gender: Male
  • Respect: +189
  • Referrals: 1
    • View Profile
Re: Crisis Carpentry Trainer Beta 1.0 *Needs Testers Please*
« Reply #37 on: January 07, 2014, 06:17:27 PM »
+1

They all obviously work, so can it be as simple as the first one?



Yes, they can be as simple as the first one you showed.  However, your script will take 4.3 years to GM the carpentry skill if you are doing a hard wait of 5 seconds between clicks. :D   The real problem with doing it that first way in my opinion is that there is no safety built in if you were to get a lag spike.  If you lock up for more that that 5 seconds (or whatever you set it to), there is a good chance that the script will break.

There are about as many ways to write these subs as their are people trying to write them.  I personally use a variation of the second example you posted.

Code: [Select]
sub WaitForGump

set %failsafe_timer #scnt + 2
repeat
until #contsize = 620_459 || ( #scnt > %failsafe_timer )

Then move onto whatever is next in the chain of events..

For the life of me, I can't remember what script I was working on, but using #ContName was causing issues for me.  Ever since, I've used #ContSize instead.

Offline ximan

  • Jr. Member
  • **
  • Posts: 98
  • Activity:
    0%
  • Reputation Power: 1
  • ximan has no influence.
  • Respect: +32
  • Referrals: 1
    • View Profile
Re: Crisis Carpentry Trainer Beta 1.0 *Needs Testers Please*
« Reply #38 on: January 07, 2014, 09:15:07 PM »
+1
Quote
Been running ver 1.5

Crisis would you mind posting or pm'ing me the current version?  Want to compare some parts with your earlier inscription script.

Offline Tidus

  • Lazy
  • Administrator
  • *
  • *
  • Posts: 1291
  • Activity:
    0%
  • Reputation Power: 15
  • Tidus is working their way up.Tidus is working their way up.Tidus is working their way up.
  • Gender: Male
  • Mind Blown
  • Respect: +367
  • Referrals: 2
    • View Profile
    • Ultimate Apparel
Re: Crisis Carpentry Trainer Beta 1.0 *Needs Testers Please*
« Reply #39 on: January 08, 2014, 06:53:46 AM »
+1

Code: [Select]
sub WaitForGump

set %failsafe_timer #scnt + 2
repeat
until #contsize = 620_459 || ( #scnt > %failsafe_timer )

Then move onto whatever is next in the chain of events..

For the life of me, I can't remember what script I was working on, but using #ContName was causing issues for me.  Ever since, I've used #ContSize instead.


Using #contsize is the best in my opinion.  Only because every gump has a specific size.  So you can easily code that part to test for multiple cont sizes.

Code: [Select]

gosub contwait 620_459 5

sub contwait

set %timer #scnt + %2
repeat
until #contsize = %1 || ( #scnt > %timer )
return


For those who have fought for it, freedom has a taste the protected will never know ~ Anonymous, Vietnam, 1968

Offline 12TimesOver

  • Another Day, Another Vendetta
  • Global Moderator
  • *
  • *
  • Posts: 3694
  • Activity:
    0%
  • Reputation Power: 41
  • 12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.
  • Gender: Male
  • Respect: +600
  • Referrals: 2
    • View Profile
Re: Crisis Carpentry Trainer Beta 1.0 *Needs Testers Please*
« Reply #40 on: January 08, 2014, 07:15:08 AM »
+1
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
When they come for me I'll be sitting at my desk
     with a gun in my hand wearing a bulletproof vest
My, my, my how the time does fly
     when you know you're gonna die by the end of the night

Offline 12TimesOver

  • Another Day, Another Vendetta
  • Global Moderator
  • *
  • *
  • Posts: 3694
  • Activity:
    0%
  • Reputation Power: 41
  • 12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.
  • Gender: Male
  • Respect: +600
  • Referrals: 2
    • View Profile
Re: Crisis Carpentry Trainer Beta 1.0 *Needs Testers Please*
« Reply #41 on: January 08, 2014, 07:25:41 AM »
+1
I think I am more confused on gumpwaits. I have found quite a few different ways and they are very different.
I figured I'd reply to each one of your examples since I posted about mine already.

Code: [Select]
set %gumpwait 5
wait %gumpwait
This does not wait for anything in particular, it's just a wait. If the Gump you're waiting for takes more than .25 seconds to come up this will break the rest of your script. This is the same as just saying "wait 5".

Code: [Select]
sub gumpwait
set %timer #SCNT + 5
 repeat
  until #CONTNAME = generic_gump || #SCNT > %timer
if #contname <> generic_gump
   {
   event macro 17 0
   wait 1s
   }
Return
This one is configured to ONLY look for a specific gump, "generic_gump", then if it doesn't see it it attempts to use last object again and returns to the script. Not a very good example of solid logic (sorry to anyone who owns this).

Code: [Select]
set %timer #SCNT + 5
repeat
until #CONTNAME = generic_gump || #SCNT > %timer
set %clicktoolsx #CONTPOSX + %one ;clicks tools
set %clicktoolsy #CONTPOSY + %two
click %clicktoolsx %clicktoolsy f
return
This is nothing more than a repeat/until loop that basically is saying "don't do anything else at all, nothing...and I mean NOTHING...until either the current gump is "generic_gump" or 5 seconds have gone by"! Then the script goes on to assume that the gump did indeed come up and starts clicking as if all is good. What if the gump was called something besides generic_gump or didn't come up at all? This snippet doesn't give a *bleep*, after 5 seconds it moves along like everything is hunky dorey.


Code: [Select]
;#######################
;SUB XIIxGumpWait
;#######################
<SNIP>
I already talked about this one :)

Quote
They all obviously work, so can it be as simple as the first one?
Well, nope they don't all work. In fact, none of them will work unless very specific criteria are met.

Hope this helps, and again, no offense intended toward anyone who may have written the above examples!

X
When they come for me I'll be sitting at my desk
     with a gun in my hand wearing a bulletproof vest
My, my, my how the time does fly
     when you know you're gonna die by the end of the night

Offline The Ghost

  • Elite
  • *
  • *
  • Posts: 1917
  • Activity:
    0%
  • Reputation Power: 25
  • The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.The Ghost is on the verge of being accepted.
  • Respect: +556
  • Referrals: 0
    • View Profile
Re: Crisis Carpentry Trainer Beta 1.0 *Needs Testers Please*
« Reply #42 on: January 08, 2014, 10:29:10 AM »
+1
Seen like I open a can of worms.,

Thx for the lesson 12X,  getting a better understanding of the flow now.  I appreciated the time to explain all this.

Offline 12TimesOver

  • Another Day, Another Vendetta
  • Global Moderator
  • *
  • *
  • Posts: 3694
  • Activity:
    0%
  • Reputation Power: 41
  • 12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.12TimesOver is a force to reckon with.
  • Gender: Male
  • Respect: +600
  • Referrals: 2
    • View Profile
Re: Crisis Carpentry Trainer Beta 1.0 *Needs Testers Please*
« Reply #43 on: January 08, 2014, 10:57:35 AM »
+1
Seen like I open a can of worms.,

Thx for the lesson 12X,  getting a better understanding of the flow now.  I appreciated the time to explain all this.

Hey brother, you didn't open up a can of worms!! :) This is in response to Crisis' question with his examples, just trying to help out. I've never looked at CEO's code so have no idea how he handles Gumpwait's but I have faith that he is a better coder than I am! :)

X
When they come for me I'll be sitting at my desk
     with a gun in my hand wearing a bulletproof vest
My, my, my how the time does fly
     when you know you're gonna die by the end of the night

Offline Tidus

  • Lazy
  • Administrator
  • *
  • *
  • Posts: 1291
  • Activity:
    0%
  • Reputation Power: 15
  • Tidus is working their way up.Tidus is working their way up.Tidus is working their way up.
  • Gender: Male
  • Mind Blown
  • Respect: +367
  • Referrals: 2
    • View Profile
    • Ultimate Apparel
Re: Crisis Carpentry Trainer Beta 1.0 *Needs Testers Please*
« Reply #44 on: January 08, 2014, 11:25:02 AM »
+1
Seen like I open a can of worms.,

Thx for the lesson 12X,  getting a better understanding of the flow now.  I appreciated the time to explain all this.

Hey brother, you didn't open up a can of worms!! :) This is in response to Crisis' question with his examples, just trying to help out. I've never looked at CEO's code so have no idea how he handles Gumpwait's but I have faith that he is a better coder than I am! :)

X

I think we are always in a state of learning when it comes to scripting.  There are so many ways to do different things that some are better for different situations than others.  Some are more deliberate for the one item and some can encompass many different abilities. 

That is the great thing about scripts, you can make the specific or you can make them general.  If you make alot of scripts for different things but want to use the same sub over and over, you can do that.

Or if you only want to write one script, there is no need for a general sub, make it specific to what you are doing.

THAT IS WHY I LOVE SCRIPTING AND FLOW CHARTS AND ALL OF THAT JAZZ!!!!!
For those who have fought for it, freedom has a taste the protected will never know ~ Anonymous, Vietnam, 1968

Tags: