[ZP] Addon: CSO Medal

Pluginuri pentru modul AmxModX.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
blackgate
Membru, skill +4
Membru, skill +4
Posts: 1895
Joined: 15 Dec 2012, 13:50
Detinator Steam: Da
SteamID: melissus
Reputatie: retras
Been thanked: 240 times
Contact:

30 Mar 2014, 10:15

Descriere: E un plugin facut de dias care are medalii ca in cso . Functioneaza cu zombie plague.

Descarcare:
| Afiseaza codul
[code=php]#include <amxmodx>
#include <amxmisc>
#include <zombieplague>
#include <nvault>

#define PLUGIN "[ZP] Addon: CSO Medal"
#define VERSION "1.0"
#define AUTHOR "Dias"

// Medal: Zombie Hunter
#define ZH_MAX_KILL 500
new g_zh_kill[33]

// Medal: Master Of Survival
#define MS_MAX_ROUND 500
new g_ms_round[33]

// Medal: Zombie Terminator
#define ZT_MAX_INFECT 500
new g_zt_infect[33]

// Medal: Nemesis Hunter
#define NH_MAX_KILL 100
new g_nh_kill[33]

// Medal: Hero Hunter
#define HH_MAX_KILL 100
new g_hh_kill[33]

new g_nvault_zh, g_nvault_ms, g_nvault_zt, g_nvault_nh, g_nvault_hh

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    g_nvault_zh = nvault_open("cso_medal_zh")
    g_nvault_ms = nvault_open("cso_medal_ms")
    g_nvault_zt = nvault_open("cso_medal_zt")
    g_nvault_nh = nvault_open("cso_medal_nh")
    g_nvault_hh = nvault_open("cso_medal_hh")
    
    register_event("HLTV", "event_newround", "a", "1=0", "2=0")
    
    register_event("DeathMsg", "event_death", "a")
    register_logevent("event_round_end", 2, "1=Round_End")
    register_event("TextMsg","event_round_end","a","2=#Game_Commencing","2=#Game_will_restart_in")    
    
    register_clcmd("say /medal", "show_medal")
}

public plugin_end()
{
    nvault_close(g_nvault_zh)
    nvault_close(g_nvault_ms)
    nvault_close(g_nvault_zt)
    nvault_close(g_nvault_nh)
    nvault_close(g_nvault_hh)
}

public client_putinserver(id)
{
    load_medal_zh(id)
    load_medal_ms(id)
    load_medal_zt(id)
    load_medal_nh(id)
    load_medal_hh(id)
}

public client_disconnect(id)
{
    save_medal_zh(id)
    save_medal_ms(id)
    save_medal_zt(id)
    save_medal_nh(id)
    save_medal_hh(id)    
}

public event_newround()
{
    client_printcolor(0, "!g[Medal System]!y] Type !y/medal!y to open medal menu !!!")
}

public show_medal(id)
{
    static menu
    menu = menu_create("Medals", "medal_menu_handle1")
    
    add_zombie_hunter(id, menu)
    add_master_survival(id, menu)
    add_zombie_terminator(id, menu)
    add_nemesis_hunter(id, menu)    
    add_hero_hunter(id, menu)
    
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
    menu_display(id, menu, 0)
}

public load_medal_zh(id)
{
    new vaultkey[40], vaultdata[13]
    
    new Name[64];
    get_user_name(id, Name, 32)
        
    formatex(vaultkey, sizeof(vaultkey), "__%s__", Name)
    
    nvault_get(g_nvault_zh, vaultkey, vaultdata, 12);
    
    g_zh_kill[id] = str_to_num(vaultdata)
    
    /*
    // Build customization file path
    static path[64], medal_file[128]
    get_configsdir(path, charsmax(path))

    // Set up some vars to hold parsing info
    new linedata[1024], key[64], value[960]
    
    // Open customization file for reading
    new file, name2[32]
    get_user_name(id, name2, sizeof(name2))
    
    formatex(medal_file, sizeof(medal_file), "%s/%s/%s.cfg", path, medal_folder, name2)

    // File not present
    if (!file_exists(path))
    {
        file = fopen(medal_file, "wt")
    }
    
    file = fopen(medal_file, "rt")
    
    while (file && !feof(file))
    {    
        // Read one line at a time
        fgets(file, linedata, charsmax(linedata))
        
        // Blank line or comment
        if (!linedata[0] || linedata[0] == ';') continue;
    
        // Get key and value(s)
        strtok(linedata, key, charsmax(key), value, charsmax(value), '=')
        
        // Trim spaces
        trim(key)
        trim(value)    

        if (equal(key, "ZOMBIE_HUNTER"))
            g_zh_kill[id] = str_to_num(value)
        else if (equal(key, "MASTER_SURVIVAL"))
            g_ms_round[id] = str_to_num(value)
        else if (equal(key, "ZOMBIE_TERMINATOR"))
            g_zt_infect[id] = str_to_num(value)
        else if (equal(key, "NEMESIS_HUNTER"))
            g_nh_kill[id] = str_to_num(value)
        else if (equal(key, "HERO_HUNTER"))
            g_hh_kill[id] = str_to_num(value)            
    }*/
}

public load_medal_ms(id)
{
    new vaultkey[40], vaultdata[13]
    
    new Name[64];
    get_user_name(id, Name, 32)
        
    formatex(vaultkey, sizeof(vaultkey), "__%s__", Name)
    
    nvault_get(g_nvault_ms, vaultkey, vaultdata, 12);
    
    g_ms_round[id] = str_to_num(vaultdata)
}

public load_medal_zt(id)
{
    new vaultkey[40], vaultdata[13]
    
    new Name[64];
    get_user_name(id, Name, 32)
        
    formatex(vaultkey, sizeof(vaultkey), "__%s__", Name)
    
    nvault_get(g_nvault_zt, vaultkey, vaultdata, 12);
    
    g_zt_infect[id] = str_to_num(vaultdata)
}

public load_medal_nh(id)
{
    new vaultkey[40], vaultdata[13]
    
    new Name[64];
    get_user_name(id, Name, 32)
        
    formatex(vaultkey, sizeof(vaultkey), "__%s__", Name)
    
    nvault_get(g_nvault_nh, vaultkey, vaultdata, 12);
    
    g_nh_kill[id] = str_to_num(vaultdata)
}

public load_medal_hh(id)
{
    new vaultkey[40], vaultdata[13]
    
    new Name[64];
    get_user_name(id, Name, 32)
        
    formatex(vaultkey, sizeof(vaultkey), "__%s__", Name)
    
    nvault_get(g_nvault_hh, vaultkey, vaultdata, 12);
    
    g_hh_kill[id] = str_to_num(vaultdata)
}

// Save Data
public save_medal_zh(id)
{
    new vaultkey[40], vaultdata[13];
    
    new Name[33];
    get_user_name(id, Name, 32);
    
    formatex(vaultkey, 39, "__%s__", Name);
    formatex(vaultdata, 12, "%i", g_zh_kill[id]);
    
    nvault_set(g_nvault_zh, vaultkey, vaultdata);
}    

public save_medal_ms(id)
{
    new vaultkey[40], vaultdata[13];
    
    new Name[33];
    get_user_name(id, Name, 32);
    
    formatex(vaultkey, 39, "__%s__", Name);
    formatex(vaultdata, 12, "%i", g_ms_round[id]);
    
    nvault_set(g_nvault_ms, vaultkey, vaultdata);
}    

public save_medal_zt(id)
{
    new vaultkey[40], vaultdata[13];
    
    new Name[33];
    get_user_name(id, Name, 32);
    
    formatex(vaultkey, 39, "__%s__", Name);
    formatex(vaultdata, 12, "%i", g_zt_infect[id]);
    
    nvault_set(g_nvault_zt, vaultkey, vaultdata);
}    

public save_medal_nh(id)
{
    new vaultkey[40], vaultdata[13];
    
    new Name[33];
    get_user_name(id, Name, 32);
    
    formatex(vaultkey, 39, "__%s__", Name);
    formatex(vaultdata, 12, "%i", g_nh_kill[id]);
    
    nvault_set(g_nvault_nh, vaultkey, vaultdata);
}    

public save_medal_hh(id)
{
    new vaultkey[40], vaultdata[13];
    
    new Name[33];
    get_user_name(id, Name, 32);
    
    formatex(vaultkey, 39, "__%s__", Name);
    formatex(vaultdata, 12, "%i", g_hh_kill[id]);
    
    nvault_set(g_nvault_hh, vaultkey, vaultdata);
}    

public zp_user_infected_post(victim, attacker)
{
    if(is_user_alive(attacker) && zp_get_user_zombie(attacker))
    {
        if(g_zt_infect[attacker] < ZT_MAX_INFECT)
        {
            g_zt_infect[attacker]++
            
            if(g_zt_infect[attacker] >= ZT_MAX_INFECT)
            {    
                static Name[64]
                get_user_name(attacker, Name, sizeof(Name))
                
                client_printcolor(0, "!g[Medal System]!y Congratulation !!!. %s reward medal !tZombie Terminator!y !!!", Name)
            }
    
            save_medal_zt(attacker)
        }    
    }
}

public event_death()
{
    static attacker, victim
    attacker = read_data(1)
    victim = read_data(2)

    if(zp_get_user_zombie(victim) && !zp_get_user_zombie(attacker))
    {
        if(g_zh_kill[attacker] < ZH_MAX_KILL)
        {
            g_zh_kill[attacker]++
            
            if(g_zh_kill[attacker] >= ZH_MAX_KILL)
            {    
                static Name[64]
                get_user_name(attacker, Name, sizeof(Name))
                
                client_printcolor(0, "!g[Medal System]!y Congratulation !!!. %s reward medal !tZombie Hunter!y !!!", Name)
            }
            
            save_medal_zh(attacker)
        }
    } else if(zp_get_user_nemesis(victim) && !zp_get_user_zombie(attacker) && !zp_get_user_nemesis(attacker)) {
        if(g_nh_kill[attacker] < NH_MAX_KILL)
        {
            g_nh_kill[attacker]++
            
            if(g_nh_kill[attacker] >= NH_MAX_KILL)
            {    
                static Name[64]
                get_user_name(attacker, Name, sizeof(Name))
                
                client_printcolor(0, "!g[Medal System]!y Congratulation !!!. %s reward medal !tNemesis Hunter!y !!!", Name)
            }
            
            save_medal_nh(attacker)
        }        
    } else if(zp_get_user_survivor(victim) && zp_get_user_zombie(attacker) || zp_get_user_nemesis(attacker)) {
        if(g_hh_kill[attacker] < HH_MAX_KILL)
        {
            g_hh_kill[attacker]++
            
            if(g_hh_kill[attacker] >= HH_MAX_KILL)
            {    
                static Name[64]
                get_user_name(attacker, Name, sizeof(Name))
                
                client_printcolor(0, "!g[Medal System]!y Congratulation !!!. %s reward medal !tHero Hunter!y !!!", Name)
            }
            save_medal_nh(attacker)
        }    
    }
}

public event_round_end(id)
{
    if(is_user_alive(id) && !zp_get_user_zombie(id))
    {
        if(g_ms_round[id] < MS_MAX_ROUND)
        {
            g_ms_round[id]++
            
            if(g_ms_round[id] >= MS_MAX_ROUND)
            {
                static Name[64]
                get_user_name(id, Name, sizeof(Name))    
                
                client_printcolor(0, "!g[Medal System]!y Congratulation !!!. %s reward medal !tMaster Of Survival!y !!!", Name)
            }
        
            save_medal_ms(id)
        }
    }
}

// Medal: Zombie Hunter
public add_zombie_hunter(id, menu)
{
    static temp_string[128]
    
    if(g_zh_kill[id] < ZH_MAX_KILL)
        formatex(temp_string, sizeof(temp_string), "\yZombie Hunter \r%i/%i", g_zh_kill[id], ZH_MAX_KILL)
    else
        formatex(temp_string, sizeof(temp_string), "\yZombie Hunter \dComplete")
    menu_additem(menu, temp_string, "0")
}
// End Of Medal: Zombie Hunter

// Medal: Master Of Survival
public add_master_survival(id, menu)
{
    static temp_string[128]
    
    if(g_ms_round[id] < MS_MAX_ROUND)
        formatex(temp_string, sizeof(temp_string), "\yMaster Of Survival \r%i/%i", g_ms_round[id], MS_MAX_ROUND)
    else
        formatex(temp_string, sizeof(temp_string), "\yMaster Of Survival \dComplete")
    menu_additem(menu, temp_string, "1")    
}
// End Of Medal: Master of Survival

// Medal: Zombie Terminator
public add_zombie_terminator(id, menu)
{
    static temp_string[128]
    
    if(g_zt_infect[id] < ZT_MAX_INFECT)
        formatex(temp_string, sizeof(temp_string), "\yZombie Terminator \r%i/%i", g_zt_infect[id], ZT_MAX_INFECT)
    else
        formatex(temp_string, sizeof(temp_string), "\yZombie Terminator \dComplete")
    menu_additem(menu, temp_string, "2")    
}
// End Of Medal: Zombie Terminator

// Medal: Nemesis Hunter
public add_nemesis_hunter(id, menu)
{
    static temp_string[128]
    
    if(g_nh_kill[id] < NH_MAX_KILL)
        formatex(temp_string, sizeof(temp_string), "\yNemesis Hunter \r%i/%i", g_nh_kill[id], NH_MAX_KILL)
    else
        formatex(temp_string, sizeof(temp_string), "\yNemesis Hunter \dComplete")
    menu_additem(menu, temp_string, "3")    
}
// End Of Medal: Nemesis Hunter

// Medal: Hero Hunter
public add_hero_hunter(id, menu)
{
    static temp_string[128]
    
    if(g_hh_kill[id] < HH_MAX_KILL)
        formatex(temp_string, sizeof(temp_string), "\yHero Hunter \r%i/%i", g_hh_kill[id], HH_MAX_KILL)
    else
        formatex(temp_string, sizeof(temp_string), "\yHero Hunter \dComplete")
    menu_additem(menu, temp_string, "4")    
}
// End Of Medal: Nemesis Hunter

public medal_menu_handle1(id, menu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }    
    
    static data[6], szName[64], access1, callback

    menu_item_getinfo(menu, item, access1, data,charsmax(data), szName,charsmax(szName), callback)

    static key_number
    key_number = str_to_num(data)
    
    switch(key_number)
    {
        case 0: 
        {
            if(g_zh_kill[id] < ZH_MAX_KILL)
                client_printcolor(id, "!g[Medal System]!y You must Kill !t%i!y zombies to reward medal !tZombie Hunter!y !!!", ZH_MAX_KILL)
            else 
                client_printcolor(id, "!g[Medal System]!y You have !tCompleted!y medal !tZombie Hunter!y !!!")
                
        }
        case 1: 
        {
            if(g_ms_round[id] < MS_MAX_ROUND)
                client_printcolor(id, "!g[Medal System]!y You must Survive !t%i!y rounds to reward medal !tMaster Of Survival!y !!!", MS_MAX_ROUND)
            else 
                client_printcolor(id, "!g[Medal System]!y You have !tCompleted!y medal !tMaster Of Survival!y !!!")
                
        }    
        case 2: 
        {
            if(g_zt_infect[id] < ZT_MAX_INFECT)
                client_printcolor(id, "!g[Medal System]!y You must Infect !t%i!y humans to reward medal !tZombie Terminator!y !!!", ZT_MAX_INFECT)
            else 
                client_printcolor(id, "!g[Medal System]!y You have !tCompleted!y medal !tZombie Terminator!y !!!")
                
        }    
        case 3: 
        {
            if(g_nh_kill[id] < NH_MAX_KILL)
                client_printcolor(id, "!g[Medal System]!y You must Kill !t%i!y nemesises to reward medal !tNemesis Hunter!y !!!", NH_MAX_KILL)
            else 
                client_printcolor(id, "!g[Medal System]!y You have !tCompleted!y medal !tMaster Of Survival!y !!!")
                
        }    
        case 4: 
        {
            if(g_hh_kill[id] < HH_MAX_KILL)
                client_printcolor(id, "!g[Medal System]!y You must Kill !t%i!y heroes to reward medal !tHero Hunter!y !!!", HH_MAX_KILL)
            else 
                client_printcolor(id, "!g[Medal System]!y You have !tCompleted!y medal !tHero Hunter!y !!!")
                
        }            
    }
    
    return PLUGIN_HANDLED
}

stock client_printcolor(const id, const input[], any:...)
{
    new iCount = 1, iPlayers[32]
    static szMsg[191]
    
    vformat(szMsg, charsmax(szMsg), input, 3)
    replace_all(szMsg, 190, "!g", "^4")
    replace_all(szMsg, 190, "!y", "^1")
    replace_all(szMsg, 190, "!t", "^3")
    
    if(id) iPlayers[0] = id
    else get_players(iPlayers, iCount, "ch")
    
    for (new i = 0; i < iCount; i++)
    {
        if(is_user_connected(iPlayers))
        {
            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, iPlayers)
            write_byte(iPlayers)
            write_string(szMsg)
            message_end()
        }
    }
} [/code]


Nume: [ZP] Addon: CSO medal
Versiune: :-??
Link oficial: :-??

Instalare:
1. Fisierul nume_plugin.sma il puneti in addons/amxmodx/scripting
2. Fisierul nume_plugin.amxx il puneti in addons/amxmodx/plugins
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:

Code: Select all

nume_plugin.amxx

Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg):
n'avem d'astea

Comenzi administrative (se tasteaza in consola si trebuie sa fiti administrator):
e criza

Comenzi publice (se tasteaza in joc prin apasarea tastei Y):
  • /medal - afiseaza medaliile
Module necesare (se sterge ; din fata modulului de mai jos; acestea le gasiti in fisierul amxmodx\configs\modules.ini):
- Nvault

Imagini:
n-avem.
RoyalServer
User avatar
Adventx
Membru, skill +4
Membru, skill +4
Posts: 1785
Joined: 17 Sep 2013, 21:44
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 128 times
Been thanked: 142 times
Contact:

30 Mar 2014, 10:59

:)) Ce tot aveti cu Dias, toata munca lui se duce de p&%$!
In fine, bravo pentru postare!
User avatar
sharkstar
Membru, skill +4
Membru, skill +4
Posts: 1735
Joined: 24 Dec 2012, 15:51
Detinator Steam: Da
CS Status: Rupetot
SteamID: privat
Location: Bucuresti
Has thanked: 70 times
Been thanked: 42 times

30 Mar 2014, 12:52

Mersi, asta era singurul plugin facut de dias care nu il aveam. \m/
I've never been more normal than I am now.
My tumblr
Post Reply

Return to “AmxModX”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 16 guests