Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

iRound


Gość
 Udostępnij

Rekomendowane odpowiedzi

Jak skutecznie dodać bonusy w postaci $$ od drugiej rundy, już coś sam kombinowałem lecz nieskutecznie

 

#pragma semicolon 1

#define DEBUG

#define PLUGIN_AUTHOR "xFlane"
#define PLUGIN_VERSION "1.00"

#define NICKNAME_PART "" 

#define PREFIX "[BONUS]"

#include <sourcemod>
#include <cstrike>
#include <sdktools>

#define CHANCE_TO_RECEIVE_MONEY 25
#define CHANCE_TO_WEAPON CHANCE_TO_RECEIVE_MONEY + 25
#define CHANCE_TO_KEVLAR CHANCE_TO_WEAPON + 25
#define CHANCE_TO_ARMOR CHANCE_TO_KEVLAR + 25

#pragma newdecls required

const int LIMIT_BONUS = 0,1,2; // ogranicza dana runde
int g_iRoundCount = 0; // zeruje rundy 

int moneyGifts[] = 
{
    100, 
    200, 
    300, 
    400, 
    500
};

char itemGifts[][] = 
{
    "weapon_decoy", 
    "weapon_flashbang", 
    "weapon_hegrenade", 
    "weapon_incgrenade", 
    "weapon_molotov", 
    "weapon_smokegrenade", 
    "weapon_taser", 
    "weapon_tagrenade"
};

EngineVersion g_Game;

public Plugin myinfo = 
{
    name = "[SM] Nickname random gifts.", 
    author = PLUGIN_AUTHOR, 
    description = "", 
    version = PLUGIN_VERSION, 
    url = "http://steamcommunity.com/id/xflane/"
};

public void OnPluginStart()
{
    g_Game = GetEngineVersion();
    if (g_Game != Engine_CSGO && g_Game != Engine_CSS)
    {
        SetFailState("This plugin is for CSGO/CSS only.");
    }
    
    HookEvent("player_spawn", Event_Spawn);
    HookEvent("round_start", Event_OnRoundStart);
}

public void OnMapStart() {
    g_iRoundCount = 0;
}

public Action Event_OnRoundStart(Event hEvent, const char[] szBroadcast, bool bBroadcast) {
    if (GameRules_GetProp("m_bWarmupPeriod") == 0) {  // nie liczymy rozgrzewki
        g_iRoundCount += 1;
    }
}

public Action Event_Spawn(Event event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));
    
    char clientName[32];
    GetClientName(client, clientName, 32);
    
    if (StrContains(clientName, NICKNAME_PART) > -1)
    {
        int num = 0;
        
        if (GetTeamScore(CS_TEAM_CT) + GetTeamScore(CS_TEAM_T) == 0 || IsBonusDisabled())
            num = GetRandomInt(CHANCE_TO_RECEIVE_MONEY+1, 100);
        else
            num = GetRandomInt(0, 100);

        if (num <= CHANCE_TO_RECEIVE_MONEY)
        {
            int money = moneyGifts[GetRandomInt(0, sizeof(moneyGifts) - 1)];
            PrintToChat(client, "%s Otrzymales \x04%i$\x01, bonusowe \x04%s\x01 za dopisek w nicku.", PREFIX, money, NICKNAME_PART);
            money += GetEntProp(client, Prop_Send, "m_iAccount");
            SetEntProp(client, Prop_Send, "m_iAccount", money > 16000 ? 16000 : money);
        }
        else if (num <= CHANCE_TO_WEAPON)
        {
            char weapon[32];
            strcopy(weapon, 32, itemGifts[GetRandomInt(0, sizeof(itemGifts) - 1)]);
            GivePlayerItem(client, weapon);
            ReplaceString(weapon, 32, "weapon_", "");
            PrintToChat(client, "%s Otrzymales \x04%s\x01, jako bonus \x04%s\x01 za dopisek w nicku.", PREFIX, weapon, NICKNAME_PART);
        }
        else if (num <= CHANCE_TO_KEVLAR)
        {
            SetEntProp(client, Prop_Send, "m_bHasHelmet", 1);
            PrintToChat(client, "%s Otrzymales \x04Kevlar\x01, jako bonus \x04%s\x01 za dopisek w nicku.", PREFIX, NICKNAME_PART);
        }
        else if (num <= CHANCE_TO_ARMOR)
        {
            SetEntProp(client, Prop_Send, "m_ArmorValue", 100);
            PrintToChat(client, "%s Otrzymales \x0Kamizelke\x01, jako bonus \x04%s\x01 za dopisek w nicku.", PREFIX, NICKNAME_PART);
        }
        
    }
    
    return Plugin_Continue;
}

stock bool IsBonusDisabled() {
    return g_iRoundCount >= LIMIT_BONUS; 
}  

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...