RANGOS KIKIZON + MODEL CS 1.6
#1
Buenas por favor para el que sepa que tengo malo aca ayudarme a corregirlo, el codigo compila sin errores pero no me otorga el model del arma en el rango que deseo, para probar use rango "SIN RANGO" y sigue apareciendo el model original, como puedo soluciar esto ya que no me otorga el model que quiero, pero si lo descarga el servidor


Código:
/*    -----------------------------------------
Creditos: Solo para Raulitop, por el hook say :3

Version Con Guardado NFVAULT
-------------------------------            */

#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <adv_vault>


new const PLUGIN[] = "Rangos CS:GO"
#define VERSION "1.0"
new const AUTHOR[] = "kikizon"

/* =============================================
|= [EMPIEZA SECCION MODIFICABLE] =|
==============================================*/
/* ====================================
*[CONSTANTES]*
=====================================*/
new const Web[] = "CTF PUERTO CABELLO"  // Se Muestra en HUD
new const Prefijo[] = "!g[RANGOS]!y" // Prefijo en say
new const Sonido[] = "rango/up.wav" // Sonido Rango UP
/* ====================================
*[CONST NOMBRES DE RANGOS]*
=====================================*/
enum _:DATA
{
    NOMBRE[32],
    FRAGS,
        WEAPON_NAME[ 90 ],
    WEAPON_MODEL[ 90 ],
    WEAPON_CSW,
    WEAPON_AMMO
}
new const Rangos[][DATA] =
{
    { "Sin Rango", 100, "weapon_ak47", "v_ak47",CSW_AK47, 99 },
    { "Silver I", 350, "weapon_mac10", "default", CSW_MAC10, 99 },
    { "Silver II", 800, "weapon_ump45", "default", CSW_UMP45, 99 },
    { "Silver III", 2000, "weapon_mp5navy", "default", CSW_MP5NAVY, 99 },
    { "Silver IV", 4500, "weapon_p90", "default", CSW_P90, 99 },
    { "Silver Elite", 7000, "weapon_m3", "default", CSW_M3, 99 },
    { "Silver Elite Master", 12500, "weapon_xm1014", "default", CSW_XM1014, 99 },
    { "Gold Nova I", 17000, "weapon_famas", "default", CSW_FAMAS, 99 },
    { "Gold Nova II", 22000, "weapon_galil", "default", CSW_GALIL, 99 },
    { "Gold Nova III", 30000, "weapon_aug", "default", CSW_AUG, 99 },
    { "Gold Nova Master", 45000, "weapon_ak47", "default", CSW_AK47, 99 },
    { "Master Guardian I",80000, "weapon_m4a1", "default", CSW_M4A1, 99 },
    { "Master Guardian II", 120000, "weapon_sg552", "default", CSW_SG552, 99 },
    { "Master Guardian Elite", 150000, "weapon_g3sg1", "default", CSW_G3SG1 },
    { "Distinguished Master Guardian", 180000, "weapon_sg550", "default", CSW_SG550, 99 },
    { "Legendary Eagle", 200000, "weapon_m249", "default", CSW_M249, 99 },
    { "Legendary Eagle Master", 210000, "weapon_glock18", "default", CSW_GLOCK18, 99 },
    { "Supreme Master First Class", 250000, "weapon_usp", "default", CSW_USP, 99 },
    { "The Global Elite", 999999, "weapon_deagle", "default", CSW_DEAGLE, 99 },
    { "Supreme Master", 9999999, "weapon_p228", "default", CSW_P228, 99 }
}

/* =============================================
|= [TERMINA SECCION MODIFICABLE] =|
==============================================*/
/* ====================================
*[VARIABLES]*
=====================================*/
new g_rango[33], g_frags[33], g_primary[33];
new SyncHUD, g_maxplayers, g_msgTeamInfo, g_msgSayText, g_playername[33][32];
#define TASK_HUD 2100
#define ID_HUD (taskid - TASK_HUD)
new g_vault

enum
{
    CAMPO_RANGO,
    CAMPO_FRAG,
    CAMPO_MAX
}
new g_campos[CAMPO_MAX]

/* ====================================
*[Cvars]*
=====================================*/
new cvar_Hud, cvar_knifex2, cvar_hsx2
/* ====================================
*[INIT]*
=====================================*/
public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_event("DeathMsg", "Event_DeathMsg", "a")
    register_logevent("logevent_round_end", 2, "1=Round_End")
    
    register_clcmd("say", "message_saytext")
    register_clcmd("say_team", "message_sayteam")
    
    
    /* =============================================
    |= [EMPIEZA SECCION MODIFICABLE] =|
    ==============================================*/
    cvar_Hud = register_cvar("rangos_hud", "1")          // 1 - Mostrar HUD | 0 - No Mostrar
    cvar_knifex2 = register_cvar("rangos_knifex2", "1")    // 1 - x2 frags con knife | 0 - NO :v
    cvar_hsx2 = register_cvar("rangos_hsx2", "1")        // 1 - x2 frags de HeadShot | 0 - NO :v
    /* =============================================
    |= [TERMINA SECCION MODIFICABLE] =|
    ==============================================*/
    
    SyncHUD = CreateHudSyncObj()
    g_maxplayers = get_maxplayers()
    g_msgTeamInfo = get_user_msgid("TeamInfo")
    g_msgSayText = get_user_msgid("SayText")
    
    g_vault = adv_vault_open("data_rangos", false)
    g_campos[CAMPO_RANGO] = adv_vault_register_field(g_vault, "RANGOS")
    g_campos[CAMPO_FRAG] = adv_vault_register_field(g_vault, "FRAGS")
    adv_vault_init(g_vault)
}
/* ====================================
*[PRECACHE]*
=====================================*/
public plugin_precache()
{
    new i;
    
    precache_sound(Sonido)
    
    static szBuffer[64];
    for( i = 0; i < sizeof( Rangos ); i++ )
    {
        if( !equal( Rangos[ i ][ WEAPON_MODEL ], "default" ) )
        {
            formatex(szBuffer, charsmax(szBuffer), "models/lcs_jctf/%s.mdl", Rangos[ i ][ WEAPON_MODEL ] );
            precache_model(szBuffer);
        }
    }
}
/* ===================================
*[HUD]*
=====================================*/
public HUD(taskid) {
    new id = ID_HUD
    
    if (!is_user_alive(id)) {
        id = pev(id, pev_iuser2)
        if (!is_user_alive(id)) return;
    }
  
    if(id != ID_HUD) {
        set_hudmessage(255, 255, 255, 0.60, 0.67, 1, 6.0, 1.0)
        ShowSyncHudMsg(ID_HUD, SyncHUD, "Frags: %d  ||  Rango: %s", g_frags[id], Rangos[g_rango[id]][NOMBRE])
    } else {
        set_hudmessage(0, 255, 0, 0.0, 0.20, 1, 6.0, 1.0)
        ShowSyncHudMsg(ID_HUD, SyncHUD, "=======================^nFrags: %d^nRango: %s^n=======================^nSig. Rango: %s^nFrags Restantes: %d^n=======================^n%s",
        g_frags[id], Rangos[g_rango[id]][NOMBRE], Rangos[g_rango[id]+1][NOMBRE], Rangos[g_rango[id]][FRAGS] -  g_frags[id], Web)
    }
    
}
/* ==================================
    [PUTINSERVER]
===================================*/
public client_putinserver(id) {
    get_user_name( id, g_playername[ id ], charsmax( g_playername[ ] ) );
    g_rango[id] = 0
    g_frags[id] = 0
    
    Cargar(id)
    
    if(get_pcvar_num(cvar_Hud))
        set_task(1.0, "HUD", id+TASK_HUD, _, _, "b")
}
public fw_PlayerSpawn_Post( index )
{
    if (!is_user_connected( index ) || cs_get_user_team( index ) == CS_TEAM_UNASSIGNED || cs_get_user_team( index ) == CS_TEAM_SPECTATOR)
        return;
    
    strip_user_weapons( index );
    give_item( index, "weapon_knife" );
    
    check_weapons( index );
}
/* ==================================
    [DISCONNECT]
===================================*/
public client_disconnected(id) {
    Guardar(id);
        
    remove_task(id+TASK_HUD)
}

/* ==================================
    [ROUND END]
===================================*/
public logevent_round_end() {
    for(new id = 1; id <= g_maxplayers; id++)
        Guardar(id);
}
/* ==================================
    [DEATHMSG]
===================================*/
public Event_DeathMsg() {
    new attacker = read_data(1)
    new victim = read_data(2)
    new hs = read_data(3)
    new weaponid = get_user_weapon(attacker)
    
    if(victim == attacker) return;
    
    if(is_user_alive(attacker)) {
        g_frags[attacker]++
        
        if(get_pcvar_num(cvar_knifex2)) {
            if(weaponid == CSW_KNIFE)
                g_frags[attacker]++
        }
        if(get_pcvar_num(cvar_hsx2)) {
            if(hs) g_frags[attacker]++
        }
        AumentarRango(attacker)
    }
}
/* ================================
    [UPDATE RANGO]
=================================*/
AumentarRango(id) {    
    new Aumento = false
    
    while(g_frags[id] >= Rangos[g_rango[id]][FRAGS]) {
        Aumento = true
        g_primary[id]++;
        g_rango[id]++
    }
        
    if(Aumento) {
        chatcolor(id, "%s Felicidades subiste al rango: !g[ %s ]", Prefijo, Rangos[g_rango[id]][NOMBRE])
        client_cmd(id, "spk %s", Sonido)
        Aumento = false
    }
}
/*=====================================
*[SAY]*
=====================================*/
public message_saytext(id) {
    static said[192]
    read_args(said, charsmax(said))
    remove_quotes(said)
    
    if (said[0] == '@' || said[0] == '%' || said[0] == '/' || said[0] == '.' || said[0] == '!' || equal (said, ""))
        return PLUGIN_HANDLED

    if (!ValidMessage(said, 1)) return PLUGIN_CONTINUE;
    
    static color[11], name[32], alive[11]
    get_user_team(id,color,charsmax(color))
    get_user_name(id,name,charsmax(name))

    if (is_user_alive (id)) {
        alive = ""
    } else {
        alive = "[Muerto]"
    }

    if (is_user_admin(id)) {
        if (get_user_flags(id) & ADMIN_KICK)
            format(said, charsmax(said), "^x01%s^x04%s ^x03%s ^x04: %s", alive, Rangos[g_rango[id]][NOMBRE], name, said)
    } else {
        format(said, charsmax(said), "^x01%s^04%s ^x03%s ^x01: %s", alive, Rangos[g_rango[id]][NOMBRE], name, said)
    }
    
    static i, team[11]
    for (i = 1; i <= g_maxplayers; i++) {
        if (!is_user_connected(i)) continue
        get_user_name(id,name,charsmax(name))
        
        if (is_user_admin(i) || is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i)) {
            get_user_team(i, team, charsmax(team))
            changeTeamInfo(i, color)
            writeMessage(i, said)
            changeTeamInfo(i, team)
        }
    }
    return PLUGIN_HANDLED_MAIN;
}

public message_sayteam(id)
{    
    static said[192]
    read_args(said, charsmax(said))
    remove_quotes(said)
    
    if (said[0] == '@' || said[0] == '%' || said[0] == '/' || said[0] == '.' || said[0] == '!' || equal (said, ""))
        return PLUGIN_HANDLED

    if (!ValidMessage(said, 1)) return PLUGIN_CONTINUE;
    
    static playerTeam, playerTeamName[19]
    playerTeam = get_user_team(id)
    
    switch (playerTeam) {
        case 1: copy (playerTeamName, 6, "TE")
        case 2: copy (playerTeamName, 8, "CT")
        default: copy (playerTeamName, 11, "SPEC")
    }

    static color[11], name[32], alive[11]
    get_user_team(id,color,charsmax(color))
    get_user_name(id,name,charsmax(name))

    if (is_user_alive (id)) {
        alive = ""
    } else {
        alive = "[MUERTO]"
    }

    if (is_user_admin(id)) {
        if (get_user_flags(id) & ADMIN_RCON)
            format(said, charsmax(said), "^x01%s [ %s ] ^x04%s ^x03%s ^x04: %s", alive, playerTeam, Rangos[g_rango[id]], name, said)
    } else {
        format(said, charsmax(said), "^x01%s [ %s ] ^04%s ^x03%s ^x01: %s", alive, playerTeam, Rangos[g_rango[id]],name, said)
    }

    static i, team[11]
    for (i = 1; i <= g_maxplayers; i++) {
        if (!is_user_connected(i)) continue;
        get_user_name(id,name,charsmax(name))
        
        if (get_user_team(i) == playerTeam || is_user_admin(i)) {
            if (is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i)) {
                get_user_team(i, team, charsmax(team))
                changeTeamInfo(i, color)
                writeMessage(i, said)
                changeTeamInfo(i, team)
            }
        }
    }
    return PLUGIN_HANDLED_MAIN;
}
public changeTeamInfo(player, team[]) {
    message_begin(MSG_ONE, g_msgTeamInfo, _, player)
    write_byte(player)
    write_string(team)
    message_end()
}




public writeMessage(player, message[]) {
    message_begin(MSG_ONE, g_msgSayText, {0, 0, 0}, player)
    write_byte(player)
    write_string(message)
    message_end()
}
/* ===================================
*[GUARDADO]*
=====================================*/
Guardar(id) {
    adv_vault_set_start(g_vault)
    
    adv_vault_set_field(g_vault, g_campos[CAMPO_RANGO], g_rango[id])
    adv_vault_set_field(g_vault, g_campos[CAMPO_RANGO], g_frags[id])
    
    adv_vault_set_end(g_vault, 0, g_playername[id])
}

Cargar(id) {
    if(!adv_vault_get_prepare(g_vault, _, g_playername[id]))
        return
    
    g_rango[id] = adv_vault_get_field(g_vault, g_campos[CAMPO_RANGO])
    g_frags[id] = adv_vault_get_field(g_vault, g_campos[CAMPO_FRAG])
}
/* ===================================
*[STOCKS]*
=====================================*/
// stock de chatcolor
stock chatcolor(id, const input[], any:...) {
    new count = 1, players[32];
    static msg[191];
    vformat(msg, 190, input, 3);
    
    replace_all(msg, 190, "!g", "^4"); // Verde
    replace_all(msg, 190, "!y", "^1"); // Default
    replace_all(msg, 190, "!t", "^3"); // Color del Equipo
    
    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();
            }
        }
    }
}
// Stock para Saber Si el mensaje es valido
stock ValidMessage(text[], maxcount) {
    static len, i, count
    len = strlen(text)
    count = 0
    
    if (!len)
        return false;
    
    for (i = 0; i < len; i++) {
        if (text[i] != ' ') {
            count++
            if (count >= maxcount)
                return true;
        }
    }
    return false;
}
public check_weapons( index )
{
    if( !is_user_alive( index ) )
        return;
    
    g_primary[ index ] = g_rango[ index ];

    give_item( index, Rangos[ g_primary[ index ] ][ WEAPON_NAME ] );
    cs_set_user_bpammo( index, get_weaponid( Rangos[ g_primary[ index ] ][ WEAPON_NAME ] ), Rangos[ g_primary[ index ] ][ WEAPON_AMMO ] );
}

public fHam_WeaponDeployPost( Weapon )
{
    static iOwner; iOwner = get_weapon_ent_owner( Weapon );
    
    if( !pev_valid( iOwner ) || !is_user_alive( iOwner ) ) return;
    
    static iWeaponInf, WeaponPrim;
    
    iWeaponInf = cs_get_weapon_id( Weapon );
    WeaponPrim = Rangos[ g_primary[ iOwner ] ][ WEAPON_CSW ];

    static szBuffer[64];
    if( iWeaponInf == WeaponPrim )
    {
        if( !equal( Rangos[ g_primary[ iOwner ] ][ WEAPON_MODEL ], "default" ) )
        {
            formatex(szBuffer, charsmax(szBuffer), "models/lcs_jctf/%s.mdl", Rangos[ g_primary[ iOwner ] ][ WEAPON_MODEL ] );
            set_pev(iOwner, pev_viewmodel2, szBuffer);
        }
    }
}

stock get_weapon_ent_owner( ent )
{
    if ( ~pev_valid( ent ) & 2 ) return -1;
    
    return get_pdata_cbase( ent, 41, 4 );
}
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)