[Error] C:\Simba\Scripts\Essence105.simba(336:47): Syntax error at line 335
Compiling failed.
At line 335 , what problem?
This error is in Essentials 05
[Error] C:\Simba\Scripts\Essence105.simba(336:47): Syntax error at line 335
Compiling failed.
At line 335 , what problem?
This error is in Essentials 05
Hey, great script. i used to run 104 with no problems until it got a random. but i have found a couple of problems that are happening to me on the 106, not sure about anyone else.
-sometimes banks my pic
-sometimes changes my brightness setting to tier 1 randomly
-sometimes turns the sounds on randomly
-often stands in the bank right clicking the bankers and trying to select 'use bank quickly' until it gets it.
-it also used to not be able to find the bank icon when there were people standing on it but i up'ed the tolerance a bit and seemed to help it out.
there are alot of people saying that this script works perfectly though so i'm not sure what is wrong with mine.
Good work but man.
I first changed FFlag > Flag just to fix it myself, then I changed it to >P07_FFlag and it's working great![]()
After around 4 runs it wanders around near the altar and never finds its way back. Any suggestions?
Nvm it crashed again @banking
Sometimes it gets stuck in that alter room right by the shop and u have to manually fix it
I also got this when it was right next to the runeshop building: "[FATAL] terminal error, cant see bank or rune shop ending script now
Successfully executed."
00:00:04 [INFO] symbol found: bank
00:00:04 [INFO] symbol found: magic shop
00:00:04 [INFO] symbol found: magic shop
00:00:04 [INFO] Found shop
00:00:16 [INFO] Should be in the shop now
00:00:17 [INFO] symbol found: bank
00:00:17 [INFO] symbol found: magic shop
00:00:19 [INFO] Outside ess shop trying to re-enter
00:00:19 [INFO] symbol found: magic shop
00:00:26 [INFO] Color found: bank
00:00:26 [INFO] symbol found: magic shop
00:00:26 [INFO] symbol found: magic shop
00:00:26 [INFO] Found shop
00:00:33 [INFO] Should be in the shop now
00:00:34 [INFO] symbol found: bank
00:00:34 [INFO] symbol found: magic shop
00:00:37 [INFO] symbol found: bank
00:00:38 [INFO] symbol found: magic shop
00:00:41 [INFO] symbol found: bank
00:00:41 [INFO] symbol found: magic shop
00:00:45 [INFO] symbol found: bank
00:00:45 [INFO] symbol found: magic shop
00:00:48 [INFO] symbol found: bank
00:00:48 [INFO] symbol found: magic shop
00:00:52 [INFO] symbol found: bank
00:00:52 [INFO] symbol found: magic shop
00:00:56 [INFO] symbol found: bank
00:00:56 [INFO] symbol found: magic shop
00:00:59 [INFO] symbol found: bank
00:00:59 [INFO] symbol found: magic shop
00:01:01 [INFO] Outside ess shop trying to re-enter
00:01:03 [INFO] DTM found: underground
00:01:03 [INFO] Found portal on MM
00:01:06 [INFO] Correcting position
00:01:17 [INFO] DTM found: underground
00:01:17 [INFO] Found portal on MM
00:01:20 [INFO] Correcting position
00:01:30 [INFO] DTM found: underground
00:01:30 [INFO] Found portal on MM
00:01:31 [INFO] Correcting position
00:01:41 [INFO] DTM found: underground
00:01:41 [INFO] Found portal on MM
00:01:44 [INFO] Correcting position
only time it would actually go into the mine or even mine ess was when i manually did so myself...any suggestions to fix this?
setup and works great but i keep getting the firewall warning on simba and i have to press okay on simba every few mins idk why. oh just noticed sometimes when its done mining ess, it comes out of the shop and goes to the tree on the left and stands there doing nothing and it keeps saying in the debug BAnk DTM found so it thinks thats a bank? do i just change the dtm? to whatT? thanks
Last edited by Lazertag; 03-04-2013 at 06:56 AM.
Error: Exception: Access violation at line 78
The following DTMs were not freed: [0, 1, 2, 3, SRL - Lamp bitmap, 5, 6, 7, 8, 9]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap, SRL - Options Bitmap, 5]
something with smart graphics
Simba Code:{$DEFINE SMART_GRAPHICS}
{*
Smart Grahpics
==============
The Smart Grahpics include contains functions that will paint graphics on to the
SMART screen. Used to make scripts look nicer and sometimes to display
progress reports. Also used as a useful debugging tool. This is for Simba 0.99 and above.
*}
var
SMART_Canvas: TMufasaBitmap;
SMART_DebugSetup, SMART_Reset: Boolean;
{*
Authors: Coh3n, Brandon.
Declares everything needed for setting up SmartDebug.
There is no need to call this in scripts.
*}
procedure SMART_SetupDebug;
begin
SmartSetDebug(True);
SMART_Canvas := TMufasaBitmap.Create;
SMART_Canvas.SetPersistentMemory(SmartDebugArray, 765, 553);
SMART_DebugSetup := true;
if not SMART_Reset then
AddOnTerminate('SMART_FreeDebug');
end;
{*
Author: Brandon.
Creates an array of specific colours for use with FastSetPixels.
*}
Function ColorsFromTPA(TPA: TPointArray; Color: Integer): TIntegerArray;
var
I, L: Integer;
begin
SetLength(Result, Length(TPA));
L:= High(TPA);
For I:= 0 To L Do
Result[I]:= Color;
end;
{*
Authors: Coh3n, Brandon.
Clears an Area of the canvas Specified by the box.
*}
procedure SMART_ClearCanvasArea(Area: TBox);
{$IFDEF SMART}
begin
if (not SMART_DebugSetup) then
SMART_SetupDebug;
SMART_Canvas.Rectangle(Area, 0);
{$ELSE}
begin
{$ENDIF}
end;
{*
Author: Coh3n, Brandon.
Clears the entire Smart Canvas.
*}
procedure SMART_ClearCanvas;
begin
if (not SMART_DebugSetup) then
SMART_SetupDebug;
If (SMART_CANVAS.TransparentColorSet) then
SMART_CANVAS.FastDrawClear(SMART_CANVAS.GetTransparentColor)
else
SMART_CANVAS.FastDrawClear(0);
end;
{*
Author: Mormanman.
Clears the MainScreen of Smart.
*}
procedure SMART_ClearMS;
begin
SMART_ClearCanvasArea(IntToBox(MSBox.X1 + SRL_NAVBAR_INGAME_X,
MSBox.Y1 + SRL_NAVBAR_INGAME_Y, MSBox.X2, MSBox.Y2 + SRL_NAVBAR_INGAME_Y));
end;
{*
Authors: Sir R. Magician, Brandon.
Draws a TPA with a specified Colour onto Smart's Canvas.
Clears the Canvas first if Clear is set to true.
*}
procedure SMART_DrawDotsEx(Clear: boolean; Pixels: TPointArray; Color: TColor);
{$IFDEF SMART}
var
P: TPointArray;
begin
if (not SMART_DebugSetup) then
SMART_SetupDebug;
if Clear then SMART_ClearCanvas;
P := CopyTPA(Pixels);
OffsetTPA(P, Point(SRL_NAVBAR_INGAME_X, SRL_NAVBAR_INGAME_Y));
SMART_Canvas.DrawTPA(P, Color);
{$ELSE}
begin
{$ENDIF}
end;
{*
Authors: Sir R. Magician, mormanman, Brandon.
Draws a 2-Dimensional Array of Pixels on Smart.
Clears the Canvas first if Set to True.
*}
procedure SMART_DrawDotsMulti(Clear: boolean; pixels : T2DPointArray);
{$IFDEF SMART}
var
h, color : integer;
begin
if (not SMART_DebugSetup) then
SMART_SetupDebug;
if Clear then SMART_ClearCanvas;
for h := 0 to High(pixels) do
begin
color := h div 10 + h mod 10;
case color of
0 : color := clWhite;
1 : color := clYellow;
2 : color := clBlue;
3 : color := clLime;
4 : color := 26367;//orange
5 : color := clPurple;
6 : color := clAqua;
7 : color := clFuchsia;
8 : color := clGreen;
9 : color := clRed;
end;
SMART_DrawDotsEx(False, pixels[h], color);
end;
{$ELSE}
begin
{$ENDIF}
end;
{*
Author: mormonman.
Draws the box of each TPA in the ATPA and write the index number in the top
left corner and a cross at the point found by MiddleTPA.
*}
procedure SMART_DebugATPA(Clear: Boolean; ATPA: T2DPointArray);
{$IFDEF SMART}
var
i, h, len: Integer;
B: TBox;
MP: TPoint;
TPA: TPointArray;
Points: T2DPointArray;
begin
len := Length(ATPA);
if (len < 1) then
Exit;
SetLength(Points, len);
for i := 0 to High(ATPA) do
begin
B := GetTPABounds(ATPA[i]);
len := Length(ATPA[i]);
if (len > 0) then
begin
TPA := LoadTextTPA(ToStr(i), SmallChars, h);
OffsetTPA(TPA, Point(B.X1+1, B.Y1+1));
end;
CombineTPAWrap(FindTPAEdges(TPAFromBox(B)), TPA, Points[i]);
MP := MiddleTPA(ATPA[i]);
TPA := [Point(MP.x-1, MP.y), Point(MP.x+1, MP.y), Point(MP.x, MP.y-1),
Point(MP.x, MP.y+1), Point(MP.x-2, MP.y), Point(MP.x, MP.y),
Point(MP.x+2, MP.y), Point(MP.x, MP.y-2), Point(MP.x, MP.y+2)];
CombineTPAWrap(Points[i], TPA, Points[i]);
end;
SMART_DrawDotsMulti(Clear, Points);
{$ELSE}
begin
{$ENDIF}
end;
{*
Author: mormonman
Draws the TPA bounds and puts a cross at the point created by MiddleTPA.
*}
procedure SMART_DebugTPA(Clear: Boolean; TPA: TPointArray);
begin
SMART_DebugATPA(Clear, [TPA]);
end;
{*
Author: Sir R. Magician
Clears the SMART canvas, then draws a red TPA (Dots).
*}
procedure SMART_DrawDots(Dots: TPointArray);
begin
SMART_DrawDotsEx(True, Dots, clRed);
end;
{*
Author: Coh3n
Draws a single colored dot (Color) at the set point (Point) on the SMART canvas.
Will clear the SMART canvas if set to do so (Clear).
*}
procedure SMART_DrawDot(Clear: Boolean; Point: TPoint; Color: TColor);
begin
SMART_DrawDotsEx(Clear, [Point], Color);
end;
{*
Authors: mormonman, Brandon.
Draws an array of boxes onto the SMART canvas. Set Color to -1 for it to use
different colors (like in SMART_DrawDotsMulti).
Fill will fill each box with a color.
*}
procedure SMART_DrawBoxes(Clear, Fill: Boolean; TBA: TBoxArray; Color: Integer);
{$IFDEF SMART}
var
i, colour, temp: Integer;
Box: TBox;
TPAEdges: TPointArray;
begin
if (not SMART_DebugSetup) then
SMART_SetupDebug;
if Clear then SMART_ClearCanvas;
if (Length(TBA) < 1) then Exit;
for i := 0 to High(TBA) do
begin
Box := TBA[i];
if (Color > 0) then
begin
Temp := color;
end else
begin
colour := i div 5 + i mod 5;
case colour of
0 : Temp := clWhite;
1 : Temp := clYellow;
2 : Temp := clBlue;
3 : Temp := clLime;
4 : Temp := clGreen;
end;
end;
if Fill then
begin
Box := IntToBox(Min(TBA[i].X1, TBA[i].X2), Min(TBA[i].Y1, TBA[i].Y2) + SRL_NAVBAR_INGAME_Y,
Max(TBA[i].X1, TBA[i].X2), Max(TBA[i].Y1, TBA[i].Y2) + SRL_NAVBAR_INGAME_Y);
if (Box.X1 < 0) then Box.X1 := 0;
if (Box.X2 < 0) then Box.X2 := 0;
if (Box.Y1 < 0) then Box.Y1 := 0;
if (Box.Y2 < 0) then Box.Y2 := 0;
SMART_Canvas.Rectangle(Box, Temp)
end else
begin
FindTPAEdgesWrap(TPAFromBox(Box), TPAEdges);
SMART_DrawDotsEx(False, TPAEdges, Temp);
end;
end;
{$ELSE}
begin
{$ENDIF}
end;
{*
Author: mormonman, Brandon.
Draws a single colored (color) box (Box) on the SMART canvas. Will clear the
canvas if set to do so (Clear).
Fill will fill in the box with the specified Color.
*}
procedure SMART_DrawBoxEx(Clear, Fill: boolean; Box: TBox; color: TColor);
begin
SMART_DrawBoxes(Clear, Fill, [Box], color);
end;
{*
Author: mormonman
Clears the SMART canvas, then draws a single red box, specified by 'Box'.
*}
procedure SMART_DrawBox(Box: TBox);
begin
SMART_DrawBoxEx(True, False, Box, clRed);
end;
{*
Author: Coh3n
Draws a box on the RS mainscreen, even if the coordinates are outside client
boundaries.
Fill will Fill in the box with the specified Color.
*}
procedure SMART_DrawBoxMS(Clear, Fill: Boolean; Box: TBox; Color: TColor);
begin
if (Box.X1 < MSX1) then Box.X1 := MSX1;
if (Box.Y1 < MSY1) then Box.Y1 := MSY1;
if (Box.X2 > MSX2) then Box.X2 := MSX2;
if (Box.Y2 > MSY2) then Box.Y2 := MSY2;
SMART_DrawBoxEx(Clear, Fill, Box, Color);
end;
{*
Author: mormonman
Draws a line a set color (Color) from point 1 (TP1) to point 2 (TP2). Will
clear the SMART canvas if set to do so (Clear).
*}
procedure SMART_DrawLine(Clear: Boolean; TP1, TP2: TPoint; Color: TColor);
var
TempMufasa: TMufasaBitmap;
TempTBitmap: TBitmap;
begin
{$IFDEF SMART}
if (not SMART_DebugSetup) then
SMART_SetupDebug;
if (Clear) then
SMART_ClearCanvas;
TempTBitmap := TBitmap.Create;
TempTBitmap.Width := Max(1, iAbs(TP2.X - TP1.X));
TempTBitmap.Height := Max(1, iAbs(TP2.Y - TP1.Y));
TempTBitmap.Canvas.Pen.COLOR := Color;
TempTBitmap.Canvas.moveto(0, 0);
TempTBitmap.Canvas.LineTo(iAbs(TP2.X - TP1.X), iAbs(TP2.Y - TP1.Y));
TempMufasa := TMufasaBitmap.Create;
TempMufasa.LoadFromTBitmap(TempTBitmap);
if (SMART_Canvas.TransparentColorSet) then
TempMufasa.SetTransparentColor(SMART_Canvas.GetTransparentColor);
FastDrawTransparent(Min(TP1.X, TP2.X), Min(TP1.Y, TP2.Y) + SRL_NAVBAR_INGAME_Y, TempMufasa.Index, SMART_Canvas.Index);
TempMufasa.Free;
TempTBitmap.Free;
{$ENDIF}
end;
{*
Author: mormonman
Draws an ellipse on the SMART canvas defined by 'Center', 'XRadius', and
'YRadius'. If 'Fill' is true it will fill the ellipse, otherwise it draws just
the border. Will clear the SMART canvas if set to do so (Clear).
*}
procedure SMART_DrawEllipse(Clear: Boolean; Center: TPoint; XRadius, YRadius: Integer; Fill: Boolean; Color: TColor);
{$IFDEF SMART}
var
TPA: TPointArray;
TempMufasa: TMufasaBitmap;
TempTBitmap: TBitmap;
begin
if Fill then
begin
if (not SMART_DebugSetup) then
SMART_SetupDebug;
if Clear then
SMART_ClearCanvas;
TempTBitmap := TBitmap.Create;
TempTBitmap.Canvas.Brush.COLOR := Color;
TempTBitmap.Width := (XRadius * 2);
TempTBitmap.Height := (YRadius * 2);
TempTBitmap.Canvas.Ellipse(Center.X - XRadius, Center.Y - YRadius, Center.X + XRadius, Center.Y + YRadius);
TempMufasa := TMufasaBitmap.Create;
TempMufasa.LoadFromTBitmap(TempTBitmap);
if (SMART_Canvas.TransparentColorSet) then
TempMufasa.SetTransparentColor(SMART_Canvas.GetTransparentColor);
FastDrawTransparent(0, SRL_NAVBAR_INGAME_Y, TempMufasa.Index, SMART_Canvas.Index);
TempMufasa.Free;
TempTBitmap.Free;
end else
begin
TPA := TPAFromEllipse(Center.X, Center.Y, XRadius, YRadius);
if (Length(TPA) >= 1) then
SMART_DrawDotsEx(Clear, TPA, Color);
end;
{$ELSE}
begin
{$ENDIF}
end;
{*
Author: mormonman
Draws a circle on the SMART canvas defined by 'Center' and 'Radius'. If 'Fill'
is true it will fill the circle, otherwise it draws just the border. Will
clear the SMART canvas if set to do so (Clear).
*}
procedure SMART_DrawCircle(Clear: Boolean; Center: TPoint; Radius: Integer; Fill: Boolean; Color: TColor);
begin
SMART_DrawEllipse(Clear, Center, Radius, Radius, Fill, Color);
end;
{*
Author: mormonman
Draws an array of polygons on the SMART canvas in the set color. Will clear the
SMART canvas if set to do so (Clear).
*}
procedure SMART_DrawPolygons(Clear: Boolean; Polygons: T2DPointArray; color: TColor);
{$IFDEF SMART8}
var
i, h, Hi: Integer;
begin
if (Clear) then
SMART_ClearCanvas;
if (Length(Polygons) < 1) then
Exit;
for h := 0 to High(Polygons) do
begin
Hi := High(Polygons[h]);
if (Hi < 2) then Exit;
for i := 0 to Hi - 1 do
SMART_DrawLine(False, Polygons[h][i], Polygons[h][i+1], color);
SMART_DrawLine(False, Polygons[h][Hi], Polygons[h][0], color);
end;
{$ELSE}
begin
{$ENDIF}
end;
{*
Authors: Flight & Coh3n
Draws text on the SMART canvas. Used mainly for progress reports. Parameters
are as follows:
* Clear: Clear the SMART canvas before drawing
* Shadow: if set to true, will add a shadow to the text
* TSA: the string array of what to be printed; each element is a different line
* Placement: the point to start the text drawing
* Font: the font to use (see Simba/Fonts/)
* Colour: the color of the font
*}
procedure SMART_DrawTextMulti(Clear, Shadow: Boolean; TSA: TStringArray; Placement: TPoint; Font: string; Colour: TColor);
var
i, h, TPH: Integer;
TTP, SArr: TPointArray;
begin
if (not SMART_DebugSetup) then
SMART_SetupDebug;
if (Clear) then
SMART_ClearCanvas;
TPH := High(TSA);
for i := 0 to TPH do
begin
TTP := LoadTextTPA(TSA[i], Font, h);
OffsetTPA(TTP, Point(Placement.x, Placement.y+(i*h)));
SMART_DrawDotsEx(False, TTP, Colour);
if Shadow then
begin
SArr := CopyTPA(TTP);
OffsetTPA(SArr, Point(1, 1));
ClearTPAFromTPAWrap(SArr, TTP, SArr);
SMART_DrawDotsEx(False, SArr, 65536);
end;
end;
end;
{*
Author: Coh3n
Draws shadowed line of text on the SMART canvas. Parameters are as follows:
* Clear: Clear the SMART canvas before drawing
* x, y: the coords of where to place the text
* font: the font to use (see Simba/Fonts/)
* Text: the text to draw to the SMART canvas
* Colour: the color of the font
*}
procedure SMART_DrawTextEx(Clear: Boolean; x, y: Integer; font, Text: string; Color: TColor);
begin
SMART_DrawTextMulti(Clear, true, [Text], Point(x, y), font, Color);
end;
{*
Author: Coh3n
Same as SMART_DrawTextEx, except clears the canvas before drawing.
*}
procedure SMART_DrawText(x, y: Integer; font, Text: string; Color: TColor);
begin
SMART_DrawTextEx(False, x, y, font, Text, Color);
end;
{*
Author: Coh3n
Draws a bitmap (Bitmap) on the SMART canvas at given coordinates (Placement).
Will clear the canvas beforehand if specified to do so (Clear).
*}
procedure SMART_DrawBitmap(Clear: Boolean; Bitmap: Integer; Placement: TPoint);
begin
if (not SMART_DebugSetup) then
SMART_SetupDebug;
if (Clear) then
SMART_ClearCanvas;
FastDrawTransparent(Placement.X, Placement.Y + SRL_NAVBAR_INGAME_Y, Bitmap, SMART_Canvas.Index);
end;
{*
Authors: Coh3n, Brandon.
Frees the SMART_Canvas bitmap.
*}
procedure SMART_FreeDebug;
begin
try
if (SMART_DebugSetup) then
begin
SMART_Canvas.ResetPersistentMemory;
SMART_Canvas.Free;
SMART_DebugSetup := False;
SMART_Reset := True;
end;
except
Writeln('Failed to free SMART_Canvas bitmap: '+ExceptionToString(ExceptionType, ExceptionParam));
end;
end;
any ideas?
[Hint] C:\Simba\Scripts\106Essence.simba(450:3): Variable 'MTPA' never used at line 449
[Hint] C:\Simba\Scripts\106Essence.simba(451:3): Variable 'I' never used at line 450
[Hint] C:\Simba\Scripts\106Essence.simba(605:3): Variable 'TIMESTR' never used at line 604
Compiled successfully in 374 ms.
SRL Compiled in 0 msec
** Failed To Grab Smart Parameters **
** Please check your internet connection/firewall **
Successfully executed.
any idea?
this is probably stupid but why is it loading eoc runescape on smart8?
Any help? Exception in Script: Operator expected at line 453, column 93 in file "C:\Simba\Includes\SRL\SRL\core\gametab.simba" If ever works proberly wont compile. Can somebody add me on skype and try to show me how to actually compile and use things? Tenndex
Hello. I assume I fixed the anti-leech but encountered this issue.
Error: Exception: Access violation at line 78
The following DTMs were not freed: [0, 1, 2, 3, SRL - Lamp bitmap, 5, 6, 7, 8, 9]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap, SRL - Options Bitmap, 5]
if someone has a fix, please feel free to add me. - Nation.collapse. I am not a leecher, I actually script in PB just now in pascal yet
EDIT NVM: FIXED IT
Still rather buggy, it sometimes doesnt detect the mine at first. I assume its because of all the color
Last edited by Nations_collapse; 03-04-2013 at 11:30 AM.
almost 20 minutes in and script is working perfect! Thanks so much, been waiting for a good essence banking script for a while
Keep up the good work!
I want a failsafe that if all the if DTMs return false/is not correct it will logout. Found my man wandering in Lumb cellar on 1.04. On 1.05 he was wandering in the church south of mageshop.
Looks like it is added.
Last edited by uaexed; 03-04-2013 at 11:49 AM.
Just a reminder to everyone who can't get the script working, make sure you follow each and every instruction given on the very first post.. If you do it all properly it will work, if it's not working you obviously didn't follow the instructions correctly :3
Great work on the SMART update! Now I can do other stuff on my computer while botting![]()
Please help!, I will pay 50k rsgp to who ever can help me first! My problem is that when i go run instead of opening up 07 runescape it opens EoC runescape. How can i fix this? If you reply within 15minutes then i will give you 50k rsgp
Please follow the guides in the first page.
Go to guide where they teach how to set up smart for 07.
You have to replace smartparams.simba in your simba folder to load 07 worlds.
Just follow they guides step by step and you get it working. Trust me. I have allready posted one of my progress reports.
Stuck at bank with empty inv. Bump
script Version 1.05 Starting
Error: Exception: Access violation at line 78
The following DTMs were not freed: [0, 1, 2, 3, SRL - Lamp bitmap, 5, 6, 7, 8, 9]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap, SRL - Options Bitmap, 5]
help me!
Very nice script mate! Running it in smart8, but it has a few problems. Banking doesn't work for me though I restart the script and client. [FATAL] terminal error, cant see bank or rune shop ending script now
Successfully executed.
Sometimes I find it wandering at altar and in some nearby houses. If there's ppl closing magic shop's doors, script goes crazy and walks to altar again or just stops. Once I found script wandering in house in front of bank. Overall, very nice script, I've ran it for +5000 essences and I'm very happy![]()
There are currently 1 users browsing this thread. (0 members and 1 guests)