Sir R. M8gic1an
2007-12-03 14:06:45
<!– BEGIN TEMPLATE: formanswers –>
Rasta Magician - SRL Member Application Form
Rasta Magician
What is the meaning to life?
Living it to the fullest.
Accepting Death is the start of Freedom.
Where you Referred to SRL? If yes, by whom?
I wasn't.
Programming Knowledge
PHP
Other Communitys
KYAB ( just started there)
How Long have You Played Runescape
2 years
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Hi, I go around as Rasta Magician and hopefully some of you have noticed me around. I've developed the annoying habit of going through the First Scripts section and reviewing some of the scripts over there, and I'm proud to say I actually got to know one of the Scripters and we are now developing a script together :)
I'm 16 and I've been into web making and programming from about the age of 8. I know some people around here have been doing it for longer and it seriously surprised me because i used to think it was quite rare for someone to start at that age. My first programming language, and the only one i dare say I'm quite familiar with is PHP. I've also had some javascript and PSP programming phases but didn't go too deep into it.
Runescape is not the only online game i play, i also spend much time at TTAdvance, an online version of the FF8 game Triple Triad, and at Conquer Club, an online version of Risk. But i enjoy programming in scar for Runescape because jagex is an ever changing opponent.
PS: I am fully aware that my script is not complete, but i was hoping for some open minds, because it is an auto merchant that has been rendered pretty useless since the grand exchange update and player to player trading isn't as common anymore. Please note how well (i hope) it is coded, although it doesn't get to actually merchant. I also left many possibilities for updates, with a little bit of tweaking i could merchant anything and if we(I) get a bit creative it can even be used for things such as trading cuts for uncuts and cooked for uncooked, another option that was sort of ruined by the assist system.
Yours truly,
Rasta Magician
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
——————————————————
<!– END TEMPLATE: formanswers –>
Rasta Magician - SRL Member Application Form
Rasta Magician
What is the meaning to life?
Living it to the fullest.
Accepting Death is the start of Freedom.
Where you Referred to SRL? If yes, by whom?
I wasn't.
Programming Knowledge
PHP
Other Communitys
KYAB ( just started there)
How Long have You Played Runescape
2 years
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Hi, I go around as Rasta Magician and hopefully some of you have noticed me around. I've developed the annoying habit of going through the First Scripts section and reviewing some of the scripts over there, and I'm proud to say I actually got to know one of the Scripters and we are now developing a script together :)
I'm 16 and I've been into web making and programming from about the age of 8. I know some people around here have been doing it for longer and it seriously surprised me because i used to think it was quite rare for someone to start at that age. My first programming language, and the only one i dare say I'm quite familiar with is PHP. I've also had some javascript and PSP programming phases but didn't go too deep into it.
Runescape is not the only online game i play, i also spend much time at TTAdvance, an online version of the FF8 game Triple Triad, and at Conquer Club, an online version of Risk. But i enjoy programming in scar for Runescape because jagex is an ever changing opponent.
PS: I am fully aware that my script is not complete, but i was hoping for some open minds, because it is an auto merchant that has been rendered pretty useless since the grand exchange update and player to player trading isn't as common anymore. Please note how well (i hope) it is coded, although it doesn't get to actually merchant. I also left many possibilities for updates, with a little bit of tweaking i could merchant anything and if we(I) get a bit creative it can even be used for things such as trading cuts for uncuts and cooked for uncooked, another option that was sort of ruined by the assist system.
Yours truly,
Rasta Magician
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
{===================================================================]
[ Rasta Magicians Coal Merchant ]
[ ]
[ NAME : RM Coal Merchant ]
[ WRITER : Rasta Magician ]
[ CATEGORY : Buy/Sell ]
[ DESCRIPTION : Buys and sells coal, makes money ]
[ USAGE : Start prefaribly in a bank ]
[ SRL Used : 4 rev #5 ]
[ Version : 1.0 ]
[ Released : Not Yet ]
[ ]
[===================================================================]
[ Instructions. ]
[===================================================================]
[ 1. Use SRL 4 rev #5 and SCAR 3.12 ]
[ 2. Setup from line 80 to the big restricted sign you'll see it, ]
[ no need to worry about missing it ]
[ 4. Position your player wherever there is a crowd ]
[ 5. Hit run! ]
[ 6. Post proggies and feedback please! :) ]
[ 7. ONLY USE THIS ON LEVEL 40'S MORE!!!! ]
[===================================================================]
[ Information ]
[===================================================================]
[ This buys and sells coal, so I suggest you use it in Fally. ]
[ Please have at least 50k in each of your players, otherwise ]
[ it'll take a really long time to make a remarkable profit, ]
[ and it'll be buying and selling coal in ridiculously small ]
[ amounts. This will buy coal until you're out of money, and ]
[ then it'll sell it, and restart buying when you're out of coal ]
[ ~RMagician ]
[===================================================================]
[ Future Updates ]
[===================================================================]
[ 1. World Switch ]
[ 2. Buy/Sell ANYTHING ]
[ 3. Your Suggestion? ]
[===================================================================]
[ Credits ]
[===================================================================]
[ The Claw, for this nice looking layout, and Randoms ]
[ The Dev Team, for Srl ]
[ cathering_, i used his/her making typo idea ]
[ Salmoneus, [url]http://runescape.salmoneus.net/[/url] - chat effect guide ]
[ Rogeruk, for helping me with amount.scar ]
[ Fakawi for FindFastRandoms and comment on my first version :) ]
[===================================================================]
~RMagician }
{
OreDTM := DTMFromString('78DA635CCFC4C0A0CAC8800CAC2C35C0344C9' +
'4713E508D3AAA1A982C5CCD6AA01A71026AF601D5281050B30BA8' +
'469B809A35403546F8D50000E6AA05BC');
NotedOreDtm := DTMFromString('78DA637CC2C4C0B09E910119589AAB8169982' +
'8E323A09AA5A86A60B270356F816A561150F301A8661B013520BB' +
'7610507313A8663301350F806A961150F30AA86621116E5E47843' +
'97B08A8B90A54B39D809A5B4035BB08A8B90654B31ABF1A00455B' +
'1557');
}
{ this is for the selling part
b := Trunc(315/150); it'll round down the number
writeln(IntToStr(b));
}
program RMagicianCoalMerchant;
{.include srl.scar}
{.include srl/srl/misc/trade.scar}
type
thingy2 = record
buytxt: string;
item: string;
price: string;
effect: string;
end;
type
blacklist = record
name: string;
wlvl: integer;
end;
var
theMessage: array of thingy2;
Trader: array of blacklist;
timesTalked,
OpenTrade, Declined, TotalTrades, TTraders,
MarkStart, MarkLastTrade, MarkOpen, MarkItemCheck,
i: integer;
ThisTrader: string;
const
TotalPlayers = 1; // does this need an explanation?
useEffect = False; // use runescape chat effects
Change = 7; //change character after x mins (i suggest 5-7 mins)
Procedure DeclarePlayers;
Var
I: Integer;
Begin
CurrentPlayer := 0;
HowManyPlayers := TotalPlayers;
NumberOfPlayers(HowManyPlayers);
Players[0].Name :=''; //username
Players[0].Pass :=''; // password
Players[0].Nick :=''; // 3-4 letters of username
Players[0].Active:=True; // do you want to use this player?
players[0].Strings[3] := '150'; // eg: '1k' or '1000' or '1.5k'
players[0].Integers[0] := 150; // real buy price eg: 1000
players[0].Strings[4] := '200'; // eg: '5k' or '5000' or '5.5k'
players[0].Integers[1] := 200; // real sell price eg: 5000
players[0].Booleans[0] := True; // buying=True, Selling=False
{
Players[1].Name :=''; //username
Players[1].Pass :=''; // password
Players[1].Nick :=''; // 3-4 letters of username
Players[1].Active:=True; // do you want to use this player?
players[1].Strings[3] := ''; // eg: '1k' or '1000' or '1.5k'
players[1].Integers[0] := 0; // real buy price eg: 1000
players[1].Strings[4] := ''; // eg: '5k' or '5000' or '5.5k'
players[1].Integers[1] := 0; // real sell price eg: 5000
players[1].Booleans[0] := True; // buying=True, Selling=False
Players[2].Name :=''; //username
Players[2].Pass :=''; // password
Players[2].Nick :=''; // 3-4 letters of username
Players[2].Active:=True; // do you want to use this player?
players[2].Strings[3] := ''; // eg: '1k' or '1000' or '1.5k'
players[2].Integers[0] := 0; // real buy price eg: 1000
players[2].Strings[4] := ''; // eg: '5k' or '5000' or '5.5k'
players[2].Integers[1] := 0; // real sell price eg: 5000
players[2].Booleans[0] := True; // buying=True, Selling=False
Players[3].Name :=''; //username
Players[3].Pass :=''; // password
Players[3].Nick :=''; // 3-4 letters of username
Players[3].Active:=True; // do you want to use this player?
players[3].Strings[3] := ''; // eg: '1k' or '1000' or '1.5k'
players[3].Integers[0] := 0; // real buy price eg: 1000
players[3].Strings[4] := ''; // eg: '5k' or '5000' or '5.5k'
players[3].Integers[1] := 0; // real sell price eg: 5000
players[3].Booleans[0] := True; // buying=True, Selling=False
}
// LoadPlayerArray;
For I := 0 To HowManyPlayers - 1 Do
begin
SetLength(Players[I].Integers, 2);
SetLength(Players[I].Booleans, 1);
SetLength(Players[I].Strings, 5);
// players[I].Booleans[1] := True; // is the item your buying notable? eg: coal, iron NOT: runes, arrows
// players[I].Booleans[2] := False; // Are you selling this 1 by 1?
players[I].Strings[0] := 'coal'; // objet name
players[I].Strings[1] := 'caol'; // typo
players[I].Strings[2] := 'col'; // another typo
end;
Writeln( IntToStr ( HowManyPlayers ) + ' Players' );
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
End;
////////////////////////////////////////////////////////////////////////////////////////////////////
// This area is //
// ( ) //
// RRRRRRRR EEEEEEEE SSSSSSSS TTTTTTTTTTTT RRRRRRRR II CCCCCC TTTTTTTTT EEEEEEEE DDDD //
// RR RR EE SS TT RR RR II CCC TT EE DD DD //
// RR RR EEEEE SSSSSSSS TT RR RR II CC TT EEEEE DD DD //
// RR RR EE SS TT RR RR II CCC TT EE DD DD //
// RR RR EEEEEEEE SSSSSSSS TT RR RR II CCCCCC TT EEEEEEEE DDDD //
// //
// //
// For your Own Macroing //
// Stop HERE if You Don't Know How to Program //
// //
////////////////////////////////////////////////////////////////////////////////////////////////////
// ARE YOU SURE YOU READ THE SIGN UP THERE?
function SuperTradeScreen(screen: integer): Boolean; // By RMagician (me)
var
foundGreen, foundRed, foundBlue :boolean;
a, b:integer;
begin
if screen = 1 then
begin
if (TabExists(2))and(TabExists(3))and(TabExists(8)) then
begin
writeln('tabs still there, we are not in trade')
Result := False;
end else
begin
writeln('no tabs');
foundGreen := FindColorTolerance(a, b, 49152, 218, 168, 297, 212, 5);
foundRed := FindColorTolerance(a, b, 192, 222, 248, 294, 286, 5);
if (foundGreen)and(foundRed) then
begin
Result:= True;
writeln('we are in trade screen 1');
end else
Result := False;
end;
end;
if screen = 2 then
begin
foundGreen := FindColorTolerance(a, b, 49152, 195, 305, 250, 320, 5);
foundRed := FindColorTolerance(a, b, 192, 268, 305, 321, 320, 5);
foundBlue := FindColorTolerance(a, b, 16776960, 369, 285, 458, 315, 5);
if (foundGreen)and(foundRed)and(foundBlue) then
begin
Result:= True;
writeln('we are in trade screen 2');
end else
Result := False;
end;
end;
Function FindFastRandoms: Boolean; // By WT-Fakawi.
Var
i: Integer;
Begin
For I := 1 To 10 Do
Begin
Case I Of
1: If FindDead Then
Result := True;
2: If FindMod Then
Result := True;
3: If FindMime Then
Result := True;
4: If FindMaze Then
Result := True;
5: If FindQuiz Then
Result := True;
6: If FindDemon Then
Result := True;
7: Begin
If NoGameTab Then
Begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout;
Exit;
End;
End;
8 : If RC Then
Result := True;
9 : If FindFight Then
Begin
Result := True;
RunTo('N', True);
End;
10: If FindTalk Then
Result := True;
End;
Wait(1);
End;
End;
procedure AntiRandoms; //taken nearly directly of The Claw's VWM
begin
FindTalk;
FindNormalRandoms;
FindFastRandoms;
FindLamp('smithing');
SolvePinball;
if FindFight then
begin
RunTo('N', True);
Wait(15000 + random(5000));
RunBack;
end;
end;
Procedure NoBan;
var
NBan: Integer;
begin
NBan:= 1+Random(10);
case NBan of
1: HoverSkill('mining', False);
2: MMouse(0, 0, 500, 300);
3: PickUpMouse;
4, 10: GameTab(1 + Random(14));
5: AlmostLogout;
6: BoredHuman;
7: HoverSkill('smithing', False);
8, 9: HoverSkill('random', False);
end;
if (NBan = 4)or(NBan = 10) then wait(1000+Random(500));
GameTab(4);
end;
Function FindLastTrade: Boolean; // this is basically Wizzup? and WT-Fakawi's
var // but used only for the last line
x, y:integer;
begin
Result := FindColorTolerance(x, y, 8388736, 30, 447, 100, 457, 5);
end;
function RMBlackList(action, who:string; lvl:integer):boolean; //by me
var
name: string;
textP: TPoint;
found:boolean;
p:integer;
begin
//getting this trader's name
if (action = 'check') then
begin
textP := TextCoords(8);
name := LowerCase(Trim(GetTextAtEx(textP.x - 2, textP.y - 2, 0, SmallChars, False, False, 0, 1,
8388736, 60, False, tr_allChars)))
ThisTrader := TrimTradeName(name);
//checking if it's an ok person
for p:=0 to TTraders - 1 do
begin
if (who = Trader[p].name) then
if (Trader[p].wlvl >= 3) then
Result := False;
end;
end;
//adding a warn to the trader
if (action = 'warn') then
begin
for p:=0 to TTraders - 1 do
begin
if (who = Trader[p].name) then
begin
Trader[p].wlvl := Trader[p].wlvl + lvl;
found := True;
result := True;
break;
end;
end;
if not found then //we gotta add him to the list
begin
SetArrayLength(Trader, TTraders + 1);
Trader[TTraders].name := who;
Trader[TTraders].wlvl := lvl;
Inc(TTraders);
end;
end;
end;
Function MyOpenTrade: Boolean; // By RMagician, (me)
var
aMark: integer;
x, y, xtra, a:integer;
begin
a:= 0;
MarkTime(aMark);
if FindLastTrade then
begin
repeat
xtra := 10*a;
FindColorTolerance(x, y, 8388736, 30, 447, 100+xtra, 457+xtra, 5);
MMouse(x, y, 53, 3);
wait(1000+Random(1000));
if IsUpTextMulti('ccept','trade','t trade') then
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
wait(2000+Random(500));
Inc(a);
until(SuperTradeScreen(1))or(TimeFromMark(aMark) >= 7000);
if SuperTradeScreen(1) then
Result := True
else
Result := False;
end else
Result := False;
end;
procedure MyAccept; //only used SuperTradeScreen isntead of tradescreen
begin
if not LoggedIn then Exit;
if (SuperTradeScreen(1)) then
begin
Mouse(264, 194, 20, 10, True);
Wait(1000 + Random(500));
end else
if (SuperTradeScreen(2)) then
begin
Mouse(228, 310, 20, 4, True);
Wait(1000 + Random(500));
end
end;
procedure MyDecline; //only used SuperTradeScreen isntead of tradescreen
begin
if not LoggedIn then Exit;
if (SuperTradeScreen(1)) then
begin
Mouse(259, 264, 20, 10, True);
Wait(1000 + Random(500));
end else
if (SuperTradeScreen(2)) then
begin
Mouse(296, 308, 20, 4, True);
Wait(1000 + Random(500));
end
end;
function CheckScam:Boolean; //by RMagician (me)
var //if false your NOT being scammed
x, y:integer;
begin
if SuperTradeScreen(1) then
Result := FindColorTolerance(x, y, 255, 330, 300, 455, 315, 5);
if SuperTradeScreen(2) then
Result := FindColorTolerance(x, y, 255, 350, 270, 475, 290, 5);
end;
procedure SayThanks;
var
j:integer;
Begin
if FindBlackChatMessage('Accepted trade') then
begin
j := Random(16);
case j of
0: TypeSend('Thanks');
1: TypeSend('Thank you');
2: TypeSend('thanks vm');
3: TypeSend('thanks man :D');
4: TypeSend('cheers');
5: TypeSend('thx');
6: TypeSend('thanks mate');
7: TypeSend('thx mate');
8: TypeSend('thx man');
9: TypeSend('thx vm');
10: TypeSend('gracias');
11: TypeSend('thank you mate');
12: TypeSend('thank you dude');
13: TypeSend('thx dude');
14: TypeSend('thx, ill see you around');
15: TypeSend('tyvm');
end;
wait (1000+Random(500));
Inc(TotalTrades);
end;
end;
procedure Talking; // will do all the necessary talking
var
buytypo, color, effect: string;
x, b: integer;
begin
if not LoggedIn then Exit;
x:= Random(10);
if(Players[CurrentPlayer].Booleans[0]) then
begin
if (x > 3) then
begin
buytypo := 'buying';
end else
if (x <= 3)and(x >= 2) then
begin
buytypo := 'buyin';
end else
if (x < 2) then
buytypo := 'bying';
end else
begin
if (x > 3) then
begin
buytypo := 'selling';
end else
if (x <= 3)and(x >= 2) then
begin
buytypo := 'seling';
end else
if (x < 2) then
buytypo := 'sellin';
end;
theMessage[CurrentPlayer].buytxt := buytypo;
if not LoggedIn then Exit;
if useEffect = True then
begin
x := random(12)+1;
case x of
1:color := 'flash1:';
2:color := 'flash2:';
3:color := 'flash3:';
4:color := 'glow1:';
5:color := 'glow3:';
6:color := 'green:';
7:color := 'cyan:';
8:color := 'white:';
end;
if x <= 5 then
begin
b := Random (3)+1;
if b = 1 then
effect := 'wave2:';
end else
// begin
if x > 5 then
begin
b := Random(5)+1;
case b of
1:effect := 'shake:'
2:effect := 'wave:'
3:effect := 'wave2:'
end;
end;
// end;
end;
theMessage[CurrentPlayer].effect := color+effect;
if not LoggedIn then Exit;
x := random(10);
if (x > 2) then theMessage[CurrentPlayer].item := players[CurrentPlayer].Strings[0];
if (x = 2) then theMessage[CurrentPlayer].item := players[CurrentPlayer].Strings[1];
if (x <= 1) then theMessage[CurrentPlayer].item := players[CurrentPlayer].Strings[2];
if not LoggedIn then Exit;
x:= random(100)+1;
if x > 45 then
begin
if players[CurrentPlayer].Booleans[0] then
theMessage[CurrentPlayer].price :=', '+players[CurrentPlayer].Strings[3]+' ea'
else
theMessage[CurrentPlayer].price :=', '+players[CurrentPlayer].Strings[4]+' ea'
end else
theMessage[CurrentPlayer].price := '';
TypeSend(theMessage[CurrentPlayer].effect+theMessage[CurrentPlayer].buytxt+' '+theMessage[CurrentPlayer].item+ theMessage[CurrentPlayer].price);
end;
//this is just here for testing purposes
procedure DoFStuff;
var
GiveAmount:integer;
begin
// accept + decline + give money + add to black list
if not LoggedIn then Exit;
if isFKeyDown(1) then //accepts trade
MyAccept;
if isFKeyDown(2) then // declines trade
begin
MyDecline;
RMBlackList('warn', ThisTrader, 1);
Inc(Declined);
end;
if isFKeyDown(3) then //will offer the right amount
begin
i := Amount('trade', 1)
GiveAmount := players[0].Integers[0] * i;
Mouse (577, 230, 0, 0, False);
wait(300+Random(500));
ChooseOption('ffer-X');
wait(300+Random(300));
TypeSend(IntToStr(GiveAmount));
end;
if isFKeyDown(4) then //will add trader to blacklist, so you dont trade him anymore
RMBlackList('warn', ThisTrader, 3);
end;
procedure ScriptSetup;
begin
SetupSRL;
ClearDebug;
DeclarePlayers;
ActivateClient;
LoginPlayer;
SetLength(theMessage, HowManyPlayers);
ClearDebug;
end;
procedure PlayerSetup;
begin
SetBar('Brightness', 4);
wait(500+Random(700));
Mouse(362,492, 3, 3, True); //set trade chat to view | will update it to the srl function
wait(500+Random(100));
SetChat('friends', 2);
HighestAngle;
wait(100+Random(300));
GameTab(4);
writeln('coin amount: '+ IntToStr(CoinAmount('inv')));
writeln('you got this much coal:'+IntToStr(Amount('inv', 2)));
MarkTime(MarkStart);
end;
Procedure Proggie;
begin
if not LoggedIn then Exit;
writeln('\///////////////////////////////////////////\/');
writeln('\/ RMagician Auto-Merchant v0.7 \/');
writeln('\///////////////////////////////////////////\/');
writeln('\/ Talked: '+IntToStr(timesTalked));
writeln('\/ Trades: '+IntToStr(TotalTrades));
writeln('\/ Declined: '+IntToStr(Declined));{
writeln('\/ Avoided Scam: 48');
writeln('\/ Sold: 58, Bought: 13');
writeln('\/ Money earned: 10000');
writeln('\/ Money used: 5000');
writeln('\/ Total Money: 5000'); }
writeln('\///////////////////////////////////////////\/');
writeln('\/ Running For: '+TimeRunning);
writeln('\///////////////////////////////////////////\/');
end;
//main loop
begin
ScriptSetup;
repeat {for multiplayer}
if not LoggedIn then Break;
PlayerSetup;
repeat
if not LoggedIn then Break;
{talking}
AntiRandoms;
Talking;
Inc(TimesTalked);
if (Random(10) = 1) then NoBan; //10% chance
if not LoggedIn then Break;
{checking if someone wants to trade}
if FindLastTrade then
begin
if RMBlackList('check', '', 0) then //if he's not in black list then
begin
writeln('someone wants to trade!');
if not LoggedIn then Exit;
{trying to open the trade}
MarkTime(MarkOpen);
repeat
if MyOpenTrade then
begin
Inc(OpenTrade);
if players[CurrentPlayer].Booleans[0] then
begin
repeat
if not LoggedIn then break;
if SuperTradeScreen(1) then //make sure we are still in trade
begin
writeln('in trade screen 1');
wait(1000+Random(500));
//check for items/ore
////ore - tell them to note it, Deny, add 1 to blacklist
////not ore -check amount in 1st slot, check if coal
//////coal - give money, move to accept, check scam
//////not coal - add 1 to black list, say coal only, Deny
////////scam - add 3 to black list, Deny
////////no scam - accept
DoFStuff;//for testing purposes
end else
if SuperTradeScreen(2) then
begin
writeln('in trade screen 2');
wait(1000+Random(500));
//check scam
////Scam - add 3 to BlackList, Deny
////no scam - accept, Inc(Trades)
DoFStuff; //for testing purposes
end else
break;
until(False) //this is NOT an infinite loop
wait(1000+Random(500));
SayThanks;
//check how much money they have
////if money < 100*coal price stop buying, change the boolean to False, change player
{ end else
// begin --> not needed, but helps me stay sane
repeat
if not LoggedIn then break;
if SuperTradeScreen(1) then //make sure we are still in trade
begin
writeln('in trade screen 1');
wait(Random(1500));
//Offer all 2nd inv slot
//wait for money, max 30 secs
//check if enought money, if not
//reduce coal amount. Trunc(money/CoalSellPrice)
//wait 7
//check for scam
//if no scam accept
end else
//begin
if SuperTradeScreen(2) then
begin
writeln('in trade screen 2');
wait(1000+Random(500));
//if no scam accept
end else
break;
//end
until(False) //this is NOT an infinite loop
wait(1000+Random(500));
SayThanks;
if coal < 100 price start buying, change player
//end;
}end else
writeln('couldnt open trade');
until(TimeFromMark(MarkOpen)>= 7000)
end else
writeln('he is in black list, not trading');
end;
wait(1000+Random(1000));
ClearDebug;
Proggie;
until(TimeFromMark(MarkStart) >= Change*60*1000)or(not LoggedIn)
if not LoggedIn then Players[CurrentPlayer].Active:= False;
NextPlayer(Players[CurrentPlayer].Active);
until(False) {for multiplayer}
writeln('script stopping'); //actually it'll never reach this....
end.
——————————————————
<!– END TEMPLATE: formanswers –>