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

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

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

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

Плагин hp_ap

, Плагин отображение hp_ap
Статус пользователя x1DD
сообщение 3.8.2014, 18:05
Сообщение #1


Стаж: 11 лет

Сообщений: 167
Благодарностей: 98
Полезность: 287

Плагин показывает хп и ап, подойдет для любого мода.
Прикрепленное изображение
Вроде такой плагин уже выкладывал mirror, но в этом коде меньше строк.
Код:
#include <amxmodx>
#include <amxmisc>
#include <fun>

public plugin_init()
{
register_plugin("Hud", "0.1", "ill")
}

public client_putinserver(id)
{
set_task(1.0, "ShowHUD", id, _, _, "b")
}

public ShowHUD(id)
{
if(is_user_alive(id))
{
new text[512]
formatex(text, 511, "[Жизни: %d][Броня: %d]", get_user_health(id), get_user_armor(id))

message_begin(MSG_ONE_UNRELIABLE,get_user_msgid("StatusText"),_,id)
write_byte(0)
write_string(text)
message_end()
}
}

Прикрепленный файл  hud_hp_ap.sma ( 515 байт ) Кол-во скачиваний: 46


Отредактировал: x1DD, - 3.8.2014, 18:06


Сейчас CS уже давно помирает.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Realution
сообщение 3.8.2014, 18:11
Сообщение #2


Стаж: 9 лет

Сообщений: 102
Благодарностей: 64
Полезность: 355

miRror как то выкладывал уже.

Код:
#include <amxmodx>
#include <cstrike>
#include <hamsandwich>

#define FREQ_TASK 0.5
#define TASK_INFORMER 3956

new g_msgStatusText, g_msgStatusValue

public plugin_init ()
{
register_plugin ( "Player Status", "1.0", "Player Status" )

register_event ( "StatusValue", "ev_ShowStatus", "be", "1=2", "2!0" )
register_event ( "StatusValue", "ev_HideStatus", "be", "1=1", "2=0" )

RegisterHam ( Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1 )
RegisterHam ( Ham_Killed, "player", "fw_PlayerKilled" )

g_msgStatusValue = get_user_msgid ( "StatusValue" )
g_msgStatusText = get_user_msgid ( "StatusText" )
}

public client_disconnect ( id )
{
remove_task ( id+TASK_INFORMER )
}

public fw_PlayerSpawn_Post ( id )
{
if ( !is_user_alive ( id ) || is_user_bot ( id ) )
return

remove_task ( id+TASK_INFORMER )
set_task ( FREQ_TASK, "ShowPlayerInfo", id+TASK_INFORMER, .flags = "b" )
}

public fw_PlayerKilled ( victim )
{
if ( is_user_bot ( victim ) )
return

remove_task ( victim+TASK_INFORMER )
}

public ShowPlayerInfo ( id )
{
id -= TASK_INFORMER

static sMessage[191]
formatex ( sMessage, charsmax ( sMessage ), "[Жизни: %i] [Броня: %i]", get_user_health ( id ), get_user_armor ( id ) )

message_begin ( MSG_ONE_UNRELIABLE, g_msgStatusText, .player = id )
write_byte ( 0 )
write_string ( sMessage )
message_end ()
}

public ev_HideStatus ( id )
{
if ( !is_user_bot ( id ) && is_user_connected ( id ) )
{
message_begin ( MSG_ONE_UNRELIABLE, g_msgStatusText, .player = id )
write_byte ( 0 )
write_string ( "" )
message_end ()

remove_task ( id+TASK_INFORMER )
ShowPlayerInfo ( id+TASK_INFORMER )
set_task ( FREQ_TASK, "ShowPlayerInfo", id+TASK_INFORMER, .flags = "b" )
}
}

public ev_ShowStatus ( id )
{
if ( !is_user_bot ( id ) && is_user_connected ( id ) )
{
remove_task ( id+TASK_INFORMER )

new iTarget = read_data ( 2 )
new sMessage[191]

if ( cs_get_user_team ( id ) == cs_get_user_team ( iTarget ) )
formatex ( sMessage, charsmax ( sMessage ), "Друг: %%p2 - Здоровье: %i%% - Деньги: %i$", get_user_health ( iTarget ), cs_get_user_money ( iTarget ) )
else
formatex ( sMessage, charsmax ( sMessage ), "Враг: %%p2" )

message_begin ( MSG_ONE_UNRELIABLE, g_msgStatusText, .player = id )
write_byte ( 0 )
write_string ( sMessage )
message_end ()

message_begin ( MSG_ONE_UNRELIABLE, g_msgStatusValue, .player = id )
write_byte ( 2 )
write_short ( iTarget )
message_end ()
}
}


Отредактировал: Realution, - 3.8.2014, 18:12
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 3.8.2014, 18:14
Сообщение #3
Стаж: 12 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(x1DD @ 3.8.2014, 20:05) *
в этом коде меньше строк.

И он куда хуже.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Stimul1
сообщение 18.8.2014, 10:45
Сообщение #4


Стаж: 11 лет

Сообщений: 227
Благодарностей: 262
Полезность: 977

x1DD, в plugin_init сделай глобальный таск и запомни значение get_user_msgid("StatusText"), в функции которую вызывает таск сделай цикл.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя miRror
сообщение 18.8.2014, 11:52
Сообщение #5


Стаж: 13 лет

Сообщений: 1151
Благодарностей: 1002
Полезность: 967

Меценат Меценат

Поясню почему мною выложенный исходник такой длинный. Когда наводишь на игрока, после того как отобразились жизни, без дополнительных проверок бы не сразу определяло команду игрока. То есть "друг" и враг отображались бы сначала желтым цветом, вместо цвета команд. Для этого были созданы всякие проверки (можете не вдаваться в подробности), при помощи них цвет команды всегда точно определяет и корректно отображает информацию об игроках.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: