Hi, let me give you some feedback about your script.
Firstly, your player's their paswords are still in there.. I hope you could save them
Now let's go further
1.
SCAR Code:
procedure Check;
Begin
If FindBitmap(BrokenPickAxe,x,y)then
begin
mouse(x,y,2,3,false)
ChooseOption('Drop')
Writeln('Gas Got us Terminating Script!')
LogOut;
NextPlayer(true);
end;
end;
I've found a mistake in here:
If your pickaxe is broken, you tell the script to logout and login the next player, this is correct, but. the line after it isn't.
You tell the script that the current player is still active, which means that we can still use that player in further script run, which is wrong.
You'll have to use here, to tell the script that we wont use the player in further script run anymore, because his pickaxe is broken
2.
You have a variable that you aren't using in the script, not properly, you don't give an action..
I'm talking about the variable "AxeLost", which is a boolean.
You just give them results (true/false) but it's useless in your script because you don't use those variables to continue an action
3.
Why do you click the axe? You want to wield it? Then you'll have to be sure
that you have opened the inventory tab, "GameTab(4);".
Do you just want to check? Then search for it in the "wield" tab and in the "inventory" tab, "GameTab(4)" and "GameTab(5);".
Because, let us say that gametab(5); is opened, it will unwield the axe?
Whatever, it's just a lil comment
4. Now, something that you really have to change.
We are going to look to 2 procedures,
SCAR Code:
procedure WaitWhileMining;
and
Let's look to the first one.
Code:
if GasFound(fx, fy) then
you have that par tin there, it will move the mouse to the fx, fy coordinates and then checks if there is a gas.
If you look only to that code, there's nothing wrong, but look..
You use the function, great, let's look to the parameter's.
PHP Code:
function FindObjOre(var cx, cy: Integer; Text: string; color, tolerance,
MinCount: Integer): Boolean;
What will it do?
It will look for a certain color, with tolerance with a certain text and don't forget the counting (MinCount).
This is important: It will find that obj, take the coords and store the coords in the cx, cy variables!
Let's look how you've used them:
SCAR Code:
case what_to_mine of
'Clay': begin
repeat
if FindObjOre(x, y, 'Mine', 6989253, 5, 2) then
mmouse(x, y, 2, 2)
if IsUpTextMulti('min', 'ne', 'rocks') then
wait(100 + Random(300))
mouse(x, y, 0, 2, true)
WaitWhileMining;
OresMined := OresMined + 1;
until (invcount = 28)
You search for the rock and when it's found you store the coords in x,y
Now,
Code:
procedure WaitWhileMining;
, will check for gas at fx, fy, which will be the following coords: 0, 0
Alert! Alert! here is the BIG mistake that a lot of people make!
You'll have to search for the gas were you stored the variables were you found the rock, isn't it?
So you'll need to change
to

Btw, you don't need that text chacking in your mining procedure, "FindObjOre" ,already does 
5.
I'll edit that one
it just drops from inv slot 4 to 28
6.
I'll make this self-explonatary
Look to the timemark you've use in your script, after 40 secs you'll terminate script.. 
Now, don't think that I was flaming you, I wasn't!, other than other people over here, I do loko to scripts and give my feedback how to improve/fix stuff. There are a lot scripts that are less as good as yource, but they don't know, because there are not always people that tell them what is wrong.
So don't think you're bad, you're on a good way
Keep it up,
-Tsn.
EDIT: I went to this thread when nobody posted something, I was the first. I wrote that much that I'm 3rd in posting