RU
RU
UA
EN
PL
ГЛАВНАЯ
УСЛУГИ
ПЛАГИНЫ
КАРТЫ
REBUY
SCANMON
CASSA
SALE
ФОРУМ
МОНИТОР
HELP
КОНТАКТ
Главная
/
Plugins
/
Kill Rewards
Kill Rewards
Теги:
Скачать плагины cs
Серверные
Плагин позволяет назначить сумму за убийство с конкретного оружия
Компилятор: 1.8.2
REapi
511
Команды:
Кваров и команд нет
.sma / .sp
// Copyright © 2016 Vaqtincha /******************************************** * Support forum: * http://goldsrc.ru * *********************************************/ enum DATA { szWeapon[10], iReward } /**■■■■■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG START ■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/ // #define TEAM_KILL_PENALTY 5000 // // #define HEADSHOT_BONUS 100 // +100 $ // #define HEADSHOT_BONUS_SHOW_HUD 0.93, 0.80 // Hud Position // #define DEBUG new const g_szShortWeaponNames[][DATA] = { // pistols: {"p228", 300}, {"usp", 350}, {"glock18", 350}, {"elite", 300}, {"deagle", 300}, {"fiveseven", 300}, // submachine guns: {"mac10", 600}, {"tmp", 600}, {"mp5navy", 600}, {"ump45", 600}, {"p90", 300}, // rifles: {"galil", 300}, {"famas", 300}, {"ak47", 300}, {"m4a1", 300}, {"sg552", 300}, {"aug", 300}, // sniper rifles: {"scout", 300}, {"awp", 100}, {"g3sg1", 300}, {"sg550", 300}, // shotguns & machine guns: {"xm1014", 900}, {"m3", 900}, {"m249", 300}, // other: {"grenade", 400}, {"knife", 1500} } /**■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG END ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/ #define PL_VERSION "0.0.3" #include
#include
enum { DeathMsg_KillerID = 1, // byte DeathMsg_VictimID, // byte DeathMsg_IsHeadshot, // byte DeathMsg_TruncatedWeaponName // string } new HookChain:g_hAddAccount, Trie:g_tWeaponRewards new g_iMoney[MAX_CLIENTS + 1] public plugin_end() { TrieDestroy(g_tWeaponRewards) } public plugin_init() { register_plugin("[ReAPI] Kill Rewards", PL_VERSION, "Vaqtincha") register_concmd("kr_set_reward", "ConCmd_SetReward", ADMIN_CFG, "
") register_concmd("kr_rewards", "ConCmd_Rewards", _, "
") register_event("DeathMsg", "Event_DeathMsg", "a", "1>0") DisableHookChain(g_hAddAccount = RegisterHookChain(RG_CBasePlayer_AddAccount, "CBasePlayer_AddAccount", .post = false)) g_tWeaponRewards = TrieCreate() for(new i = 0; i < sizeof(g_szShortWeaponNames); i++) { AddToArray(g_szShortWeaponNames[i][szWeapon], g_szShortWeaponNames[i][iReward]) } #if defined DEBUG ConCmd_Rewards(0) #endif } public client_putinserver(id) { g_iMoney[id] = 0 } public ConCmd_Rewards(id) { new iRewards, i PrintConsole(id, "%-13.12s %-11.10s", "Weapon Name:", "Reward") for(i = 0; i < sizeof(g_szShortWeaponNames); i++) { TrieGetCell(g_tWeaponRewards, g_szShortWeaponNames[i][szWeapon], iRewards) PrintConsole(id, "%-13.12s %-6.5d", g_szShortWeaponNames[i][szWeapon], iRewards) } return PLUGIN_HANDLED } public ConCmd_SetReward(id, level) { if(~get_user_flags(id) & level) return PLUGIN_HANDLED if(read_argc() < 3) { PrintConsole(id, "Usage:
") return PLUGIN_HANDLED } new szWeaponName[10], szValue[5] read_argv(1, szWeaponName, charsmax(szWeaponName)) read_argv(2, szValue, charsmax(szValue)) AddToArray(szWeaponName, str_to_num(szValue)) return PLUGIN_HANDLED } public Event_DeathMsg() { new pKiller = read_data(DeathMsg_KillerID) if(read_data(DeathMsg_VictimID) == pKiller || !is_user_connected(pKiller)) // is_player ? return new szWeaponName[10] read_data(DeathMsg_TruncatedWeaponName, szWeaponName, charsmax(szWeaponName)) if(!HasMaxMoney(pKiller) && TrieGetCell(g_tWeaponRewards, szWeaponName, g_iMoney[pKiller])) { #if defined HEADSHOT_BONUS if(read_data(DeathMsg_IsHeadshot)) { g_iMoney[pKiller] += HEADSHOT_BONUS #if defined HEADSHOT_BONUS_SHOW_HUD set_hudmessage(0, 220, 0, HEADSHOT_BONUS_SHOW_HUD, 0, 1.0, 1.0, 0.1, 1.0, -1) show_hudmessage(pKiller, "+%d HS", HEADSHOT_BONUS) #endif } #endif #if defined DEBUG server_print("KillerID: %d | Weapon: %s | Reward: %d | Headshot: %s", pKiller, szWeaponName, g_iMoney[pKiller], (read_data(DeathMsg_IsHeadshot)) ? "YES":"NO") #endif } EnableHookChain(g_hAddAccount) } public CBasePlayer_AddAccount(const pPlayer, amount, RewardType:type, bool:bTrackChange) { DisableHookChain(g_hAddAccount) if(type == RT_ENEMY_KILLED && g_iMoney[pPlayer]) { SetHookChainArg(2, ATYPE_INTEGER, g_iMoney[pPlayer]) g_iMoney[pPlayer] = 0 } #if defined TEAM_KILL_PENALTY else if(type == RT_TEAMMATES_KILLED) { SetHookChainArg(2, ATYPE_INTEGER, -TEAM_KILL_PENALTY) } #endif return HC_CONTINUE } AddToArray(szKey[], iValue) { strtolower(szKey) if(szKey[0] && iValue) TrieSetCell(g_tWeaponRewards, szKey, iValue) } stock bool:HasMaxMoney(const pPlayer) { static mp_maxmoney if(!mp_maxmoney) mp_maxmoney = get_cvar_pointer("mp_maxmoney") return bool:(get_member(pPlayer, m_iAccount) >= get_pcvar_num(mp_maxmoney)) } stock PrintConsole(const pPlayer, const szMessage[], any:...) { static szMsg[191]; vformat(szMsg, charsmax(szMsg), szMessage, 3) pPlayer > 0 ? console_print(pPlayer, szMsg) : server_print(szMsg) }
Отправить
Загрузил
CoolJove
2022-09-30 15:04:26
0
58
Установить на сервер
Скачать
Нет оплаченых серверов
Купить сервер CS 1.6
Купить сервер CS:GO
Купить сервер CSS v34
Подключить свой VDS к панели
Данная иконка означает, что плагин был проверен администрацией хостинга на тестовом сервере, и проблем с ним не было выявлено. Рекомендуем ставить исключительно проверенные плагины.
Плагин загружен на сервер, но проверка еще не была проведена.
CSHOST.COM.UA 2012-2024 Хостинг игровых серверов