Проверенный
Участник
Пользователь
- Сообщения
- 263
- Реакции
- 335
- Помог
- 4 раз(а)
Ситуация в следующем. Надоело мне просить кого-то и вечно ждать готового решения, вот и понял что пора мне чутка проникнуться в тему скриптинга. Свои знания оцениваю на уровне табуретки) Но по тихой просматриваю чужие коды и работы, пытаюсь понять логику действий и т.п.
Спустя время понял, что бы понять лучше, нужно чё-то писать, а т.к. опыта совсем нет, то писать нужно минимально простое для начала. Вот и написал всеми знакомый плагин ResetScore, коих в инете уже вагон и тележка. Прошу высказываться максимально придирчиво, что бы вот прям во все ворота вылюбить этот плагин. Ибо только так пойму чё да как. И желательно с практическими и развёрнутыми примерами (ибо теорию я никогда не понимал, а если с практикой вместе, то да, что-то понимаю )
Спустя время понял, что бы понять лучше, нужно чё-то писать, а т.к. опыта совсем нет, то писать нужно минимально простое для начала. Вот и написал всеми знакомый плагин ResetScore, коих в инете уже вагон и тележка. Прошу высказываться максимально придирчиво, что бы вот прям во все ворота вылюбить этот плагин. Ибо только так пойму чё да как. И желательно с практическими и развёрнутыми примерами (ибо теорию я никогда не понимал, а если с практикой вместе, то да, что-то понимаю )
PHP:
#include <amxmodx>
#include <reapi>
#define PREFIX_INFO "^1[^4SCORE^1]" // Префикс сообщений
#define CHECK_DIFF // Проверка на счёт (Если убийств > чем смертей, то счёт не сбросится)
#define TEXT_INFO // Сообщение о успешном сбросе счёта
#define SOUND_INFO // Звуковое оповещение о успешном сбросе счёта
new g_Round_counter[33]
public plugin_init()
{
register_plugin("RS", "0.1", "dev-cs.ru")
register_event("HLTV", "RoundStart", "a", "1=0", "2=0")
register_event("TextMsg", "Event_NewGame", "a", "2=#Game_will_restart_in", "2=#Game_Commencing")
register_clcmd("say /rs", "resetscore")
register_clcmd("say_team /rs", "resetscore")
}
public Event_NewGame()
{
arrayset(g_Round_counter, 0, 33)
}
public RoundStart()
{
arrayset(g_Round_counter, 0, 33)
}
public client_connect(iPlayerId)
{
g_Round_counter[iPlayerId]=0
}
public resetscore(iPlayerId)
{
if(is_user_connected(iPlayerId))
if(g_Round_counter[iPlayerId]!=0)
{
client_print_color(iPlayerId, print_chat, "%s Доступно только 1 раз в раунд!", PREFIX_INFO)
return PLUGIN_HANDLED
}
new deaths; deaths = get_user_deaths(iPlayerId)
new frags; frags = get_user_frags(iPlayerId)
#if defined CHECK_DIFF
if(is_user_alive(iPlayerId) && frags<=deaths)
#else
if(is_user_alive(iPlayerId))
#endif
{
set_entvar(iPlayerId, var_frags, 0.0)
set_member(iPlayerId, m_iDeaths, 0)
message_begin(MSG_ALL, 85)
write_byte(iPlayerId)
write_short(0)
write_short(0)
write_short(0)
write_short(0)
message_end()
#if defined TEXT_INFO
client_print_color(iPlayerId, print_chat, "%s Ваш счёт успешно сброшен", PREFIX_INFO)
#endif
#if defined SOUND_INFO
client_cmd(iPlayerId, "spk fvox/blip.wav")
#endif
g_Round_counter[iPlayerId]++
}
#if defined CHECK_DIFF
else if(is_user_alive(iPlayerId) && frags>deaths)
{
client_print_color(iPlayerId, print_chat, "%s Доступно только когда смертей больше чем фрагов.", PREFIX_INFO)
}
#endif
return PLUGIN_HANDLED
}
Вложения
-
2.2 KB Просмотры: 19