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

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

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

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

2 страниц V   1 2

Простой код с бомбой

, Никогда не работал с бомбой не смогу сам написать
cs-portal
сообщение 11.9.2013, 22:11
Сообщение #21
Стаж: 16 лет

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

Цитата
Тогда еще несколько вопросов
1. Будет ли этот код выводить сообщение террористу с бомбой о том что он уронил бомбу если он совершит самоубийство (прыжок с высоты)
2. Будет ли этот код выводить сообщение террористу который убьет террориста с бомбой (случайно)
3. Будет ли этот код выводить мертвому КТ который взорвет себя и террориста с бомбой к примеру гранатой (случайно)


нет не будет, ты же регишь функцию KILL а не смерть другими способами.
если прыжок с высоты тогда flFallvelocity думаю ( или EV_FL_flFallVelocity если engine), + ham takedamage - inflictor в данном случае , - то что вызывает dmg
а вообще в HNS посмотри как реализовано


2. Будет ли этот код выводить сообщение террористу который убьет террориста с бомбой (случайно)

ham_take damage только

if(dmg > 100 && get_user_team(iVictim) == get_user_team(iKiller) && (pev(iVictim, pev_weapons) & (1 << CSW_C4)))
client_print(iVictim,4,"you killed yourself with a bomb")

за правильность не ручаюсь конечно. тестани если есть время
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя xSav
сообщение 12.9.2013, 14:27
Сообщение #22
Стаж: 16 лет

Сообщений: 1131
Благодарностей: 174
Полезность: 126

Мало что понятно.. Вот рабочая версия которую я сделал под свой сервер. (Временный плагин для новичков, потом он будет удалён)
Текст в худ и чат видят только живые КТ которые убили террориста с бомбой.
Код

Код:

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>

new g_MsgSync, SayTxT
new bool: info_off[33] = false

public plugin_init()
{
register_plugin("Say Team Where Bomb", "1.0", "Okorok & Orty_Hart")
RegisterHam(Ham_Killed, "player", "ham_player_kill", 0)
register_clcmd ("say /dropinfooff", "drop_info_off", 0, "- drop info off")
register_clcmd ("say /dropinfoon", "drop_info_on", 0, "- drop info on")
SayTxT = get_user_msgid("SayText")
set_hudmessage(0, 255, 0, 0.7, 0.78, 2, 0.1, 5.0, 0.02, 0.5, -1)
g_MsgSync = CreateHudSyncObj()
}

public client_putinserver(id)
{
info_off[id] = false
}


public drop_info_on(id)
{
info_off[id] = false
}

public drop_info_off(id)
{
info_off[id] = true
client_printcolor(id, "/gINFO /yДля включения информационного сообщения о бомбе, введите в чат команду /g/dropinfoon")
}

public ham_player_kill(victim, attacker)
{
if(pev(victim, pev_weapons) & (1 << CSW_C4)) //если у жертвы есть C4
{
if(info_off[attacker] == false)
{
if(is_user_alive(attacker) && get_user_team(attacker) == 2)
{
ShowSyncHudMsg(attacker, g_MsgSync,"Вы убили игрока с бомбой.^nНаведите на нее прицел и нажмите^nклавишу ^"Использовать^", чтобы передать координаты бомбы своей^nкоманде")
client_printcolor(attacker, "/gINFO /yДля отключения информационного сообщения о бомбе, введите в чат команду /g/dropinfooff")

}
}
}
}

stock client_printcolor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg,190,input,3)
while(replace(msg,190,"/g","^4")) {}
while(replace(msg,190,"/y","^1")) {}
while(replace(msg,190,"/ctr","^3")) {}
while(replace(msg,190,"/w","^0")) {}
if(id) players[0] = id; else get_players(players,count,"ch")
for(new i; i < count; i++)
{
if(is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, SayTxT, _, players[i])
write_byte(players[i])
write_string(msg)
message_end()
}
}
}



Как можно было еще упростить если по Вашему я делал лишние проверки?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: