Skocz do zawartości
Headshotplay

[Rozwiązane] Przerobienie pluginu VIP

Rekomendowane odpowiedzi

Witam,

Czy mógłby mi ktoś przerobić plugin ?

Jeśli nie, mogę zapłacić

 

Wiadomości

★ Po zabiciu +3hp - [VIP] Za zabicie otrzymujesz +3hp (+3hp jest już)

★ Po zabiciu z HS - [VIP] Za zabicie z HS otrzymujesz więcej pieniędzy i +3hp (+3hp jest już)

★ Po rozbrojeniu bomby - [VIP] Za rozbrojenie bomby otrzymujesz więcej hajsu (Hajs jest)

★ Po podłożeniu bomby - [VIP] Za podłożenie bomby otrzymujesz więcej hajsu (Hajs jest)

 

Pobierz:  Vip.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
1 godzinę temu, Headshotplay napisał:

Witam,

Czy mógłby mi ktoś przerobić plugin ?

Jeśli nie, mogę zapłacić

 

Wiadomości

★ Po zabiciu +3hp - [VIP] Za zabicie otrzymujesz +3hp (+3hp jest już)

★ Po zabiciu z HS - [VIP] Za zabicie z HS otrzymujesz więcej pieniędzy i +3hp (+3hp jest już)

★ Po rozbrojeniu bomby - [VIP] Za rozbrojenie bomby otrzymujesz więcej hajsu (Hajs jest)

★ Po podłożeniu bomby - [VIP] Za podłożenie bomby otrzymujesz więcej hajsu (Hajs jest)

 

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

Wrzuć cały kod w spoiler. Obecnie na stronie jest zablokowane pobieranie.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Spoiler

/* << 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", "5", "Ile zdrowia ma dostawać vip za zabicie gracza?");
    g_cvVipHeadShotHP = CreateConVar("hs_hp_vip", "5", "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", "100", "Punkty kamizelki dla vipa? (od 1 - 100)");
    g_cvVipHelm = CreateConVar("helm_vip", "1", "Czy vip ma posiadać darmowy hełm? (0/1)");
    g_cvVipPieniadzeNaStart = CreateConVar("vip_dodatkowy_Pieniadze", "0", "Ilość dodatkowego Pieniadzeu na start rundy jaki ma vip dostawać.");
    g_cvVipKillPieniadze = CreateConVar("Pieniadze_kill_vip", "200", "Ile vip ma dostawać pieniędzy za zabójstwo ?");
    g_cvVipHeadShotPieniadze = CreateConVar("Pieniadze_hs_vip", "300", "Ile vip ma dostawać pieniędzy za zabójstwo w głowę?");
    g_cvVipPieniadzePodlozenie = CreateConVar("Pieniadze_podlozenie_vip", "200", "Ile pieniędzy ma dostawać vip za podłożenie bomby?");
    g_cvVipPieniadzeRozbrojenie = CreateConVar("Pieniadze_rozbrojenie_vip", "200", "Ile pieniędzy ma dostawać vip za rozbrojenie bomby?");
    g_cvVipWygranaPieniadze = CreateConVar("Pieniadze_wygranie_rundy", "200", "Ile pieniędzy ma dostawać vip za wygranie rundy?");
    g_cvHEGranat = CreateConVar("vip_he", "1", "Czy vip ma dostawać granat HE na start rundy?");
    g_cvFlashGranat = CreateConVar("vip_flash", "1", "Czy vip ma dostawać granat Flash na start rundy?");
    g_cvSmokeGranat = CreateConVar("vip_smoke", "1", "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", "1", "Czy vip ma dostawać granat Leczący na start rundy?");
    g_cvIncGranat = CreateConVar("vip_inc", "1", "Czy vip ma dostawać granat Podpalający (CT) na start rundy?");
    g_cvMolotovGranat = CreateConVar("vip_molotov", "1", "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", "1", "Czy vip ma posiadać podwójny skok?");
    g_cvMenu_Broni = CreateConVar("vip_menu_broni", "1", "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;
}

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
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) {
		CPrintToChat(attacker, "★ [VIP] Za zabicie z HS otrzymujesz +%i$ oraz +%i HP", GetConVarInt(g_cvVipHeadShotPieniadze), GetConVarInt(vip_cvarVipHeadShotHP));
                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 {
		CPrintToChat(attacker, "★ [VIP] Za zabicie gracza otrzymujesz %i HP", GetConVarInt(g_cvVipKillHP));
                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)) {
	CPrintToChat(client, "★ [VIP] Za podłożenie bomby otrzymałeś +%i$", GetConVarInt(g_cvVipPieniadzePodlozenie));
        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)) {
	CPrintToChat(client, "★ [VIP] Za rozbrojenie bomby otrzymałeś +%i$", GetConVarInt(g_cvVipPieniadzeRozbrojeni));
        SetEntProp(client, Prop_Send, "m_iAccount", GetConVarInt(g_cvVipPieniadzeRozbrojenie) + PieniadzeGracza);
    }
}

?

Edytowane przez Weak.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Spoiler

 

//SourceMod Batch Compiler

// by the SourceMod Dev Team

 

//// Vip.sp

//

// C:\Isers\dawid\Deskopt\scripting\Vip.sp(293) : error 017: undefined symbol "vip_cvarVipHeadsShotHP"

// C:\Isers\dawid\Deskopt\scripting\Vip.sp(325) : error 017: undefined symbol "g_cvVipPieniadzeRozbrojeni"

//

// 2 Errors.

//

// Compilation Time: 0,42 sec

// --------------------------------------------

 

Press enter to exit

 

Coś nie działa 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Kod:
 

Spoiler

/* << 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 = "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", "5", "Ile zdrowia ma dostawać vip za zabicie gracza?");
    g_cvVipHeadShotHP = CreateConVar("hs_hp_vip", "5", "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", "100", "Punkty kamizelki dla vipa? (od 1 - 100)");
    g_cvVipHelm = CreateConVar("helm_vip", "1", "Czy vip ma posiadać darmowy hełm? (0/1)");
    g_cvVipPieniadzeNaStart = CreateConVar("vip_dodatkowy_Pieniadze", "0", "Ilość dodatkowego Pieniadzeu na start rundy jaki ma vip dostawać.");
    g_cvVipKillPieniadze = CreateConVar("Pieniadze_kill_vip", "200", "Ile vip ma dostawać pieniędzy za zabójstwo ?");
    g_cvVipHeadShotPieniadze = CreateConVar("Pieniadze_hs_vip", "300", "Ile vip ma dostawać pieniędzy za zabójstwo w głowę?");
    g_cvVipPieniadzePodlozenie = CreateConVar("Pieniadze_podlozenie_vip", "200", "Ile pieniędzy ma dostawać vip za podłożenie bomby?");
    g_cvVipPieniadzeRozbrojenie = CreateConVar("Pieniadze_rozbrojenie_vip", "200", "Ile pieniędzy ma dostawać vip za rozbrojenie bomby?");
    g_cvVipWygranaPieniadze = CreateConVar("Pieniadze_wygranie_rundy", "200", "Ile pieniędzy ma dostawać vip za wygranie rundy?");
    g_cvHEGranat = CreateConVar("vip_he", "1", "Czy vip ma dostawać granat HE na start rundy?");
    g_cvFlashGranat = CreateConVar("vip_flash", "1", "Czy vip ma dostawać granat Flash na start rundy?");
    g_cvSmokeGranat = CreateConVar("vip_smoke", "1", "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", "1", "Czy vip ma dostawać granat Leczący na start rundy?");
    g_cvIncGranat = CreateConVar("vip_inc", "1", "Czy vip ma dostawać granat Podpalający (CT) na start rundy?");
    g_cvMolotovGranat = CreateConVar("vip_molotov", "1", "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", "1", "Czy vip ma posiadać podwójny skok?");
    g_cvMenu_Broni = CreateConVar("vip_menu_broni", "1", "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) {
        CPrintToChat(attacker, "★ [VIP] Za zabicie z HS otrzymujesz +%i$ oraz +%i HP", GetConVarInt(g_cvVipHeadShotPieniadze), GetConVarInt(vip_cvarVipHeadShotHP));
                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 {
        CPrintToChat(attacker, "★ [VIP] Za zabicie gracza otrzymujesz %i HP", GetConVarInt(g_cvVipKillHP));
                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)) {
    CPrintToChat(client, "★ [VIP] Za podłożenie bomby otrzymałeś +%i$", GetConVarInt(g_cvVipPieniadzePodlozenie));
        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)) {
    CPrintToChat(client, "★ [VIP] Za rozbrojenie bomby otrzymałeś +%i$", GetConVarInt(g_cvVipPieniadzeRozbrojeni));
        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;
}

 

Edytowane przez Headshotplay

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zamień "vip_cvarVipHeadsShotHP" na "vip_cvarVipHeadShotHP" oraz "g_cvVipPieniadzeRozbrojen" na "g_cvVipPieniadzeRozbrojenie".

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie widzę tutaj tego błędu 

Jest coś takiego:

 

Spoiler

            if (headshot) {
        CPrintToChat(attacker, "★ [VIP] Za zabicie z HS otrzymujesz +%i$ oraz +%i HP", GetConVarInt(g_cvVipHeadShotPieniadze), GetConVarInt(vip_cvarVipHeadShotHP));
                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));

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Spoiler

/* << 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 = "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", "5", "Ile zdrowia ma dostawać vip za zabicie gracza?");
    g_cvVipHeadShotHP = CreateConVar("hs_hp_vip", "5", "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", "100", "Punkty kamizelki dla vipa? (od 1 - 100)");
    g_cvVipHelm = CreateConVar("helm_vip", "1", "Czy vip ma posiadać darmowy hełm? (0/1)");
    g_cvVipPieniadzeNaStart = CreateConVar("vip_dodatkowy_Pieniadze", "0", "Ilość dodatkowego Pieniadzeu na start rundy jaki ma vip dostawać.");
    g_cvVipKillPieniadze = CreateConVar("Pieniadze_kill_vip", "200", "Ile vip ma dostawać pieniędzy za zabójstwo ?");
    g_cvVipHeadShotPieniadze = CreateConVar("Pieniadze_hs_vip", "300", "Ile vip ma dostawać pieniędzy za zabójstwo w głowę?");
    g_cvVipPieniadzePodlozenie = CreateConVar("Pieniadze_podlozenie_vip", "200", "Ile pieniędzy ma dostawać vip za podłożenie bomby?");
    g_cvVipPieniadzeRozbrojenie = CreateConVar("Pieniadze_rozbrojenie_vip", "200", "Ile pieniędzy ma dostawać vip za rozbrojenie bomby?");
    g_cvVipWygranaPieniadze = CreateConVar("Pieniadze_wygranie_rundy", "200", "Ile pieniędzy ma dostawać vip za wygranie rundy?");
    g_cvHEGranat = CreateConVar("vip_he", "1", "Czy vip ma dostawać granat HE na start rundy?");
    g_cvFlashGranat = CreateConVar("vip_flash", "1", "Czy vip ma dostawać granat Flash na start rundy?");
    g_cvSmokeGranat = CreateConVar("vip_smoke", "1", "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", "1", "Czy vip ma dostawać granat Leczący na start rundy?");
    g_cvIncGranat = CreateConVar("vip_inc", "1", "Czy vip ma dostawać granat Podpalający (CT) na start rundy?");
    g_cvMolotovGranat = CreateConVar("vip_molotov", "1", "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", "1", "Czy vip ma posiadać podwójny skok?");
    g_cvMenu_Broni = CreateConVar("vip_menu_broni", "1", "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) {
				CPrintToChat(attacker, "★ [VIP] Za zabicie z HS otrzymujesz +%i$ oraz +%i HP", GetConVarInt(g_cvVipHeadShotPieniadze), GetConVarInt(g_cvVipHeadShotHP));
                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 {
				CPrintToChat(attacker, "★ [VIP] Za zabicie gracza otrzymujesz %i HP", GetConVarInt(g_cvVipKillHP));
                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)) {
		CPrintToChat(client, "★ [VIP] Za podłożenie bomby otrzymałeś +%i$", GetConVarInt(g_cvVipPieniadzePodlozenie));
        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)) {
		CPrintToChat(client, "★ [VIP] Za rozbrojenie bomby otrzymałeś +%i$", GetConVarInt(g_cvVipPieniadzeRozbrojenie));
        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;
}

 

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

Edytowane przez Weak.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

// C:\Users\dell\Desktop\scripting\uheadshotapl_vip.sp(272) : warning 217: loose indentation
// C:\Users\dell\Desktop\scripting\uheadshotapl_vip.sp(278) : warning 217: loose indentation
// C:\Users\dell\Desktop\scripting\uheadshotapl_vip.sp(293) : warning 217: loose indentation
// C:\Users\dell\Desktop\scripting\uheadshotapl_vip.sp(304) : warning 217: loose indentation

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

//SourceMod Batch Compiler
// by the SourceMod Dev Team


//// 3.sp
//
// C:\Users\dell\Desktop\scripting\3.sp(272) : warning 217: loose indentation
// C:\Users\dell\Desktop\scripting\3.sp(278) : warning 217: loose indentation
// C:\Users\dell\Desktop\scripting\3.sp(293) : warning 217: loose indentation
// C:\Users\dell\Desktop\scripting\3.sp(304) : warning 217: loose indentation
// Code size:            32276 bytes
// Data size:            10716 bytes
// Stack/heap size:      16384 bytes
// Total requirements:   59376 bytes
//
// 4 Warnings.
//
// Compilation Time: 0,48 sec
// ----------------------------------------

Press enter to exit ...

Udostępnij tę odpowiedź


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

//SourceMod Batch Compiler
// by the SourceMod Dev Team


//// 3.sp
//
// C:\Users\dell\Desktop\scripting\3.sp(272) : warning 217: loose indentation
// C:\Users\dell\Desktop\scripting\3.sp(278) : warning 217: loose indentation
// C:\Users\dell\Desktop\scripting\3.sp(293) : warning 217: loose indentation
// C:\Users\dell\Desktop\scripting\3.sp(304) : warning 217: loose indentation
// Code size:            32276 bytes
// Data size:            10716 bytes
// Stack/heap size:      16384 bytes
// Total requirements:   59376 bytes
//
// 4 Warnings.
//
// Compilation Time: 0,48 sec
// ----------------------------------------

Press enter to exit ...

 

To są tylko warningi, ostrzeżenia o tym że twój kod się trochu źle poukładał jednak powinno wszystko działać prawidłowo. ? Plugin się skompilował anyway.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Problem został rozwiązany

Jeżeli się z tym nie zgadzasz, raportuj ten post

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ę...