Author Topic: First script - Simple item mover  (Read 32385 times)

0 Members and 1 Guest are viewing this topic.

Offline CervezaTopic starter

  • Hacksimus Maximus
  • Scripthack
  • *
  • Posts: 5857
  • Activity:
    0%
  • Reputation Power: 80
  • Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!
  • Gender: Male
  • So... Hows that Hopey-Changey thing working out?
  • Respect: +861
  • Referrals: 11
    • View Profile
First script - Simple item mover
« on: October 13, 2010, 05:19:05 PM »
+2
Ok, here's what I want it to do....

Display a gump asking me to target the source container
I click on OK and a target cursor comes up
I click on the source container and it opens
Display a gump asking me to target the destination container
I click on OK and a target cursor comes up
I click on the destination container and it opens
A gump comes up with Yes/No and asks if I want to specify item type
If YES then a target cursor pops up and I click on the type in the source container, it then moves all of that type from source to destination
If NO then it begins moving everything from source to destination
Once complete it asks if I want to go again
If YES go to start
If NO end

So far I have

Code: [Select]
:(
XXXXXXXXXX________________________________________] 20%
I've forgotten more about this game then most people will ever know.
Thank you for controlling your children. Their manners reflect your love for them.
Give a man a fish and you feed him for a day. Don't teach a man to fish, and you feed yourself. He's a grown man. Fishing's not that hard.

Offline Khameleon

  • Script Tester - Team Leader
  • Elite
  • *
  • *
  • Posts: 2574
  • Activity:
    0%
  • Reputation Power: 30
  • Khameleon is a rising star!Khameleon is a rising star!Khameleon is a rising star!Khameleon is a rising star!Khameleon is a rising star!Khameleon is a rising star!
  • Gender: Male
  • Respect: +465
  • Referrals: 0
    • View Profile
Re: First script - Simple item mover
« Reply #1 on: October 13, 2010, 05:26:30 PM »
0
damn.. you got farther then me..

Offline Endless Night

  • Global Moderator
  • *
  • *
  • Posts: 5467
  • Activity:
    0%
  • Reputation Power: 62
  • Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!
  • Respect: +786
  • Referrals: 1
    • View Profile
Re: First script - Simple item mover
« Reply #2 on: October 13, 2010, 07:36:47 PM »
+2
Well not quiet exactly what you asked for .. moves itemtype from whereever to destination bag.  

Took me quiet awhile...

EDIT: Code deleted .. ok ok i realised that was way to extensive for starting out .. lets do it section by section.. see post below...
« Last Edit: October 14, 2010, 04:45:36 AM by Endless Night »
Outlaw Josey Wales - "Manwink, A Long Gone Scripty, and Endless are always teasing us with their private sections lol. What there realy saying is scripters rule and users drool."
Briza - "Your a living breathing vortex of usefulness."

Offline CervezaTopic starter

  • Hacksimus Maximus
  • Scripthack
  • *
  • Posts: 5857
  • Activity:
    0%
  • Reputation Power: 80
  • Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!
  • Gender: Male
  • So... Hows that Hopey-Changey thing working out?
  • Respect: +861
  • Referrals: 11
    • View Profile
Re: First script - Simple item mover
« Reply #3 on: October 14, 2010, 02:50:42 AM »
+2
How do you get item type?

OK, lets try this.... break this down line by line in OEUO

Display a gump asking me to target the source container

How do I do that? Are popups even possible??
« Last Edit: October 14, 2010, 03:11:40 AM by Cerveza »
XXXXXXXXXX________________________________________] 20%
I've forgotten more about this game then most people will ever know.
Thank you for controlling your children. Their manners reflect your love for them.
Give a man a fish and you feed him for a day. Don't teach a man to fish, and you feed yourself. He's a grown man. Fishing's not that hard.

Offline Endless Night

  • Global Moderator
  • *
  • *
  • Posts: 5467
  • Activity:
    0%
  • Reputation Power: 62
  • Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!
  • Respect: +786
  • Referrals: 1
    • View Profile
Re: First script - Simple item mover
« Reply #4 on: October 14, 2010, 04:30:01 AM »
+2
How do you get item type?
Same way you did in EUO .. target item. get item id .. finditem.. get item type.

Display a gump asking me to target the source container
How do I do that? Are popups even possible??
popups are possible im not sure how yet so cuase im starting out same as you i used msg overhead of character..

LUA --   = EUO ;  .. ie it marks as a comment.


Step 1 code below
Display a gump asking me to target the source container  (EXMSg not gump for now)
I click on OK and a target cursor comes up
I click on the source container and it opens

Code: [Select]
-- step 1 target and open bag
UO.LTargetKind = 1 -- object
UO.ExMsg(UO.CharID  ,'Target the Source Containor:')  -- Message above character
UO.TargCurs = true    -- make a target cursor
while UO.TargCurs == true do  wait(10) end     -- wait until something is clicked (ie notarget cursor)
nSourceBag = UO.LTargetID   -- set the bagid = the object clicked
UO.LObjectID = nSourceBag     -- set last object to the object clicked
UO.Macro(17,0) -- openbag ( invoke macro use last object which hopefully is a bag inwhich case opens bag )
« Last Edit: October 14, 2010, 08:28:04 AM by Endless Night »
Outlaw Josey Wales - "Manwink, A Long Gone Scripty, and Endless are always teasing us with their private sections lol. What there realy saying is scripters rule and users drool."
Briza - "Your a living breathing vortex of usefulness."

Offline Endless Night

  • Global Moderator
  • *
  • *
  • Posts: 5467
  • Activity:
    0%
  • Reputation Power: 62
  • Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!
  • Respect: +786
  • Referrals: 1
    • View Profile
Re: First script - Simple item mover
« Reply #5 on: October 14, 2010, 04:57:10 AM »
+2
Now becuase step 2 is the same as step 1 .. lets turn step 1 into a Function (Sub) with 1 parameters (passed varialbes) of popup message and 1 returned variable of bagid

Step 1
Display a gump asking me to target the source container  (EXMSg not gump for now)
I click on OK and a target cursor comes up
I click on the source container and it opens

Step 2
Display a gump asking me to target the destination container
I click on OK and a target cursor comes up
I click on the destination container and it opens

Note In LUA all function (sub) declarations must be at the top of the script.  You declare a function in this format
function Functionaname ( passedvariablenames spereated by commas )   
Inside the function issue a return <returned variables seperated by comma's thier can be as many as you want>

Code: [Select]
function TargetOpenBag(sMessage)
  UO.LTargetKind = 1 -- object
  UO.ExMsg(UO.CharID  , sMessage)  -- Message above character
  UO.TargCurs = true    -- make a target cursor
  while UO.TargCurs == true do  wait(10) end     -- wait until something is clicked (ie notarget cursor)
  UO.LObjectID = UO.LTargetID    -- set last object to the object clicked
  UO.Macro(17,0) -- openbag ( invoke macro use last object which hopefully is a bag inwhich case opens bag )
  return  UO.LTargetID  -- set the return value .. the bagid clicked
end


Now to call the function we dont have to use a gosub or otherstamtne.. once the function is declared to access it we use its name just like any other command.

TOretrive the returned value/s of a function you do it on the line calling the function
ie   <returned values seperated by commas> = functionname(function parameters)

so new code becomes

Code: [Select]
-----------------------------
-- Defined Functions (subs)
-----------------------------
function TargetOpenBag(sMessage)
  UO.LTargetKind = 1 -- object
  UO.ExMsg(UO.CharID  , sMessage)  -- Message above character
  UO.TargCurs = true    -- make a target cursor
  while UO.TargCurs == true do  wait(10) end     -- wait until something is clicked (ie notarget cursor)
  UO.LObjectID = UO.LTargetID    -- set last object to the object clicked
  UO.Macro(17,0) -- openbag ( invoke macro use last object which hopefully is a bag inwhich case opens bag )
  return  UO.LTargetID  -- set the return value .. the bagid clicked
end

-----------------------------
-- Script Starts Below
-----------------------------
local nSourceBag = TargetOpenBag('Please Target The Source Bag:')           -- step 1
local nDestinationBag = TargetOpenBag('Please Target The Destination Bag:') -- step 2

NOTE the declaring local of the nsourcebag and ndestinationbag  .. i dont want them to be global variables the default.
« Last Edit: October 14, 2010, 05:01:39 AM by Endless Night »
Outlaw Josey Wales - "Manwink, A Long Gone Scripty, and Endless are always teasing us with their private sections lol. What there realy saying is scripters rule and users drool."
Briza - "Your a living breathing vortex of usefulness."

Offline CervezaTopic starter

  • Hacksimus Maximus
  • Scripthack
  • *
  • Posts: 5857
  • Activity:
    0%
  • Reputation Power: 80
  • Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!
  • Gender: Male
  • So... Hows that Hopey-Changey thing working out?
  • Respect: +861
  • Referrals: 11
    • View Profile
Re: First script - Simple item mover
« Reply #6 on: October 14, 2010, 05:00:30 AM »
+2
Hey I was going to do that second part LOL....

So in OEUO everything is loaded into memory, then executed... should be fast...
XXXXXXXXXX________________________________________] 20%
I've forgotten more about this game then most people will ever know.
Thank you for controlling your children. Their manners reflect your love for them.
Give a man a fish and you feed him for a day. Don't teach a man to fish, and you feed yourself. He's a grown man. Fishing's not that hard.

Offline Endless Night

  • Global Moderator
  • *
  • *
  • Posts: 5467
  • Activity:
    0%
  • Reputation Power: 62
  • Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!
  • Respect: +786
  • Referrals: 1
    • View Profile
Re: First script - Simple item mover
« Reply #7 on: October 14, 2010, 05:03:13 AM »
+2
OpenEUO is fast... making sense so far...??
Outlaw Josey Wales - "Manwink, A Long Gone Scripty, and Endless are always teasing us with their private sections lol. What there realy saying is scripters rule and users drool."
Briza - "Your a living breathing vortex of usefulness."

Offline Paulonius

  • Elite
  • *
  • *
  • Posts: 2040
  • Activity:
    0%
  • Reputation Power: 29
  • Paulonius is on the verge of being accepted.Paulonius is on the verge of being accepted.Paulonius is on the verge of being accepted.Paulonius is on the verge of being accepted.Paulonius is on the verge of being accepted.
  • Respect: +304
  • Referrals: 1
    • View Profile
Re: First script - Simple item mover
« Reply #8 on: October 14, 2010, 05:03:40 AM »
+2
Okay,how about an option for picking things up off of the ground?
This coin declares Caesar is "Dictator for Life." He did serve as Dictator for the remainder of his life, but his life would end only a few weeks after this issue. For Caesar to put his image on coins and essentially declare himself king was too much for Brutus and his republican allies.

"If everything seems under control, you're not going fast enough'
-Mario Andretti

"If everyone is thinking alike, someone isn't thinking."
- General George Patton Jr

Offline CervezaTopic starter

  • Hacksimus Maximus
  • Scripthack
  • *
  • Posts: 5857
  • Activity:
    0%
  • Reputation Power: 80
  • Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!
  • Gender: Male
  • So... Hows that Hopey-Changey thing working out?
  • Respect: +861
  • Referrals: 11
    • View Profile
Re: First script - Simple item mover
« Reply #9 on: October 14, 2010, 05:08:28 AM »
+2
Hey Paul go get your own post LOL.

I still have to find stuff in the source and move it to the destination....
XXXXXXXXXX________________________________________] 20%
I've forgotten more about this game then most people will ever know.
Thank you for controlling your children. Their manners reflect your love for them.
Give a man a fish and you feed him for a day. Don't teach a man to fish, and you feed yourself. He's a grown man. Fishing's not that hard.

Offline Paulonius

  • Elite
  • *
  • *
  • Posts: 2040
  • Activity:
    0%
  • Reputation Power: 29
  • Paulonius is on the verge of being accepted.Paulonius is on the verge of being accepted.Paulonius is on the verge of being accepted.Paulonius is on the verge of being accepted.Paulonius is on the verge of being accepted.
  • Respect: +304
  • Referrals: 1
    • View Profile
Re: First script - Simple item mover
« Reply #10 on: October 14, 2010, 05:12:18 AM »
+2
Ha. Just trying to help, didn't mean to skip ahead.  I use an item mover I wrote a while ago constantly. Its definitely the first script I want too.
This coin declares Caesar is "Dictator for Life." He did serve as Dictator for the remainder of his life, but his life would end only a few weeks after this issue. For Caesar to put his image on coins and essentially declare himself king was too much for Brutus and his republican allies.

"If everything seems under control, you're not going fast enough'
-Mario Andretti

"If everyone is thinking alike, someone isn't thinking."
- General George Patton Jr

Offline CervezaTopic starter

  • Hacksimus Maximus
  • Scripthack
  • *
  • Posts: 5857
  • Activity:
    0%
  • Reputation Power: 80
  • Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!Cerveza is awe-inspiring!
  • Gender: Male
  • So... Hows that Hopey-Changey thing working out?
  • Respect: +861
  • Referrals: 11
    • View Profile
Re: First script - Simple item mover
« Reply #11 on: October 14, 2010, 05:16:46 AM »
+2
XXXXXXXXXX________________________________________] 20%
I've forgotten more about this game then most people will ever know.
Thank you for controlling your children. Their manners reflect your love for them.
Give a man a fish and you feed him for a day. Don't teach a man to fish, and you feed yourself. He's a grown man. Fishing's not that hard.

Offline Endless Night

  • Global Moderator
  • *
  • *
  • Posts: 5467
  • Activity:
    0%
  • Reputation Power: 62
  • Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!
  • Respect: +786
  • Referrals: 1
    • View Profile
Re: First script - Simple item mover
« Reply #12 on: October 14, 2010, 06:22:43 AM »
+2
ShowMsg no longer works.. this is going to be a bit of a pita.. but some ripped code gives me this function...
Ripped from: http://www.easyuo.com/forum/viewtopic.php?p=376784#376784  
Get the function MsgBox

Code: [Select]
function msgbox(default, prompt, title, button, icon)
  -- Function By Traegon's, Link: http://www.easyuo.com/forum/viewtopic.php?p=376784#376784
  if icon == nil then icon = 2 end
  if default == true then default = 1 else default = 0 end
 
  ConfirmDialog = Obj.Create("TMessageBox")
  ConfirmDialog.Title = title
  ConfirmDialog.Button = button
  ConfirmDialog.Icon = icon
  ConfirmDialog.Default = default
  return ConfirmDialog.Show(prompt)
end

nResult = msgbox(true,"Select ITem Type: ?", "Select ItemType", 4)   -- nResult = 6 = yes   7 = no

Well i think we need a simple wrapper around his function to make it easier to use.. im gonig to define a function that calls his function

Code: [Select]
function MessageBox(sPrompt, sTitle, sType)
  if sType == 'OK'    then  return msgbox(true, sPrompt, sTitle, 0,4) end
  if sType == 'YESNO' then  return msgbox(true, sPrompt, sTitle, 4,3) end
end

going to use it like this

Code: [Select]
 MessageBox(sMessage, 'Bag Selection:', 'OK' )
  MessageBox('Select Item Type', 'Type Selection' , 'YESNO')
« Last Edit: October 14, 2010, 06:39:46 PM by Endless Night »
Outlaw Josey Wales - "Manwink, A Long Gone Scripty, and Endless are always teasing us with their private sections lol. What there realy saying is scripters rule and users drool."
Briza - "Your a living breathing vortex of usefulness."

Offline Endless Night

  • Global Moderator
  • *
  • *
  • Posts: 5467
  • Activity:
    0%
  • Reputation Power: 62
  • Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!
  • Respect: +786
  • Referrals: 1
    • View Profile
Re: First script - Simple item mover
« Reply #13 on: October 14, 2010, 06:37:38 AM »
+2
Moving on and implementing above.. script starting to grow..

Code: [Select]
-------------------------------------------------------
-- Functions (subs) - Ive ripped from others per credits
-------------------------------------------------------
function msgbox(default, prompt, title, button, icon)
  -- Function By Traegon's, Link: http://www.easyuo.com/forum/viewtopic.php?p=376784#376784
  if icon == nil then icon = 2 end
  if default == true then default = 1 else default = 0 end
  
  ConfirmDialog = Obj.Create("TMessageBox")
  ConfirmDialog.Title = title
  ConfirmDialog.Button = button
  ConfirmDialog.Icon = icon
  ConfirmDialog.Default = default
  return ConfirmDialog.Show(prompt)
endend

-----------------------------
-- My Defined Functions (subs)
-----------------------------
function MessageBox(sPrompt, sTitle, sType)
  if sType == 'OK'    then  return msgbox(true, sPrompt, sTitle, 0,4) end
  if sType == 'YESNO' then  return msgbox(true, sPrompt, sTitle, 4,3) end
end

function TargetOpenBag(sMessage)
  UO.LTargetKind = 1 -- object
  MessageBox(sMessage, 'Bag Selection:', 'OK' )  
  UO.TargCurs = true    -- make a target cursor
  while UO.TargCurs == true do  wait(10) end     -- wait until something is clicked (ie notarget cursor)
  UO.LObjectID = UO.LTargetID    -- set last object to the object clicked
  UO.Macro(17,0) -- openbag ( invoke macro use last object which hopefully is a bag inwhich case opens bag )
  return  UO.LTargetID  -- set the return value .. the bagid clicked
end

-----------------------------
-- Script Starts Below
-----------------------------
local nSourceBag = TargetOpenBag('Please Target The Source Bag:')           -- step 1
local nDestinationBag = TargetOpenBag('Please Target The Destination Bag:') -- step 2
« Last Edit: October 14, 2010, 06:44:22 PM by Endless Night »
Outlaw Josey Wales - "Manwink, A Long Gone Scripty, and Endless are always teasing us with their private sections lol. What there realy saying is scripters rule and users drool."
Briza - "Your a living breathing vortex of usefulness."

Offline Endless Night

  • Global Moderator
  • *
  • *
  • Posts: 5467
  • Activity:
    0%
  • Reputation Power: 62
  • Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!Endless Night is awe-inspiring!
  • Respect: +786
  • Referrals: 1
    • View Profile
Re: First script - Simple item mover
« Reply #14 on: October 14, 2010, 06:54:36 AM »
+2
Ok here we go

step 3
A gump comes up with Yes/No and asks if I want to specify item type
If YES then a target cursor pops up and I click on the type in the source container, it then moves all of that type from source to destination
If NO then it begins moving everything from source to destination

Code: [Select]
local nResult = MessageBox('Move Items By ItemType ?','Item Type', 'YESNO')
if nResult == 6 then
  MessageBox('Select Item Type','Item Type', 'OK')
  UO.TargCurs = true
  while UO.TargCurs == true do  wait(10) end
  -- Tricky bit Get ITem Type from UO.LTargetID
  -- move items of type x from nsource to ndestination
  else
  -- move all items from nsource to ndestination
  end


Notice thiers a bunch of bits not done .. lets call that step3b and 3c and we will come back to that.. moving on

STEP 4
Once complete it asks if I want to go again
If YES go to start
If NO end


A simple loop wrapper will surfice (note in lua after the last line of code the script ends you dont have to tell it do it just does).


Code: [Select]
repeat
  --.. prior code
  local nResult = MessageBox('Do Another Move Item ?','Move Item', 'YESNO')
until nResult == 7 -- no


Replace this section
Code: [Select]
-----------------------------
-- Script Starts Below
-----------------------------
repeat
  local nSourceBag = TargetOpenBag('Please Target The Source Bag:')           -- step 1
  local nDestinationBag = TargetOpenBag('Please Target The Destination Bag:') -- step 2
  local nResult = MessageBox('Move Items By ItemType ?','Item Type', 'YESNO')
  if nResult == 6 then
    MessageBox('Select Item Type','Item Type', 'OK')
    UO.TargCurs = true
    while UO.TargCurs == true do  wait(10) end
    -- step 3b Tricky bit Get ITem Type from UO.LTargetID  
    -- step 3c move items of type x from nsource to ndestination
  else
    -- step 3c move all items from nsource to ndestination
  end
 
  local nResult = MessageBox('Do Another Move Item ?','Move Item', 'YESNO')
until nResult == 7 -- no

Outlaw Josey Wales - "Manwink, A Long Gone Scripty, and Endless are always teasing us with their private sections lol. What there realy saying is scripters rule and users drool."
Briza - "Your a living breathing vortex of usefulness."

Tags: