AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Level Plugin with AmmoPacks (https://forums.alliedmods.net/showthread.php?t=277585)

warco 01-11-2016 17:34

Level Plugin with AmmoPacks
 
Hello, I shall want to put a counter of ammopack on the plugin level, and I have a problem with this, I would want that the ammo pack of the plugin ammopacks.amxx or in the hud of the plugin level and I do not find to make how, I have touch it has everything and the plugin compiles well but the meter stays has 0.

Sorry for my english :)

Original plugin
Code:

#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <fun>
#include <cstrike>
#include <fakemeta_util>

#define PLUGIN "New Level System"
#define VERSION "1.3"
#define AUTHOR "Pl0x"

new g_level_max, g_level_num, g_levels[32]
new g_level[32], g_level_data, g_frags_level, g_ScreenFade,SymbolsName
new level_exp[32]
new g_level_exp[32], g_exp_data, g_Players, nameid[32]
new g_trime[32], g_MsgSync
new sound_level_up[] = { "LeveL/level.wav"}
const PEV_SPEC_TARGET = pev_iuser2
new SaveSystem

public plugin_init()
{
        register_plugin(PLUGIN, VERSION, AUTHOR)
       
        SaveSystem = register_cvar("fr_SaveSystem","1")
       
       
        g_frags_level =  register_cvar("fr_level_frags", "20")
        g_level_max  = register_cvar("fr_level_max", "200")
        g_level_num =  register_cvar("fr_level_number", "1")
               
        g_level_data = nvault_open("fr_Leveling_Save")
        g_exp_data = nvault_open("fr_Exp_Save")
                               
        SymbolsName = register_cvar("fr_name_symbols", "`")
       
        register_forward(FM_ClientUserInfoChanged, "ChangeName")
                                       
        register_event("StatusValue","show_status","be","1=2","2!0");
        register_event("StatusValue","show_statusx","be","1=2","2!0");
        register_event("HLTV", "Round_Start", "a", "1=0", "2=0")
        register_event("DeathMsg", "Frags_Manager", "a", "1>0")   
        set_task(2.0,"System_Save",_,_,_,"b")
       
        g_ScreenFade = get_user_msgid( "ScreenFade" )
        g_Players =get_maxplayers()       
        g_MsgSync = CreateHudSyncObj()
}

 



//------| Change Name |------//
public ChangeName(id, buffer) {
        if(!is_user_connected(id))
        return FMRES_IGNORED;

        static Name[32], Val[32];
        get_user_name(id, Name, sizeof Name - 1);
        engfunc(EngFunc_InfoKeyValue, buffer, "name", Val, sizeof Val - 1);
       
        if(equal(Val, Name))
        return FMRES_IGNORED;
       
        set_task(0.2, "client_connect", id);
        return FMRES_SUPERCEDE;
        }
       

public client_putinserver(id)
{

        if(get_pcvar_num(SaveSystem))
        System_Load(id)
        g_level_exp[id] = get_pcvar_num(g_frags_level)
        new name[32]
        g_trime[id] = false;
        nameid[id] = get_user_name(id, name, sizeof name - 1)
        if(is_user_alive(id))
        {
                g_trime[id] = false;
                new n = 1;
                while( n != g_level[id] )
                {
                        n = n + 1;
                }
        }
        if( g_level[id] == 0) g_level[id] = 1;
        if( level_exp[id] == g_level[id] ) level_exp[id] = 0;
        if(g_level[id] < get_pcvar_num(g_level_num))
                g_levels[id] = get_pcvar_num(g_level_num);
        else
        {
                if(g_level[id] != g_levels[id])
                {
                        new x = 1;
                        while( g_level[id] > ( x * get_pcvar_num(g_level_num)) )
                        {
                                x = x + 1;
                                g_levels[id] = x * get_pcvar_num(g_level_num);
                        }
                }
        }
        new y = 1;
        while( g_level[id] != y )
        {
                y = y + 1;
                g_level_exp[id] = y * get_pcvar_num(g_frags_level);
        }
}

public client_connected(id) {
        System_Load(id)
        }
public client_authorized(id) {
        System_Load(id)
        }       
public client_disconnect(id){
       
        System_Save(id)
        remove_task(id)       
        new name[32], player_nick[32]
        player_nick[id] = get_user_name(id, name, sizeof name - 1)
        if(player_nick[id] == nameid[id])
        g_trime[id] = false;

        static sName[32];
        get_user_name(id, sName, sizeof sName - 1);
        static sChars[32];
        get_pcvar_string(SymbolsName, sChars, sizeof sChars - 1);       
        for(new i = 0 ; i < strlen(sName) ; i++) {
        for(new j = 0 ; j < strlen(sChars) ; j++) {
        if(sName[i] == sChars[j]) {
        server_cmd("kick #%d ^"Votre nom contient des caractères illégaux.^"", get_user_userid(id));
        break;
        }
        }
        }
}

// Save System When Pausing The Plugin
public plugin_pause()
{
        new iPlayers[32], iNum
        get_players(iPlayers, iNum)
        for(new i; i<iNum; i++)
                System_Save(iPlayers[i])
}

// Load System After Unpause The Plugin
public plugin_unpause()
{
        new iPlayers[32], iNum
        get_players(iPlayers, iNum)
        for(new i; i<iNum; i++)
                System_Load(iPlayers[i])
}
public System_Save(id){
        new key[64], data[256], data_exp[256], key_exp[64]
        new name[33]
        get_user_name(id,name,32)
       
        format(key, 63, "%s-/", name)
        format(data, 255, "%i#", g_level[id])
       
        format(key_exp, 63, "%s-/", name)
        format(data_exp, 255, "%i#", level_exp[id])                       
       
        nvault_set(g_level_data, key, data)
        nvault_set(g_exp_data, key_exp, data_exp)
       
        return PLUGIN_CONTINUE;

}

public System_Load(id)
{

        new key[64], data[256], data_exp[256], key_exp[64]
        new name[33]
        get_user_name(id,name,32)
       
        format(key, 63, "%s-/", name)
        format(data, 255, "%i#", g_level[id])
       
        format(key_exp, 63, "%s-/", name)
        format(data_exp, 255, "%i#", level_exp[id])
               
        nvault_get(g_level_data, key, data, 255)
        nvault_get(g_exp_data, key_exp, data_exp, 255)
       
        replace_all(data, 255, "#", " ")
        replace_all(data_exp, 255, "#", " ")
       
        new givelevel[32], give_exp[32]
        parse(data, givelevel, 31)
        parse(data_exp, give_exp, 31)

        g_level[id] = str_to_num(givelevel)
        level_exp[id] = str_to_num(give_exp)
               
        set_task(1.0 ,"level_status", id, _, _, "b")
        return PLUGIN_CONTINUE;       
}
/*------------------------------------- Level System ---------------------------------------------------------*/
public Round_Start()
{
for(new id=1;id<=g_Players;id++)
        set_task(3.0, "Level", id)
       
}

public Level(id)
{
        if(is_user_alive(id) )
        {
                g_trime[id] = false;
                new n = 1;
                while( n < g_level[id] )
                {
                        n = n + 1
                }
        }
}

public Frags_Manager()
{
        new aname[32], attacker; attacker = read_data(1)
        new y; y = 1;
        get_user_name(attacker, aname, sizeof aname - 1)
        if( ( level_exp[attacker] >= (g_level_exp[attacker] - 1) ) && (g_level[attacker] <= get_pcvar_num(g_level_max)) && is_user_alive(attacker) )
        {
                g_level[attacker] = g_level[attacker] + 1;
                level_exp[attacker] = 0;
                while( g_level[attacker] != y )
                {
                        y = y + 1;
                        g_level_exp[attacker] = y * get_pcvar_num(g_frags_level);
                }
                message_begin(MSG_ONE_UNRELIABLE, g_ScreenFade, _, attacker)
                write_short(1<<12) // duration
                write_short(1) // hold time
                write_short(0x0000) // fade type
                write_byte(1) // red
                write_byte(200) // green
                write_byte(0) // blue
                write_byte(205) // alpha
                message_end()
                emit_sound(attacker, CHAN_STREAM, sound_level_up, 1.0, ATTN_NORM, 0, PITCH_HIGH )
                set_hudmessage(0, 200, 0, 0.65, 0.5, 0, 0.0, 3.0, 2.0, 1.0, -1)
                show_hudmessage(0, "%s has cut down %i level", aname, g_level[attacker])
                System_Save(attacker);
        }
        else
        {               
                if(g_level[attacker] == get_pcvar_num(g_level_max))
                Chat9olor(attacker, "^x04you have reached a maximum level: ^4%i", g_level[attacker] )
                level_exp[attacker] = level_exp[attacker] + 1;
                if(get_pcvar_num(SaveSystem))
                System_Save(attacker);
        }
}

/*-----------------------------------------Hud Message----------------------------------------------------------*/

public level_status(id)
{
        new Spec
        Spec = pev(id, PEV_SPEC_TARGET)
        new PlayerName[32]
        get_user_name(Spec, PlayerName, 31)
       
        if(is_user_alive(id))
        {
               
        if(cs_get_user_team(id) == CS_TEAM_CT)
        {
        set_hudmessage(10, 180, 10, -1.0, 0.87, 0, 6.0, 1.1)
        ShowSyncHudMsg(id, g_MsgSync, " [ Health: %d | Armor: %d | Money: %d ]^n [ Level : %i - Exp : %i/%i ]",get_user_health(id),get_user_armor(id),cs_get_user_money(id),g_level[id],level_exp[id],g_level_exp[id])
        }
       
        if(cs_get_user_team(id) == CS_TEAM_T)
        {
        set_hudmessage(10, 180, 10, -1.0, 0.87, 0, 6.0, 1.1)
        ShowSyncHudMsg(id, g_MsgSync, "[ Health: %d | Armor: %d | Money: %d ]^n [ Level : %i | Exp : %i/%i ]",get_user_health(id),get_user_armor(id),cs_get_user_money(id),g_level[id],level_exp[id],g_level_exp[id])
        }       
       
        }
       
        else
       
        if(is_user_alive(Spec)) // When Spectating Someone.
        {
               
        if(cs_get_user_team(id) == CS_TEAM_CT)
        {               
        set_hudmessage(200, 30, 200, -1.0, 0.79, 0, 6.0, 1.1)
        ShowSyncHudMsg(id, g_MsgSync, "Spectating: %s [ Level : %d ] - [ Exp %d/%d ] ^n [ Class : Counter-Terrorist ]",PlayerName,g_level[Spec],level_exp[Spec],g_level_exp[Spec])
        }
       
        if(cs_get_user_team(id) == CS_TEAM_T)
        {               
        set_hudmessage(200, 30, 200, -1.0, 0.79, 0, 6.0, 1.1)
        ShowSyncHudMsg(id, g_MsgSync, "Spectating: %s  [ Level : %d ] - [ Exp %d/%d ] ^n [ Class : Terrorist ]",PlayerName,g_level[Spec],level_exp[Spec],g_level_exp[Spec])
        }
       
        }
}
public show_status(id)
{
            new name[32],pid = read_data(2) // When Aiming Someone (enemy/friend)
            get_user_name(pid,name,31)
        new idAiming, iBodyPart
        get_user_aiming(id, idAiming, iBodyPart)
       
        if(is_user_alive(idAiming) && is_user_alive(id))
        {
                if(cs_get_user_team(id) == CS_TEAM_CT && cs_get_user_team(idAiming) == CS_TEAM_CT)
                {
                        set_hudmessage(238,201,0,-1.0,0.60,1, 0.01, 3.0, 0.01, 0.01, -1)
                        show_hudmessage(id, "%s ^n[ Health: %d | Armor: %d | Money: %d ]^n [ Level : %i - Exp : %i/%i ]", name,get_user_health(pid),get_user_armor(pid),cs_get_user_money(pid),g_level[pid],level_exp[pid],g_level_exp[pid])
                }
                else
                if(cs_get_user_team(id) == CS_TEAM_T && cs_get_user_team(idAiming) == CS_TEAM_T)
                {
                        set_hudmessage(255,0,0,-1.0,0.60,1, 0.01, 3.0, 0.01, 0.01, -1)
                        show_hudmessage(id, "%s ^n [ Health: %d | Armor: %d | Money: %d ]^n [ Level : %i | Exp : %i/%i ]", name,get_user_health(pid),get_user_armor(pid),cs_get_user_money(pid),g_level[pid],level_exp[pid],g_level_exp[pid])
                }
        }
}
public show_statusx(id)
{
            new name[32],pid = read_data(2)
            get_user_name(pid,name,31)
        new idAiming, iBodyPart
        get_user_aiming(id, idAiming, iBodyPart)
   
        if(is_user_alive(idAiming) && is_user_alive(id))
        {
                if(cs_get_user_team(id) == CS_TEAM_T && cs_get_user_team(idAiming) == CS_TEAM_CT)
                {
                        set_hudmessage(238, 201, 0,-1.0,0.60,1, 0.01, 3.0, 0.01, 0.01, -1)
                        show_hudmessage(id, "%s ^n [ Health: %d | Armor: %d | Money: %d ]^n [ Level : %i | Exp : %i/%i ]", name,get_user_health(pid),get_user_armor(pid),cs_get_user_money(pid),g_level[pid],level_exp[pid],g_level_exp[pid])
                }
        }
}
stock Chat9olor(const id, const input[], any:...)
{
        new count = 1, players[ 32 ]
        static msg[ 191 ]
        vformat( msg, 190, input, 3 )       
        replace_all( msg, 190, "!g", "^4" )
        replace_all( msg, 190, "!y", "^1" )
        replace_all( msg, 190, "!t", "^3" )       
        if(id) players[ 0 ] = id; else get_players( players, count, "ch" )
        {
        for(new i = 0; i < count; i++)
        {
                if( is_user_connected( players[ i ] ) )
                {
                        message_begin( MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[ i ] ) 
                        write_byte( players[ i ] )
                        write_string( msg )
                        message_end( )
                }
        }
}
}

Plugin modified by me
Code:

#include <amxmodx>
#include <amxmisc>
#include <nVault>
#include <fun>
#include <cstrike>
#include <fakemeta_util>
#include <hamsandwich>

#define PLUGIN "New Level System"
#define VERSION "1.3"
#define AUTHOR "Pl0x"

/*----------------------------------- added by me --------------------------------------*/
new ammo_packi[32]
new nazwa_gracza[32]
new vault, g_vault
/*-----------------------------------------------------------------------------------------*/

new g_level_max, g_level_num, g_levels[32]
new g_level[32], g_level_data, g_frags_level, g_ScreenFade,SymbolsName
new level_exp[32]
new g_level_exp[32], g_exp_data, g_Players, nameid[32]
new g_trime[32], g_MsgSync
new sound_level_up[] = { "LeveL/level.wav"}
const PEV_SPEC_TARGET = pev_iuser2
new SaveSystem

public plugin_init()
{
        register_plugin(PLUGIN, VERSION, AUTHOR)
       
        SaveSystem = register_cvar("fr_SaveSystem","1")
       
        g_frags_level =  register_cvar("fr_level_frags", "20")
        g_level_max  = register_cvar("fr_level_max", "200")
        g_level_num =  register_cvar("fr_level_number", "1")
               
        g_level_data = nvault_open("fr_Leveling_Save")
        g_exp_data = nvault_open("fr_Exp_Save")
                               
        SymbolsName = register_cvar("fr_name_symbols", "`")
       
        register_forward(FM_ClientUserInfoChanged, "ChangeName")
                                       
        register_event("StatusValue","show_status","be","1=2","2!0");
        register_event("StatusValue","show_statusx","be","1=2","2!0");
        register_event("HLTV", "Round_Start", "a", "1=0", "2=0")
        register_event("DeathMsg", "Frags_Manager", "a", "1>0")   
        set_task(2.0,"System_Save",_,_,_,"b")
       
        g_ScreenFade = get_user_msgid( "ScreenFade" )
        g_Players =get_maxplayers()       
        g_MsgSync = CreateHudSyncObj()
       

/*----------------------------------- added by me --------------------------------------*/
        RegisterHam(Ham_Spawn,"player","spwn")
               
        if(get_pcvar_num(vault))
                g_vault=nvault_open("Base_Builder")
}

public spwn(id){
        if(task_exists(id+241)) remove_task(id+241)
        set_task(0.6,"pokaz_packi",id+241,_,_,"b")
}
public zapisz_dane(id){
       
        new vaultkey[64],vaultdata[64]
       
        format(vaultkey,63,"%s-bb",nazwa_gracza[id])
       
        format(vaultdata,63,"%d",ammo_packi[id])
       
        nvault_set(g_vault,vaultkey,vaultdata)
   
        return PLUGIN_CONTINUE
}
public wczytaj_dane(id){
       
        new vaultkey[64],vaultdata[256]
       
        format(vaultkey,63,"%s-bb",nazwa_gracza[id])
        format(vaultdata,255,"%d",ammo_packi[id])
       
        nvault_get(g_vault,vaultkey,vaultdata,255) // pobieramy dane
       
        ammo_packi[id]=str_to_num(vaultdata)
                     
        return PLUGIN_CONTINUE
}
/*-----------------------------------------------------------------------------------------*/

//------| Change Name |------//
public ChangeName(id, buffer) {
        if(!is_user_connected(id))
        return FMRES_IGNORED;

        static Name[32], Val[32];
        get_user_name(id, Name, sizeof Name - 1);
        engfunc(EngFunc_InfoKeyValue, buffer, "name", Val, sizeof Val - 1);
       
        if(equal(Val, Name))
        return FMRES_IGNORED;
       
        set_task(0.2, "client_connect", id);
        return FMRES_SUPERCEDE;
        }
       

public client_putinserver(id)
{

        if(get_pcvar_num(SaveSystem))
        System_Load(id)
        g_level_exp[id] = get_pcvar_num(g_frags_level)
        new name[32]
        g_trime[id] = false;
        nameid[id] = get_user_name(id, name, sizeof name - 1)
        if(is_user_alive(id))
        {
                g_trime[id] = false;
                new n = 1;
                while( n != g_level[id] )
                {
                        n = n + 1;
                }
        }
        if( g_level[id] == 0) g_level[id] = 1;
        if( level_exp[id] == g_level[id] ) level_exp[id] = 0;
        if(g_level[id] < get_pcvar_num(g_level_num))
                g_levels[id] = get_pcvar_num(g_level_num);
        else
        {
                if(g_level[id] != g_levels[id])
                {
                        new x = 1;
                        while( g_level[id] > ( x * get_pcvar_num(g_level_num)) )
                        {
                                x = x + 1;
                                g_levels[id] = x * get_pcvar_num(g_level_num);
                        }
                }
        }
        new y = 1;
        while( g_level[id] != y )
        {
                y = y + 1;
                g_level_exp[id] = y * get_pcvar_num(g_frags_level);
        }
}

public client_connected(id) {
        System_Load(id)

/*----------------------------------- added by me --------------------------------------*/
        get_user_name(id,nazwa_gracza[id],63)
        if(get_pcvar_num(vault)==1)
/*-----------------------------------------------------------------------------------------*/

                wczytaj_dane(id)
        }
public client_authorized(id) {
        System_Load(id)
        }       
public client_disconnect(id){
       
        System_Save(id)
        remove_task(id)       
        new name[32], player_nick[32]
        player_nick[id] = get_user_name(id, name, sizeof name - 1)
        if(player_nick[id] == nameid[id])
        g_trime[id] = false;
        static sName[32];
        get_user_name(id, sName, sizeof sName - 1);
        static sChars[32];
        get_pcvar_string(SymbolsName, sChars, sizeof sChars - 1);       
        for(new i = 0 ; i < strlen(sName) ; i++) {
        for(new j = 0 ; j < strlen(sChars) ; j++) {
        if(sName[i] == sChars[j]) {
        server_cmd("kick #%d ^"Votre nom contient des caractères illégaux.^"", get_user_userid(id));
        break;
        }
        }
/*----------------------------------- added by me --------------------------------------*/
        if(get_pcvar_num(vault)==1)
                zapisz_dane(id)
        ammo_packi[id]=0

        }
}
/*-----------------------------------------------------------------------------------------*/
// Save System When Pausing The Plugin
public plugin_pause()
{
        new iPlayers[32], iNum
        get_players(iPlayers, iNum)
        for(new i; i<iNum; i++)
                System_Save(iPlayers[i])
}

// Load System After Unpause The Plugin
public plugin_unpause()
{
        new iPlayers[32], iNum
        get_players(iPlayers, iNum)
        for(new i; i<iNum; i++)
                System_Load(iPlayers[i])
}
public System_Save(id){
        new key[64], data[256], data_exp[256], key_exp[64]
        new name[33]
        get_user_name(id,name,32)
       
        format(key, 63, "%s-/", name)
        format(data, 255, "%i#", g_level[id])
       
        format(key_exp, 63, "%s-/", name)
        format(data_exp, 255, "%i#", level_exp[id])                       
       
        nvault_set(g_level_data, key, data)
        nvault_set(g_exp_data, key_exp, data_exp)
       
        return PLUGIN_CONTINUE;

}

public System_Load(id)
{

        new key[64], data[256], data_exp[256], key_exp[64]
        new name[33]
        get_user_name(id,name,32)
       
        format(key, 63, "%s-/", name)
        format(data, 255, "%i#", g_level[id])
       
        format(key_exp, 63, "%s-/", name)
        format(data_exp, 255, "%i#", level_exp[id])
               
        nvault_get(g_level_data, key, data, 255)
        nvault_get(g_exp_data, key_exp, data_exp, 255)
       
        replace_all(data, 255, "#", " ")
        replace_all(data_exp, 255, "#", " ")
       
        new givelevel[32], give_exp[32]
        parse(data, givelevel, 31)
        parse(data_exp, give_exp, 31)

        g_level[id] = str_to_num(givelevel)
        level_exp[id] = str_to_num(give_exp)
               
        set_task(1.0 ,"level_status", id, _, _, "b")
        return PLUGIN_CONTINUE;       
}
/*------------------------------------- Level System ---------------------------------------------------------*/
public Round_Start()
{
for(new id=1;id<=g_Players;id++)
        set_task(3.0, "Level", id)
       
}

public Level(id)
{
        if(is_user_alive(id) )
        {
                g_trime[id] = false;
                new n = 1;
                while( n < g_level[id] )
                {
                        n = n + 1
                }
        }
}

public Frags_Manager()
{
        new aname[32], attacker; attacker = read_data(1)
        new y; y = 1;
        get_user_name(attacker, aname, sizeof aname - 1)
        if( ( level_exp[attacker] >= (g_level_exp[attacker] - 1) ) && (g_level[attacker] <= get_pcvar_num(g_level_max)) && is_user_alive(attacker) )
        {
                g_level[attacker] = g_level[attacker] + 1;
                level_exp[attacker] = 0;
                while( g_level[attacker] != y )
                {
                        y = y + 1;
                        g_level_exp[attacker] = y * get_pcvar_num(g_frags_level);
                }
                message_begin(MSG_ONE_UNRELIABLE, g_ScreenFade, _, attacker)
                write_short(1<<12) // duration
                write_short(1) // hold time
                write_short(0x0000) // fade type
                write_byte(1) // red
                write_byte(200) // green
                write_byte(0) // blue
                write_byte(205) // alpha
                message_end()
                emit_sound(attacker, CHAN_STREAM, sound_level_up, 1.0, ATTN_NORM, 0, PITCH_HIGH )
                set_hudmessage(0, 200, 0, 0.65, 0.5, 0, 0.0, 3.0, 2.0, 1.0, -1)
                show_hudmessage(0, "%s has cut down %i level", aname, g_level[attacker])
                System_Save(attacker);
        }
        else
        {               
                if(g_level[attacker] == get_pcvar_num(g_level_max))
                Chat9olor(attacker, "^x04you have reached a maximum level: ^4%i", g_level[attacker] )
                level_exp[attacker] = level_exp[attacker] + 1;
                if(get_pcvar_num(SaveSystem))
                System_Save(attacker);
        }
}

/*-----------------------------------------Hud Message----------------------------------------------------------*/

public level_status(id)
{
        new Spec
        Spec = pev(id, PEV_SPEC_TARGET)
        new PlayerName[32]
        get_user_name(Spec, PlayerName, 31)
       
        if(is_user_alive(id))
        {
               
        if(cs_get_user_team(id) == CS_TEAM_CT)
        {
        set_hudmessage(10, 180, 10, -1.0, 0.87, 0, 6.0, 1.1)
        ShowSyncHudMsg(id, g_MsgSync, " Health: %d | Class: Human | Armor: %d | Ammo packs: %d ]^n  Level : %i - Exp : %i/%i ",get_user_health(id),get_user_armor(id),ammo_packi[id],g_level[id],level_exp[id],g_level_exp[id])
        }
       
        if(cs_get_user_team(id) == CS_TEAM_T)
        {
        set_hudmessage(10, 180, 10, -1.0, 0.87, 0, 6.0, 1.1)
        ShowSyncHudMsg(id, g_MsgSync, " Health: %d | Class: Zombie | Armor: %d | Ammo packs: %d ]^n  Level : %i | Exp : %i/%i ",get_user_health(id),get_user_armor(id),ammo_packi[id],g_level[id],level_exp[id],g_level_exp[id])
        }       
       
        }
       
        else
       
        if(is_user_alive(Spec)) // When Spectating Someone.
        {
               
        if(cs_get_user_team(id) == CS_TEAM_CT)
        {               
        set_hudmessage(200, 30, 200, -1.0, 0.79, 0, 6.0, 1.1)
        ShowSyncHudMsg(id, g_MsgSync, "Spectating: %s  Class: Human ^n Level : %d - Exp %d/%d ^n ",PlayerName,g_level[Spec],level_exp[Spec],g_level_exp[Spec])
        }
       
        if(cs_get_user_team(id) == CS_TEAM_T)
        {               
        set_hudmessage(200, 30, 200, -1.0, 0.79, 0, 6.0, 1.1)
        ShowSyncHudMsg(id, g_MsgSync, "Spectating: %s  Class: Zombie ^n Level : %d - Exp %d/%d  ",PlayerName,g_level[Spec],level_exp[Spec],g_level_exp[Spec])
        }
       
        }
}
public show_status(id)
{
            new name[32],pid = read_data(2) // When Aiming Someone (enemy/friend)
            get_user_name(pid,name,31)
        new idAiming, iBodyPart
        get_user_aiming(id, idAiming, iBodyPart)
       
        if(is_user_alive(idAiming) && is_user_alive(id))
        {
                if(cs_get_user_team(id) == CS_TEAM_CT && cs_get_user_team(idAiming) == CS_TEAM_CT)
                {
                        set_hudmessage(238,201,0,-1.0,0.60,1, 0.01, 3.0, 0.01, 0.01, -1)
                        show_hudmessage(id, "%s ^n Health: %d | Class: Human | Armor: %d %d ^n  Level : %i - Exp : %i/%i ", name,get_user_health(pid),get_user_armor(pid),g_level[pid],level_exp[pid],g_level_exp[pid])
                }
                else
                if(cs_get_user_team(id) == CS_TEAM_T && cs_get_user_team(idAiming) == CS_TEAM_T)
                {
                        set_hudmessage(255,0,0,-1.0,0.60,1, 0.01, 3.0, 0.01, 0.01, -1)
                        show_hudmessage(id, "%s ^n Health: %d | Class: Zombie | Armor: %d ^n  Level : %i | Exp : %i/%i ", name,get_user_health(pid),get_user_armor(pid),g_level[pid],level_exp[pid],g_level_exp[pid])
                }
        }
}
public show_statusx(id)
{
            new name[32],pid = read_data(2)
            get_user_name(pid,name,31)
        new idAiming, iBodyPart
        get_user_aiming(id, idAiming, iBodyPart)
   
        if(is_user_alive(idAiming) && is_user_alive(id))
        {
                if(cs_get_user_team(id) == CS_TEAM_T && cs_get_user_team(idAiming) == CS_TEAM_CT)
                {
                        set_hudmessage(238, 201, 0,-1.0,0.60,1, 0.01, 3.0, 0.01, 0.01, -1)
                        show_hudmessage(id, "%s ^n  Health: %d | Armor: %d | Ammo packs: %d ^n  Level : %i | Exp : %i/%i ", name,get_user_health(pid),get_user_armor(pid),ammo_packi[pid],g_level[pid],level_exp[pid],g_level_exp[pid])
                }
        }
}
stock Chat9olor(const id, const input[], any:...)
{
        new count = 1, players[ 32 ]
        static msg[ 191 ]
        vformat( msg, 190, input, 3 )       
        replace_all( msg, 190, "!g", "^4" )
        replace_all( msg, 190, "!y", "^1" )
        replace_all( msg, 190, "!t", "^3" )       
        if(id) players[ 0 ] = id; else get_players( players, count, "ch" )
        {
        for(new i = 0; i < count; i++)
        {
                if( is_user_connected( players[ i ] ) )
                {
                        message_begin( MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[ i ] ) 
                        write_byte( players[ i ] )
                        write_string( msg )
                        message_end( )
                }
        }
}
}

Plugin ammopacks
Code:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <nVault>
#include <basebuilder>

#define PLUGIN "BB ammo_packs"
#define VERSION "1.0"
#define AUTHOR "G[o]Q"

new mKup_przedmiot // Menu
new mcbKup_przedmiot // Menu Callback

const AP_HANDLED=120

new ammo_packi[33]
new liczba_itemow
new pack_bonus,pack_bonus2,vault

new Array:nazwy_itemow
new Array:teamy_itemow
new Array:koszta_itemow

new kup_item

new g_vault

new nazwa_gracza[33][64]

public plugin_init() {
       
        register_clcmd("say /buy","pokaz_menu")
        register_clcmd("say /ammoshop","pokaz_menu")
        register_clcmd("say /shop2","pokaz_menu")
        register_concmd("bb_give_ammo","cmd_daj_ap",ADMIN_RCON,"<Nick> <Ilosc>") // za davane ammo
       
        register_clcmd("","use_command_4_item")
               
        register_clcmd("say","use_command_4_item")
       
        nazwy_itemow=ArrayCreate(64,1);
        teamy_itemow=ArrayCreate(1,1);
        koszta_itemow=ArrayCreate(1,1);
       
        cache_comands_first()
        //cache_comands_second()
       
        set_task(1.0,"cache_comands_second")
       
        register_event("DeathMsg", "DeathMsg", "a")
        register_event("Damage", "Damage", "b", "2!=0")
       
        RegisterHam(Ham_Spawn,"player","spwn")
       
        pack_bonus=register_cvar("BB_ammo_per_kill","4")  //
        pack_bonus2=register_cvar("BB_ammo_per_dmg","9999999999999999999") // 
        vault=register_cvar("BB_save_ap","1")
       
        if(get_pcvar_num(vault))
                g_vault=nvault_open("Base_Builder")
       
        kup_item = CreateMultiForward("wybrano_item", ET_CONTINUE, FP_CELL, FP_CELL) //wybrano_item(id,item_id)
       
}
public cache_comands_first(){
        new linijka=0,text[128],chars
        static configdir[64],plik[128]

        get_configsdir(configdir,63)
        formatex(plik,127,"%s/bb-commands.ini",configdir)
       
       
        do{
                linijka = read_file(plik,linijka,text,127,chars)
                if((text[0]==';') || !chars) continue
                register_clcmd(text,"pokaz_menu")
        }
        while(linijka!=0)
       
}

public cache_comands_second(){
        new name_item[33]
        new komenda[33]
        new size=ArraySize(teamy_itemow)
       
        for(new i=0;i<size;i++){
                ArrayGetString(nazwy_itemow,i,name_item,32)
                replace_all(name_item,32,"+","")
                register_clcmd(name_item,"use_command_4_item")
                format(komenda,33,"say %s",name_item)
                register_clcmd(komenda,"use_command_4_item")
               
        }
        return PLUGIN_CONTINUE
}
public use_command_4_item(id){
        new param[3][33],name_item[33]
        new result,team
        read_argv(0, param[0], 32)
        read_argv(1, param[1], 32)
        new size=ArraySize(teamy_itemow)
       
        for(new i=0;i<size;i++){
               
                ArrayGetString(nazwy_itemow,i,name_item,32)
                replace_all(name_item,32,"+","")
               
                team=ArrayGetCell(teamy_itemow,i)
               
                if((equal(param[1],name_item)) || (equal(param[0],name_item))){
                        if(!team || team==get_user_team(id)){
                                ExecuteForward(kup_item, result, id, i);
               
                                if(result>=AP_HANDLED){
                                        return PLUGIN_HANDLED
                                }
               
                                new koszt =ArrayGetCell(koszta_itemow,i)
               
                                kup(id,koszt)
                        }
                }
                       
       
        }
        return PLUGIN_CONTINUE
}
public client_connect(id){
        get_user_name(id,nazwa_gracza[id],63)
        if(get_pcvar_num(vault)==1)
                wczytaj_dane(id)
}
public client_disconnect(id){
        if(get_pcvar_num(vault)==1)
                zapisz_dane(id)
        ammo_packi[id]=0
}
public DeathMsg()
{
        new kid = read_data(1)        //zabojca
        new vid = read_data(2)        // ofiara
       
        ammo_packi[kid]+=get_pcvar_num(pack_bonus)
        if(task_exists(vid+241)) remove_task(vid+241)
}
public Damage(id)
{
        new damage = read_data(2)
        new kid = get_user_attacker(id)        // Gracz atakujacy
        if(kid==id || !kid || !is_user_alive(kid)) return PLUGIN_HANDLED
        while(damage>=get_pcvar_num(pack_bonus2)){
                damage-=get_pcvar_num(pack_bonus2)
                ammo_packi[kid]+=1
        }
        return PLUGIN_CONTINUE
       
}
public pokaz_packi(id){
        id-=241
       
        new text[128]
        set_hudmessage(255, 255, 255, 0.0, 0.90, 0, 12.0, 12.0)
        show_hudmessage(id, "Ammo: %d", ammo_packi[id])
        message_begin(MSG_ONE,get_user_msgid("StatusText"),{0,0,0}, id)
        write_byte(0)
        write_string(text)
        message_end()
}
public spwn(id){
        if(task_exists(id+241)) remove_task(id+241)
        set_task(0.6,"pokaz_packi",id+241,_,_,"b")
}

public dodaj_item(const nazwa[],koszt,team){ //team 1 - TT 2 - CT
       
        param_convert(1)
       
        ArrayPushString(nazwy_itemow, nazwa);
        ArrayPushCell(teamy_itemow, team);
        ArrayPushCell(koszta_itemow,koszt);
        liczba_itemow++
        return liczba_itemow-1
}

public pokaz_menu(id){
        if(!is_user_alive(id)){
                client_print(id,print_chat,"You have to be alive activated users the shop!")
                return PLUGIN_HANDLED
        }
       
       
        mKup_przedmiot = menu_create("Buy items", "mh_Kup_przedmiot")
        mcbKup_przedmiot = menu_makecallback("mcb_Kup_przedmiot")
       
        new size=ArraySize(koszta_itemow)
        for(new i=0;i<size;i++){
                static text[128],nazwa[33],koszt,team,teams[16]
               
                ArrayGetString(nazwy_itemow,i,nazwa,32)
                koszt=ArrayGetCell(koszta_itemow,i)
                team=ArrayGetCell(teamy_itemow,i)
               
               
               
                switch(team){
                        case 0:{
                                teams="ALL"
                        }
                        case 1:{
                                teams="ZOMBIE"
                        }
                        case 2:{
                                teams="HUMAN"
                        }
                }
               
                if(team!=get_user_team(id) && team!=0)
                        format(text,127,"%s - only for %s ",nazwa,teams)
                else format(text,127,"%s - \y%d\w (%s)",nazwa,koszt,teams)
                menu_additem(mKup_przedmiot, text,"ma_Kup_prezdmiot", ADMIN_ALL, mcbKup_przedmiot)
        }
        menu_display(id, mKup_przedmiot, 0)
       
        return PLUGIN_CONTINUE
}
public kup(id,koszt){
       
        ammo_packi[id]-=koszt
}
public mh_Kup_przedmiot(id, menu, item) {
       
        new result
        if(item>-1){
                ExecuteForward(kup_item, result, id, item);
       
                if(result>=AP_HANDLED){
                        menu_destroy(menu)
                        return PLUGIN_HANDLED
                }
       
                new koszt =ArrayGetCell(koszta_itemow,item)
       
                kup(id,koszt)
                menu_destroy(menu)
        }
        return PLUGIN_CONTINUE
}


public ma_Kup_prezdmiot(id){}
public mcb_Kup_przedmiot(id, menu, item) {
        new team=ArrayGetCell(teamy_itemow,item)
       
        if(ammo_packi[id]<ArrayGetCell(koszta_itemow,item) || (get_user_team(id)!=team && team>0)) return ITEM_DISABLED
        return ITEM_ENABLED

}
public plugin_natives(){
        register_native("dodaj_extra_item", "dodaj_item", 1)
        register_native("BB_get_user_ap", "get_ap",1)
        register_native("BB_set_user_ap", "set_ap",1)
}
public get_ap(id){
        return ammo_packi[id]
}
public set_ap(id,ammount){
        ammo_packi[id]=ammount
}

public zapisz_dane(id){
       
        new vaultkey[64],vaultdata[64]
       
       
       
        format(vaultkey,63,"%s-bb",nazwa_gracza[id])
       
        format(vaultdata,63,"%d",ammo_packi[id])
       
        nvault_set(g_vault,vaultkey,vaultdata)
   
        return PLUGIN_CONTINUE
}

public wczytaj_dane(id){
       
        new vaultkey[64],vaultdata[256]
       
        format(vaultkey,63,"%s-bb",nazwa_gracza[id])
        format(vaultdata,255,"%d",ammo_packi[id])
       
        nvault_get(g_vault,vaultkey,vaultdata,255) // pobieramy dane
       
        ammo_packi[id]=str_to_num(vaultdata)
                     
        return PLUGIN_CONTINUE
}
public cmd_daj_ap(id,level,cid){
        if(is_user_connected(id)){
                new name[32], count[32]
                read_argv(1, name, 31)
                read_argv(2, count, 31)
       
                new ilosc=str_to_num(count)
                new player = cmd_target(id, name, CMDTARGET_ALLOW_SELF)
               
                ammo_packi[player]+=ilosc
               
        }
        return PLUGIN_HANDLED
}


warco 01-14-2016 09:26

no one ?

warco 01-31-2016 17:25

Re: Level Plugin with AmmoPacks
 
UP


All times are GMT -4. The time now is 09:22.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.