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

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

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

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

ХП и БРОНЯ террориста

[РЕШЕНО]
Статус пользователя kolobok1
сообщение 4.9.2015, 16:26
Сообщение #1


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

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

P.S мод детран,там как бы один террорист.Выше и написал.Что хочу вывести хп террориста,а не террористов:)А хотя разницы нету:)

Отредактировал: kolobok1, - 4.9.2015, 16:27
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя IAMHARD
сообщение 4.9.2015, 16:51
Сообщение #2
Стаж: 11 лет

Сообщений: 194
Благодарностей: 57
Полезность: 234

If(cs_get_user_team(id) == CS_TEAM_T) && ...
{
...

Или

If(cs_get_user_team(id) != CS_TEAM_T) && ...
return;
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kolobok1
сообщение 4.9.2015, 17:32
Сообщение #3


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

IAMHARD, Разве это выведет хп только террориста?Как по мне,это сделает ограничение вывода моей функции команде.То есть будет доступно только КТ,а хп будет выводить так же.

Моя цель вывести хп террориста,ктшникам,а хп ктшников,вообще не должно показывать/выводиться.

Отредактировал: kolobok1, - 4.9.2015, 17:36
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя IAMHARD
сообщение 4.9.2015, 19:04
Сообщение #4
Стаж: 11 лет

Сообщений: 194
Благодарностей: 57
Полезность: 234

Вот плагин, который выводит деньги своих тиммейтов, мб по аналогии сделаешь как то.
Надеюсь чем то да помог)

Cкрытый текст
Код:
#include <amxmodx>
#include <cstrike>
#include <hamsandwich>

#define NAME "show teammate's money"
#define VERSION "1.3.1"
#define AUTHOR "K.K.Lv"

new g_max_players, g_sync_creat_statustext, g_sync_creat_list

new bool:g_teammate[33]

new cvar_plugin_on
new cvar_status_on

public plugin_init()
{
register_plugin(NAME, VERSION, AUTHOR)

RegisterHam(Ham_Spawn, "player", "player_spawn", 1)

register_clcmd("say /money", "clcmd_money")

register_event("StatusValue", "show_teammate_money", "be", "1=2", "2!0")
register_event("StatusValue", "set_team", "be", "1=1")

cvar_plugin_on = register_cvar("stm_on", "1")
cvar_status_on = register_cvar("stm_st_on", "1")

g_max_players = get_maxplayers()
g_sync_creat_statustext = CreateHudSyncObj()
g_sync_creat_list = CreateHudSyncObj()
}

public clcmd_money(client)
{
if (!get_pcvar_num(cvar_plugin_on))
{
client_print(client, print_chat, "[AMXX]: Show Teammate's Money was off.")
return PLUGIN_HANDLED
}
show_money(client)
return PLUGIN_CONTINUE
}

public player_spawn(client)
{
remove_task(client)
if (is_user_alive(client) && get_pcvar_num(cvar_plugin_on))
{
set_task(1.0, "show_money", client)
}
}

public show_money(client)
{
static message[1024];
static name[32];

new money, id, len;

len = format(message, charsmax(message), "The teammate's money:^n");
for (id = 1; id <= g_max_players; id++)
{
if (id != client && is_user_connected(id) && cs_get_user_team(id) == cs_get_user_team(client))
{
money = cs_get_user_money(id);
get_user_name(id, name, 31);
len += format(message[len], charsmax(message) - len, "%-22.22s: %d^n", name, money);
}
}
set_hudmessage(100, 200, 0, 0.05, 0.35, 0, 0.02, 5.0, 0.1, 0.2, 2);
ShowSyncHudMsg(client, g_sync_creat_list, message);
}

public set_team(id)
g_teammate[id] = bool:(read_data(2) == 1);

public show_teammate_money(id)
{
if (!get_pcvar_num(cvar_plugin_on))
return PLUGIN_HANDLED
if(!is_user_bot(id) && is_user_connected(id) && get_pcvar_num(cvar_status_on))
{
static name[32]

new pid = read_data(2)
new red = 0, blue = 0

if (cs_get_user_team(pid) == CS_TEAM_T)
red = 255
else if(cs_get_user_team(pid) == CS_TEAM_CT)
blue = 255

get_user_name(pid, name, charsmax(name))
new money = cs_get_user_money(pid)
if (g_teammate[id])
{
set_hudmessage(red, 50, blue, -1.0, 0.60, 1, 0.01, 0.6, 0.01, 0.01, 8)
ShowSyncHudMsg(id, g_sync_creat_statustext, "Friend:%s -- Money:%d", name, money)
}
else {
set_hudmessage(red, 50, blue, -1.0, 0.60, 1, 0.01, 0.6, 0.01, 0.01, 8)
ShowSyncHudMsg(id, g_sync_creat_statustext, "Enemy:%s", name)
}
}
return PLUGIN_CONTINUE
}

public client_disconnect(client)
{
remove_task(client)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя kolobok1
сообщение 4.9.2015, 20:15
Сообщение #5


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

IAMHARD, Спасибо,но это не то:))Буду ждать более опытного скриптера)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя -ZVER- Contra
сообщение 4.9.2015, 20:37
Сообщение #6


Стаж: 17 лет

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

масив игроков и их хп ,получать имя терориста потом поиск по массиву имя и хп
с планшета код не подскажу
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kolobok1
сообщение 4.9.2015, 21:29
Сообщение #7


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

-ZVER- Contra, А можно кодом хоть немного.Что-то не сильно понял.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legend21
сообщение 5.9.2015, 8:53
Сообщение #8
Стаж: 14 лет
Город: Винница

Сообщений: 604
Благодарностей: 229
Полезность: 561

kolobok1,

Вот тебе все что ты хотел.

Код:
public terrorist_hud(id)
{
new mode[32];
get_cvar_string("deathrun_mode", mode, 31);
if(terrorist && !equal(mode, "DUEL"))
{
new szPlayers[32], iNumPlayers, iNumTerr, szNameTerr[33][33], message[512], iLen; /*Всякие переменные.*/
get_players(szPlayers, iNumPlayers); /*Получение игроков.*/
for(new i; i < iNumPlayers; i++)
if(is_user_alive(szPlayers[i]) && get_user_team(szPlayers[i]) == 1) /*Проверям если игрок живой террорист.*/
{
iNumTerr++; /*Прибавляем к переменной 1.*/
get_user_name(szPlayers[i], szNameTerr[iNumTerr], 31); /*Получаем ник игрока.*/
}
if(iNumTerr) /*Проверяем есть ли живые террористы.*/
iLen = format(message[iLen], charsmax(message)-iLen, "Террорист%s:^n", iNumTerr > 1 ? "ы":""); /*Заголовок*/
else
iLen = format(message[iLen], charsmax(message)-iLen, "Террористы: Отсутствуют"); /*Заголовок*/

for(new q = 1; q <= iNumTerr; q++) /*Цикл по террористам.*/
iLen += format(message[iLen], charsmax(message)-iLen, "%s: %d HP%s", szNameTerr[q], pev(get_user_index(szNameTerr[q]), pev_health), iNumTerr-q ? "^n" : ""); /*Выводим ник и здоровье террориста*/

set_dhudmessage( iNumTerr > 1? 255 : 0, 255, 0, -1.0, -0.10, 0, 0.1, 0.1, 0.1, 1.5 ); /*Настройки дхуд сообщенияю*/
show_dhudmessage(0, message); /*Выводим сообщение.*/
}
return PLUGIN_HANDLED
}


Отредактировал: Legend21, - 5.9.2015, 8:54
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя kolobok1
сообщение 5.9.2015, 10:11
Сообщение #9


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

Legend21, Благодарю!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kolobok1
сообщение 5.9.2015, 14:31
Сообщение #10


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

Legend21, Хммм.Как-то криво он выводит,да и вообще он хп не выводит:)Получается так:Террористы: 0 HP

Отредактировал: kolobok1, - 5.9.2015, 14:32
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legend21
сообщение 5.9.2015, 14:43
Сообщение #11
Стаж: 14 лет
Город: Винница

Сообщений: 604
Благодарностей: 229
Полезность: 561

kolobok1,

Я тебе выдал всего лишь кусок кода. Возможно ты его не правильно используешь.

Давай полностью свой готовый код, и я его туда втулю.

Обрати внимание на нашу переменную

Код:
new terrorist 


Код:
if(terrorist &&
.

Чтобы код корректно работал, тебе нужно втулить свою переменную

Отредактировал: Legend21, - 5.9.2015, 14:50
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kolobok1
сообщение 5.9.2015, 16:43
Сообщение #12


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

Legend21, Я уже разобрался.Немного поправил.Всё норм.Я же вывожу ник и хп террориста не всегда.Я его вывожу только в одном режиме детрана.Сейчас у меня такой вопрос.У меня выводится теперь хп всех игроков.То есть контру выводится все хп контров и своё хп.А террористу хп террористов и своё хп.Мне надо чтобы выводилось контру,только хп террориста,а террористу не чего не выводилось).Я сам ковырялся,но уже запутался.Вот мой код:
Код:

public Event_Health(id)
{
new message[256], iLen, iNumPlayers, iNumTerr, Player
new szPlayers[32], szNameTerr[33][33]

get_players(szPlayers, iNumPlayers);

for(new i = 0; i < iNumPlayers; i++)
{
Player = szPlayers[i]

if(is_user_alive(Player) && get_user_team(Player) == 1)
{
get_user_name(Player, szNameTerr[iNumTerr], 31)
iNumTerr++;
}

/*
if(iNumTerr)
iLen = format(message[iLen], charsmax(message)-iLen, "Террорист%s:^n", iNumTerr > 1 ? "ы":"");
else
iLen = format(message[iLen], charsmax(message)-iLen, "Террористы: Отсутствуют");
*/
for(new q = 1; q <= iNumTerr; q++)
{
iLen += format(message[iLen], charsmax(message)-iLen, "%s: %d HP%s", szNameTerr[q], get_user_health(Player), iNumTerr-q ? "^n" : "");
set_hudmessage(iNumTerr > 1? 255 : 0, 255, 255, 0.02, 0.85, 0, INTERVAL)
ShowSyncHudMsg(0, g_SyncHud, "%s", message)
}
}
return PLUGIN_HANDLED;
}


Отредактировал: kolobok1, - 5.9.2015, 16:45
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя proff_q
сообщение 5.9.2015, 17:08
Сообщение #13
Стаж: 14 лет

Сообщений: 357
Благодарностей: 263
Полезность: 804

Может как-то так
Код:
public event_health() {
new num, players[32]

new t_name[64], t_hp, t_armor

get_players(players, num, "e", "TERRORIST")

get_user_name(players[0], t_name, charsmax(t_name))
t_hp = get_user_health(players[0])
t_armor = get_user_armor(players[0])

get_players(players, num, "e", "CT")

for(new i=0; i < num; i++) {
set_hudmessage(255, 255, 255, 0.02, 0.85, 0, INTERVAL)
ShowSyncHudMsg(players[i], g_SyncHud, "Terrosrist %s HP %d AP %d", t_name, t_hp, t_armor)
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя kolobok1
сообщение 5.9.2015, 19:29
Сообщение #14


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

proff_q, Хммм...Завтра протестю.Может получится.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 2 гостей читают эту тему: