Graal Forums  

Go Back   Graal Forums > Development Forums > NPC Scripting
FAQ Members List Calendar Today's Posts

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 12-23-2007, 12:06 PM
projectigi projectigi is offline
Registered User
Join Date: Jan 2004
Posts: 403
projectigi is an unknown quantity at this point
Sheep's little Guide on using GS2 in non-standard ways

well atleast i have never seen anynone using it like this

adding functions to a TStaticVar without using a class

so that was the basis of all the other stuff ;D
PHP Code:
//#CLIENTSIDE
function onCreated()
  {
  
this.test = new TStaticVar();
  
this.test.bah = function()
    {
    
player.chat "foobar";
    };
  
this.test.bah();
  } 

Last edited by projectigi; 12-23-2007 at 12:55 PM..
Reply With Quote
  #2  
Old 12-23-2007, 12:06 PM
projectigi projectigi is offline
Registered User
Join Date: Jan 2004
Posts: 403
projectigi is an unknown quantity at this point
adding a function to another NPC:
(note, -HolyAddHere is an existing weapon that i have got on my char)

PHP Code:
//#CLIENTSIDE
function onCreated()
  {
  (
"-HolyAddHere").onTestingTrigger = function()
    {
    
player.chat "b";
    };
  (
"-HolyAddHere").trigger"TestingTrigger""" );
  } 
another test:

<some npcs script>
PHP Code:
//#CLIENTSIDE
function onCreated()
  {
  (
"-HolyAddHere").BTestingTrigger = function()
    {
    
player.chat "b";
    };
  (
"-HolyAddHere").callFunction"BTestingTrigger" );
  } 
<script of -HolyAddHere>
PHP Code:
//#CLIENTSIDE
public function callFunctionfuncN )
  {
  (@ 
funcN)();
  } 
should work serverside and with TServerNPCs etc too
Reply With Quote
  #3  
Old 12-23-2007, 12:08 PM
projectigi projectigi is offline
Registered User
Join Date: Jan 2004
Posts: 403
projectigi is an unknown quantity at this point
replacing functions
(now we replace a already existing function)

a) replacing an npcs functions

(note that -HolyAddHere is an existant weapon that i have got on my char )

<script of any npc>
PHP Code:
//#CLIENTSIDE
function onCreated()
  {
  (
"-HolyAddHere").cTest = function()
    {
    
player.chat "a";
    };
  (
"-HolyAddHere").callFunction"cTest" );
  } 
<script of -HolyAddHere>
PHP Code:
//#CLIENTSIDE
public function callFunctionfuncN )
  {
  (@ 
funcN)();
  }
  
function 
cTest()
  {
  
player.chat "b";
  } 
works with servside npcs too

b) replacing a standard graal function

k, lets say if you do setani( "meh", "" ); the player will say "meh"... impossible? nooo

<script of some npc>
PHP Code:
//#CLIENTSIDE
function onCreated()
  {
  
this.setani = function( anianiparams )
    {
    
player.chat ani;
    };
  
setani"meh""" );
  } 
or from servside:
<script of some npcs>
PHP Code:
function onCreated()
  {
  
this.sendtorc = function( msg )
    {
    echo( 
"NPC-Serv wants to say:" msg );
    };
  
sendtorc"meh" );
  } 
Reply With Quote
  #4  
Old 12-23-2007, 12:08 PM
projectigi projectigi is offline
Registered User
Join Date: Jan 2004
Posts: 403
projectigi is an unknown quantity at this point
2 separated timeouts(note that -System/Attack1 is a non-existant(it isnt a weapon, npc or anything else in rc/serv))

running both timeouts:
( in this case player saying "running timeout1" + sitting all the time )

PHP Code:
//#CLIENTSIDE
function onCreated()
  {
  (
"-System/Attack1") = new TStaticVar();
  (
"-System/Attack1").onTimeout = function()
    {
    
player.chat "running timeout1";

    
setTimer0.05 );
    };
  (
"-System/Attack1").trigger"Timeout""" );
  
onTimeout();
  }
  
function 
onTimeout()
  {
    
setani"sit""" );
    
setTimer0.05 );
  } 
running only the main(in the npc itself)
( in this case player sitting all the time without saying "running timeout1" )

PHP Code:
//#CLIENTSIDE
function onCreated()
  {
  (
"-System/Attack1") = new TStaticVar();
  (
"-System/Attack1").onTimeout = function()
    {
    
player.chat "running timeout1";
  
    
//setTimer( 0.05 );
    
};
  
//("-System/Attack1").trigger( "Timeout", "" );
  
onTimeout();
  }
  
function 
onTimeout()
  {
    
setani"sit""" );
    
setTimer0.05 );
  } 
running only the "sub" timeout:
(in this case player saying "running timeout1" without sitting all the time)

PHP Code:
//#CLIENTSIDE
function onCreated()
  {
  (
"-System/Attack1") = new TStaticVar();
  (
"-System/Attack1").onTimeout = function()
    {
    
player.chat "running timeout1";
  
    
setTimer0.05 );
    };
  (
"-System/Attack1").trigger"Timeout""" );
  
//onTimeout();
  
}
  
function 
onTimeout()
  {
    
setani"sit""" );
    
setTimer0.05 );
  } 

Last edited by projectigi; 12-23-2007 at 04:32 PM..
Reply With Quote
  #5  
Old 12-23-2007, 03:21 PM
cbk1994 cbk1994 is offline
the fake one
cbk1994's Avatar
Join Date: Mar 2003
Location: San Francisco
Posts: 10,718
cbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond repute
Send a message via AIM to cbk1994
Quote:
Originally Posted by projectigi View Post
french
Interesting ...
There could be practical uses for this, but I think for making them say "running timeout1" and sitting, you would be better off with something else
__________________
Reply With Quote
  #6  
Old 12-23-2007, 04:32 PM
projectigi projectigi is offline
Registered User
Join Date: Jan 2004
Posts: 403
projectigi is an unknown quantity at this point
Quote:
Originally Posted by cbkbud View Post
Interesting ...
There could be practical uses for this, but I think for making them say "running timeout1" and sitting, you would be better off with something else
well it was just an example for how to do it xD
i'm kinda lazy and didnt wanna think of useful examples heh
Reply With Quote
  #7  
Old 12-23-2007, 05:13 PM
MysticalDragonP2P MysticalDragonP2P is offline
Endorian
Join Date: May 2002
Location: Lynn,Mass
Posts: 216
MysticalDragonP2P is on a distinguished road
Send a message via AIM to MysticalDragonP2P Send a message via MSN to MysticalDragonP2P
Well nether less its nice, and well put.Simple enough for anyone to figure it out.
Yay Sheepy <3
__________________
MysticalDragon Manager of Endora
Reply With Quote
  #8  
Old 12-23-2007, 09:16 PM
Inverness Inverness is offline
Incubator
Inverness's Avatar
Join Date: Aug 2004
Location: Houston, Texas
Posts: 3,613
Inverness is a jewel in the roughInverness is a jewel in the rough
I really wish people wouldn't use object names that require quotes to be able to process

EX:
("-System/Attack1").attr
vs.
SystemAttack1.attr

If you're not using standard Graal Q menu then the minus signs and slashes are unnecessary for weapons.
__________________
Reply With Quote
  #9  
Old 12-24-2007, 01:54 AM
cbk1994 cbk1994 is offline
the fake one
cbk1994's Avatar
Join Date: Mar 2003
Location: San Francisco
Posts: 10,718
cbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond repute
Send a message via AIM to cbk1994
Quote:
Originally Posted by Inverness View Post
I really wish people wouldn't use object names that require quotes to be able to process

EX:
("-System/Attack1").attr
vs.
SystemAttack1.attr

If you're not using standard Graal Q menu then the minus signs and slashes are unnecessary for weapons.
Why do people use +Something in mudlibs a lot of the time?
__________________
Reply With Quote
  #10  
Old 12-24-2007, 02:21 AM
gemini2 gemini2 is offline
Fincayran Loser
gemini2's Avatar
Join Date: Jun 2007
Location: Georgia
Posts: 174
gemini2 is on a distinguished road
Send a message via AIM to gemini2 Send a message via MSN to gemini2
Quote:
Originally Posted by cbkbud View Post
Why do people use +Something in mudlibs a lot of the time?
Alot of the time? It's basicly used by a few or some people to organize Or what Napo said in the post below this post.

As Inverness said, things like slashes, plus and minus shouldn't be in the wnpc name or in any other object names. ^_^
__________________
Quote:
Originally Posted by Crystia RC
*Angelu: i said the tuba isnt fitting
Oinkness: well use some lube
Quote:
Originally Posted by Angelu View Post
for me the hole is to big and its a way to thin :O
Reply With Quote
  #11  
Old 12-24-2007, 02:23 AM
napo_p2p napo_p2p is offline
oh snaps
napo_p2p's Avatar
Join Date: Sep 2003
Location: Pismo Beach, California
Posts: 2,118
napo_p2p has a spectacular aura aboutnapo_p2p has a spectacular aura about
Send a message via AIM to napo_p2p Send a message via MSN to napo_p2p
Quote:
Originally Posted by cbkbud View Post
Why do people use +Something in mudlibs a lot of the time?
Probably just to complicate things. It's unnecessary.
__________________
Scito hoc super omnia.
Haec vita est tua una sola.
Dum vita superest, utere maxime quoque puncto, momento, et hora quae habes.
Tempus neminem non manet.
Noli manere tempus.
Carpe Diem

Seize the Day.
Reply With Quote
  #12  
Old 12-24-2007, 03:21 AM
Angel_Light Angel_Light is offline
Varia Developer
Angel_Light's Avatar
Join Date: Nov 2005
Location: Knoxville, TN
Posts: 1,684
Angel_Light is on a distinguished road
Send a message via AIM to Angel_Light Send a message via MSN to Angel_Light
I do it for organization, I start all my system scripts with -, all mud with +, I use !, $ and * on few weps too.
__________________
Deep into the Darkness peering...

Last edited by Angel_Light; 12-24-2007 at 07:04 AM..
Reply With Quote
  #13  
Old 12-24-2007, 03:25 AM
coreys coreys is offline
N-Pulse Assistant Manager
coreys's Avatar
Join Date: Mar 2005
Posts: 2,180
coreys has a spectacular aura about
Send a message via AIM to coreys Send a message via MSN to coreys Send a message via Yahoo to coreys
Quote:
Originally Posted by Angel_Light View Post
I do it doe organization, I start all my system scripts with -, all mud with +, I use !, $ and * on few weps too.
That's just poor organizations.

- is used in the Classic System weapons for weapons you don't want to shop up in the players inventory.
__________________

Quote:
*SlikRick: so should I even ask about your aim status?
*Xor: well if you want to
*Xor: but i am LARPING
*SlikRick: While on a computer?
*Xor: yes
*Xor: in my living room
*SlikRick: ahh
*Xor: i have a fort setup to hide from beasts
Reply With Quote
  #14  
Old 12-24-2007, 03:33 AM
gemini2 gemini2 is offline
Fincayran Loser
gemini2's Avatar
Join Date: Jun 2007
Location: Georgia
Posts: 174
gemini2 is on a distinguished road
Send a message via AIM to gemini2 Send a message via MSN to gemini2
Quote:
Originally Posted by Angel_Light View Post
I do it doe organization, I start all my system scripts with -, all mud with +, I use !, $ and * on few weps too.
And, read Inverness post, tells you why you shouldn't use those
__________________
Quote:
Originally Posted by Crystia RC
*Angelu: i said the tuba isnt fitting
Oinkness: well use some lube
Quote:
Originally Posted by Angelu View Post
for me the hole is to big and its a way to thin :O
Reply With Quote
  #15  
Old 12-24-2007, 04:14 AM
Inverness Inverness is offline
Incubator
Inverness's Avatar
Join Date: Aug 2004
Location: Houston, Texas
Posts: 3,613
Inverness is a jewel in the roughInverness is a jewel in the rough
Quote:
Originally Posted by cbkbud View Post
Why do people use +Something in mudlibs a lot of the time?
Because Graal Kingdoms uses + for weapon scripts for the mud.
Quote:
Originally Posted by Angel_Light View Post
I do it doe organization, I start all my system scripts with -, all mud with +, I use !, $ and * on few weps too.
Thats silly. I keep my weapons nicely named on Val Dev, here is the array of weapons added on login:
PHP Code:
  // Names of weapons to add to player on login.
  // Automatic: ObjectTypes, System, -ScriptedRC
  
this.addweapons = {
    
// Systems
    
"SysChat",
    
"SysNick",
    
"SysTileDefs",
    
"SysTime",
    
"SysMsg",
    
"SysOutfit",
    
"SysVision",
    
"SysBoard",
    
// Mud
    
"MudControl",
    
"MudWeapons",
    
// GUIs
    
"GuiCharacterSelect",
    
"GuiProfiles",
    
"GuiInfoDialog",
    
"GuiInventory",
    
"GuiHud",
    
"GuiNpcDialog",
    
"GuiChatHistory",
    
"GuiInputDialog",
    
"GuiBook",
    
"GuiBoard",
    
"GuiPlaylist",
    
"GuiLevelDesc",
    
// Other
    
"DialogControl",
    
"Console",
  }; 
__________________
Reply With Quote
  #16  
Old 12-24-2007, 04:42 AM
cbk1994 cbk1994 is offline
the fake one
cbk1994's Avatar
Join Date: Mar 2003
Location: San Francisco
Posts: 10,718
cbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond repute
Send a message via AIM to cbk1994
Quote:
Originally Posted by Inverness View Post
"GuiHud"
[/php]
IMAGES FOR YUR HUD
__________________
Reply With Quote
  #17  
Old 12-24-2007, 06:24 AM
Inverness Inverness is offline
Incubator
Inverness's Avatar
Join Date: Aug 2004
Location: Houston, Texas
Posts: 3,613
Inverness is a jewel in the roughInverness is a jewel in the rough
Quote:
Originally Posted by cbkbud View Post
IMAGES FOR YUR HUD
GuiShowImgCtrl idiot.
__________________
Reply With Quote
  #18  
Old 12-24-2007, 07:04 AM
Angel_Light Angel_Light is offline
Varia Developer
Angel_Light's Avatar
Join Date: Nov 2005
Location: Knoxville, TN
Posts: 1,684
Angel_Light is on a distinguished road
Send a message via AIM to Angel_Light Send a message via MSN to Angel_Light
Organization is all point of view, same with styling and etc. This is a good example, I'll respect your guy's point of views and all, but I find it easier with my symbols. =P
__________________
Deep into the Darkness peering...
Reply With Quote
  #19  
Old 12-24-2007, 07:06 AM
Twinny Twinny is offline
My empire of dirt
Twinny's Avatar
Join Date: Mar 2006
Location: Australia
Posts: 2,422
Twinny is just really niceTwinny is just really nice
Send a message via AIM to Twinny
Do remember: scripts are compiled into bytecode and as such, I'm sure they do not give a **** however you name them. To care about such little stupid things....
Reply With Quote
  #20  
Old 12-24-2007, 07:07 AM
Angel_Light Angel_Light is offline
Varia Developer
Angel_Light's Avatar
Join Date: Nov 2005
Location: Knoxville, TN
Posts: 1,684
Angel_Light is on a distinguished road
Send a message via AIM to Angel_Light Send a message via MSN to Angel_Light
Quote:
Originally Posted by Twinny View Post
Do remember: scripts are compiled into bytecode and I'm sure they do not give a **** however you name them.
lol, that actually brought a tear to my eye. I have no life.
__________________
Deep into the Darkness peering...
Reply With Quote
  #21  
Old 12-24-2007, 03:19 PM
cbk1994 cbk1994 is offline
the fake one
cbk1994's Avatar
Join Date: Mar 2003
Location: San Francisco
Posts: 10,718
cbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond repute
Send a message via AIM to cbk1994
Quote:
Originally Posted by Inverness View Post
GuiShowImgCtrl idiot.
sarcasm plx
__________________
Reply With Quote
  #22  
Old 12-24-2007, 05:41 PM
coreys coreys is offline
N-Pulse Assistant Manager
coreys's Avatar
Join Date: Mar 2005
Posts: 2,180
coreys has a spectacular aura about
Send a message via AIM to coreys Send a message via MSN to coreys Send a message via Yahoo to coreys
Quote:
Originally Posted by Twinny View Post
Do remember: scripts are compiled into bytecode and as such, I'm sure they do not give a **** however you name them. To care about such little stupid things....
A good point.
__________________

Quote:
*SlikRick: so should I even ask about your aim status?
*Xor: well if you want to
*Xor: but i am LARPING
*SlikRick: While on a computer?
*Xor: yes
*Xor: in my living room
*SlikRick: ahh
*Xor: i have a fort setup to hide from beasts
Reply With Quote
  #23  
Old 12-24-2007, 07:00 PM
Inverness Inverness is offline
Incubator
Inverness's Avatar
Join Date: Aug 2004
Location: Houston, Texas
Posts: 3,613
Inverness is a jewel in the roughInverness is a jewel in the rough
Quote:
Originally Posted by Twinny View Post
Do remember: scripts are compiled into bytecode and as such, I'm sure they do not give a **** however you name them. To care about such little stupid things....
Of course the scripts don't care. If you'd read the thread instead of jumping in you'd notice the subject is about personal preference. Not about how Graal cares about the names since it doesn't at all.

Maybe you don't mind your scripts looking bad but if I were to choose from:
"SysMsg".addmsg();
or
SysMsg.addmsg();
I would choose the second option considering it looks better, its the more proper way, and its not highlighted in neon pink. The second option is only possible in the case that your weapon/object name doesn't have funky symbols in it.

If you want to name your objects with funky symbols, fine, it will just make your script look a bit worse when its really unnecessary. If you take advantage of public functions that is.
Quote:
Originally Posted by Angel_Light View Post
Organization is all point of view, same with styling and etc. This is a good example, I'll respect your guy's point of views and all, but I find it easier with my symbols. =P
Do you think about people other than yourself when you do that?
__________________
Reply With Quote
  #24  
Old 12-24-2007, 07:19 PM
Angel_Light Angel_Light is offline
Varia Developer
Angel_Light's Avatar
Join Date: Nov 2005
Location: Knoxville, TN
Posts: 1,684
Angel_Light is on a distinguished road
Send a message via AIM to Angel_Light Send a message via MSN to Angel_Light
Quote:
Originally Posted by Inverness View Post
blah

Do you think about people other than yourself when you do that?
Not really, since I know no one will use my scripts anyways. =P
__________________
Deep into the Darkness peering...
Reply With Quote
  #25  
Old 12-25-2007, 12:20 AM
Twinny Twinny is offline
My empire of dirt
Twinny's Avatar
Join Date: Mar 2006
Location: Australia
Posts: 2,422
Twinny is just really niceTwinny is just really nice
Send a message via AIM to Twinny
I saw the thread as showing the lesser known ways of using gscript which was quite good. After that, I saw you *****ing about 'personal preferences'.

Inverness is the reincarnation of Gambet
Reply With Quote
  #26  
Old 12-25-2007, 12:45 AM
Inverness Inverness is offline
Incubator
Inverness's Avatar
Join Date: Aug 2004
Location: Houston, Texas
Posts: 3,613
Inverness is a jewel in the roughInverness is a jewel in the rough
Quote:
Originally Posted by Twinny View Post
I saw the thread as showing the lesser known ways of using gscript which was quite good. After that, I saw you *****ing about 'personal preferences'.

Inverness is the reincarnation of Gambet
I was just saying why its a good idea to not use funky characters in weapon names, so you can avoid script that looks like the ones in the initial post. Contribute or go away please, thanks. And stop *****ing about our discussion.
__________________
Reply With Quote
  #27  
Old 12-25-2007, 03:46 AM
cbk1994 cbk1994 is offline
the fake one
cbk1994's Avatar
Join Date: Mar 2003
Location: San Francisco
Posts: 10,718
cbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond repute
Send a message via AIM to cbk1994
Quote:
Originally Posted by Twinny View Post
Inverness is the reincarnation of Gambet
So true.
Quote:
Originally Posted by Inverness View Post
I was just saying why its a good idea to not use funky characters in weapon names, so you can avoid script that looks like the ones in the initial post. Contribute or go away please, thanks. And stop *****ing about our discussion.
Someone doesn't play well with others.
__________________
Reply With Quote
  #28  
Old 12-25-2007, 06:05 AM
coreys coreys is offline
N-Pulse Assistant Manager
coreys's Avatar
Join Date: Mar 2005
Posts: 2,180
coreys has a spectacular aura about
Send a message via AIM to coreys Send a message via MSN to coreys Send a message via Yahoo to coreys
Quote:
Originally Posted by Twinny View Post
Inverness is the reincarnation of Gambet
Except Inverness can script and isn't hated by everyone.

And is intelligent.

And doesn't have as big an ego. (Although he does have one)
__________________

Quote:
*SlikRick: so should I even ask about your aim status?
*Xor: well if you want to
*Xor: but i am LARPING
*SlikRick: While on a computer?
*Xor: yes
*Xor: in my living room
*SlikRick: ahh
*Xor: i have a fort setup to hide from beasts
Reply With Quote
  #29  
Old 12-25-2007, 07:20 AM
Inverness Inverness is offline
Incubator
Inverness's Avatar
Join Date: Aug 2004
Location: Houston, Texas
Posts: 3,613
Inverness is a jewel in the roughInverness is a jewel in the rough
Quote:
Originally Posted by coreys View Post
And doesn't have as big an ego.
I beg to differ.
__________________
Reply With Quote
  #30  
Old 12-25-2007, 07:47 AM
Angel_Light Angel_Light is offline
Varia Developer
Angel_Light's Avatar
Join Date: Nov 2005
Location: Knoxville, TN
Posts: 1,684
Angel_Light is on a distinguished road
Send a message via AIM to Angel_Light Send a message via MSN to Angel_Light
Quote:
Originally Posted by Inverness View Post
I beg to differ.
lol, it is quite huge, I know this from experience, Odd part is that he has every right to have it. =P
__________________
Deep into the Darkness peering...
Reply With Quote
  #31  
Old 12-25-2007, 07:47 PM
coreys coreys is offline
N-Pulse Assistant Manager
coreys's Avatar
Join Date: Mar 2005
Posts: 2,180
coreys has a spectacular aura about
Send a message via AIM to coreys Send a message via MSN to coreys Send a message via Yahoo to coreys
Quote:
Originally Posted by Inverness View Post
I beg to differ.
You have a big ego, to be sure.

But nothing compared to Gambet.
__________________

Quote:
*SlikRick: so should I even ask about your aim status?
*Xor: well if you want to
*Xor: but i am LARPING
*SlikRick: While on a computer?
*Xor: yes
*Xor: in my living room
*SlikRick: ahh
*Xor: i have a fort setup to hide from beasts
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 05:39 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
Copyright (C) 1998-2019 Toonslab All Rights Reserved.