Търся този плъгин за DHUD damage
Публикувано на: 16 Май 2018, 22:50
Здравейте търся този плъгин,
Които го има нека да сподели тука
Които го има нека да сподели тука
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#if AMXX_VERSION_NUM < 183
#include <dhudmessage>
#endif
#define PLUGIN "Random HP&Ap On Kill"
#define VERSION "1.0"
#define AUTHOR "hackera457 @ AMXX-bg.info"
#define RANGE_HP_MIN 1
#define RANGE_HP_MAX 100
#define RANGE_WEAPON_AMMO_MIN 1
#define RANGE_WEAPON_AMMO_MAX 20
#define HUD_POS_X 0.33
#define HUD_POS_Y 0.41
#define HUD_COLOR_RED 127
#define HUD_COLOR_GREEN 255
#define HUD_COLOR_BLUE 255
public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR)
RegisterHam(Ham_Killed,"player","PlayerKill",1)
}
public PlayerKill(iVictim,iKiller,iShoudGib)
{
if(!is_user_alive(iKiller) || iVictim == iKiller)
return
static iWeapon, iUserHP, iUserClip, iUserBAmmo, iNewHealth, iNewBPAmmo
iWeapon = get_user_weapon(iKiller,iUserClip,iUserBAmmo)
iUserHP = get_user_health(iKiller)
iNewHealth = random_num(RANGE_HP_MIN, RANGE_HP_MAX)
iNewBPAmmo = random_num(RANGE_WEAPON_AMMO_MIN, RANGE_WEAPON_AMMO_MAX)
set_user_health(iKiller, iUserHP+ iNewHealth )
cs_set_user_bpammo(iKiller,iWeapon, iUserBAmmo+iNewBPAmmo)
set_dhudmessage(HUD_COLOR_RED,HUD_COLOR_GREEN,HUD_COLOR_BLUE,HUD_POS_X,HUD_POS_Y,0, 6.0, 3.0)
show_dhudmessage(iKiller,"[KILLED]^n+%i AP^n+%i HP", iNewBPAmmo,iNewHealth)
}
Код за потвърждение: Избери целия код
#define RANGE_HP_MIN 1
#define RANGE_HP_MAX 100
#define RANGE_WEAPON_AMMO_MIN 1
#define RANGE_WEAPON_AMMO_MAX 20
#define HUD_POS_X 0.33
#define HUD_POS_Y 0.41
#define HUD_COLOR_RED 127
#define HUD_COLOR_GREEN 255
#define HUD_COLOR_BLUE 255
Код за потвърждение: Избери целия код
// Управление восстановлением здоровья
// Health Recovery Management
// Работает ли при убийстве своих / Award for his murder?
amxr_ff_on 0 ( no умолчанию ( Default ) - 0 )
//-----------------------------------------------------------------//
// Включение восстановления HP / switching-on recovering HP
amxr_hp_on 1 ( no умолчанию ( Default ) - 1 )
// Сколько регенить HP при убийстве / How many HP regenerating for kill
amxr_hp 20 ( no умолчанию ( Default ) - 20 )
// Сколько регенить HP при убийстве в голову / How many HP regenerating for head kill
amxr_hp_hs 30 ( no умолчанию ( Default ) - 40 )
// Максимум HP / Maximum HP
amxr_max_hp 500 ( no умолчанию ( Default ) - 200 )
//-----------------------------------------------------------------//
// Включает отображение HUD HP у игрока / Switching-on show HUD HP status
amxr_hp_hud_status 1 ( по умолчанию ( Default ) - 1 )
// Минимальное кол-во HP для отображеня / Min hp for displaing
amxr_hp_hud_minhp 200 ( По умолчанию ( Default ) - 150 )
//-----------------------------------------------------------------//
// Включение наград гранатами / switching-on grenade rewards
amxr_grenade_on 1 ( no умолчанию ( Default ) - 1 )
// Награждать только при хедшоте / reward only if headshot
amxr_only_hs 1 ( no умолчанию ( Default ) - 1 )
// Сколько боевых гранат может иметь юзер / How many henades can have user
amxr_he_limit 3 ( no умолчанию ( Default ) - 3 )
// Сколько слеnoвых гранат может иметь юзер / How many flashbang can have user
amxr_flash_limit 0 ( no умолчанию ( Default ) - 3 )
// Сколько дымовых гранат может иметь юзер / How many smokenades can have user
amxr_smoke_limit 0 ( no умолчанию ( Default ) - 1 )
//-----------------------------------------------------------------//
// Влючение наград деньгами / switching-on money rewards
amxr_cash_on 1 ( no умолчанию ( Default ) - 1 )
// Сколько давать денег за убийство / How many money give for kill
amxr_normal_cash 25 ( no умолчанию ( Default ) - 25 )
// Сколько давать денег за хедшот / How many money give for head kill
amxr_hs_cash 100 ( no умолчанию ( Default ) - 100 )
//-----------------------------------------------------------------//
// Включение наград за убийства ножем / switching-on rewards for knife kills
amxr_knife_on 1 ( no умолчанию ( Default ) - 1 )
// Сколько давать денег за убийство ножем/ How many money give for knife kill
amxr_knife_cash 100 ( no умолчанию ( Default ) - 1000 )
// Сколько восстанавливать HP за убийство с ножа / How many HP recovery for knife kill
amxr_knife_hp 50 ( no умолчанию ( Default ) - 50 )
//-----------------------------------------------------------------//
// Включение восстановления брони при убийстве / switching-on rewards armor for kills
amxr_armor_on 1 ( no умолчанию ( Default ) - 1 )
// Тип брони ( 0 - Простая, 1 - со шлемом ) / Armor type ( 0 - klevar, 1 - vesthelm )
amxr_armor_type 1 ( no умолчанию ( Default ) - 1 )
// Сколько брони восстановить за убийство // Restore armor for kill
amxr_armor 3 ( no умолчанию ( Default ) - 3 )
// Сколько брони восстановить за убийство в голову // Restore armor for headshot kill
amxr_armor_hs 5 ( no умолчанию ( Default ) - 5 )
// Сколько брони максимум // Maximum user armor
amxr_armor_max 200 ( no умолчанию ( Default ) - 150 )
//-----------------------------------------------------------------//
// Включение восстановления патронов при убийстве / switching-on rewards ammo for kills
amxr_refill_on 1 ( no умолчанию ( Default ) - 1 )
// Сколько % патронов восстановить при убийстве / How many % ammo restore on kill
amxr_refill_prc 50 ( по умолчанию ( Default ) - 50 )
// Сколько % патронов восстановить при убийстве в голову / How many % ammo restore on headshot kill
amxr_refill_prchs 90 ( по умолчанию ( Default ) - 90 )
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <amxmisc>
#include <csdm>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
//******************************************************************************************************//
// //
// Plugin made for http://kodportal.ru //
// Plugin is free //
// Official release http://forums.alliedmods.net/showthread.php?t=160064 //
// //
// Private plugins contants: //
// ICQ: 8272341 //
// Skype: hollywood_oo //
// Mail: [email protected] //
// //
// Changelog: //
// //
// 07.01.2012 - v 1.6 - Stop using cstrike.inc //
// 03.01.2012 - v 1.5 - Fixed bugs. Adding CSDM support. Adding hud display HP status //
// 26.06.2011 - v 1.4 - Adding ammo refil for kills & using fakemeta // //
// 24.06.2011 - v 1.3 - Fixing bug with 256 HP for health reward. First release //
// 24.06.2011 - v 1.2 - Adding ammo & cash rewards //
// 24.06.2011 - v 1.1 - Fix bug with duplicate rewards //
// 24.06.2011 - v 1.0 - Creating plugin. Grenade & vampire rewards //
// //
// Credits: //
// //
// TheRadiance - for CSDM Refil ammo http://forums.alliedmods.net/showthread.php?t=85787 //
// Shalfee - for idea Vampire plugin http://forums.alliedmods.net/showthread.php?p=455096 //
// //
//******************************************************************************************************//
#define PLUGIN_NAME "Kill Rewards"
#define PLUGIN_AUTHOR "HoLLyWooD"
#define PLUGIN_VERSION "1.6"
/************ stop use cstrike.inc ***********/
#define OFFSET_TEAM 114
#define OFFSET_INTERNALMODEL 126
#define OFFSET_CSMONEY 115
#define OFFSET_ARMORTYPE 112
#define EXTRAOFFSET_WEAPONS 4 // weapon offsets are obviously only 4 steps higher on Linux!
#define OFFSET_CLIPAMMO 51 //+ EXTRA_OFFSET_WEAPONS
enum CS_Internal_Models {
CS_DONTCHANGE = 0,
CS_CT_URBAN = 1,
CS_T_TERROR = 2,
CS_T_LEET = 3,
CS_T_ARCTIC = 4,
CS_CT_GSG9 = 5,
CS_CT_GIGN = 6,
CS_CT_SAS = 7,
CS_T_GUERILLA = 8,
CS_CT_VIP = 9,
CZ_T_MILITIA = 10,
CZ_CT_SPETSNAZ = 11
};
enum CsTeams {
CS_TEAM_UNASSIGNED = 0,
CS_TEAM_T = 1,
CS_TEAM_CT = 2,
CS_TEAM_SPECTATOR = 3
};
enum CsArmorType {
CS_ARMOR_NONE = 0, // no armor
CS_ARMOR_KEVLAR = 1, // armor
CS_ARMOR_VESTHELM = 2 // armor and helmet
};
// 041029: All of these *_AMMO:s were changed -5
#define OFFSET_AWM_AMMO 377
#define OFFSET_SCOUT_AMMO 378
#define OFFSET_PARA_AMMO 379
#define OFFSET_FAMAS_AMMO 380
#define OFFSET_M3_AMMO 381
#define OFFSET_USP_AMMO 382
#define OFFSET_FIVESEVEN_AMMO 383
#define OFFSET_DEAGLE_AMMO 384
#define OFFSET_P228_AMMO 385
#define OFFSET_GLOCK_AMMO 386
#define OFFSET_FLASH_AMMO 387
#define OFFSET_HE_AMMO 388
#define OFFSET_SMOKE_AMMO 389
#define OFFSET_C4_AMMO 390
/************ stop use cstrike.inc ***********/
#define TASK_HUD 240
#define CSA_FLASHBANG 11
#define CSA_HEGRENADE 12
#define CSA_SMOKEGRENADE 13
// For ammo refil
new const g_weapons_id[] = { CSW_P228, CSW_SCOUT, CSW_XM1014, CSW_MAC10, CSW_AUG, CSW_ELITE, CSW_FIVESEVEN, CSW_UMP45,
CSW_SG550, CSW_GALIL, CSW_FAMAS, CSW_USP, CSW_GLOCK18, CSW_AWP, CSW_MP5NAVY, CSW_M249, CSW_M3,
CSW_M4A1, CSW_TMP, CSW_G3SG1, CSW_DEAGLE, CSW_SG552, CSW_AK47, CSW_P90 }
new const g_weapons_names2[][] = { "weapon_p228", "weapon_scout", "weapon_xm1014", "weapon_mac10", "weapon_aug", "weapon_elite",
"weapon_fiveseven", "weapon_ump45", "weapon_sg550", "weapon_galil", "weapon_famas", "weapon_usp",
"weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249", "weapon_m3", "weapon_m4a1", "weapon_tmp",
"weapon_g3sg1", "weapon_deagle", "weapon_sg552", "weapon_ak47", "weapon_p90" }
new const g_weapons_names[][] = { "p228", "scout", "xm1014", "mac10", "aug", "elite", "fiveseven", "ump45", "sg550",
"galil", "famas", "usp", "glock18", "awp", "mp5navy", "m249", "m3", "m4a1", "tmp", "g3sg1", "deagle", "sg552", "ak47", "p90" }
new const g_weapons_no_ammo[][] = { "knife", "hegrenade", "c4" }
new const g_max_clip[] = { 13, 10, 7, 30, 30, 30, 20, 25, 30, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 7, 30, 30, 50 }
// For cvars
new c_ff_enable, ff_enable;
new c_csdm_enable, csdm_enabled;
new c_hp_enable, c_hp_add, c_hphs_add, c_hp_max, hp_enable, hp_add, hp_hsadd, hp_max;
new c_gren_enable, c_maxhe, c_maxflash, c_maxsmokes, c_gren_hs, gren_enable, max_he, max_flash, max_smokes, gren_hs;
new c_cash_enable, c_norm_cash, c_hs_cash, cash_enable, norm_cash, hs_cash;
new c_knife_enable, c_knife_cash,c_knife_hp, knife_enable, knife_cash, knife_hp;
new c_armor_enable, c_arm_type, c_arm_add, c_arm_hsadd, c_arm_max, armor_enable, CsArmorType:arm_type, arm_add, arm_hsadd, arm_max;
new c_refill_enable, c_refill_prc, c_refill_prchs, refill_enable, refill_prc, refill_prchs;
new c_hp_hud_status, hp_hud_status, c_hp_hud_display, hp_hud_display;
new g_maxplayers;
new bool:g_is_alive[33] = false;
new bool:g_is_connected[33] = false;
new g_MsgHUD, g_money_msg, g_fade_msg, g_armor_msg;
public plugin_init(){
register_plugin( PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR );
register_cvar( "kill_rewards", PLUGIN_VERSION, FCVAR_SERVER | FCVAR_SPONLY );
// cvars
c_ff_enable = register_cvar("amxr_ff_on", "0");
c_csdm_enable = register_cvar("amxr_csdm_on", "0");
c_hp_enable = register_cvar("amxr_hp_on", "1");
c_hp_add = register_cvar("amxr_hp", "20");
c_hphs_add = register_cvar("amxr_hp_hs", "40");
c_hp_max = register_cvar("amxr_max_hp", "200");
c_hp_hud_status = register_cvar("amxr_hp_hud_status", "1");
c_hp_hud_display = register_cvar("amxr_hp_hud_minhp", "150");
c_gren_enable = register_cvar("amxr_grenade_on", "1");
c_gren_hs = register_cvar("amxr_only_hs","1");
c_maxhe = register_cvar("amxr_he_limit","3");
c_maxflash = register_cvar("amxr_flash_limit","2");
c_maxsmokes = register_cvar("amxr_smoke_limit","1");
c_cash_enable = register_cvar("amxr_cash_on", "1");
c_norm_cash = register_cvar("amxr_normal_cash", "25");
c_hs_cash = register_cvar("amxr_hs_cash", "100");
c_knife_enable = register_cvar("amxr_knife_on", "1");
c_knife_cash = register_cvar("amxr_knife_cash", "1000");
c_knife_hp = register_cvar("amxr_knife_hp", "15");
c_armor_enable = register_cvar("amxr_armor_on", "1");
c_arm_type = register_cvar("amxr_armor_type", "1");
c_arm_add = register_cvar("amxr_armor", "3");
c_arm_hsadd = register_cvar("amxr_armor_hs", "5");
c_arm_max = register_cvar("amxr_armor_max", "150");
c_refill_enable = register_cvar("amxr_refill_on", "1");
c_refill_prc = register_cvar("amxr_refill_prc", "50");
c_refill_prchs = register_cvar("amxr_refill_prchs", "90");
// events
register_event("DeathMsg", "hook_death", "a", "1!2" );
register_event("HLTV", "update_cvars", "a", "1=0", "2=0");
// Hams
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1);
// messages
register_message(get_user_msgid("WeaponList"),"weaponlist");
// custom
g_MsgHUD = CreateHudSyncObj();
g_maxplayers = get_maxplayers();
g_money_msg = get_user_msgid("Money");
g_fade_msg = get_user_msgid("ScreenFade");
g_armor_msg = get_user_msgid("ArmorType");
}
public client_connect(id){
g_is_connected[id] = true;
g_is_alive[id] = false;
if(task_exists(id+TASK_HUD))
remove_task(id+TASK_HUD);
if(hp_hud_status)
set_task(5.0, "write_hud", id+TASK_HUD, _, _, "b");
}
public client_disconnect(id){
g_is_connected[id] = false;
g_is_alive[id] = false;
if(task_exists(id+TASK_HUD))
remove_task(id+TASK_HUD);
}
public fw_PlayerSpawn_Post(id){
if(is_user_alive(id))
g_is_alive[id] = true;
}
public write_hud(id){
id-=TASK_HUD;
new health = get_user_health(id);
if(g_is_alive[id] && health >= hp_hud_display){
set_hudmessage(255, 255, 0, 0.01, 0.9, 0, 6.0, 5.0)
ShowSyncHudMsg(id, g_MsgHUD,"HP: %i", health)
}
}
public plugin_precache()
precache_sound("items/9mmclip1.wav");
public plugin_cfg(){
new cfgdir[32];
get_configsdir(cfgdir, charsmax(cfgdir));
server_cmd("exec %s/kill_rewards.cfg", cfgdir);
server_exec();
update_cvars();
}
public update_cvars(){
ff_enable = get_pcvar_num(c_ff_enable);
csdm_enabled = get_pcvar_num(c_csdm_enable);
hp_add = get_pcvar_num(c_hp_add);
hp_max = get_pcvar_num(c_hp_max);
hp_hsadd = get_pcvar_num(c_hphs_add);
hp_enable = get_pcvar_num(c_hp_enable);
hp_hud_status = get_pcvar_num(c_hp_hud_status);
hp_hud_display = get_pcvar_num(c_hp_hud_display);
max_he = get_pcvar_num(c_maxhe);
gren_hs = get_pcvar_num(c_gren_hs);
max_flash = get_pcvar_num(c_maxflash);
max_smokes = get_pcvar_num(c_maxsmokes);
gren_enable = get_pcvar_num(c_gren_enable);
hs_cash = get_pcvar_num(c_hs_cash);
norm_cash = get_pcvar_num(c_norm_cash);
cash_enable = get_pcvar_num(c_cash_enable);
knife_hp = get_pcvar_num(c_knife_hp);
knife_cash = get_pcvar_num(c_knife_cash);
knife_enable = get_pcvar_num(c_knife_enable);
armor_enable = get_pcvar_num(c_armor_enable);
arm_max = ( get_pcvar_num(c_arm_max) > 255 ) ? 255 : get_pcvar_num(c_arm_max);
arm_add = get_pcvar_num(c_arm_add);
arm_type = ( get_pcvar_num(c_arm_type) > 0 ) ? CS_ARMOR_VESTHELM : CS_ARMOR_KEVLAR;
arm_hsadd = get_pcvar_num(c_arm_hsadd);
refill_enable = get_pcvar_num(c_refill_enable);
refill_prc = get_pcvar_num(c_refill_prc);
refill_prchs = get_pcvar_num(c_refill_prchs);
}
public weaponlist(msg_id, msg_dest, msg_entity){
switch(get_msg_arg_int(8)){
case CSW_HEGRENADE: set_msg_arg_int(3,1,max_he);
case CSW_FLASHBANG: set_msg_arg_int(3,1,max_flash);
case CSW_SMOKEGRENADE: set_msg_arg_int(3,1,max_smokes);
}
}
public hook_death(){
new i, weapon[32], g_killer = read_data(1);
// Add to victim dead flag
g_is_alive[read_data(2)] = false;
// Not a player
if(!g_is_connected[g_killer])
return;
if(!csdm_get_ffa() && cs_get_user_team(g_killer) == cs_get_user_team(read_data(2)) && csdm_enabled)
return;
else if(cs_get_user_team(g_killer) == cs_get_user_team(read_data(2)) && !ff_enable)
return;
read_data(4, weapon,charsmax(weapon));
new args[4]; args[0] = g_killer; args[1] = read_data(3); args[2] = equal(weapon,"knife") ? 1 : 0;
for(i=0;i<sizeof(g_weapons_no_ammo);i++)
if(equal(weapon,g_weapons_no_ammo[i])) args[3] = 0;
for(i=0; i<sizeof(g_weapons_names); i++)
if(equal(weapon,g_weapons_names[i])) args[3] = g_weapons_id[i];
set_task(0.01,"call_rewards",0,args,4);
}
public call_rewards(args[]){
if(hp_enable) health_bonus(args[0], args[1]);
if(gren_enable) grenade_bonus(args[0], args[1]);
if(cash_enable) cash_bonus(args[0], args[1]);
if(knife_enable && args[2]) knife_bonus(args[0]);
if(armor_enable) armor_bonus(args[0], args[1]);
if(refill_enable && args[3]) weapon_refill(args[0], args[1], args[3]);
}
public grenade_bonus(id, mode){
if(gren_hs && !mode || !g_is_alive[id])
return;
new he_ammo = cs_get_user_bpammo(id, CSW_HEGRENADE);
new fl_ammo = cs_get_user_bpammo(id, CSW_FLASHBANG);
new sm_ammo = cs_get_user_bpammo(id, CSW_SMOKEGRENADE);
if( he_ammo < max_he ){
if(he_ammo > 0){
gren_pick(id,CSA_HEGRENADE);
cs_set_user_bpammo(id, CSW_HEGRENADE, he_ammo+1);
emit_sound(id, CHAN_WEAPON , "items/9mmclip1.wav" , 1.0 , ATTN_NORM , 0 , PITCH_NORM);
}else give_item(id, "weapon_hegrenade");
}
if( fl_ammo < max_flash ){
if(fl_ammo > 0){
gren_pick(id,CSA_FLASHBANG);
cs_set_user_bpammo(id, CSW_FLASHBANG, fl_ammo+1);
emit_sound(id, CHAN_WEAPON , "items/9mmclip1.wav" , 1.0 , ATTN_NORM , 0 , PITCH_NORM);
}else give_item(id, "weapon_flashbang");
}
if( sm_ammo < max_smokes ){
if(sm_ammo > 0){
gren_pick(id,CSA_SMOKEGRENADE);
cs_set_user_bpammo(id, CSW_SMOKEGRENADE, sm_ammo+1);
emit_sound(id, CHAN_WEAPON , "items/9mmclip1.wav" , 1.0 , ATTN_NORM , 0 , PITCH_NORM);
}else give_item(id, "weapon_smokegrenade");
}
}
public health_bonus(id, mode){
if(!g_is_alive[id])
return;
new g_hptoadd = (mode > 0) ? hp_hsadd : hp_add;
new g_killer_hp = get_user_health(id);
g_killer_hp += g_hptoadd;
if (g_killer_hp > hp_max) g_killer_hp = hp_max;
if (g_killer_hp % 256 == 0 || g_killer_hp % 255 == 0 ) g_killer_hp++;
set_user_health(id, g_killer_hp);
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1);
show_hudmessage(id, "Healed +%d HP", g_hptoadd);
fade_msg(id, 0, 0, 200, 75);
}
public knife_bonus(id){
cs_set_user_money(id, cs_get_user_money(id) + knife_cash);
if(g_is_alive[id]){
set_user_health(id, ( get_user_health(id) + knife_hp ) > hp_max ? hp_max : get_user_health(id) + knife_hp );
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1);
show_hudmessage(id, "Knife kill +%d HP", knife_hp);
fade_msg(id, 150, 50, 200, 100);
}
}
public armor_bonus(id, mode){
if(!g_is_alive[id])
return;
new CsArmorType:ArmorType;
new g_armor = cs_get_user_armor(id, ArmorType);
new g_armtoadd = g_armor + ( ( mode > 0 ) ? arm_hsadd : arm_add );
if( g_armtoadd > arm_max ) g_armtoadd = arm_max;
cs_set_user_armor(id, g_armtoadd, (g_armor > 0) ? CsArmorType : arm_type );
}
public cash_bonus(id, mode)
cs_set_user_money(id, cs_get_user_money(id) + ((mode > 0) ? hs_cash : norm_cash) );
public weapon_refill(id, mode, wpid){
if(!g_is_connected[id])
return;
new weapon = fm_get_weapon_ent(id, wpid);
if(!weapon || !pev_valid(weapon))
return;
for(new a=0;a<=sizeof(g_weapons_id);a++){
if( wpid == g_weapons_id[a] ){
new newammo, maxammo = get_weapon_maxclip(wpid);
if(maxammo){
emit_sound(id, CHAN_WEAPON , "items/9mmclip1.wav" , 1.0 , ATTN_NORM , 0 , PITCH_NORM);
newammo = floatround( maxammo / 100.0 * ( ( mode ) ? refill_prchs : refill_prc ) );
newammo += cs_get_weapon_ammo(weapon);
if(newammo > maxammo) newammo = maxammo;
cs_set_weapon_ammo(weapon, newammo);
}
return;
}
}
}
stock fade_msg(u_id, r, g, b, a){
message_begin(MSG_ONE, g_fade_msg, {0,0,0}, u_id);
write_short(1<<10);
write_short(1<<10);
write_short(0x0000);
write_byte(r);
write_byte(g);
write_byte(b);
write_byte(a);
message_end();
}
stock gren_pick(id,ammoid){
message_begin(MSG_ONE,get_user_msgid("AmmoPickup"),_,id);
write_byte(ammoid);
write_byte(1);
message_end();
}
stock get_weapon_maxclip(wpnid){
for(new a = 0;a<sizeof(g_weapons_id);a++)
if (wpnid == g_weapons_id[a])
return g_max_clip[a];
return false;
}
stock fm_get_weapon_ent(id, wpnid = 0){
for(new a=0;a<=sizeof(g_weapons_id);a++)
if(wpnid == g_weapons_id[a])
return fm_find_ent_by_owner(g_maxplayers, g_weapons_names2[a], id);
return false;
}
stock fm_find_ent_by_owner(id, const classname[], owner, jghgtype = 0){
new strtype[16] = "classname";
new ent = id;
switch (jghgtype){
case 1: strtype = "target";
case 2: strtype = "targetname";
}
while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner)
{
}
return ent;
}
stock CsTeams:cs_get_user_team(id, &{CS_Internal_Models,_}:model = CS_DONTCHANGE){
model = CS_Internal_Models:get_pdata_int(id, OFFSET_INTERNALMODEL);
return CsTeams:get_pdata_int(id, OFFSET_TEAM);
}
stock cs_get_user_bpammo(id, weapon) {
new offset;
switch (weapon) {
case CSW_AWP: offset = OFFSET_AWM_AMMO;
case CSW_SCOUT, CSW_AK47, CSW_G3SG1: offset = OFFSET_SCOUT_AMMO;
case CSW_M249: offset = OFFSET_PARA_AMMO;
case CSW_FAMAS, CSW_M4A1, CSW_AUG, CSW_SG550, CSW_GALI, CSW_SG552: offset = OFFSET_FAMAS_AMMO;
case CSW_M3, CSW_XM1014: offset = OFFSET_M3_AMMO;
case CSW_USP, CSW_UMP45, CSW_MAC10: offset = OFFSET_USP_AMMO;
case CSW_FIVESEVEN, CSW_P90: offset = OFFSET_FIVESEVEN_AMMO;
case CSW_DEAGLE: offset = OFFSET_DEAGLE_AMMO;
case CSW_P228: offset = OFFSET_P228_AMMO;
case CSW_GLOCK18,CSW_MP5NAVY,CSW_TMP,CSW_ELITE: offset = OFFSET_GLOCK_AMMO;
case CSW_FLASHBANG: offset = OFFSET_FLASH_AMMO;
case CSW_HEGRENADE: offset = OFFSET_HE_AMMO;
case CSW_SMOKEGRENADE: offset = OFFSET_SMOKE_AMMO;
case CSW_C4: offset = OFFSET_C4_AMMO;
default:return 0
}
return get_pdata_int(id, offset);
}
stock cs_set_user_bpammo(id, weapon, amount) {
new offset;
switch (weapon) {
case CSW_AWP: offset = OFFSET_AWM_AMMO;
case CSW_SCOUT, CSW_AK47, CSW_G3SG1: offset = OFFSET_SCOUT_AMMO;
case CSW_M249: offset = OFFSET_PARA_AMMO;
case CSW_FAMAS, CSW_M4A1, CSW_AUG, CSW_SG550, CSW_GALI, CSW_SG552: offset = OFFSET_FAMAS_AMMO;
case CSW_M3, CSW_XM1014: offset = OFFSET_M3_AMMO;
case CSW_USP, CSW_UMP45, CSW_MAC10: offset = OFFSET_USP_AMMO;
case CSW_FIVESEVEN, CSW_P90: offset = OFFSET_FIVESEVEN_AMMO;
case CSW_DEAGLE: offset = OFFSET_DEAGLE_AMMO;
case CSW_P228: offset = OFFSET_P228_AMMO;
case CSW_GLOCK18,CSW_MP5NAVY,CSW_TMP,CSW_ELITE: offset = OFFSET_GLOCK_AMMO;
case CSW_FLASHBANG: offset = OFFSET_FLASH_AMMO;
case CSW_HEGRENADE: offset = OFFSET_HE_AMMO;
case CSW_SMOKEGRENADE: offset = OFFSET_SMOKE_AMMO;
case CSW_C4: offset = OFFSET_C4_AMMO;
default:return 0
}
set_pdata_int(id, offset, amount);
return 1;
}
stock cs_set_user_money(index, money, flash = 1){
set_pdata_int(index, OFFSET_CSMONEY, money);
message_begin(MSG_ONE, g_money_msg, _, index);
write_long(money);
write_byte(flash ? 1 : 0);
message_end();
}
stock cs_get_user_money(index)
return get_pdata_int(index, OFFSET_CSMONEY);
stock cs_get_weapon_ammo(weapon_id)
return get_pdata_int(weapon_id, OFFSET_CLIPAMMO, EXTRAOFFSET_WEAPONS);
stock cs_set_weapon_ammo(weapon_id, newammo)
set_pdata_int(weapon_id, OFFSET_CLIPAMMO, newammo, EXTRAOFFSET_WEAPONS);
stock cs_get_user_armor(id, &CsArmorType:armortype){
switch(get_pdata_int(id, OFFSET_ARMORTYPE)){
case 0: armortype = CS_ARMOR_NONE;
case 1: armortype = CS_ARMOR_KEVLAR;
case 2: armortype = CS_ARMOR_VESTHELM;
}
return pev(id, pev_armorvalue);
}
stock cs_set_user_armor(id, armorvalue, CsArmorType:armortype){
switch(armortype){
case CS_ARMOR_NONE: set_pdata_int(id, OFFSET_ARMORTYPE, 0);
case CS_ARMOR_KEVLAR: set_pdata_int(id, OFFSET_ARMORTYPE, 1);
case CS_ARMOR_VESTHELM: set_pdata_int(id, OFFSET_ARMORTYPE, 2);
}
set_pev(id, pev_armorvalue, float(armorvalue));
if(armortype == CS_ARMOR_KEVLAR || armortype == CS_ARMOR_VESTHELM){
message_begin(MSG_ONE, g_armor_msg, _, id);
write_byte((armortype == CS_ARMOR_VESTHELM) ? 1 : 0);
message_end();
}
}