HP Award For Kill [0.8c] (released 25.01.2008) Вступление:
Обнаружил необходимость на CSDM сервере восполнения hp после каждого убийства, иначе возникают ситуации типа "убил 3-х сильных игроков, осталось 5hp, и тут подоспел нуб и шальной пулей добил меня. где справедливость?". Пытался реализовать это путем выпадения аптечек с убитых противников - но за ней ещё надо добежать и подобрать! А на заполненном CSDM сервере это вообще неосуществимо. В общем, игроки подсказали, что есть плагин на внешних CSDM серверах, дающий за каждое убийство +hp. К сожалению, найти его своими силами мне не удалось, единственное что я нашел, это тему подобной тематики на forums.alliedmods.net - http://forums.alliedmods.net/showthread.php?t=28153
Взяв за основу то, что представлено в этой теме я написал сей плагин.
Это мой первый плагин и вообще, первый опыт работы с Pawn.
Описание:
Данный плагин изначально создавался как дополнение к CSDM, но, в принципе, может использоваться на сервере любой другой тематики.
Требования:
* CS 1.6
* AMXMODX v1.76d (или другой версии)
Установка:
* скачайте плагин. разархивируйте.
* расположите hp_award.amxx в ...\cstrike\addons\amxmodx\plugins
* разместите строку "hp_award.amxx" в файле ...\cstrike\addons\amxmodx\configs\plugins.ini
Что умеет плагин:
За каждое убийство киллер получает + к hp. Больше 100hp киллер заиметь не может. Количество hp получаемое за убийство в голову или в другую часть тела - разное (опционально устанавливаются). Также плагин отображает получаемые +hp (опционально on/off).
Переменные:
hp_award <0|1> (по-умолчанию=1) - выкл|вкл функциональность плагина.
hp_award_hp <количетсво hp> (по-умолчанию=60) - количество хп дающегося киллеру за убийство в голову.
hp_award_hp2 <количетсво hp> (по-умолчанию=15)- количество хп дающегося киллеру за убийство в любую другую часть тела.
hp_award_show <0|1> (по-умолчанию=1) - выкл|вкл функцию отображения получаемого hp.
Исходники:
Code
#include <amxmodx>
#include <fun>
// Plugin Info
new const PLUGIN[] = "HP Award For Kill"
new const VERSION[] = "0.8c" // released 25.01.2008
new const AUTHOR[] = "Argus"
new award_hp, award_hp2, hp_MsgSync
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg" , "event_DeathMsg" , "a" , "1>0" , "2>0");
register_cvar("hp_award","1")
register_cvar("hp_award_hp","60") // head kill
register_cvar("hp_award_hp2","15") // body kill
register_cvar("hp_award_show","1")
hp_MsgSync = CreateHudSyncObj()
}
public event_DeathMsg()
{
if(!get_cvar_num("hp_award"))
return PLUGIN_HANDLED
new id = read_data(1)
new bool:killhead = bool:read_data(3)
new player_hp = get_user_health(id)
award_hp = get_cvar_num("hp_award_hp")
award_hp2 = get_cvar_num("hp_award_hp2")
if((killhead) && (award_hp>0) && (is_user_alive(id))) // head kill
{
if((player_hp + award_hp) > 100)
set_user_health(id , 100)
else
set_user_health(id , player_hp+award_hp)
if(get_cvar_num("hp_award_show"))
{
set_hudmessage(200, 200, 50, -1.0, 0.36, 2, 0.2, 0.2, 0.025, 0.02, -1)
ShowSyncHudMsg(id, hp_MsgSync, "+%i^n", award_hp)
}
}
if((!killhead) && (award_hp2>0) && (is_user_alive(id)))// body kill
{
if((player_hp + award_hp2) > 100)
set_user_health(id , 100)
else
set_user_health(id , player_hp + award_hp2)
if(get_cvar_num("hp_award_show"))
{
set_hudmessage(50, 200, 50, -1.0, 0.36, 2, 0.2, 0.2, 0.02, 0.02, -1)
ShowSyncHudMsg(id, hp_MsgSync, "+%i^n", award_hp2)
}
}
return PLUGIN_CONTINUE
}
Скачать плагин и исходник:
http://amxmodx.ucoz.ru/load/0-0-0-49-20