VIP

pr0.JeR

Пользователь
Регистрация
10 Июл 2017
Сообщения
12
Симпатии
0
Пол
Мужской
#1
Добрый день, решил самостоятельно написать VIP плагин. Поставил задачу что у вип игроков должна выдаваться броня, пассатижи если это мент, гранаты всех видов, надпись вип в табе и дамагер.

PHP:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <hamsandwich>

#define is_player_valid(%1) (1 <= %1 <= 32)

new mapname[32]
new Hud

const VIP_FLAG = ADMIN_LEVEL_E

public plugin_init()
{
    register_event("ResetHUD", "ResetHUD", "be");
    register_event("Damage","damage_message","b","2!0","3=0","4!0");
    
    get_mapname(mapname, charsmax(mapname))
    if(containi(mapname, "awp_") != -1)
    {
        return
    }
    else
    {
        register_plugin("VIP Lite", "1.0", "pr0.JeR");
        RegisterHam(Ham_Spawn, "player", "vip", 1);
    }
    Hud = CreateHudSyncObj();
}

public ResetHUD(id)                                // VIP при TAB
{
    set_task(0.5, "VIP", id + 6910)                       
}

public vip(id)                                    // Выдача грен
{
    if(is_user_alive(id) && get_user_flags(id) & VIP_FLAG)
    {
        
        give_item(id,"weapon_hegrenade")
        give_item(id,"weapon_flashbang")
        give_item(id,"weapon_flashbang")
        give_item(id,"weapon_smokegrenade")
        
        
        give_item(id,"item_assaultsuit")
        give_item(id, "item_thighpack")
        set_user_armor(id, 100)
    }

    return PLUGIN_HANDLED;
}

public damage_message(id)                    // Показ HP при попадании.
{
        new attacker = get_user_attacker(id);
        if(!is_player_valid(attacker) || !(get_user_flags(attacker) & VIP_FLAG))
        {
                return PLUGIN_CONTINUE;
        }
        new damag = read_data(2);
        if(cs_get_user_team(id) == CS_TEAM_T)
        {
                set_hudmessage(255, 0, 0, -1.0, 0.55, 0, 0.1, 1.2, 0.1, 0.1, -1);
        }
        if(cs_get_user_team(id) == CS_TEAM_CT)
        {
                set_hudmessage(0, 0, 255, -1.0, 0.55, 0, 0.1, 1.2, 0.1, 0.1, -1);
        }
        ShowSyncHudMsg(attacker,Hud,"%i",damag);
        return PLUGIN_CONTINUE;
}
и по факту у меня чет ни че не рабит, не надо обзываться рукожопом, я только учусь, уроков не нашёл.
Может быть можно как то проще все это дело сделать на REAPI? Компилю на ReAMX 1.8.3 билд 7.
 

Phantom

Пользователь
Регистрация
8 Июн 2017
Сообщения
139
Симпатии
64
#2
Занеси это:
PHP:
register_event("Damage","damage_message","b","2!0","3=0","4!0");
сюда:
PHP:
else
{
    register_plugin("VIP Lite", "1.0", "pr0.JeR");
    RegisterHam(Ham_Spawn, "player", "vip", 1);
}
Убирай это:
PHP:
register_event("ResetHUD", "ResetHUD", "be");

public ResetHUD(id)                                // VIP при TAB
{
    set_task(0.5, "VIP", id + 6910)                     
}
Добавляй это:
PHP:
register_message(get_user_msgid("ScoreAttrib"), "msgScoreAttrib");

public msgScoreAttrib(const MsgId, const MsgType, const MsgDest)
{
    if(get_msg_arg_int(2) || !(get_user_flags(get_msg_arg_int(1)) & VIP_FLAG))
        return
    set_msg_arg_int(2, ARG_BYTE, (1<<2));
}
Это у нас вывод "VIP" в scoreboard. Проверь на работоспособность с этими правками
 

pr0.JeR

Пользователь
Регистрация
10 Июл 2017
Сообщения
12
Симпатии
0
Пол
Мужской
#3
Phantom, Работает, единственное что не смог проверить это надпись вип. Подожду большего онлайна и проверю.