Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Plugins Details:
- * Description:
- This is a shop plugin for JailBreak plugins.
- This plugin includes Knives Shop and Bank Menu.
- This plugin was published on www.Fxp.co.il - http://www.fxp.co.il/showthread.php?t=12969869 by _Rejack.
- * Client Commands (Chat):
- * Say /Shop - Open shop menu
- * Say /Knife - Open knives shop
- * Say /Bank - Open bank menu
- * Say /NextCash - Every 30 Mins (Cvar) you get 2500 Cash (Cvar)
- * Say /GetCash - Every round you get 150 Cash (Cvar)
- * Say /Cash <Name> - Check how much cash a player have
- * Say /Gamble <Amount> - Gamble on amount of cash (/gamble allin or /gamble all - to gamble on all of your cash)
- * Say /Transfer <Name> <Amount> - Transfer an amount of cash to a player
- * Say /Deposit <Amount> - Depoist an amount of cash into the bank
- * Say /Withdraw <Amount< - Withdraw an amoount of cash from the bank
- * Admin Commands (Console):
- * amx_set_knife <nick, #userid, authid> <knife level>
- - Set a player knife level (Flag: L - ADMIN_RCON needed)
- * amx_set_bank <nick, #userid, authid> <bank cash>
- - Set a player cash in the bank (Flag: L - ADMIN_RCON needed)
- * amx_add_cash <nick, #userid, authid> <cash>
- - Give a player a certain amount of cash (Flag: L - ADMIN_RCON needed)
- * amx_remove_cash <nick, #userid, authid> <cash>
- - Remove a certain amount of cash from a player (Flag: L - ADMIN_RCON needed)
- * Cvars:
- * Cvars are in the .cfg file (JailBreakShop.cfg)
- * Natives:
- * get_user_cash( client )
- - get the amount of cash a player have
- * set_user_cash( client, amount )
- - set the amount of cash for a player
- * get_user_bank( client )
- - get the amount of cash a player have in the bank
- * set_user_bank( client, amount )
- - set the amount of cash a player have in the bank
- * get_user_knife( client )
- - get the knife level of the player current knife
- - if a player bought the 3rd knife but using the 2nd knife this will get the 2nd knife
- * set_user_knife( client, level )
- - set a player knife level
- * get_knife_name( client )
- - get the current knife name a player have.
- * get_user_maxknife( client )
- - get the knife level of the player top knife
- - if a player bought the 3rd knife but using the 2nd knife this will get the 3rd knife
- * Credits:
- * Rejack : For creating the plugin.
- * wiyH : For designing the new v_knife0.mdl.
- * Support:
- Need help in something ?
- - Fxp: http://www.fxp.co.il/member.php?u=659448
- - Skype: yan1255
- * Change Log:
- * v1.0: was never published.
- * v1.1: was never published.
- * v1.2:
- * first published the plugin as BETA
- * v1.3:
- * Completely rebuilt the plugin
- * v1.3.1:
- * Fixed Bank
- * Fixed NextCash
- * v1.3.2:
- * Fixed Powers Shop Menu
- * Fixed Misc Shop Menu to show the note by cvar
- * v1.3.3:
- * Fixed transfer.
- * Fixed Get Cash
- * Fixed box.
- * Made that only T's get HP and AP from knives.
- * Fixed powers menu (showed something unneeded).
- * Save bug.
- * Set Knife Bug
- * v1.3.4:
- * Fixed damage bug
- * Changed the files names.
- * Changed the v_bknuckle model (credit to Stav)
- * Changed team error from Counter-Terrorist to Terrorists.
- */
- /* Includes */
- #include < amxmodx >
- #include < amxmisc >
- #include < cstrike >
- #include < fakemeta_util >
- #include < hamsandwich >
- #include < engine >
- #include < fvault >
- /* Defines */
- #define KNIFE_DIR "models/JailBreak/Knives/"
- #define V_KNIFEMODEL "v_knife"
- #define MAX_KNIFE 30
- #pragma semicolon 1
- /* Enums */
- enum _:enData
- {
- Cash,
- Bank,
- Connection,
- mKnife,
- cKnife
- };
- enum _:en_pCvars
- {
- cvarToggle,
- cvarToggleBank,
- cvarToggleKnife,
- cvarToggleGetCash,
- cvarToggleNextCash,
- cvarToggleSwitchTeams,
- cvarFirstCash,
- cvarGambleMin,
- cvarGambleChance,
- cvarTransferMin,
- cvarTransferMax,
- cvarTransferMaxAmount,
- cvarNextTime,
- cvarNextAmount,
- cvarGetAmount,
- cvarTax,
- cvarKillCash,
- cvarHeadshot,
- cvarHeg,
- cvarFlash,
- cvarSmoke,
- cvarHealth,
- cvarDisHealth,
- cvarArmor,
- cvarDisArmor,
- cvarGodmode,
- cvarSpeed,
- cvarGravity,
- cvarStealth,
- cvarTimeGodmode,
- cvarTimeSpeed,
- cvarTimeGravity,
- cvarTimeStealth,
- cvarSwitch,
- cvarFreeday,
- cvarPrefix,
- cvarSystem
- };
- enum _:enKnivesData
- {
- kName[ 32 ],
- kCost[ 10 ],
- kHealth[ 5 ],
- kArmor[ 5 ],
- kDamage[ 3 ]
- };
- enum _:enCvarsData
- {
- cvarData,
- cvarString[ 32 ],
- cvarName[ 64 ]
- };
- enum _:enShopData
- {
- iName[ 32 ],
- iCost,
- iClass[ 64 ],
- iTime
- };
- /* Arrays */
- new szCvars[ ][ enCvarsData ] =
- {
- { cvarToggle, "1", "jbshop_toggle" },
- { cvarToggleBank, "1", "jbshop_toggle_bank" },
- { cvarToggleKnife, "1", "jbshop_enable_knife" },
- { cvarToggleGetCash, "0", "jbshop_enable_getcash" },
- { cvarToggleNextCash, "1", "jbshop_enable_nextcash" },
- { cvarToggleSwitchTeams, "0", "jbshop_switchteams" },
- { cvarFirstCash, "0", "jbshop_first_time" },
- { cvarGambleMin, "300", "jbshop_gamble_min" },
- { cvarGambleChance, "50", "jbshop_gamble_chance" },
- { cvarTransferMin, "300", "jbshop_transfer_min" },
- { cvarTransferMax, "50000", "jbshop_transfer_max" },
- { cvarTransferMaxAmount, "50000", "jbshop_transfer_max_amount" },
- { cvarNextTime, "5", "jbshop_nextcash_time" },
- { cvarNextAmount, "2500", "jbshop_nextcash_amount" },
- { cvarGetAmount, "0", "jbshop_getcash_amount" },
- { cvarTax, "10", "jbshop_tax" },
- { cvarKillCash, "250", "jbshop_cash_kill" },
- { cvarHeadshot, "500", "jbshop_cash_headshot" },
- { cvarHeg, "6000", "jbshop_cost_hegrenade" },
- { cvarFlash, "3500", "jbshop_cost_flash" },
- { cvarSmoke, "6500", "jbshop_cost_smoke" },
- { cvarHealth, "5000", "jbshop_cost_health" },
- { cvarDisHealth, "250", "jbshop_discount_health" },
- { cvarArmor, "750", "jbshop_cost_armor" },
- { cvarDisArmor, "150", "jbshop_discount_armor" },
- { cvarGodmode, "8000", "jbshop_cost_godmode" },
- { cvarSpeed, "5000", "jbshop_cost_speed" },
- { cvarGravity, "5000", "jbshop_cost_gravity" },
- { cvarStealth, "7000", "jbshop_cost_stealth" },
- { cvarTimeGodmode, "10", "jbshop_time_godmode" },
- { cvarTimeSpeed, "15", "jbshop_time_speed" },
- { cvarTimeGravity, "15", "jbshop_time_gravity" },
- { cvarTimeStealth, "10", "jbshop_time_stealth" },
- { cvarSwitch, "25000", "jbshop_cost_switchteams" },
- { cvarFreeday, "8000", "jbshop_cost_freeday" },
- { cvarPrefix, "SoB", "jbshop_prefix" },
- { cvarSystem, "1", "jbshop_save_system" }
- };
- new szKnives[ MAX_KNIFE ][ enKnivesData ] =
- {
- { "SoB Knife", "0", "0", "0", "0" },
- { "Holy Knife", "15000", "2", "6", "3" },
- { "Boxer Knife", "50000", "3", "8", "5" },
- { "Ninja Knife", "60000", "4", "9", "8" },
- { "Dark Knife", "100000", "5", "10", "10" },
- { "Gold Daggers", "200000", "6", "12", "11" },
- { "Gold Knife", "250000", "7", "15", "12" },
- { "GodModel Knife", "350000", "8", "19", "13" },
- { "Banana Knife", "400000", "9", "21", "15" },
- { "Katana Sword", "600000", "11", "24", "18" },
- { "Poly Knife", "900000", "12", "26", "20" },
- { "Army Knife", "1000000", "13", "28", "21" },
- { "Butterfly Knife", "2200000", "14", "31", "22" },
- { "Basliong", "3000000", "15", "40", "23" },
- { "Yellow Knife", "4000000", "17", "41", "25" },
- { "Master Knife", "4500000", "18", "42", "27" },
- { "Kingdom Knife", "5000000", "20", "44", "29" },
- { "Fuck Knife", "7000000", "21", "48", "30" },
- { "RainBow Knife", "7500000", "23", "52", "31" },
- { "GRASS Knife", "9000000", "24", "53", "32" },
- { "Joy Knife", "1000000000", "25", "56", "33" },
- { "BatMan Knife", "1200000000", "26", "60", "35" },
- { "Krembo Knife", "1300000000", "28", "69", "36" },
- { "Elite Knife", "1500000000", "30", "71", "37" },
- { "Anog Knife", "1600000000", "31", "72", "38" },
- { "Assassin's Dagger", "1800000000", "32", "73", "40" },
- { "Picture Knife", "1999900000", "35", "74", "43" },
- { "OfyyrHaHatih Knife", "2000000000", "37", "75", "45" },
- { "Assassin's Dagger", "2100000000", "40", "80", "46" },
- { "Zooloo Knife", "2200000000", "41", "82", "49" }
- };
- new szGrenades[ ][ enShopData ] =
- {
- { "Explosive", cvarHeg, "weapon_hegrenade" },
- { "Flashbang", cvarFlash, "weapon_flashbang" },
- { "SmokeGrenade", cvarSmoke, "weapon_smokegrenade" }
- };
- new szPowers[ ][ enShopData ] =
- {
- { "Godmode", cvarGodmode, "taskRemoveGodmode", cvarTimeGodmode },
- { "Speed", cvarSpeed, "taskRemoveSpeed", cvarTimeSpeed },
- { "Gravity", cvarGravity, "taskRemoveGravity", cvarTimeGravity },
- { "Stealth", cvarStealth, "taskRemoveStealth", cvarTimeStealth }
- };
- new szMisc[ ][ enShopData ] =
- {
- { "Switch Teams", cvarSwitch },
- { "Freeday", cvarFreeday }
- };
- new p_Knife[ ] = "p_knives.mdl";
- new szItem[ 128 ];
- new szVault[ ] = "JBShopVault";
- /* Integers */
- new iData[ 33 ][ enData ], iKnifeCallback[ 33 ];
- /* Variables */
- new pCvar[ en_pCvars ], kCvarsCost[ MAX_KNIFE ], kCvarsDamage[ MAX_KNIFE ], kCvarsHealth[ MAX_KNIFE ], kCvarsArmor[ MAX_KNIFE ], szKnivesModels[ MAX_KNIFE ][ 128 ];
- /* Booleans */
- new bool: bFreeday[ 33 ], bool: bSwitch[ 33 ], bool: bGodmode[ 33 ], bool: bSpeed[ 33 ], bool: bGravity[ 33 ], bool: bStealth[ 33 ],
- bool: bActiveGet[ 33 ];
- /* Float */
- new Float:fNextTime[ 33 ];
- public plugin_init()
- {
- register_plugin( "JailBreak Shop", "1.3.4", "Rejack" );
- /* Client Commands */
- register_clcmd( "say", "CmdSay" );
- /* Console Commands */
- register_concmd("set_knife", "CmdSetKnife", ADMIN_RCON, "<nick, #userid, authid> <knife level>");
- register_concmd("set_bank", "CmdSetBank", ADMIN_RCON, "<nick, #userid, authid> <bank cash>");
- register_concmd("add_cash", "CmdAddCash", ADMIN_RCON, "<nick, #userid, authid> <cash>");
- register_concmd("remove_cash", "CmdRemoveCash", ADMIN_RCON, "<nick, #userid, authid> <cash>");
- /* Events */
- register_event( "CurWeapon", "evCurWeapon", "be", "1=1" );
- register_event( "DeathMsg", "evDeathMsg", "a" );
- /* Log Events */
- register_logevent( "evRoundStart", 2, "1=Round_Start" );
- /* Forwards */
- RegisterHam( Ham_Spawn, "player", "FwdSpawn_Post", 1 );
- RegisterHam( Ham_TakeDamage, "player", "FwdTakeDamage_Pre", 0 );
- /* Cvars */
- for ( new i; i < sizeof szCvars; i++ )
- pCvar[ szCvars[ i ][ cvarData ] ] = register_cvar( szCvars[ i ][ cvarName ], szCvars[ i ][ cvarString ] );
- for ( new i; i < sizeof szKnives; i++ )
- {
- formatex( szItem, charsmax( szItem ), "jbshop_knife%i_cost", i );
- kCvarsCost[ i ] = register_cvar( szItem, szKnives[ i ][ kCost ] );
- formatex( szItem, charsmax( szItem ), "jbshop_knife%i_health", i );
- kCvarsHealth[ i ] = register_cvar( szItem, szKnives[ i ][ kHealth ] );
- formatex( szItem, charsmax( szItem ), "jbshop_knife%i_armor", i );
- kCvarsArmor[ i ] = register_cvar( szItem, szKnives[ i ][ kArmor ] );
- formatex( szItem, charsmax( szItem ), "jbshop_knife%i_damage", i );
- kCvarsDamage[ i ] = register_cvar( szItem, szKnives[ i ][ kDamage ] );
- }
- }
- public plugin_precache()
- {
- for ( new i; i < MAX_KNIFE; i++ )
- {
- formatex( szKnivesModels[ i ], 127, "%s%s%i.mdl", KNIFE_DIR, V_KNIFEMODEL, i );
- precache_model( szKnivesModels[ i ] );
- }
- new szModel[ 128 ];
- formatex( szModel, charsmax( szModel ), "%s%s", KNIFE_DIR, p_Knife );
- precache_model( szModel );
- }
- public plugin_cfg()
- {
- new szFileDir[ 32 ], szFile[ 128 ];
- get_configsdir( szFileDir, charsmax( szFileDir ) );
- formatex( szFile, charsmax( szFile ), "%s/JailBreakShop.cfg", szFileDir );
- if ( !file_exists( szFile ) )
- {
- server_print( "Error: %s was not found!", szFile );
- return 0;
- }
- server_cmd( "exec %s", szFile );
- return 0;
- }
- public plugin_natives()
- {
- register_library( "JailBreakShop" );
- register_native( "get_user_cash", "_get_cash" );
- register_native( "set_user_cash", "_set_cash" );
- register_native( "get_user_bank", "_get_bank" );
- register_native( "set_user_bank", "_set_bank" );
- register_native( "get_user_knife", "_get_knife" );
- register_native( "set_user_knife", "_set_knife" );
- register_native( "get_knife_name", "_get_knife_name" );
- register_native( "get_user_maxknife", "_get_maxknife" );
- }
- /* Natives */
- public _get_cash( plugin, params )
- {
- new client = get_param( 1 );
- return iData[ client ][ Cash ];
- }
- public _set_cash( plugin, params )
- {
- new client = get_param( 1 );
- new amount = max( 0, get_param( 2 ) );
- iData[ client ][ Cash ] = amount;
- if ( iData[ client ][ Bank ] <0 )
- iData[ client ][ Bank ] = 0;
- CmdSave( client );
- return iData[ client ][ Cash ];
- }
- public _get_bank( plugin, params )
- {
- new client = get_param( 1 );
- return iData[ client ][ Bank ];
- }
- public _set_bank( plugin, params )
- {
- new client = get_param( 1 );
- new amount = max( 0, get_param( 2 ) );
- iData[ client ][ Bank ] = amount;
- if ( iData[ client ][ Bank ] <0 )
- iData[ client ][ Bank ] = 0;
- CmdSave( client );
- return iData[ client ][ Bank ];
- }
- public _get_knife( plugin, params )
- {
- new client = get_param( 1 );
- return iData[ client ][ cKnife ];
- }
- public _set_knife( plugin, params )
- {
- new client = get_param( 1 );
- new amount = max( 0, get_param( 2 ) );
- iData[ client ][ mKnife ] = amount;
- if ( iData[ client ][ mKnife ] < 0 )
- iData[ client ][ mKnife ] = 0;
- if ( iData[ client ][ mKnife ] > sizeof szKnives )
- iData[ client ][ mKnife ] = 0;
- iData[ client ][ cKnife ] = iData[ client ][ mKnife ];
- CmdSave( client );
- return iData[ client ][ Bank ];
- }
- public _get_knife_name( plugin, params )
- {
- new client = get_param( 1 );
- return szKnives[ iData[ client ][ cKnife ] ];
- }
- public _get_maxknife( plugin, params )
- {
- new client = get_param( 1 );
- return iData[ client ][ mKnife ];
- }
- /* Shop */
- public CmdShop( client )
- {
- if ( Cvar() == 0 )
- return 1;
- if ( cs_get_user_team( client ) != CS_TEAM_T )
- return ColorPrint( client, "You need to be a^4 Terrorist^1." );
- formatex( szItem, charsmax( szItem ), "\r[%s]\w JailBreak Shop^nYou have\r %i\w Cash", Prefix(), iData[ client ][ Cash ] );
- new Menu = menu_create( szItem, "SubShop" );
- menu_additem( Menu, "\rGrenades\w Shop" );
- menu_additem( Menu, "\rHeatlh\w Shop" );
- menu_additem( Menu, "\rArmor\w Shop" );
- menu_additem( Menu, "\rPlayers Menu^n" );
- if ( Cvar( cvarToggleKnife ) != 0 )
- menu_additem( Menu, "\rKnife\w Menu" );
- menu_display( client, Menu );
- return 1;
- }
- public SubShop( client, Menu, Item )
- {
- if ( Cvar() == 0 )
- return 1;
- if ( cs_get_user_team( client ) != CS_TEAM_T )
- return ColorPrint( client, "You need to be a^4 Terrorist^1." );
- if ( Item == MENU_EXIT )
- {
- menu_destroy( Menu );
- return 1;
- }
- formatex( szItem, charsmax( szItem ), "\r[%s]\w JailBreak Shop^nYou have\r %i\w Cash", Prefix(), iData[ client ][ Cash ] );
- new iMenu;
- switch ( Item )
- {
- case 0:
- {
- iMenu = menu_create( szItem, "SubGrenades" );
- for ( new i; i < sizeof szGrenades; i++ )
- {
- formatex( szItem, charsmax( szItem ), "%s - \d[\r %i Cash \d]", szGrenades[ i ][ iName ], Cvar( szGrenades[ i ][ iCost ] ) );
- menu_additem( iMenu, szItem );
- }
- }
- case 1:
- {
- iMenu = menu_create( szItem, "SubHealth" );
- for ( new i; i < 5; i++ )
- {
- formatex( szItem, charsmax( szItem ), "%i HP - \d[\r %i Cash \d]", (i+1) * 10, (i+1) * Cvar( cvarHealth ) - (i * Cvar( cvarDisHealth ) ) );
- menu_additem( iMenu, szItem );
- }
- }
- case 2:
- {
- iMenu = menu_create( szItem, "SubArmor" );
- for ( new i; i < 5; i++ )
- {
- formatex( szItem, charsmax( szItem ), "%i AP - \d[\r %i Cash \d]", (i+1) * 10, (i+1) * Cvar( cvarArmor ) - (i * Cvar( cvarDisArmor ) ) );
- menu_additem( iMenu, szItem );
- }
- }
- case 5: return CmdPlayers( client );
- case 6: return CmdKnife( client );
- }
- menu_setprop( Menu, MPROP_EXITNAME, "Back" );
- menu_display( client, iMenu );
- menu_destroy( Menu );
- return 1;
- }
- public SubGrenades( client, Menu, Item )
- {
- if ( Cvar() == 0 )
- return 1;
- if ( cs_get_user_team( client ) != CS_TEAM_T )
- return ColorPrint( client, "You need to be a^4 Terrorist^1." );
- if ( !is_user_alive( client ) )
- return ColorPrint( client, "You need to be^4 Alive^1." );
- if ( Item == MENU_EXIT )
- {
- menu_destroy( Menu );
- CmdShop( client );
- return 1;
- }
- if ( iData[ client ][ Cash ] < Cvar( szGrenades[ Item ][ iCost ] ) )
- return ColorPrint( client, "You don't have enough cash." );
- fm_give_item( client, szGrenades[ Item ][ iClass ] );
- ColorPrint( client, "You purchased^3 %s^1.", szGrenades[ Item ][ iName ] );
- iData[ client ][ Cash ] -= Cvar( szGrenades[ Item ][ iCost ] );
- menu_destroy( Menu );
- CmdShop( client );
- return 1;
- }
- public SubHealth( client, Menu, Item )
- {
- if ( Cvar() == 0 )
- return 1;
- if ( cs_get_user_team( client ) != CS_TEAM_T )
- return ColorPrint( client, "You need to be a^4 Terrorist^1." );
- if ( !is_user_alive( client ) )
- return ColorPrint( client, "You need to be^4 Alive^1." );
- if ( Item == MENU_EXIT )
- {
- menu_destroy( Menu );
- CmdShop( client );
- return 1;
- }
- new Cost = (Item+1) * Cvar( cvarHealth ) - (Item * Cvar( cvarDisHealth ) );
- new Amount = (Item+1) * 10;
- if ( iData[ client ][ Cash ] < Cost )
- return ColorPrint( client, "You don't have enough cash." );
- fm_set_user_health( client, get_user_health( client ) + Amount );
- ColorPrint( client, "You've bought^3 %i Health^1.", Amount );
- iData[ client ][ Cash ] -= Cost;
- menu_destroy( Menu );
- CmdShop( client );
- return 1;
- }
- public SubArmor( client, Menu, Item )
- {
- if ( Cvar() == 0 )
- return 1;
- if ( cs_get_user_team( client ) != CS_TEAM_T )
- return ColorPrint( client, "You need to be a^4 Terrorist^1." );
- if ( !is_user_alive( client ) )
- return ColorPrint( client, "You need to be^4 Alive^1." );
- if ( Item == MENU_EXIT )
- {
- menu_destroy( Menu );
- CmdShop( client );
- return 1;
- }
- new Cost = (Item+1) * Cvar( cvarArmor ) - (Item * Cvar( cvarDisArmor ) );
- new Amount = (Item+1) * 10;
- if ( iData[ client ][ Cash ] < Cost )
- return ColorPrint( client, "You don't have enough cash." );
- fm_set_user_armor( client, get_user_armor( client ) + Amount );
- ColorPrint( client, "You've bought^3 %i Health^1.", Amount );
- iData[ client ][ Cash ] -= Cost;
- menu_destroy( Menu );
- CmdShop( client );
- return 1;
- }
- public SubPowers( client, Menu, Item )
- {
- if ( Cvar() == 0 )
- return 1;
- if ( cs_get_user_team( client ) != CS_TEAM_T )
- return ColorPrint( client, "You need to be a^4 Terrorist^1." );
- if ( !is_user_alive( client ) )
- return ColorPrint( client, "You need to be^4 Alive^1." );
- if ( Item == MENU_EXIT )
- {
- menu_destroy( Menu );
- CmdShop( client );
- return 1;
- }
- if ( iData[ client ][ Cash ] < Cvar( szPowers[ Item ][ iCost ] ) )
- return ColorPrint( client, "You don't have enough cash." );
- switch ( Item )
- {
- case 0:
- {
- if ( bGodmode[ client ] )
- return ColorPrint( client, "You're already using this power!" );
- fm_set_user_godmode( client, 1 );
- bGodmode[ client ] = true;
- }
- case 1:
- {
- if ( bSpeed[ client ] )
- return ColorPrint( client, "You're already using this power!" );
- fm_set_user_maxspeed( client, fm_get_user_maxspeed( client ) * 2 );
- bSpeed[ client ] = true;
- }
- case 2:
- {
- if ( bGravity[ client ] )
- return ColorPrint( client, "You're already using this power!" );
- fm_set_user_gravity( client, 0.5 );
- bGravity[ client ] = true;
- }
- case 3:
- {
- if ( bStealth[ client ] )
- return ColorPrint( client, "You're already using this power!" );
- fm_set_user_rendering( client, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0 );
- bStealth[ client ] = true;
- }
- }
- ColorPrint( client, "You purchased^3 %s^4 %i Seconds^1!", szPowers[ Item ][ iName ], szPowers[ Item ][ iTime ] );
- set_task( float( Cvar( szPowers[ Item ][ iTime ] ) ), szPowers[ Item ][ iClass ], client );
- iData[ client ][ Cash ] -= Cvar( szPowers[ Item ][ iCost ] );
- menu_destroy( Menu );
- CmdShop( client );
- return 1;
- }
- public SubMisc( client, Menu, Item )
- {
- if ( Cvar() == 0 )
- return 1;
- if ( cs_get_user_team( client ) != CS_TEAM_T )
- return ColorPrint( client, "You need to be a^4 Terrorist^1." );
- if ( !is_user_alive( client ) )
- return ColorPrint( client, "You need to be^4 Alive^1." );
- if ( Item == MENU_EXIT )
- {
- menu_destroy( Menu );
- CmdShop( client );
- return 1;
- }
- if ( iData[ client ][ Cash ] < Cvar( szMisc[ Item ][ iCost ] ) )
- return ColorPrint( client, "You don't have enough cash." );
- switch ( Item )
- {
- case 0:
- {
- if ( bGodmode[ client ] )
- return ColorPrint( client, "You're already using this power!" );
- fm_set_user_godmode( client, 1 );
- bGodmode[ client ] = true;
- if ( bSwitch[ client ] )
- return ColorPrint( client, "You already bought this." );
- if ( Cvar( cvarToggleSwitchTeams ) == 0 )
- return ColorPrint( client, "This item is disabled." );
- if ( Cvar( cvarToggleSwitchTeams ) == 2 && OnlineAdmins() )
- return ColorPrint( client, "There's online admins now so you can't purchase this item." );
- cs_set_user_team( client, CS_TEAM_CT );
- ExecuteHamB( Ham_CS_RoundRespawn, client );
- bSwitch[ client ] = true;
- }
- case 1:
- {
- if ( bFreeday[ client ] )
- return ColorPrint( client, "You already bought this." );
- fm_set_user_rendering( client, kRenderFxGlowShell, 0, 150, 255, kRenderNormal, 16 );
- bFreeday[ client ] = true;
- }
- }
- ColorPrint( client, "You purchased^3 %s^1.", szMisc[ Item ][ iName ] );
- ColorPrint( 0, "^3%s^1 just purchased^4 %s^1!", szMisc[ Item ][ iName ] );
- iData[ client ][ Cash ] -= Cvar( szMisc[ Item ][ iCost ] );
- menu_destroy( Menu );
- CmdShop( client );
- return 1;
- }
- /* Remove Powers */
- public taskRemoveGodmode( client )
- {
- fm_set_user_godmode( client, 0 );
- bGodmode[ client ] = false;
- }
- public taskRemoveSpeed( client )
- {
- fm_set_user_maxspeed( client, 250.0 );
- bSpeed[ client ] = false;
- }
- public taskRemoveGravity( client )
- {
- fm_set_user_gravity( client, 1.0 );
- bGravity[ client ] = false;
- }
- public taskRemoveStealth( client )
- {
- fm_set_user_rendering( client );
- bStealth[ client ] = false;
- }
- /* Players Menu */
- public CmdPlayers( client )
- {
- if ( Cvar() == 0 )
- return 1;
- formatex( szItem, charsmax( szItem ), "\r[%s]\w Players Menu", Prefix() );
- new Menu = menu_create( szItem, "SubPlayers" );
- new Players[ 32 ], iNum, iPlayer, szTempid[ 10 ];
- get_players( Players, iNum );
- for ( new i; i < iNum; i++ )
- {
- iPlayer = Players[ i ];
- num_to_str( iPlayer, szTempid, charsmax( szTempid ) );
- formatex( szItem, charsmax( szItem ), "\y%s:\r %i Cash\d and\r %i Bank Cash", szName( iPlayer ), iData[ iPlayer ][ Cash ], iData[ iPlayer ][ Bank ] );
- menu_additem( Menu, szItem, szTempid );
- }
- menu_display( client, Menu );
- return 1;
- }
- public SubPlayers( client, Menu, Item )
- {
- if ( Cvar() == 0 )
- return 1;
- if ( Item == MENU_EXIT )
- {
- menu_destroy( Menu );
- return 1;
- }
- new Trash, mData[ 10 ];
- menu_item_getinfo( Menu, Item, Trash, mData, charsmax( mData ), _,_, Trash );
- new iPlayer = str_to_num( mData );
- ColorPrint( client, "^3%s^1 have^4 %i Cash^1 and^3 %i Bank Cash^1.", szName( iPlayer ), iData[ iPlayer ][ Cash ], iData[ iPlayer ][ Bank ] );
- CmdPlayers( client );
- return 1;
- }
- /* Knife Shop */
- public CmdKnife( client )
- {
- if ( Cvar() == 0 )
- return 1;
- if ( Cvar( cvarToggleKnife ) == 0 )
- return ColorPrint( client, "^3Knife Shop^1 is disabled." );
- formatex( szItem, charsmax( szItem ), "\r[%s]\w JailBreak Knives Shop^nYou have\r %i\w Cash", Prefix(), iData[ client ][ Cash ] );
- new Menu = menu_create( szItem, "SubKnife" );
- new szCost[ 128 ];
- for ( new i; i < sizeof szKnives; i++ )
- {
- formatex( szCost, charsmax( szCost ), "- \d[\r %i Cash \d]", kCvar( kCvarsCost[ i ] ) );
- formatex( szItem, charsmax( szItem ), "%s %s", szKnives[ i ], (iData[ client ][ mKnife ] == (i-1)) ? szCost : (iData[ client ][ mKnife ] >= i) ? (iData[ client ][ cKnife ] == i) ? "- \d[\y Equiped \d]" : "- \d[\r Acquired \d]" : "" );
- menu_additem( Menu, szItem, "", _, menu_makecallback( "MenuCallback_CmdKnife" ) );
- }
- menu_display( client, Menu );
- return 1;
- }
- public SubKnife( client, Menu, Item )
- {
- if ( Cvar() == 0 )
- return 1;
- if ( Cvar( cvarToggleKnife ) == 0 )
- return ColorPrint( client, "^3Knife Shop^1 is disabled." );
- if ( Item == MENU_EXIT )
- {
- menu_destroy( Menu );
- CmdShop( client );
- return 1;
- }
- iKnifeCallback[ client ] = Item;
- formatex( szItem, charsmax( szItem ), "\r[%s]\w Knives Shop^nYou have\r %i\w Cash^n^n\d%s Details :", Prefix(), iData[ client ][ Cash ], szKnives[ Item ] );
- new iMenu = menu_create( szItem, "CmdSubKnife" );
- new szCost[ 128 ];
- formatex( szItem, charsmax( szItem ), "HP Bonus - \d[\r %i HP \d]", kCvar( kCvarsHealth[ Item ] ) );
- menu_additem( iMenu, szItem, "", _, menu_makecallback( "MenuCallback_SubKnife_Disabled" ) );
- formatex( szItem, charsmax( szItem ), "AP Bonus - \d[\r %i AP \d]", kCvar( kCvarsArmor[ Item ] ) );
- menu_additem( iMenu, szItem, "", _, menu_makecallback( "MenuCallback_SubKnife_Disabled" ) );
- formatex( szItem, charsmax( szItem ), "Damage Bonus - \d[\r %i Damage \d]^n", kCvar( kCvarsDamage[ Item ] ) );
- menu_additem( iMenu, szItem, "", _, menu_makecallback( "MenuCallback_SubKnife_Disabled" ) );
- formatex( szCost, charsmax( szCost ), " - \d[\r %i Cash \d]", kCvar( kCvarsCost[ Item ] ) );
- formatex( szItem, charsmax( szItem ), "Purchase this Knife%s", (iData[ client ][ mKnife ] >= Item) ? "" : szCost );
- menu_additem( iMenu, szItem, "", _, menu_makecallback( "MenuCallback_SubKnife_Cost" ) );
- menu_additem( iMenu, "Use this Knife Model", "", _, menu_makecallback( "MenuCallback_SubKnife_Use" ) );
- menu_display( client, iMenu );
- menu_destroy( Menu );
- return 1;
- }
- public CmdSubKnife( client, Menu, Item )
- {
- if ( Cvar() == 0 )
- return 1;
- if ( Cvar( cvarToggleKnife ) == 0 )
- return ColorPrint( client, "^3Knife Shop^1 is disabled." );
- if ( Item == MENU_EXIT )
- {
- menu_destroy( Menu );
- CmdKnife( client );
- return 1;
- }
- new iKnife = iKnifeCallback[ client ];
- switch ( Item )
- {
- case 3: // Purchased
- {
- if ( iKnife <= iData[ client ][ mKnife ] )
- return ColorPrint( client, "You already own this knife!" );
- if ( iData[ client ][ Cash ] < kCvar( kCvarsCost[ iKnife ] ) )
- return ColorPrint( client, "You don't have enough cash." );
- iData[ client ][ mKnife ] = iKnife;
- iData[ client ][ cKnife ] = iKnife;
- iData[ client ][ Cash ] -= kCvar( kCvarsCost[ iKnife ] );
- CmdSave( client );
- ColorPrint( 0, "^3%s^1 purchased^4 %s^1!", szName( client ), szKnives[ iKnife ] );
- log_amx( "%s (%s | %s | %i Cash ) just purchased %s", szName( client ), szAuth( client ), szAddress( client ), iData[ client ][ Cash ], szKnives[ iKnife ] );
- }
- case 4: // Equiped
- {
- if ( iKnife > iData[ client ][ mKnife ] )
- return ColorPrint( client, "You haven't bought that knife yet." );
- if ( iKnife == iData[ client ][ cKnife ] )
- return ColorPrint( client, "You're already have this knife equiped." );
- iData[ client ][ cKnife ] = iKnife;
- CmdSave( client );
- ColorPrint( client, "You equiped^4 %s ^1!", szKnives[ iKnife ] );
- }
- }
- CmdKnife( client );
- return 1;
- }
- /* Callbacks */
- public MenuCallback_CmdKnife( client, Menu, Item )
- {
- if ( iData[ client ][ mKnife ] >= Item - 1 )
- return ITEM_ENABLED;
- return ITEM_DISABLED;
- }
- public MenuCallback_SubKnife_Disabled()
- return ITEM_DISABLED;
- public MenuCallback_SubKnife_Cost( client, Menu, Item )
- {
- Item = iKnifeCallback[ client ];
- if ( iData[ client ][ Cash ] < kCvar( kCvarsCost[ Item ] ) || iData[ client ][ mKnife ] >= Item )
- return ITEM_DISABLED;
- return ITEM_ENABLED;
- }
- public MenuCallback_SubKnife_Use( client, Menu, Item )
- {
- Item = iKnifeCallback[ client ];
- if ( Item > iData[ client ][ mKnife ] || Item == iData[ client ][ cKnife ] )
- return ITEM_DISABLED;
- return ITEM_ENABLED;
- }
- /* Bank */
- public CmdBank( client )
- {
- if ( Cvar() == 0 )
- return 1;
- if ( Cvar( cvarToggleBank ) == 0 )
- return ColorPrint( client, "^3Bank^1 is disabled." );
- formatex( szItem, charsmax( szItem ), "\r[%s]\w JailBreak Bank^n^n\dYou have\r %i\d Cash^nYou have\r %i\d Cash in the Bank^nYou have\r %i\w Cash in Total",
- Prefix(), iData[ client ][ Cash ], iData[ client ][ Bank ], iData[ client ][ Cash ] + iData[ client ][ Bank ] );
- new Menu = menu_create( szItem, "SubBank" );
- menu_additem( Menu, "Deposit" );
- menu_additem( Menu, "Withdraw" );
- menu_display( client, Menu );
- return 1;
- }
- public SubBank( client, Menu, Item )
- {
- if ( Cvar() == 0 )
- return 1;
- if ( Cvar( cvarToggleBank ) == 0 )
- return ColorPrint( client, "^3Bank^1 is disabled." );
- if ( Item == MENU_EXIT )
- {
- menu_destroy( Menu );
- return 1;
- }
- switch ( Item )
- {
- case 0: client_cmd( client, "say /deposit" );
- case 1: client_cmd( client, "say /withdraw" );
- }
- CmdBank( client );
- return 1;
- }
- /* Client Side */
- public client_putinserver( client )
- {
- fNextTime[ client ] = get_gametime();
- CmdLoad( client );
- bActiveGet[ client ] = true;
- if ( iData[ client ][ Connection ] == 0 )
- {
- iData[ client ][ Connection ] = 1;
- iData[ client ][ Cash ] = Cvar( cvarFirstCash );
- }
- }
- public client_disconnect( client )
- {
- CmdSave( client );
- }
- public CmdSay( client )
- {
- if ( Cvar() == 0 )
- return 0;
- new szMsg[ 192 ], szArgs[ 3 ][ 32 ];
- read_argv( 1, szMsg, charsmax( szMsg ) );
- parse( szMsg, szArgs[ 0 ], 31, szArgs[ 1 ], 31, szArgs[ 2 ], 31 );
- if ( equali( szMsg, "/shop" ) )
- return CmdShop( client );
- if ( equali( szMsg, "/knife" ) )
- return CmdKnife( client );
- if ( equali( szMsg, "/bank" ) )
- return CmdBank( client );
- if ( equali( szMsg, "/nextcash" ) || equali( szMsg, "/nc" ) )
- {
- new Float:fMins = (get_gametime()/60) - (fNextTime[ client ]/60);
- if ( Cvar( cvarToggleNextCash ) == 0 )
- return ColorPrint( client, "^3Next Cash^1 is disabled." );
- if ( fMins <= Cvar( cvarNextTime ) )
- return ColorPrint( client, "You need to wait^3 %.1f Minutes^1!", Cvar( cvarNextTime ) - fMins );
- fNextTime[ client ] = get_gametime();
- iData[ client ][ Cash ] += Cvar( cvarNextAmount );
- CmdSave( client );
- return ColorPrint( client, "You received^3 %i Cash^1,^4 Good Luck^1!", Cvar( cvarNextAmount ) );
- }
- if ( equali( szMsg, "/getcash" ) || equali( szMsg, "/gc" ) )
- {
- if ( Cvar( cvarToggleGetCash ) == 0 )
- return ColorPrint( client, "^3Get Cash^1 is disabled." );
- if ( bActiveGet[ client ] )
- return ColorPrint( client, "You need to wait until the^3 Next Round^1 to^4 Get Cash^1!" );
- iData[ client ][ Cash ] += Cvar( cvarGetAmount );
- CmdSave( client );
- bActiveGet[ client ] = true;
- return ColorPrint( client, "You received^4 %i Cash^1,^3 Good Luck^1.", Cvar( cvarGetAmount ) );
- }
- if ( equali( szArgs[ 0 ], "/cash" ) )
- {
- new iPlayer = cmd_target( client, szArgs[ 1 ], 8 );
- if ( equali( szMsg, "/cash" ) )
- iPlayer = client;
- if ( !iPlayer )
- return ColorPrint( client, "^3%s^1 was not found!", szArgs[ 1 ] );
- return ColorPrint( client, "^3%s^1 have^4 %i Cash^1 &^3 %i Bank Cash^1,^4 %s^1.", szName( iPlayer ), iData[ iPlayer ][ Cash ], iData[ iPlayer ][ Bank ], szKnives[ iData[ iPlayer ][ cKnife ] ] );
- }
- if ( equali( szArgs[ 0 ], "/gamble" ) )
- {
- new Amount = str_to_num( szArgs[ 1 ] );
- if ( equali( szArgs[ 1 ], "allin" ) || equali( szArgs[ 1 ], "all" ) )
- Amount = iData[ client ][ Cash ];
- else if ( equali( szMsg, "/gamble" ) || !is_str_num( szArgs[ 1 ] ) )
- return ColorPrint( client, "Syntax: /^4gamble^1 <^3amount^1>" );
- if ( Amount > iData[ client ][ Cash ] )
- return ColorPrint( client, "You don't have this amount of cash." );
- if ( Amount < Cvar( cvarGambleMin ) )
- return ColorPrint( client, "You need to gamble on minimum of^4 %i Cash^1 at a time.", Cvar( cvarGambleMin ) );
- new g_iChance = random_num( 1, 100 );
- new bool: b_gambleWin = false, iTotal = iData[ client ][ Cash ];
- iData[ client ][ Cash ] -= Amount;
- if ( g_iChance <= Cvar( cvarGambleChance ) )
- {
- b_gambleWin = true;
- iData[ client ][ Cash ] = iTotal + Amount;
- }
- log_amx( "%s ( %s | %s ) gambled on %i Cash and lost. Total cash left: %i Cash", szName( client ), szAuth( client ), szAddress( client ), Amount, iData[ client ][ Cash ] );
- CmdSave( client );
- return ColorPrint( 0, "^3%s^1 gambled on^4 %i Cash^1 and^3 %s^1!", szName( client ), Amount, b_gambleWin ? "Won" : "Lost" );
- }
- if ( equali( szArgs[ 0 ], "/transfer" ) )
- {
- if ( !is_str_num( szArgs[ 2 ] ) || equali( szMsg, "/transfer" ) )
- return ColorPrint( client, "Syntax: /^4transfer^1 <^4amount^1>" );
- new iPlayer = cmd_target( client, szArgs[ 1 ], 8 );
- if ( !iPlayer )
- return ColorPrint( client, "^3%s^1 was not found!", szArgs[ 1 ] );
- if ( iPlayer == client )
- return ColorPrint( client, "You can't transfer cash to yourself." );
- new Amount = str_to_num( szArgs[ 2 ] );
- if ( Amount > iData[ client ][ Cash ] )
- return ColorPrint( client, "You don't have enough cash." );
- if ( Amount < Cvar( cvarTransferMin ) )
- return ColorPrint( client, "You can't transfer less than^4 %i Cash^1.", Cvar( cvarTransferMin ) );
- if ( Amount <= 0 )
- return ColorPrint( client, "You can't transfer less than^4 1 Cash^1." );
- if ( iData[ client ][ Cash ] > Cvar( cvarTransferMaxAmount ) && Cvar( cvarTransferMaxAmount ) != 0 )
- return ColorPrint( client, "You can't transfer if you have more than^4 %i Cash^1!", Cvar( cvarTransferMaxAmount ) );
- if ( Amount > Cvar( cvarTransferMax ) && Cvar( cvarTransferMax ) != 0 )
- return ColorPrint( client, "You can't transfer more than^4 %i Cash^1!", Cvar( cvarTransferMax ) );
- new Amount2 = Amount;
- if ( Cvar( cvarTax ) != 0 )
- Amount2 = Amount - (Amount / 100 * Cvar( cvarTax ));
- iData[ client ][ Cash ] -= Amount;
- iData[ iPlayer ][ Cash ] += Amount2;
- log_amx( "%s ( %s | %s | %i Cash ) transfer %i cash to %s ( %s | %s | %i ). He received %i cash because of the tax rate.",
- szName( client ), szAuth( client ), szAddress( client ), iData[ client ][ Cash ], Amount, szName( iPlayer ), szAuth( iPlayer ), szAddress( iPlayer ), iData[ iPlayer ][ Cash ], Amount2 );
- CmdSave( client );
- return ColorPrint( client, "^3%s^1 transfered^4 %i Cash^1 to^3 %s^1, he received^4 %i Cash ^1(^3%i%% Tax^1)", szName( client ), Amount, szName( iPlayer ), Amount2, Cvar( cvarTax ) );
- }
- if ( equali( szArgs[ 0 ], "/deposit" ) )
- {
- if ( Cvar( cvarToggleBank ) == 0 )
- return ColorPrint( client, "^3Bank^1 is disabled." );
- if ( !is_str_num( szArgs[ 1 ] ) || equali( szMsg, "/deposit" ) )
- return ColorPrint( client, "Syntax: /^4deposit^1 <^4amount^1>" );
- new Amount = str_to_num( szArgs[ 1 ] );
- if ( Amount > iData[ client ][ Cash ] )
- return ColorPrint( client, "You don't have this amount of cash." );
- iData[ client ][ Bank ] += Amount;
- iData[ client ][ Cash ] -= Amount;
- CmdSave( client );
- return ColorPrint( client, "You^3 deposited^4 %i Cash^1 to the^3 bank^1!", Amount );
- }
- if ( equali( szArgs[ 0 ], "/withdraw" ) )
- {
- if ( Cvar( cvarToggleBank ) == 0 )
- return ColorPrint( client, "^3Bank^1 is disabled." );
- if ( !is_str_num( szArgs[ 1 ] ) || equali( szMsg, "/withdraw" ) )
- return ColorPrint( client, "Syntax: /^4withdraw^1 <^4amount^1>" );
- new Amount = str_to_num( szArgs[ 1 ] );
- if ( Amount > iData[ client ][ Bank ] )
- return ColorPrint( client, "You don't have enough cash in the bank." );
- iData[ client ][ Bank ] -= Amount;
- iData[ client ][ Cash ] += Amount;
- CmdSave( client );
- return ColorPrint( client, "You^3 withdrawed^4 %i Cash^1 from the^3 bank^1!", Amount );
- }
- return 0;
- }
- /* Events */
- public evRoundStart()
- {
- if ( Cvar() == 0 || Cvar( cvarToggleGetCash ) == 0 )
- return 0;
- static gMaxPlayers;
- gMaxPlayers = get_maxplayers();
- for ( new i = 1; i < gMaxPlayers; i++ )
- {
- if ( !is_user_connected( i ) )
- continue;
- bActiveGet[ i ] = false;
- }
- return 0;
- }
- public evCurWeapon( client )
- {
- if ( !is_user_alive( client ) || !is_user_connected( client ) || Cvar() == 0 )
- return 0;
- if ( bSpeed[ client ] )
- fm_set_user_maxspeed( client, fm_get_user_maxspeed( client ) * 2 );
- if ( get_user_weapon( client ) == CSW_KNIFE && Cvar( cvarToggleKnife ) != 0 )
- {
- entity_set_string( client, EV_SZ_viewmodel, szKnivesModels[ iData[ client ][ cKnife ] ] );
- formatex( szItem, charsmax( szItem ), "%s%s", KNIFE_DIR, p_Knife );
- entity_set_string( client, EV_SZ_weaponmodel, szItem );
- }
- return 0;
- }
- public evDeathMsg()
- {
- if ( Cvar() == 0 )
- return 0;
- new iKiller = read_data( 1 );
- new iVictim = read_data( 2 );
- new iHeadshot = read_data( 3 );
- new CsTeams: iTeam[ 2 ];
- iTeam[ 0 ] = cs_get_user_team( iKiller );
- iTeam[ 1 ] = cs_get_user_team( iVictim );
- if ( iTeam[ 0 ] == iTeam[ 1 ] || iTeam[ 0 ] != CS_TEAM_T || iTeam[ 1 ] != CS_TEAM_CT )
- return 0;
- new Amount = Cvar( cvarKillCash );
- if ( iHeadshot )
- Amount = Cvar( cvarHeadshot );
- iData[ iKiller ][ Cash ] += Amount;
- CmdSave( iKiller );
- return 0;
- }
- /* Forwards */
- public FwdSpawn_Post( client )
- {
- if ( !is_user_connected( client ) || !is_user_alive( client ) || Cvar() == 0 )
- return 1;
- for ( new i; i < sizeof szPowers; i++ )
- set_task( 0.1, szPowers[ i ][ iClass ], client );
- if ( cs_get_user_team( client ) == CS_TEAM_T )
- {
- fm_set_user_health( client, get_user_health( client ) + kCvar( kCvarsHealth[ iData[ client ][ cKnife ] ] ) );
- fm_set_user_armor( client, get_user_armor( client ) + kCvar( kCvarsArmor[ iData[ client ][ cKnife ] ] ) );
- }
- return 0;
- }
- public FwdTakeDamage_Pre( iVictim, Inf, iAttacker, Float:fDamage, iDmgBits )
- {
- if ( Cvar() == 0 || Cvar( cvarToggleKnife ) == 0 )
- return 1;
- static gMaxPlayers;
- gMaxPlayers = get_maxplayers();
- if ( 1 <= iAttacker <= gMaxPlayers && 1 <= iVictim <= gMaxPlayers && get_user_weapon( iAttacker ) == CSW_KNIFE && iDmgBits & DMG_NEVERGIB && !(iDmgBits&(1<<24)) )
- {
- SetHamParamFloat( 4, fDamage + kCvar( kCvarsDamage[ iData[ iAttacker ][ cKnife ] ] ) );
- if ( cs_get_user_team( iVictim ) == cs_get_user_team( iAttacker ) && get_cvar_num( "mp_friendlyfire" ) == 0 )
- return 1;
- new Float:fRandom[ 3 ];
- for ( new i; i < 3; i++ )
- fRandom[ i ] = random_float( 100.0, 150.0 );
- entity_set_vector( iVictim, EV_VEC_punchangle, fRandom );
- }
- return 1;
- }
- /* Set Data */
- public CmdSetKnife( client, iLevel, cid )
- {
- if ( Cvar() == 0 )
- return 0;
- if ( !cmd_access( client, iLevel, cid, 3 ) )
- return 1;
- static iArgs[ 35 ];
- read_argv( 1, iArgs, charsmax( iArgs ) );
- new iPlayer = cmd_target( client, iArgs, CMDTARGET_NO_BOTS );
- if ( !iPlayer )
- return 1;
- if ( !is_user_connected( iPlayer ) )
- return 1;
- read_argv( 2, iArgs, charsmax( iArgs ) );
- if ( !is_str_num( iArgs ) )
- {
- console_print( client, "You need to use valid numbers only." );
- return 1;
- }
- new Amount = str_to_num( iArgs );
- if ( Amount <= 0 )
- {
- console_print( client, "Error: Minimum value is: 1." );
- return 1;
- }
- if ( Amount > sizeof szKnives )
- {
- console_print( client, "Error: Maximum value is: %i.", sizeof szKnives );
- return 1;
- }
- Amount = Amount - 1;
- iData[ client ][ mKnife ] = Amount;
- iData[ client ][ cKnife ] = Amount;
- CmdSave( client );
- log_amx( "%s ( %s | %s ) defined %s's ( %s | %s ) knife level to %i", szName( client ), szAuth( client ), szAddress( client ),
- szName( iPlayer ), szAuth( iPlayer ), szAddress( iPlayer ), Amount );
- return 1;
- }
- public CmdSetBank( client, iLevel, cid )
- {
- if ( Cvar() == 0 )
- return 0;
- if ( !cmd_access( client, iLevel, cid, 3 ) )
- return 1;
- static iArgs[ 35 ];
- read_argv( 1, iArgs, charsmax( iArgs ) );
- new iPlayer = cmd_target( client, iArgs, CMDTARGET_NO_BOTS );
- if ( !iPlayer )
- return 1;
- if ( !is_user_connected( iPlayer ) )
- return 1;
- read_argv( 2, iArgs, charsmax( iArgs ) );
- if ( !is_str_num( iArgs ) )
- {
- console_print( client, "You need to use valid numbers only." );
- return 1;
- }
- new Amount = str_to_num( iArgs );
- if ( Amount <= 0 )
- {
- console_print( client, "Error: Minimum value is: 1." );
- return 1;
- }
- iData[ client ][ Bank ] = Amount;
- CmdSave( client );
- log_amx( "%s ( %s | %s ) defined %s's ( %s | %s ) amount of cash in the bank to %i", szName( client ), szAuth( client ), szAddress( client ),
- szName( iPlayer ), szAuth( iPlayer ), szAddress( iPlayer ), Amount );
- return 1;
- }
- public CmdAddCash( client, iLevel, cid )
- {
- if ( Cvar() == 0 )
- return 0;
- if ( !cmd_access( client, iLevel, cid, 3 ) )
- return 1;
- static iArgs[ 35 ];
- read_argv( 1, iArgs, charsmax( iArgs ) );
- new iPlayer = cmd_target( client, iArgs, CMDTARGET_NO_BOTS );
- if ( !iPlayer )
- return 1;
- if ( !is_user_connected( iPlayer ) )
- return 1;
- read_argv( 2, iArgs, charsmax( iArgs ) );
- if ( !is_str_num( iArgs ) )
- {
- console_print( client, "You need to use valid numbers only." );
- return 1;
- }
- new Amount = str_to_num( iArgs );
- if ( Amount <= 0 )
- {
- console_print( client, "Error: Minimum value is: 1." );
- return 1;
- }
- iData[ iPlayer ][ Cash ] += Amount;
- if ( iData[ iPlayer ][ Cash ] < 0 )
- iData[ iPlayer ][ Cash ] = 0;
- CmdSave( iPlayer );
- log_amx( "%s ( %s | %s ) added %i cash to %s ( %s | %s | %i Cash Total )", szName( client ), szAuth( client ), szAddress( client ), Amount,
- szName( iPlayer ), szAuth( iPlayer ), szAddress( iPlayer ), iData[ iPlayer ][ Cash ] );
- return 1;
- }
- public CmdRemoveCash( client, iLevel, cid )
- {
- if ( Cvar() == 0 )
- return 0;
- if ( !cmd_access( client, iLevel, cid, 3 ) )
- return 1;
- static iArgs[ 35 ];
- read_argv( 1, iArgs, charsmax( iArgs ) );
- new iPlayer = cmd_target( client, iArgs, CMDTARGET_NO_BOTS );
- if ( !iPlayer )
- return 1;
- if ( !is_user_connected( iPlayer ) )
- return 1;
- read_argv( 2, iArgs, charsmax( iArgs ) );
- if ( !is_str_num( iArgs ) )
- {
- console_print( client, "You need to use valid numbers only." );
- return 1;
- }
- new Amount = str_to_num( iArgs );
- if ( Amount <= 0 )
- {
- console_print( client, "Error: Minimum value is: 1." );
- return 1;
- }
- iData[ iPlayer ][ Cash ] -= Amount;
- if ( iData[ iPlayer ][ Cash ] <= 0 )
- iData[ iPlayer ][ Cash ] = 0;
- CmdSave( iPlayer );
- log_amx( "%s ( %s | %s ) removed %i cash from %s ( %s | %s | %i Cash Total )", szName( client ), szAuth( client ), szAddress( client ), Amount,
- szName( iPlayer ), szAuth( iPlayer ), szAddress( iPlayer ), iData[ iPlayer ][ Cash ] );
- return 1;
- }
- /* Data Storage */
- stock CmdSave( const index )
- {
- new szKey[ 64 ], szData[ 256 ];
- switch ( Cvar( cvarSystem ) )
- {
- case 1: formatex( szKey, charsmax( szKey ), "%s-sSystem", szAddress( index ) );
- default: formatex( szKey, charsmax( szKey ), "%s-sSystem", szAuth( index ) );
- }
- formatex( szData, charsmax( szData ), "%i#%i#%i#%i#%i#", iData[ index ][ mKnife ], iData[ index ][ cKnife ], iData[ index ][ Cash ],
- iData[ index ][ Bank ], iData[ index ][ Connection ] );
- fvault_set_data( szVault, szKey, szData );
- }
- stock CmdLoad( const index )
- {
- new szKey[ 64 ], szData[ 256 ];
- switch ( Cvar( cvarSystem ) )
- {
- case 1: formatex( szKey, charsmax( szKey ), "%s-sSystem", szAddress( index ) );
- default: formatex( szKey, charsmax( szKey ), "%s-sSystem", szAuth( index ) );
- }
- formatex( szData, charsmax( szData ), "%i#%i#%i#%i#%i#", iData[ index ][ mKnife ], iData[ index ][ cKnife ], iData[ index ][ Cash ],
- iData[ index ][ Bank ], iData[ index ][ Connection ] );
- fvault_get_data( szVault, szKey, szData, 255 );
- replace_all( szData, 255, "#", " " );
- new SetData[ 5 ][ 32 ];
- parse( szData, SetData[ 0 ], 31, SetData[ 1 ], 31, SetData[ 2 ], 31, SetData[ 3 ], 31, SetData[ 4 ], 31 );
- iData[ index ][ mKnife ] = str_to_num( SetData[ 0 ] );
- iData[ index ][ cKnife ] = str_to_num( SetData[ 1 ] );
- iData[ index ][ Cash ] = str_to_num( SetData[ 2 ] );
- iData[ index ][ Bank ] = str_to_num( SetData[ 3 ] );
- iData[ index ][ Connection ] = str_to_num( SetData[ 4 ] );
- }
- /* Stocks */
- stock ColorPrint( const index, const string[], any:... )
- {
- new szMsg[ 191 ], Players[ 32 ], PNum = 1;
- static iLen; iLen = formatex( szMsg, charsmax( szMsg ), "^4[%s]^1 ", Prefix() );
- vformat( szMsg[ iLen ], charsmax( szMsg ) - iLen, string, 3 );
- if ( index )
- Players[ 0 ] = index;
- else
- get_players( Players, PNum, "ch" );
- for ( new i; i < PNum; i++ )
- {
- if( is_user_connected( Players[ i ] ) )
- {
- message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, Players[ i ] );
- write_byte( Players[ i ] );
- write_string( szMsg );
- message_end( );
- }
- }
- return 1;
- }
- stock szName( const index )
- {
- static Name[ 128 ];
- get_user_name( index, Name, charsmax( Name ) );
- return Name;
- }
- stock szAuth( const index )
- {
- static Auth[ 35 ];
- get_user_authid( index, Auth, charsmax( Auth ) );
- return Auth;
- }
- stock szAddress( const index )
- {
- static Address[ 20 ];
- get_user_ip( index, Address, charsmax( Address ), 1 );
- return Address;
- }
- stock Cvar( TheCvar = cvarToggle )
- {
- return get_pcvar_num( pCvar[ TheCvar ] );
- }
- stock kCvar( TheCvar )
- {
- return get_pcvar_num( TheCvar );
- }
- stock Prefix()
- {
- new szPrefix[ 32 ];
- get_pcvar_string( pCvar[ cvarPrefix ], szPrefix, charsmax( szPrefix ) );
- return szPrefix;
- }
- stock bool: OnlineAdmins()
- {
- static gMaxPlayers;
- gMaxPlayers = get_maxplayers();
- new a_Count;
- for ( new i = 1; i < gMaxPlayers; i++ )
- {
- if ( !is_user_connected( i ) )
- continue;
- if ( is_user_admin( i ) )
- a_Count++;
- }
- if ( a_Count > 0 )
- return true;
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement