Sari la conținut

Postări Recomandate

Postat

💰 BONUS ROUNDS SYSTEM 💰


📌 Prezentare generală

Pluginul oferă bonusuri financiare jucătorilor pentru acțiuni importante din rundă: plant, defuse, explode, first kill, headshot, situații 1v1 și multe altele.

mai multă adrenalină, mai mult reward, mai mult gameplay dinamic. Practic, fiecare moment contează.


🔗 Link descărcare: Nespecificat

👨‍💻 Creator: mihay111 

📦 Denumire plugin: bonus_rounds.amxx


⚙️ Comenzi & Cvars

⚙️ Cvar-uri principale:

  • amx_plant_bonus – bonus plant (default 500$)
  • amx_defuse_bonus – bonus defuse (default 500$)
  • amx_explode_bonus – bonus explode (default 500$)
  • amx_explode_mode – 0 = doar planter, 1 = toți T

🎯 Bonusuri combat:

  • amx_firstkill_bonus – primul kill
  • amx_firstpistol_bonus – primul kill cu pistol
  • amx_firstawp_bonus – primul kill cu AWP
  • amx_firstknife_bonus – primul kill cu cuțit
  • amx_firsths_bonus – primul headshot
  • amx_1v1_bonus – bonus 1v1

📢 Sistem inclus:

  • Mesaje colorate în chat
  • Evenimente automate per rundă

🧩 Instrucțiuni instalare

  1. Plasează fișierul bonus_rounds.sma în:
    addons/amxmodx/scripting
  2. Compilează sau folosește direct bonus_rounds.amxx
  3. Mută fișierul bonus_rounds.amxx în:
    addons/amxmodx/plugins
  4. Deschide fișierul:
    addons/amxmodx/configs/plugins.ini
    și adaugă:
    bonus_rounds.amxx
  5. Adaugă cvar-urile dorite în:
    amxmodx/configs/amxx.cfg

📂 Cod sursă

Spoiler
#include <amxmodx>
#include <cstrike>
#include <csx>

new PCvarBonusPlant;
new PCvarBonusDefuse;
new PCvarBonusExplode;
new PCvarExplodeMode;     // 0 = doar planter, 1 = toata echipa T

new PCvarBonusFirstKill;   // primul frag (general)
new PCvarBonus1v1;         // 1v1 bonus
new PCvarBonusFirstPistol; // primul frag cu pistol
new PCvarBonusFirstAwp;    // primul frag cu awp
new PCvarBonusFirstKnife;  // primul frag cu cutit
new PCvarBonusFirstHs;     // primul headshot

// flags resetate la fiecare runda
new bool:g_bFirstKillDone;
new bool:g_bFirstPistolDone;
new bool:g_bFirstAwpDone;
new bool:g_bFirstKnifeDone;
new bool:g_bFirstHsDone;

public plugin_init()
{
    register_plugin("Bomb Bonus Extended", "1.6", "mihay111 edit")

    PCvarBonusPlant     = register_cvar("amx_plant_bonus", "500")
    PCvarBonusDefuse    = register_cvar("amx_defuse_bonus", "500")
    PCvarBonusExplode   = register_cvar("amx_explode_bonus", "500")
    PCvarExplodeMode    = register_cvar("amx_explode_mode", "0")

    PCvarBonusFirstKill   = register_cvar("amx_firstkill_bonus", "500")
    PCvarBonus1v1         = register_cvar("amx_1v1_bonus", "500")
    PCvarBonusFirstPistol = register_cvar("amx_firstpistol_bonus", "500")
    PCvarBonusFirstAwp    = register_cvar("amx_firstawp_bonus", "500")
    PCvarBonusFirstKnife  = register_cvar("amx_firstknife_bonus", "1500")
    PCvarBonusFirstHs     = register_cvar("amx_firsths_bonus", "750")

    register_event("HLTV", "event_new_round", "a", "1=0", "2=0")
    register_event("DeathMsg", "event_death", "a")
}

// ---------------- ROUND START ----------------
public event_new_round()
{
    g_bFirstKillDone   = false
    g_bFirstPistolDone = false
    g_bFirstAwpDone    = false
    g_bFirstKnifeDone  = false
    g_bFirstHsDone     = false
}

// ---------------- ON KILL ----------------
public event_death()
{
    new killer = read_data(1)
    new victim = read_data(2)
    new headshot = read_data(3)   // 1 = HS
    new weapon[32]; read_data(4, weapon, charsmax(weapon))

    if (!is_user_connected(killer) || killer == victim)
        return

    // Primul headshot
    if (!g_bFirstHsDone && headshot == 1)
    {
        g_bFirstHsDone = true
        give_bonus(killer, PCvarBonusFirstHs, "pentru primul headshot din runda", weapon)
    }

    // Primul kill general
    if (!g_bFirstKillDone)
    {
        g_bFirstKillDone = true
        give_bonus(killer, PCvarBonusFirstKill, "pentru primul frag din runda", weapon)
    }

    // Primul kill cu pistol
    if (!g_bFirstPistolDone && is_pistol(weapon))
    {
        g_bFirstPistolDone = true
        give_bonus(killer, PCvarBonusFirstPistol, "pentru primul frag cu pistolul", weapon)
    }

    // Primul kill cu awp
    if (!g_bFirstAwpDone && equal(weapon, "awp"))
    {
        g_bFirstAwpDone = true
        give_bonus(killer, PCvarBonusFirstAwp, "pentru primul frag cu AWP-ul", weapon)
    }

    // Primul kill cu cutitul
    if (!g_bFirstKnifeDone && equal(weapon, "knife"))
    {
        g_bFirstKnifeDone = true
        give_bonus(killer, PCvarBonusFirstKnife, "pentru primul frag cu cutitul", weapon)
    }

    // Check 1v1
    check_1v1_bonus()
}

// ---------------- GIVE BONUS ----------------
give_bonus(id, cvar, const reason[], const weapon[])
{
    new bonus = get_pcvar_num(cvar)
    if (bonus <= 0) return

    new money = cs_get_user_money(id)
    cs_set_user_money(id, money + bonus)

    new name[32]; get_user_name(id, name, charsmax(name))
    player_color(0, ".v[WTFCS] .gJucatorul .e%s .ga primit .e%d$ .g%s .x[arma: %s]!", name, bonus, reason, weapon)
}

// ---------------- 1v1 CHECK ----------------
check_1v1_bonus()
{
    new players_ct[32], num_ct
    new players_t[32], num_t

    get_players(players_ct, num_ct, "ae", "CT")
    get_players(players_t, num_t, "ae", "TERRORIST")

    if (num_ct == 1 && num_t == 1)
    {
        new bonus = get_pcvar_num(PCvarBonus1v1)

        new id_ct = players_ct[0]
        new id_t  = players_t[0]

        if (is_user_connected(id_ct))
            cs_set_user_money(id_ct, cs_get_user_money(id_ct) + bonus)

        if (is_user_connected(id_t))
            cs_set_user_money(id_t, cs_get_user_money(id_t) + bonus)

        player_color(0, ".v[WTFCS] .gSituatie de .e1v1! .gAmbii jucatori au primit .e%d$!", bonus)
    }
}

// ---------------- WEAPON CHECK ----------------
bool:is_pistol(const weapon[])
{
    if (equal(weapon, "glock18") ||
        equal(weapon, "usp") ||
        equal(weapon, "p228") ||
        equal(weapon, "deagle") ||
        equal(weapon, "elite") ||
        equal(weapon, "fiveseven"))
        return true
    return false
}

// ---------------- PLANT ----------------
public bomb_planted(id)
{
    if (!is_user_connected(id)) return
    give_bonus(id, PCvarBonusPlant, "si 3 XP pentru ca a plantat bomba", "c4")
}

// ---------------- DEFUSE ----------------
public bomb_defused(id)
{
    if (!is_user_connected(id)) return
    give_bonus(id, PCvarBonusDefuse, "si 3 XP pentru ca a dezamorsat bomba", "defuse")
}

// ---------------- EXPLODE ----------------
public bomb_explode(planter)
{
    new bonus = get_pcvar_num(PCvarBonusExplode)
    new mode  = get_pcvar_num(PCvarExplodeMode)

    if (mode == 0) 
    {
        if (!is_user_connected(planter)) return
        give_bonus(planter, PCvarBonusExplode, "pentru ca a avut grija ca bomba sa explodeze", "c4")
    }
    else
    {
        new players[32], pnum
        get_players(players, pnum, "ae", "TERRORIST")

        for (new i = 0; i < pnum; i++)
        {
            new id = players[i]
            if (!is_user_connected(id)) continue
            cs_set_user_money(id, cs_get_user_money(id) + bonus)
        }

        player_color(0, ".v[WTFCS] .gToti teroristii au primit .e%d$ .gpentru ca bomba a explodat!", bonus)
    }
}

// ---------------- COLOR CHAT ----------------
stock player_color(const id, const input[], any:...)
{
    new count = 1, players[32]
    static msg[191]
    vformat(msg, charsmax(msg), input, 3)

    replace_all(msg, charsmax(msg), ".v", "^4")
    replace_all(msg, charsmax(msg), ".g", "^1")
    replace_all(msg, charsmax(msg), ".e", "^3")
    replace_all(msg, charsmax(msg), ".x", "^0")

    if (id) players[0] = id
    else get_players(players, count, "ch")

    for (new i = 0; i < count; i++)
    {
        if (!is_user_connected(players[i])) continue

        message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
        write_byte(players[i])
        write_string(msg)
        message_end()
    }
}

 


📌 Module necesare

  • amxmodx
  • cstrike
  • csx

💡 Observații

✔ Plugin testat și funcțional
✔ Fără erori la compilare
🎮 Creat pentru a aduce “culoare” gameplay-ului

Vizitator
Acest topic este acum închis pentru alte răspunsuri.
  • Navigare recentă   0 membri

    • Nici un utilizator înregistrat nu vede această pagină.
×
×
  • Creează nouă...

Informații Importante

Termeni de Utilizare & Politică Intimitate