Пользователь
- Сообщения
- 3
- Реакции
- 0
- Ошибка
-
damager.sma(36) : warning 217: loose indentation
damager.sma(41) : error 017: undefined symbol "LoadDamagerSettings"
damager.sma(81) : error 017: undefined symbol "g_event_info"
damager.sma(81) : warning 215: expression has no effect
damager.sma(81) : error 001: expected token: ";", but found "]"
damager.sma(81) : error 029: invalid expression, assumed zero
damager.sma(81) : fatal error 107: too many error messages on one line
- Компилятор
- Локальный
- Amx Mod X
- 1.9.0
- Исходный код
-
#include <amxmodx>
#include <reapi>
#include <nvault>
new const PLUGIN[] = "Damager"
new const VERSION[] = "0.4"
new const AUTHOR[] = "Prayer & slutter666"
new g_DamagerEnabled[MAX_PLAYERS]
new g_DamagerColor[MAX_PLAYERS][3]
new g_HudSync
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /dm", "cmd_ToggleDamager")
register_clcmd("say_team /dm", "cmd_ToggleDamager")
register_clcmd("say /color", "cmd_ColorMenu")
register_clcmd("say_team /color", "cmd_ColorMenu")
// Регистрируем хуки для CBasePlayer_TraceAttack и CBasePlayer_TakeDamage
RegisterHookChain(RG_CBasePlayer_TraceAttack, "@CBasePlayer_TraceAttack_Post", true);
RegisterHookChain(RG_CBasePlayer_TakeDamage, "@CBasePlayer_TakeDamage_Post", true);
g_HudSync = CreateHudSyncObj()
LoadDamagerSettings()
for (new i = 0; i < MAX_PLAYERS; i++)
{
if (g_DamagerColor[i][0] == 0 && g_DamagerColor[i][1] == 0 && g_DamagerColor[i][2] == 0)
{
g_DamagerColor[i][0] = 255; // Красный
g_DamagerColor[i][1] = 255; // Зеленый
g_DamagerColor[i][2] = 255; // Синий
}
}
}
public CBasePlayer_TraceAttack_Post(id)
{
if (!g_DamagerEnabled[id])
{
return PLUGIN_HANDLED;
}
new attacker = get_user_attacker(id);
new damage = read_data(10);
if (is_user_connected(attacker))
{
set_hudmessage(g_DamagerColor[attacker][0], g_DamagerColor[attacker][1], g_DamagerColor[attacker][2], -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1);
ShowSyncHudMsg(attacker, g_HudSync, "%i", damage);
}
return PLUGIN_HANDLED;
}
public CBasePlayer_TakeDamage_Post(id)
{
// Проверяем, не включен ли дамагер для игрока
if (!g_DamagerEnabled[id])
{
return PLUGIN_HANDLED;
}
// Получаем данные о повреждении
new attacker = g_event_info[1];
new damage = g_event_info[2];
// Проверяем, является ли атакующий игроком
if (is_user_connected(attacker))
{
// Вывод сообщения для атакуемого игрока
set_hudmessage(g_DamagerColor[id][0], g_DamagerColor[id][1], g_DamagerColor[id][2], 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1);
ShowSyncHudMsg(id, g_HudSync, "%i", damage);
// Вывод сообщения для атакующего игрока
set_hudmessage(g_DamagerColor[attacker][0], g_DamagerColor[attacker][1], g_DamagerColor[attacker][2], -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1);
ShowSyncHudMsg(attacker, g_HudSync, "%i", damage);
}
return PLUGIN_HANDLED;
}
public client_putinserver()
{
LoadDamagerColor(id)
}
public cmd_ToggleDamager(id)
{
g_DamagerEnabled[id] = !g_DamagerEnabled[id] // Переключение состояния дамагера для игрока
if (g_DamagerEnabled[id])
{
client_print(id, print_chat, "Информирование урона - включено")
}
else
{
client_print(id, print_chat, "Информирование урона - отключено")
}
}
public cmd_ColorMenu(id)
{
new menu = menu_create("Выберите цвет дамагера", "cmd_SetColor")
menu_additem(menu, "Красный", "1")
menu_additem(menu, "Зеленый", "2")
menu_additem(menu, "Синий", "3")
menu_additem(menu, "Желтый", "4")
menu_additem(menu, "Фиолетовый", "5")
menu_additem(menu, "Циан", "6")
menu_display(id, menu)
}
public cmd_SetColor(id, const menu_id, const menu_item)
{
g_Color[id][0] = 0;
g_Color[id][1] = 0;
g_Color[id][2] = 0;
switch (menu_item)
{
case 0: // Красный
g_Color[id][0] = 255;
case 1: // Зеленый
g_Color[id][1] = 255;
case 2: // Синий
g_Color[id][2] = 255;
case 3: // Желтый
{
g_Color[id][0] = 255;
g_Color[id][1] = 255;
}
case 4: // Фиолетовый
{
g_Color[id][0] = 128;
g_Color[id][2] = 128;
}
case 5: // Циан
{
g_Color[id][1] = 255;
g_Color[id][2] = 255;
}
}
client_print(id, print_chat, "<ENMITY> Цвет дамагера изменен на " + menu_item_name[menu_item] + "!");
SaveDamagerColor(id, g_DamagerColor[id]);
}
public SaveDamagerSettings(id, enabled)
{
new nvault_handle = nvault_open("damagers");
nvault_set_bool(nvault_handle, "enabled" + id, enabled);
nvault_close(nvault_handle);
}
public SaveDamagerColor(id, color[3])
{
new nvault_handle = nvault_open("damagers");
nvault_set_int(nvault_handle, "color_r" + id, color[0]);
nvault_set_int(nvault_handle, "color_g" + id, color[1]);
nvault_set_int(nvault_handle, "color_b" + id, color[2]);
nvault_close(nvault_handle);
}
public LoadDamagerColor(id)
{
new nvault_handle = nvault_open("damagers");
if (nvault_exists(nvault_handle, "color_r" + id))
{
g_DamagerColor[id][0] = nvault_get_int(nvault_handle, "color_r" + id);
g_DamagerColor[id][1] = nvault_get_int(nvault_handle, "color_g" + id);
g_DamagerColor[id][2] = nvault_get_int(nvault_handle, "color_b" + id);
}
nvault_close(nvault_handle);
}
'.'
знающие люди, вдолбите твердолобому человеку
что здесь не так?
2 часа колдуюсь :D
знающие люди, вдолбите твердолобому человеку
что здесь не так?
2 часа колдуюсь :D
В этой теме было размещено решение! Перейти к решению.