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

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

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

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

> Информационная доска

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

1. Во время создания новой темы аккуратно оформляйте её, не допускайте грамматических ошибок.
2. Описывая проблему старайтесь, как можно больше рассказать о ней, а так же о действиях с сервером после которых она возникла, по возможности подкрепите информацию логами.
3. Если вопрос касается проблемы в работе сервера, то обязательно прикрепляйте список плагинов (введите в консоли сервера: meta list и amxx plugins), настройки server.cfg, логи. Так же указывайте операционную систему, версию HLDS (введите к консоли сервера: version) и где хостится сервер.

Длинную информацию скрывайте под спойлер.

Ишю плагин ВАМПИР

, Нужна помощь
technique88
сообщение 24.9.2020, 16:43
Сообщение #1
Стаж: 8 лет 7 месяцев

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

Ребята всем привет!
Помогите пожалуйста, не могу найти простенький плагин вампир, который за убийство дает заданное колличество HP
Плагин нужен для CSDM FFA, желательно чтобы не чего лишнего, и возможность указывать кол-во хп которое будет получать игрок
Без всяких подсвечиваний экрана и прочих эфектов
Просто функия выдачи HP
ПОМОГИТЕ ПОЖАЛУЙСТА(
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя adva
сообщение 24.9.2020, 20:16
Сообщение #2


Иконка группы

Стаж: 13 лет

Сообщений: 2543
Благодарностей: 1676
Полезность: 819

Меценат Меценат

technique88, Код:
#include <amxmodx>
#include <reapi>

#define BONUS_NORMAL 10.0
#define BONUS_HEAD 20.0
#define MAX_HEALTH 100.0

new g_MaxPlayers, g_HudSync;

public plugin_init() {
register_plugin("AMX Vampire", "0.1", "F@nt0M");

RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed", true);

g_HudSync = CreateHudSyncObj();
g_MaxPlayers = get_maxplayers();
}

public CBasePlayer_Killed(victim, attacker) {
if (victim == attacker || !(1 <= attacker <= g_MaxPlayers) || !is_user_alive(attacker)) {
return HC_CONTINUE;
}

new Float:oldHP = get_entvar(attacker, var_health);
new Float:newHP = floatclamp(oldHP + (get_member(victim, m_LastHitGroup) == HITGROUP_HEAD ? BONUS_HEAD : BONUS_NORMAL), 0.0, MAX_HEALTH);
new Float:fDiff = newHP - oldHP

if(fDiff) {
set_entvar(attacker, var_health, newHP);
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1);
ShowSyncHudMsg(attacker, g_HudSync, "+%.0f HP", fDiff);
}

return HC_CONTINUE;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя adva
сообщение 24.9.2020, 21:51
Сообщение #3


Иконка группы

Стаж: 13 лет

Сообщений: 2543
Благодарностей: 1676
Полезность: 819

Меценат Меценат

закройте тему, мой второй пост идеально подходит под задачи ТС. плагин найден.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 24.9.2020, 22:25
Сообщение #4


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

Цитата(adva @ 24.9.2020, 22:51) *
закройте тему, мой второй пост идеально подходит под задачи ТС. плагин найден.

Как и те, что лежат в гугле по первым ссылкам)) Но, как я написал ранее, а сообщение было скрыто по каким-то причинам - искали неугомоновкий, а там как бы нету reapi.

ps.gif И харош уже сообщения мои дёргать.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
technique88
сообщение 25.9.2020, 9:14
Сообщение #5
Стаж: 8 лет 7 месяцев

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

Может надо кому, скальпель отредачил код


Код:
#include <amxmodx>
#include <fun>

new pMaxHP, pAddHP, pHsAddHP, pOnlyAdmins;
new AddHP, HsAddHP, MaxHP, oAdmins;
new g_HudSyncMsg;
new killer_HP, killerID;
//new g_ScreenMsg;

new g_iAdmin[33];

public plugin_init()
{
#define Version "1.3"
register_plugin("Lite Vampire + Fade", Version, "neygomon");
register_cvar("lv_neygomon", Version, FCVAR_SERVER | FCVAR_SPONLY)

register_event("DeathMsg", "eDeathMsg", "a", "1>0");
//g_ScreenMsg = get_user_msgid("ScreenFade");

pMaxHP = register_cvar("lv_maxhp", "100"); // Максимум HP
pAddHP = register_cvar("lv_addhp", "10"); // Добавление за убийство в тело
pHsAddHP = register_cvar("lv_hsaddhp", "15"); // Добавление за убийство в лицо :D
pOnlyAdmins = register_cvar("lv_oadmins", "0"); // Все функции плагина только для админов

g_HudSyncMsg = CreateHudSyncObj();
//g_ScreenMsg = get_user_msgid("ScreenFade");

set_task(1.5, "Load_Cfg");
}

public Load_Cfg()
{
AddHP = get_pcvar_num(pAddHP);
HsAddHP = get_pcvar_num(pHsAddHP);
MaxHP = get_pcvar_num(pMaxHP);
oAdmins = get_pcvar_num(pOnlyAdmins);
}

public client_putinserver(id)
{
if(oAdmins)
{
if(get_user_flags(id) & ADMIN_MENU) g_iAdmin[id] = 1;
else g_iAdmin[id] = 0;
}
}

public eDeathMsg()
{
if(((killerID = read_data(1)) == read_data(2)) || (oAdmins && !g_iAdmin[killerID]))
return;
killer_HP = get_user_health(killerID);
static TempHP; TempHP = (read_data(3) == 1) ? HsAddHP : AddHP;
set_user_health(killerID, ((killer_HP += TempHP) > MaxHP) ? MaxHP : killer_HP);
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1);
ShowSyncHudMsg(killerID, g_HudSyncMsg, "Добавлено +%d HP", TempHP);

/*static id;
if((id = read_data(1)) == read_data(2))
return;

message_begin(MSG_ONE, g_ScreenMsg, {0, 0, 0}, id);
write_short(1<<10);
write_short(1<<10);
write_short(0x0000);
write_byte(0);
write_byte(0); // R
write_byte(200); // G
write_byte(75); // B
message_end(); */
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
technique88
сообщение 25.9.2020, 10:35
Сообщение #6
Стаж: 8 лет 7 месяцев

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

Версия я так понял без Screen Fide?
Более раняя!
Может проще всего ставить ее?
Ведь по сути должна только ХП выдавать и все, или я ошибаюсь?(
Подправьте пожалуйста этот код если в нем что то лишнее, если все ок и так, тогда ставлю эту версию

Cкрытый текст
Код:
/*
neygomon created ^_^ | http://www.neugomon.ru
*/

#include <amxmodx>
#include <fun>

new pMaxHP, pAddHP, pHsAddHP, pOnlyAdmins;
new AddHP, HsAddHP, MaxHP, oAdmins;
new g_HudSyncMsg;
new killer_HP, killerID;

new g_iAdmin[33];

public plugin_init()
{
#define Version "1.2"
register_plugin("Lite Vampire", Version, "neygomon");
register_cvar("lv_neygomon", Version, FCVAR_SERVER | FCVAR_SPONLY)

register_event("DeathMsg", "eDeathMsg", "a", "1>0");

pMaxHP = register_cvar("lv_maxhp", "100"); // Максимум HP
pAddHP = register_cvar("lv_addhp", "20"); // Добавление за убийство в тело
pHsAddHP = register_cvar("lv_hsaddhp", "50"); // Добавление за убийство в лицо :D
pOnlyAdmins = register_cvar("lv_oadmins", "0"); // Все функции плагина только для админов

g_HudSyncMsg = CreateHudSyncObj();

set_task(1.5, "Load_Cfg");
}

public Load_Cfg()
{
AddHP = get_pcvar_num(pAddHP);
HsAddHP = get_pcvar_num(pHsAddHP);
MaxHP = get_pcvar_num(pMaxHP);
oAdmins = get_pcvar_num(pOnlyAdmins);
}

public client_putinserver(id)
{
if(oAdmins)
{
if(get_user_flags(id) & ADMIN_MENU) g_iAdmin[id] = 1;
else g_iAdmin[id] = 0;
}
}

public eDeathMsg()
{
if(((killerID = read_data(1)) == read_data(2)) || (oAdmins && !g_iAdmin[killerID]))
return;
killer_HP = get_user_health(killerID);
static TempHP; TempHP = (read_data(3) == 1) ? HsAddHP : AddHP;
set_user_health(killerID, ((killer_HP += TempHP) > MaxHP) ? MaxHP : killer_HP);
set_hudmessage(255, 0, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1);
ShowSyncHudMsg(killerID, g_HudSyncMsg, "Добавлено +%d HP", TempHP);
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя unit
сообщение 25.9.2020, 12:01
Сообщение #7


Стаж: 10 лет

Сообщений: 821
Благодарностей: 280
Полезность: 300

technique88, тебе во 2 посте дали нормальный код, где есть всё, что ты просил и ничего лишнего. Используй его и не забивай себе голову всякими неугомонами.

Отредактировал: unit, - 25.9.2020, 12:02
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 25.9.2020, 12:17
Сообщение #8


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

Цитата(unit @ 25.9.2020, 13:01) *
technique88, тебе во 2 посте дали нормальный код, где есть всё, что ты просил и ничего лишнего. Используй его и не забивай себе голову всякими неугомонами.

Ты разницу в коде видишь? С исп. Реапи и без его использования)

Он сам то (автор) собраться не может, что ему нужно, а что нет.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
technique88
сообщение 25.9.2020, 13:00
Сообщение #9
Стаж: 8 лет 7 месяцев

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

Цитата(ThePhoenix @ 25.9.2020, 12:17) *
Ты разницу в коде видишь? С исп. Реапи и без его использования)

Он сам то (автор) собраться не может, что ему нужно, а что нет.

Выбрал я для себя код, едиственное задал коректный вопрос, подходит ли он для задач или нет, есть в нем что то лишнее типо screen fide или можно смело ставить

Cкрытый текст
Код
/*
    neygomon created ^_^ | http://www.neugomon.ru
*/

#include <amxmodx>
#include <fun>

new pMaxHP, pAddHP, pHsAddHP, pOnlyAdmins;
new AddHP, HsAddHP, MaxHP, oAdmins;
new g_HudSyncMsg;
new killer_HP, killerID;

new g_iAdmin[33];

public plugin_init()
{
#define Version "1.2"
    register_plugin("Lite Vampire", Version, "neygomon");
    register_cvar("lv_neygomon", Version, FCVAR_SERVER | FCVAR_SPONLY)
    
    register_event("DeathMsg", "eDeathMsg", "a", "1>0");
    
    pMaxHP         = register_cvar("lv_maxhp", "100");    // Максимум HP
    pAddHP         = register_cvar("lv_addhp", "20");    // Добавление за убийство в тело
    pHsAddHP    = register_cvar("lv_hsaddhp", "50");    // Добавление за убийство в лицо :D
    pOnlyAdmins    = register_cvar("lv_oadmins", "0");    // Все функции плагина только для админов
    
    g_HudSyncMsg = CreateHudSyncObj();
    
    set_task(1.5, "Load_Cfg");
}

public Load_Cfg()
{
    AddHP     = get_pcvar_num(pAddHP);
    HsAddHP = get_pcvar_num(pHsAddHP);
    MaxHP     = get_pcvar_num(pMaxHP);
    oAdmins    = get_pcvar_num(pOnlyAdmins);
}    

public client_putinserver(id)
{
    if(oAdmins)
    {
        if(get_user_flags(id) & ADMIN_MENU) g_iAdmin[id] = 1;
        else g_iAdmin[id] = 0;
    }
}
    
public eDeathMsg()
{
    if(((killerID = read_data(1)) == read_data(2)) || (oAdmins && !g_iAdmin[killerID]))
        return;
    killer_HP = get_user_health(killerID);
    static TempHP; TempHP = (read_data(3) == 1) ? HsAddHP : AddHP;
    set_user_health(killerID, ((killer_HP += TempHP) > MaxHP) ? MaxHP : killer_HP);
    set_hudmessage(255, 0, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1);
    ShowSyncHudMsg(killerID, g_HudSyncMsg, "Добавлено +%d HP", TempHP);
}


Отредактировал: technique88, - 25.9.2020, 13:00
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
technique88
сообщение 25.9.2020, 13:21
Сообщение #10
Стаж: 8 лет 7 месяцев

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

Цитата(technique88 @ 25.9.2020, 13:00) *
Выбрал я для себя код, едиственное задал коректный вопрос, подходит ли он для задач или нет, есть в нем что то лишнее типо screen fide или можно смело ставить

Cкрытый текст
Код
/*
    neygomon created ^_^ | http://www.neugomon.ru
*/

#include <amxmodx>
#include <fun>

new pMaxHP, pAddHP, pHsAddHP, pOnlyAdmins;
new AddHP, HsAddHP, MaxHP, oAdmins;
new g_HudSyncMsg;
new killer_HP, killerID;

new g_iAdmin[33];

public plugin_init()
{
#define Version "1.2"
    register_plugin("Lite Vampire", Version, "neygomon");
    register_cvar("lv_neygomon", Version, FCVAR_SERVER | FCVAR_SPONLY)
    
    register_event("DeathMsg", "eDeathMsg", "a", "1>0");
    
    pMaxHP         = register_cvar("lv_maxhp", "100");    // Максимум HP
    pAddHP         = register_cvar("lv_addhp", "20");    // Добавление за убийство в тело
    pHsAddHP    = register_cvar("lv_hsaddhp", "50");    // Добавление за убийство в лицо :D
    pOnlyAdmins    = register_cvar("lv_oadmins", "0");    // Все функции плагина только для админов
    
    g_HudSyncMsg = CreateHudSyncObj();
    
    set_task(1.5, "Load_Cfg");
}

public Load_Cfg()
{
    AddHP     = get_pcvar_num(pAddHP);
    HsAddHP = get_pcvar_num(pHsAddHP);
    MaxHP     = get_pcvar_num(pMaxHP);
    oAdmins    = get_pcvar_num(pOnlyAdmins);
}    

public client_putinserver(id)
{
    if(oAdmins)
    {
        if(get_user_flags(id) & ADMIN_MENU) g_iAdmin[id] = 1;
        else g_iAdmin[id] = 0;
    }
}
    
public eDeathMsg()
{
    if(((killerID = read_data(1)) == read_data(2)) || (oAdmins && !g_iAdmin[killerID]))
        return;
    killer_HP = get_user_health(killerID);
    static TempHP; TempHP = (read_data(3) == 1) ? HsAddHP : AddHP;
    set_user_health(killerID, ((killer_HP += TempHP) > MaxHP) ? MaxHP : killer_HP);
    set_hudmessage(255, 0, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1);
    ShowSyncHudMsg(killerID, g_HudSyncMsg, "Добавлено +%d HP", TempHP);
}

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