#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < hamsandwich >
#include < fun >
#include < fakemeta >
#include < engine >
#include < nvault >
#include < colorchat >
#include < dhudmessage >
new const Plugin[] = "PointMod";
new const Version[] = "1.7";
new const Author[] = "UFO";
new const prefix[] = "^4[ProGame]^3";
enum _:Weapons
{
FIVESEVEN,
DEAGLE,
AWP,
SPACE,
HEGREN
}
new const WeapMaxLevel [ Weapons ] =
{
5,
5,
5,
1,
4
}
new const WeapMaxValue [ Weapons ] =
{
15,
10,
5,
1,
100
}
new const WeapFirstCost [ Weapons ] =
{
65,
75,
100,
1,
50
}
new const WeapName [ Weapons ] [ ] =
{
"FiveSeven",
"Deagle",
"AWP",
"",
"He Grenade"
}
new const WeapShort [ Weapons ] [ ] =
{
"%",
"%",
"%",
"",
"%"
}
new const WeapCSW [ Weapons ] =
{
CSW_FIVESEVEN,
CSW_DEAGLE,
CSW_AWP,
2,
CSW_HEGRENADE
}
new const WeapGive [ Weapons ] [ ] =
{
"weapon_fiveseven",
"weapon_deagle",
"weapon_awp",
"",
"weapon_hegrenade"
}
/* Terrorist Upgrades */
enum _:TUpgrades
{
HEALTH,
ARMOR,
RS,
FDR,
DMG,
NOPAIN,
NOFOOT
}
new const TMaxLevel [ TUpgrades ] =
{
5,
5,
5,
5,
5,
1,
1
}
new const TMaxValue [ TUpgrades ] =
{
100,
200,
25,
50,
50,
1,
1
}
new const TFirstCost [ TUpgrades ] =
{
25,
15,
100,
75,
50,
180,
200
}
new const TName [ TUpgrades ] [ ] =
{
"Extra Health",
"Armor",
"Respawn Chance",
"Fall Damage Reducer",
"Extra Damage",
"No Pain Shock",
"No Foot Steps"
}
new const TShort [ TUpgrades ] [ ] =
{
" HP",
" AP",
"%",
"%",
"%",
"",
""
}
/* Counter Terrorist Upgrades */
enum _:CTUpgrades
{
HEALTH,
ARMOR,
RS,
FDR,
DMG,
NOPAIN,
NOFLASH
}
new const CTMaxLevel [ CTUpgrades ] =
{
5,
5,
5,
5,
5,
1,
1
}
new const CTMaxValue [ CTUpgrades ] =
{
100,
200,
25,
50,
50,
1,
1
}
new const CTFirstCost [ CTUpgrades ] =
{
25,
15,
100,
75,
50,
180,
200
}
new const CTName [ CTUpgrades ] [ ] =
{
"Extra Health",
"Armor",
"Respawn Chance",
"Fall Damage Reducer",
"Extra Damage",
"No Pain Shock",
"No Flash"
}
new const CTShort [ CTUpgrades ] [ ] =
{
" HP",
" AP",
"%",
"%",
"%",
"",
""
}
/* Upgrades Level*/
new CTLevel [ 33 ] [ CTUpgrades ]
new TLevel [ 33 ] [ TUpgrades ]
new WeapLevel [ 33 ] [ Weapons ]
/* Points PointsTop */
new iPoint [ 33 ], iPointTop [ 33 ], g_iTarget[33]
/* Cvars */
new c_Kill, c_Headshot, c_Grenade, c_Suicide, c_Die, c_Survive, c_MinPlayers
/* No Flash */
new cMsgScreenFade
new Float: cGametime
new bool: cRespawnedOnce [ 33 ]
new bool: cTrack [ 33 ]
new bool: cTrackEnemy
public plugin_init ( )
{
register_plugin(Plugin, Version, Author);
/* Say Commmands */
new cmd [ ] = "CmdMenuShow"
register_clcmd ( "Pointmod", cmd )
register_clcmd ( "say /pm", cmd )
register_clcmd ( "say /pointmod", cmd )
register_clcmd ( "say /sbpm", cmd )
register_clcmd ( "say_team /pm", cmd )
register_clcmd("say /pmtop", "CmdTop");
register_clcmd("_________DonatePointValue", "CmdDonatePoints");
/* Cvars */
c_Kill = register_cvar ( "pm_points_kill", "2" )
c_Headshot = register_cvar ( "pm_points_headshot", "3" )
c_Grenade = register_cvar ( "pm_points_grenade", "5" )
c_Suicide = register_cvar ( "pm_points_suicide", "1" )
c_Die = register_cvar ( "pm_points_die", "2" )
c_Survive = register_cvar ( "pm_points_survive", "5" )
c_MinPlayers = register_cvar("pm_minplayers", "2")
/* Admin Give ore Remove Points */
register_concmd ( "pm_give_points", "CmdAddPoints", ADMIN_CVAR, "<nick, #userid, authid> <points>" )
register_concmd ( "pm_remove_points", "CmdRemovePoints", ADMIN_CVAR, "<nick, #userid, authid> <points>" )
/* No Flash */
cMsgScreenFade = get_user_msgid ( "ScreenFade" )
register_event ( "DeathMsg", "CmdDeathMessage", "a" )
register_event ( "ScreenFade", "CmdGetFlashed", "br", "4=255", "5=255", "6=255", "7>199" )
register_logevent ( "CmdRoundEnd", 2, "1=Round_End")
RegisterHam ( Ham_TakeDamage, "player", "CmdPlayerDamage", 1 )
RegisterHam ( Ham_Killed, "player", "CmdKilled", 1 )
RegisterHam ( Ham_Spawn, "player", "CmdSpawn", 1 )
}
public plugin_natives ( )
{
register_library ( "pointmod" )
register_native ( "pm_set_user_point", "_set_point" )
register_native ( "pm_get_user_point", "_get_point" )
register_native ( "pm_get_healthct", "_get_CThealth" )
register_native ( "pm_get_healtht", "_get_Thealth" )
register_native ( "pm_get_minplayers", "_get_minplayers")
}
public _get_minplayers(plugin)
{
return get_pcvar_num(c_MinPlayers)
}
public _get_CThealth ( plugin, params )
{
return CTLevel [ get_param ( 1 ) ] [ HEALTH ]
}
public _get_Thealth ( plugin, params )
{
return TLevel [ get_param ( 1 ) ] [ HEALTH ]
}
public _get_point ( plugin, params )
{
return iPoint[ get_param ( 1 ) ]
}
public _set_point ( plugin, params )
{
if(get_playersnum() < get_pcvar_num(c_MinPlayers))
{
set_hudmessage(95, 95, 95, -1.0, 0.74, 0, 6.0, 12.0)
show_hudmessage(get_param ( 1 ), "На сервере должно быть^n не менее %i игроков", get_pcvar_num(c_MinPlayers))
return PLUGIN_HANDLED
}
new client = get_param ( 1 )
iPoint [ client ] = max ( 0, get_param ( 2 ) )
Save ( client )
return iPoint [ client ]
}
public client_connect ( iPlayer )
{
Load ( iPlayer )
}
public client_disconnect ( iPlayer )
{
Save ( iPlayer )
}
public CmdRoundEnd ( iPlayer )
{
if(get_playersnum() < get_pcvar_num(c_MinPlayers))
{
set_hudmessage(95, 95, 95, -1.0, 0.74, 0, 6.0, 12.0)
show_hudmessage(iPlayer, "На сервере должно быть^n не менее %i игроков", get_pcvar_num(c_MinPlayers))
return PLUGIN_HANDLED
}
if ( is_user_alive ( iPlayer ) && cs_get_user_team ( iPlayer ) == CS_TEAM_T )
{
iPoint [ iPlayer ] += get_pcvar_num ( c_Survive )
iPointTop [ iPlayer ] += get_pcvar_num ( c_Survive )
ColorChat ( iPlayer, GREY, "%s You gained^1 %i Points^3 for ^1surviving^3 the ^1round^3", prefix, get_pcvar_num ( c_Survive ) )
Save ( iPlayer )
}
return PLUGIN_HANDLED
}
public CmdSpawn ( iPlayer )
{
if ( is_user_alive ( iPlayer ) )
set_task ( 8.0, "SetItems", iPlayer )
if ( is_user_alive ( iPlayer ) )
set_task ( 8.0, "CmdSetWeapons", iPlayer )
}
/* Cmd Set items Round start */
public SetItems ( iPlayer )
{
new health_amount_t = TMaxValue [ HEALTH ] * TLevel [ iPlayer ] [ HEALTH ] / TMaxLevel [ HEALTH ]
new health_amount_ct = CTMaxValue [ HEALTH ] * CTLevel [ iPlayer ] [ HEALTH ] / CTMaxLevel [ HEALTH ]
new armor_amount_t = TMaxValue [ ARMOR ] * TLevel [ iPlayer ] [ ARMOR ] / TMaxLevel [ ARMOR ]
new armor_amount_ct = CTMaxValue [ ARMOR ] * CTLevel [ iPlayer ] [ ARMOR ] / CTMaxLevel [ ARMOR ]
if(is_user_connected(iPlayer))
{
if ( cs_get_user_team ( iPlayer ) == CS_TEAM_T )
{
if ( TLevel [ iPlayer ] [ HEALTH ] >= 1 )
{
set_user_health ( iPlayer, get_user_health ( iPlayer ) + health_amount_t )
}
if ( TLevel [ iPlayer ] [ ARMOR ] >= 1 )
{
set_user_armor ( iPlayer, armor_amount_t )
}
if ( TLevel [ iPlayer ] [ NOFOOT ] >= 1 )
set_user_footsteps ( iPlayer, 1 )
}
else if ( cs_get_user_team ( iPlayer ) == CS_TEAM_CT )
{
if ( CTLevel [ iPlayer ] [ HEALTH ] >= 1 )
{
set_user_health ( iPlayer, get_user_health ( iPlayer ) + health_amount_ct )
}
if ( CTLevel [ iPlayer ] [ ARMOR ] >= 1 )
{
set_user_armor ( iPlayer, armor_amount_ct )
}
}
}
}
public CmdSetWeapons ( iPlayer )
{
new number [ 5 ], name [ 32 ]
get_user_name ( iPlayer, name, sizeof ( name ) )
for ( new iWeap = 0; iWeap < Weapons; iWeap++ )
{
num_to_str ( iWeap, number, sizeof ( number ) - 1 )
new bullets
bullets = 1
if ( WeapLevel [ iPlayer ] [ iWeap ] >= 1 )
{
static percent
percent = calc_value ( WeapLevel [ iPlayer ] [ iWeap ], WeapMaxLevel [ iWeap ], WeapMaxValue [ iWeap ] )
if ( is_user_connected ( iPlayer ) )
{
if ( percent > 0 && ( percent == 100 || random_num ( 1, 100 ) <= percent ) )
{
if ( iWeap == SPACE )
return PLUGIN_HANDLED
else if ( iWeap == HEGREN && !user_has_weapon ( iPlayer, WeapCSW [ HEGREN ] ) )
{
give_item ( iPlayer, WeapGive [ HEGREN ] )
ColorChat ( iPlayer, GREY, "%s^3 You just got a^1 %s^3!^4 [%i%%%]", prefix, WeapName [ HEGREN ], percent )
}
else
{
give_item ( iPlayer, WeapGive [ iWeap ] )
cs_set_weapon_ammo ( find_ent_by_owner ( iPlayer, WeapGive [ iWeap ], iPlayer ), bullets )
cs_set_user_bpammo ( iPlayer, WeapCSW [ iWeap ], 0 )
ColorChat ( 0, GREY, "%s^1 %s^3 just got a^1 %s^3 with^1 %i^3 bullets!^4 [%i%%%]", prefix, name, WeapName [ iWeap ], bullets, percent )
}
}
}
}
}
return PLUGIN_HANDLED
}
/* Cmd Make a kill or die */
public CmdKilled ( iPlayer )
{
new ct_chance = CTMaxValue [ RS ] * CTLevel [ iPlayer ] [ RS ] / CTMaxLevel [ RS ]
new t_chance = TMaxValue [ RS ] * TLevel [ iPlayer ] [ RS ] / TMaxLevel [ RS ]
new name [ 32 ]
get_user_name ( iPlayer, name, 32 )
if ( CTLevel [ iPlayer ] [ RS ] >= 1 || TLevel [ iPlayer ] [ RS ] >= 1 )
{
if ( !is_user_alive ( iPlayer ) )
{
if(is_user_connected(iPlayer))
{
if ( !cRespawnedOnce [ iPlayer ] )
{
if ( cs_get_user_team ( iPlayer ) == CS_TEAM_T )
{
if ( random_num ( 1, 100 ) <= t_chance )
{
ColorChat ( 0, GREY, "%s^1 %s^3 just got respawned as a^1 Terroist^3!^4 (%i%%%)", prefix, name, t_chance )
ExecuteHamB ( Ham_CS_RoundRespawn, iPlayer )
cRespawnedOnce [ iPlayer ] = true
}
}
else if ( cs_get_user_team ( iPlayer ) == CS_TEAM_CT )
{
if ( random_num ( 1, 100 ) <= ct_chance )
{
ColorChat ( 0, GREY, "%s^1 %^3 just got respawned as a^1 CT^3!^4 (%i%%%)", prefix, name, ct_chance )
ExecuteHamB ( Ham_CS_RoundRespawn, iPlayer )
cRespawnedOnce [ iPlayer ] = true
}
}
}
}
}
}
}
public CmdPlayerDamage ( iPlayer, inflictor, attacker, Float:damage, damagebits )
{
new ct_falldmg = CTMaxValue [ FDR ] * CTLevel [ iPlayer ] [ FDR ] / CTMaxLevel [ FDR ]
new t_falldmg = TMaxValue [ FDR ] * TLevel [ iPlayer ] [ FDR ] / TMaxLevel [ FDR ]
new ct_dmg = CTMaxValue [ DMG ] * CTLevel [ iPlayer ] [ DMG ] / CTMaxLevel [ DMG ]
new t_dmg = TMaxValue [ DMG ] * TLevel [ iPlayer ] [ DMG ] / TMaxLevel [ DMG ]
if(is_user_connected(iPlayer))
{
if ( is_user_alive ( iPlayer ) && ( damagebits & DMG_FALL ) )
{
if ( cs_get_user_team ( iPlayer ) == CS_TEAM_T )
{
SetHamParamFloat ( 4, damage * ( 1.0 - ( float ( t_falldmg ) / 100.0 ) ) )
}
else if ( cs_get_user_team ( iPlayer ) == CS_TEAM_CT )
{
SetHamParamFloat ( 4, damage * ( 1.0 - ( float ( ct_falldmg ) / 100.0 ) ) )
}
}
if ( ( 1 <= attacker <= get_maxplayers ( ) && iPlayer != attacker ) )
{
if ( cs_get_user_team ( iPlayer ) == CS_TEAM_T )
{
SetHamParamFloat ( 4, damage * ( 1.0 + ( float ( t_dmg ) / 100.0 ) ) )
}
else
{
SetHamParamFloat ( 4, damage * ( 1.0 + ( float ( ct_dmg ) / 100.0 ) ) )
}
}
switch(cs_get_user_team(iPlayer))
{
case CS_TEAM_CT:
{
if(CTLevel [ iPlayer ] [ NOPAIN ] >= 1 )
set_pdata_float ( iPlayer, 108, 1.0 )
}
case CS_TEAM_T:
{
if ( TLevel [ iPlayer ] [ NOPAIN ] >= 1)
set_pdata_float ( iPlayer, 108, 1.0 )
}
}
}
return HAM_HANDLED
}
public CmdDeathMessage ( )
{
new killer = read_data ( 1 )
new victim = read_data ( 2 )
if(get_playersnum() < get_pcvar_num(c_MinPlayers))
{
set_hudmessage(95, 95, 95, -1.0, 0.74, 0, 6.0, 12.0)
show_hudmessage(killer, "На сервере должно быть^n не менее %i игроков", get_pcvar_num(c_MinPlayers))
return PLUGIN_HANDLED
}
new PointsGain, GrenadePointsGain, TopPointsGain, KillPointsGain, HsPointsGain
new vname [ 32 ], kname [ 32 ]
get_user_name ( killer, kname, 32 )
get_user_name ( victim, vname, 32 )
if ( ( 1 <= killer <= get_maxplayers ( ) ) && killer != victim )
{
if(is_user_connected(killer) && is_user_connected(victim))
{
if ( cs_get_user_team ( killer ) != cs_get_user_team ( victim ) )
{
if ( is_user_alive ( killer ) )
{
{
PointsGain += get_pcvar_num ( c_Kill )
TopPointsGain += get_pcvar_num ( c_Kill )
KillPointsGain += 1
}
if ( read_data ( 3 ) )
{
PointsGain += get_pcvar_num ( c_Headshot )
TopPointsGain += get_pcvar_num ( c_Headshot )
HsPointsGain += 1
}
else
{
static weapon[20];
read_data(4, weapon, sizeof(weapon) - 1);
if( contain(weapon, "grenade") >= 0 )
{
GrenadePointsGain += 1
PointsGain += get_pcvar_num ( c_Grenade )
ColorChat ( killer, GREY, "%s^3 You gained^1 %i Points^3 for making a ^1grenade kill^3", prefix, get_pcvar_num ( c_Grenade ) )
}
}
iPoint [ killer ] += PointsGain
iPointTop [ killer ] += TopPointsGain
iPoint [ victim ] -= get_pcvar_num ( c_Die )
iPointTop [ victim ] -= get_pcvar_num ( c_Die )
ColorChat ( killer, GREY, "%s^3 You gained^1 %i Points^3 for killing^4 %s", prefix, PointsGain, vname )
ColorChat ( victim, GREY, "%s^3 You lost^1 %i Points^3 for getting killed", prefix, get_pcvar_num ( c_Die ), kname )
Save ( victim )
Save ( killer )
}
}
}
}
else
{
iPoint [ victim ] -= get_pcvar_num ( c_Suicide )
iPointTop [ victim ] -= get_pcvar_num ( c_Die )
ColorChat ( victim, GREY, "%s^3 You lost^1 %i Points^3 for suiciding", prefix, get_pcvar_num ( c_Suicide ) )
Save ( victim )
}
return PLUGIN_HANDLED;
}
public CmdMenuShow(iPlayer)
{
new szTemp[120];
new MainMenu = menu_create("\r[PM]\wPointMod by +1 #^nГлавно меню", "CmdMenuHandle");
formatex(szTemp, charsmax(szTemp), "\wИнформация об игроке [Points]", get_playersnum());
menu_additem(MainMenu, szTemp, "1");
formatex(szTemp, charsmax(szTemp), "\wТоп поинтов\r");
menu_additem(MainMenu, szTemp, "2");
formatex(szTemp, charsmax(szTemp), "\wПрокачка оружия");
menu_additem(MainMenu, szTemp, "3");
formatex(szTemp, charsmax(szTemp), "\wПрокачка Террориста");
menu_additem(MainMenu, szTemp, "4");
formatex(szTemp, charsmax(szTemp), "\wПрокачака Контер-Террориста");
menu_additem(MainMenu, szTemp, "5");
formatex(szTemp, charsmax(szTemp), "Передать Поинты\r^n^n\d \yТвои Поинты: \r%i^n\w\d \yВсе твои Поинты: \r%i", get_playersnum(), iPoint [ iPlayer ], iPointTop [ iPlayer ]);
menu_additem(MainMenu, szTemp, "6");
formatex(szTemp, charsmax(szTemp), "\w{P}ro{G}ame");
menu_additem(MainMenu, szTemp, "7");
menu_setprop(MainMenu, MPROP_EXITNAME, "Закрыть");
menu_display(iPlayer, MainMenu);
}
public CmdMenuHandle ( iPlayer, menu, item )
{
new data [ 6 ], name [ 64 ]
new access, callback
menu_item_getinfo ( menu, item, access, data, 5, name, 63, callback )
new key = str_to_num ( data )
switch ( key )
{
case 1: CmdPlayerShow ( iPlayer )
case 2: CmdTop ( iPlayer )
case 3: CmdWeapShow ( iPlayer )
case 4: CmdTShow ( iPlayer )
case 5: CmdCTShow ( iPlayer )
case 6: CmdDonate ( iPlayer )
}
return PLUGIN_HANDLED
}
public CmdDonate(id)
{
new iMenu = menu_create("\r[PM] \wPointMad by +1 #^n\y Передать поинты\r", "handleDonateMenu");
new iPlayers[32], szName[32], szKey[3], iNum, iPlayer;
get_players(iPlayers, iNum);
for( new i; i < iNum; i++ )
{
iPlayer = iPlayers[i];
num_to_str(iPlayer, szKey, charsmax(szKey));
get_user_name(iPlayer, szName, charsmax(szName));
menu_additem(iMenu, szName, szKey);
}
menu_setprop(iMenu, MPROP_EXITNAME, "Back");
menu_display(id, iMenu, 0);
}
public handleDonateMenu(id, iMenu, iItem)
{
if( iItem == MENU_EXIT )
{
menu_destroy(iMenu);
CmdMenuShow(id);
return PLUGIN_HANDLED;
}
new szData[6], iAccess, iCallback;
menu_item_getinfo(iMenu, iItem, iAccess, szData, charsmax(szData), _, _, iCallback);
g_iTarget[id] = str_to_num(szData);
new szName[32];
get_user_name(g_iTarget[id], szName, charsmax(szName));
ColorChat(id, GREY, "%s Вы выбрали:^1 %s^3 !", prefix, szName);
ColorChat(id, GREY, "%s Введи количество поинтов:", prefix);
client_cmd(id, "messagemode _________DonatePointValue");
client_cmd(id, "spk fvox/blip");
return PLUGIN_HANDLED;
}
public CmdDonatePoints(id)
{
new szArg[5];
read_argv(1, szArg, charsmax(szArg));
if( !strlen(szArg) )
{
ColorChat(id, GREY, "%s Вам нужно ввести количество !", prefix);
client_cmd(id, "messagemode _________DonatePointValue");
client_cmd(id, "spk fvox/blip");
return PLUGIN_HANDLED;
}
new iValue = str_to_num(szArg);
if( iValue <= 0 )
{
ColorChat(id, GREY, "%s Вы не можете ввести меньше 0 !", prefix);
client_cmd(id, "messagemode _________КоличествоПередаваемыхПоинтов");
client_cmd(id, "spk fvox/blip");
return PLUGIN_HANDLED;
}
else if( iValue > iPoint[id] )
{
ColorChat(id, GREY, "%s У Вас только^1 %i Поинтов^3 !", prefix, iPoint[id]);
client_cmd(id, "messagemode _________КоличествоПередаваемыхПоинтов");
client_cmd(id, "spk fvox/blip");
return PLUGIN_HANDLED;
}
new iTarget = g_iTarget[id];
if( !iTarget )
{
ColorChat(id, GREY, "%s Неверная цель !", prefix);
return PLUGIN_HANDLED;
}
if( iTarget == id )
{
ColorChat(id, GREY, "%s Вы должны быть живы!", prefix);
return PLUGIN_HANDLED;
}
iPoint[id] -= iValue;
iPoint[iTarget] += iValue;
new szName[2][32];
get_user_name(iTarget, szName[0], charsmax(szName[]));
get_user_name(id, szName[1], charsmax(szName[]));
ColorChat(id, GREY, "%s Вы передела^1 %i Поинты^3 Игроку^1 %s !", prefix, iValue, szName[0]);
ColorChat(iTarget, GREY, "%s ^1%s^3 передал^1 %i Поинтов^3 to Вам !", prefix, szName[1], iValue);
set_dhudmessage(0, 125, 200, -1.0, 0.9, 0, 0.0, 3.0, 2.0, 1.0)
show_dhudmessage(0,"Игрок %s передал %i поинты игроку %s", szName[1], iValue, szName[0])
log_amx("Point mod Donate Info: %s donate %i Points to %s", szName[1], iValue, szName[0]);
return PLUGIN_HANDLED;
}
public CmdWeapShow ( iPlayer )
{
new menu = menu_create ( "\r[PM]\wPointMod by +1 #^n\y Прокачка оружия", "CmdWeapHandle" )
new Temp [ 190 ], iPrice, level, level2, iAmount, numb [ 5 ]
for ( new iItem = 0; iItem < Weapons; iItem++ )
{
num_to_str ( iItem, numb, sizeof ( numb ) - 1 )
level = WeapLevel [ iPlayer ] [ iItem ]
level2 = level + 1
iPrice = WeapFirstCost [ iItem ] * ( 1 << ( level2 - 1 ) )
iAmount = WeapMaxValue [ iItem ] * level / WeapMaxLevel [ iItem ]
if ( WeapLevel [ iPlayer ] [ iItem ] >= WeapMaxLevel [ iItem ] )
formatex ( Temp, sizeof ( Temp ) - 1, "\y%s:\w Level %i (\r%i%s\w)", WeapName [ iItem ], level, iAmount, WeapShort [ iItem ] )
else if ( iPoint [ iPlayer ] < iPrice )
formatex ( Temp, sizeof ( Temp ) - 1, "\d%s:\w Level %i (\r%i%s\w)\d %i Points", WeapName [ iItem ], level, iAmount, WeapShort [ iItem ], iPrice )
else
formatex ( Temp, sizeof ( Temp ) - 1, "\w%s: Level %i (\r%i%s\w)\y %i Points", WeapName [ iItem ], level, iAmount, WeapShort [ iItem ], iPrice )
if ( iItem == SPACE )
menu_addblank ( menu, 0 )
else
menu_additem ( menu, Temp, numb )
}
menu_display ( iPlayer, menu, 0 )
}
public CmdWeapHandle ( iPlayer, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy ( menu )
CmdMenuShow ( iPlayer )
return PLUGIN_HANDLED
}
new data [ 6 ], name [ 64 ]
new access, callback
menu_item_getinfo ( menu, item, access, data, 5, name, 63, callback )
new iItem = str_to_num ( data )
new level, level2, iPrice
level = WeapLevel [ iPlayer ] [ iItem ]
level2 = level + 1
iPrice = WeapFirstCost [ iItem ] * ( 1 << ( level2 - 1 ) )
if ( level >= WeapMaxLevel [ iItem ] )
{
ColorChat ( iPlayer, GREY, "%s^1 %s^3 is already fully upgraded", prefix, WeapName [ iItem ] )
return PLUGIN_HANDLED
}
else if ( iPoint [ iPlayer ] < iPrice )
{
ColorChat ( iPlayer, GREY, "%s^3 You need^1 %i^3 more points to upgrade^1 %s^3 Level^1 %i", prefix, iPrice - iPoint [ iPlayer ], WeapName [ iItem ], level2 )
return PLUGIN_HANDLED
}
else
{
iPoint [ iPlayer ] -= iPrice
ColorChat ( iPlayer, GREY, "%s^3 You upgraded^1 %s^3 Level^1 %i^3", prefix, WeapName [ iItem ], level2 )
WeapLevel [ iPlayer ] [ iItem ] += 1
Save ( iPlayer )
}
CmdWeapShow( iPlayer )
return PLUGIN_HANDLED
}
public CmdCTShow ( iPlayer )
{
new title [ 290 ]
formatex ( title, sizeof ( title ) - 1, "\r[PM]\wPointMod by +1 #^n\y Прокачка Контер-Террориста^n^n\wПоинты:\r %i", iPoint [ iPlayer ] )
new menu = menu_create ( title, "CmdCTHandle" )
new Temp [ 190 ], iPrice, level, level2, iAmount, numb [ 5 ]
for ( new CTer = 0; CTer < CTUpgrades; CTer++ )
{
num_to_str ( CTer, numb, sizeof ( numb ) - 1 )
level = CTLevel [ iPlayer ] [ CTer ]
level2 = level + 1
iPrice = CTFirstCost [ CTer ] * ( 1 << ( level2 - 1 ) )
iAmount = CTMaxValue [ CTer ] * level / CTMaxLevel [ CTer ]
if ( CTLevel [ iPlayer ] [ CTer ] >= CTMaxLevel [ CTer ] )
if ( CTer == NOPAIN || CTer == NOFLASH )
formatex ( Temp, sizeof ( Temp ) - 1, "\y%s:\w Already Bought", CTName [ CTer ] )
else
formatex ( Temp, sizeof ( Temp ) - 1, "\y%s:\w Level %i\w [\r %i%s\w ]", CTName [ CTer ], CTLevel [ iPlayer ] [ CTer ], iAmount, CTShort [ CTer ] )
else if ( iPoint [ iPlayer ] < iPrice )
if ( CTer == NOPAIN || CTer == NOFLASH )
formatex ( Temp, sizeof ( Temp ) - 1, "\d%s:\y %i Points", CTName [ CTer ], iPrice )
else
formatex ( Temp, sizeof ( Temp ) - 1, "\d%s:\w Level %i\w [\r %i%s\w ]\y %i Points", CTName [ CTer ], CTLevel [ iPlayer ] [ CTer ], iAmount, CTShort [ CTer ], iPrice )
else
if ( CTer == NOPAIN || CTer == NOFLASH )
formatex ( Temp, sizeof ( Temp ) - 1, "\y%s:\w %i Points", CTName [ CTer ], iPrice )
else
formatex ( Temp, sizeof ( Temp ) - 1, "\y%s:\w Level %i\w [\r %i%s\w ]\y %i Points", CTName [ CTer ], CTLevel [ iPlayer ] [ CTer ], iAmount, CTShort [ CTer ], iPrice )
menu_additem ( menu, Temp, numb )
}
menu_display ( iPlayer, menu, 0 )
}
public CmdCTHandle ( iPlayer, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy ( menu )
CmdMenuShow ( iPlayer )
return PLUGIN_HANDLED
}
new data [ 6 ], name [ 64 ]
new access, callback
menu_item_getinfo ( menu, item, access, data, 5, name, 63, callback )
new CTer = str_to_num ( data )
new level, level2, iPrice
level = CTLevel [ iPlayer ] [ CTer ]
level2 = level + 1
iPrice = CTFirstCost [ CTer ] * ( 1 << ( level2 - 1 ) )
if ( level >= CTMaxLevel [ CTer ] )
{
ColorChat ( iPlayer, GREY, "%s^3 Upgrade^1 %s^3 is already maxed out!", prefix, CTName [ CTer ] )
return PLUGIN_HANDLED
}
else if ( iPoint [ iPlayer ] < iPrice )
{
ColorChat ( iPlayer, GREY, "%s^3 You need^1 %i^3 more points to upgrade^1 %s^3 to level^1 %i", prefix, iPrice - iPoint [ iPlayer ], CTName [ CTer ], CTLevel [ iPlayer ] [ CTer ] + 1 )
return PLUGIN_HANDLED
}
else
{
iPoint [ iPlayer ] -= iPrice
ColorChat ( iPlayer, GREY, "%s^3 You upgraded^1 %s^3 to level^1 %i^3", prefix, CTName [ CTer ], CTLevel [ iPlayer ] [ CTer ] )
CTLevel [ iPlayer ] [ CTer ] += 1
Save ( iPlayer )
}
CmdCTShow( iPlayer )
return PLUGIN_HANDLED
}
public CmdTShow ( iPlayer )
{
new title [ 290 ]
formatex ( title, sizeof ( title ) - 1, "\r[PM]\wPointMod by +1 #^n\y Прокачака Тероориста^n^n\wPoints:\r %i", iPoint [ iPlayer ] )
new menu = menu_create ( title, "CmdTHandle" )
new Temp [ 190 ], iPrice, level, level2, iAmount, numb [ 6 ]
for ( new iTer = 0; iTer < TUpgrades; iTer++ )
{
num_to_str ( iTer, numb, 5 )
level = TLevel [ iPlayer ] [ iTer ]
level2 = level + 1
iPrice = TFirstCost [ iTer ] * ( 1 << ( level2 - 1 ) )
iAmount = TMaxValue [ iTer ] * level / TMaxLevel [ iTer ]
if ( level >= TMaxLevel [ iTer ] )
if ( iTer == NOPAIN || iTer == NOFOOT )
formatex ( Temp, sizeof ( Temp ) - 1, "\y%s:\w Already Bought", TName [ iTer ] )
else
formatex ( Temp, sizeof ( Temp ) - 1, "\y%s:\w Level %i [\r %i%s\w ]", TName [ iTer ], TLevel [ iPlayer ] [ iTer ], iAmount, TShort [ iTer ] )
else if ( iPoint [ iPlayer ] < iPrice )
if ( iTer == NOPAIN || iTer == NOFOOT )
formatex ( Temp, sizeof ( Temp ) - 1, "\d%s:\y %i Points", TName [ iTer ], iPrice )
else
formatex ( Temp, sizeof ( Temp ) - 1, "\d%s:\w Level %i [\r %i%s\w ]\y %i Points", TName [ iTer ], TLevel [ iPlayer ] [ iTer ], iAmount, TShort [ iTer ], iPrice )
else if ( level < TMaxLevel [ iTer ] )
if ( iTer == NOPAIN || iTer == NOFOOT )
formatex ( Temp, sizeof ( Temp ) - 1, "\w%s:\w %i Points", TName [ iTer ], iPrice )
else
formatex ( Temp, sizeof ( Temp ) - 1, "\w%s:\w Level %i [\r %i%s\w ]\y %i Points", TName [ iTer ], TLevel [ iPlayer ] [ iTer ], iAmount, TShort [ iTer ], iPrice )
menu_additem ( menu, Temp, numb )
}
menu_display ( iPlayer, menu, 0 )
}
public CmdTHandle ( iPlayer, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy ( menu )
CmdMenuShow ( iPlayer )
return PLUGIN_HANDLED
}
new data [ 6 ], name [ 64 ]
new access, callback
menu_item_getinfo ( menu, item, access, data, 5, name, 63, callback )
new iTer = str_to_num ( data )
new level, level2, iPrice
level = TLevel [ iPlayer ] [ iTer ]
level2 = level + 1
iPrice = TFirstCost [ iTer ] * ( 1 << ( level2 - 1 ) )
if ( level >= TMaxLevel [ iTer ] )
{
ColorChat ( iPlayer, GREY, "%s^3 Upgrade^1 %s^3 is already maxed out!", prefix, TName [ iTer ] )
return PLUGIN_HANDLED
}
else if ( iPoint [ iPlayer ] < iPrice )
{
ColorChat ( iPlayer, GREY, "%s^3 You need^1 %i^3 More points to upgrade^1 %s^3 to level^1 %i^3", prefix, iPrice - iPoint [ iPlayer ], TName [ iTer ], TLevel [ iPlayer ] [ iTer ] + 1 )
return PLUGIN_HANDLED
}
else if ( iPoint [ iPlayer ] >= iPrice )
{
iPoint [ iPlayer ] -= iPrice
TLevel [ iPlayer ] [ iTer ] += 1
ColorChat ( iPlayer, GREY, "%s^3 You upgraded^1 %s^3 to level^1 %i", prefix, TName [ iTer ], TLevel [ iPlayer ] [ iTer ] )
Save ( iPlayer )
}
CmdTShow( iPlayer )
return PLUGIN_HANDLED
}
public CmdPlayerShow ( iPlayer )
{
new title [ 190 ]
formatex ( title, sizeof ( title ) - 1, "\r[Ранк]\w Ранксистема^n- Player Info" )
new menu = menu_create ( title, "CmdPlayerHandle" )
new players [ 32 ], pnum, tempid, nameShow [ 190 ]
new name [ 32 ], szTempid [ 10 ]
get_players ( players, pnum )
for ( new i; i < pnum; i++ )
{
tempid = players [ i ]
get_user_name ( tempid, name, 31 )
num_to_str ( tempid, szTempid, 9 )
formatex ( nameShow, 189, "%s", name )
menu_additem ( menu, nameShow, szTempid, 0 )
}
menu_display ( iPlayer, menu, 0 )
}
public CmdPlayerHandle ( iPlayer, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy ( menu )
CmdMenuShow ( iPlayer )
return PLUGIN_HANDLED
}
new data [ 6 ], name [ 64 ]
new access, callback
menu_item_getinfo ( menu, item, access, data, 5, name, 63, callback )
new tempid = str_to_num ( data )
new tempname [ 32 ]
get_user_name ( tempid, tempname, 31 )
static motd [ 2500 ]
new len = formatex ( motd, sizeof ( motd ) -1, "<html>" )
len += format ( motd [ len ], sizeof ( motd ) - len - 1, "<body style =^"background-color:#1c1c1c; color:#000000^">" )
len += format ( motd [ len ], sizeof ( motd ) - len - 1, "<p align=^"center^">");
len += format ( motd [ len ], sizeof ( motd ) - len - 1, "Информация Игрока:<b> %s</b><br><br>", tempname )
len += format ( motd [ len ], sizeof ( motd ) - len - 1, "Поинты: <b>%i</b><br>", iPoint[tempid])
len += format ( motd [ len ], sizeof ( motd ) - len - 1, "Все Поинты: <b>%i</b><br>", iPointTop[tempid])
len += format ( motd [ len ], sizeof ( motd ) - len - 1, "</body>" )
len += format ( motd [ len ], sizeof ( motd ) - len - 1, "</html>" )
show_motd ( iPlayer, motd, "#Rank | Player Info" )
return PLUGIN_HANDLED
}
public CmdGetFlashed ( iPlayer )
{
new Float: gametime = get_gametime ( )
if ( gametime != cGametime )
{
cGametime = gametime
for ( new i = 0; i < 33; i++ )
{
cTrack [ i ] = false
}
cTrackEnemy = false
}
if ( CTLevel [ iPlayer ] [ NOFLASH ] >= 1 )
{
cTrackEnemy = true
message_begin ( MSG_ONE, cMsgScreenFade, { 0, 0, 0 }, iPlayer )
write_short ( 1 )
write_short ( 1 )
write_short ( 1 )
write_byte ( 0 )
write_byte ( 0 )
write_byte ( 0 )
write_byte ( 255 )
message_end ( )
}
}
public CmdFlashDelay ( )
{
if ( cTrackEnemy == false )
{
for ( new i = 0; i < 33; i++ )
{
if ( cTrack [ i ] == true && is_user_connected ( i ) )
{
message_begin ( MSG_ONE, cMsgScreenFade, { 0, 0, 0 }, i )
write_short ( 1 )
write_short ( 1 )
write_short ( 1 )
write_byte ( 0 )
write_byte ( 0 )
write_byte ( 0 )
write_byte ( 255 )
message_end ( )
}
}
}
}
public calc_value ( const player_level, const max_level, const max_value )
{
return ( max_value * player_level / max_level )
}
public CmdTop(id)
{
static Sort[33][2];
new players[32],num,count,index;
get_players(players,num);
for(new i = 0; i < num; i++)
{
index = players[i];
Sort[count][0] = index;
Sort[count][1] = iPointTop[index];
count++;
}
SortCustom2D(Sort,count,"CompareXp");
new motd[1501],iLen;
iLen = formatex(motd, sizeof motd - 1,"<body bgcolor=#000000><font color=#98f5ff><pre>");
iLen += formatex(motd[iLen], (sizeof motd - 1) - iLen,"%s %-22.22s %3s^n", "#", "Name", "# Points");
new y = clamp(count, 0, 15);
new name[32],kindex;
for(new x = 0; x < y; x++)
{
kindex = Sort[x][0];
get_user_name(kindex,name,sizeof name - 1);
iLen += formatex(motd[iLen], (sizeof motd - 1) - iLen,"%d %-22.22s %d^n", x + 1, name, Sort[x][1]);
}
iLen += formatex(motd[iLen], (sizeof motd - 1) - iLen,"</body></font></pre>");
show_motd(id, motd, "#PM | Top 15");
return PLUGIN_HANDLED;
}
public CompareXp(elem1[], elem2[])
{
if(elem1[1] > elem2[1])
return -1;
else if(elem1[1] < elem2[1])
return 1;
return 0;
}
public Load ( iPlayer )
{
new authid[32];
get_user_authid(iPlayer,authid,31);
new vaultkey[64], vaultdata[64];
format(vaultkey,63,"POINTMOD-%s-POINTS", authid);
get_vaultdata(vaultkey,vaultdata,63);
iPoint [ iPlayer ] = str_to_num(vaultdata);
format(vaultkey,63,"TOPPOINTS-%s-POINTS", authid);
get_vaultdata(vaultkey,vaultdata,63);
iPointTop [ iPlayer ] = str_to_num(vaultdata);
/*--Weapons Open--*/
format(vaultkey,63,"POINTMOD-%s-FIVESEVEN", authid);
get_vaultdata(vaultkey,vaultdata,63);
WeapLevel [ iPlayer ] [ FIVESEVEN ] = str_to_num(vaultdata);
format(vaultkey,63,"POINTMOD-%s-DEAGLE", authid);
get_vaultdata(vaultkey,vaultdata,63);
WeapLevel [ iPlayer ] [ DEAGLE ] = str_to_num(vaultdata);
format(vaultkey,63,"POINTMOD-%s-AWP", authid);
get_vaultdata(vaultkey,vaultdata,63);
WeapLevel [ iPlayer ] [ AWP ] = str_to_num(vaultdata);
format(vaultkey,63,"POINTMOD-%s-HEGREN", authid);
get_vaultdata(vaultkey,vaultdata,63);
WeapLevel [ iPlayer ] [ HEGREN ] = str_to_num(vaultdata);
/*--Weapons Closed--*/
/*--TUpgrades Open--*/
format(vaultkey,63,"POINTMOD-%s-EXTRAHEALTH_T", authid);
get_vaultdata(vaultkey,vaultdata,63);
TLevel [ iPlayer ] [ HEALTH ] = str_to_num(vaultdata);
format(vaultkey,63,"POINTMOD-%s-EXTRAARMOR_T", authid);
get_vaultdata(vaultkey,vaultdata,63);
TLevel [ iPlayer ] [ ARMOR ] = str_to_num(vaultdata);
format(vaultkey,63,"POINTMOD-%s-RESPAWNCHANCE_T", authid);
get_vaultdata(vaultkey,vaultdata,63);
TLevel [ iPlayer ] [ RS ] = str_to_num(vaultdata);
format(vaultkey,63,"POINTMOD-%s-FALLDAMAGEREDUCER_T", authid);
get_vaultdata(vaultkey,vaultdata,63);
TLevel [ iPlayer ] [ FDR ] = str_to_num(vaultdata);
format(vaultkey,63,"POINTMOD-%s-EXTRADAMAGE_T", authid);
get_vaultdata(vaultkey,vaultdata,63);
TLevel [ iPlayer ] [ DMG ] = str_to_num(vaultdata);
format(vaultkey,63,"POINTMOD-%s-NOPAINSHOCK_T", authid);
get_vaultdata(vaultkey,vaultdata,63);
TLevel [ iPlayer ] [ NOPAIN ] = str_to_num(vaultdata);
format(vaultkey,63,"POINTMOD-%s-NOFOOTSTEPS_T", authid);
get_vaultdata(vaultkey,vaultdata,63);
TLevel [ iPlayer ] [ NOFOOT ] = str_to_num(vaultdata);
/*--TUpgrades Closed--*/
/*--CTUpgrades Open--*/
format(vaultkey,63,"POINTMOD-%s-EXTRAHEALTH_CT", authid);
get_vaultdata(vaultkey,vaultdata,63);
CTLevel [ iPlayer ] [ HEALTH ] = str_to_num(vaultdata);
format(vaultkey,63,"POINTMOD-%s-EXTRAARMOR_CT", authid);
get_vaultdata(vaultkey,vaultdata,63);
CTLevel [ iPlayer ] [ ARMOR ] = str_to_num(vaultdata);
format(vaultkey,63,"POINTMOD-%s-RESPAWNCHANCE_CT", authid);
get_vaultdata(vaultkey,vaultdata,63);
CTLevel [ iPlayer ] [ RS ] = str_to_num(vaultdata);
format(vaultkey,63,"POINTMOD-%s-FALLDAMAGEREDUCER_CT", authid);
get_vaultdata(vaultkey,vaultdata,63);
CTLevel [ iPlayer ] [ FDR ] = str_to_num(vaultdata);
format(vaultkey,63,"POINTMOD-%s-EXTRADAMAGE_CT", authid);
get_vaultdata(vaultkey,vaultdata,63);
CTLevel [ iPlayer ] [ DMG ] = str_to_num(vaultdata);
format(vaultkey,63,"POINTMOD-%s-NOPAINSHOCK_CT", authid);
get_vaultdata(vaultkey,vaultdata,63);
CTLevel [ iPlayer ] [ NOPAIN ] = str_to_num(vaultdata);
format(vaultkey,63,"POINTMOD-%s-NOFLASH_CT", authid);
get_vaultdata(vaultkey,vaultdata,63);
CTLevel [ iPlayer ] [ NOFLASH ] = str_to_num(vaultdata);
/*--CTUpgrades Closed--*/
}
public Save ( iPlayer )
{
new vaultkey[64], vaultdata[64];
new gAuthID[32];
get_user_authid(iPlayer, gAuthID, charsmax(gAuthID));
format(vaultkey,63,"POINTMOD-%s-POINTS", gAuthID);
format(vaultdata,63,"%d",iPoint [ iPlayer ]);
set_vaultdata(vaultkey,vaultdata);
format(vaultkey,63,"TOPPOINTS-%s-POINTS", gAuthID);
format(vaultdata,63,"%d",iPointTop[iPlayer]);
set_vaultdata(vaultkey,vaultdata);
/*--Weapons Open--*/
format(vaultkey,63,"POINTMOD-%s-FIVESEVEN",gAuthID);
format(vaultdata,63,"%d",WeapLevel [ iPlayer ] [ FIVESEVEN ]);
set_vaultdata(vaultkey,vaultdata);
format(vaultkey,63,"POINTMOD-%s-DEAGLE",gAuthID);
format(vaultdata,63,"%d",WeapLevel [ iPlayer ] [ DEAGLE ]);
set_vaultdata(vaultkey,vaultdata);
format(vaultkey,63,"POINTMOD-%s-AWP",gAuthID);
format(vaultdata,63,"%d",WeapLevel [ iPlayer ] [ AWP ]);
set_vaultdata(vaultkey,vaultdata);
format(vaultkey,63,"POINTMOD-%s-HEGREN",gAuthID);
format(vaultdata,63,"%d",WeapLevel [ iPlayer ] [ HEGREN ]);
set_vaultdata(vaultkey,vaultdata);
/*--Weapons Closed--*/
/*--TUpgrades Open--*/
format(vaultkey,63,"POINTMOD-%s-EXTRAHEALTH_T",gAuthID);
format(vaultdata,63,"%d",TLevel [ iPlayer ] [ HEALTH ]);
set_vaultdata(vaultkey,vaultdata);
format(vaultkey,63,"POINTMOD-%s-EXTRAARMOR_T",gAuthID);
format(vaultdata,63,"%d",TLevel [ iPlayer ] [ ARMOR ]);
set_vaultdata(vaultkey,vaultdata);
format(vaultkey,63,"POINTMOD-%s-RESPAWNCHANCE_T",gAuthID);
format(vaultdata,63,"%d",TLevel [ iPlayer ] [ RS ]);
set_vaultdata(vaultkey,vaultdata);
format(vaultkey,63,"POINTMOD-%s-FALLDAMAGEREDUCER_T",gAuthID);
format(vaultdata,63,"%d",TLevel [ iPlayer ] [ FDR ]);
set_vaultdata(vaultkey,vaultdata);
format(vaultkey,63,"POINTMOD-%s-EXTRADAMAGE_T",gAuthID);
format(vaultdata,63,"%d",TLevel [ iPlayer ] [ DMG ]);
set_vaultdata(vaultkey,vaultdata);
format(vaultkey,63,"POINTMOD-%s-NOPAINSHOCK_T",gAuthID);
format(vaultdata,63,"%d",TLevel [ iPlayer ] [ NOPAIN ]);
set_vaultdata(vaultkey,vaultdata);
format(vaultkey,63,"POINTMOD-%s-NOFOOTSTEPS_T",gAuthID);
format(vaultdata,63,"%d",TLevel [ iPlayer ] [ NOFOOT ]);
set_vaultdata(vaultkey,vaultdata);
/*--TUpgrades Closed--*/
/*--CTUpgrades Open--*/
format(vaultkey,63,"POINTMOD-%s-EXTRAHEALTH_CT", gAuthID);
format(vaultdata,63,"%d",CTLevel [ iPlayer ] [ HEALTH ]);
set_vaultdata(vaultkey,vaultdata);
format(vaultkey,63,"POINTMOD-%s-EXTRAARMOR_CT", gAuthID);
format(vaultdata,63,"%d",CTLevel [ iPlayer ] [ ARMOR ]);
set_vaultdata(vaultkey,vaultdata);
format(vaultkey,63,"POINTMOD-%s-RESPAWNCHANCE_CT", gAuthID);
format(vaultdata,63,"%d",CTLevel [ iPlayer ] [ RS ]);
set_vaultdata(vaultkey,vaultdata);
format(vaultkey,63,"POINTMOD-%s-FALLDAMAGEREDUCER_CT", gAuthID);
format(vaultdata,63,"%d",CTLevel [ iPlayer ] [ FDR ]);
set_vaultdata(vaultkey,vaultdata);
format(vaultkey,63,"POINTMOD-%s-EXTRADAMAGE_CT", gAuthID);
format(vaultdata,63,"%d",CTLevel [ iPlayer ] [ DMG ]);
set_vaultdata(vaultkey,vaultdata);
format(vaultkey,63,"POINTMOD-%s-NOPAINSHOCK_CT", gAuthID);
format(vaultdata,63,"%d",CTLevel [ iPlayer ] [ NOPAIN ]);
set_vaultdata(vaultkey,vaultdata);
format(vaultkey,63,"POINTMOD-%s-NOFLASH_CT", gAuthID);
format(vaultdata,63,"%d",CTLevel [ iPlayer ] [ NOFLASH ]);
set_vaultdata(vaultkey,vaultdata);
/*--CTUpgrades Closed--*/
}
public CmdAddPoints ( iPlayer, level, cid )
{
if( !cmd_access(iPlayer, level, cid, 3) ) return PLUGIN_HANDLED;
new arg [ 32 ]
read_argv ( 1, arg, charsmax ( arg ) )
new AddChips [ 32 ]
read_argv ( 2, AddChips, charsmax ( AddChips ) )
new Chips = str_to_num ( AddChips )
new iTarget
new iName [ 32 ]
new TargetName [ 32 ]
get_user_name ( iPlayer, iName, charsmax ( iName ) )
if ( equali ( arg, "@all" ) )
{
new iPlayer [ 32 ], iNum, All
get_players ( iPlayer, iNum )
for ( new i; i < iNum; i++ )
{
All = iPlayer [ i ]
iPoint [ All ] += Chips
iPointTop [ All ] += Chips
}
ColorChat ( 0, GREY, "%s^1 %s^3 gave^1 %i Points^3 to^4 everyone^3!", prefix, iName, Chips )
}
else
{
iTarget = cmd_target( iPlayer, arg, 31 )
get_user_name ( iTarget, TargetName, charsmax ( TargetName ) )
if( !iTarget )
return PLUGIN_HANDLED
iPoint [ iTarget ] += Chips
iPointTop [ iTarget ] += Chips
ColorChat ( 0, GREY, "%s^1 %s^3 gave^1 %i Points^3 to ^4 %s^3", prefix, iName, Chips, TargetName )
}
return PLUGIN_HANDLED
}
public CmdRemovePoints ( iPlayer, level, cid )
{
if( !cmd_access(iPlayer, level, cid, 3) ) return PLUGIN_HANDLED;
new arg [ 32 ]
read_argv ( 1, arg, charsmax ( arg ) )
new RemoveChips [ 32 ]
read_argv ( 2, RemoveChips, charsmax ( RemoveChips ) )
new Chips = str_to_num ( RemoveChips )
new iTarget
new iName [ 32 ]
new TargetName [ 32 ]
get_user_name ( iPlayer, iName, charsmax ( iName ) )
if ( equali ( arg, "@all" ) )
{
new iPlayer [ 32 ], iNum, All
get_players ( iPlayer, iNum )
for ( new i; i < iNum; i++ )
{
All = iPlayer [ i ]
iPoint [ All ] -= Chips
iPointTop [ All ] -= Chips
}
ColorChat ( 0, GREY, "%s^1 %s^3 removed^1 %i Points^3 from^4 everyone^3!", prefix, iName, Chips )
}
else
{
iTarget = cmd_target( iPlayer, arg, 31 )
get_user_name ( iTarget, TargetName, charsmax ( TargetName ) )
if( !iTarget )
return PLUGIN_HANDLED
iPoint [ iTarget ] -= Chips
iPointTop [ iTarget ] -= Chips
ColorChat ( 0, GREY, "%s^1 %s^3 removed^1 %i Points^3 from ^4 %s^3", prefix, iName, Chips, TargetName )
}
return PLUGIN_HANDLED
}