OciXCrom's Custom VIP Extras

Неодобрените плъгини биват прехвърляни в този раздел. Не препоръчваме да ги ползвате, тъй като най-вероятно съдържат бъгове или същестуват такива плъгини, които вършат по-добра работа от тези тук.
Аватар
aBorisoff
Извън линия
Потребител
Потребител
Мнения: 14
Регистриран на: 15 Апр 2017, 15:36

Re: OciXCrom's Custom VIP Extras

Мнение от aBorisoff » 26 Апр 2017, 16:35

Компилирах го локално, а относно сървъра - хоства се под Linux.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Re: OciXCrom's Custom VIP Extras

Мнение от OciXCrom » 26 Апр 2017, 16:37

AMXX версия? Ползваш ли ReHLDS?

Аватар
aBorisoff
Извън линия
Потребител
Потребител
Мнения: 14
Регистриран на: 15 Апр 2017, 15:36

Re: OciXCrom's Custom VIP Extras

Мнение от aBorisoff » 26 Апр 2017, 16:39

Amxx - 1.8.2
На ReHLDS.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Re: OciXCrom's Custom VIP Extras

Мнение от OciXCrom » 26 Апр 2017, 16:47

Явно библиотеката за премахване оръжия не работи на ReHLDS. Опитай по този начин (ползвал съм функциите на rehlds):

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <reapi>

#define PLUGIN_NAME "VIP Extras"
#define PLUGIN_VERSION "2.2b"
#define PLUGIN_AUTHOR "OciXCrom"

#define MODELS_PATH "models/player"
#define SOUND_MENU "items/gunpickup2.wav"

new flag_vip, flag_skin, wait, maxhealth, maxmoney, menu_enabled, menu_maxuses, menu_spawn
new get_health, get_armor, health_amount, armor_amount, get_deagle, he_amount, flash_amount, smoke_amount, get_transparency, transparency_amount
new get_m4a1, get_ak47, get_awp, get_g3sg1, get_sg550, menu_m4a1, menu_ak47, menu_awp, menu_g3sg1, menu_sg550
new menu_health, menu_armor, menu_deagle, menu_transparency, menu_speed, menu_gravity, menu_moredamage
new get_skin_t, get_skin_ct, skin_name_t, skin_name_ct, get_speed, speed_amount, get_gravity, gravity_amount, get_moredamage, moredamage_multiplier
new killbonus_health_normal, killbonus_health_headshot, killbonus_money_normal, killbonus_money_headshot
new skin_t[32], skin_ct[32], menu_uses[33]
new bool:user_moredamage[33]

new bool:skin_t_active
new bool:skin_ct_active

new const szPrefix[] = "^4[^3VIP Extras^4]"

enum Color
{
    NORMAL = 1, // clients scr_concolor cvar color
    GREEN, // Green Color
    TEAM_COLOR, // Red, grey, blue
    GREY, // grey
    RED, // Red
    BLUE, // Blue
}

new TeamNames[][] = 
{
    "",
    "TERRORIST",
    "CT",
    "SPECTATOR"
}

public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
    register_cvar("CustomVIPExtras", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
    
    RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
    RegisterHam(Ham_TakeDamage, "player", "player_damage")
    register_event("DeathMsg", "player_killed", "a")
    register_event("CurWeapon", "change_weapon", "be", "1=1")
    
    register_clcmd("say /vm", "vip_menu")
    register_clcmd("say_team /vm", "vip_menu")
    register_clcmd("say /vipmenu", "vip_menu")
    register_clcmd("say_team /vipmenu", "vip_menu")
    
    wait = register_cvar("ve_wait", "0.5")
    flag_vip = register_cvar("ve_vipflag", "o")
    flag_skin = register_cvar("ve_skinflag", "b")
    menu_enabled = register_cvar("ve_menu_enabled", "0")
    menu_maxuses = register_cvar("ve_menu_maxuses", "1")
    menu_spawn = register_cvar("ve_menu_spawn", "1")
    
    get_health = register_cvar("ve_get_health", "1")
    get_armor = register_cvar("ve_get_armor", "1")
    get_deagle = register_cvar("ve_get_deagle", "1")
    get_transparency = register_cvar("ve_get_transparency", "0")
    get_speed = register_cvar("ve_get_speed", "0")
    get_gravity = register_cvar("ve_get_gravity", "0")
    get_m4a1 = register_cvar("ve_get_m4a1", "0")
    get_ak47 = register_cvar("ve_get_ak47", "0")
    get_awp = register_cvar("ve_get_awp", "0")
    get_g3sg1 = register_cvar("ve_get_g3sg1", "0")
    get_sg550 = register_cvar("ve_get_sg550", "0")
    get_moredamage = register_cvar("ve_get_moredamage", "0")
    
    menu_health = register_cvar("ve_menu_health", "1")
    menu_armor = register_cvar("ve_menu_armor", "1")
    menu_deagle = register_cvar("ve_menu_deagle", "1")
    menu_transparency = register_cvar("ve_menu_transparency", "1")
    menu_speed = register_cvar("ve_menu_speed", "1")
    menu_gravity = register_cvar("ve_menu_gravity", "1")
    menu_m4a1 = register_cvar("ve_menu_m4a1", "1")
    menu_ak47 = register_cvar("ve_menu_ak47", "1")
    menu_awp = register_cvar("ve_menu_awp", "1")
    menu_g3sg1 = register_cvar("ve_menu_g3sg1", "1")
    menu_sg550 = register_cvar("ve_menu_sg550", "1")
    menu_moredamage = register_cvar("ve_menu_moredamage", "1")
    
    health_amount = register_cvar("ve_health_amount", "150")
    armor_amount = register_cvar("ve_armor_amount", "100")
    he_amount = register_cvar("ve_he_amount", "1")
    flash_amount = register_cvar("ve_flash_amount", "2")
    smoke_amount = register_cvar("ve_smoke_amount", "1")
    transparency_amount = register_cvar("ve_transparency_amount", "75")
    speed_amount = register_cvar("ve_speed_amount", "300.0")
    gravity_amount = register_cvar("ve_gravity_amount", "0.5")
    moredamage_multiplier = register_cvar("ve_moredamage_multiplier", "2")
    
    killbonus_health_normal = register_cvar("ve_killbonus_health_normal", "5")
    killbonus_health_headshot = register_cvar("ve_killbonus_health_headshot", "10")
    killbonus_money_normal = register_cvar("ve_killbonus_money_normal", "300")
    killbonus_money_headshot = register_cvar("ve_killbonus_money_headshot", "500")
    maxhealth = register_cvar("ve_max_health", "200")
    maxmoney = register_cvar("ve_max_money", "16000")
}

public change_weapon(id)
    if(user_has_flag(id, flag_vip) && get_pcvar_num(get_speed) == 1) set_user_maxspeed(id, get_pcvar_float(speed_amount))

public player_spawn(id)
{
    if(is_user_alive(id))
    {
        menu_uses[id] = 0
        user_moredamage[id] = false
        cs_reset_user_model(id)
        set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
        
        if(get_pcvar_num(menu_enabled) > 0 && get_pcvar_num(menu_spawn) == 1)
            vip_menu(id)
    }
    
    set_task(get_pcvar_float(wait), "vip_set", id)
}

public vip_set(id)
{
    if(!is_user_alive(id))
        return
    
    if(user_has_flag(id, flag_skin))
    {
        switch(get_user_team(id))
        {
            case 1: if(skin_t_active) cs_set_user_model(id, skin_t)
            case 2: if(skin_ct_active) cs_set_user_model(id, skin_ct)
        }
    }
    
    if(get_pcvar_num(menu_enabled) == 1)
        return
    
    if(user_has_flag(id, flag_vip))
    {
        if(get_pcvar_num(get_health) == 1)
            vip_equip(id, 0)
            
        if(get_pcvar_num(get_armor) == 1)
            vip_equip(id, 1)
        
        if(get_pcvar_num(get_deagle) == 1)
            vip_equip(id, 2)
            
        new he = get_pcvar_num(he_amount)
        new flash = get_pcvar_num(flash_amount)
        new smoke = get_pcvar_num(smoke_amount)
        
        if(he > 0)
            vip_equip(id, 3)
            
        if(flash > 0)
            vip_equip(id, 4)
        
        if(smoke > 0)
            vip_equip(id, 5)
        
        if(get_pcvar_num(get_transparency) == 1)
            vip_equip(id, 6)
        
        if(get_pcvar_num(get_speed) == 1)
            vip_equip(id, 7)
            
        if(get_pcvar_num(get_gravity) == 1)
            vip_equip(id, 8)
        
        if(get_pcvar_num(get_m4a1) == 1)
            vip_equip(id, 9)
        
        if(get_pcvar_num(get_ak47) == 1)
            vip_equip(id, 10)
            
        if(get_pcvar_num(get_awp) == 1)
            vip_equip(id, 11)
            
        if(get_pcvar_num(get_g3sg1) == 1)
            vip_equip(id, 12)
        
        if(get_pcvar_num(get_sg550) == 1)
            vip_equip(id, 13)
        
        if(get_pcvar_num(get_moredamage) == 1)
            vip_equip(id, 14)
    }
}

public vip_equip(id, item)
{
    switch(item)
    {
        case 0: set_user_health(id, get_pcvar_num(health_amount))
        case 1: set_user_armor(id, get_pcvar_num(armor_amount))
        case 2:
        {
            rg_remove_items_by_slot(id, PISTOL_SLOT)
            give_item(id, "weapon_deagle")
            cs_set_user_bpammo(id, CSW_DEAGLE, 35)
        }
        case 3:
        {
            give_item(id, "weapon_hegrenade")
            cs_set_user_bpammo(id, CSW_HEGRENADE, get_pcvar_num(he_amount))
        }
        case 4:
        {
            give_item(id, "weapon_flashbang")
            cs_set_user_bpammo(id, CSW_FLASHBANG, get_pcvar_num(flash_amount))
        }
        case 5:
        {
            give_item(id, "weapon_smokegrenade")
            cs_set_user_bpammo(id, CSW_SMOKEGRENADE, get_pcvar_num(smoke_amount))
        }
        case 6: set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, get_pcvar_num(transparency_amount))
        case 7: set_user_maxspeed(id, get_pcvar_float(speed_amount))
        case 8: set_user_gravity(id, get_pcvar_float(gravity_amount))
        case 9:
        {
            rg_remove_items_by_slot(id, PRIMARY_WEAPON_SLOT)
            give_item(id, "weapon_m4a1")
            cs_set_user_bpammo(id, CSW_M4A1, 90)
        }
        case 10:
        {
            rg_remove_items_by_slot(id, PRIMARY_WEAPON_SLOT)
            give_item(id, "weapon_ak47")
            cs_set_user_bpammo(id, CSW_AK47, 90)
        }
        case 11:
        {
            rg_remove_items_by_slot(id, PRIMARY_WEAPON_SLOT)
            give_item(id, "weapon_awp")
            cs_set_user_bpammo(id, CSW_AWP, 30)
        }
        case 12:
        {
            rg_remove_items_by_slot(id, PRIMARY_WEAPON_SLOT)
            give_item(id, "weapon_g3sg1")
            cs_set_user_bpammo(id, CSW_G3SG1, 90)
        }
        case 13:
        {
            rg_remove_items_by_slot(id, PRIMARY_WEAPON_SLOT)
            give_item(id, "weapon_sg550")
            cs_set_user_bpammo(id, CSW_SG550, 90)
        }
        case 14:
            user_moredamage[id] = true
    }
}

public vip_menu(id)
{
    if(get_pcvar_num(menu_enabled) == 0)
    {
        ColorChat(id, TEAM_COLOR, "%s ^1The ^4VIP Menu ^1is currently ^3disabled^1.", szPrefix)
        return PLUGIN_HANDLED
    }
    
    if(!user_has_flag(id, flag_vip))
    {
        ColorChat(id, TEAM_COLOR, "%s ^1You have ^3no access ^1to this command.", szPrefix)
        return PLUGIN_HANDLED
    }
    
    if(!is_user_alive(id))
    {
        ColorChat(id, TEAM_COLOR, "%s ^1You need to be ^3alive^1!", szPrefix)
        return PLUGIN_HANDLED
    }
    
    if(menu_uses[id] == get_pcvar_num(menu_maxuses))
    {
        ColorChat(id, TEAM_COLOR, "%s ^1You can use the menu only ^4%i ^1time(s).", szPrefix, get_pcvar_num(menu_maxuses))
        return PLUGIN_HANDLED
    }
    
    new title[100], item[50]
    formatex(title, charsmax(title), "\yOciXCrom's \rCustom VIP Extras\d")
    
    new vipmenu = menu_create(title, "vipmenu_handler")
    
    if(get_pcvar_num(menu_health) == 1)
    {
        formatex(item, charsmax(item), "Health Points \y(+%i)", get_pcvar_num(health_amount))
        menu_additem(vipmenu, item, "0", 0)
    }
    
    if(get_pcvar_num(menu_armor) == 1)
    {
        formatex(item, charsmax(item), "Armor Points \y(+%i)", get_pcvar_num(armor_amount))
        menu_additem(vipmenu, item, "1", 0)
    }
    
    if(get_pcvar_num(menu_deagle) == 1)
    {
        formatex(item, charsmax(item), "Deagle \y(Full Ammo)")
        menu_additem(vipmenu, item, "2", 0)
    }
    
    if(get_pcvar_num(he_amount) > 0)
    {
        formatex(item, charsmax(item), "He Grenade \y(%ix)", get_pcvar_num(he_amount))
        menu_additem(vipmenu, item, "3", 0)
    }
    
    if(get_pcvar_num(flash_amount) > 0)
    {
        formatex(item, charsmax(item), "Flash Grenade \y(%ix)", get_pcvar_num(flash_amount))
        menu_additem(vipmenu, item, "4", 0)
    }
    
    if(get_pcvar_num(smoke_amount) > 0)
    {
        formatex(item, charsmax(item), "Smoke Grenade \y(%ix)", get_pcvar_num(smoke_amount))
        menu_additem(vipmenu, item, "5", 0)
    }
    
    if(get_pcvar_num(menu_transparency) == 1)
    {
        formatex(item, charsmax(item), "Transparency \y(%i%)", get_pcvar_num(transparency_amount))
        menu_additem(vipmenu, item, "6", 0)
    }
    
    if(get_pcvar_num(menu_speed) == 1)
    {
        formatex(item, charsmax(item), "Faster Speed \y(%i)", get_pcvar_num(speed_amount))
        menu_additem(vipmenu, item, "7", 0)
    }
    
    if(get_pcvar_num(menu_gravity) == 1)
    {
        formatex(item, charsmax(item), "Low Gravity \y(%f)", get_pcvar_float(gravity_amount))
        menu_additem(vipmenu, item, "8", 0)
    }
    
    if(get_pcvar_num(menu_m4a1) == 1)
    {
        formatex(item, charsmax(item), "M4A1 \y(Full Ammo)")
        menu_additem(vipmenu, item, "9", 0)
    }
    
    if(get_pcvar_num(menu_ak47) == 1)
    {
        formatex(item, charsmax(item), "AK47 \y(Full Ammo)")
        menu_additem(vipmenu, item, "10", 0)
    }
    
    if(get_pcvar_num(menu_awp) == 1)
    {
        formatex(item, charsmax(item), "AWP \y(Sniper)")
        menu_additem(vipmenu, item, "11", 0)
    }
    
    if(get_pcvar_num(menu_g3sg1) == 1)
    {
        formatex(item, charsmax(item), "G3SG1 \y(Automatic Sniper)")
        menu_additem(vipmenu, item, "12", 0)
    }
    
    if(get_pcvar_num(menu_sg550) == 1)
    {
        formatex(item, charsmax(item), "SG550 \y(Automatic Sniper)")
        menu_additem(vipmenu, item, "13", 0)
    }
    
    if(get_pcvar_num(menu_moredamage) == 1)
    {
        formatex(item, charsmax(item), "More Damage \y(%ix)", get_pcvar_num(moredamage_multiplier))
        menu_additem(vipmenu, item, "14", 0)
    }
    
    menu_setprop(vipmenu, MPROP_EXITNAME, "\rClose the Menu")
    menu_setprop(vipmenu, MPROP_BACKNAME, "\rGo to the \yPrevious \rPage")
    menu_setprop(vipmenu, MPROP_NEXTNAME, "\rGo to the \yNext \rPage")
    menu_setprop(vipmenu, MPROP_EXIT, MEXIT_ALL)
    
    menu_display(id, vipmenu, 0)
    return PLUGIN_HANDLED
}

public vipmenu_handler(id, vipmenu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(vipmenu)
        return PLUGIN_HANDLED
    }
    
    new data[6], iName[64], access, callback
    menu_item_getinfo(vipmenu, item, access, data, charsmax(data), iName, charsmax(iName), callback)

    new key = str_to_num(data)
    vip_equip(id, key)
    menu_uses[id]++
    
    ColorChat(id, TEAM_COLOR, "%s ^1You have successfully used the ^3VIP Menu^1 (^4%i^1/^4%i^1)", szPrefix, menu_uses[id], get_pcvar_num(menu_maxuses))
    emit_sound(id, CHAN_ITEM, SOUND_MENU, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
    
    menu_destroy(vipmenu)
    return PLUGIN_HANDLED
}

public player_killed()
{
    new attacker = read_data(1)
    new victim = read_data(2)
    
    if(!is_user_connected(attacker) || !is_user_connected(victim) || attacker == victim || !user_has_flag(attacker, flag_vip))
        return
    
    new headshot = read_data(3)
    
    new health = get_user_health(attacker)
    new money = cs_get_user_money(attacker)
    
    new reward_health = headshot ? get_pcvar_num(killbonus_health_headshot) : get_pcvar_num(killbonus_health_normal)
    new reward_money = headshot ? get_pcvar_num(killbonus_money_headshot) : get_pcvar_num(killbonus_money_normal)
    
    new health_max = get_pcvar_num(maxhealth)
    new money_max = get_pcvar_num(maxmoney)
    
    set_user_health(attacker, health + reward_health)
    cs_set_user_money(attacker, money + reward_money)
    
    if(get_user_health(attacker) > health_max) set_user_health(attacker, health_max)
    if(cs_get_user_money(attacker) > money_max) cs_set_user_money(attacker, money_max)
}

public player_damage(victim, inflictor, attacker, Float:damage, damage_bits)
{
    if(is_user_connected(attacker))
        if(user_moredamage[attacker] && attacker != victim)
            SetHamParamFloat(4, damage * get_pcvar_float(moredamage_multiplier))
}

public plugin_precache()
{
    get_skin_t = register_cvar("ve_get_skin_t", "0")
    get_skin_ct = register_cvar("ve_get_skin_ct", "0")
    
    skin_name_t = register_cvar("ve_skin_name_t", "vip")
    skin_name_ct = register_cvar("ve_skin_name_ct", "smith")

    skin_t_active = (get_pcvar_num(get_skin_t) == 1) ? true : false
    skin_ct_active = (get_pcvar_num(get_skin_ct) == 1) ? true : false
    
    if(skin_t_active)
    {
        new skin1[50]
        get_pcvar_string(skin_name_t, skin_t, charsmax(skin_t))
        formatex(skin1, charsmax(skin1), "%s/%s/%s.mdl", MODELS_PATH, skin_t, skin_t)
        precache_model(skin1)
    }
    
    if(skin_ct_active)
    {
        new skin2[50]
        get_pcvar_string(skin_name_ct, skin_ct, charsmax(skin_ct))
        formatex(skin2, charsmax(skin2), "%s/%s/%s.mdl", MODELS_PATH, skin_ct, skin_ct)
        precache_model(skin2)
    }
    
    precache_sound(SOUND_MENU)
}

stock user_has_flag(id, cvar)
{
    new flags[32]
    get_flags(get_user_flags(id), flags, charsmax(flags))
    
    new vip_flag[2]
    get_pcvar_string(cvar, vip_flag, charsmax(vip_flag))
    
    return (contain(flags, vip_flag) != -1) ? true : false
}

/* ======================================================================================================= */
/* ColorChat */
/* ======================================================================================================= */
ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
    if( !get_playersnum() ) return;
    
    new message[256];

    switch(type)
    {
        case NORMAL: // clients scr_concolor cvar color
        {
            message[0] = 0x01;
        }
        case GREEN: // Green
        {
            message[0] = 0x04;
        }
        default: // White, Red, Blue
        {
            message[0] = 0x03;
        }
    }

    vformat(message[1], 251, msg, 4);

    replace_all(message, 191, "!n", "^x01")
    replace_all(message, 191, "!t", "^x03")
    replace_all(message, 191, "!g", "^x04")
    
    // Make sure message is not longer than 192 character. Will crash the server.
    message[192] = '^0';

    new team, ColorChange, index, MSG_Type;
    
    if(id)
    {
        MSG_Type = MSG_ONE;
        index = id;
    } else {
        index = FindPlayer();
        MSG_Type = MSG_ALL;
    }
    
    team = get_user_team(index);
    ColorChange = ColorSelection(index, MSG_Type, type);

    ShowColorMessage(index, MSG_Type, message);
        
    if(ColorChange)
    {
        Team_Info(index, MSG_Type, TeamNames[team]);
    }
}

ShowColorMessage(id, type, message[])
{
    static bool:saytext_used;
    static get_user_msgid_saytext;
    if(!saytext_used)
    {
        get_user_msgid_saytext = get_user_msgid("SayText");
        saytext_used = true;
    }
    message_begin(type, get_user_msgid_saytext, _, id);
    write_byte(id)        
    write_string(message);
    message_end();    
}

Team_Info(id, type, team[])
{
    static bool:teaminfo_used;
    static get_user_msgid_teaminfo;
    if(!teaminfo_used)
    {
        get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
        teaminfo_used = true;
    }
    message_begin(type, get_user_msgid_teaminfo, _, id);
    write_byte(id);
    write_string(team);
    message_end();

    return 1;
}

ColorSelection(index, type, Color:Type)
{
    switch(Type)
    {
        case RED:
        {
            return Team_Info(index, type, TeamNames[1]);
        }
        case BLUE:
        {
            return Team_Info(index, type, TeamNames[2]);
        }
        case GREY:
        {
            return Team_Info(index, type, TeamNames[0]);
        }
    }

    return 0;
}

FindPlayer()
{
    new i = -1;

    while(i <= get_maxplayers())
    {
        if(is_user_connected(++i))
            return i;
    }

    return -1;
}

Аватар
aBorisoff
Извън линия
Потребител
Потребител
Мнения: 14
Регистриран на: 15 Апр 2017, 15:36

Re: OciXCrom's Custom VIP Extras

Мнение от aBorisoff » 26 Апр 2017, 17:01

Сега не може да се избират оръжия... смисъл не ги дава :d

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Re: OciXCrom's Custom VIP Extras

Мнение от OciXCrom » 26 Апр 2017, 17:13

Има ли някакви грешки в конзолата на сървъра? Не мога да тествам, тъй като нямам изтеглено сървър с rehlds.

Аватар
aBorisoff
Извън линия
Потребител
Потребител
Мнения: 14
Регистриран на: 15 Апр 2017, 15:36

Re: OciXCrom's Custom VIP Extras

Мнение от aBorisoff » 26 Апр 2017, 17:16

(native "rg_remove_items_by_slot") - debug not enabled!

дори и при пуснат debug е същото :D

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Re: OciXCrom's Custom VIP Extras

Мнение от OciXCrom » 26 Апр 2017, 17:20

При пуснат debug трябва да покаже какъв е проблемът. Сега видях обаче, че е имало функция, която автоматично замества оръжието в слота, тъй че опитай пак:

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <reapi>

#define PLUGIN_NAME "VIP Extras"
#define PLUGIN_VERSION "2.2b"
#define PLUGIN_AUTHOR "OciXCrom"

#define MODELS_PATH "models/player"
#define SOUND_MENU "items/gunpickup2.wav"

new flag_vip, flag_skin, wait, maxhealth, maxmoney, menu_enabled, menu_maxuses, menu_spawn
new get_health, get_armor, health_amount, armor_amount, get_deagle, he_amount, flash_amount, smoke_amount, get_transparency, transparency_amount
new get_m4a1, get_ak47, get_awp, get_g3sg1, get_sg550, menu_m4a1, menu_ak47, menu_awp, menu_g3sg1, menu_sg550
new menu_health, menu_armor, menu_deagle, menu_transparency, menu_speed, menu_gravity, menu_moredamage
new get_skin_t, get_skin_ct, skin_name_t, skin_name_ct, get_speed, speed_amount, get_gravity, gravity_amount, get_moredamage, moredamage_multiplier
new killbonus_health_normal, killbonus_health_headshot, killbonus_money_normal, killbonus_money_headshot
new skin_t[32], skin_ct[32], menu_uses[33]
new bool:user_moredamage[33]

new bool:skin_t_active
new bool:skin_ct_active

new const szPrefix[] = "^4[^3VIP Extras^4]"

enum Color
{
    NORMAL = 1, // clients scr_concolor cvar color
    GREEN, // Green Color
    TEAM_COLOR, // Red, grey, blue
    GREY, // grey
    RED, // Red
    BLUE, // Blue
}

new TeamNames[][] = 
{
    "",
    "TERRORIST",
    "CT",
    "SPECTATOR"
}

public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
    register_cvar("CustomVIPExtras", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
    
    RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
    RegisterHam(Ham_TakeDamage, "player", "player_damage")
    register_event("DeathMsg", "player_killed", "a")
    register_event("CurWeapon", "change_weapon", "be", "1=1")
    
    register_clcmd("say /vm", "vip_menu")
    register_clcmd("say_team /vm", "vip_menu")
    register_clcmd("say /vipmenu", "vip_menu")
    register_clcmd("say_team /vipmenu", "vip_menu")
    
    wait = register_cvar("ve_wait", "0.5")
    flag_vip = register_cvar("ve_vipflag", "o")
    flag_skin = register_cvar("ve_skinflag", "b")
    menu_enabled = register_cvar("ve_menu_enabled", "0")
    menu_maxuses = register_cvar("ve_menu_maxuses", "1")
    menu_spawn = register_cvar("ve_menu_spawn", "1")
    
    get_health = register_cvar("ve_get_health", "1")
    get_armor = register_cvar("ve_get_armor", "1")
    get_deagle = register_cvar("ve_get_deagle", "1")
    get_transparency = register_cvar("ve_get_transparency", "0")
    get_speed = register_cvar("ve_get_speed", "0")
    get_gravity = register_cvar("ve_get_gravity", "0")
    get_m4a1 = register_cvar("ve_get_m4a1", "0")
    get_ak47 = register_cvar("ve_get_ak47", "0")
    get_awp = register_cvar("ve_get_awp", "0")
    get_g3sg1 = register_cvar("ve_get_g3sg1", "0")
    get_sg550 = register_cvar("ve_get_sg550", "0")
    get_moredamage = register_cvar("ve_get_moredamage", "0")
    
    menu_health = register_cvar("ve_menu_health", "1")
    menu_armor = register_cvar("ve_menu_armor", "1")
    menu_deagle = register_cvar("ve_menu_deagle", "1")
    menu_transparency = register_cvar("ve_menu_transparency", "1")
    menu_speed = register_cvar("ve_menu_speed", "1")
    menu_gravity = register_cvar("ve_menu_gravity", "1")
    menu_m4a1 = register_cvar("ve_menu_m4a1", "1")
    menu_ak47 = register_cvar("ve_menu_ak47", "1")
    menu_awp = register_cvar("ve_menu_awp", "1")
    menu_g3sg1 = register_cvar("ve_menu_g3sg1", "1")
    menu_sg550 = register_cvar("ve_menu_sg550", "1")
    menu_moredamage = register_cvar("ve_menu_moredamage", "1")
    
    health_amount = register_cvar("ve_health_amount", "150")
    armor_amount = register_cvar("ve_armor_amount", "100")
    he_amount = register_cvar("ve_he_amount", "1")
    flash_amount = register_cvar("ve_flash_amount", "2")
    smoke_amount = register_cvar("ve_smoke_amount", "1")
    transparency_amount = register_cvar("ve_transparency_amount", "75")
    speed_amount = register_cvar("ve_speed_amount", "300.0")
    gravity_amount = register_cvar("ve_gravity_amount", "0.5")
    moredamage_multiplier = register_cvar("ve_moredamage_multiplier", "2")
    
    killbonus_health_normal = register_cvar("ve_killbonus_health_normal", "5")
    killbonus_health_headshot = register_cvar("ve_killbonus_health_headshot", "10")
    killbonus_money_normal = register_cvar("ve_killbonus_money_normal", "300")
    killbonus_money_headshot = register_cvar("ve_killbonus_money_headshot", "500")
    maxhealth = register_cvar("ve_max_health", "200")
    maxmoney = register_cvar("ve_max_money", "16000")
}

public change_weapon(id)
    if(user_has_flag(id, flag_vip) && get_pcvar_num(get_speed) == 1) set_user_maxspeed(id, get_pcvar_float(speed_amount))

public player_spawn(id)
{
    if(is_user_alive(id))
    {
        menu_uses[id] = 0
        user_moredamage[id] = false
        cs_reset_user_model(id)
        set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
        
        if(get_pcvar_num(menu_enabled) > 0 && get_pcvar_num(menu_spawn) == 1)
            vip_menu(id)
    }
    
    set_task(get_pcvar_float(wait), "vip_set", id)
}

public vip_set(id)
{
    if(!is_user_alive(id))
        return
    
    if(user_has_flag(id, flag_skin))
    {
        switch(get_user_team(id))
        {
            case 1: if(skin_t_active) cs_set_user_model(id, skin_t)
            case 2: if(skin_ct_active) cs_set_user_model(id, skin_ct)
        }
    }
    
    if(get_pcvar_num(menu_enabled) == 1)
        return
    
    if(user_has_flag(id, flag_vip))
    {
        if(get_pcvar_num(get_health) == 1)
            vip_equip(id, 0)
            
        if(get_pcvar_num(get_armor) == 1)
            vip_equip(id, 1)
        
        if(get_pcvar_num(get_deagle) == 1)
            vip_equip(id, 2)
            
        new he = get_pcvar_num(he_amount)
        new flash = get_pcvar_num(flash_amount)
        new smoke = get_pcvar_num(smoke_amount)
        
        if(he > 0)
            vip_equip(id, 3)
            
        if(flash > 0)
            vip_equip(id, 4)
        
        if(smoke > 0)
            vip_equip(id, 5)
        
        if(get_pcvar_num(get_transparency) == 1)
            vip_equip(id, 6)
        
        if(get_pcvar_num(get_speed) == 1)
            vip_equip(id, 7)
            
        if(get_pcvar_num(get_gravity) == 1)
            vip_equip(id, 8)
        
        if(get_pcvar_num(get_m4a1) == 1)
            vip_equip(id, 9)
        
        if(get_pcvar_num(get_ak47) == 1)
            vip_equip(id, 10)
            
        if(get_pcvar_num(get_awp) == 1)
            vip_equip(id, 11)
            
        if(get_pcvar_num(get_g3sg1) == 1)
            vip_equip(id, 12)
        
        if(get_pcvar_num(get_sg550) == 1)
            vip_equip(id, 13)
        
        if(get_pcvar_num(get_moredamage) == 1)
            vip_equip(id, 14)
    }
}

public vip_equip(id, item)
{
    switch(item)
    {
        case 0: set_user_health(id, get_pcvar_num(health_amount))
        case 1: set_user_armor(id, get_pcvar_num(armor_amount))
        case 2:
        {
            rg_give_item(id, "weapon_deagle", GT_REPLACE)
            cs_set_user_bpammo(id, CSW_DEAGLE, 35)
        }
        case 3:
        {
            rg_give_item(id, "weapon_hegrenade")
            cs_set_user_bpammo(id, CSW_HEGRENADE, get_pcvar_num(he_amount))
        }
        case 4:
        {
            rg_give_item(id, "weapon_flashbang")
            cs_set_user_bpammo(id, CSW_FLASHBANG, get_pcvar_num(flash_amount))
        }
        case 5:
        {
            rg_give_item(id, "weapon_smokegrenade")
            cs_set_user_bpammo(id, CSW_SMOKEGRENADE, get_pcvar_num(smoke_amount))
        }
        case 6: set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, get_pcvar_num(transparency_amount))
        case 7: set_user_maxspeed(id, get_pcvar_float(speed_amount))
        case 8: set_user_gravity(id, get_pcvar_float(gravity_amount))
        case 9:
        {
            rg_give_item(id, "weapon_m4a1", GT_REPLACE)
            cs_set_user_bpammo(id, CSW_M4A1, 90)
        }
        case 10:
        {
            rg_give_item(id, "weapon_ak47", GT_REPLACE)
            cs_set_user_bpammo(id, CSW_AK47, 90)
        }
        case 11:
        {
            rg_give_item(id, "weapon_awp", GT_REPLACE)
            cs_set_user_bpammo(id, CSW_AWP, 30)
        }
        case 12:
        {
            rg_give_item(id, "weapon_g3sg1", GT_REPLACE)
            cs_set_user_bpammo(id, CSW_G3SG1, 90)
        }
        case 13:
        {
            rg_give_item(id, "weapon_sg550", GT_REPLACE)
            cs_set_user_bpammo(id, CSW_SG550, 90)
        }
        case 14:
            user_moredamage[id] = true
    }
}

public vip_menu(id)
{
    if(get_pcvar_num(menu_enabled) == 0)
    {
        ColorChat(id, TEAM_COLOR, "%s ^1The ^4VIP Menu ^1is currently ^3disabled^1.", szPrefix)
        return PLUGIN_HANDLED
    }
    
    if(!user_has_flag(id, flag_vip))
    {
        ColorChat(id, TEAM_COLOR, "%s ^1You have ^3no access ^1to this command.", szPrefix)
        return PLUGIN_HANDLED
    }
    
    if(!is_user_alive(id))
    {
        ColorChat(id, TEAM_COLOR, "%s ^1You need to be ^3alive^1!", szPrefix)
        return PLUGIN_HANDLED
    }
    
    if(menu_uses[id] == get_pcvar_num(menu_maxuses))
    {
        ColorChat(id, TEAM_COLOR, "%s ^1You can use the menu only ^4%i ^1time(s).", szPrefix, get_pcvar_num(menu_maxuses))
        return PLUGIN_HANDLED
    }
    
    new title[100], item[50]
    formatex(title, charsmax(title), "\yOciXCrom's \rCustom VIP Extras\d")
    
    new vipmenu = menu_create(title, "vipmenu_handler")
    
    if(get_pcvar_num(menu_health) == 1)
    {
        formatex(item, charsmax(item), "Health Points \y(+%i)", get_pcvar_num(health_amount))
        menu_additem(vipmenu, item, "0", 0)
    }
    
    if(get_pcvar_num(menu_armor) == 1)
    {
        formatex(item, charsmax(item), "Armor Points \y(+%i)", get_pcvar_num(armor_amount))
        menu_additem(vipmenu, item, "1", 0)
    }
    
    if(get_pcvar_num(menu_deagle) == 1)
    {
        formatex(item, charsmax(item), "Deagle \y(Full Ammo)")
        menu_additem(vipmenu, item, "2", 0)
    }
    
    if(get_pcvar_num(he_amount) > 0)
    {
        formatex(item, charsmax(item), "He Grenade \y(%ix)", get_pcvar_num(he_amount))
        menu_additem(vipmenu, item, "3", 0)
    }
    
    if(get_pcvar_num(flash_amount) > 0)
    {
        formatex(item, charsmax(item), "Flash Grenade \y(%ix)", get_pcvar_num(flash_amount))
        menu_additem(vipmenu, item, "4", 0)
    }
    
    if(get_pcvar_num(smoke_amount) > 0)
    {
        formatex(item, charsmax(item), "Smoke Grenade \y(%ix)", get_pcvar_num(smoke_amount))
        menu_additem(vipmenu, item, "5", 0)
    }
    
    if(get_pcvar_num(menu_transparency) == 1)
    {
        formatex(item, charsmax(item), "Transparency \y(%i%)", get_pcvar_num(transparency_amount))
        menu_additem(vipmenu, item, "6", 0)
    }
    
    if(get_pcvar_num(menu_speed) == 1)
    {
        formatex(item, charsmax(item), "Faster Speed \y(%i)", get_pcvar_num(speed_amount))
        menu_additem(vipmenu, item, "7", 0)
    }
    
    if(get_pcvar_num(menu_gravity) == 1)
    {
        formatex(item, charsmax(item), "Low Gravity \y(%f)", get_pcvar_float(gravity_amount))
        menu_additem(vipmenu, item, "8", 0)
    }
    
    if(get_pcvar_num(menu_m4a1) == 1)
    {
        formatex(item, charsmax(item), "M4A1 \y(Full Ammo)")
        menu_additem(vipmenu, item, "9", 0)
    }
    
    if(get_pcvar_num(menu_ak47) == 1)
    {
        formatex(item, charsmax(item), "AK47 \y(Full Ammo)")
        menu_additem(vipmenu, item, "10", 0)
    }
    
    if(get_pcvar_num(menu_awp) == 1)
    {
        formatex(item, charsmax(item), "AWP \y(Sniper)")
        menu_additem(vipmenu, item, "11", 0)
    }
    
    if(get_pcvar_num(menu_g3sg1) == 1)
    {
        formatex(item, charsmax(item), "G3SG1 \y(Automatic Sniper)")
        menu_additem(vipmenu, item, "12", 0)
    }
    
    if(get_pcvar_num(menu_sg550) == 1)
    {
        formatex(item, charsmax(item), "SG550 \y(Automatic Sniper)")
        menu_additem(vipmenu, item, "13", 0)
    }
    
    if(get_pcvar_num(menu_moredamage) == 1)
    {
        formatex(item, charsmax(item), "More Damage \y(%ix)", get_pcvar_num(moredamage_multiplier))
        menu_additem(vipmenu, item, "14", 0)
    }
    
    menu_setprop(vipmenu, MPROP_EXITNAME, "\rClose the Menu")
    menu_setprop(vipmenu, MPROP_BACKNAME, "\rGo to the \yPrevious \rPage")
    menu_setprop(vipmenu, MPROP_NEXTNAME, "\rGo to the \yNext \rPage")
    menu_setprop(vipmenu, MPROP_EXIT, MEXIT_ALL)
    
    menu_display(id, vipmenu, 0)
    return PLUGIN_HANDLED
}

public vipmenu_handler(id, vipmenu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(vipmenu)
        return PLUGIN_HANDLED
    }
    
    new data[6], iName[64], access, callback
    menu_item_getinfo(vipmenu, item, access, data, charsmax(data), iName, charsmax(iName), callback)

    new key = str_to_num(data)
    vip_equip(id, key)
    menu_uses[id]++
    
    ColorChat(id, TEAM_COLOR, "%s ^1You have successfully used the ^3VIP Menu^1 (^4%i^1/^4%i^1)", szPrefix, menu_uses[id], get_pcvar_num(menu_maxuses))
    emit_sound(id, CHAN_ITEM, SOUND_MENU, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
    
    menu_destroy(vipmenu)
    return PLUGIN_HANDLED
}

public player_killed()
{
    new attacker = read_data(1)
    new victim = read_data(2)
    
    if(!is_user_connected(attacker) || !is_user_connected(victim) || attacker == victim || !user_has_flag(attacker, flag_vip))
        return
    
    new headshot = read_data(3)
    
    new health = get_user_health(attacker)
    new money = cs_get_user_money(attacker)
    
    new reward_health = headshot ? get_pcvar_num(killbonus_health_headshot) : get_pcvar_num(killbonus_health_normal)
    new reward_money = headshot ? get_pcvar_num(killbonus_money_headshot) : get_pcvar_num(killbonus_money_normal)
    
    new health_max = get_pcvar_num(maxhealth)
    new money_max = get_pcvar_num(maxmoney)
    
    set_user_health(attacker, health + reward_health)
    cs_set_user_money(attacker, money + reward_money)
    
    if(get_user_health(attacker) > health_max) set_user_health(attacker, health_max)
    if(cs_get_user_money(attacker) > money_max) cs_set_user_money(attacker, money_max)
}

public player_damage(victim, inflictor, attacker, Float:damage, damage_bits)
{
    if(is_user_connected(attacker))
        if(user_moredamage[attacker] && attacker != victim)
            SetHamParamFloat(4, damage * get_pcvar_float(moredamage_multiplier))
}

public plugin_precache()
{
    get_skin_t = register_cvar("ve_get_skin_t", "0")
    get_skin_ct = register_cvar("ve_get_skin_ct", "0")
    
    skin_name_t = register_cvar("ve_skin_name_t", "vip")
    skin_name_ct = register_cvar("ve_skin_name_ct", "smith")

    skin_t_active = (get_pcvar_num(get_skin_t) == 1) ? true : false
    skin_ct_active = (get_pcvar_num(get_skin_ct) == 1) ? true : false
    
    if(skin_t_active)
    {
        new skin1[50]
        get_pcvar_string(skin_name_t, skin_t, charsmax(skin_t))
        formatex(skin1, charsmax(skin1), "%s/%s/%s.mdl", MODELS_PATH, skin_t, skin_t)
        precache_model(skin1)
    }
    
    if(skin_ct_active)
    {
        new skin2[50]
        get_pcvar_string(skin_name_ct, skin_ct, charsmax(skin_ct))
        formatex(skin2, charsmax(skin2), "%s/%s/%s.mdl", MODELS_PATH, skin_ct, skin_ct)
        precache_model(skin2)
    }
    
    precache_sound(SOUND_MENU)
}

stock user_has_flag(id, cvar)
{
    new flags[32]
    get_flags(get_user_flags(id), flags, charsmax(flags))
    
    new vip_flag[2]
    get_pcvar_string(cvar, vip_flag, charsmax(vip_flag))
    
    return (contain(flags, vip_flag) != -1) ? true : false
}

/* ======================================================================================================= */
/* ColorChat */
/* ======================================================================================================= */
ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
    if( !get_playersnum() ) return;
    
    new message[256];

    switch(type)
    {
        case NORMAL: // clients scr_concolor cvar color
        {
            message[0] = 0x01;
        }
        case GREEN: // Green
        {
            message[0] = 0x04;
        }
        default: // White, Red, Blue
        {
            message[0] = 0x03;
        }
    }

    vformat(message[1], 251, msg, 4);

    replace_all(message, 191, "!n", "^x01")
    replace_all(message, 191, "!t", "^x03")
    replace_all(message, 191, "!g", "^x04")
    
    // Make sure message is not longer than 192 character. Will crash the server.
    message[192] = '^0';

    new team, ColorChange, index, MSG_Type;
    
    if(id)
    {
        MSG_Type = MSG_ONE;
        index = id;
    } else {
        index = FindPlayer();
        MSG_Type = MSG_ALL;
    }
    
    team = get_user_team(index);
    ColorChange = ColorSelection(index, MSG_Type, type);

    ShowColorMessage(index, MSG_Type, message);
        
    if(ColorChange)
    {
        Team_Info(index, MSG_Type, TeamNames[team]);
    }
}

ShowColorMessage(id, type, message[])
{
    static bool:saytext_used;
    static get_user_msgid_saytext;
    if(!saytext_used)
    {
        get_user_msgid_saytext = get_user_msgid("SayText");
        saytext_used = true;
    }
    message_begin(type, get_user_msgid_saytext, _, id);
    write_byte(id)        
    write_string(message);
    message_end();    
}

Team_Info(id, type, team[])
{
    static bool:teaminfo_used;
    static get_user_msgid_teaminfo;
    if(!teaminfo_used)
    {
        get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
        teaminfo_used = true;
    }
    message_begin(type, get_user_msgid_teaminfo, _, id);
    write_byte(id);
    write_string(team);
    message_end();

    return 1;
}

ColorSelection(index, type, Color:Type)
{
    switch(Type)
    {
        case RED:
        {
            return Team_Info(index, type, TeamNames[1]);
        }
        case BLUE:
        {
            return Team_Info(index, type, TeamNames[2]);
        }
        case GREY:
        {
            return Team_Info(index, type, TeamNames[0]);
        }
    }

    return 0;
}

FindPlayer()
{
    new i = -1;

    while(i <= get_maxplayers())
    {
        if(is_user_connected(++i))
            return i;
    }

    return -1;
} 
Ако не стане, покажи цялата грешка с активиран debug.

Аватар
aBorisoff
Извън линия
Потребител
Потребител
Мнения: 14
Регистриран на: 15 Апр 2017, 15:36

Re: OciXCrom's Custom VIP Extras

Мнение от aBorisoff » 26 Апр 2017, 17:44

Вече работи, благодаря!

Аватар
camarossblack
Извън линия
Потребител
Потребител
Мнения: 6
Регистриран на: 13 Юли 2017, 22:30

Re: OciXCrom's Custom VIP Extras

Мнение от camarossblack » 17 Юли 2017, 02:15

Здравейте,

Имам въпрос относно този плъгин. Някой пробвал ли го е. Има ли въпросния проблем, както при мен. Плъгина си работи идеално, но когато тръгна да сменям моделите на ВИП играчите (слагам нови скинове), както трябва и сменя мапа и сървъра крашва ? Постоянно преглеждам да не допускам аз грешки, но няма. Пробвал съм с доста скинове и с нито един не стана, всеки път крашва.

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Неодобрени/стари плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 6 госта