[Cerere Plugin] EVENT FREE VIP

Categoria cu cereri de pluginuri si nu numai.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Forum rules
Accesează link-ul pentru a putea vedea regulile forumului

Daca doriti sa vi se modifice un plugin, va rugam postati aici .
Shadows Adi
Membru, skill +1
Membru, skill +1
Posts: 349
Joined: 26 Jan 2020, 18:52
Detinator Steam: Da
CS Status: 0x416469
SteamID: shadowsadi120
Fond eXtream: 0
Has thanked: 14 times
Been thanked: 50 times

19 Jul 2020, 20:59

Sau de ce nu incerci ceva mai eficient?
https://leaguecs.ro/forum/index.php?/to ... w-version/
RoyalServer
User avatar
Alexandru P.
Membru, skill 0
Membru, skill 0
Posts: 77
Joined: 10 Apr 2020, 11:27
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: CS.BHZD.RO
Fond eXtream: 0
Has thanked: 7 times
Contact:

20 Jul 2020, 08:22

robbencsgo wrote:
19 Jul 2020, 20:06
Alexandru P. wrote:
19 Jul 2020, 14:53
Inca nu am gasit solutia / pluginul ....
Ma ajuta cineva ?
Daca este necesar postez pluginul de VIP aici.
posteaza-mi .SMA de la VIP si o sa ti-l fac eu direct din plugin-ul de vip
| Afiseaza codul
/*
CREDITE:
ConnorMcLeod - pentru bullet damage
twistedeuphoria - pentru multi jump
cheap_suit - cateva bucati de cod extrase din biohazard
*/
 
 
#include <amxmodx>
#include <hamsandwich>
#include <engine>
#include <cstrike>
#include <fun>
#include <fakemeta>
 
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
new const TAG[] = "[V.I.P]";     // TAGUL IN CHAT CARE APARE
new const CONTACT[] = "KnockOut";
 
#define is_user_vip(%1) (get_user_flags(%1) & read_flags("x"))
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
 
#define PLUGIN_NAME "VIP System"
#define PLUGIN_NAME_PAUSED "VIP System [OPRIT]"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU"
 
#define is_user_valid(%1) (1 <= %1 <= max_players)
 
enum cvars
{
    hp_spawn = 0,
    ap_spawn,
    money_spawn,
    hp_kill,
    hp_hs,
    ap_kill,
    ap_hs,
    hp_max,
    money_kill,
    money_hs,
    show_vip_tab,
    show_bullet_dmg,
    multi_jump,
    parachute
}
 
new cvar[cvars], rounds = 1;
new max_players;
new bool:g_bJump[33] = false, g_JumpNum[33] = 0;
new g_iPlayerPos[33], g_iPlayerCol[33];
 
// NU SCHIMBA
new const Float:g_flCoords[][] =  
{
    {0.50, 0.40},
    {0.56, 0.44},
    {0.60, 0.50},
    {0.56, 0.56},
    {0.50, 0.60},
    {0.44, 0.56},
    {0.40, 0.50},
    {0.44, 0.44}
}
 
// NU SCHIMBA VALORILE DEJA EXISTENTE. Poti adauga mai multe culori, respectand matricea
new const g_iColors[][] =
{
    {0, 127, 255}, // blue
    {255, 127, 0}, // orange
    {127, 0, 255}, // purple
    {255, 0, 0}, // red
    {255, 100, 150}, // pink
    {0, 255, 0} // green
}
 
public plugin_init()
{  
    new path[64];
    get_localinfo("amxx_configsdir", path, charsmax(path));
    formatex(path, charsmax(path), "%s/vip_maps.ini", path);
   
    new file = fopen(path, "r+");
   
    if(!file_exists(path))
    {
        write_file(path, "; VIP-UL ESTE DEZACTIVAT PE URMATOARELE HARTI: ");
        write_file(path, "; Exemplu de adaugare HARTA:^n; ^"harta^"^n^nfy_snow^ncss_bycastor");
    }
   
    new mapname[32];
    get_mapname(mapname, charsmax(mapname));
   
    new text[121], maptext[32], bool:remove_vip = false;
    while(!feof(file))
    {
        fgets(file, text, charsmax(text));
        trim(text);
       
        if(text[0] == ';' || !strlen(text))
        {
            continue;
        }
       
        parse(text, maptext, charsmax(maptext));
       
        if(equal(maptext, mapname))
        {
            log_amx("Am dezactivat pluginul 'VIP' pe harta %s.", maptext);
            remove_vip = true;
            break;
        }
       
    }
    fclose(file);
   
    if(!remove_vip)
    {
        register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
 
        register_event("DeathMsg", "event_DeathMsg", "a");
        register_event("Damage", "event_Damage", "b", "2>0", "3=0");
        register_event("HLTV", "event_NewRound", "a", "1=0", "2=0");
        register_event("TextMsg", "event_textmsg", "a", "2=#Game_will_restart_in")
 
        RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
 
        register_message(get_user_msgid("ScoreAttrib"), "msg_ScoreAttrib");
 
        register_clcmd("say /vips", "CmdVipsOnline");
        register_clcmd("say_team /vips", "CmdVipsOnline");
        register_clcmd("say vips", "CmdVipsOnline");
        register_clcmd("say_team vips", "CmdVipsOnline");
       
        register_clcmd("say buyvip", "CmdPrintAttributes");
        register_clcmd("say_team buyvip", "CmdPrintAttributes");
        register_clcmd("say /buyvip", "CmdPrintAttributes");
        register_clcmd("say_team /buyvip", "CmdPrintAttributes");
 
        register_clcmd("say /rd", "CmdResetDeaths");
        register_clcmd("say_team /rd", "CmdResetDeaths");
        register_clcmd("say rd", "CmdResetDeaths");
        register_clcmd("say_team rd", "CmdResetDeaths");

        cvar[hp_spawn] = register_cvar("vip_hp_spawn", "100");          // 0 = dezactivat
        cvar[ap_spawn] = register_cvar("vip_ap_spawn", "100");          // 0 = dezactivat
        cvar[money_spawn] = register_cvar("vip_money_spawn", "0");       // 0 = dezactivat
        cvar[show_vip_tab] = register_cvar("vip_show_tab", "1");            // 0 = dezactivat
        cvar[show_bullet_dmg] = register_cvar("vip_show_bullet_dmg", "1");      // 0 = dezactivat
        cvar[multi_jump] = register_cvar("vip_multijump", "0");         // 0 = dezactivat. Daca valoarea cvar-ului este 1, vei sari de 2 ori. Orice valoare pui, va fi +1 jump
        cvar[hp_kill] = register_cvar("vip_hp_kill", "5");              // 0 = dezactivat
        cvar[hp_hs] = register_cvar("vip_hp_hs", "10");             // 0 = dezactivat
        cvar[ap_kill] = register_cvar("vip_ap_kill", "5");              // 0 = dezactivat
        cvar[ap_hs] = register_cvar("vip_ap_hs", "10");             // 0 = dezactivat
        cvar[hp_max] = register_cvar("vip_hp_max", "120");          // 0 = viata infinita
        cvar[money_kill] = register_cvar("vip_money_kill", "350");          // 0 = dezactivat
        cvar[money_hs] = register_cvar("vip_money_hs", "450");          // 0 = dezactivat
        cvar[parachute] = register_cvar("vip_parachute", "0");          // 0 = dezactivat
 
        max_players = get_maxplayers();
    }
    else
    {
        register_plugin(PLUGIN_NAME_PAUSED, PLUGIN_VERSION, PLUGIN_AUTHOR);
        pause("ade");
    }
   
    register_cvar("vip_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
    set_cvar_string("vip_", PLUGIN_VERSION);
}
 
public client_putinserver(id)
{
    g_JumpNum[id] = 0;
    g_bJump[id] = false;
}
 
public CmdVipsOnline(id)
{
    if(!is_user_connected(id))
        return PLUGIN_CONTINUE;
 
    new adminnames[33][32], message[256], i, count, len;
    len = format(message, charsmax(message), "!4%s!3 VIPS ONLINE: ", TAG);
    for(i = 1 ; i <= max_players; i++)
    {
        if(is_user_connected(i) && is_user_vip(i))
            get_user_name(i, adminnames[count++], charsmax(adminnames[]));
    }
   
    if(count > 0)
    {
        for(i = 0; i < count; i++)
        {
            len += format(message[len], 255 -len, "!4%s!1%s ", adminnames, i < (count -1) ? " | " : "");
        }
        ColorChat(id, message);
    }
    else
    {
        len += format(message[len], 255 -len, "!4No one !")
        ColorChat(id, message);
    }
 
    return PLUGIN_CONTINUE;
}
 
public CmdPrintAttributes(id)
{
    if(!is_user_connected(id)) return;
    show_motd(id, "vip.txt", "Beneficii VIP");
}
 
public CmdResetDeaths(id)
{
    if(!is_user_vip(id))
    {
        ColorChat(id, "!4%s!1 Doar membri!3 VIP!1 isi pot reseta decesele.", TAG);
        return;
    }
    cs_set_user_deaths(id, 0);
    cs_set_user_deaths(id, 0);
    ColorChat(id, "!4%s!1 Ti-ai resetat cu succes toate decesele.", TAG);
}

 
public client_PreThink(id)
{
    new cache = get_pcvar_num(cvar[multi_jump]);
    if(is_user_alive(id) && !is_user_vip(id))
        return PLUGIN_CONTINUE;
 
    new nbut = get_user_button(id);
    new obut = get_user_oldbutton(id);
 
    if(cache != 0)
    {  
        if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
        {
            if(g_JumpNum[id] < cache)
            {
                g_bJump[id] = true;
                g_JumpNum[id]++;
                return PLUGIN_CONTINUE;
            }
        }
   
        if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
        {
            g_JumpNum[id] = 0;
            return PLUGIN_CONTINUE;
        }
    }
 
    if(get_pcvar_num(cvar[parachute]))
    {
        new Float:fallspeed = 100.0 * -1.0;
        if(nbut & IN_USE)
        {
            new Float:velocity[3];
            entity_get_vector(id, EV_VEC_velocity, velocity);
            if(velocity[2] < 0.0)
            {
                entity_set_int(id, EV_INT_sequence, 3);
                entity_set_int(id, EV_INT_gaitsequence, 1);
                entity_set_float(id, EV_FL_frame, 1.0);
                entity_set_float(id, EV_FL_framerate, 1.0);
 
                velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed;
                entity_set_vector(id, EV_VEC_velocity, velocity);
            }
        }
    }
    return PLUGIN_CONTINUE;
}
 
public client_PostThink(id)
{
    new jump_num = get_pcvar_num(cvar[multi_jump]);
    if(!jump_num)
        return PLUGIN_CONTINUE;
       
    if(is_user_alive(id) && !is_user_vip(id))
        return PLUGIN_CONTINUE;
   
    if(g_bJump[id])
    {
        new Float:fVelocity[3];
        entity_get_vector(id, EV_VEC_velocity, fVelocity);
        fVelocity[2] = random_float(265.0, 285.0);
        entity_set_vector(id, EV_VEC_velocity, fVelocity);
       
        g_bJump[id] = false;
        return PLUGIN_CONTINUE;
    }
   
    return PLUGIN_CONTINUE;
}
 
public event_DeathMsg()
{
    new killer = read_data(1), hs = read_data(3);  
    if(is_user_alive(killer) && is_user_vip(killer))
    {
        if(killer == read_data(2)) return PLUGIN_HANDLED;
 
        if(hs && !user_has_weapon(killer, CSW_HEGRENADE)) give_item(killer, "weapon_hegrenade");
 
        new cache = hs ? get_pcvar_num(cvar[hp_hs]) : get_pcvar_num(cvar[hp_kill]);
        if(cache != 0) set_user_health(killer, min(get_user_health(killer) + cache, get_pcvar_num(cvar[hp_max])));
 
        cache = hs ? get_pcvar_num(cvar[ap_hs]) : get_pcvar_num(cvar[ap_kill]);
        if(cache != 0) set_user_armor(killer, min(get_user_armor(killer) + cache, get_pcvar_num(cvar[hp_max])));
 
        cache = hs ? get_pcvar_num(cvar[money_hs]) : get_pcvar_num(cvar[money_kill]);
        if(cache != 0) cs_set_user_money(killer, min(cs_get_user_money(killer) + cache, 16000));
    }
 
    return PLUGIN_CONTINUE;
}
 
public event_Damage(victim)
{
    if(!get_pcvar_num(cvar[show_bullet_dmg]))
        return PLUGIN_CONTINUE;
       
    new id = get_user_attacker(victim);
    if(is_user_valid(id))
    {
        if(is_user_alive(id) && !is_user_vip(id))
            return PLUGIN_HANDLED;
       
        if(read_data(4) || read_data(5) || read_data(6))
        {      
            new iPos = ++g_iPlayerPos[id];
            if(iPos == sizeof(g_flCoords))
                iPos = g_iPlayerPos[id] = 0;
           
            new iCol = ++g_iPlayerCol[id];
            if(iCol == sizeof(g_iColors))
                iCol = g_iPlayerCol[id] = 0;
           
            set_hudmessage(g_iColors[iCol][0], g_iColors[iCol][1], g_iColors[iCol][2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1);
            show_hudmessage(id, "%d", read_data(2));
        }
    }
   
    return PLUGIN_CONTINUE;
}

public event_NewRound()
{
    rounds++;
}
 
public event_textmsg()
{
    rounds = 1;
}
 
public fw_PlayerSpawnPost(id)
{
    if(is_user_vip(id) && is_user_alive(id))
    {
        set_task(0.25, "give_items", id + 212);
        return HAM_IGNORED;
    }
   
    return HAM_IGNORED;
}
 
public give_items(taskid)
{
    new id = taskid - 212;
    if(!is_user_alive(id))
        return;
 
    new cache = get_pcvar_num(cvar[hp_spawn])
    if(cache != 0) set_user_health(id, cache);
 
    cache = get_pcvar_num(cvar[ap_spawn]);
    if(cache != 0) cs_set_user_armor(id, cache, CS_ARMOR_VESTHELM);
 
    cache = get_pcvar_num(cvar[money_spawn]);
    if(cache != 0) cs_set_user_money(id, min(cs_get_user_money(id) + cache, 16000));
 
    if(rounds >= 3) ShowVipMenu(id);
}
 
public msg_ScoreAttrib(msgid, dest, id)
{
    if(!get_pcvar_num(cvar[show_vip_tab]))
        return PLUGIN_CONTINUE;
       
    new id = get_msg_arg_int(1);
    if(is_user_connected(id) && is_user_vip(id))
        set_msg_arg_int(2, ARG_BYTE, is_user_alive(id) ? (1<<2) : (1<<0));
   
    return PLUGIN_CONTINUE;
}
 
public ShowVipMenu(id)
{
    if(!is_user_connected(id))
        return PLUGIN_HANDLED;
 
    if(!is_user_vip(id))
    {
        ColorChat(id, "!4%s!1 Imi pare rau, dar nu ai acces la meniul pentru!3 membrii VIP!1.", TAG);
        ColorChat(id, "!4%s!1 Poti cumpara VIP, contactand adresa Y!M:!3 %s!1.", TAG, CONTACT);
        return PLUGIN_HANDLED;
    }
 
    give_item(id, "weapon_hegrenade");
    give_item(id, "weapon_flashbang");
    give_item(id, "weapon_flashbang");
    drop_weapons(id, 2);
    give_item(id, "weapon_deagle");
    cs_set_user_bpammo(id, CSW_DEAGLE, 35);
 
    new menu = menu_create("[V.I.P MENU]", "VipMenuHandler");
    menu_additem(menu, "M4A1 + Echipament", "1");
    menu_additem(menu, "AK-47 + Echipament", "2");
    menu_additem(menu, "AWP + Echipament", "3");
   
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
    menu_display(id, menu, 0);
   
    return PLUGIN_CONTINUE;
}
 
public VipMenuHandler(id, menu, item)
{
    if(!is_user_connected(id) || item == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
 
    new data[6], namei[64], access, CallBack;
    menu_item_getinfo(menu, item, access, data, charsmax(data), namei, charsmax(namei), CallBack);
    new key = str_to_num(data);
 
    switch(key)
    {
        case 1:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_m4a1");
            cs_set_user_bpammo(id, CSW_M4A1, 120);
           
            ColorChat(id, "!4%s!1 Ai ales!3 M4A1!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
        }
 
        case 2:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_ak47");
            cs_set_user_bpammo(id, CSW_AK47, 120);
           
            ColorChat(id, "!4%s!1 Ai ales!3 AK47!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
        }
 
        case 3:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_awp");
            cs_set_user_bpammo(id, CSW_AWP, 30);
           
            ColorChat(id, "!4%s!1 Ai ales!3 AWP!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
        }
    }
 
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}
 
const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);
 
// Drop primary/secondary weapons
stock drop_weapons(id, dropwhat)
{
    // Get user weapons
    static weapons[32], num, i, weaponid, wname[32];
    num = 0; // reset passed weapons count (bugfix)
    get_user_weapons(id, weapons, num);
   
    // Loop through them and drop primaries or secondaries
    for (i = 0; i < num; i++)
    {
        // Prevent re-indexing the array
        weaponid = weapons;
       
        if((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
        {
            // Get weapon entity
            get_weaponname(weaponid, wname, charsmax(wname));
            engclient_cmd(id, "drop", wname);
        }
    }
}
 
stock ColorChat(id, String[], any:...)
{
    static szMesage[192];
    vformat(szMesage, charsmax(szMesage), String, 3);
   
    replace_all(szMesage, charsmax(szMesage), "!1", "^1");
    replace_all(szMesage, charsmax(szMesage), "!3", "^3");
    replace_all(szMesage, charsmax(szMesage), "!4", "^4");
   
    static g_msg_SayText = 0;
    if(!g_msg_SayText)
        g_msg_SayText = get_user_msgid("SayText");
   
    new Players[32], iNum = 1, i;
 
    if(id) Players[0] = id;
    else get_players(Players, iNum, "ch");
   
    for(--iNum; iNum >= 0; iNum--)
    {
        i = Players[iNum];
       
        message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i);
        write_byte(i);
        write_string(szMesage);
        message_end();
    }
}
User avatar
robbencsgo
Membru, skill 0
Membru, skill 0
Posts: 96
Joined: 31 Aug 2019, 19:14
Detinator Steam: Da
CS Status: aimer
SteamID: an prevat
Fond eXtream: 0
Has thanked: 9 times
Been thanked: 11 times
Contact:

20 Jul 2020, 12:45

Code: Select all

#include <amxmodx>
#include <hamsandwich>
#include <engine>
#include <cstrike>
#include <fun>
#include <fakemeta>
 
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
new const TAG[] = "[V.I.P]";     // TAGUL IN CHAT CARE APARE
new const CONTACT[] = "KnockOut";
 
#define is_user_vip(%1) (get_user_flags(%1) & read_flags("x"))
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
 
#define PLUGIN_NAME "VIP System"
#define PLUGIN_NAME_PAUSED "VIP System [OPRIT]"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU"
 
#define is_user_valid(%1) (1 <= %1 <= max_players)

//vip freec

new const vip_time[] = {22, 10};

new g_sync, cvar_freevip;
new vip_free = 0;
////////////////////////
 
enum cvars
{
    hp_spawn = 0,
    ap_spawn,
    money_spawn,
    hp_kill,
    hp_hs,
    ap_kill,
    ap_hs,
    hp_max,
    money_kill,
    money_hs,
    show_vip_tab,
    show_bullet_dmg,
    multi_jump,
    parachute
}
 
new cvar[cvars], rounds = 1;
new max_players;
new bool:g_bJump[33] = false, g_JumpNum[33] = 0;
new g_iPlayerPos[33], g_iPlayerCol[33];
 
// NU SCHIMBA
new const Float:g_flCoords[][] =  
{
    {0.50, 0.40},
    {0.56, 0.44},
    {0.60, 0.50},
    {0.56, 0.56},
    {0.50, 0.60},
    {0.44, 0.56},
    {0.40, 0.50},
    {0.44, 0.44}
}
 
// NU SCHIMBA VALORILE DEJA EXISTENTE. Poti adauga mai multe culori, respectand matricea
new const g_iColors[][] =
{
    {0, 127, 255}, // blue
    {255, 127, 0}, // orange
    {127, 0, 255}, // purple
    {255, 0, 0}, // red
    {255, 100, 150}, // pink
    {0, 255, 0} // green
}
 
public plugin_init()
{  
    new path[64];
    get_localinfo("amxx_configsdir", path, charsmax(path));
    formatex(path, charsmax(path), "%s/vip_maps.ini", path);
   
    new file = fopen(path, "r+");
   
    if(!file_exists(path))
    {
        write_file(path, "; VIP-UL ESTE DEZACTIVAT PE URMATOARELE HARTI: ");
        write_file(path, "; Exemplu de adaugare HARTA:^n; ^"harta^"^n^nfy_snow^ncss_bycastor");
    }
   
    new mapname[32];
    get_mapname(mapname, charsmax(mapname));
   
    new text[121], maptext[32], bool:remove_vip = false;
    while(!feof(file))
    {
        fgets(file, text, charsmax(text));
        trim(text);
       
        if(text[0] == ';' || !strlen(text))
        {
            continue;
        }
       
        parse(text, maptext, charsmax(maptext));
       
        if(equal(maptext, mapname))
        {
            log_amx("Am dezactivat pluginul 'VIP' pe harta %s.", maptext);
            remove_vip = true;
            break;
        }
       
    }
    fclose(file);
   
    if(!remove_vip)
    {
        register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
 
        register_event("DeathMsg", "event_DeathMsg", "a");
        register_event("Damage", "event_Damage", "b", "2>0", "3=0");
        register_event("HLTV", "event_NewRound", "a", "1=0", "2=0");
        register_event("TextMsg", "event_textmsg", "a", "2=#Game_will_restart_in")
 
        RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
 
        register_message(get_user_msgid("ScoreAttrib"), "msg_ScoreAttrib");
 
        register_clcmd("say /vips", "CmdVipsOnline");
        register_clcmd("say_team /vips", "CmdVipsOnline");
        register_clcmd("say vips", "CmdVipsOnline");
        register_clcmd("say_team vips", "CmdVipsOnline");
       
        register_clcmd("say buyvip", "CmdPrintAttributes");
        register_clcmd("say_team buyvip", "CmdPrintAttributes");
        register_clcmd("say /buyvip", "CmdPrintAttributes");
        register_clcmd("say_team /buyvip", "CmdPrintAttributes");
 
        register_clcmd("say /rd", "CmdResetDeaths");
        register_clcmd("say_team /rd", "CmdResetDeaths");
        register_clcmd("say rd", "CmdResetDeaths");
        register_clcmd("say_team rd", "CmdResetDeaths");
	
	//VIP FREE
        register_clcmd("say /timevip", "time_remain");

        set_task(1.0, "check_time");
        set_task(60.0, "check_time", _, _, _, "b");
        set_task(1.0, "hud_mess", _, _, _, "b");

        cvar_freevip = register_cvar("vip_free", "1");

        cached_vars();
        g_sync = CreateHudSyncObj();
        //////////////////////////////////////////

        cvar[hp_spawn] = register_cvar("vip_hp_spawn", "100");          // 0 = dezactivat
        cvar[ap_spawn] = register_cvar("vip_ap_spawn", "100");          // 0 = dezactivat
        cvar[money_spawn] = register_cvar("vip_money_spawn", "0");       // 0 = dezactivat
        cvar[show_vip_tab] = register_cvar("vip_show_tab", "1");            // 0 = dezactivat
        cvar[show_bullet_dmg] = register_cvar("vip_show_bullet_dmg", "1");      // 0 = dezactivat
        cvar[multi_jump] = register_cvar("vip_multijump", "0");         // 0 = dezactivat. Daca valoarea cvar-ului este 1, vei sari de 2 ori. Orice valoare pui, va fi +1 jump
        cvar[hp_kill] = register_cvar("vip_hp_kill", "5");              // 0 = dezactivat
        cvar[hp_hs] = register_cvar("vip_hp_hs", "10");             // 0 = dezactivat
        cvar[ap_kill] = register_cvar("vip_ap_kill", "5");              // 0 = dezactivat
        cvar[ap_hs] = register_cvar("vip_ap_hs", "10");             // 0 = dezactivat
        cvar[hp_max] = register_cvar("vip_hp_max", "120");          // 0 = viata infinita
        cvar[money_kill] = register_cvar("vip_money_kill", "350");          // 0 = dezactivat
        cvar[money_hs] = register_cvar("vip_money_hs", "450");          // 0 = dezactivat
        cvar[parachute] = register_cvar("vip_parachute", "0");          // 0 = dezactivat
 
        max_players = get_maxplayers();
    }
    else
    {
        register_plugin(PLUGIN_NAME_PAUSED, PLUGIN_VERSION, PLUGIN_AUTHOR);
        pause("ade");
    }
   
    register_cvar("vip_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
    set_cvar_string("vip_", PLUGIN_VERSION);
}
 
public client_putinserver(id)
{
    g_JumpNum[id] = 0;
    g_bJump[id] = false;
}
 
public CmdVipsOnline(id)
{
    if(!is_user_connected(id))
        return PLUGIN_CONTINUE;
 
    new adminnames[33][32], message[256], i, count, len;
    len = format(message, charsmax(message), "!4%s!3 VIPS ONLINE: ", TAG);
    for(i = 1 ; i <= max_players; i++)
    {
        if(is_user_connected(i) && is_user_vip(i))
            get_user_name(i, adminnames[count++], charsmax(adminnames[]));
    }
   
    if(count > 0)
    {
        for(i = 0; i < count; i++)
        {
            len += format(message[len], 255 -len, "!4%s!1%s ", adminnames, i < (count -1) ? " | " : "");
        }
        ColorChat(id, message);
    }
    else
    {
        len += format(message[len], 255 -len, "!4No one !")
        ColorChat(id, message);
    }
 
    return PLUGIN_CONTINUE;
}
 
public CmdPrintAttributes(id)
{
    if(!is_user_connected(id)) return;
    show_motd(id, "vip.txt", "Beneficii VIP");
}
 
public CmdResetDeaths(id)
{
    if(!is_user_vip(id) || !vip_free)
    {
        ColorChat(id, "!4%s!1 Doar membri!3 VIP!1 isi pot reseta decesele.", TAG);
        return;
    }
    cs_set_user_deaths(id, 0);
    cs_set_user_deaths(id, 0);
    ColorChat(id, "!4%s!1 Ti-ai resetat cu succes toate decesele.", TAG);
}

 
public client_PreThink(id)
{
    new cache = get_pcvar_num(cvar[multi_jump]);
    if(is_user_alive(id) && !is_user_vip(id) || is_user_alive(id) && !vip_free)
        return PLUGIN_CONTINUE;
 
    new nbut = get_user_button(id);
    new obut = get_user_oldbutton(id);
 
    if(cache != 0)
    {  
        if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
        {
            if(g_JumpNum[id] < cache)
            {
                g_bJump[id] = true;
                g_JumpNum[id]++;
                return PLUGIN_CONTINUE;
            }
        }
   
        if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
        {
            g_JumpNum[id] = 0;
            return PLUGIN_CONTINUE;
        }
    }
 
    if(get_pcvar_num(cvar[parachute]))
    {
        new Float:fallspeed = 100.0 * -1.0;
        if(nbut & IN_USE)
        {
            new Float:velocity[3];
            entity_get_vector(id, EV_VEC_velocity, velocity);
            if(velocity[2] < 0.0)
            {
                entity_set_int(id, EV_INT_sequence, 3);
                entity_set_int(id, EV_INT_gaitsequence, 1);
                entity_set_float(id, EV_FL_frame, 1.0);
                entity_set_float(id, EV_FL_framerate, 1.0);
 
                velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed;
                entity_set_vector(id, EV_VEC_velocity, velocity);
            }
        }
    }
    return PLUGIN_CONTINUE;
}
 
public client_PostThink(id)
{
    new jump_num = get_pcvar_num(cvar[multi_jump]);
    if(!jump_num)
        return PLUGIN_CONTINUE;
       
    if(is_user_alive(id) && !is_user_vip(id) || is_user_alive(id) && !vip_free)
        return PLUGIN_CONTINUE;
   
    if(g_bJump[id])
    {
        new Float:fVelocity[3];
        entity_get_vector(id, EV_VEC_velocity, fVelocity);
        fVelocity[2] = random_float(265.0, 285.0);
        entity_set_vector(id, EV_VEC_velocity, fVelocity);
       
        g_bJump[id] = false;
        return PLUGIN_CONTINUE;
    }
   
    return PLUGIN_CONTINUE;
}
 
public event_DeathMsg()
{
    new killer = read_data(1), hs = read_data(3);  
    if(is_user_alive(killer) && is_user_vip(killer) || is_user_alive(killer) && vip_free)
    {
        if(killer == read_data(2)) return PLUGIN_HANDLED;
 
        if(hs && !user_has_weapon(killer, CSW_HEGRENADE)) give_item(killer, "weapon_hegrenade");
 
        new cache = hs ? get_pcvar_num(cvar[hp_hs]) : get_pcvar_num(cvar[hp_kill]);
        if(cache != 0) set_user_health(killer, min(get_user_health(killer) + cache, get_pcvar_num(cvar[hp_max])));
 
        cache = hs ? get_pcvar_num(cvar[ap_hs]) : get_pcvar_num(cvar[ap_kill]);
        if(cache != 0) set_user_armor(killer, min(get_user_armor(killer) + cache, get_pcvar_num(cvar[hp_max])));
 
        cache = hs ? get_pcvar_num(cvar[money_hs]) : get_pcvar_num(cvar[money_kill]);
        if(cache != 0) cs_set_user_money(killer, min(cs_get_user_money(killer) + cache, 16000));
    }
 
    return PLUGIN_CONTINUE;
}
 
public event_Damage(victim)
{
    if(!get_pcvar_num(cvar[show_bullet_dmg]))
        return PLUGIN_CONTINUE;
       
    new id = get_user_attacker(victim);
    if(is_user_valid(id))
    {
        if(is_user_alive(id) && !is_user_vip(id) || is_user_alive(id) && !vip_free)
            return PLUGIN_HANDLED;
       
        if(read_data(4) || read_data(5) || read_data(6))
        {      
            new iPos = ++g_iPlayerPos[id];
            if(iPos == sizeof(g_flCoords))
                iPos = g_iPlayerPos[id] = 0;
           
            new iCol = ++g_iPlayerCol[id];
            if(iCol == sizeof(g_iColors))
                iCol = g_iPlayerCol[id] = 0;
           
            set_hudmessage(g_iColors[iCol][0], g_iColors[iCol][1], g_iColors[iCol][2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1);
            show_hudmessage(id, "%d", read_data(2));
        }
    }
   
    return PLUGIN_CONTINUE;
}

public event_NewRound()
{
    rounds++;
}
 
public event_textmsg()
{
    rounds = 1;
}
 
public fw_PlayerSpawnPost(id)
{
    if(is_user_vip(id) && is_user_alive(id) || is_user_alive(id) && vip_free)
    {
        set_task(0.25, "give_items", id + 212);
        return HAM_IGNORED;
    }
   
    return HAM_IGNORED;
}
 
public give_items(taskid)
{
    new id = taskid - 212;
    if(!is_user_alive(id))
        return;
 
    new cache = get_pcvar_num(cvar[hp_spawn])
    if(cache != 0) set_user_health(id, cache);
 
    cache = get_pcvar_num(cvar[ap_spawn]);
    if(cache != 0) cs_set_user_armor(id, cache, CS_ARMOR_VESTHELM);
 
    cache = get_pcvar_num(cvar[money_spawn]);
    if(cache != 0) cs_set_user_money(id, min(cs_get_user_money(id) + cache, 16000));
 
    if(rounds >= 3) ShowVipMenu(id);
}
 
public msg_ScoreAttrib(msgid, dest, id)
{
    if(!get_pcvar_num(cvar[show_vip_tab]))
        return PLUGIN_CONTINUE;
       
    new id = get_msg_arg_int(1);
    if(is_user_connected(id) && is_user_vip(id) || is_user_connected(id) && vip_free)
        set_msg_arg_int(2, ARG_BYTE, is_user_alive(id) ? (1<<2) : (1<<0));
   
    return PLUGIN_CONTINUE;
}
 
public ShowVipMenu(id)
{
    if(!is_user_connected(id))
        return PLUGIN_HANDLED;
 
    if(!is_user_vip(id) || !vip_free)
    {
        ColorChat(id, "!4%s!1 Imi pare rau, dar nu ai acces la meniul pentru!3 membrii VIP!1.", TAG);
        ColorChat(id, "!4%s!1 Poti cumpara VIP, contactand adresa Y!M:!3 %s!1.", TAG, CONTACT);
        return PLUGIN_HANDLED;
    }
 
    give_item(id, "weapon_hegrenade");
    give_item(id, "weapon_flashbang");
    give_item(id, "weapon_flashbang");
    drop_weapons(id, 2);
    give_item(id, "weapon_deagle");
    cs_set_user_bpammo(id, CSW_DEAGLE, 35);
 
    new menu = menu_create("[V.I.P MENU]", "VipMenuHandler");
    menu_additem(menu, "M4A1 + Echipament", "1");
    menu_additem(menu, "AK-47 + Echipament", "2");
    menu_additem(menu, "AWP + Echipament", "3");
   
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
    menu_display(id, menu, 0);
   
    return PLUGIN_CONTINUE;
}
 
public VipMenuHandler(id, menu, item)
{
    if(!is_user_connected(id) || item == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
 
    new data[6], namei[64], access, CallBack;
    menu_item_getinfo(menu, item, access, data, charsmax(data), namei, charsmax(namei), CallBack);
    new key = str_to_num(data);
 
    switch(key)
    {
        case 1:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_m4a1");
            cs_set_user_bpammo(id, CSW_M4A1, 120);
           
            ColorChat(id, "!4%s!1 Ai ales!3 M4A1!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
        }
 
        case 2:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_ak47");
            cs_set_user_bpammo(id, CSW_AK47, 120);
           
            ColorChat(id, "!4%s!1 Ai ales!3 AK47!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
        }
 
        case 3:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_awp");
            cs_set_user_bpammo(id, CSW_AWP, 30);
           
            ColorChat(id, "!4%s!1 Ai ales!3 AWP!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
        }
    }
 
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}

public cached_vars()
	vip_free = get_pcvar_num(cvar_freevip);

public check_time()
{
	new o;
	time(o, _, _);
	
	vip_free = 1;
	set_pcvar_num(cvar_freevip, 1);
	
	if(!vip_free)
	{
		if(o >= vip_time[0] || o < vip_time[1])
		{
			vip_free = 1;
			set_pcvar_num(cvar_freevip, 1);
			ColorChat(0, "^4%s^1 Eventul^3 Free VIP^1 este activat!", TAG);
		}
	}
	else
	{
		if(o < vip_time[0] && o >= vip_time[1])
		{
			vip_free = 0;
			set_pcvar_num(cvar_freevip, 0);
			ColorChat(0, "^4%s^1 Eventul^3 Free VIP^1 este dezactivat!", TAG);
		}
	}
}

public time_remain(id)
{
	if(vip_free)
		ColorChat(id, "^4%s^1 Timp ramas pana se termina vip-ul free^3 %s", TAG, time_left_vip());
	else if(!vip_free)
		ColorChat(id, "^4%s^1 Timp ramas pana incepe vip-ul free^3 %s", TAG, time_left_vip());
}

public hud_mess()
{
	if(!vip_free)
		return;

	set_hudmessage(random(256), random(256), random(256), 0.00, 0.17, 0, 1.1, 1.0);
	ShowSyncHudMsg(0, g_sync, "Event V.I.P Free !");
}
 
const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);
 
// Drop primary/secondary weapons
stock drop_weapons(id, dropwhat)
{
	// Get user weapons
	static weapons[32], num, i, weaponid, wname[32];
	num = 0; // reset passed weapons count (bugfix)
	get_user_weapons(id, weapons, num);
	
	// Loop through them and drop primaries or secondaries
	for (i = 0; i < num; i++)
	{
		// Prevent re-indexing the array
		weaponid = weapons[i];
		
		if((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
		{
			// Get weapon entity
			get_weaponname(weaponid, wname, charsmax(wname));
			engclient_cmd(id, "drop", wname);
		}
	}
}
 
stock ColorChat(id, String[], any:...)
{
    static szMesage[192];
    vformat(szMesage, charsmax(szMesage), String, 3);
   
    replace_all(szMesage, charsmax(szMesage), "!1", "^1");
    replace_all(szMesage, charsmax(szMesage), "!3", "^3");
    replace_all(szMesage, charsmax(szMesage), "!4", "^4");
   
    static g_msg_SayText = 0;
    if(!g_msg_SayText)
        g_msg_SayText = get_user_msgid("SayText");
   
    new Players[32], iNum = 1, i;
 
    if(id) Players[0] = id;
    else get_players(Players, iNum, "ch");
   
    for(--iNum; iNum >= 0; iNum--)
    {
        i = Players[iNum];
       
        message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i);
        write_byte(i);
        write_string(szMesage);
        message_end();
    }
}

stock time_left_vip()
{
	new timp_ramas[16], len = 0;
	new h, m, lh, lm;
	time(h, m, _);
	switch(vip_free)
	{
		case 0: lh = vip_time[0] - h;
		case 1:
		{
			new l = vip_time[1];
			if(h > l)
				l += add_time(h) + h;
			lh = l - h;
		}
	}
	lm = 60 - m;
	if(lm < 60)
		lh--;
	
	if(lh > 0)
		len += formatex(timp_ramas[len], charsmax(timp_ramas) - len, "%d or%s", lh, lh == 1 ? "a" : "e");
		
	if(lm < 60)
		len += formatex(timp_ramas[len], charsmax(timp_ramas) - len, " %d minut%s", lm, lm == 1 ? "e" : "");
		
	return timp_ramas;
}

stock add_time(x)
{
	new j;
	switch(x)
	{
		case 0: j = 24;
		case 1: j = 23;
		case 2: j = 22;
		case 3: j = 21;
		case 4: j = 20;
		case 5: j = 19;
		case 6: j = 18;
		case 7: j = 17; 
		case 8: j = 16;
		case 9: j = 15;
		case 10: j = 14;
		case 11: j = 13;
		case 12: j = 12;
		case 13: j = 11;
		case 14: j = 10;
		case 15: j = 9;
		case 16: j = 8;
		case 17: j = 7;
		case 18: j = 6;
		case 19: j = 5;
		case 20: j = 4;
		case 21: j = 3;
		case 22: j = 2;
		case 23: j = 1;
	}
	if(x < vip_time[1])
		j = 0;
	
	return j;
}
Poftim
Modifici

Code: Select all

new const vip_time[] = {22, 10};
pentru orele de la vip, prima este ora de start iar a 2-a cea de sfarsit
pentru orele gen 7-8 dimineata pui 07 sau 08, ai inteles tu.
Daca te-am ajutat, lasa si tu un +1
User avatar
Alexandru P.
Membru, skill 0
Membru, skill 0
Posts: 77
Joined: 10 Apr 2020, 11:27
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: CS.BHZD.RO
Fond eXtream: 0
Has thanked: 7 times
Contact:

22 Jul 2020, 14:11

Alexandru P. wrote:
20 Jul 2020, 08:22
robbencsgo wrote:
19 Jul 2020, 20:06
Alexandru P. wrote:
19 Jul 2020, 14:53
Inca nu am gasit solutia / pluginul ....
Ma ajuta cineva ?
Daca este necesar postez pluginul de VIP aici.
posteaza-mi .SMA de la VIP si o sa ti-l fac eu direct din plugin-ul de vip
| Afiseaza codul
/*
CREDITE:
ConnorMcLeod - pentru bullet damage
twistedeuphoria - pentru multi jump
cheap_suit - cateva bucati de cod extrase din biohazard
*/
 
 
#include <amxmodx>
#include <hamsandwich>
#include <engine>
#include <cstrike>
#include <fun>
#include <fakemeta>
 
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
new const TAG[] = "[V.I.P]";     // TAGUL IN CHAT CARE APARE
new const CONTACT[] = "KnockOut";
 
#define is_user_vip(%1) (get_user_flags(%1) & read_flags("x"))
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
 
#define PLUGIN_NAME "VIP System"
#define PLUGIN_NAME_PAUSED "VIP System [OPRIT]"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU"
 
#define is_user_valid(%1) (1 <= %1 <= max_players)
 
enum cvars
{
    hp_spawn = 0,
    ap_spawn,
    money_spawn,
    hp_kill,
    hp_hs,
    ap_kill,
    ap_hs,
    hp_max,
    money_kill,
    money_hs,
    show_vip_tab,
    show_bullet_dmg,
    multi_jump,
    parachute
}
 
new cvar[cvars], rounds = 1;
new max_players;
new bool:g_bJump[33] = false, g_JumpNum[33] = 0;
new g_iPlayerPos[33], g_iPlayerCol[33];
 
// NU SCHIMBA
new const Float:g_flCoords[][] =  
{
    {0.50, 0.40},
    {0.56, 0.44},
    {0.60, 0.50},
    {0.56, 0.56},
    {0.50, 0.60},
    {0.44, 0.56},
    {0.40, 0.50},
    {0.44, 0.44}
}
 
// NU SCHIMBA VALORILE DEJA EXISTENTE. Poti adauga mai multe culori, respectand matricea
new const g_iColors[][] =
{
    {0, 127, 255}, // blue
    {255, 127, 0}, // orange
    {127, 0, 255}, // purple
    {255, 0, 0}, // red
    {255, 100, 150}, // pink
    {0, 255, 0} // green
}
 
public plugin_init()
{  
    new path[64];
    get_localinfo("amxx_configsdir", path, charsmax(path));
    formatex(path, charsmax(path), "%s/vip_maps.ini", path);
   
    new file = fopen(path, "r+");
   
    if(!file_exists(path))
    {
        write_file(path, "; VIP-UL ESTE DEZACTIVAT PE URMATOARELE HARTI: ");
        write_file(path, "; Exemplu de adaugare HARTA:^n; ^"harta^"^n^nfy_snow^ncss_bycastor");
    }
   
    new mapname[32];
    get_mapname(mapname, charsmax(mapname));
   
    new text[121], maptext[32], bool:remove_vip = false;
    while(!feof(file))
    {
        fgets(file, text, charsmax(text));
        trim(text);
       
        if(text[0] == ';' || !strlen(text))
        {
            continue;
        }
       
        parse(text, maptext, charsmax(maptext));
       
        if(equal(maptext, mapname))
        {
            log_amx("Am dezactivat pluginul 'VIP' pe harta %s.", maptext);
            remove_vip = true;
            break;
        }
       
    }
    fclose(file);
   
    if(!remove_vip)
    {
        register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
 
        register_event("DeathMsg", "event_DeathMsg", "a");
        register_event("Damage", "event_Damage", "b", "2>0", "3=0");
        register_event("HLTV", "event_NewRound", "a", "1=0", "2=0");
        register_event("TextMsg", "event_textmsg", "a", "2=#Game_will_restart_in")
 
        RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
 
        register_message(get_user_msgid("ScoreAttrib"), "msg_ScoreAttrib");
 
        register_clcmd("say /vips", "CmdVipsOnline");
        register_clcmd("say_team /vips", "CmdVipsOnline");
        register_clcmd("say vips", "CmdVipsOnline");
        register_clcmd("say_team vips", "CmdVipsOnline");
       
        register_clcmd("say buyvip", "CmdPrintAttributes");
        register_clcmd("say_team buyvip", "CmdPrintAttributes");
        register_clcmd("say /buyvip", "CmdPrintAttributes");
        register_clcmd("say_team /buyvip", "CmdPrintAttributes");
 
        register_clcmd("say /rd", "CmdResetDeaths");
        register_clcmd("say_team /rd", "CmdResetDeaths");
        register_clcmd("say rd", "CmdResetDeaths");
        register_clcmd("say_team rd", "CmdResetDeaths");

        cvar[hp_spawn] = register_cvar("vip_hp_spawn", "100");          // 0 = dezactivat
        cvar[ap_spawn] = register_cvar("vip_ap_spawn", "100");          // 0 = dezactivat
        cvar[money_spawn] = register_cvar("vip_money_spawn", "0");       // 0 = dezactivat
        cvar[show_vip_tab] = register_cvar("vip_show_tab", "1");            // 0 = dezactivat
        cvar[show_bullet_dmg] = register_cvar("vip_show_bullet_dmg", "1");      // 0 = dezactivat
        cvar[multi_jump] = register_cvar("vip_multijump", "0");         // 0 = dezactivat. Daca valoarea cvar-ului este 1, vei sari de 2 ori. Orice valoare pui, va fi +1 jump
        cvar[hp_kill] = register_cvar("vip_hp_kill", "5");              // 0 = dezactivat
        cvar[hp_hs] = register_cvar("vip_hp_hs", "10");             // 0 = dezactivat
        cvar[ap_kill] = register_cvar("vip_ap_kill", "5");              // 0 = dezactivat
        cvar[ap_hs] = register_cvar("vip_ap_hs", "10");             // 0 = dezactivat
        cvar[hp_max] = register_cvar("vip_hp_max", "120");          // 0 = viata infinita
        cvar[money_kill] = register_cvar("vip_money_kill", "350");          // 0 = dezactivat
        cvar[money_hs] = register_cvar("vip_money_hs", "450");          // 0 = dezactivat
        cvar[parachute] = register_cvar("vip_parachute", "0");          // 0 = dezactivat
 
        max_players = get_maxplayers();
    }
    else
    {
        register_plugin(PLUGIN_NAME_PAUSED, PLUGIN_VERSION, PLUGIN_AUTHOR);
        pause("ade");
    }
   
    register_cvar("vip_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
    set_cvar_string("vip_", PLUGIN_VERSION);
}
 
public client_putinserver(id)
{
    g_JumpNum[id] = 0;
    g_bJump[id] = false;
}
 
public CmdVipsOnline(id)
{
    if(!is_user_connected(id))
        return PLUGIN_CONTINUE;
 
    new adminnames[33][32], message[256], i, count, len;
    len = format(message, charsmax(message), "!4%s!3 VIPS ONLINE: ", TAG);
    for(i = 1 ; i <= max_players; i++)
    {
        if(is_user_connected(i) && is_user_vip(i))
            get_user_name(i, adminnames[count++], charsmax(adminnames[]));
    }
   
    if(count > 0)
    {
        for(i = 0; i < count; i++)
        {
            len += format(message[len], 255 -len, "!4%s!1%s ", adminnames, i < (count -1) ? " | " : "");
        }
        ColorChat(id, message);
    }
    else
    {
        len += format(message[len], 255 -len, "!4No one !")
        ColorChat(id, message);
    }
 
    return PLUGIN_CONTINUE;
}
 
public CmdPrintAttributes(id)
{
    if(!is_user_connected(id)) return;
    show_motd(id, "vip.txt", "Beneficii VIP");
}
 
public CmdResetDeaths(id)
{
    if(!is_user_vip(id))
    {
        ColorChat(id, "!4%s!1 Doar membri!3 VIP!1 isi pot reseta decesele.", TAG);
        return;
    }
    cs_set_user_deaths(id, 0);
    cs_set_user_deaths(id, 0);
    ColorChat(id, "!4%s!1 Ti-ai resetat cu succes toate decesele.", TAG);
}

 
public client_PreThink(id)
{
    new cache = get_pcvar_num(cvar[multi_jump]);
    if(is_user_alive(id) && !is_user_vip(id))
        return PLUGIN_CONTINUE;
 
    new nbut = get_user_button(id);
    new obut = get_user_oldbutton(id);
 
    if(cache != 0)
    {  
        if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
        {
            if(g_JumpNum[id] < cache)
            {
                g_bJump[id] = true;
                g_JumpNum[id]++;
                return PLUGIN_CONTINUE;
            }
        }
   
        if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
        {
            g_JumpNum[id] = 0;
            return PLUGIN_CONTINUE;
        }
    }
 
    if(get_pcvar_num(cvar[parachute]))
    {
        new Float:fallspeed = 100.0 * -1.0;
        if(nbut & IN_USE)
        {
            new Float:velocity[3];
            entity_get_vector(id, EV_VEC_velocity, velocity);
            if(velocity[2] < 0.0)
            {
                entity_set_int(id, EV_INT_sequence, 3);
                entity_set_int(id, EV_INT_gaitsequence, 1);
                entity_set_float(id, EV_FL_frame, 1.0);
                entity_set_float(id, EV_FL_framerate, 1.0);
 
                velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed;
                entity_set_vector(id, EV_VEC_velocity, velocity);
            }
        }
    }
    return PLUGIN_CONTINUE;
}
 
public client_PostThink(id)
{
    new jump_num = get_pcvar_num(cvar[multi_jump]);
    if(!jump_num)
        return PLUGIN_CONTINUE;
       
    if(is_user_alive(id) && !is_user_vip(id))
        return PLUGIN_CONTINUE;
   
    if(g_bJump[id])
    {
        new Float:fVelocity[3];
        entity_get_vector(id, EV_VEC_velocity, fVelocity);
        fVelocity[2] = random_float(265.0, 285.0);
        entity_set_vector(id, EV_VEC_velocity, fVelocity);
       
        g_bJump[id] = false;
        return PLUGIN_CONTINUE;
    }
   
    return PLUGIN_CONTINUE;
}
 
public event_DeathMsg()
{
    new killer = read_data(1), hs = read_data(3);  
    if(is_user_alive(killer) && is_user_vip(killer))
    {
        if(killer == read_data(2)) return PLUGIN_HANDLED;
 
        if(hs && !user_has_weapon(killer, CSW_HEGRENADE)) give_item(killer, "weapon_hegrenade");
 
        new cache = hs ? get_pcvar_num(cvar[hp_hs]) : get_pcvar_num(cvar[hp_kill]);
        if(cache != 0) set_user_health(killer, min(get_user_health(killer) + cache, get_pcvar_num(cvar[hp_max])));
 
        cache = hs ? get_pcvar_num(cvar[ap_hs]) : get_pcvar_num(cvar[ap_kill]);
        if(cache != 0) set_user_armor(killer, min(get_user_armor(killer) + cache, get_pcvar_num(cvar[hp_max])));
 
        cache = hs ? get_pcvar_num(cvar[money_hs]) : get_pcvar_num(cvar[money_kill]);
        if(cache != 0) cs_set_user_money(killer, min(cs_get_user_money(killer) + cache, 16000));
    }
 
    return PLUGIN_CONTINUE;
}
 
public event_Damage(victim)
{
    if(!get_pcvar_num(cvar[show_bullet_dmg]))
        return PLUGIN_CONTINUE;
       
    new id = get_user_attacker(victim);
    if(is_user_valid(id))
    {
        if(is_user_alive(id) && !is_user_vip(id))
            return PLUGIN_HANDLED;
       
        if(read_data(4) || read_data(5) || read_data(6))
        {      
            new iPos = ++g_iPlayerPos[id];
            if(iPos == sizeof(g_flCoords))
                iPos = g_iPlayerPos[id] = 0;
           
            new iCol = ++g_iPlayerCol[id];
            if(iCol == sizeof(g_iColors))
                iCol = g_iPlayerCol[id] = 0;
           
            set_hudmessage(g_iColors[iCol][0], g_iColors[iCol][1], g_iColors[iCol][2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1);
            show_hudmessage(id, "%d", read_data(2));
        }
    }
   
    return PLUGIN_CONTINUE;
}

public event_NewRound()
{
    rounds++;
}
 
public event_textmsg()
{
    rounds = 1;
}
 
public fw_PlayerSpawnPost(id)
{
    if(is_user_vip(id) && is_user_alive(id))
    {
        set_task(0.25, "give_items", id + 212);
        return HAM_IGNORED;
    }
   
    return HAM_IGNORED;
}
 
public give_items(taskid)
{
    new id = taskid - 212;
    if(!is_user_alive(id))
        return;
 
    new cache = get_pcvar_num(cvar[hp_spawn])
    if(cache != 0) set_user_health(id, cache);
 
    cache = get_pcvar_num(cvar[ap_spawn]);
    if(cache != 0) cs_set_user_armor(id, cache, CS_ARMOR_VESTHELM);
 
    cache = get_pcvar_num(cvar[money_spawn]);
    if(cache != 0) cs_set_user_money(id, min(cs_get_user_money(id) + cache, 16000));
 
    if(rounds >= 3) ShowVipMenu(id);
}
 
public msg_ScoreAttrib(msgid, dest, id)
{
    if(!get_pcvar_num(cvar[show_vip_tab]))
        return PLUGIN_CONTINUE;
       
    new id = get_msg_arg_int(1);
    if(is_user_connected(id) && is_user_vip(id))
        set_msg_arg_int(2, ARG_BYTE, is_user_alive(id) ? (1<<2) : (1<<0));
   
    return PLUGIN_CONTINUE;
}
 
public ShowVipMenu(id)
{
    if(!is_user_connected(id))
        return PLUGIN_HANDLED;
 
    if(!is_user_vip(id))
    {
        ColorChat(id, "!4%s!1 Imi pare rau, dar nu ai acces la meniul pentru!3 membrii VIP!1.", TAG);
        ColorChat(id, "!4%s!1 Poti cumpara VIP, contactand adresa Y!M:!3 %s!1.", TAG, CONTACT);
        return PLUGIN_HANDLED;
    }
 
    give_item(id, "weapon_hegrenade");
    give_item(id, "weapon_flashbang");
    give_item(id, "weapon_flashbang");
    drop_weapons(id, 2);
    give_item(id, "weapon_deagle");
    cs_set_user_bpammo(id, CSW_DEAGLE, 35);
 
    new menu = menu_create("[V.I.P MENU]", "VipMenuHandler");
    menu_additem(menu, "M4A1 + Echipament", "1");
    menu_additem(menu, "AK-47 + Echipament", "2");
    menu_additem(menu, "AWP + Echipament", "3");
   
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
    menu_display(id, menu, 0);
   
    return PLUGIN_CONTINUE;
}
 
public VipMenuHandler(id, menu, item)
{
    if(!is_user_connected(id) || item == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
 
    new data[6], namei[64], access, CallBack;
    menu_item_getinfo(menu, item, access, data, charsmax(data), namei, charsmax(namei), CallBack);
    new key = str_to_num(data);
 
    switch(key)
    {
        case 1:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_m4a1");
            cs_set_user_bpammo(id, CSW_M4A1, 120);
           
            ColorChat(id, "!4%s!1 Ai ales!3 M4A1!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
        }
 
        case 2:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_ak47");
            cs_set_user_bpammo(id, CSW_AK47, 120);
           
            ColorChat(id, "!4%s!1 Ai ales!3 AK47!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
        }
 
        case 3:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_awp");
            cs_set_user_bpammo(id, CSW_AWP, 30);
           
            ColorChat(id, "!4%s!1 Ai ales!3 AWP!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
        }
    }
 
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}
 
const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);
 
// Drop primary/secondary weapons
stock drop_weapons(id, dropwhat)
{
    // Get user weapons
    static weapons[32], num, i, weaponid, wname[32];
    num = 0; // reset passed weapons count (bugfix)
    get_user_weapons(id, weapons, num);
   
    // Loop through them and drop primaries or secondaries
    for (i = 0; i < num; i++)
    {
        // Prevent re-indexing the array
        weaponid = weapons;
       
        if((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
        {
            // Get weapon entity
            get_weaponname(weaponid, wname, charsmax(wname));
            engclient_cmd(id, "drop", wname);
        }
    }
}
 
stock ColorChat(id, String[], any:...)
{
    static szMesage[192];
    vformat(szMesage, charsmax(szMesage), String, 3);
   
    replace_all(szMesage, charsmax(szMesage), "!1", "^1");
    replace_all(szMesage, charsmax(szMesage), "!3", "^3");
    replace_all(szMesage, charsmax(szMesage), "!4", "^4");
   
    static g_msg_SayText = 0;
    if(!g_msg_SayText)
        g_msg_SayText = get_user_msgid("SayText");
   
    new Players[32], iNum = 1, i;
 
    if(id) Players[0] = id;
    else get_players(Players, iNum, "ch");
   
    for(--iNum; iNum >= 0; iNum--)
    {
        i = Players[iNum];
       
        message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i);
        write_byte(i);
        write_string(szMesage);
        message_end();
    }
}


Arata mesajele dar nu apare meniul de vip ..

Apare mesajul ca nu ai acces la VIP
User avatar
robbencsgo
Membru, skill 0
Membru, skill 0
Posts: 96
Joined: 31 Aug 2019, 19:14
Detinator Steam: Da
CS Status: aimer
SteamID: an prevat
Fond eXtream: 0
Has thanked: 9 times
Been thanked: 11 times
Contact:

22 Jul 2020, 14:37

Code: Select all

#include <amxmodx>
#include <hamsandwich>
#include <engine>
#include <cstrike>
#include <fun>
#include <fakemeta>
 
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
new const TAG[] = "[V.I.P]";     // TAGUL IN CHAT CARE APARE
new const CONTACT[] = "KnockOut";
 
#define is_user_vip(%1) (get_user_flags(%1) & read_flags("x"))
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
 
#define PLUGIN_NAME "VIP System"
#define PLUGIN_NAME_PAUSED "VIP System [OPRIT]"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU"
 
#define is_user_valid(%1) (1 <= %1 <= max_players)

//vip freec

new const vip_time[] = {22, 10};

new g_sync, cvar_freevip;
new vip_free = 0;
////////////////////////
 
enum cvars
{
    hp_spawn = 0,
    ap_spawn,
    money_spawn,
    hp_kill,
    hp_hs,
    ap_kill,
    ap_hs,
    hp_max,
    money_kill,
    money_hs,
    show_vip_tab,
    show_bullet_dmg,
    multi_jump,
    parachute
}
 
new cvar[cvars], rounds = 1;
new max_players;
new bool:g_bJump[33] = false, g_JumpNum[33] = 0;
new g_iPlayerPos[33], g_iPlayerCol[33];
 
// NU SCHIMBA
new const Float:g_flCoords[][] =  
{
    {0.50, 0.40},
    {0.56, 0.44},
    {0.60, 0.50},
    {0.56, 0.56},
    {0.50, 0.60},
    {0.44, 0.56},
    {0.40, 0.50},
    {0.44, 0.44}
}
 
// NU SCHIMBA VALORILE DEJA EXISTENTE. Poti adauga mai multe culori, respectand matricea
new const g_iColors[][] =
{
    {0, 127, 255}, // blue
    {255, 127, 0}, // orange
    {127, 0, 255}, // purple
    {255, 0, 0}, // red
    {255, 100, 150}, // pink
    {0, 255, 0} // green
}
 
public plugin_init()
{  
    new path[64];
    get_localinfo("amxx_configsdir", path, charsmax(path));
    formatex(path, charsmax(path), "%s/vip_maps.ini", path);
   
    new file = fopen(path, "r+");
   
    if(!file_exists(path))
    {
        write_file(path, "; VIP-UL ESTE DEZACTIVAT PE URMATOARELE HARTI: ");
        write_file(path, "; Exemplu de adaugare HARTA:^n; ^"harta^"^n^nfy_snow^ncss_bycastor");
    }
   
    new mapname[32];
    get_mapname(mapname, charsmax(mapname));
   
    new text[121], maptext[32], bool:remove_vip = false;
    while(!feof(file))
    {
        fgets(file, text, charsmax(text));
        trim(text);
       
        if(text[0] == ';' || !strlen(text))
        {
            continue;
        }
       
        parse(text, maptext, charsmax(maptext));
       
        if(equal(maptext, mapname))
        {
            log_amx("Am dezactivat pluginul 'VIP' pe harta %s.", maptext);
            remove_vip = true;
            break;
        }
       
    }
    fclose(file);
   
    if(!remove_vip)
    {
        register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
 
        register_event("DeathMsg", "event_DeathMsg", "a");
        register_event("Damage", "event_Damage", "b", "2>0", "3=0");
        register_event("HLTV", "event_NewRound", "a", "1=0", "2=0");
        register_event("TextMsg", "event_textmsg", "a", "2=#Game_will_restart_in")
 
        RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
 
        register_message(get_user_msgid("ScoreAttrib"), "msg_ScoreAttrib");
 
        register_clcmd("say /vips", "CmdVipsOnline");
        register_clcmd("say_team /vips", "CmdVipsOnline");
        register_clcmd("say vips", "CmdVipsOnline");
        register_clcmd("say_team vips", "CmdVipsOnline");
       
        register_clcmd("say buyvip", "CmdPrintAttributes");
        register_clcmd("say_team buyvip", "CmdPrintAttributes");
        register_clcmd("say /buyvip", "CmdPrintAttributes");
        register_clcmd("say_team /buyvip", "CmdPrintAttributes");
 
        register_clcmd("say /rd", "CmdResetDeaths");
        register_clcmd("say_team /rd", "CmdResetDeaths");
        register_clcmd("say rd", "CmdResetDeaths");
        register_clcmd("say_team rd", "CmdResetDeaths");
	
	//VIP FREE
        register_clcmd("say /timevip", "time_remain");

        set_task(1.0, "check_time");
        set_task(60.0, "check_time", _, _, _, "b");
        set_task(1.0, "hud_mess", _, _, _, "b");

        cvar_freevip = register_cvar("vip_free", "1");

        cached_vars();
        g_sync = CreateHudSyncObj();
        //////////////////////////////////////////

        cvar[hp_spawn] = register_cvar("vip_hp_spawn", "100");          // 0 = dezactivat
        cvar[ap_spawn] = register_cvar("vip_ap_spawn", "100");          // 0 = dezactivat
        cvar[money_spawn] = register_cvar("vip_money_spawn", "0");       // 0 = dezactivat
        cvar[show_vip_tab] = register_cvar("vip_show_tab", "1");            // 0 = dezactivat
        cvar[show_bullet_dmg] = register_cvar("vip_show_bullet_dmg", "1");      // 0 = dezactivat
        cvar[multi_jump] = register_cvar("vip_multijump", "0");         // 0 = dezactivat. Daca valoarea cvar-ului este 1, vei sari de 2 ori. Orice valoare pui, va fi +1 jump
        cvar[hp_kill] = register_cvar("vip_hp_kill", "5");              // 0 = dezactivat
        cvar[hp_hs] = register_cvar("vip_hp_hs", "10");             // 0 = dezactivat
        cvar[ap_kill] = register_cvar("vip_ap_kill", "5");              // 0 = dezactivat
        cvar[ap_hs] = register_cvar("vip_ap_hs", "10");             // 0 = dezactivat
        cvar[hp_max] = register_cvar("vip_hp_max", "120");          // 0 = viata infinita
        cvar[money_kill] = register_cvar("vip_money_kill", "350");          // 0 = dezactivat
        cvar[money_hs] = register_cvar("vip_money_hs", "450");          // 0 = dezactivat
        cvar[parachute] = register_cvar("vip_parachute", "0");          // 0 = dezactivat
 
        max_players = get_maxplayers();
    }
    else
    {
        register_plugin(PLUGIN_NAME_PAUSED, PLUGIN_VERSION, PLUGIN_AUTHOR);
        pause("ade");
    }
   
    register_cvar("vip_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
    set_cvar_string("vip_", PLUGIN_VERSION);
}
 
public client_putinserver(id)
{
    g_JumpNum[id] = 0;
    g_bJump[id] = false;
}
 
public CmdVipsOnline(id)
{
    if(!is_user_connected(id))
        return PLUGIN_CONTINUE;
 
    new adminnames[33][32], message[256], i, count, len;
    len = format(message, charsmax(message), "!4%s!3 VIPS ONLINE: ", TAG);
    for(i = 1 ; i <= max_players; i++)
    {
        if(is_user_connected(i) && is_user_vip(i))
            get_user_name(i, adminnames[count++], charsmax(adminnames[]));
    }
   
    if(count > 0)
    {
        for(i = 0; i < count; i++)
        {
            len += format(message[len], 255 -len, "!4%s!1%s ", adminnames, i < (count -1) ? " | " : "");
        }
        ColorChat(id, message);
    }
    else
    {
        len += format(message[len], 255 -len, "!4No one !")
        ColorChat(id, message);
    }
 
    return PLUGIN_CONTINUE;
}
 
public CmdPrintAttributes(id)
{
    if(!is_user_connected(id)) return;
    show_motd(id, "vip.txt", "Beneficii VIP");
}
 
public CmdResetDeaths(id)
{
    if(!is_user_vip(id) || !vip_free)
    {
        ColorChat(id, "!4%s!1 Doar membri!3 VIP!1 isi pot reseta decesele.", TAG);
        return;
    }
    cs_set_user_deaths(id, 0);
    cs_set_user_deaths(id, 0);
    ColorChat(id, "!4%s!1 Ti-ai resetat cu succes toate decesele.", TAG);
}

 
public client_PreThink(id)
{
    new cache = get_pcvar_num(cvar[multi_jump]);
    if(is_user_alive(id) && !is_user_vip(id) || is_user_alive(id) && !vip_free)
        return PLUGIN_CONTINUE;
 
    new nbut = get_user_button(id);
    new obut = get_user_oldbutton(id);
 
    if(cache != 0)
    {  
        if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
        {
            if(g_JumpNum[id] < cache)
            {
                g_bJump[id] = true;
                g_JumpNum[id]++;
                return PLUGIN_CONTINUE;
            }
        }
   
        if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
        {
            g_JumpNum[id] = 0;
            return PLUGIN_CONTINUE;
        }
    }
 
    if(get_pcvar_num(cvar[parachute]))
    {
        new Float:fallspeed = 100.0 * -1.0;
        if(nbut & IN_USE)
        {
            new Float:velocity[3];
            entity_get_vector(id, EV_VEC_velocity, velocity);
            if(velocity[2] < 0.0)
            {
                entity_set_int(id, EV_INT_sequence, 3);
                entity_set_int(id, EV_INT_gaitsequence, 1);
                entity_set_float(id, EV_FL_frame, 1.0);
                entity_set_float(id, EV_FL_framerate, 1.0);
 
                velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed;
                entity_set_vector(id, EV_VEC_velocity, velocity);
            }
        }
    }
    return PLUGIN_CONTINUE;
}
 
public client_PostThink(id)
{
    new jump_num = get_pcvar_num(cvar[multi_jump]);
    if(!jump_num)
        return PLUGIN_CONTINUE;
       
    if(is_user_alive(id) && !is_user_vip(id) || is_user_alive(id) && !vip_free)
        return PLUGIN_CONTINUE;
   
    if(g_bJump[id])
    {
        new Float:fVelocity[3];
        entity_get_vector(id, EV_VEC_velocity, fVelocity);
        fVelocity[2] = random_float(265.0, 285.0);
        entity_set_vector(id, EV_VEC_velocity, fVelocity);
       
        g_bJump[id] = false;
        return PLUGIN_CONTINUE;
    }
   
    return PLUGIN_CONTINUE;
}
 
public event_DeathMsg()
{
    new killer = read_data(1), hs = read_data(3);  
    if(is_user_alive(killer) && is_user_vip(killer) || is_user_alive(killer) && vip_free)
    {
        if(killer == read_data(2)) return PLUGIN_HANDLED;
 
        if(hs && !user_has_weapon(killer, CSW_HEGRENADE)) give_item(killer, "weapon_hegrenade");
 
        new cache = hs ? get_pcvar_num(cvar[hp_hs]) : get_pcvar_num(cvar[hp_kill]);
        if(cache != 0) set_user_health(killer, min(get_user_health(killer) + cache, get_pcvar_num(cvar[hp_max])));
 
        cache = hs ? get_pcvar_num(cvar[ap_hs]) : get_pcvar_num(cvar[ap_kill]);
        if(cache != 0) set_user_armor(killer, min(get_user_armor(killer) + cache, get_pcvar_num(cvar[hp_max])));
 
        cache = hs ? get_pcvar_num(cvar[money_hs]) : get_pcvar_num(cvar[money_kill]);
        if(cache != 0) cs_set_user_money(killer, min(cs_get_user_money(killer) + cache, 16000));
    }
 
    return PLUGIN_CONTINUE;
}
 
public event_Damage(victim)
{
    if(!get_pcvar_num(cvar[show_bullet_dmg]))
        return PLUGIN_CONTINUE;
       
    new id = get_user_attacker(victim);
    if(is_user_valid(id))
    {
        if(is_user_alive(id) && !is_user_vip(id) || is_user_alive(id) && !vip_free)
            return PLUGIN_HANDLED;
       
        if(read_data(4) || read_data(5) || read_data(6))
        {      
            new iPos = ++g_iPlayerPos[id];
            if(iPos == sizeof(g_flCoords))
                iPos = g_iPlayerPos[id] = 0;
           
            new iCol = ++g_iPlayerCol[id];
            if(iCol == sizeof(g_iColors))
                iCol = g_iPlayerCol[id] = 0;
           
            set_hudmessage(g_iColors[iCol][0], g_iColors[iCol][1], g_iColors[iCol][2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1);
            show_hudmessage(id, "%d", read_data(2));
        }
    }
   
    return PLUGIN_CONTINUE;
}

public event_NewRound()
{
    rounds++;
}
 
public event_textmsg()
{
    rounds = 1;
}
 
public fw_PlayerSpawnPost(id)
{
    if(is_user_vip(id) && is_user_alive(id) || is_user_alive(id) && vip_free)
    {
        set_task(0.25, "give_items", id + 212);
        return HAM_IGNORED;
    }
   
    return HAM_IGNORED;
}
 
public give_items(taskid)
{
    new id = taskid - 212;
    if(!is_user_alive(id))
        return;
 
    new cache = get_pcvar_num(cvar[hp_spawn])
    if(cache != 0) set_user_health(id, cache);
 
    cache = get_pcvar_num(cvar[ap_spawn]);
    if(cache != 0) cs_set_user_armor(id, cache, CS_ARMOR_VESTHELM);
 
    cache = get_pcvar_num(cvar[money_spawn]);
    if(cache != 0) cs_set_user_money(id, min(cs_get_user_money(id) + cache, 16000));
 
    if(rounds >= 3) ShowVipMenu(id);
}
 
public msg_ScoreAttrib(msgid, dest, id)
{
    if(!get_pcvar_num(cvar[show_vip_tab]))
        return PLUGIN_CONTINUE;
       
    new id = get_msg_arg_int(1);
    if(is_user_connected(id) && is_user_vip(id) || is_user_connected(id) && vip_free)
        set_msg_arg_int(2, ARG_BYTE, is_user_alive(id) ? (1<<2) : (1<<0));
   
    return PLUGIN_CONTINUE;
}
 
public ShowVipMenu(id)
{
    if(!is_user_connected(id))
        return PLUGIN_HANDLED;
 
    give_item(id, "weapon_hegrenade");
    give_item(id, "weapon_flashbang");
    give_item(id, "weapon_flashbang");
    drop_weapons(id, 2);
    give_item(id, "weapon_deagle");
    cs_set_user_bpammo(id, CSW_DEAGLE, 35);
 
    new menu = menu_create("[V.I.P MENU]", "VipMenuHandler");
    menu_additem(menu, "M4A1 + Echipament", "1");
    menu_additem(menu, "AK-47 + Echipament", "2");
    menu_additem(menu, "AWP + Echipament", "3");
   
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
    menu_display(id, menu, 0);
   
    return PLUGIN_CONTINUE;
}
 
public VipMenuHandler(id, menu, item)
{
    if(!is_user_connected(id) || item == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
 
    new data[6], namei[64], access, CallBack;
    menu_item_getinfo(menu, item, access, data, charsmax(data), namei, charsmax(namei), CallBack);
    new key = str_to_num(data);
 
    switch(key)
    {
        case 1:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_m4a1");
            cs_set_user_bpammo(id, CSW_M4A1, 120);
           
            ColorChat(id, "!4%s!1 Ai ales!3 M4A1!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
        }
 
        case 2:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_ak47");
            cs_set_user_bpammo(id, CSW_AK47, 120);
           
            ColorChat(id, "!4%s!1 Ai ales!3 AK47!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
        }
 
        case 3:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_awp");
            cs_set_user_bpammo(id, CSW_AWP, 30);
           
            ColorChat(id, "!4%s!1 Ai ales!3 AWP!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
        }
    }
 
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}

public cached_vars()
	vip_free = get_pcvar_num(cvar_freevip);

public check_time()
{
	new o;
	time(o, _, _);
	
	vip_free = 1;
	set_pcvar_num(cvar_freevip, 1);
	
	if(!vip_free)
	{
		if(o >= vip_time[0] || o < vip_time[1])
		{
			vip_free = 1;
			set_pcvar_num(cvar_freevip, 1);
			ColorChat(0, "^4%s^1 Eventul^3 Free VIP^1 este activat!", TAG);
		}
	}
	else
	{
		if(o < vip_time[0] && o >= vip_time[1])
		{
			vip_free = 0;
			set_pcvar_num(cvar_freevip, 0);
			ColorChat(0, "^4%s^1 Eventul^3 Free VIP^1 este dezactivat!", TAG);
		}
	}
}

public time_remain(id)
{
	if(vip_free)
		ColorChat(id, "^4%s^1 Timp ramas pana se termina vip-ul free^3 %s", TAG, time_left_vip());
	else if(!vip_free)
		ColorChat(id, "^4%s^1 Timp ramas pana incepe vip-ul free^3 %s", TAG, time_left_vip());
}

public hud_mess()
{
	if(!vip_free)
		return;

	set_hudmessage(random(256), random(256), random(256), 0.00, 0.17, 0, 1.1, 1.0);
	ShowSyncHudMsg(0, g_sync, "Event V.I.P Free !");
}
 
const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);
 
// Drop primary/secondary weapons
stock drop_weapons(id, dropwhat)
{
	// Get user weapons
	static weapons[32], num, i, weaponid, wname[32];
	num = 0; // reset passed weapons count (bugfix)
	get_user_weapons(id, weapons, num);
	
	// Loop through them and drop primaries or secondaries
	for (i = 0; i < num; i++)
	{
		// Prevent re-indexing the array
		weaponid = weapons[i];
		
		if((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
		{
			// Get weapon entity
			get_weaponname(weaponid, wname, charsmax(wname));
			engclient_cmd(id, "drop", wname);
		}
	}
}
 
stock ColorChat(id, String[], any:...)
{
    static szMesage[192];
    vformat(szMesage, charsmax(szMesage), String, 3);
   
    replace_all(szMesage, charsmax(szMesage), "!1", "^1");
    replace_all(szMesage, charsmax(szMesage), "!3", "^3");
    replace_all(szMesage, charsmax(szMesage), "!4", "^4");
   
    static g_msg_SayText = 0;
    if(!g_msg_SayText)
        g_msg_SayText = get_user_msgid("SayText");
   
    new Players[32], iNum = 1, i;
 
    if(id) Players[0] = id;
    else get_players(Players, iNum, "ch");
   
    for(--iNum; iNum >= 0; iNum--)
    {
        i = Players[iNum];
       
        message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i);
        write_byte(i);
        write_string(szMesage);
        message_end();
    }
}

stock time_left_vip()
{
	new timp_ramas[16], len = 0;
	new h, m, lh, lm;
	time(h, m, _);
	switch(vip_free)
	{
		case 0: lh = vip_time[0] - h;
		case 1:
		{
			new l = vip_time[1];
			if(h > l)
				l += add_time(h) + h;
			lh = l - h;
		}
	}
	lm = 60 - m;
	if(lm < 60)
		lh--;
	
	if(lh > 0)
		len += formatex(timp_ramas[len], charsmax(timp_ramas) - len, "%d or%s", lh, lh == 1 ? "a" : "e");
		
	if(lm < 60)
		len += formatex(timp_ramas[len], charsmax(timp_ramas) - len, " %d minut%s", lm, lm == 1 ? "e" : "");
		
	return timp_ramas;
}

stock add_time(x)
{
	new j;
	switch(x)
	{
		case 0: j = 24;
		case 1: j = 23;
		case 2: j = 22;
		case 3: j = 21;
		case 4: j = 20;
		case 5: j = 19;
		case 6: j = 18;
		case 7: j = 17; 
		case 8: j = 16;
		case 9: j = 15;
		case 10: j = 14;
		case 11: j = 13;
		case 12: j = 12;
		case 13: j = 11;
		case 14: j = 10;
		case 15: j = 9;
		case 16: j = 8;
		case 17: j = 7;
		case 18: j = 6;
		case 19: j = 5;
		case 20: j = 4;
		case 21: j = 3;
		case 22: j = 2;
		case 23: j = 1;
	}
	if(x < vip_time[1])
		j = 0;
	
	return j;
}
Daca te-am ajutat, lasa si tu un +1
User avatar
Alexandru P.
Membru, skill 0
Membru, skill 0
Posts: 77
Joined: 10 Apr 2020, 11:27
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: CS.BHZD.RO
Fond eXtream: 0
Has thanked: 7 times
Contact:

22 Jul 2020, 15:37

robbencsgo wrote:
22 Jul 2020, 14:37

Code: Select all

#include <amxmodx>
#include <hamsandwich>
#include <engine>
#include <cstrike>
#include <fun>
#include <fakemeta>
 
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
new const TAG[] = "[V.I.P]";     // TAGUL IN CHAT CARE APARE
new const CONTACT[] = "KnockOut";
 
#define is_user_vip(%1) (get_user_flags(%1) & read_flags("x"))
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
 
#define PLUGIN_NAME "VIP System"
#define PLUGIN_NAME_PAUSED "VIP System [OPRIT]"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU"
 
#define is_user_valid(%1) (1 <= %1 <= max_players)

//vip freec

new const vip_time[] = {22, 10};

new g_sync, cvar_freevip;
new vip_free = 0;
////////////////////////
 
enum cvars
{
    hp_spawn = 0,
    ap_spawn,
    money_spawn,
    hp_kill,
    hp_hs,
    ap_kill,
    ap_hs,
    hp_max,
    money_kill,
    money_hs,
    show_vip_tab,
    show_bullet_dmg,
    multi_jump,
    parachute
}
 
new cvar[cvars], rounds = 1;
new max_players;
new bool:g_bJump[33] = false, g_JumpNum[33] = 0;
new g_iPlayerPos[33], g_iPlayerCol[33];
 
// NU SCHIMBA
new const Float:g_flCoords[][] =  
{
    {0.50, 0.40},
    {0.56, 0.44},
    {0.60, 0.50},
    {0.56, 0.56},
    {0.50, 0.60},
    {0.44, 0.56},
    {0.40, 0.50},
    {0.44, 0.44}
}
 
// NU SCHIMBA VALORILE DEJA EXISTENTE. Poti adauga mai multe culori, respectand matricea
new const g_iColors[][] =
{
    {0, 127, 255}, // blue
    {255, 127, 0}, // orange
    {127, 0, 255}, // purple
    {255, 0, 0}, // red
    {255, 100, 150}, // pink
    {0, 255, 0} // green
}
 
public plugin_init()
{  
    new path[64];
    get_localinfo("amxx_configsdir", path, charsmax(path));
    formatex(path, charsmax(path), "%s/vip_maps.ini", path);
   
    new file = fopen(path, "r+");
   
    if(!file_exists(path))
    {
        write_file(path, "; VIP-UL ESTE DEZACTIVAT PE URMATOARELE HARTI: ");
        write_file(path, "; Exemplu de adaugare HARTA:^n; ^"harta^"^n^nfy_snow^ncss_bycastor");
    }
   
    new mapname[32];
    get_mapname(mapname, charsmax(mapname));
   
    new text[121], maptext[32], bool:remove_vip = false;
    while(!feof(file))
    {
        fgets(file, text, charsmax(text));
        trim(text);
       
        if(text[0] == ';' || !strlen(text))
        {
            continue;
        }
       
        parse(text, maptext, charsmax(maptext));
       
        if(equal(maptext, mapname))
        {
            log_amx("Am dezactivat pluginul 'VIP' pe harta %s.", maptext);
            remove_vip = true;
            break;
        }
       
    }
    fclose(file);
   
    if(!remove_vip)
    {
        register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
 
        register_event("DeathMsg", "event_DeathMsg", "a");
        register_event("Damage", "event_Damage", "b", "2>0", "3=0");
        register_event("HLTV", "event_NewRound", "a", "1=0", "2=0");
        register_event("TextMsg", "event_textmsg", "a", "2=#Game_will_restart_in")
 
        RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
 
        register_message(get_user_msgid("ScoreAttrib"), "msg_ScoreAttrib");
 
        register_clcmd("say /vips", "CmdVipsOnline");
        register_clcmd("say_team /vips", "CmdVipsOnline");
        register_clcmd("say vips", "CmdVipsOnline");
        register_clcmd("say_team vips", "CmdVipsOnline");
       
        register_clcmd("say buyvip", "CmdPrintAttributes");
        register_clcmd("say_team buyvip", "CmdPrintAttributes");
        register_clcmd("say /buyvip", "CmdPrintAttributes");
        register_clcmd("say_team /buyvip", "CmdPrintAttributes");
 
        register_clcmd("say /rd", "CmdResetDeaths");
        register_clcmd("say_team /rd", "CmdResetDeaths");
        register_clcmd("say rd", "CmdResetDeaths");
        register_clcmd("say_team rd", "CmdResetDeaths");
	
	//VIP FREE
        register_clcmd("say /timevip", "time_remain");

        set_task(1.0, "check_time");
        set_task(60.0, "check_time", _, _, _, "b");
        set_task(1.0, "hud_mess", _, _, _, "b");

        cvar_freevip = register_cvar("vip_free", "1");

        cached_vars();
        g_sync = CreateHudSyncObj();
        //////////////////////////////////////////

        cvar[hp_spawn] = register_cvar("vip_hp_spawn", "100");          // 0 = dezactivat
        cvar[ap_spawn] = register_cvar("vip_ap_spawn", "100");          // 0 = dezactivat
        cvar[money_spawn] = register_cvar("vip_money_spawn", "0");       // 0 = dezactivat
        cvar[show_vip_tab] = register_cvar("vip_show_tab", "1");            // 0 = dezactivat
        cvar[show_bullet_dmg] = register_cvar("vip_show_bullet_dmg", "1");      // 0 = dezactivat
        cvar[multi_jump] = register_cvar("vip_multijump", "0");         // 0 = dezactivat. Daca valoarea cvar-ului este 1, vei sari de 2 ori. Orice valoare pui, va fi +1 jump
        cvar[hp_kill] = register_cvar("vip_hp_kill", "5");              // 0 = dezactivat
        cvar[hp_hs] = register_cvar("vip_hp_hs", "10");             // 0 = dezactivat
        cvar[ap_kill] = register_cvar("vip_ap_kill", "5");              // 0 = dezactivat
        cvar[ap_hs] = register_cvar("vip_ap_hs", "10");             // 0 = dezactivat
        cvar[hp_max] = register_cvar("vip_hp_max", "120");          // 0 = viata infinita
        cvar[money_kill] = register_cvar("vip_money_kill", "350");          // 0 = dezactivat
        cvar[money_hs] = register_cvar("vip_money_hs", "450");          // 0 = dezactivat
        cvar[parachute] = register_cvar("vip_parachute", "0");          // 0 = dezactivat
 
        max_players = get_maxplayers();
    }
    else
    {
        register_plugin(PLUGIN_NAME_PAUSED, PLUGIN_VERSION, PLUGIN_AUTHOR);
        pause("ade");
    }
   
    register_cvar("vip_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
    set_cvar_string("vip_", PLUGIN_VERSION);
}
 
public client_putinserver(id)
{
    g_JumpNum[id] = 0;
    g_bJump[id] = false;
}
 
public CmdVipsOnline(id)
{
    if(!is_user_connected(id))
        return PLUGIN_CONTINUE;
 
    new adminnames[33][32], message[256], i, count, len;
    len = format(message, charsmax(message), "!4%s!3 VIPS ONLINE: ", TAG);
    for(i = 1 ; i <= max_players; i++)
    {
        if(is_user_connected(i) && is_user_vip(i))
            get_user_name(i, adminnames[count++], charsmax(adminnames[]));
    }
   
    if(count > 0)
    {
        for(i = 0; i < count; i++)
        {
            len += format(message[len], 255 -len, "!4%s!1%s ", adminnames, i < (count -1) ? " | " : "");
        }
        ColorChat(id, message);
    }
    else
    {
        len += format(message[len], 255 -len, "!4No one !")
        ColorChat(id, message);
    }
 
    return PLUGIN_CONTINUE;
}
 
public CmdPrintAttributes(id)
{
    if(!is_user_connected(id)) return;
    show_motd(id, "vip.txt", "Beneficii VIP");
}
 
public CmdResetDeaths(id)
{
    if(!is_user_vip(id) || !vip_free)
    {
        ColorChat(id, "!4%s!1 Doar membri!3 VIP!1 isi pot reseta decesele.", TAG);
        return;
    }
    cs_set_user_deaths(id, 0);
    cs_set_user_deaths(id, 0);
    ColorChat(id, "!4%s!1 Ti-ai resetat cu succes toate decesele.", TAG);
}

 
public client_PreThink(id)
{
    new cache = get_pcvar_num(cvar[multi_jump]);
    if(is_user_alive(id) && !is_user_vip(id) || is_user_alive(id) && !vip_free)
        return PLUGIN_CONTINUE;
 
    new nbut = get_user_button(id);
    new obut = get_user_oldbutton(id);
 
    if(cache != 0)
    {  
        if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
        {
            if(g_JumpNum[id] < cache)
            {
                g_bJump[id] = true;
                g_JumpNum[id]++;
                return PLUGIN_CONTINUE;
            }
        }
   
        if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
        {
            g_JumpNum[id] = 0;
            return PLUGIN_CONTINUE;
        }
    }
 
    if(get_pcvar_num(cvar[parachute]))
    {
        new Float:fallspeed = 100.0 * -1.0;
        if(nbut & IN_USE)
        {
            new Float:velocity[3];
            entity_get_vector(id, EV_VEC_velocity, velocity);
            if(velocity[2] < 0.0)
            {
                entity_set_int(id, EV_INT_sequence, 3);
                entity_set_int(id, EV_INT_gaitsequence, 1);
                entity_set_float(id, EV_FL_frame, 1.0);
                entity_set_float(id, EV_FL_framerate, 1.0);
 
                velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed;
                entity_set_vector(id, EV_VEC_velocity, velocity);
            }
        }
    }
    return PLUGIN_CONTINUE;
}
 
public client_PostThink(id)
{
    new jump_num = get_pcvar_num(cvar[multi_jump]);
    if(!jump_num)
        return PLUGIN_CONTINUE;
       
    if(is_user_alive(id) && !is_user_vip(id) || is_user_alive(id) && !vip_free)
        return PLUGIN_CONTINUE;
   
    if(g_bJump[id])
    {
        new Float:fVelocity[3];
        entity_get_vector(id, EV_VEC_velocity, fVelocity);
        fVelocity[2] = random_float(265.0, 285.0);
        entity_set_vector(id, EV_VEC_velocity, fVelocity);
       
        g_bJump[id] = false;
        return PLUGIN_CONTINUE;
    }
   
    return PLUGIN_CONTINUE;
}
 
public event_DeathMsg()
{
    new killer = read_data(1), hs = read_data(3);  
    if(is_user_alive(killer) && is_user_vip(killer) || is_user_alive(killer) && vip_free)
    {
        if(killer == read_data(2)) return PLUGIN_HANDLED;
 
        if(hs && !user_has_weapon(killer, CSW_HEGRENADE)) give_item(killer, "weapon_hegrenade");
 
        new cache = hs ? get_pcvar_num(cvar[hp_hs]) : get_pcvar_num(cvar[hp_kill]);
        if(cache != 0) set_user_health(killer, min(get_user_health(killer) + cache, get_pcvar_num(cvar[hp_max])));
 
        cache = hs ? get_pcvar_num(cvar[ap_hs]) : get_pcvar_num(cvar[ap_kill]);
        if(cache != 0) set_user_armor(killer, min(get_user_armor(killer) + cache, get_pcvar_num(cvar[hp_max])));
 
        cache = hs ? get_pcvar_num(cvar[money_hs]) : get_pcvar_num(cvar[money_kill]);
        if(cache != 0) cs_set_user_money(killer, min(cs_get_user_money(killer) + cache, 16000));
    }
 
    return PLUGIN_CONTINUE;
}
 
public event_Damage(victim)
{
    if(!get_pcvar_num(cvar[show_bullet_dmg]))
        return PLUGIN_CONTINUE;
       
    new id = get_user_attacker(victim);
    if(is_user_valid(id))
    {
        if(is_user_alive(id) && !is_user_vip(id) || is_user_alive(id) && !vip_free)
            return PLUGIN_HANDLED;
       
        if(read_data(4) || read_data(5) || read_data(6))
        {      
            new iPos = ++g_iPlayerPos[id];
            if(iPos == sizeof(g_flCoords))
                iPos = g_iPlayerPos[id] = 0;
           
            new iCol = ++g_iPlayerCol[id];
            if(iCol == sizeof(g_iColors))
                iCol = g_iPlayerCol[id] = 0;
           
            set_hudmessage(g_iColors[iCol][0], g_iColors[iCol][1], g_iColors[iCol][2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1);
            show_hudmessage(id, "%d", read_data(2));
        }
    }
   
    return PLUGIN_CONTINUE;
}

public event_NewRound()
{
    rounds++;
}
 
public event_textmsg()
{
    rounds = 1;
}
 
public fw_PlayerSpawnPost(id)
{
    if(is_user_vip(id) && is_user_alive(id) || is_user_alive(id) && vip_free)
    {
        set_task(0.25, "give_items", id + 212);
        return HAM_IGNORED;
    }
   
    return HAM_IGNORED;
}
 
public give_items(taskid)
{
    new id = taskid - 212;
    if(!is_user_alive(id))
        return;
 
    new cache = get_pcvar_num(cvar[hp_spawn])
    if(cache != 0) set_user_health(id, cache);
 
    cache = get_pcvar_num(cvar[ap_spawn]);
    if(cache != 0) cs_set_user_armor(id, cache, CS_ARMOR_VESTHELM);
 
    cache = get_pcvar_num(cvar[money_spawn]);
    if(cache != 0) cs_set_user_money(id, min(cs_get_user_money(id) + cache, 16000));
 
    if(rounds >= 3) ShowVipMenu(id);
}
 
public msg_ScoreAttrib(msgid, dest, id)
{
    if(!get_pcvar_num(cvar[show_vip_tab]))
        return PLUGIN_CONTINUE;
       
    new id = get_msg_arg_int(1);
    if(is_user_connected(id) && is_user_vip(id) || is_user_connected(id) && vip_free)
        set_msg_arg_int(2, ARG_BYTE, is_user_alive(id) ? (1<<2) : (1<<0));
   
    return PLUGIN_CONTINUE;
}
 
public ShowVipMenu(id)
{
    if(!is_user_connected(id))
        return PLUGIN_HANDLED;
 
    give_item(id, "weapon_hegrenade");
    give_item(id, "weapon_flashbang");
    give_item(id, "weapon_flashbang");
    drop_weapons(id, 2);
    give_item(id, "weapon_deagle");
    cs_set_user_bpammo(id, CSW_DEAGLE, 35);
 
    new menu = menu_create("[V.I.P MENU]", "VipMenuHandler");
    menu_additem(menu, "M4A1 + Echipament", "1");
    menu_additem(menu, "AK-47 + Echipament", "2");
    menu_additem(menu, "AWP + Echipament", "3");
   
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
    menu_display(id, menu, 0);
   
    return PLUGIN_CONTINUE;
}
 
public VipMenuHandler(id, menu, item)
{
    if(!is_user_connected(id) || item == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
 
    new data[6], namei[64], access, CallBack;
    menu_item_getinfo(menu, item, access, data, charsmax(data), namei, charsmax(namei), CallBack);
    new key = str_to_num(data);
 
    switch(key)
    {
        case 1:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_m4a1");
            cs_set_user_bpammo(id, CSW_M4A1, 120);
           
            ColorChat(id, "!4%s!1 Ai ales!3 M4A1!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
        }
 
        case 2:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_ak47");
            cs_set_user_bpammo(id, CSW_AK47, 120);
           
            ColorChat(id, "!4%s!1 Ai ales!3 AK47!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
        }
 
        case 3:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_awp");
            cs_set_user_bpammo(id, CSW_AWP, 30);
           
            ColorChat(id, "!4%s!1 Ai ales!3 AWP!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
        }
    }
 
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}

public cached_vars()
	vip_free = get_pcvar_num(cvar_freevip);

public check_time()
{
	new o;
	time(o, _, _);
	
	vip_free = 1;
	set_pcvar_num(cvar_freevip, 1);
	
	if(!vip_free)
	{
		if(o >= vip_time[0] || o < vip_time[1])
		{
			vip_free = 1;
			set_pcvar_num(cvar_freevip, 1);
			ColorChat(0, "^4%s^1 Eventul^3 Free VIP^1 este activat!", TAG);
		}
	}
	else
	{
		if(o < vip_time[0] && o >= vip_time[1])
		{
			vip_free = 0;
			set_pcvar_num(cvar_freevip, 0);
			ColorChat(0, "^4%s^1 Eventul^3 Free VIP^1 este dezactivat!", TAG);
		}
	}
}

public time_remain(id)
{
	if(vip_free)
		ColorChat(id, "^4%s^1 Timp ramas pana se termina vip-ul free^3 %s", TAG, time_left_vip());
	else if(!vip_free)
		ColorChat(id, "^4%s^1 Timp ramas pana incepe vip-ul free^3 %s", TAG, time_left_vip());
}

public hud_mess()
{
	if(!vip_free)
		return;

	set_hudmessage(random(256), random(256), random(256), 0.00, 0.17, 0, 1.1, 1.0);
	ShowSyncHudMsg(0, g_sync, "Event V.I.P Free !");
}
 
const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);
 
// Drop primary/secondary weapons
stock drop_weapons(id, dropwhat)
{
	// Get user weapons
	static weapons[32], num, i, weaponid, wname[32];
	num = 0; // reset passed weapons count (bugfix)
	get_user_weapons(id, weapons, num);
	
	// Loop through them and drop primaries or secondaries
	for (i = 0; i < num; i++)
	{
		// Prevent re-indexing the array
		weaponid = weapons[i];
		
		if((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
		{
			// Get weapon entity
			get_weaponname(weaponid, wname, charsmax(wname));
			engclient_cmd(id, "drop", wname);
		}
	}
}
 
stock ColorChat(id, String[], any:...)
{
    static szMesage[192];
    vformat(szMesage, charsmax(szMesage), String, 3);
   
    replace_all(szMesage, charsmax(szMesage), "!1", "^1");
    replace_all(szMesage, charsmax(szMesage), "!3", "^3");
    replace_all(szMesage, charsmax(szMesage), "!4", "^4");
   
    static g_msg_SayText = 0;
    if(!g_msg_SayText)
        g_msg_SayText = get_user_msgid("SayText");
   
    new Players[32], iNum = 1, i;
 
    if(id) Players[0] = id;
    else get_players(Players, iNum, "ch");
   
    for(--iNum; iNum >= 0; iNum--)
    {
        i = Players[iNum];
       
        message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i);
        write_byte(i);
        write_string(szMesage);
        message_end();
    }
}

stock time_left_vip()
{
	new timp_ramas[16], len = 0;
	new h, m, lh, lm;
	time(h, m, _);
	switch(vip_free)
	{
		case 0: lh = vip_time[0] - h;
		case 1:
		{
			new l = vip_time[1];
			if(h > l)
				l += add_time(h) + h;
			lh = l - h;
		}
	}
	lm = 60 - m;
	if(lm < 60)
		lh--;
	
	if(lh > 0)
		len += formatex(timp_ramas[len], charsmax(timp_ramas) - len, "%d or%s", lh, lh == 1 ? "a" : "e");
		
	if(lm < 60)
		len += formatex(timp_ramas[len], charsmax(timp_ramas) - len, " %d minut%s", lm, lm == 1 ? "e" : "");
		
	return timp_ramas;
}

stock add_time(x)
{
	new j;
	switch(x)
	{
		case 0: j = 24;
		case 1: j = 23;
		case 2: j = 22;
		case 3: j = 21;
		case 4: j = 20;
		case 5: j = 19;
		case 6: j = 18;
		case 7: j = 17; 
		case 8: j = 16;
		case 9: j = 15;
		case 10: j = 14;
		case 11: j = 13;
		case 12: j = 12;
		case 13: j = 11;
		case 14: j = 10;
		case 15: j = 9;
		case 16: j = 8;
		case 17: j = 7;
		case 18: j = 6;
		case 19: j = 5;
		case 20: j = 4;
		case 21: j = 3;
		case 22: j = 2;
		case 23: j = 1;
	}
	if(x < vip_time[1])
		j = 0;
	
	return j;
}
Este ok acum dar nu fuctioneaza multijump, bullet, parasuta

vip_hp_spawn "110"
vip_ap_spawn "100"
vip_money_spawn "800"
vip_show_tab "1"
vip_show_bullet_dmg "1"
vip_multijump "1"
vip_hp_kill "5"
vip_hp_hs "10"
vip_ap_kill "5"
vip_ap_hs "10"
vip_hp_max "130"
vip_money_kill "500"
vip_money_hs "1000"
vip_parachute "1"
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: Mail.RU [Bot], Yandex [Bot] and 19 guests