Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include < amxmodx >
- #include < amxmisc >
- #include < cstrike >
- #include < hamsandwich >
- #include < nvault_util >
- #include < colorchat >
- #include < fun >
- #include < engine >
- #include < fakemeta >
- #define PLUGIN "HidenSeek Shop"
- #define VERSION "1.0"
- #define AUTHOR "dinnk"
- #define MAXPLAYERS 32
- #define IsPlayer(%1) (1 <= %1 <= gMaxPlayers)
- #pragma semicolon 0
- #pragma tabsize 0
- enum _:KNIFES
- {
- Default,
- Silver,
- Gold,
- ProKnife,
- Katana,
- Khanjar,
- CzoneVip
- }
- enum _:KNIFEINFO
- {
- Name [ 50 ],
- PointBonus,
- Price,
- CaseNumb
- }
- new const KnifeInfo [ KNIFES ] [ KNIFEINFO ] =
- {
- { "Standard Knife", 0, 0, 1 },
- { "Silver Knife", 1, 60, 2 },
- { "Gold Knife", 1, 60, 3 },
- { "Pro Knife", 1, 60, 4 },
- { "Katana", 2, 175, 5 },
- { "Khanjar", 2, 175, 6 },
- { "CzoneGaming VIP Knife", 4, 650, 7 }
- }
- enum _:UPGRADES
- {
- Health,
- Respawn,
- Damage
- }
- enum _:ITEMINFO
- {
- Name [ 20 ],
- Levels,
- MaxValue,
- Prefix [ 5 ]
- }
- new const ItemInfo [ UPGRADES ] [ ITEMINFO ] =
- {
- { "Extra Health", 5, 25, " HP" },
- { "Respawn Chance", 5, 15, "%" },
- { "Extra Damage", 3, 15, "%" }
- }
- new const ItemPrice [ UPGRADES ] [ ] =
- {
- { 50, 60, 75, 90, 130 },
- { 100, 120, 150, 190, 250 },
- { 80, 100, 150 }
- }
- /////////////////P R E F I X/////////////////////////////////////////////////
- new const gPrefix [ ] = "^4[CZ] HideNSeek Shop:^3"
- /////////////////M E N U . C O M M A N D S///////////////////////////////////
- new const gMenuCommands [ ] [ ] =
- {
- "say /shop",
- "say_team /shop",
- "shopmenu",
- "say /pm",
- "say_team /pm"
- }
- /////////////////V A R I A B L E S///////////////////////////////////////////
- new gPoint [ MAXPLAYERS + 1 ]
- new gPointTop [ MAXPLAYERS + 1 ]
- new gKillCount [ MAXPLAYERS + 1 ]
- new gSurviveCount [ MAXPLAYERS + 1 ]
- new gItemLevel [ MAXPLAYERS + 1 ] [ UPGRADES ]
- new gKnifeOwned [ MAXPLAYERS + 1 ] [ KNIFES ]
- new gKnife [ MAXPLAYERS + 1 ]
- new gVip [ MAXPLAYERS + 1 ]
- /////////////////V I P///////////////////////////////////////////////////
- new bool: gIsVip [ MAXPLAYERS + 1 ]
- new gVIPFile [ 128 ]
- new Trie:gVIPSteamIDs
- /////////////////S A V E / L O A D///////////////////////////////////////////
- new gVault
- new const gVaultName [ ] = "CZPointMod"
- /////////////////M A X P L A Y E R S/////////////////////////////////////////
- new gMaxPlayers
- new gFirstClient
- /////////////////B O O L S///////////////////////////////////////////////////
- new bool:gIsRespawned [ MAXPLAYERS + 1 ]
- new bool:gGotHealth [ MAXPLAYERS + 1 ]
- new bool:gIsNotNew [ MAXPLAYERS + 1 ]
- /////////////////T O P T E N/////////////////////////////////////////////////
- const TOPRANKS = 10
- new gTopNames [ TOPRANKS + 1 ] [ 32 ]
- new gTopAuth [ TOPRANKS + 1 ] [ 35 ]
- new gTopPoints [ TOPRANKS + 1 ]
- new gTopVault
- /////////////////GIVE POINTS/////////////////////////////////////////////////
- new gName[ 32 ]
- /////////////////C V A R S///////////////////////////////////////////////////
- enum _:g_Cvars
- {
- Kill, // Points gained per kill
- Survive, // Points gained per survive
- Headshot, // Points gained for Headshot Bonus
- Suicide, // Points lost for Suiciding
- PriceVip, // Price for buying VIP Skin ( double points gained from anything )
- BonusT, // Points Bonus for surviving X rounds in a row as Terrorist
- BonusCT, // Points Bonus for killing X Terrorists in a single round as CT
- BonusTNeeded, // Rounds needed won before getting bonus
- BonusCTNeeded, // Kills needed before getting bonus
- PointStart // Amount of points people start with when playing for the first time
- }
- new gCvars [ g_Cvars ]
- public plugin_precache( )
- {
- LoadVIPs( )
- precache_model ( "models/player/ctvip/ctvip.mdl" )
- precache_model ( "models/player/tvip/tvip.mdl" )
- precache_model("models/CZKnife/v_silver.mdl") // Silve Knife
- precache_model("models/CZKnife/p_silver.mdl")
- precache_model("models/CZKnife/v_gold.mdl") // Gold Knife
- precache_model("models/CZKnife/p_gold.mdl")
- precache_model("models/CZKnife/v_proff.mdl") // Pro Knife
- precache_model("models/CZKnife/p_proff.mdl")
- precache_model("models/CZKnife/v_katana.mdl") // Katana
- precache_model("models/CZKnife/p_katana.mdl")
- precache_model("models/CZKnife/v_khanjar.mdl") // Khanjar
- precache_model("models/CZKnife/p_khanjar.mdl")
- precache_model("models/CZKnife/v_vip2.mdl") // CzoneGaming VIP Knife
- precache_model("models/CZKnife/p_vip2.mdl")
- }
- ////////////////P L U G I N S T A R T////////////////////////////////////////
- public plugin_init ( )
- {
- register_plugin( PLUGIN, VERSION, AUTHOR )
- ////////C O M M A N D S//////////////////////////////////////////////
- new gCommand [ 24 ], gFunction [ ] = "CmdShopMenu"
- for ( new i = 0; i < sizeof ( gMenuCommands ); i++ )
- {
- formatex ( gCommand, charsmax ( gCommand ), "%s", gMenuCommands [ i ] )
- register_clcmd ( gCommand, gFunction )
- }
- register_concmd( "give_points", "cmdSetPoints", ADMIN_IMMUNITY, "<nick, #userid, authid> <Points>" )
- register_concmd( "remove_points", "cmdRemovePoints", ADMIN_IMMUNITY, "<nick, #userid, authid> <Points>" )
- ////////E V E N T S//////////////////////////////////////////////////
- register_event ( "DeathMsg", "CmdDeathMsg", "a" )
- register_logevent ( "CmdRoundBegin", 2, "1=Round_Start" )
- register_logevent ( "EventRoundEnd", 2, "1=Round_End" )
- register_event ( "ResetHUD", "CmdSetModels", "b" )
- register_event ( "CurWeapon", "CurWeapon", "be", "1=1" )
- RegisterHam ( Ham_Killed, "player", "CmdPlayerKilled" )
- RegisterHam ( Ham_Spawn, "player", "CmdPlayerSpawn", true )
- RegisterHam ( Ham_TakeDamage, "player", "CmdPlayerTakeDamage" )
- ////////M A X P L A Y E R S//////////////////////////////////////////
- gMaxPlayers = get_maxplayers ( )
- gFirstClient = 1
- ////////C V A R S////////////////////////////////////////////////////
- gCvars [ Kill ] = register_cvar ( "hnspm_point_kill", "2" )
- gCvars [ Survive ] = register_cvar ( "hnspm_point_survive", "3" )
- gCvars [ Headshot ] = register_cvar ( "hnspm_bonus_headshot", "1" )
- gCvars [ Suicide ] = register_cvar ( "hnspm_points_suicide", "2" )
- gCvars [ PriceVip ] = register_cvar ( "hnspm_price_vip", "1400" )
- gCvars [ BonusT ] = register_cvar ( "hnspm_bonus_t", "5" )
- gCvars [ BonusCT ] = register_cvar ( "hnspm_bonus_ct", "3" )
- gCvars [ BonusTNeeded ] = register_cvar ( "hnspm_needed_t", "3" )
- gCvars [ BonusCTNeeded ] = register_cvar ( "hnspm_needed_ct", "3" )
- gCvars [ PointStart ] = register_cvar ( "hnspm_point_start", "20" )
- ////////N V A U L T//////////////////////////////////////////////////
- gVault = nvault_open ( gVaultName )
- gTopVault = nvault_open ( "CZPointModTopv2" )
- ////////V I P////////////////////////////////////////////////////////
- register_srvcmd ( "vip_add", "CmdAddVip" )
- CreateTopTen ( )
- }
- public plugin_natives ( )
- {
- register_native ( "pm_get_user_maxhealth", "_get_user_maxhealth" )
- }
- public _get_user_maxhealth ( id )
- {
- new id = get_param ( 1 )
- new iHealth;
- if ( IsPlayer ( id ) )
- {
- iHealth = ( 100 + ( ItemInfo [ Health ] [ MaxValue ] / ItemInfo [ Health ] [ Levels ] * gItemLevel [ id ] [ Health ] ) )
- }
- return iHealth;
- }
- public cmdSetPoints( id )
- {
- if( !(get_user_flags(id) & ADMIN_IMMUNITY) )
- {
- return PLUGIN_HANDLED
- }
- new argument[ 32 ]
- read_argv( 1, argument, charsmax( argument ) )
- new give_points[ 10 ]
- read_argv( 2, give_points, charsmax( give_points ) )
- new gift = str_to_num( give_points )
- new iPlayer[ 32 ], iNum, all
- get_players( iPlayer, iNum, "c" )
- if( equal( argument, "@all" ) )
- {
- for( new i; i < iNum; i++ )
- {
- all = iPlayer[ i ]
- gPoint [ all ] = gPoint [ all ] + gift
- cs_set_user_money(all, (gPoint [ all ]));
- }
- }
- else
- {
- new player = cmd_target( id, argument, 10 )
- if( !player )
- {
- return PLUGIN_HANDLED
- }
- new TargetName[ 32 ]
- get_user_name( player, TargetName, charsmax( TargetName ) )
- get_user_name( id, gName, charsmax( gName ) )
- gPoint [ player ] = gPoint [ player ] + gift
- cs_set_user_money(player, (gPoint [ player ]));
- }
- return PLUGIN_HANDLED
- }
- public cmdRemovePoints( id )
- {
- if( !(get_user_flags(id) & ADMIN_IMMUNITY) )
- {
- return PLUGIN_HANDLED
- }
- new argument[ 32 ]
- read_argv( 1, argument, charsmax( argument ) )
- new give_points[ 10 ]
- read_argv( 2, give_points, charsmax( give_points ) )
- new gift = str_to_num( give_points )
- new iPlayer[ 32 ], iNum, all
- get_players( iPlayer, iNum, "c" )
- if( equal( argument, "@all" ) )
- {
- for( new i; i < iNum; i++ )
- {
- all = iPlayer[ i ]
- gPoint [ all ] = gPoint [ all ] - gift
- cs_set_user_money(all, (gPoint [ all ]));
- }
- }
- else
- {
- new player = cmd_target( id, argument, 31 )
- if( !player )
- {
- return PLUGIN_HANDLED
- }
- new TargetName[ 32 ]
- get_user_name( player, TargetName, charsmax( TargetName ) )
- get_user_name( id, gName, charsmax( gName ) )
- gPoint [ player ] = gPoint [ player ] - gift
- cs_set_user_money(player, (gPoint [ player ]));
- ColorChat( 0, GREY, "^%s ^4%s^3 took^4 [%d Points]^3 from^4 %s^3", gPrefix, gName, gift, TargetName)
- }
- return PLUGIN_HANDLED
- }
- public CmdPlayerSpawn ( id )
- {
- if ( is_user_alive ( id ) )
- {
- set_task ( 10.0, "CmdSetItems", id )
- set_task ( 0.1, "CmdSetModels", id )
- cs_set_user_money(id, (gPoint [ id ]));
- }
- }
- public CmdPlayerKilled ( id )
- {
- new randomnum = random_num ( 1, 100 )
- new iRespChance = ( ItemInfo [ Respawn ] [ MaxValue ] / ItemInfo [ Respawn ] [ Levels ] * gItemLevel [ id ] [ Respawn ] )
- if ( IsPlayer ( id ) )
- {
- if ( gIsRespawned [ id ] == false )
- {
- if ( randomnum <= iRespChance )
- {
- gIsRespawned [ id ] = true
- set_task ( 1.0, "CmdRespawnPlayer", id )
- new gName [ 32 ]
- get_user_name ( id, gName, charsmax ( gName ) )
- new Players [ 32 ], num, tempid
- get_players ( Players, num )
- for ( new i = 0; i < num; i++ )
- {
- tempid = Players [ i ]
- if ( tempid != id )
- ColorChat ( tempid, GREY, "%s^4 %s^3 respawned! (^4%i%%^3)", gPrefix, gName, iRespChance )
- else
- ColorChat ( id, GREY, "%s You got respawned! (^4%i%%^3)", gPrefix, iRespChance )
- }
- }
- }
- }
- }
- public CmdPlayerTakeDamage ( id, inflictor, attacker, Float:damage, bits )
- {
- if ( IsPlayer ( attacker ) )
- {
- if ( damage > 0 )
- {
- new iDamage = ItemInfo [ Damage ] [ MaxValue ] / ItemInfo [ Damage ] [ Levels ] * gItemLevel [ attacker ] [ Damage ]
- SetHamParamFloat ( 4, damage * ( 1.0 + ( float ( iDamage ) / 100.0 ) ) )
- }
- }
- return HAM_IGNORED
- }
- public CmdSetItems ( id )
- {
- if ( !IsPlayer ( id ) )
- return PLUGIN_CONTINUE
- new iValue = ItemInfo [ Health ] [ MaxValue ] / ItemInfo [ Health ] [ Levels ] * gItemLevel [ id ] [ Health ]
- if ( iValue > 0 )
- if ( !gGotHealth [ id ] )
- {
- set_user_health ( id, get_user_health ( id ) + iValue )
- gGotHealth [ id ] = true
- }
- return PLUGIN_HANDLED
- }
- public CmdSetModels ( id )
- {
- if ( gIsVip [ id ] && cs_get_user_team ( id ) != CS_TEAM_SPECTATOR && cs_get_user_team ( id ) != CS_TEAM_UNASSIGNED )
- {
- if ( cs_get_user_team ( id ) == CS_TEAM_CT )
- cs_set_user_model ( id, "ctvip" )
- else
- cs_set_user_model ( id, "tvip" )
- }
- }
- public SetKnife ( id, Knife )
- {
- gKnife [ id ] = Knife
- new Clip, Ammo, Weapon = get_user_weapon ( id, Clip, Ammo )
- if ( Weapon != CSW_KNIFE )
- return PLUGIN_HANDLED
- new vModel [ 56 ], pModel [ 56 ]
- switch ( Knife )
- {
- case 1:
- {
- format ( vModel, charsmax ( pModel ), "models/v_knife.mdl" )
- format ( pModel, charsmax ( pModel ), "models/p_knife.mdl" )
- }
- case 2:
- {
- format ( vModel, charsmax ( pModel ), "models/CZKnife/v_silver.mdl" )
- format ( pModel, charsmax ( pModel ), "models/CZKnife/p_silver.mdl" )
- }
- case 3:
- {
- format ( vModel, charsmax ( pModel ), "models/CZKnife/v_gold.mdl")
- format ( pModel, charsmax ( pModel ), "models/CZKnife/p_gold.mdl" )
- }
- case 4:
- {
- format ( vModel, charsmax ( pModel ), "models/CZKnife/v_proff.mdl" )
- format ( pModel, charsmax ( pModel ), "models/CZKnife/p_proff.mdl" )
- }
- case 5:
- {
- format ( vModel, charsmax ( pModel ), "models/CZKnife/v_katana.mdl" )
- format ( pModel, charsmax ( pModel ), "models/CZKnife/p_katana.mdl" )
- }
- case 6:
- {
- format ( vModel, charsmax ( pModel ), "models/CZKnife/v_khanjar.mdl" )
- format ( pModel, charsmax ( pModel ), "models/CZKnife/p_khanjar.mdl" )
- }
- case 7:
- {
- format ( vModel, charsmax ( vModel ), "models/CZKnife/v_vip2.mdl" )
- format ( pModel, charsmax ( pModel ), "models/CZKnife/p_vip2.mdl" )
- }
- }
- entity_set_string ( id, EV_SZ_viewmodel, vModel )
- entity_set_string ( id, EV_SZ_weaponmodel, pModel )
- return PLUGIN_HANDLED
- }
- public client_connect ( id )
- {
- if ( IsPlayer ( id ) )
- {
- LoadData ( id )
- LoadVIPs ( )
- }
- }
- public client_disconnect ( id )
- {
- if ( gIsVip [ id ] )
- gIsVip [ id ] = false
- if ( IsPlayer ( id ) )
- SaveData ( id )
- }
- public client_authorized ( id )
- {
- new gSteamID[ 35 ], gName [ 32 ]
- get_user_authid ( id, gSteamID, charsmax ( gSteamID ) )
- get_user_name ( id, gName, charsmax ( gName ) )
- if ( TrieKeyExists ( gVIPSteamIDs, gSteamID ) )
- {
- gIsVip [ id ] = true;
- ColorChat ( 0, GREY, "%s^4 %s^3 joined as^4 VIP^3 !", gPrefix, gName )
- }
- LoadData ( id )
- }
- public CmdRoundBegin ( id )
- {
- new Players [ 32 ], num, tempid
- get_players ( Players, num, "a" )
- for ( new i; i < num; i++ )
- {
- tempid = Players [ i ]
- gKillCount [ tempid ] = 0
- gIsRespawned [ id ] = false
- gGotHealth [ id ] = false
- }
- }
- public EventRoundEnd ( )
- {
- new gGain [ 3 ]
- for ( new tempid = gFirstClient; tempid <= gMaxPlayers; tempid++ )
- {
- if ( is_user_alive ( tempid ) )
- {
- gSurviveCount [ tempid ]++
- if ( gSurviveCount [ tempid ] >= get_pcvar_num ( gCvars [ BonusTNeeded ] ) && cs_get_user_team ( tempid ) == CS_TEAM_T )
- {
- gGain [ 0 ] = get_pcvar_num ( gCvars [ BonusT ] )
- if ( gIsVip [ tempid ] )
- gGain [ 0 ] += get_pcvar_num ( gCvars [ BonusT ] )
- ColorChat ( tempid, GREY, "%s You got^4 %i^3 Bonus Points for surviving^4 %i^3 rounds in a row%s!", gPrefix, gGain [ 0 ], get_pcvar_num ( gCvars [ BonusTNeeded ] ), gIsVip [ tempid ] ? " as^4 VIP^3" : "" )
- GivePoint ( tempid, gGain [ 0 ] )
- gSurviveCount [ tempid ] = 0
- SaveData ( tempid )
- }
- if ( gKillCount [ tempid ] >= get_pcvar_num ( gCvars [ BonusCTNeeded ] ) && cs_get_user_team ( tempid ) == CS_TEAM_CT )
- {
- gGain [ 1 ] = get_pcvar_num ( gCvars [ BonusCT ] )
- if ( gIsVip [ tempid ] )
- gGain [ 1 ] += get_pcvar_num ( gCvars [ BonusCT ] )
- ColorChat ( tempid, GREY, "%s You got^4 %i^3 Bonus Points for killing^4 %i^3 enemies in one round%s!", gPrefix, gGain [ 1 ], get_pcvar_num ( gCvars [ BonusCTNeeded ] ), gIsVip [ tempid ] ? " as^4 VIP^3" : "" )
- GivePoint ( tempid, gGain [ 1 ] )
- gKillCount [ tempid ] = 0
- SaveData ( tempid )
- }
- if ( cs_get_user_team ( tempid ) == CS_TEAM_T )
- {
- gGain [ 2 ] = get_pcvar_num ( gCvars [ Survive ] )
- if ( gIsVip [ tempid ] )
- gGain [ 2 ] += get_pcvar_num ( gCvars [ Survive ] )
- GivePoint ( tempid, gGain [ 2 ] )
- ColorChat ( tempid, GREY, "%s You got^4 %i^3 Points for surviving the round %s!", gPrefix, gGain [ 2 ], gIsVip [ tempid ] ? "as^4 VIP^3 " : "" )
- SaveData ( tempid )
- }
- }
- else if ( !is_user_alive ( tempid ) )
- {
- gSurviveCount [ tempid ] = 0
- }
- }
- }
- public CmdRules ( id )
- {
- client_cmd(id, "say /rules")
- }
- public CreateTopTen()
- {
- new Array:aNames, Array:aAuths, Array:aXPs;
- new iTotal = SortTopPlayers(aNames, aAuths, aXPs);
- new szName[156], szAuth[156];
- for( new i = 0; i < TOPRANKS; i++ )
- {
- if( i < iTotal )
- {
- ArrayGetString(aNames, i, szName, charsmax(szName));
- ArrayGetString(aAuths, i, szAuth, charsmax(szAuth));
- replace_all(szName, charsmax(szName), "&", "&");
- replace_all(szName, charsmax(szName), "<", "<");
- replace_all(szName, charsmax(szName), ">", ">");
- formatex(gTopNames[i + 1], charsmax(gTopNames[]), "%s", szName);
- formatex(gTopAuth[i + 1], charsmax(gTopAuth[]), "%s", szAuth);
- gTopPoints[i + 1] = ArrayGetCell(aXPs, i);
- }
- }
- ArrayDestroy(aNames);
- ArrayDestroy(aAuths);
- ArrayDestroy(aXPs);
- return PLUGIN_HANDLED;
- }
- public CmdMOTD(id)
- {
- for ( new i = 0; i < TOPRANKS; i++ )
- {
- new gVip [ TOPRANKS + 1 ]
- if ( TrieKeyExists ( gVIPSteamIDs, gTopAuth [ i ] ) )
- {
- gVip [ i ] = true
- }
- }
- new szMOTD[2368], iLen;
- iLen = formatex(szMOTD[iLen], charsmax(szMOTD)-iLen,"<STYLE>body{background:#212121;color:#d1d1d1;font-family:Arial}table{width:100%%;font-size:11px}</STYLE><table cellpadding=1 cellspacing=1 border=0>");
- iLen += formatex(szMOTD[iLen], charsmax(szMOTD)-iLen, "<tr bgcolor=#333333><th width=5%%><align=left font color=white> Rank <th width=10%%> Nick <th width=10%%> VIP <th width=10%%> Total Points");
- for( new i = 0; i < TOPRANKS; i++ )
- {
- if( i == 0 || i == 2 || i == 4 || i == 6 || i == 8 )
- {
- iLen += formatex(szMOTD[iLen], charsmax(szMOTD)-iLen, "<tr align=left%s><td align=left><font color=white> %i. <td> %s <td> %s <td> %i", " bgcolor=#2b5b95", (i + 1), gTopNames[i + 1], gVip [i + 1] ? "Yes" : "No", gTopPoints[i + 1])
- }
- else
- {
- iLen += formatex(szMOTD[iLen], charsmax(szMOTD)-iLen, "<tr align=left%s><td align=left><font color=white> %i. <td> %s <td> %s <td> %i", " bgcolor=#333333", (i + 1), gTopNames[i + 1], gVip [i + 1] ? "Yes" : "No", gTopPoints[i + 1])
- }
- }
- iLen += formatex(szMOTD[iLen], charsmax(szMOTD)-iLen, "</table></body>");
- show_motd(id, szMOTD, "Top Ten");
- return PLUGIN_HANDLED;
- }
- public CmdShopMenu ( id )
- {
- new gTitle [ 128 ]
- formatex ( gTitle, charsmax ( gTitle ), "\y[CzoneGaming.se] /pm^n\rHideNSeek Shop^n\yPoints: %i", gPoint [ id ] )
- new gMenu = menu_create ( gTitle, "CmdShopHandle", 0 )
- menu_additem ( gMenu, "\wToplist", "1" )
- menu_additem ( gMenu, "\wPlayer Info^n", "2" )
- menu_additem ( gMenu, "\wUpgrade Menu", "3" )
- menu_additem ( gMenu, "\wKnife Menu^n", "4" )
- new gVips [ 60 ]
- if ( gIsVip [ id ] )
- {
- menu_additem ( gMenu, "\wServer Rules^n^n\dYou are\y VIP\d!^n + VIP Skins^n + Bonus Points", "5" )
- }
- else
- {
- menu_additem ( gMenu, "\wServer Rules^n", "5" )
- }
- if ( !gIsVip [ id ] )
- {
- if ( gPoint [ id ] < get_pcvar_num ( gCvars [ PriceVip ] ) )
- formatex ( gVips, charsmax ( gVips ), "\dBuy VIP:\y %i Points", get_pcvar_num ( gCvars [ PriceVip ] ) )
- else
- formatex ( gVips, charsmax ( gVips ), "\wBuy VIP:\y %i Points", get_pcvar_num ( gCvars [ PriceVip ] ) )
- menu_additem ( gMenu, gVips, "6" )
- }
- menu_setprop ( gMenu, MPROP_EXITNAME, "Close" )
- menu_display ( id, gMenu )
- return PLUGIN_HANDLED
- }
- public CmdShopHandle ( id, gMenu, gItem )
- {
- if ( gItem == MENU_EXIT )
- {
- menu_destroy ( gMenu )
- return PLUGIN_HANDLED
- }
- new gAccess, gCallback, gData [ 3 ]
- menu_item_getinfo ( gMenu, gItem, gAccess, gData, charsmax ( gData ), _, _, gCallback )
- new gKey = str_to_num ( gData )
- switch ( gKey )
- {
- case 1: CmdMOTD ( id )
- case 2: CmdPlayerMenu ( id )
- case 3: CmdUpgradeMenu ( id )
- case 4: CmdKnifeMenu ( id )
- case 5: CmdRules ( id )
- case 6:
- {
- if ( gIsVip [ id ] )
- {
- ColorChat ( id, GREY, "%s Du är redan^4 VIP^3 !", gPrefix )
- CmdShopMenu ( id )
- return PLUGIN_HANDLED
- }
- else if ( gPoint [ id ] < get_pcvar_num ( gCvars [ PriceVip ] ) )
- {
- ColorChat ( id, GREY, "%s You need^4 %i^3 more Points to buy^4 VIP^3 !", gPrefix, get_pcvar_num ( gCvars [ PriceVip ] ) - gPoint [ id ] )
- CmdShopMenu ( id )
- return PLUGIN_HANDLED
- }
- else
- {
- new gName [ 32 ], gAuthID [ 35 ]
- get_user_authid ( id, gAuthID, charsmax ( gAuthID ) )
- get_user_name ( id, gName, charsmax ( gName ) )
- gPoint [ id ] -= get_pcvar_num ( gCvars [ PriceVip ] )
- ColorChat ( 0, GREY, "%s^4 %s^3 have bought^4 VIP^3 for^4 %i^3 Points !", gPrefix, gName, get_pcvar_num ( gCvars [ PriceVip ] ) )
- server_cmd ( "vip_add ^"%s^" ^"t^" ^"^" ^"steamid^"", gAuthID )
- gIsVip [ id ] = true
- log_amx ( "VIP: %s [%s] bought VIP", gName, gAuthID )
- }
- }
- }
- return PLUGIN_HANDLED
- }
- public CmdKnifeMenu ( id )
- {
- new gTitle [ 128 ]
- formatex ( gTitle, sizeof ( gTitle ), "\y[CzoneGaming.se] /pm^n\rHideNSeek Shop\d (Knives)^n\yPoints: %i", gPoint [ id ] )
- new iMenu = menu_create ( gTitle, "CmdKnifeHandle", 0 )
- static szItem [ 128 ], iPrice, gKey [ 3 ]
- for ( new gItem = 0; gItem < KNIFES; gItem++ )
- {
- num_to_str ( gItem, gKey, charsmax ( gKey ) )
- iPrice = KnifeInfo [ gItem ] [ Price ]
- if ( gKnifeOwned [ id ] [ gItem ] >= 1 && gKnife [ id ] != KnifeInfo [ gItem ] [ CaseNumb ] )
- {
- formatex ( szItem, charsmax ( szItem ) - 1, "\r%s:\w Bought\r (\w+%i Points\r)", KnifeInfo [ gItem ] [ Name ], KnifeInfo [ gItem ] [ PointBonus ] )
- }
- else if ( gKnife [ id ] == KnifeInfo [ gItem ] [ CaseNumb ] )
- {
- formatex ( szItem, charsmax ( szItem ) - 1, "\r%s:\w Using\r (\w+%i Points\r)", KnifeInfo [ gItem ] [ Name ], KnifeInfo [ gItem ] [ PointBonus ] )
- }
- else if ( gPoint [ id ] < iPrice )
- {
- formatex ( szItem, charsmax ( szItem ) - 1, "\d%s:\r (\w+%i Points\r)\y %i Points", KnifeInfo [ gItem ] [ Name ], KnifeInfo [ gItem ] [ PointBonus ], iPrice )
- }
- else
- {
- formatex ( szItem, charsmax ( szItem ) - 1, "\w%s:\r (\w+%i Points\r)\y %i Points", KnifeInfo [ gItem ] [ Name ], KnifeInfo [ gItem ] [ PointBonus ], iPrice )
- }
- menu_additem ( iMenu, szItem, gKey )
- }
- menu_setprop ( iMenu, MPROP_EXITNAME, "Back" )
- menu_display ( id, iMenu )
- return PLUGIN_CONTINUE
- }
- public CmdKnifeHandle ( id, iMenu, iItem )
- {
- if ( iItem == MENU_EXIT )
- {
- menu_destroy ( iMenu )
- CmdShopMenu ( id )
- return PLUGIN_HANDLED
- }
- new gAccess, callback, gData [ 3 ]
- menu_item_getinfo ( iMenu, iItem, gAccess, gData, charsmax ( gData ), _, _, callback )
- new gItem = str_to_num ( gData )
- new gName [ 32 ]
- get_user_name ( id, gName, charsmax ( gName ) )
- new msg [ 256 ]
- new iPrice = KnifeInfo [ gItem ] [ Price ]
- if ( gKnifeOwned [ id ] [ gItem ] >= 1 && gKnife [ id ] != KnifeInfo [ gItem ] [ CaseNumb ] )
- formatex ( msg, charsmax ( msg ), "%s You changed the knife to^4 %s^3!", gPrefix, KnifeInfo [ gItem ] [ Name ] )
- else if ( gKnife [ id ] == KnifeInfo [ gItem ] [ CaseNumb ] )
- formatex ( msg, charsmax ( msg ), "%s You are already using^4 %s^3!", gPrefix, KnifeInfo [ gItem ] [ Name ] )
- else if ( gPoint [ id ] < iPrice )
- formatex ( msg, charsmax ( msg ), "%s You need^4 %i^3 more Points to buy^4 %s^3!", gPrefix, iPrice - gPoint [ id ], KnifeInfo [ gItem ] [ Name ] )
- else
- formatex ( msg, charsmax ( msg ), "%s^4 %s^3 bought^4 %s^3!", gPrefix, gName, KnifeInfo [ gItem ] [ Name ] )
- switch ( gItem )
- {
- case Default:
- {
- if ( gKnifeOwned [ id ] [ gItem ] >= 1 && gKnife [ id ] != KnifeInfo [ gItem ] [ CaseNumb ] )
- {
- ColorChat ( id, GREY, msg )
- SetKnife ( id, KnifeInfo [ gItem ] [ CaseNumb ] )
- SaveData ( id )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else if ( gKnife [ id ] == KnifeInfo [ gItem ] [ CaseNumb ] )
- {
- ColorChat ( id, GREY, msg )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else if ( gPoint [ id ] < iPrice )
- {
- ColorChat ( id, GREY, msg )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else
- {
- ColorChat ( 0, GREY, msg )
- SetKnife ( id, KnifeInfo [ gItem ] [ CaseNumb ] )
- CmdKnifeMenu ( id )
- gKnifeOwned [ id ] [ gItem ]++
- RemovePoint ( id, iPrice )
- }
- }
- case Silver:
- {
- if ( gKnifeOwned [ id ] [ gItem ] >= 1 && gKnife [ id ] != KnifeInfo [ gItem ] [ CaseNumb ] )
- {
- ColorChat ( id, GREY, msg )
- SetKnife ( id, KnifeInfo [ gItem ] [ CaseNumb ] )
- SaveData ( id )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else if ( gKnife [ id ] == KnifeInfo [ gItem ] [ CaseNumb ] )
- {
- ColorChat ( id, GREY, msg )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else if ( gPoint [ id ] < iPrice )
- {
- ColorChat ( id, GREY, msg )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else
- {
- ColorChat ( 0, GREY, msg )
- SetKnife ( id, KnifeInfo [ gItem ] [ CaseNumb ] )
- CmdKnifeMenu ( id )
- gKnifeOwned [ id ] [ gItem ]++
- RemovePoint ( id, iPrice )
- }
- }
- case Gold:
- {
- if ( gKnifeOwned [ id ] [ gItem ] >= 1 && gKnife [ id ] != KnifeInfo [ gItem ] [ CaseNumb ] )
- {
- ColorChat ( id, GREY, msg )
- SetKnife ( id, KnifeInfo [ gItem ] [ CaseNumb ] )
- SaveData ( id )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else if ( gKnife [ id ] == KnifeInfo [ gItem ] [ CaseNumb ] )
- {
- ColorChat ( id, GREY, msg )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else if ( gPoint [ id ] < iPrice )
- {
- ColorChat ( id, GREY, msg )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else
- {
- ColorChat ( 0, GREY, msg )
- SetKnife ( id, KnifeInfo [ gItem ] [ CaseNumb ] )
- CmdKnifeMenu ( id )
- gKnifeOwned [ id ] [ gItem ]++
- RemovePoint ( id, iPrice )
- }
- }
- case ProKnife:
- {
- if ( gKnifeOwned [ id ] [ gItem ] >= 1 && gKnife [ id ] != KnifeInfo [ gItem ] [ CaseNumb ] )
- {
- ColorChat ( id, GREY, msg )
- SetKnife ( id, KnifeInfo [ gItem ] [ CaseNumb ] )
- SaveData ( id )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else if ( gKnife [ id ] == KnifeInfo [ gItem ] [ CaseNumb ] )
- {
- ColorChat ( id, GREY, msg )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else if ( gPoint [ id ] < iPrice )
- {
- ColorChat ( id, GREY, msg )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else
- {
- ColorChat ( 0, GREY, msg )
- SetKnife ( id, KnifeInfo [ gItem ] [ CaseNumb ] )
- CmdKnifeMenu ( id )
- gKnifeOwned [ id ] [ gItem ]++
- RemovePoint ( id, iPrice )
- }
- }
- case Katana:
- {
- if ( gKnifeOwned [ id ] [ gItem ] >= 1 && gKnife [ id ] != KnifeInfo [ gItem ] [ CaseNumb ] )
- {
- ColorChat ( id, GREY, msg )
- SetKnife ( id, KnifeInfo [ gItem ] [ CaseNumb ] )
- SaveData ( id )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else if ( gKnife [ id ] == KnifeInfo [ gItem ] [ CaseNumb ] )
- {
- ColorChat ( id, GREY, msg )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else if ( gPoint [ id ] < iPrice )
- {
- ColorChat ( id, GREY, msg )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else
- {
- ColorChat ( 0, GREY, msg )
- SetKnife ( id, KnifeInfo [ gItem ] [ CaseNumb ] )
- CmdKnifeMenu ( id )
- gKnifeOwned [ id ] [ gItem ]++
- RemovePoint ( id, iPrice )
- }
- }
- case Khanjar:
- {
- if ( gKnifeOwned [ id ] [ gItem ] >= 1 && gKnife [ id ] != KnifeInfo [ gItem ] [ CaseNumb ] )
- {
- ColorChat ( id, GREY, msg )
- SetKnife ( id, KnifeInfo [ gItem ] [ CaseNumb ] )
- SaveData ( id )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else if ( gKnife [ id ] == KnifeInfo [ gItem ] [ CaseNumb ] )
- {
- ColorChat ( id, GREY, msg )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else if ( gPoint [ id ] < iPrice )
- {
- ColorChat ( id, GREY, msg )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else
- {
- ColorChat ( 0, GREY, msg )
- SetKnife ( id, KnifeInfo [ gItem ] [ CaseNumb ] )
- CmdKnifeMenu ( id )
- gKnifeOwned [ id ] [ gItem ]++
- RemovePoint ( id, iPrice )
- }
- }
- case CzoneVip:
- {
- if ( gKnifeOwned [ id ] [ gItem ] >= 1 && gKnife [ id ] != KnifeInfo [ gItem ] [ CaseNumb ] )
- {
- ColorChat ( id, GREY, msg )
- SetKnife ( id, KnifeInfo [ gItem ] [ CaseNumb ] )
- SaveData ( id )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else if ( gKnife [ id ] == KnifeInfo [ gItem ] [ CaseNumb ] )
- {
- ColorChat ( id, GREY, msg )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else if ( gPoint [ id ] < iPrice )
- {
- ColorChat ( id, GREY, msg )
- CmdKnifeMenu ( id )
- return PLUGIN_HANDLED
- }
- else
- {
- ColorChat ( 0, GREY, msg )
- SetKnife ( id, KnifeInfo [ gItem ] [ CaseNumb ] )
- CmdKnifeMenu ( id )
- gKnifeOwned [ id ] [ gItem ]++
- RemovePoint ( id, iPrice )
- }
- }
- }
- SaveData ( id )
- return PLUGIN_HANDLED
- }
- public CmdUpgradeMenu ( id )
- {
- new gTitle [ 128 ]
- formatex ( gTitle, sizeof ( gTitle ), "\y[CzoneGaming.se] /pm^n\rHideNSeek Shop\d (Upgrades)^n\yPoints: %i", gPoint [ id ] )
- new iMenu = menu_create ( gTitle, "CmdUpgradeHandle", 0 )
- static szItem [ 128 ], iValue, iPrice, gKey [ 3 ]
- for ( new gItem = 0; gItem < UPGRADES; gItem++ )
- {
- num_to_str ( gItem, gKey, charsmax ( gKey ) )
- iValue = ( ItemInfo [ gItem ] [ MaxValue ] / ItemInfo [ gItem ] [ Levels ] * ( gItemLevel [ id ] [ gItem ] + 1 ) )
- iPrice = ItemPrice [ gItem ] [ gItemLevel [ id ] [ gItem ] ]
- if ( gItemLevel [ id ] [ gItem ] >= ItemInfo [ gItem ] [ Levels ] )
- {
- formatex ( szItem, charsmax ( szItem ), "\d%s: \wMax Level!\r (\w%i%s\r)", ItemInfo [ gItem ] [ Name ], ItemInfo [ gItem ] [ MaxValue ], ItemInfo [ gItem ] [ Prefix ] )
- }
- else if ( gPoint [ id ] < iPrice )
- {
- formatex ( szItem, charsmax ( szItem ), "\d%s:\w Level %i\r (\w%i%s\r) \y%i Points", ItemInfo [ gItem ] [ Name ], gItemLevel [ id ] [ gItem ] + 1, iValue, ItemInfo [ gItem ] [ Prefix ], iPrice )
- }
- else
- {
- formatex ( szItem, charsmax ( szItem ), "\w%s: Level %i\r (\w%i%s\r)\y %i Points", ItemInfo [ gItem ] [ Name ], gItemLevel [ id ] [ gItem ] + 1, iValue, ItemInfo [ gItem ] [ Prefix ], iPrice )
- }
- menu_additem ( iMenu, szItem, gKey )
- }
- menu_setprop ( iMenu, MPROP_EXITNAME, "Back" )
- menu_display ( id, iMenu )
- }
- public CmdUpgradeHandle ( id, iMenu, iItem )
- {
- if ( iItem == MENU_EXIT )
- {
- menu_destroy ( iMenu )
- CmdShopMenu ( id )
- return PLUGIN_HANDLED
- }
- new gAccess, callback, gData [ 3 ]
- menu_item_getinfo ( iMenu, iItem, gAccess, gData, charsmax ( gData ), _, _, callback )
- new gItem = str_to_num ( gData )
- new gName [ 32 ]
- get_user_name ( id, gName, charsmax ( gName ) )
- new iPrice = ItemPrice [ gItem ] [ gItemLevel [ id ] [ gItem ] ]
- if ( gItemLevel [ id ] [ gItem ] >= ItemInfo [ gItem ] [ Levels ] )
- {
- ColorChat ( id, GREY, "%s^4 %s^3 have already been upgraded to Max Level!", gPrefix, ItemInfo [ gItem ] [ Name ] )
- CmdUpgradeMenu ( id )
- return PLUGIN_HANDLED
- }
- else if ( gPoint [ id ] < iPrice )
- {
- ColorChat ( id, GREY, "%s You need^4 %i^3 more Points to upgrade^4 %s^3!", gPrefix, iPrice - gPoint [ id ], ItemInfo [ gItem ] [ Name ] )
- CmdUpgradeMenu ( id )
- return PLUGIN_HANDLED
- }
- else
- {
- ColorChat ( 0, GREY, "%s^4 %s^3 upgraded^4 %s^3 to level^4 %i^3!", gPrefix, gName, ItemInfo [ gItem ] [ Name ], ( gItemLevel [ id ] [ gItem ] + 1 ) )
- gItemLevel [ id ] [ gItem ]++
- RemovePoint ( id, iPrice )
- if ( gPoint [ id ] < 0 )
- {
- gPoint [ id ] += iPrice
- gItemLevel [ id ] [ gItem ]--
- SaveData ( id )
- return PLUGIN_HANDLED
- }
- menu_display( id, iMenu, 0 )
- SaveData ( id )
- }
- return PLUGIN_HANDLED
- }
- public CmdPlayerMenu ( id )
- {
- new iMenu = menu_create ( "\y[CzoneGaming.se] /pm^n\rHideNSeek Shop\d^nPlayers Menu", "CmdPlayerHandle" )
- new Players [ 32 ], num, tempid, gName [ 32 ], gKey [ 3 ]
- get_players ( Players, num )
- for ( new i; i < num; i++ )
- {
- tempid = Players [ i ]
- get_user_name ( tempid, gName, charsmax ( gName ) )
- num_to_str ( tempid, gKey, charsmax ( gKey ) )
- menu_additem ( iMenu, gName, gKey )
- }
- menu_setprop ( iMenu, MPROP_EXITNAME, "Back" )
- menu_display ( id, iMenu, 0 )
- }
- public CmdPlayerHandle ( id, iMenu, Item )
- {
- if ( Item == MENU_EXIT )
- {
- menu_destroy ( iMenu )
- CmdShopMenu ( id )
- return PLUGIN_HANDLED
- }
- new gData [ 6 ], gAccess, callback
- menu_item_getinfo ( iMenu, Item, gAccess, gData, charsmax ( gData ), _, _, callback )
- new i = str_to_num ( gData )
- new gAuth [ 35 ], gName [ 32 ]
- get_user_authid ( i, gAuth, charsmax ( gAuth ) )
- get_user_name ( i, gName, charsmax ( gName ) )
- static gMotd [ 2500 ]
- new len = formatex ( gMotd, charsmax ( gMotd ), "<html>" )
- len += formatex ( gMotd [ len ], charsmax ( gMotd ) - len, "<body style=^"background-color:#030303; color:#FFFFFF^">" )
- len += formatex ( gMotd [ len ], charsmax ( gMotd ) - len, "<p align=^"center^">" )
- len += formatex ( gMotd [ len ], charsmax ( gMotd ) - len, "<h2><b>Player Info</b></h2>" )
- len += formatex ( gMotd [ len ], charsmax ( gMotd ) - len, "<p align=^"left^">" )
- len += formatex ( gMotd [ len ], charsmax ( gMotd ) - len, "Name: %s<br>", gName )
- len += formatex ( gMotd [ len ], charsmax ( gMotd ) - len, "SteamID: %s<br>", gAuth )
- len += formatex ( gMotd [ len ], charsmax ( gMotd ) - len, "Points: %i<br>", gPoint [ i ] )
- len += formatex ( gMotd [ len ], charsmax ( gMotd ) - len, "Total Points: %i<br>", gPointTop [ i ] )
- len += formatex ( gMotd [ len ], charsmax ( gMotd ) - len, "<br><h2><b>Upgrades:</b></h2>" )
- for ( new gItem = 0; gItem < UPGRADES; gItem++ )
- if ( ItemInfo [ gItem ] [ Levels ] != 1 )
- len += formatex ( gMotd [ len ], charsmax ( gMotd ) - len, "%s - Level: %i/%i<br>", ItemInfo [ gItem ] [ Name ], gItemLevel [ i ] [ gItem ], ItemInfo [ gItem ] [ Levels ] )
- len += formatex ( gMotd [ len ], charsmax ( gMotd ) - len, "<br><h2><b>Knives:</b></h2>" )
- for ( new gKnife = 0; gKnife < KNIFES; gKnife++ )
- len += formatex ( gMotd [ len ], charsmax ( gMotd ) - len, "%s: %s<br>", KnifeInfo [ gKnife ] [ Name ], gKnifeOwned [ i ] [ gKnife ] == 1 ? "Yes" : "No" )
- len += formatex ( gMotd [ len ], charsmax ( gMotd ) - len, "</p>" )
- len += formatex ( gMotd [ len ], charsmax ( gMotd ) - len, "</body>" )
- len += formatex ( gMotd [ len ], charsmax ( gMotd ) - len, "</html>" )
- show_motd ( id, gMotd, "" )
- CmdPlayerMenu ( id )
- menu_destroy ( iMenu )
- return PLUGIN_HANDLED
- }
- public CmdDeathMsg ( )
- {
- new gKiller = read_data ( 1 )
- new gVictim = read_data ( 2 )
- new isHeadshot = read_data ( 3 )
- if ( IsPlayer ( gKiller ) && IsPlayer ( gVictim ) )
- {
- if ( gKiller != gVictim )
- {
- if ( cs_get_user_team ( gKiller ) != cs_get_user_team ( gVictim ) )
- {
- new gPointsGain = get_pcvar_num ( gCvars [ Kill ] )
- if ( isHeadshot )
- gPointsGain += get_pcvar_num ( gCvars [ Headshot ] )
- if ( cs_get_user_team ( gKiller ) == CS_TEAM_CT )
- gKillCount [ gKiller ]++
- if ( gKnifeOwned [ gKiller ] [ CzoneVip ] >= 1 )
- gPointsGain += KnifeInfo [ CzoneVip ] [ PointBonus ]
- else if ( gKnifeOwned [ gKiller ] [ Khanjar ] >= 1 || gKnifeOwned [ gKiller ] [ Katana ] >= 1 )
- gPointsGain += KnifeInfo [ Khanjar ] [ PointBonus ]
- else if ( gKnifeOwned [ gKiller ] [ ProKnife ] >= 1 || gKnifeOwned [ gKiller ] [ Gold ] >= 1 || gKnifeOwned [ gKiller ] [ Silver ] >= 1 )
- gPointsGain += KnifeInfo [ ProKnife ] [ PointBonus ]
- GivePoint ( gKiller, gPointsGain )
- ColorChat ( gKiller, GREY, "%s You earned^4 %i^3 Points for killing%s!", gPrefix, gPointsGain, isHeadshot ? " med huvudskott" : "" )
- SaveData ( gKiller )
- }
- }
- else
- {
- RemovePoint ( gVictim, get_pcvar_num ( gCvars [ Suicide ] ) )
- if ( gPoint [ gVictim ] < 0 )
- gPoint [ gVictim ] = 0
- ColorChat ( gVictim, GREY, "%s You lost^4 %i^3 Points for suicide!", gPrefix, get_pcvar_num ( gCvars [ Suicide ] ) )
- SaveData ( gVictim )
- }
- }
- return PLUGIN_HANDLED
- }
- public CmdAddVip( )
- {
- if( read_argc ( ) < 2 )
- {
- server_print( "Invalid arguments! Usage: vip_add <steamid> (Note: USE QUOTES AROUND STEAMID!)" )
- return PLUGIN_HANDLED
- }
- new gSteamID[ 35 ]
- read_argv( 1, gSteamID, charsmax( gSteamID ) )
- if( TrieKeyExists( gVIPSteamIDs, gSteamID ) )
- {
- return PLUGIN_HANDLED
- }
- if( !IsValidSteamID( gSteamID ) )
- {
- log_amx( "Invalid SteamID given to vip_add command." )
- return PLUGIN_HANDLED
- }
- TrieSetCell( gVIPSteamIDs, gSteamID, 1 )
- format( gSteamID, charsmax( gSteamID ), "%s", gSteamID )
- write_file( gVIPFile, gSteamID )
- return PLUGIN_HANDLED
- }
- bool:IsValidSteamID( gSteamID[ ] )
- {
- return ( strlen( gSteamID ) > 10 && equal( gSteamID, "STEAM_0:", 8 ) && ( '0' <= gSteamID[ 8 ] <= '1' ) && gSteamID[ 9 ] == ':' && is_str_num( gSteamID[ 10 ] ) )
- }
- public plugin_end( )
- {
- TrieDestroy( gVIPSteamIDs )
- }
- LoadVIPs( )
- {
- gVIPSteamIDs = TrieCreate( )
- get_configsdir( gVIPFile, charsmax( gVIPFile ) )
- add( gVIPFile, charsmax( gVIPFile ), "/vip.ini" )
- new iFile = fopen( gVIPFile, "rt" )
- if( !iFile )
- {
- return
- }
- new gData [ 64 ], gSteamID [ 35 ], iLine
- while ( !feof ( iFile ) )
- {
- iLine++
- fgets ( iFile, gData, charsmax( gData ) )
- trim ( gData )
- strbreak ( gData, gSteamID, charsmax( gSteamID ), gData, charsmax( gData ) )
- if ( IsValidSteamID ( gSteamID ) )
- {
- TrieSetCell ( gVIPSteamIDs, gSteamID, 1 )
- }
- else
- {
- log_amx( "Invalid SteamID on line %d in vip.ini!", iLine )
- }
- }
- fclose( iFile )
- }
- public SaveData ( id )
- {
- static gData [ 256 ]
- new gAuthID [ 35 ]
- get_user_authid ( id, gAuthID, charsmax ( gAuthID ) )
- new gLen = formatex ( gData, charsmax ( gData ), "%i %i %i", gPoint [ id ], gKnife [ id ], gPointTop [ id ] )
- for ( new iItem = 0; iItem < UPGRADES; iItem++ )
- {
- gLen += formatex ( gData [ gLen ], charsmax ( gData ) - gLen, " %i", gItemLevel [ id ] [ iItem ] )
- }
- for ( new bKnife = 0; bKnife < KNIFES; bKnife++ )
- {
- gLen += formatex ( gData [ gLen ], charsmax ( gData ) - gLen, " %i", gKnifeOwned [ id ] [ bKnife ] )
- }
- nvault_set ( gVault, gAuthID, gData )
- new gName [ 32 ], gNameTemp [ 32 ]
- get_user_name ( id, gName, charsmax ( gName ) )
- formatex ( gNameTemp, charsmax ( gNameTemp ), "%s", gName )
- nvault_set ( gTopVault, gAuthID, gNameTemp )
- }
- public LoadData ( id )
- {
- static gData [ 256 ]
- new gAuthID [ 35 ], timestamp
- get_user_authid ( id, gAuthID, charsmax ( gAuthID ) )
- if ( nvault_lookup ( gVault, gAuthID, gData, charsmax ( gData ), timestamp ) )
- {
- ParseLoadData ( id, gData )
- gIsNotNew [ id ] = true
- }
- else
- {
- for ( new iItem = 0; iItem < UPGRADES; iItem++ )
- {
- gItemLevel [ id ] [ iItem ] = 0
- }
- for ( new gItem = 0; gItem < KNIFES; gItem++ )
- {
- gKnifeOwned [ id ] [ gItem ] = 0
- }
- gKnifeOwned [ id ] [ Default ] = 1
- set_task ( 5.0, "gNewUser", id )
- }
- }
- public CurWeapon ( id )
- {
- SetKnife ( id, gKnife [ id ] )
- }
- public gNewUser ( id )
- {
- new gName [ 32 ]
- get_user_name ( id, gName, charsmax ( gName ) )
- gPoint [ id ] = get_pcvar_num ( gCvars [ PointStart ] )
- gPointTop [ id ] = get_pcvar_num ( gCvars [ PointStart ] )
- if ( cs_get_user_team ( id ) != CS_TEAM_SPECTATOR && cs_get_user_team ( id ) != CS_TEAM_UNASSIGNED && !gIsNotNew [ id ] )
- {
- ColorChat ( id, GREY, "%s Welcome^4 %s^3! Our server is using a private^4 PointMod^3. Type^4 /shop^3!", gPrefix, gName )
- gIsNotNew [ id ] = true
- }
- else
- {
- set_task ( 10.0, "gNewUser", id )
- }
- }
- ParseLoadData ( id, gData [ 256 ] )
- {
- static gNum [ 11 ]
- strbreak ( gData, gNum, charsmax ( gNum ), gData, charsmax ( gData ) )
- gPoint [ id ] = str_to_num ( gNum )
- strbreak ( gData, gNum, charsmax ( gNum ), gData, charsmax ( gData ) )
- gKnife [ id ] = str_to_num ( gNum )
- strbreak ( gData, gNum, charsmax ( gNum ), gData, charsmax ( gData ) )
- gPointTop [ id ] = str_to_num ( gNum )
- for ( new iItem = 0; iItem < UPGRADES; iItem++ )
- {
- strbreak ( gData, gNum, charsmax ( gNum ), gData, charsmax ( gData ) )
- gItemLevel [ id ] [ iItem ] = str_to_num ( gNum )
- }
- for ( new bKnife = 0; bKnife < KNIFES; bKnife++ )
- {
- strbreak ( gData, gNum, charsmax ( gNum ), gData, charsmax ( gData ) )
- gKnifeOwned [ id ] [ bKnife ] = str_to_num ( gNum )
- }
- }
- GivePoint ( id, points)
- {
- new gainPoint
- if ( IsPlayer ( id ) )
- {
- if ( gIsVip [ id ] )
- gainPoint = points * 2
- else
- gainPoint = points
- if ( gKnifeOwned [ id ] [ CzoneVip ] >= 1 )
- gainPoint += KnifeInfo [ CzoneVip ] [ PointBonus ]
- else if ( gKnifeOwned [ id ] [ Khanjar ] >= 1 || gKnifeOwned [ id ] [ Katana ] >= 1 )
- gainPoint += KnifeInfo [ Khanjar ] [ PointBonus ]
- else if ( gKnifeOwned [ id ] [ ProKnife ] >= 1 || gKnifeOwned [ id ] [ Gold ] >= 1 || gKnifeOwned [ id ] [ Silver ] >= 1 )
- gainPoint += KnifeInfo [ ProKnife ] [ PointBonus ]
- gPoint [ id ] += gainPoint
- gPointTop [ id ] += gainPoint
- cs_set_user_money(id, (gPoint [ id ]));
- }
- return PLUGIN_HANDLED
- }
- RemovePoint ( id, points )
- {
- new losePoint
- if ( IsPlayer ( id ) )
- {
- losePoint = points
- gPoint [ id ] -= losePoint
- cs_set_user_money(id, (gPoint [ id ]));
- }
- return PLUGIN_HANDLED
- }
- SortTopPlayers(&Array:aNames, &Array:aSteamIDs, &Array:aXPs)
- {
- aNames = ArrayCreate(32);
- aSteamIDs = ArrayCreate(35);
- aXPs = ArrayCreate(1);
- new hVault = nvault_util_open(gVaultName);
- new iCount = nvault_util_count(hVault);
- new iPos;
- new szSteamID[35], szXP[11], iTimeStamp, szName[32];
- for( new i = 0; i < iCount; i++ )
- {
- iPos = nvault_util_read(hVault, iPos, szSteamID, charsmax(szSteamID), szXP, charsmax(szXP), iTimeStamp);
- nvault_get(gTopVault, szSteamID, szName, charsmax(szName));
- ArrayPushString(aNames, szName);
- ArrayPushString(aSteamIDs, szSteamID);
- ArrayPushCell(aXPs, str_to_num(szXP));
- }
- nvault_util_close(hVault);
- new iXP;
- for( new i = 0, j; i < (iCount - 1); i++ )
- {
- iXP = ArrayGetCell(aXPs, i);
- for( j = i + 1; j < iCount; j++ )
- {
- if( iXP < ArrayGetCell(aXPs, j) )
- {
- ArraySwap(aNames, i, j);
- ArraySwap(aSteamIDs, i, j);
- ArraySwap(aXPs, i, j);
- i--;
- break;
- }
- }
- }
- return iCount;
- }
- public CmdRespawnPlayer ( id )
- {
- ExecuteHamB ( Ham_CS_RoundRespawn, ( id ) )
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement