Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Информационная доска

Данный раздел предназначен для обсуждения, а также решения технических проблем связанных с серверной частью. Обсуждения касательно игровых клиентов ведутся здесь.

1. Во время создания новой темы аккуратно оформляйте её, не допускайте грамматических ошибок.
2. Описывая проблему старайтесь, как можно больше рассказать о ней, а так же о действиях с сервером после которых она возникла, по возможности подкрепите информацию логами.
3. Если вопрос касается проблемы в работе сервера, то обязательно прикрепляйте список плагинов (введите в консоли сервера: meta list и amxx plugins), настройки server.cfg, логи. Так же указывайте операционную систему, версию HLDS (введите к консоли сервера: version) и где хостится сервер.

Длинную информацию скрывайте под спойлер.

Как увеличить вознагрождения за убийство?

Статус пользователя olegazaz
сообщение 15.7.2014, 23:05
Сообщение #1
Стаж: 11 лет

Сообщений: 59
Благодарностей: 5
Полезность: < 0

Здравствуйте. Искал-искал, и не нашёл. Сделал обычный сервер, но с автореспауном, типа дм. И обычным игрокам не хватает денег на закупку оружия. Стартовые деньги поставил 16 000, но хочу еще увеличить значение денег за убийство. Как можно это изменить?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Fred Perry
сообщение 15.7.2014, 23:29
Сообщение #2


Иконка группы

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Найди готовый плагин


You become responsible, forever, for what you have tamed
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя olegazaz
сообщение 15.7.2014, 23:58
Сообщение #3
Стаж: 11 лет

Сообщений: 59
Благодарностей: 5
Полезность: < 0

Нашел плагин, но там еще есть разные бонусы за килл, а мне надо только деньги. Кто может вырезать все ненужное? Бду чрезмерно благодарен.

Вот исходник плагина:

CODE
#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: wap3k@mail.ru //
// //
// 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®;
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();
}
}


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
OneNum
сообщение 16.7.2014, 6:50
Сообщение #4
Стаж: 11 лет

Сообщений: 68
Благодарностей: 26
Полезность: 0

Скрытый текст
Код:
#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: wap3k@mail.ru //
// //
// 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", "0");
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", "0");

c_armor_enable = register_cvar("amxr_armor_on", "0");
c_arm_type = register_cvar("amxr_armor_type", "0");
c_arm_add = register_cvar("amxr_armor", "0");
c_arm_hsadd = register_cvar("amxr_armor_hs", "0");
c_arm_max = register_cvar("amxr_armor_max", "0");

c_refill_enable = register_cvar("amxr_refill_on", "0");
c_refill_prc = register_cvar("amxr_refill_prc", "0");
c_refill_prchs = register_cvar("amxr_refill_prchs", "0");

// 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®;
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();
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: