Skocz do zawartości
Lisu

[Rozwiązane] Szukam VIP'a z granatami od drugiej rundy

Rekomendowane odpowiedzi

Potrzebuje vipa, który dostaje wszystkie granaty ( oprócz dickoya) od drugiej rundy
1000 $ na poczatku rundy 
350 $ za podlozenie paki i defa

Niestety w vipie Hanysa, jak i mehrsykiego nie ma mozliwosci granatow od drugiej rundy

Przez MAGNET,

Sama nazwa "szukam VIP'a" niewiele mówi - trzeba chociaż w podstawowym stopniu powiedzieć czym nasza prośba się wyróżnia. Poprawiłem temat :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wygeneruj VIPa jakiego chcesz i przerobie kod, żeby dawał granaty od drugiej rundy ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
10 minut temu, MAGNET napisał:

Wygeneruj VIPa jakiego chcesz i przerobie kod, żeby dawał granaty od drugiej rundy ?

Spoiler

/*================ Aktualizacje ================

~ Wersja "0.1" >> Pierwsze wydanie pluginu.
~ Wersja "0.2" >> Przepisanie pluginy na nowy syntax.
~ Wersja "0.3" >> Poprawiono większość kodu, pieniądze za rozbrojenie oraz podłożenie bomby już działają.
~ Wersja "0.4" >> Dodano cvary.
~ Wersja "0.5" >> Dodano więcej cvarów oraz poprawiono kilka błędów.
~ Wersja "0.6" >> Naprawiono błąd który powodował że menu broni dla vip'a wyświetlało się przy starcie rundy jak się zmieniały drużyny, dodano więcej cvarów.
~ Wersja "0.7" >> Dodano pieniądze za wygranie rundy, poprawiono kod na zakończenie rundy.
~ Wersja "0.8" >> Dodano przywitanie/pożegnanie dla vip'a na czacie oraz w HINT BOX, dodano więcej cvarów oraz poprawiono kod. // USUNIĘTE
~ Wersja "0.9" >> Dodano tag [VIP] w cvarach.
~ Wersja "1.0" >> Zmieniono kolor wiadomości na czacie, dodano cvar dotyczący działaniu podwójnego skoku.
~ Wersja "1.1" >> Dodano nowy cvar oraz poprawiono kod na podwójny skok.
~ Wersja "1.2" >> Teraz granaty nie spadają na ziemie przy nowej rundzie.
~ Wersja "1.3" >> Dodano darmowego vip'a od do danej godziny.

TODO

~ Nothing now.

==============================================*/

/* << Includy >> */
#include <cstrike>
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
#include <multicolors>

/* << Define >> */
#define PL_VERSION "1.3"

/* << Pragma >> */
#pragma newdecls required
#pragma semicolon 1

/* << ConVary >> */
ConVar g_cvVipHP;
ConVar g_cvVipHeadShotHP;
ConVar g_cvVipKillHP;
ConVar g_cvPredkoscGracza;
ConVar g_cvGrawitacja;
ConVar g_cvVipArmor;
ConVar g_cvVipHelm;
ConVar g_cvHEGranat;
ConVar g_cvFlashGranat;
ConVar g_cvSmokeGranat;
ConVar g_cvDecoyGranat;
ConVar g_cvHealGranat;
ConVar g_cvIncGranat;
ConVar g_cvMolotovGranat;
ConVar g_cvTaGranat;
ConVar g_cvVipPieniadzeNaStart;
ConVar g_cvVipPieniadzePodlozenie;
ConVar g_cvVipPieniadzeRozbrojenie;
ConVar g_cvVipHeadShotPieniadze;
ConVar g_cvVipKillPieniadze;
ConVar g_cvVipWygranaPieniadze;
ConVar g_cvTag_Tabela;
ConVar g_cvVipTag_Tabela;
ConVar g_cvDoubleJump;
ConVar g_cvMenu_Broni;
ConVar g_cvRunda_MenuBroni;
ConVar g_cvDarmowy_Vip;
ConVar g_cvVipOdGodziny;
ConVar g_cvVipDoGodziny;

/* << Inty >> */
int RoundCount = 0;
int FreeVip = 0;
int g_iaGrenadeOffsets[] =  { 15, 17, 16, 14, 18, 17 };


/* << Informacje o pluginie >> */
public Plugin myinfo =
{
    name = "[CS:GO] How2Kill - VIP",
    author = "Mesharsky",
    description = "[CS:GO] Vip na serwery CSGO",
    version = PL_VERSION,
    url = "http://steamcommunity.com/id/MesharskyH2K"
}

public void OnPluginStart()
{
    HookEvent("round_start", Event_RoundStart);
    HookEvent("player_spawn", Event_TagTable);
    HookEvent("player_spawn", Event_PlayerSpawn);
    HookEvent("player_death", Event_PlayerDeath);
    HookEvent("bomb_planted", Event_BombPlanted);
    HookEvent("bomb_defused", Event_BombDefused);
    HookEvent("round_end", Event_RoundEnd);
    HookEvent("announce_phase_end", ResetPoZmianie);
    HookEvent("cs_intermission", ResetPoZmianie);

    /* << ConVary >> */
    g_cvVipHP = CreateConVar("zycie_vip", "100", "Ile zdrowia ma posiadać vip na start rundy?");
    g_cvVipKillHP = CreateConVar("kill_hp_vip", "0", "Ile zdrowia ma dostawać vip za zabicie gracza?");
    g_cvVipHeadShotHP = CreateConVar("hs_hp_vip", "0", "Ile zdrowia ma dostawać vip za zabójstwo z HeadShot'a");
    g_cvPredkoscGracza = CreateConVar("vip_predkosc_ruchu", "1.0", "Prędkość ruchu vip'a (1.0 - standardowo)");
    g_cvGrawitacja = CreateConVar("vip_grawitacja", "1.0", "Grawitacja dla vip'a (1.0 - standardowo)");
    g_cvVipArmor = CreateConVar("armor_vip", "1", "Punkty kamizelki dla vipa? (od 1 - 100)");
    g_cvVipHelm = CreateConVar("helm_vip", "0", "Czy vip ma posiadać darmowy hełm? (0/1)");
    g_cvVipPieniadzeNaStart = CreateConVar("vip_dodatkowy_Pieniadze", "200", "Ilość dodatkowego Pieniadzeu na start rundy jaki ma vip dostawać.");
    g_cvVipKillPieniadze = CreateConVar("Pieniadze_kill_vip", "0", "Ile vip ma dostawać pieniędzy za zabójstwo ?");
    g_cvVipHeadShotPieniadze = CreateConVar("Pieniadze_hs_vip", "0", "Ile vip ma dostawać pieniędzy za zabójstwo w głowę?");
    g_cvVipPieniadzePodlozenie = CreateConVar("Pieniadze_podlozenie_vip", "150", "Ile pieniędzy ma dostawać vip za podłożenie bomby?");
    g_cvVipPieniadzeRozbrojenie = CreateConVar("Pieniadze_rozbrojenie_vip", "150", "Ile pieniędzy ma dostawać vip za rozbrojenie bomby?");
    g_cvVipWygranaPieniadze = CreateConVar("Pieniadze_wygranie_rundy", "0", "Ile pieniędzy ma dostawać vip za wygranie rundy?");
    g_cvHEGranat = CreateConVar("vip_he", "0", "Czy vip ma dostawać granat HE na start rundy?");
    g_cvFlashGranat = CreateConVar("vip_flash", "0", "Czy vip ma dostawać granat Flash na start rundy?");
    g_cvSmokeGranat = CreateConVar("vip_smoke", "0", "Czy vip ma dostawać granat Smoke na start rundy?");
    g_cvDecoyGranat = CreateConVar("vip_decoy", "0", "Czy vip ma dostawać granat Decoy na start rundy?");
    g_cvHealGranat = CreateConVar("vip_heal", "0", "Czy vip ma dostawać granat Leczący na start rundy?");
    g_cvIncGranat = CreateConVar("vip_inc", "0", "Czy vip ma dostawać granat Podpalający (CT) na start rundy?");
    g_cvMolotovGranat = CreateConVar("vip_molotov", "0", "Czy vip ma dostawać granat Podpalający (TT) na start rundy?");
    g_cvTaGranat = CreateConVar("vip_tactic", "0", "Czy vip ma dostawać granat Taktyczny na start rundy?");
    g_cvTag_Tabela = CreateConVar("vip_tag", "0", "Czy w tabeli ma widniec tag dla vip'a?");
    g_cvVipTag_Tabela = CreateConVar("sm_clantag", "[VIP]", "Jaki tag w tabeli ma posiadać VIP?");
    g_cvDoubleJump = CreateConVar("double_jump", "0", "Czy vip ma posiadać podwójny skok?");
    g_cvMenu_Broni = CreateConVar("vip_menu_broni", "0", "Czy ma być menu broni dla vip'a?");
    g_cvRunda_MenuBroni = CreateConVar("vip_runda_menubroni", "3", "Od ktorej rundy ma pokazywac menu broni dla vip'a?");
    g_cvDarmowy_Vip = CreateConVar("vip_od_danej_godzint", "0", "Czy ma być włączony VIP dla graczy w nocy od x do x godziny?");
    g_cvVipOdGodziny = CreateConVar("vip_od_godziny", "24", "Od ktorej godziny ma byc darmowy vip?");
    g_cvVipDoGodziny = CreateConVar("vip_do_godziny", "6", "Do ktorej godziny ma byc darmowy vip?");


}

public void OnMapStart()
{
    AutoExecConfig(true, "Konfiguracja_Vipa");
    RoundCount = 0;
}

public Action MenuGlowne(int client)
{
    if (IsValidClient(client)) {
        if (IsPlayerVIP(client)) {
            Menu menu = new Menu(MenuHandler1);
            menu.SetTitle("VIP : Wybierz Broń");
            menu.AddItem("weapon_ak47", "AK-47");
            menu.AddItem("weapon_m4a1", "M4A4");
            menu.AddItem("weapon_m4a1_silencer", "M4A1-S");
            menu.AddItem("weapon_awp", "AWP");
            menu.AddItem("weapon_ssg08", "SCOUT");
            menu.AddItem("weapon_xm1014", "XM1014");
            menu.AddItem("weapon_famas", "FAMAS");
            menu.ExitButton = true;
            menu.Display(client, 15);
        }
    }
}

public int MenuHandler1(Menu menu, MenuAction action, int client, int itemNum)
{
    if (action == MenuAction_Select)
    {
        char info[32];
        GetMenuItem(menu, itemNum, info, sizeof(info));

        if (IsPlayerAlive(client))
        {
            StripAllWeapons(client);
            GivePlayerItem(client, "weapon_knife");
            GivePlayerItem(client, info);
            MenuBroni(client);
        }
    }

    else if (action == MenuAction_End) {
        CloseHandle(menu);
    }
}

public Action MenuBroni(int client)
{
    if (IsValidClient(client)) {
        if (IsPlayerVIP(client)) {
            Menu menusec = new Menu(MenuHandler2);
            menusec.SetTitle("VIP : Wybierz Pistolet");
            menusec.AddItem("weapon_deagle", "Deagle");
            menusec.AddItem("weapon_revolver", "R8 Revolver");
            menusec.AddItem("weapon_fiveseven", "Five-Seven");
            menusec.AddItem("weapon_tec9", "Tec-9");
            menusec.AddItem("weapon_cz75a", "CZ7a");
            menusec.AddItem("weapon_elite", "Dual Elites");
            menusec.AddItem("weapon_p250", "p250");
            menusec.ExitButton = true;
            menusec.Display(client, 15);
        }
    }
}

public int MenuHandler2(Menu menusec, MenuAction action, int client, int itemNum)
{

    if (action == MenuAction_Select)
    {
        char info[32];
        GetMenuItem(menusec, itemNum, info, sizeof(info));

        if (IsPlayerAlive(client)) {
            GivePlayerItem(client, info);
        }
    }

    else if (action == MenuAction_End) {
        CloseHandle(menusec);
    }
}

public Action Event_RoundStart(Handle hEvent, const char[] chName, bool bDontBroadcast)
{
    if (GetConVarBool(g_cvDarmowy_Vip))
    {
        int od_godziny = GetConVarInt(g_cvVipOdGodziny);
        int do_godziny = GetConVarInt(g_cvVipDoGodziny);
        if(od_godziny || do_godziny)
        {
            char godzina_str[8];
            FormatTime(godzina_str, sizeof(godzina_str), "%H", GetTime());
            int godzina = StringToInt(godzina_str);
            if(od_godziny > do_godziny)
                FreeVip = (godzina >= od_godziny || godzina < do_godziny)? 1: 0;
            else
                FreeVip = (godzina >= od_godziny && godzina < do_godziny)? 1: 0;
        }
        else
            FreeVip = 0;
    }

    if (GameRules_GetProp("m_bWarmupPeriod") != 1)
        RoundCount = RoundCount + 1;
}

public Action ResetPoZmianie(Handle hEvent, const char[] chName, bool bDontBroadcast)
{
    RoundCount = 0;
}

public Action Event_PlayerSpawn(Handle hEvent, const char[] chName, bool bDontBroadcast)
{
    int client = GetClientOfUserId(GetEventInt(hEvent, "userid"));

    if (GameRules_GetProp("m_bWarmupPeriod") == 1)
        return;

    if (IsPlayerVIP(client))
    {
        SetEntityHealth(client, GetConVarInt(g_cvVipHP));
        SetEntProp(client, Prop_Send, "m_ArmorValue", GetConVarInt(g_cvVipArmor));
        SetEntProp(client, Prop_Send, "m_bHasHelmet", GetConVarInt(g_cvVipHelm));
        SetEntProp(client, Prop_Send, "m_iAccount", GetEntProp(client, Prop_Send, "m_iAccount") + GetConVarInt(g_cvVipPieniadzeNaStart));
        SetEntPropFloat(client, Prop_Send, "m_flLaggedMovementValue", GetConVarFloat(g_cvPredkoscGracza));
        SetEntityGravity(client, GetConVarFloat(g_cvGrawitacja));
        if (GetClientTeam(client) == CS_TEAM_CT && GetEntProp(client, Prop_Send, "m_bHasDefuser") == 0)GivePlayerItem(client, "item_defuser");
        if (GetConVarBool(g_cvHEGranat))GivePlayerItem(client, "weapon_hegrenade");
        if (GetConVarBool(g_cvFlashGranat))GivePlayerItem(client, "weapon_flashbang");
        if (GetConVarBool(g_cvSmokeGranat))GivePlayerItem(client, "weapon_smokegrenade");
        if (GetConVarBool(g_cvDecoyGranat))GivePlayerItem(client, "weapon_decoy");
        if (GetConVarBool(g_cvHealGranat))GivePlayerItem(client, "weapon_healthshot");
        if (GetConVarBool(g_cvIncGranat))GivePlayerItem(client, "weapon_incgrenade");
        if (GetConVarBool(g_cvMolotovGranat))GivePlayerItem(client, "weapon_molotov");
        if (GetConVarBool(g_cvTaGranat))GivePlayerItem(client, "weapon_tagrenade");
    }

    { if (RoundCount >= GetConVarInt(g_cvRunda_MenuBroni))
        {
            if (GetConVarBool(g_cvMenu_Broni))MenuGlowne(client);
        }
    }
}

public Action Event_PlayerDeath(Handle hEvent, const char[] chName, bool bDontBroadcast)
{
    int attacker = GetClientOfUserId(GetEventInt(hEvent, "attacker"));
    int victim = GetClientOfUserId(GetEventInt(hEvent, "userid"));

    if (IsPlayerVIP(attacker))
    {
        if (!IsValidClient(attacker)) {
            return;
        }

        if (GetClientTeam(attacker) != GetClientTeam(victim))
        {
            bool headshot = GetEventBool(hEvent, "headshot");
            int PieniadzeGracza = GetEntProp(attacker, Prop_Send, "m_iAccount");
            int HP = GetClientHealth(attacker);

            if (headshot) {
                SetEntProp(attacker, Prop_Send, "m_iAccount", GetConVarInt(g_cvVipHeadShotPieniadze) + PieniadzeGracza);
                if (HP + GetConVarInt(g_cvVipHeadShotHP) > 150)SetEntityHealth(attacker, 150);
                if (HP + GetConVarInt(g_cvVipHeadShotHP) <= 150)SetEntityHealth(attacker, HP + GetConVarInt(g_cvVipHeadShotHP));
            }
            else {
                SetEntProp(attacker, Prop_Send, "m_iAccount", GetConVarInt(g_cvVipKillPieniadze) + PieniadzeGracza);
                if (HP + GetConVarInt(g_cvVipKillHP) > 150)SetEntityHealth(attacker, 150);
                if (HP + GetConVarInt(g_cvVipKillHP) <= 150)SetEntityHealth(attacker, HP + GetConVarInt(g_cvVipKillHP));
            }
        }
    }
}

public Action Event_BombPlanted(Handle hEvent, const char[] chName, bool bDontBroadcast)
{
    int client = GetClientOfUserId(GetEventInt(hEvent, "userid"));
    int PieniadzeGracza = GetEntProp(client, Prop_Send, "m_iAccount");

    if (IsPlayerVIP(client)) {

        SetEntProp(client, Prop_Send, "m_iAccount", GetConVarInt(g_cvVipPieniadzePodlozenie) + PieniadzeGracza);
    }
}

public Action Event_BombDefused(Handle hEvent, const char[] chName, bool bDontBroadcast)
{
    int client = GetClientOfUserId(GetEventInt(hEvent, "userid"));
    int PieniadzeGracza = GetEntProp(client, Prop_Send, "m_iAccount");

    if (IsPlayerVIP(client)) {
        SetEntProp(client, Prop_Send, "m_iAccount", GetConVarInt(g_cvVipPieniadzeRozbrojenie) + PieniadzeGracza);
    }
}

public Action Event_RoundEnd(Handle hEvent, const char[] chName, bool bDontBroadcast)
{
    int winnerTeam = GetEventInt(hEvent, "winner");

    for (int client = 1; client < MAXPLAYERS + 1; client++)
    {
        if (IsPlayerVIP(client) && IsValidClient(client))
        {
            RemoveNades(client);

            if (GetClientTeam(client) == winnerTeam)
            {
                SetEntProp(client, Prop_Send, "m_iAccount", GetConVarInt(g_cvVipWygranaPieniadze) + GetEntProp(client, Prop_Send, "m_iAccount"));
            }
        }
    }
}

public Action Event_TagTable(Event event, const char[] chName, bool bDontBroadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));

    char TagTabela[128];
    g_cvVipTag_Tabela.GetString(TagTabela, sizeof(TagTabela));

    if (IsPlayerVIP(client))
    {
        if (GetConVarBool(g_cvTag_Tabela))CS_SetClientClanTag(client, TagTabela);
    }
}

public Action OnPlayerRunCmd(int client, int &buttons, int &impulse, float vel[3], float angles[3], int &weapon)
{
    if (!g_cvDoubleJump.BoolValue)
        return Plugin_Handled;

    if (IsPlayerVIP(client) && IsPlayerAlive(client))
    {
        static int g_fLastButtons[MAXPLAYERS + 1], g_fLastFlags[MAXPLAYERS + 1], g_iJumps[MAXPLAYERS + 1], fCurFlags, fCurButtons;
        fCurFlags = GetEntityFlags(client);
        fCurButtons = GetClientButtons(client);
        if (g_fLastFlags[client] & FL_ONGROUND && !(fCurFlags & FL_ONGROUND) && !(g_fLastButtons[client] & IN_JUMP) && fCurButtons & IN_JUMP)g_iJumps[client]++;
        else if (fCurFlags & FL_ONGROUND)g_iJumps[client] = 0;
        else if (!(g_fLastButtons[client] & IN_JUMP) && fCurButtons & IN_JUMP && g_iJumps[client] == 1)
        {
            g_iJumps[client]++;
            float vVel[3];
            GetEntPropVector(client, Prop_Data, "m_vecVelocity", vVel);
            vVel[2] = 250.0;
            TeleportEntity(client, NULL_VECTOR, NULL_VECTOR, vVel);
        }

        g_fLastFlags[client] = fCurFlags;
        g_fLastButtons[client] = fCurButtons;
    }
    return Plugin_Continue;
}

stock void StripAllWeapons(int client)
{
    int iEnt;
    for (int i = 0; i <= 2; i++)
    {
        while ((iEnt = GetPlayerWeaponSlot(client, i)) != -1)
        {
            RemovePlayerItem(client, iEnt);
            AcceptEntityInput(iEnt, "Kill");
        }
    }
}

stock void RemoveNades(int client)
{
    while (RemoveWeaponBySlot(client, 3)) {  }
    for (int i = 0; i < 6; i++)
    SetEntProp(client, Prop_Send, "m_iAmmo", 0, _, g_iaGrenadeOffsets);
}

stock bool RemoveWeaponBySlot(int client, int iSlot)
{
    int iEntity = GetPlayerWeaponSlot(client, iSlot);
    if (IsValidEdict(iEntity)) {
        RemovePlayerItem(client, iEntity);
        AcceptEntityInput(iEntity, "Kill");
        return true;
    }
    return false;
}

bool IsPlayerVIP(int client)
{
    if (CheckCommandAccess(client, "sm_Vip", 0, true) || FreeVip)
        return true;

    return false;
}

bool IsValidClient(int client)
{
    if (client <= 0 || client > MaxClients) {
        return false;
    }

    if (!IsClientInGame(client)) {
        return false;
    }

    if (IsFakeClient(client)) {
        return false;
    }

    return true;
}

//Generated by using panel on following website: http://cs-plugin.com/vip-generator_m.php
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

Tylko problem jest taki, ze nawet czysty vip z generatora, o np ten nie działa mi na serwerze, a dokładnie po wgraniu go na serwer, kiedy jakiś gracz wejdzie na serwer respi się w dowolnym miejscu zbugowany w powietrzu i nie może się ruszać, więc wolałbym, żebyś przerobił vipa, np Hanysa ?

Spoiler

#include <sourcemod>
#include <sdktools>
#include <cstrike>
#include <clientprefs>
#include <colors>
#include <loghelper>
#include <sdkhooks>

#pragma semicolon 1

#define MAX_WEAPON_COUNT 32
#define SHOW_MENU -1
#define CS_TEAM_SPECTATOR    1
#define CS_TEAM_T             2
#define CS_TEAM_CT            3

public Plugin:myinfo =
{
    name = "VIP Plugin by Hanys",
    author = "Hanys",
    description = "vip plugin by Hanys",
    version = "1.3.1",
    url = "http://hanys.dispark.pl"
};

new Handle:HP;
new Handle:Gravity;
new Handle:Speedy;
new Handle:Smokegrenade;
new Handle:Flashbang;
new Handle:Hegrenade;
new Handle:Molotov;
new Handle:Decoy;
new Handle:Tagrenade;
new Handle:Healthshot;
new Handle:Remove_grenade;
new Handle:Armorvalue;
new Handle:Bhashelmet;
new Handle:Defuser;
new Handle:Moneystart;
new Handle:Bombplanted;
new Handle:Bombdefused;
new Handle:Headshot_money;
new Handle:Headshot_hp;
new Handle:Kill_money;
new Handle:Kill_hp;
new Handle:Tagtable;
new Handle:Tagsay;
new Handle:Double_jump;
new Handle:Advertising;
new Handle:Menu_round;
new Handle:Menu_command;
new Handle:Menu_onspawn;

new g_PrimaryGunCount;
new g_SecondaryGunCount;
new String:g_PrimaryGuns[MAX_WEAPON_COUNT][32];
new String:g_SecondaryGuns[MAX_WEAPON_COUNT][32];
new bool:g_MenuOpen[MAXPLAYERS+1] = {false, ...};
new Handle:g_PrimaryMenu = INVALID_HANDLE;
new Handle:g_SecondaryMenu = INVALID_HANDLE;
new g_PlayerPrimary[MAXPLAYERS+1] = {-1, ...};
new g_PlayerSecondary[MAXPLAYERS+1] = {-1, ...};
new Rounds = 0;
new const g_iaGrenadeOffsets[] = {15, 17, 16, 14, 18, 17};

public OnPluginStart()
{
    CreateConVar("sm_vip_version", "1.3.2", "VIP Plugin by Hanys", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY|FCVAR_DONTRECORD);
    
    HP = CreateConVar("vip_hp_start", "100", "Ilosc HP na start rundy", FCVAR_NOTIFY);
    Gravity = CreateConVar("vip_gravity", "1.0", "Grawitacja (1.0 - standardowa)", FCVAR_PLUGIN);
    Speedy = CreateConVar("vip_speed", "1.0", "Szybkosc biegania (1.0 - standardowo)", FCVAR_PLUGIN);
    Smokegrenade = CreateConVar("vip_grenade_smokegrenade", "0", "Smoke na start rundy", FCVAR_NONE, true, 0.0, true, 1.0);
    Flashbang = CreateConVar("vip_grenade_flashbang", "0", "Flash na start rundy (0-2))", FCVAR_NOTIFY);
    Hegrenade = CreateConVar("vip_grenade_hegrenade", "0", "Granat na start rundy", FCVAR_NONE, true, 0.0, true, 1.0);
    Molotov = CreateConVar("vip_grenade_molotov", "0", "Molotov dla tt lub Incendiary dla ct na start rundy",FCVAR_NONE, true, 0.0, true, 1.0);
    Decoy = CreateConVar("vip_grenade_decoy", "0", "Decoy na start rundy", FCVAR_NONE, true, 0.0, true, 1.0);
    Tagrenade = CreateConVar("vip_grenade_tagrenade", "0", "Granat taktyczny na start rundy",FCVAR_NONE, true, 0.0, true, 1.0);
    Healthshot = CreateConVar("vip_grenade_healtshot", "0", "Apteczka na start rundy (0-4)", FCVAR_NOTIFY);
    Remove_grenade = CreateConVar("vip_grenade_remove", "0", "Na początku rundy/respawn usuwa wszystkie granaty (Przydatne przy wypadaniu granatów", FCVAR_NONE, true, 0.0, true, 1.0);
    Armorvalue = CreateConVar("vip_armorvalue", "0", "Kamizelka na start rundy", FCVAR_NONE, true, 0.0, true, 1.0);
    Bhashelmet = CreateConVar("vip_bhashelmet", "0", "Kask na start rundy", FCVAR_NONE, true, 0.0, true, 1.0);
    Defuser = CreateConVar("vip_defuser", "0", "Zestaw do rozbrajania dla CT na start rundy", FCVAR_NONE, true, 0.0, true, 1.0);
    Moneystart = CreateConVar("vip_money_start", "0", "Ilosc $ na start rundy", FCVAR_NOTIFY);
    Bombplanted = CreateConVar("vip_bomb_planted", "0", "Ilosc $ za podlozenie bomby", FCVAR_NOTIFY);
    Bombdefused = CreateConVar("vip_bomb_defused", "0", "Ilosc $ za rozbrojenie bomby", FCVAR_NOTIFY);
    Headshot_money = CreateConVar("vip_headshot_money", "0", "Ilosc $ za Headshot", FCVAR_NOTIFY);
    Headshot_hp = CreateConVar("vip_headshot_hp", "0", "Ilosc HP za Headshot", FCVAR_NOTIFY);
    Kill_money = CreateConVar("vip_kill_money", "0", "Ilosc $ za fraga", FCVAR_NOTIFY);
    Kill_hp = CreateConVar("vip_kill_hp", "0", "Ilosc HP za fraga", FCVAR_NOTIFY);
    Tagtable = CreateConVar("vip_tag_table", "0", "Tag VIP w tabeli wynikow", FCVAR_NONE, true, 0.0, true, 1.0);
    Tagsay = CreateConVar("vip_tag_say", "0", "Tag VIP + kolorowy nick w say", FCVAR_NONE, true, 0.0, true, 1.0);
    Double_jump = CreateConVar("vip_double_jump", "0", "Podwojny skok", FCVAR_NONE, true, 0.0, true, 1.0);
    Advertising = CreateConVar("vip_advertising", "1", "Informacja o autorze pluginu", FCVAR_NONE, true, 0.0, true, 1.0);
    Menu_round = CreateConVar("vip_menu", "0", "Od ktorej rundy menu broni jest aktywne (0-menu broni nieaktywne)", FCVAR_NOTIFY);
    Menu_command = CreateConVar("vip_menu_command", "0", "Otwieranie menu broni po wpisaniu !bronie/!menu", FCVAR_NONE, true, 0.0, true, 1.0);
    Menu_onspawn = CreateConVar("vip_menu_onspawn", "0", "Wyswietlanie menu przy respawn (Start rundy)", FCVAR_NONE, true, 0.0, true, 1.0);

    AutoExecConfig(true, "vip_hanys");
    CheckConfig("configs/vip_hanys_weapons.ini");
    
    RegConsoleCmd("say", Command_SendToAll);
    //RegConsoleCmd("say_team", Command_SendToTeam);
    RegConsoleCmd("sm_menu", Command_VipMenu);
    RegConsoleCmd("sm_bronie", Command_VipMenu);
    
    HookEvent("player_spawn", Event_OnPlayerSpawn);
    HookEvent("bomb_planted", Event_BombPlanted);
    HookEvent("bomb_defused", Event_BombDefused);
    HookEvent("player_death",  Event_PlayerDeath);
    HookEvent("player_team", Event_TagTable);
    HookEvent("player_spawn", Event_TagTable);
    HookEvent("round_start", Event_RoundStart);
    HookEvent("announce_phase_end", RestartRound);
    HookEvent("cs_intermission", RestartRound);
    
    CreateTimer(300.0, Timer_Advert, _, TIMER_REPEAT);
}

public OnPluginEnd()
{
    CancelMenu(g_PrimaryMenu);
    CheckCloseHandle(g_PrimaryMenu);
    CancelMenu(g_SecondaryMenu);
    CheckCloseHandle(g_SecondaryMenu);
}


public Action:Timer_Advert(Handle:timer)
{
    if (GetConVarBool(Advertising))
    {
    PrintToChatAll("\x01[\x04VIP\x01]\x04 Plugin VIP by Hanys");
    }
}

public Event_OnPlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
    new client = GetClientOfUserId(GetEventInt(event, "userid"));
    new money = GetEntProp(client, Prop_Send, "m_iAccount");
    new team = GetClientTeam(client);
    new g_HP = GetConVarInt(HP);
    new g_moneystart = GetConVarInt(Moneystart);
    new g_Flashbang = GetConVarInt(Flashbang);
    new g_Healthshot = GetConVarInt(Healthshot);
    
    if (client > 0 && IsPlayerAlive(client))
    {
        if (GetConVarBool(Remove_grenade)) StripNades(client);
        if (IsPlayerGenericAdmin(client))

        {
            SetEntityHealth(client, g_HP); //hp
            SetEntityGravity(client, GetConVarFloat(Gravity)); //grawitacja
            SetEntPropFloat(client, Prop_Send, "m_flLaggedMovementValue", GetConVarFloat(Speedy)); //predkosc biegania
            if (GetConVarBool(Smokegrenade)) GivePlayerItem(client, "weapon_smokegrenade"); //smoke
            if (GetConVarBool(Flashbang))
            {
                for (new i = 1; i <= g_Flashbang; i++)
                GivePlayerItem(client, "weapon_flashbang");
            }
            if (GetConVarBool(Healthshot))
            {
                for (new i = 1; i <= g_Healthshot; i++)
                GivePlayerItem(client, "weapon_healthshot");
            }
            if (GetConVarBool(Hegrenade)) GivePlayerItem(client, "weapon_hegrenade"); //grenade
            if (GetConVarBool(Molotov) && team == CS_TEAM_T) GivePlayerItem(client, "weapon_molotov"); //molotov tt
            if (GetConVarBool(Molotov) && team == CS_TEAM_CT) GivePlayerItem(client, "weapon_incgrenade"); //Incendiary ct
            if (GetConVarBool(Decoy)) GivePlayerItem(client, "weapon_decoy"); //decoy
            if (GetConVarBool(Tagrenade)) GivePlayerItem(client, "weapon_tagrenade"); //Taktyczny
            SetEntProp(client, Prop_Send, "m_iAccount", money + g_moneystart); // plus $ na start
            if (GetConVarBool(Armorvalue)) SetEntProp(client, Prop_Send, "m_ArmorValue", 100); //kamizelka
            if (GetConVarBool(Bhashelmet)) SetEntProp(client, Prop_Send, "m_bHasHelmet", 1); //helm
            
            if(team == CS_TEAM_CT)
            {
                if (GetConVarBool(Defuser) && GetEntProp(client, Prop_Send, "m_bHasDefuser") == 0) GivePlayerItem(client, "item_defuser"); //kombinerki
    
            }
            CreateTimer(0.1, Event_HandleSpawn, GetEventInt(event, "userid"));
        }
    
    }
}
 
stock StripNades(client)
{
    while(RemoveWeaponBySlot(client, 3)){}
    for(new i = 0; i < 6; i++)
    SetEntProp(client, Prop_Send, "m_iAmmo", 0, _, g_iaGrenadeOffsets);
}
stock bool:RemoveWeaponBySlot(client, iSlot)
{
    new iEntity = GetPlayerWeaponSlot(client, iSlot);
    if(IsValidEdict(iEntity)) {
        RemovePlayerItem(client, iEntity);
        AcceptEntityInput(iEntity, "Kill");
        return true;
    }
    return false;


public Event_BombPlanted(Handle:event, const String:name[], bool:dontBroadcast)
{
    new client = GetClientOfUserId(GetEventInt(event, "userid"));
    new money = GetEntProp(client, Prop_Send, "m_iAccount");
    new g_bombplanted = GetConVarInt(Bombplanted);
    
    if (IsPlayerGenericAdmin(client))
    
    
    {
        SetEntProp(client, Prop_Send, "m_iAccount", money + g_bombplanted);//plus $ for Bomb Planted
        
        
    }
}

public Event_BombDefused(Handle:event, const String:name[], bool:dontBroadcast)
{
    new client = GetClientOfUserId(GetEventInt(event, "userid"));
    new money = GetEntProp(client, Prop_Send, "m_iAccount");
    new g_bombdefused = GetConVarInt(Bombdefused);
    
    if (IsPlayerGenericAdmin(client))
    
    
    {
        SetEntProp(client, Prop_Send, "m_iAccount", money + g_bombdefused); //plus $ for Bomb Defused
        
        
    }
}

public Event_PlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
{
    new attacker = GetClientOfUserId(GetEventInt(event, "attacker"));
    new money = GetEntProp(attacker, Prop_Send, "m_iAccount");
    new health = GetEntProp(attacker, Prop_Send, "m_iHealth");
    new g_headshot_money = GetConVarInt(Headshot_money);
    new g_headshot_hp = GetConVarInt(Headshot_hp);
    new g_kill_money = GetConVarInt(Kill_money);
    new g_kill_hp = GetConVarInt(Kill_hp);
    
    new bool:headshot = GetEventBool(event, "headshot");
    if (IsPlayerGenericAdmin(attacker))
    
    
    {
        if(headshot)
        
        {
            SetEntProp(attacker, Prop_Send, "m_iAccount", money + g_headshot_money); //plus for hs
            SetEntProp(attacker, Prop_Send, "m_iHealth", health + g_headshot_hp); //plus hp for hs
            
            
        }
        else
        
        {
            SetEntProp(attacker, Prop_Send, "m_iAccount", money + g_kill_money); //plus for kill
            SetEntProp(attacker, Prop_Send, "m_iHealth", health + g_kill_hp); //plus hp for kill
            
            
        }
        
        
    }
}

public Action:Event_TagTable(Handle:event, String:name[], bool:dontBroadcast)
{
    new client = GetClientOfUserId(GetEventInt(event, "userid"));
    if (IsPlayerGenericAdmin(client))
    
    
    {
        if (GetConVarBool(Tagtable)) CS_SetClientClanTag(client, "[VIP]");
        
        
    }
}

public Action:Command_SendToAll(client, args)
{
    if ((IsPlayerGenericAdmin(client)) && GetConVarBool(Tagsay))
    {
        new String:text[256];
        GetCmdArg(1, text, sizeof(text));
        
        if (text[0] == '/' || text[0] == '@' || text[0] == '!' || text[0] == 0 || IsChatTrigger())
        {
            return Plugin_Handled;
        }
        if(IsPlayerAlive(client) && GetClientTeam(client) != 1)
        {
        PrintToChatAll("\x01[\x04VIP\x01]\x05 %N: \x01%s", client, text);
        }
        else if(!IsPlayerAlive(client) && GetClientTeam(client) != 1)
        {
        PrintToChatAll("\x01*NIE ZYJE* [\x04VIP\x01]\x05 %N: \x01%s", client, text);
        }
        else if(!IsPlayerAlive(client) && GetClientTeam(client) == 1)
        {
        PrintToChatAll("\x01*OBSERWATOR* [\x04VIP\x01]\x05 %N: \x01%s", client, text);
        }
        return Plugin_Handled;
    }
    return Plugin_Continue;
}

public Action:Command_SendToTeam(client, args)
{
    if ((IsPlayerGenericAdmin(client)) && GetConVarBool(Tagsay))
    {
        new String:text[256];
        GetCmdArg(1, text, sizeof(text));
        
        if (text[0] == '/' || text[0] == '@' || text[0] == '!' || text[0] == 0 || IsChatTrigger())
        {
            return Plugin_Handled;
        }
        for (new i = 1; i <= MaxClients; i++)
        {
            if (IsClientInGame(i) && IsClientConnected(i))
            {
                if (GetClientTeam(client) == GetClientTeam(i))
                {
                    if(GetClientTeam(client) == 2)
                    {
                        if(IsPlayerAlive(client))
                        {
                            PrintToChat(i, "\x01(Terrorysta) [\x04VIP\x01]\x05 %N \x01%s", client, text);
                        }
                        else if(!IsPlayerAlive(client))
                        {
                            PrintToChat(i, "\x01*NIE ZYJE*(Terrorysta) [\x04VIP\x01]\x05 %N \x01%s", client, text);
                        }
                        return Plugin_Handled;
                    }
                    else if(GetClientTeam(client) == 3)
                    {
                        if(IsPlayerAlive(client))
                        {
                        PrintToChat(i, "\x01(Antyterrorysta) [\x04VIP\x01]\x05 %N \x01%s", client, text);
                        }
                        else if(!IsPlayerAlive(client))
                        {
                        PrintToChat(i, "\x01*NIE ZYJE*(Antyterrorysta) [\x04VIP\x01]\x05 %N \x01%s", client, text);
                        }
                        return Plugin_Handled;
                    }
                    else if(GetClientTeam(client) == 1)
                    {
                        PrintToChat(i, "\x01[OBSERWATOR] [\x04VIP\x01]\x05 %N \x01%s", client, text);
                        return Plugin_Handled;
                    }
                }
            }
        }
    }
    return Plugin_Continue;
}

public Action:OnPlayerRunCmd(iClient, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
    if ((IsPlayerGenericAdmin(iClient)) && IsPlayerAlive(iClient) && GetConVarBool(Double_jump))
    
    
    {
        static g_fLastButtons[MAXPLAYERS+1], g_fLastFlags[MAXPLAYERS+1], g_iJumps[MAXPLAYERS+1], fCurFlags, fCurButtons;
        fCurFlags = GetEntityFlags(iClient);
        fCurButtons = GetClientButtons(iClient);
        if (g_fLastFlags[iClient] & FL_ONGROUND && !(fCurFlags & FL_ONGROUND) && !(g_fLastButtons[iClient] & IN_JUMP) && fCurButtons & IN_JUMP) g_iJumps[iClient]++;
        else if(fCurFlags & FL_ONGROUND) g_iJumps[iClient] = 0;
        else if(!(g_fLastButtons[iClient] & IN_JUMP) && fCurButtons & IN_JUMP && g_iJumps[iClient] == 1)
        
        
        {
            g_iJumps[iClient]++;
            decl Float:vVel[3];
            GetEntPropVector(iClient, Prop_Data, "m_vecVelocity", vVel);
            vVel[2] = 250.0;
            TeleportEntity(iClient, NULL_VECTOR, NULL_VECTOR, vVel);
            
            
        }
        
        g_fLastFlags[iClient] = fCurFlags;
        g_fLastButtons[iClient] = fCurButtons;
        
        
    }
    return Plugin_Continue;
}

public Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
{
    Rounds = Rounds + 1;
}

public Action:RestartRound(Handle:event, const String:name[], bool:dontBroadcast)
{
    Rounds = 0;
}

public OnClientPutInServer(client)
{
    g_MenuOpen[client]=false;

    g_PlayerPrimary[client] = SHOW_MENU;
    g_PlayerSecondary[client] = SHOW_MENU;
}

public Event_PlayerTeam(Handle:event, const String:name[], bool:dontBroadcast)
{
    new client = GetClientOfUserId(GetEventInt(event, "userid"));
    new team = GetClientTeam(client);

    if (g_MenuOpen[client] && team == CS_TEAM_SPECTATOR)
    {
        CancelClientMenu(client);        // Delayed
        g_MenuOpen[client] = false;
    }
}

stock CheckConfig(const String:ini_file[])
{
    decl String:file[PLATFORM_MAX_PATH];
    BuildPath(Path_SM, file, sizeof(file), ini_file);

    new timestamp = GetFileTime(file, FileTime_LastChange);

    if (timestamp == -1) SetFailState("\nCould not stat config file: %s.", file);

    InitializeMenus();
    if (ParseConfigFile(file))
    {
        FinalizeMenus();
    }
    
}

stock InitializeMenus()
{
    g_PrimaryGunCount=0;
    CheckCloseHandle(g_PrimaryMenu);
    g_PrimaryMenu = CreateMenu(MenuHandler_ChoosePrimary, MenuAction_Display|MenuAction_Select|MenuAction_Cancel);
    SetMenuTitle(g_PrimaryMenu, "[VIP] Wybierz darmowa bron:");

    g_SecondaryGunCount=0;
    CheckCloseHandle(g_SecondaryMenu);
    g_SecondaryMenu = CreateMenu(MenuHandler_ChooseSecondary, MenuAction_Display|MenuAction_Select|MenuAction_Cancel);
    SetMenuTitle(g_SecondaryMenu, "[VIP] Wybierz darmowa bron:");
}

stock FinalizeMenus()
{
    AddMenuItem(g_PrimaryMenu, "FF", "None");
    AddMenuItem(g_SecondaryMenu, "FF", "None");
}

bool:ParseConfigFile(const String:file[]) {

    new Handle:parser = SMC_CreateParser();
    SMC_SetReaders(parser, Config_NewSection, Config_UnknownKeyValue, Config_EndSection);
    SMC_SetParseEnd(parser, Config_End);

    new line = 0;
    new col = 0;
    new String:error[128];
    new SMCError:result = SMC_ParseFile(parser, file, line, col);
    CloseHandle(parser);

    if (result != SMCError_Okay) {
        SMC_GetErrorString(result, error, sizeof(error));
        LogError("%s on line %d, col %d of %s", error, line, col, file);
    }

    return (result == SMCError_Okay);
}

new g_configLevel;
public SMCResult:Config_NewSection(Handle:parser, const String:section[], bool:quotes)
{
    g_configLevel++;
    if (g_configLevel==2)
    {
        if (StrEqual("PrimaryMenu", section, false)) SMC_SetReaders(parser, Config_NewSection, Config_PrimaryKeyValue, Config_EndSection);
        else if (StrEqual("SecondaryMenu", section, false)) SMC_SetReaders(parser, Config_NewSection, Config_SecondaryKeyValue, Config_EndSection);
    }
    else SMC_SetReaders(parser, Config_NewSection, Config_UnknownKeyValue, Config_EndSection);
    return SMCParse_Continue;
}

public SMCResult:Config_UnknownKeyValue(Handle:parser, const String:key[], const String:value[], bool:key_quotes, bool:value_quotes)
{
    SetFailState("\nDidn't recognize configuration: Level %i %s=%s", g_configLevel, key, value);
    return SMCParse_Continue;
}

public SMCResult:Config_PrimaryKeyValue(Handle:parser, const String:weapon_class[], const String:weapon_name[], bool:key_quotes, bool:value_quotes) {
    if (g_PrimaryGunCount>=MAX_WEAPON_COUNT) SetFailState("\nToo many weapons declared!");

    decl String:weapon_id[4];
    strcopy(g_PrimaryGuns[g_PrimaryGunCount], sizeof(g_PrimaryGuns[]), weapon_class);
    Format(weapon_id, sizeof(weapon_id), "%02.2X", g_PrimaryGunCount++);
    AddMenuItem(g_PrimaryMenu, weapon_id, weapon_name);
    return SMCParse_Continue;
}

public SMCResult:Config_SecondaryKeyValue(Handle:parser, const String:weapon_class[], const String:weapon_name[], bool:key_quotes, bool:value_quotes)
{
    if (g_SecondaryGunCount>=MAX_WEAPON_COUNT) SetFailState("\nToo many weapons declared!");

    decl String:weapon_id[4];
    strcopy(g_SecondaryGuns[g_SecondaryGunCount], sizeof(g_SecondaryGuns[]), weapon_class);
    Format(weapon_id, sizeof(weapon_id), "%02.2X", g_SecondaryGunCount++);
    AddMenuItem(g_SecondaryMenu, weapon_id, weapon_name);
    return SMCParse_Continue;
}

public SMCResult:Config_EndSection(Handle:parser)
{
    g_configLevel--;
    SMC_SetReaders(parser, Config_NewSection, Config_UnknownKeyValue, Config_EndSection);
    return SMCParse_Continue;
}

public Config_End(Handle:parser, bool:halted, bool:failed)
{
    if (failed) SetFailState("\nPlugin error");
}

public MenuHandler_ChoosePrimary(Handle:menu, MenuAction:action, param1, param2)
{
    if (action == MenuAction_Display) g_MenuOpen[param1] = true;
    else if (action == MenuAction_Select)
    {
        new client = param1;
        new team = GetClientTeam(client);
        decl String:weapon_id[4];
        GetMenuItem(menu, param2, weapon_id, sizeof(weapon_id));
        new weapon = StringToInt(weapon_id, 16);

        g_PlayerPrimary[client] = weapon;
        if (team > CS_TEAM_SPECTATOR) GivePrimary(client);

        DisplayMenu(g_SecondaryMenu, client, MENU_TIME_FOREVER);
    }
    else if (action == MenuAction_Cancel)
    {
        g_MenuOpen[param1] = false;
        if (param2 == MenuCancel_Exit)    // CancelClientMenu sends MenuCancel_Interrupted reason
        {
            if (g_SecondaryMenu != INVALID_HANDLE) DisplayMenu(g_SecondaryMenu, param1, MENU_TIME_FOREVER);
        }
    }
}

public MenuHandler_ChooseSecondary(Handle:menu, MenuAction:action, param1, param2)
{
    if (action == MenuAction_Display) g_MenuOpen[param1] = true;
    else if (action == MenuAction_Select)
    {
        new client = param1;
        new team = GetClientTeam(client);
        decl String:weapon_id[4];
        GetMenuItem(menu, param2, weapon_id, sizeof(weapon_id));
        new weapon = StringToInt(weapon_id, 16);

        g_PlayerSecondary[client] = weapon;
        if (team > CS_TEAM_SPECTATOR) GiveSecondary(client);
    }
    else if (action == MenuAction_Cancel) g_MenuOpen[param1] = false;
}

public Action:Event_HandleSpawn(Handle:timer, any:user)
{
    new client = GetClientOfUserId(user);
    new g_menu_round = GetConVarInt(Menu_round);
    if (!client) return;

    if (GetConVarBool(Menu_onspawn) && Rounds >= g_menu_round > 0 )
    {
        if (g_PlayerPrimary[client]==SHOW_MENU && g_PlayerSecondary[client]==SHOW_MENU)
        {
            if (g_PrimaryMenu != INVALID_HANDLE) DisplayMenu(g_PrimaryMenu, client, MENU_TIME_FOREVER);
            else if (g_SecondaryMenu != INVALID_HANDLE) DisplayMenu(g_SecondaryMenu, client, MENU_TIME_FOREVER);
        }
        else
        {
            GivePrimary(client);
            GiveSecondary(client);
        }
    }
}

stock GivePrimary(client)
{
    new weapon = g_PlayerPrimary[client];
    RemoveWeaponBySlot(client, 0);
    if (weapon >= 0 && weapon < g_PrimaryGunCount) GivePlayerItem(client, g_PrimaryGuns[weapon]);
}

stock GiveSecondary(client)
{
    new weapon = g_PlayerSecondary[client];
    RemoveWeaponBySlot(client, 1);
    if (weapon >= 0 && weapon < g_SecondaryGunCount) GivePlayerItem(client, g_SecondaryGuns[weapon]);
}

public Action:Command_VipMenu(client, args)
{
    new g_menu_round = GetConVarInt(Menu_round);
    if (IsPlayerGenericAdmin(client))
    {
        if (IsClientInGame(client) && Rounds >= g_menu_round > 0 && GetConVarBool(Menu_command))
        {
            if (g_PrimaryMenu != INVALID_HANDLE) DisplayMenu(g_PrimaryMenu, client, MENU_TIME_FOREVER);
            else if (g_SecondaryMenu != INVALID_HANDLE) DisplayMenu(g_SecondaryMenu, client, MENU_TIME_FOREVER);
        }
    }
    return Plugin_Continue;
}

stock CheckCloseHandle(&Handle:handle)
{
    if (handle != INVALID_HANDLE)
    {
        CloseHandle(handle);
        handle = INVALID_HANDLE;
    }
}


stock min(a, b) {return (a<b) ? a:b;}
stock max(a, b) {return (a>b) ? a:b;}

/*
@param client id

return bool
*/
bool:IsPlayerGenericAdmin(client)
{
    if (!CheckCommandAccess(client, "sm_vip", 0, true)) return false;    
    {
        return true;

    }
}

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Masz od Hanysa.

 

Masz tam granaty od 2 rundy ?

 

VipHanys.sp
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

VipHanys.smx
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
59 minut temu, Mesharsky napisał:

Masz od Hanysa.

 

Masz tam granaty od 2 rundy ?

 

VipHanys.sp
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

VipHanys.smx
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

Granaty niestety pokazują się w pierwszej rundzie

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jesteś pewien że usunąłeś stary plugin i wrzuciłeś ten? Powinno działać prawidłowo, sprawdź dokładnie zainstalowane pluginy.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Przed chwilą, Mesharsky napisał:

Jesteś pewien że usunąłeś stary plugin i wrzuciłeś ten? Powinno działać prawidłowo, sprawdź dokładnie zainstalowane pluginy.

Tak, jestem pewien i granaty dostaje na rozgrzewce i później od pierwszej rundy

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
2 minuty temu, Lisu napisał:

Tak, jestem pewien i granaty dostaje na rozgrzewce i później od pierwszej rundy

Spróbuj w takim razie tak

 

 

VipHanys.smx
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

VipHanys.sp
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
3 minuty temu, Mesharsky napisał:

Jesteś pewien że usunąłeś stary plugin i wrzuciłeś ten? Powinno działać prawidłowo, sprawdź dokładnie zainstalowane pluginy.

Dobra, jednak chyba działa, wrzuciłem Twój plik smx. bo bo kompilacji nie działało.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
1 minutę temu, Lisu napisał:

Dobra, jednak chyba działa, wrzuciłem Twój plik smx. bo bo kompilacji nie działało.

To się cieszę, sprawdź dokładnie jeszcze raz wszystko, jeżeli działa prawidłowo daj znać a zamknę temat ? 

ps: dzisiaj wypuszczam nową wersję mojego vipa napisanego dużo lepiej więc będziesz miał tam właśnie opcje które tutaj potrzebujesz.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dzięki wielkie, wszystko działa, możesz zamknąć.

Edytowane przez Lisu

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Pomoc udzielona

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×
×
  • Dodaj nową pozycję...