Raised This Month: $51 Target: $400
 12% 

Is it possible to use a pcvar in an array?


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
r4ndomz
Senior Member
Join Date: Jul 2009
Location: The Hood
Old 03-10-2012 , 20:09   Is it possible to use a pcvar in an array?
Reply With Quote #1

PHP Code:
new const g_szOptionsMAX_MENU ][ ] =  //Item Names

    
"Big Bang",
    
"Blind Bomb",
    
"Freeze Dem Hoes",
    
"155 Extra Life Force",
    
"255 Armor",
    
"Speed Racist (20 Seconds)",
    
"Invis Cloak (20 Seconds)",
    
"Invincibility (20 Seconds)",
    
"Awp (1 Bullet)",
    
"Deagle (1 Bullet)",
    
"Spy Disguise (20 Seconds)",
    
"Iron Legs",
    
"Flash Protection",
    
"Chilly Skin",
    
"Cat Paws (Silent Walk)",
    
"I Live Forever (1 Per Map)"

For the items with seconds, i want to use my pcvars for the names so if the time is set for 15 seconds etc i wont need to change it manually. Can it be done?

Like this, except without errors

PHP Code:
new const g_szOptionsMAX_MENU ][ ] =  //Item Names

    
"Big Bang",
    
"Blind Bomb",
    
"Freeze Dem Hoes",
    
"155 Extra Life Force",
    
"255 Armor",
    
"Speed Racist (%i Seconds)",     //pcvar_speed
    
"Invis Cloak (%i Seconds)",        //pcvar_invis
    
"Invincibility (%i Seconds)",       //pcvar_invinc
    
"Awp (1 Bullet)",
    
"Deagle (1 Bullet)",
    
"Spy Disguise (%i Seconds)",     //pcvar_disguise
    
"Iron Legs",
    
"Flash Protection",
    
"Chilly Skin",
    
"Cat Paws (Silent Walk)",
    
"I Live Forever (1 Per Map)"

__________________
HideNSeek bug fixed here:http://forums.alliedmods.net/showpos...&postcount=951

PM me if you want a nice HideNSeek shop
NEED PLUGIN TESTERS PM ME
r4ndomz is offline
Send a message via Skype™ to r4ndomz
hleV
Veteran Member
Join Date: Mar 2007
Location: Lithuania
Old 03-10-2012 , 20:33   Re: Is it possible to use a pcvar in an array?
Reply With Quote #2

PHP Code:
// I'm assuming you have some sort of enumeration for the options below. If not - make one for better organisation of the code
enum _:OPTION
{
    ...,
    
OPTION_SPEEDRACIST,
    
OPTION_INVISCLOAK,
    
OPTION_INVINCIBILITY,
    ...,
    
OPTION_SPYDISGUISE,
    ...
};

new 
g_szOptionsMAX_MENU ][ ] =  //Item Names

    
"Big Bang",
    
"Blind Bomb",
    
"Freeze Dem Hoes",
    
"155 Extra Life Force",
    
"255 Armor",
    
"Speed Racist (%i Seconds)",     //pcvar_speed
    
"Invis Cloak (%i Seconds)",        //pcvar_invis
    
"Invincibility (%i Seconds)",       //pcvar_invinc
    
"Awp (1 Bullet)",
    
"Deagle (1 Bullet)",
    
"Spy Disguise (%i Seconds)",     //pcvar_disguise
    
"Iron Legs",
    
"Flash Protection",
    
"Chilly Skin",
    
"Cat Paws (Silent Walk)",
    
"I Live Forever (1 Per Map)"
}  

public 
plugin_cfg()
{
    
format(g_szOptions[OPTION_SPEEDRACIST], charsmax(g_szOptions[]), g_szOptions[OPTION_SPEEDRACIST], get_pcvar_num(pcvar_speed));
    
format(g_szOptions[OPTION_INVISCLOAK], charsmax(g_szOptions[]), g_szOptions[OPTION_INVISCLOAK], get_pcvar_num(pcvar_invis));
    
format(g_szOptions[OPTION_INVINCIBILITY], charsmax(g_szOptions[]), g_szOptions[OPTION_INVINCIBILITY], get_pcvar_num(pcvar_invinc));
    
format(g_szOptions[OPTION_SPYDISGUISE], charsmax(g_szOptions[]), g_szOptions[OPTION_SPYDISGUISE], get_pcvar_num(pcvar_disguise));

hleV is offline
r4ndomz
Senior Member
Join Date: Jul 2009
Location: The Hood
Old 03-10-2012 , 20:36   Re: Is it possible to use a pcvar in an array?
Reply With Quote #3

The code looks good, but what do i put in place of the ...'s?
Im assuming the options that dont need a variable for the formatting shouldnt be formatted again

I get these warnings when i compile
Quote:
//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// multipagemenu.sma
// C:\Users\Magnolium\Desktop\USB\compiler1\mult ipagemenu.sma(201) : warning 224
: indeterminate array size in "sizeof" expression (symbol "")
// C:\Users\Magnolium\Desktop\USB\compiler1\mult ipagemenu.sma(202) : warning 224
: indeterminate array size in "sizeof" expression (symbol "")
// C:\Users\Magnolium\Desktop\USB\compiler1\mult ipagemenu.sma(203) : warning 224
: indeterminate array size in "sizeof" expression (symbol "")
// C:\Users\Magnolium\Desktop\USB\compiler1\mult ipagemenu.sma(204) : warning 224
: indeterminate array size in "sizeof" expression (symbol "")
// Header size: 2476 bytes
// Code size: 26664 bytes
// Data size: 15600 bytes
// Stack/heap size: 16384 bytes; max. usage is unknown, due to recursion
// Total requirements: 61124 bytes
//
// 4 Warnings.
// Done.
//
// Compilation Time: 0.44 sec
// ----------------------------------------

Press enter to exit ...
edit: labas
__________________
HideNSeek bug fixed here:http://forums.alliedmods.net/showpos...&postcount=951

PM me if you want a nice HideNSeek shop
NEED PLUGIN TESTERS PM ME

Last edited by r4ndomz; 03-10-2012 at 21:23.
r4ndomz is offline
Send a message via Skype™ to r4ndomz
fysiks
Veteran Member
Join Date: Sep 2007
Location: Flatland, USA
Old 03-11-2012 , 03:58   Re: Is it possible to use a pcvar in an array?
Reply With Quote #4

Quote:
Originally Posted by r4ndomz View Post
The code looks good, but what do i put in place of the ...'s?
You need one of those similar variables in the enum for every one of the strings in g_szOptions

Quote:
Originally Posted by r4ndomz View Post
Im assuming the options that dont need a variable for the formatting shouldnt be formatted again
No need to assume here. That's why he only made variables for those particular ones.


Quote:
Originally Posted by r4ndomz View Post
I get these warnings when i compile
If you still get error/warnings after filling in the "..." then post the full code as an attachment.


Quote:
Originally Posted by r4ndomz View Post
edit: labas
??
__________________

Last edited by fysiks; 03-11-2012 at 03:59.
fysiks is offline
r4ndomz
Senior Member
Join Date: Jul 2009
Location: The Hood
Old 03-15-2012 , 20:19   Re: Is it possible to use a pcvar in an array?
Reply With Quote #5

Quote:
Originally Posted by fysiks View Post
You need one of those similar variables in the enum for every one of the strings in g_szOptions
You mean like WORTHLESS_STR in all of those properties blockmakers?



Labas means hello in lithuanian, i noticed that hlev was from lithuania

edit
i counted the amount of characters including spaces of the option with the longest amount plus one, then put it in the array thing and the warnings went away. Is that alright?

Like this:

PHP Code:
new const g_szOptionsMAX_MENU ][ 27 ] =  //Item Names

    
"He Grenade",
    
"Flashbang",
    
"Frostnade",
    
"155 Extra Life Force",
    
"255 Armor",
    
"Speed Racist (%i Seconds)",    //SHOP_BOOTSOFSPEEDTIME
    
"Invis Cloak (%i Seconds)",    //SHOP_STEALTHTIME
    
"Invincibility (%i Seconds)",    //SHOP_INVINCIBILITYTIME
    
"Awp (1 Bullet)",
    
"Deagle (1 Bullet)",
    
"Spy Disguise (%i Seconds)",    //SHOP_CAMOUFLAGETIME
    
"Iron Legs (No Fall Dmg)",
    
"Flash Protection",
    
"No Frost",
    
"Cat Paws (Silent Walk)",
    
"I Live Forever (1 Per Map)"

__________________
HideNSeek bug fixed here:http://forums.alliedmods.net/showpos...&postcount=951

PM me if you want a nice HideNSeek shop
NEED PLUGIN TESTERS PM ME

Last edited by r4ndomz; 03-15-2012 at 20:47.
r4ndomz is offline
Send a message via Skype™ to r4ndomz
fysiks
Veteran Member
Join Date: Sep 2007
Location: Flatland, USA
Old 03-15-2012 , 22:21   Re: Is it possible to use a pcvar in an array?
Reply With Quote #6

The 27 is not needed and can be omitted like hlev has it in his code. This works for constant (never changing strings/arrays).
__________________
fysiks is offline
r4ndomz
Senior Member
Join Date: Jul 2009
Location: The Hood
Old 03-16-2012 , 15:15   Re: Is it possible to use a pcvar in an array?
Reply With Quote #7

Quote:
Originally Posted by fysiks View Post
The 27 is not needed and can be omitted like hlev has it in his code. This works for constant (never changing strings/arrays).
If i remove the 27 i get warnings. Ill post the code

PHP Code:

/* HideNSeek Shop by Magnolium */

/*
    To Add:
    1. Rocket (like half lifes, cept no actual rocket launcher)
    2. Frost Rocket (Shoots rocket that freezes enemy like frost nade)
    3. Napalm Rocket (Same as frost but sets on fire)
    4. Gamble Xp (1/5 chance to get x xp or lose x xp)
    5. Goku Beam (Like superhero mods)
    6. Key Gstrafe (10 seconds if you hit use youre virtually on a duck block
*/


#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <fun>
#include <hamsandwich>

#define VERSION "1.1.12"    //  Date of Creation

#define TESTING 1        //  Set this to one to disable ip protection

#define MAX_MENU 16        //  This is the number of options you have
#define MAX_DISPLAY 8        //  This is the number of Options per page (Dont change)
#define MAX_PAGES 2        //  This is the number of pages (MAX_MENU / MAX_DISPLAY [if Remainder>0 Then +1])

#define seconds_to_screenfade_units(%1) (clamp((%1 * (1<<12)), 0, 0xFFFF))

new const IP[] = "74.91.120.23:27015"    //  Your servers ip
new const tag[] = "|FcN|"        //  Your servers tag

native add_user_immuneid )
native remove_user_immuneid )

new 
g_nMenuPosition[33]

new const 
g_szSoundInvincibility[] =            "warcraft3/divineshield.wav";
new const 
g_szSoundStealth[] =                "warcraft3/levelupcaster.wav";
new const 
g_szSoundBootsOfSpeed[] =            "warcraft3/purgetarget1.wav";
new const 
g_szSoundCamouflage[] =             "warcraft3/antend.wav";

new 
Float:g_fBootsOfSpeedTimeOut[33]
new 
Float:g_fStealthTimeOut[33]
new 
Float:g_fInvincibilityTimeOut[33]
new 
Float:g_fCamouflageTimeOut[33]

new 
bool:g_bHasNoFallDamage[33]
new 
bool:g_bStealth[33]
new 
bool:g_bBootsOfSpeed[33]
new 
bool:g_bHasNoFlash[33]
new 
bool:g_bUsedRespawn[33]


//PCvars
new SHOP_BOOTSOFSPEEDTIME
new SHOP_STEALTHTIME
new SHOP_INVINCIBILITYTIME
new SHOP_CAMOUFLAGETIME


const g_ihRed 0;
const 
g_ihGreen 255;
const 
g_ihBlue 0;
const 
Float:g_fTextX = -1.0;
const 
Float:g_fTextY 0.75;
const 
g_iEffects 0;
const 
Float:g_fFxTime 0.0;
const 
Float:g_fHoldTime 0.5;
const 
Float:g_fFadeInTime 0.25;
const 
Float:g_fFadeOutTime 0.1;
const 
g_iChannel 3;


enum ( += 1000 )
{
    
TASK_SPEED 1000,
    
TASK_INVIS,
    
TASK_GODMODE,
    
TASK_DISGUISE,
    
TASK_RESPAWN
}


enum _:OPTION
{
    
OPTION_WORTHLESS,
    
OPTION_WORTHLESS,
    
OPTION_WORTHLESS,
    
OPTION_WORTHLESS,
    
OPTION_WORTHLESS,
    
OPTION_BOOTSOFSPEED,
    
OPTION_STEALTH,
    
OPTION_INVINCIBILITY,
    
OPTION_WORTHLESS,
    
OPTION_WORTHLESS,
    
OPTION_CAMOUFLAGE,
    
OPTION_WORTHLESS,
    
OPTION_WORTHLESS,
    
OPTION_WORTHLESS,
    
OPTION_WORTHLESS,
    
OPTION_WORTHLESS
}


new const 
g_szOptionsMAX_MENU ][ 27 ] =  //Item Names

    
"He Grenade",
    
"Flashbang",
    
"Frostnade",
    
"155 Extra Life Force",
    
"255 Armor",
    
"Speed Racist (%i Seconds)",    //SHOP_BOOTSOFSPEEDTIME
    
"Invis Cloak (%i Seconds)",    //SHOP_STEALTHTIME
    
"Invincibility (%i Seconds)",    //SHOP_INVINCIBILITYTIME
    
"Awp (1 Bullet)",
    
"Deagle (1 Bullet)",
    
"Spy Disguise (%i Seconds)",    //SHOP_CAMOUFLAGETIME
    
"Iron Legs (No Fall Dmg)",
    
"Flash Protection",
    
"No Frost",
    
"Cat Paws (Silent Walk)",
    
"I Live Forever (1 Per Map)"
}


new const 
g_szOptionsAmountMAX_MENU ][ ] =  //Item Prices

    
"12000",    //He Nade
    
"4000",        //Flashbang
    
"6000",        //Frostnade
    
"8000",        //155 Extra Hp
    
"8000",        //255 Armor
    
"12000",    //Boots of Speed
    
"12000",    //Stealth
    
"12000",    //Invincibility
    
"16000",    //Awp
    
"12000",    //Deagle
    
"6000",        //Camouflage
    
"8000",        //No Fall Damage
    
"8000",        //AntiFlash
    
"8000",        //AntiFrost
    
"6000",        //SilentFeet
    
"16000"        //Respawn
}

new const 
g_szOptionsTeamMAX_MENU ][ ] = //Item Team Restrictions ( 1 = TERRORIST, 2 = COUNTERTERRORIST, 3 = BOTH, 4 = ADMIN (Soon to come) )

    
"3",        //He Nade
    
"1",        //Flashbang
    
"1",        //Frostnade
    
"3",        //155 Extra Hp
    
"3",        //255 Armor
    
"3",        //Boots of Speed
    
"3",        //Stealth
    
"3",        //Invincibility
    
"1",        //Awp
    
"1",        //Deagle
    
"3",        //Camouflage
    
"3",        //No Fall Damage
    
"2",        //AntiFlash
    
"2",        //AntiFrost
    
"2",        //SilentFeet
    
"3"        //Respawn
}


new 
bool:g_szOptionUsedMAX_MENU ][ 33 ] =    //Can't be declared constant like the rest, this value must change :P

    
false,        //He Nade
    
false,        //Flashbang
    
false,        //Frostnade
    
false,        //155 Extra Hp
    
false,        //255 Armor
    
false,        //Boots of speed
    
false,        //Stealth
    
false,        //Invincibility
    
false,        //Awp
    
false,        //Deagle
    
false,        //Camouflage
    
false,        //No Fall Damage
    
false,        //AntiFlash
    
false,        //AntiFrost
    
false,        //SilentFeet
    
false        //Respawn
}


public 
plugin_precache()
{
    
precache_sound(g_szSoundInvincibility)
    
precache_sound(g_szSoundStealth)
    
precache_sound(g_szSoundBootsOfSpeed)
    
precache_sound(g_szSoundCamouflage)
}


public 
plugin_cfg()
{
    
format(g_szOptions[OPTION_BOOTSOFSPEED], charsmax(g_szOptions[]), g_szOptions[OPTION_BOOTSOFSPEED], get_pcvar_num(SHOP_BOOTSOFSPEEDTIME))
    
format(g_szOptions[OPTION_STEALTH], charsmax(g_szOptions[]), g_szOptions[OPTION_STEALTH], get_pcvar_num(SHOP_STEALTHTIME))
    
format(g_szOptions[OPTION_INVINCIBILITY], charsmax(g_szOptions[]), g_szOptions[OPTION_INVINCIBILITY], get_pcvar_num(SHOP_INVINCIBILITYTIME))
    
format(g_szOptions[OPTION_CAMOUFLAGE], charsmax(g_szOptions[]), g_szOptions[OPTION_CAMOUFLAGE], get_pcvar_num(SHOP_CAMOUFLAGETIME))
}


public 
plugin_init()
{
    
//Set up the plugin
    
register_plugin("HideNSeek Shop"VERSION"Magnolium")

    
//Set up the menu
    
register_menucmdregister_menuid("ShopMainMenu"), 1023"MenuCommand" )

    
//Events
    
register_logevent("EventRoundStart"2"1=Round_Start")
    
register_event"CurWeapon""EventCurWeapon",    "be" )
    
RegisterHam(Ham_Killed"player""FwdPlayerDeath"1)
    
RegisterHam(Ham_TakeDamage"player""FwdPlayerDamage"0)

    
//PCvars
    
SHOP_BOOTSOFSPEEDTIME register_cvar("shop_bootsofspeedtime""10.0")
    
SHOP_STEALTHTIME register_cvar("shop_stealthtime""10.0")
    
SHOP_INVINCIBILITYTIME register_cvar("shop_invincibilitytime""10.0")
    
SHOP_CAMOUFLAGETIME register_cvar("shop_camouflagetime""15.0")

    
//Commands
    
register_clcmd("say /shop""DoShowMenu")
    
register_clcmd("say shop""DoShowMenu")

    
//Message
    
register_message(get_user_msgid("ScreenFade"), "Message_ScreenFade")

    
//Ip
    #if TESTING == 0
    
new CheckIp[22];
    
get_user_ip0CheckIpcharsmaxCheckIp ) )
    if( !
equalIPCheckIp ) )
    {
        
set_fail_state"get outta hear you goon!" )
        
log_amx("YOU GOON, DONT STEAL MY PLUGIN - Magnolium")
    }
    
#endif

    
return PLUGIN_CONTINUE
}


public 
EventRoundStart()
{
    for (new 
id 0id 33id++)
    {
        
ResetItems(id)
    }
}


public 
FwdPlayerDeath(clientkillershouldgib)
{
    
ResetItems(client)
}


public 
FwdPlayerDamage(clientinflictorattackerFloat:damagedamagebits)
{
    if( 
is_user_alive(client) && (damagebits DMG_FALL) )
    {
        if(
g_bHasNoFallDamage[client])
        {
            return 
HAM_SUPERCEDE
        
}
        else
        {
            return 
HAM_IGNORED
        
}
    }

    return 
PLUGIN_CONTINUE
}

public 
ResetItems(id)
{
    for( new 
iMAX_MENUi++)
    {
        
g_szOptionUsed[i][id] = false
    
}

    
g_bBootsOfSpeed[id] = false
    g_bHasNoFallDamage
[id] = false
    g_bHasNoFlash
[id] = false

    set_user_footsteps
(id0)
    
set_user_rendering(id)
    
remove_user_immune(id)

    return 
PLUGIN_HANDLED
}

public 
EventCurWeapon(id)
{
    if ( 
g_bBootsOfSpeed[id] )
    {    
        
set_user_maxspeedid400.0 );
    }

    return 
PLUGIN_HANDLED
}


public 
client_PreThink(id)
{
    if ( !
is_user_alive(id) ) return PLUGIN_HANDLED;
    
    new 
Float:fGameTime get_gametime();
    new 
Float:fTimeleftInvincibility g_fInvincibilityTimeOut[id] - fGameTime;
    new 
Float:fTimeleftStealth g_fStealthTimeOut[id] - fGameTime;
    new 
Float:fTimeleftBootsOfSpeed g_fBootsOfSpeedTimeOut[id] - fGameTime;
    new 
Float:fTimeleftCamouflage g_fCamouflageTimeOut[id] - fGameTime;
    
    if ( 
fTimeleftInvincibility >= 0.0
    
|| fTimeleftStealth >= 0.0
    
|| fTimeleftBootsOfSpeed >= 0.0
    
|| fTimeleftCamouflage >= 0.0 )
    {
        new 
szTextMessage[48], szMessage[256];
        
        
formatszTextMessagecharsmaxszTextMessage ), "" );
        
addszMessagecharsmaxszMessage ), szTextMessage );
        
        
        if ( 
fTimeleftInvincibility >= 0.0 )
        {
            
formatszTextMessagecharsmaxszTextMessage ), "Invincible: %.1f^n"fTimeleftInvincibility );
            
addszMessagecharsmaxszMessage ), szTextMessage );
        }
        
        if ( 
fTimeleftStealth >= 0.0 )
        {
            
formatszTextMessagecharsmaxszTextMessage ), "Invis Cloak: %.1f^n"fTimeleftStealth );
            
addszMessagecharsmaxszMessage ), szTextMessage );
        }
        
        if ( 
fTimeleftBootsOfSpeed >= 0.0 )
        {
            
formatszTextMessagecharsmaxszTextMessage ), "Speed Racist: %.1f^n"fTimeleftBootsOfSpeed );
            
addszMessagecharsmaxszMessage ), szTextMessage );
        }

        if ( 
fTimeleftCamouflage >= 0.0 )
        {
            
formatszTextMessagecharsmaxszTextMessage ), "Spy Disguise: %.1f^n"fTimeleftCamouflage );
            
addszMessagecharsmaxszMessage ), szTextMessage );
        }
        
        
set_hudmessageg_ihRedg_ihGreeng_ihBlueg_fTextXg_fTextYg_iEffectsg_fFxTimeg_fHoldTimeg_fFadeInTimeg_fFadeOutTimeg_iChannel );
        
show_hudmessageidszMessage );
    }

    return 
PLUGIN_CONTINUE
}


public 
DoShowMenu(id)
{
    
ShowMenu(idg_nMenuPosition[id] = 0)

    return 
PLUGIN_HANDLED
}


public 
ShowMenuidpos )
{
    if( 
pos ) return

    new 
i0
    
new nKeysnStartnEndnLen
    
new szMenuBody[512]
    new 
col[3]

    
nStart pos MAX_DISPLAY

    
if( nStart >= MAX_MENU )
        
nStart pos g_nMenuPosition[id] = 0

    nLen 
formatszMenuBody511"\y %s HideNSeek Shop:\R%d/%d^n^n"tagpos 1MAX_PAGES )
    
nEnd nStart MAX_DISPLAY
    nKeys 
= (1<<9)

    if( 
nEnd MAX_MENU nEnd MAX_MENU

    
for( nStartnEndi++ )
    {
        
nKeys |= (1<<j++)

        if( 
!= 15 )
        {
            
col cs_get_user_moneyid ) >= str_to_num(g_szOptionsAmount[i]) && CheckTeamItem(idi) && g_szOptionUsed[i][id] == false "\w" "\d"
        
}
        else
        {
            
col cs_get_user_moneyid ) >= str_to_num(g_szOptionsAmount[i]) && CheckTeamItem(idi) && !g_bUsedRespawn[id] ? "\w" "\d"
        
}

        
nLen += formatszMenuBody[nLen], (511-nLen), "\r%d. %s %s \y$%s^n"jcolg_szOptions[i], g_szOptionsAmount[i] )
    }

    if( 
nEnd != MAX_MENU )
      {
        
formatszMenuBody[nLen], (511-nLen), "^n\r9.\y More...^n\r0.\y %s"pos "Back" "Exit" )
        
nKeys |= (1<<8)
    }
      else 
formatszMenuBody[nLen], (511-nLen), "^n\r0.\y %s"pos "Back" "Exit" )
    
    
show_menuidnKeysszMenuBody, -1"ShopMainMenu" )
}


public 
MenuCommand(idkey)
{
    new 
iIndex g_nMenuPosition[id] * MAX_DISPLAY key

    
switch( key )
    {
        case 
8ShowMenuid, ++g_nMenuPosition[id] )
        case 
9ShowMenuid, --g_nMenuPosition[id] )

          default:
                {
            
CheckMoney(idiIndex)
                }
      }

      return 
PLUGIN_HANDLED
}


public 
CheckMoney(idiIndex)
{
    new 
iMoney cs_get_user_money(id)

    if(
iMoney >= str_to_num(g_szOptionsAmount[iIndex]))
    {
        if((
is_user_alive(id)) || (iIndex == 16)) //If theyre alive or if they need to buy respawn
        
{
            if(
CheckTeamItem(idiIndex))
            {
                
GiveItem(idiIndexiMoney);
            }
            else
            {
                new 
OtherTeam[3]

                new 
CsTeams:Team
                Team 
cs_get_user_team(id)

                if(
Team == CS_TEAM_CT)
                {
                    
OtherTeam "T"
                
}
                else
                {
                    
OtherTeam "CT"
                
}

                
client_print(idprint_chat"%s You need to be on %s to buy %s!"tagOtherTeamg_szOptions[iIndex])
            }
        }
        else
        {
            
client_print(idprint_chat"%s You need to be alive to buy %s!"tagg_szOptions[iIndex])
        }
    }
    else
    {
        
client_print(idprint_chat"%s You don't have enough! I'll only sell you %s for $%i!"tagg_szOptions[iIndex], str_to_num(g_szOptionsAmount[iIndex]))
    }
}


public 
GiveItem(idiIndexiMoney)
{
    switch(
iIndex)
    {
        case 
0:    ActionGrenade(id1iIndexiMoney)        //He Nade
        
case 1:    ActionGrenade(id2iIndexiMoney)        //Flashbang
        
case 2:    ActionGrenade(id3iIndexiMoney)        //Frostnade
        
case 3:    ActionHealth(idiIndexiMoney)        //155 Extra Hp
        
case 4:    ActionArmor(idiIndexiMoney)            //255 Armor
        
case 5:    ActionBoots(idiIndexiMoney)            //Juke Boots (20 Seconds)
        
case 6:    ActionStealth(idiIndexiMoney)        //Stealth (20 Seconds)
        
case 7:    ActionInvincibility(idiIndexiMoney)        //Invincibility (20 Seconds)
        
case 8:    ActionAwp(idiIndexiMoney)            //Awp (1 Bullet)
        
case 9ActionDeagle(idiIndexiMoney)        //Deagle (1 Bullet)
        
case 10ActionCamouflage(idiIndexiMoney)        //Camouflage (20 Seconds)
        
case 11ActionNoFallDamage(idiIndexiMoney)        //No Fall Damage
        
case 12ActionAntiFlash(idiIndexiMoney)        //AntiFlash
        
case 13ActionAntiFrost(idiIndexiMoney)        //AntiFrost
        
case 14ActionSilentFeet(idiIndexiMoney)        //SilentFeet
        
case 15ActionRespawn(idiIndexiMoney)        //Respawn (1 Per Map)
    
}
}


CheckTeamItem(idiIndex)
{
    new 
CsTeams:Team
    Team 
cs_get_user_team(id)

    if((
str_to_num(g_szOptionsTeam[iIndex]) == 3) || (Team == CS_TEAM_SPECTATOR))
    {
        return 
true
    
}
    else
    {
        if((
Team == CS_TEAM_T && str_to_num(g_szOptionsTeam[iIndex]) == 1) || (Team == CS_TEAM_CT && str_to_num(g_szOptionsTeam[iIndex]) == 2))
        {
            return 
true
        
}
        else
        {
            return 
false
        
}
    }

    return 
false

}


/*
    ***START OF ITEM ACTIONS***
    ***START OF ITEM ACTIONS***
    ***START OF ITEM ACTIONS***
*/


public ActionGrenade(idgrenadeiIndexiMoney)
{
    new 
Name[18
    
get_user_name(idName17)
    
client_print(0print_chat"%s %s bought %s for $%s at the Shop!"tagNameg_szOptions[iIndex], g_szOptionsAmount[iIndex])

    
cs_set_user_money(idiMoney str_to_num(g_szOptionsAmount[iIndex]))

    switch(
grenade)
    {
        case 
1:
        {
            if(!
cs_get_user_bpammo(idCSW_HEGRENADE))
            {
                
give_item(id"weapon_hegrenade")
            }
            else
            {
                
client_print(idprint_chat"%s You already have a %s!"tagg_szOptions[iIndex])
            }
        }
        case 
2:
        {
            if(!
cs_get_user_bpammo(idCSW_FLASHBANG))
            {
                
give_item(id"weapon_flashbang")
                
client_cmdid"spk items/9mmclip2" )
            }
            else
            {
                
client_print(idprint_chat"%s You already have a %s!"tagg_szOptions[iIndex])
            }
        }
        case 
3:
        {
            if(!
cs_get_user_bpammo(idCSW_SMOKEGRENADE))
            {
                
give_item(id"weapon_smokegrenade")
                
client_cmdid"spk buttons/lever5" )
            }
            else
            {
                
client_print(idprint_chat"%s You already have a %s!"tagg_szOptions[iIndex])
            }
        }
    }

    return 
PLUGIN_HANDLED
}

public 
ActionHealth(idiIndexiMoney)
{
    if(
g_szOptionUsed[iIndex][id] == true)
    {
        
client_print(idprint_chat"%s You have already bought %s!"tagg_szOptions[iIndex])
        return 
PLUGIN_HANDLED
    
}

    new 
Name[18
    
get_user_name(idName17)
    
client_print(0print_chat"%s %s bought %s for $%s at the Shop!"tagNameg_szOptions[iIndex], g_szOptionsAmount[iIndex])

    
cs_set_user_money(idiMoney str_to_num(g_szOptionsAmount[iIndex]))

    new 
health get_user_health(id) + 155
    set_user_health
idhealth )

    
g_szOptionUsed[iIndex][id] = true

    client_cmd
id"spk items/medshot4" )

    return 
PLUGIN_HANDLED
}

public 
ActionArmor(idiIndexiMoney)
{
    if(
g_szOptionUsed[iIndex][id] == true)
    {
        
client_print(idprint_chat"%s You have already bought %s!"tagg_szOptions[iIndex])
        return 
PLUGIN_HANDLED
    
}

    new 
Name[18]
    
get_user_name(idName17)
    
client_print(0print_chat"%s %s bought %s for $%s at the Shop!"tagNameg_szOptions[iIndex], g_szOptionsAmount[iIndex])

    
cs_set_user_money(idiMoney str_to_num(g_szOptionsAmount[iIndex]))
    
cs_set_user_armor(id255CS_ARMOR_VESTHELM)

    
g_szOptionUsed[iIndex][id] = true

    client_cmd
id"spk items/ammopickup2" )

    return 
PLUGIN_HANDLED
}

public 
ActionBoots(idiIndexiMoney)
{
    if(
g_szOptionUsed[iIndex][id] == true)
    {
        
client_print(idprint_chat"%s You have already bought %s!"tagg_szOptions[iIndex])
        return 
PLUGIN_HANDLED
    
}

    new 
Name[18
    
get_user_name(idName17)
    
client_print(0print_chat"%s %s bought %s for $%s at the Shop!"tagNameg_szOptions[iIndex], g_szOptionsAmount[iIndex])

    
cs_set_user_money(idiMoney str_to_num(g_szOptionsAmount[iIndex]))


    new 
Float:fGameTime get_gametime();
    
emit_soundidCHAN_STATICg_szSoundBootsOfSpeed1.0ATTN_NORM0PITCH_NORM )
    
set_user_maxspeedid400.0 )    //Give them the speed

    
new Float:fTimeOut get_pcvar_float(SHOP_BOOTSOFSPEEDTIME)
    
set_taskfTimeOut"TaskRemoveBootsOfSpeed"TASK_SPEED id__"a")

    
g_bBootsOfSpeed[id] = true
    g_fBootsOfSpeedTimeOut
[id] = fGameTime fTimeOut


    g_szOptionUsed
[iIndex][id] = true

    
return PLUGIN_HANDLED
}

public 
ActionStealth(idiIndexiMoney)
{
    if(
g_szOptionUsed[iIndex][id] == true)
    {
        
client_print(idprint_chat"%s You have already bought %s!"tagg_szOptions[iIndex])
        return 
PLUGIN_HANDLED
    
}

    new 
Name[18
    
get_user_name(idName17)
    
client_print(0print_chat"%s %s bought %s for $%s at the Shop!"tagNameg_szOptions[iIndex], g_szOptionsAmount[iIndex])

    
cs_set_user_money(idiMoney str_to_num(g_szOptionsAmount[iIndex]))


    new 
Float:fGameTime get_gametime();
    
emit_soundidCHAN_STATICg_szSoundStealth1.0ATTN_NORM0PITCH_NORM )
    
set_user_rendering(idkRenderFxGlowShell000kRenderTransColor0)
    new 
Float:fTimeOut get_pcvar_float(SHOP_STEALTHTIME)
    
set_taskfTimeOut"TaskRemoveStealth"TASK_INVIS id__"a")

    
g_fStealthTimeOut[id] = fGameTime fTimeOut
    g_bStealth
[id] = true

    g_szOptionUsed
[iIndex][id] = true

    
return PLUGIN_HANDLED
}

public 
ActionInvincibility(idiIndexiMoney)
{
    if(
g_szOptionUsed[iIndex][id] == true)
    {
        
client_print(idprint_chat"%s You have already bought %s!"tagg_szOptions[iIndex])
        return 
PLUGIN_HANDLED
    
}

    new 
Name[18
    
get_user_name(idName17)
    
client_print(0print_chat"%s %s bought %s for $%s at the Shop!"tagNameg_szOptions[iIndex], g_szOptionsAmount[iIndex])

    
cs_set_user_money(idiMoney str_to_num(g_szOptionsAmount[iIndex]))

    new 
Float:fGameTime get_gametime();
    
emit_soundidCHAN_STATICg_szSoundInvincibility1.0ATTN_NORM0PITCH_NORM )
    
    
entity_set_floatidEV_FL_takedamageDAMAGE_NO );
        
    if ( 
fGameTime >= g_fStealthTimeOut[id] )
    {
        
set_user_renderingidkRenderFxGlowShell255255255kRenderNormal16 );
    }

    new 
Float:fTimeOut get_pcvar_float(SHOP_INVINCIBILITYTIME)
    
set_taskfTimeOut"TaskRemoveInvincibility"TASK_GODMODE id__"a")

    
g_fInvincibilityTimeOut[id] = fGameTime fTimeOut

    g_szOptionUsed
[iIndex][id] = true

    
return PLUGIN_HANDLED
}

public 
ActionAwp(idiIndexiMoney)
{
    if(
g_szOptionUsed[iIndex][id] == true)
    {
        
client_print(idprint_chat"%s You have already bought %s!"tagg_szOptions[iIndex])
        return 
PLUGIN_HANDLED
    
}

    new 
Name[18
    
get_user_name(idName17)
    
client_print(0print_chat"%s %s bought %s for $%s at the Shop!"tagNameg_szOptions[iIndex], g_szOptionsAmount[iIndex])

    
cs_set_user_money(idiMoney str_to_num(g_szOptionsAmount[iIndex]))

    
give_itemid"weapon_awp" );
    
cs_add_weapon_ammoidCSW_AWP);

    
g_szOptionUsed[iIndex][id] = true

    
return PLUGIN_HANDLED
}

public 
ActionDeagle(idiIndexiMoney)
{
    if(
g_szOptionUsed[iIndex][id] == true)
    {
        
client_print(idprint_chat"%s You have already bought %s!"tagg_szOptions[iIndex])
        return 
PLUGIN_HANDLED
    
}

    new 
Name[18
    
get_user_name(idName17)
    
client_print(0print_chat"%s %s bought %s for $%s at the Shop!"tagNameg_szOptions[iIndex], g_szOptionsAmount[iIndex])

    
cs_set_user_money(idiMoney str_to_num(g_szOptionsAmount[iIndex]))

    
give_itemid"weapon_deagle" );
    
cs_add_weapon_ammoidCSW_DEAGLE);

    
g_szOptionUsed[iIndex][id] = true

    
return PLUGIN_HANDLED
}

public 
ActionCamouflage(idiIndexiMoney)
{
    if(
g_szOptionUsed[iIndex][id] == true)
    {
        
client_print(idprint_chat"%s You have already bought %s!"tagg_szOptions[iIndex])
        return 
PLUGIN_HANDLED
    
}

    new 
Name[18
    
get_user_name(idName17)
    
client_print(0print_chat"%s %s bought %s for $%s at the Shop!"tagNameg_szOptions[iIndex], g_szOptionsAmount[iIndex])

    
cs_set_user_money(idiMoney str_to_num(g_szOptionsAmount[iIndex]))


    switch(
cs_get_user_team(id))
    {
        case 
CS_TEAM_T:
        {
            
cs_set_user_model(id"gign")
        }
        case 
CS_TEAM_CT:
        {
            
cs_set_user_model(id"leet")
        }
    }


    
emit_sound(idCHAN_STATICg_szSoundCamouflage1.0ATTN_NORM0PITCH_NORM)

    new 
Float:fGameTime get_gametime()

    new 
Float:fTimeOut get_pcvar_float(SHOP_CAMOUFLAGETIME)
    
set_taskfTimeOut"TaskRemoveCamouflage"TASK_DISGUISE id__"a")

    
g_fCamouflageTimeOut[id] = fGameTime fTimeOut

    g_szOptionUsed
[iIndex][id] = true

    
return PLUGIN_HANDLED
}

public 
ActionNoFallDamage(idiIndexiMoney)
{
    if(
g_szOptionUsed[iIndex][id] == true)
    {
        
client_print(idprint_chat"%s You have already bought %s!"tagg_szOptions[iIndex])
        return 
PLUGIN_HANDLED
    
}

    new 
Name[18
    
get_user_name(idName17)
    
client_print(0print_chat"%s %s bought %s for $%s at the Shop!"tagNameg_szOptions[iIndex], g_szOptionsAmount[iIndex])

    
cs_set_user_money(idiMoney str_to_num(g_szOptionsAmount[iIndex]))

    
g_bHasNoFallDamage[id] = true

    client_cmd
id"spk items/tr_kevlar; wait; spk debris/metal3" )

    
g_szOptionUsed[iIndex][id] = true

    
return PLUGIN_HANDLED
}

public 
ActionAntiFlash(idiIndexiMoney)
{
    if(
g_szOptionUsed[iIndex][id] == true)
    {
        
client_print(idprint_chat"%s You have already bought %s!"tagg_szOptions[iIndex])
        return 
PLUGIN_HANDLED
    
}

    new 
Name[18
    
get_user_name(idName17)
    
client_print(0print_chat"%s %s bought %s for $%s at the Shop!"tagNameg_szOptions[iIndex], g_szOptionsAmount[iIndex])

    
cs_set_user_money(idiMoney str_to_num(g_szOptionsAmount[iIndex]))

    
g_bHasNoFlash[id] = true

    client_cmd
id"spk items/tr_kevlar; wait; spk debris/glass2" )

    
g_szOptionUsed[iIndex][id] = true

    
return PLUGIN_HANDLED
}

public 
ActionAntiFrost(idiIndexiMoney)
{
    if(
g_szOptionUsed[iIndex][id] == true)
    {
        
client_print(idprint_chat"%s You have already bought %s!"tagg_szOptions[iIndex])
        return 
PLUGIN_HANDLED
    
}

    new 
Name[18
    
get_user_name(idName17)
    
client_print(0print_chat"%s %s bought %s for $%s at the Shop!"tagNameg_szOptions[iIndex], g_szOptionsAmount[iIndex])

    
cs_set_user_money(idiMoney str_to_num(g_szOptionsAmount[iIndex]))

    
add_user_immune(id)

    
client_cmdid"spk items/tr_kevlar; wait; spk debris/glass2" )

    
g_szOptionUsed[iIndex][id] = true

    
return PLUGIN_HANDLED
}

public 
ActionSilentFeet(idiIndexiMoney)
{
    if(
g_szOptionUsed[iIndex][id] == true)
    {
        
client_print(idprint_chat"%s You have already bought %s!"tagg_szOptions[iIndex])
        return 
PLUGIN_HANDLED
    
}

    new 
Name[18
    
get_user_name(idName17)
    
client_print(0print_chat"%s %s bought %s for $%s at the Shop!"tagNameg_szOptions[iIndex], g_szOptionsAmount[iIndex])

    
cs_set_user_money(idiMoney str_to_num(g_szOptionsAmount[iIndex]))

    
client_cmdid"spk items/tr_kevlar; wait; spk roach/rch_smash" )

    
set_user_footsteps(id1)

    
g_szOptionUsed[iIndex][id] = true

    
return PLUGIN_HANDLED
}

public 
ActionRespawn(idiIndexiMoney)
{
    if(
g_bUsedRespawn[id] == true)
    {
        
client_print(idprint_chat"%s You have already bought %s!"tagg_szOptions[iIndex])
        return 
PLUGIN_HANDLED
    
}

    new 
Name[18
    
get_user_name(idName17)
    
client_print(0print_chat"%s %s bought %s for $%s at the Shop!"tagNameg_szOptions[iIndex], g_szOptionsAmount[iIndex])

    
cs_set_user_money(idiMoney str_to_num(g_szOptionsAmount[iIndex]))

    
ExecuteHamB(Ham_CS_RoundRespawnid)

    
set_task1.0"TaskRespawnNades"TASK_RESPAWN id__"a")

    
client_cmd(id"spk debris/beamstart9.wav")

    
message_begin(MSG_ONEget_user_msgid("ScreenFade"), {0,0,0}, id);
    
write_short(seconds_to_screenfade_units(1));
    
write_short(seconds_to_screenfade_units(1));
    
write_short(1<<12);
    
write_byte(255);
    
write_byte(0);
    
write_byte(0);
    
write_byte(175);
    
message_end();

    
g_bUsedRespawn[id] = true

    
return PLUGIN_HANDLED
}

/*
    ***END OF ITEM ACTIONS***
    ***END OF ITEM ACTIONS***
    ***END OF ITEM ACTIONS***
*/


public TaskRemoveBootsOfSpeed(id)
{
    
id -= TASK_SPEED
    
    
if (!is_user_alive(id))
    {
        return 
PLUGIN_HANDLED
    
}

    
set_user_maxspeed(id250.0)
    
g_bBootsOfSpeed[id] = false

    client_cmd
id"spk weapons/electro4" )

    return 
PLUGIN_HANDLED
}

public 
TaskRemoveStealth(id)
{
    
id -= TASK_INVIS
    
    
//make sure player is connected
    
if (is_user_connected(id))
    {
        
//only set players rendering back to normal if player is not invincible
        
if (get_gametime() <= g_fStealthTimeOut[id])
        {    
            
set_user_rendering(idkRenderFxGlowShell000kRenderNormal255)
            
g_bStealth[id] = false
        
}
        else    
//if player is invincible then set player to glow white
        
{
            
set_user_rendering(idkRenderFxGlowShell255255255kRenderTransColor16)
        }
    }

    
client_cmdid"spk weapons/electro4" )

    return 
PLUGIN_HANDLED
}

public 
TaskRemoveInvincibility(id)
{
    
id -= TASK_GODMODE
    
    
if (!is_user_alive(id)) return PLUGIN_HANDLED
    
    set_user_godmode
(id0)
    
    if (
get_gametime() >= g_fStealthTimeOut[id])
    {
        
set_user_rendering(idkRenderFxGlowShell000kRenderNormal16)
    }

    
client_cmdid"spk weapons/electro4" )

    return 
PLUGIN_HANDLED
}

public 
TaskRemoveCamouflage(id)
{
    
id -= TASK_DISGUISE
    
    
if (!is_user_alive(id)) return PLUGIN_HANDLED

    
switch(cs_get_user_team(id))
    {
        case 
CS_TEAM_T:
        {
            
cs_set_user_model(id"leet")
        }
        case 
CS_TEAM_CT:
        {
            
cs_set_user_model(id"gign")
        }
    }

    
client_cmdid"spk weapons/electro4" )

    return 
PLUGIN_HANDLED
}

public 
TaskRespawnNades(id)
{
    
id -= TASK_RESPAWN

    
new CsTeams:Team
    Team 
cs_get_user_team(id)

    if(
Team == CS_TEAM_T)
    {
        
give_item(id"weapon_flashbang")
        
give_item(id"weapon_hegrenade")
        
give_item(id"weapon_smokegrenade")
    }
}

//STOCKS AND OTHER
stock cs_add_weapon_ammoidiWeaponiAmount )
{
    if( 
is_user_aliveid ) )
    {
        new 
iBadWeaponsBitsum = ( ( << CSW_KNIFE ) | ( << CSW_HEGRENADE ) | ( << CSW_FLASHBANG ) | ( << CSW_SMOKEGRENADE ) | ( << ) );
        
        if( !( ( 
<< iWeapon ) & iBadWeaponsBitsum ) )
        {
            new 
szWName[20];
            
get_weaponnameiWeaponszWName19 );
            new 
iWep find_ent_by_owneriWepszWNameid);
            
            if( 
iWep 
            {
                
cs_set_weapon_ammoiWepiAmount );
                
                return 
iWep;
            }
        }
    }
    
    return 
0;
}

public 
Message_ScreenFade(iMsgIdMSG_DESTid)
{
    if(     
g_bHasNoFlash[id]      &&
        
get_msg_arg_int(4) == 255 &&
        
get_msg_arg_int(5) == 255 &&
        
get_msg_arg_int(6) == 255 &&    
        
get_msg_arg_int(7) >= 200 )
    {
        
client_cmdid"spk debris/beamstart1" )
        return 
PLUGIN_HANDLED
    
}
    return 
PLUGIN_CONTINUE

__________________
HideNSeek bug fixed here:http://forums.alliedmods.net/showpos...&postcount=951

PM me if you want a nice HideNSeek shop
NEED PLUGIN TESTERS PM ME

Last edited by r4ndomz; 03-16-2012 at 15:24.
r4ndomz is offline
Send a message via Skype™ to r4ndomz
fysiks
Veteran Member
Join Date: Sep 2007
Location: Flatland, USA
Old 03-16-2012 , 15:16   Re: Is it possible to use a pcvar in an array?
Reply With Quote #8

Quote:
Originally Posted by r4ndomz View Post
If i remove the 27 i get warnings
Well, that doesn't make sense to me (especially since you don't say what the warnings are) but you can leave it in there if you want I guess.
__________________
fysiks is offline
r4ndomz
Senior Member
Join Date: Jul 2009
Location: The Hood
Old 03-16-2012 , 20:57   Re: Is it possible to use a pcvar in an array?
Reply With Quote #9

Quote:
Originally Posted by fysiks View Post
Well, that doesn't make sense to me (especially since you don't say what the warnings are) but you can leave it in there if you want I guess.
I already posted them above.

Here they are again
Quote:
//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// multipagemenu.sma
// C:\Users\Magnolium\Desktop\USB\compiler1\mult ipagemenu.sma(201) : warning 224
: indeterminate array size in "sizeof" expression (symbol "")
// C:\Users\Magnolium\Desktop\USB\compiler1\mult ipagemenu.sma(202) : warning 224
: indeterminate array size in "sizeof" expression (symbol "")
// C:\Users\Magnolium\Desktop\USB\compiler1\mult ipagemenu.sma(203) : warning 224
: indeterminate array size in "sizeof" expression (symbol "")
// C:\Users\Magnolium\Desktop\USB\compiler1\mult ipagemenu.sma(204) : warning 224
: indeterminate array size in "sizeof" expression (symbol "")
// Header size: 2476 bytes
// Code size: 26664 bytes
// Data size: 15600 bytes
// Stack/heap size: 16384 bytes; max. usage is unknown, due to recursion
// Total requirements: 61124 bytes
//
// 4 Warnings.
// Done.
//
// Compilation Time: 0.44 sec
// ----------------------------------------

Press enter to exit ...
woot! shooting star!!
__________________
HideNSeek bug fixed here:http://forums.alliedmods.net/showpos...&postcount=951

PM me if you want a nice HideNSeek shop
NEED PLUGIN TESTERS PM ME

Last edited by r4ndomz; 03-16-2012 at 20:59.
r4ndomz is offline
Send a message via Skype™ to r4ndomz
fysiks
Veteran Member
Join Date: Sep 2007
Location: Flatland, USA
Old 03-16-2012 , 23:56   Re: Is it possible to use a pcvar in an array?
Reply With Quote #10

You need to post code as an attachment. From now on, if it's longer than 100 lines then attach the .sma to the post.

I'm still baffled by that warning. If it works like you have it (leaving the 27 there) then don't worry about it.

EDIT: I see what is causing it now. It is being declared as a constant but is being used as a variable. It doesn't work this way. If you are going to use it as a variable then you must not declare it as a constant and must give all dimensions.

Therefore, you should remove "const" and change 27 to something like 40 or more.
__________________

Last edited by fysiks; 03-17-2012 at 00:03.
fysiks is offline
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 -4. The time now is 15:51.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode