- Регистрация
- 13 Янв 2018
- Сообщения
- 394
- Симпатии
- 71
- Пол
- Мужской
Сделал я плагин для зм на тестовый сервер(Идею увидел из одного старого видео зомби биохазарда). Когда люди заходили, они интересовались что за плагин, раз уж многим интересно могу выложить его, но наверное нужна хорошая оптимизация, т.к. много циклов наверное не хорошо) Я просто не знаю, как можно реализовать это все одним циклом, и можно ли?
[ + Знаю, что можно использовать zp_get_zombie_count() и zp_get_human_count(), но я решил все проделать своими проверками ]
[ + Знаю, что можно использовать zp_get_zombie_count() и zp_get_human_count(), но я решил все проделать своими проверками ]
C++:
#include <amxmodx>
#include <zombieplague>
const Float:HUD_X = 0.8
const Float:HUD_Y = 0.4
#define TASK_SHOWHUD 100
#define ID_SHOWHUD (taskid - TASK_SHOWHUD)
public plugin_init()
{
register_plugin("[ZP] Players Status List", "1.0", "Mandar1n")
}
public client_putinserver(id)
{
if (!is_user_bot(id))
{
set_task(1.0, "ShowHUD", id+TASK_SHOWHUD, _, _, "b")
}
}
public client_disconnected(id)
{
remove_task(id+TASK_SHOWHUD)
}
public ShowHUD(taskid)
{
set_dhudmessage(100, 255, 100, HUD_X, HUD_Y, 0, 2.0, 1.0)
show_dhudmessage(ID_SHOWHUD, "Alive humans: %d^nAlive zombies: %d^nHumans killed: %d^nZombies killed: %d^nDead players: %d^nSpectators: %d^nTotal players: %d", alivehumans(), alivezombies(), humanskilled(), zombieskilled(), deadplayers(), spectators(), totalplayers())
}
alivehumans()
{
new player
for(new id = 1; id <= get_maxplayers(); id++)
{
if(is_user_connected(id) && !zp_get_user_zombie(id) && is_user_alive(id))
player++
}
return player
}
alivezombies()
{
new player
for(new id = 1; id <= get_maxplayers(); id++)
{
if(is_user_connected(id) && zp_get_user_zombie(id) && is_user_alive(id))
player++
}
return player
}
humanskilled()
{
new player
for(new id = 1; id <= get_maxplayers(); id++)
{
if(is_user_connected(id) && !zp_get_user_zombie(id) && !is_user_alive(id))
player++
}
return player
}
zombieskilled()
{
new player
for(new id = 1; id <= get_maxplayers(); id++)
{
if(is_user_connected(id) && zp_get_user_zombie(id) && !is_user_alive(id))
player++
}
return player
}
deadplayers()
{
new player
for(new id = 1; id <= get_maxplayers(); id++)
{
if(is_user_connected(id) && !is_user_alive(id))
player++
}
return player
}
spectators()
{
new player
static idTeam, sTeam[16];
for(new id = 1; id <= get_maxplayers(); id++)
{
idTeam = get_user_team(id, sTeam, charsmax(sTeam));
if(is_user_connected(id) && idTeam == 3)
player++
}
return player
}
totalplayers()
{
new player
for(new id = 1; id <= get_maxplayers(); id++)
{
if(is_user_connected(id))
player++
}
return player
}
Последнее редактирование: