Ayuda con sistema de rangos
#1
Buenas, He Tratado de compilar este plugin pero me da unos errores con el guardado, me podrian ayudar y ver si es que el plugin funcionara bien?

y si es posible hacer un hooksay para que salga el rango como tag y si es admin que salga con ese tag

Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <cstrike>
#include <adv_vault>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

#define HUD_ID (taskid - TASK_HUD)

new g_rangos[33]
new 
g_frags[33]
new 
g_vault
new g_cuenta[33][32]
new 
Hud
new g_playername33 ][ 32 ];
enum _:inf_rgn
{
    
rgn_name[33],
    
rgn_frags,
    
rgn_model[100]
}

new const 
Rangos[][inf_rgn] =
{
    { 
"Private"},
    { 
"Private First Class"100 },
    { 
"Lance Corporal"200 },
    { 
"Corporal"300 },
    { 
"Sergeant"500 },
    { 
"Staff Sergeant"700 },
    { 
"Gunnery Sergeant"800 },
    { 
"Master Sergeant"900 },
    { 
"First Sergeant"1000 },
    { 
"Master Gunnery Sergeant"1200 },
    { 
"Sergeant Major"1300 },
    { 
"Sergeant Major Of The Marine Corps"1400 },
    { 
"Warrant Officer 1",1500 },
    { 
"Chief Warrant Officer 2"1700 },
    { 
"Chief Warrant Officer 3"1800 },
    { 
"Chief Warrant Officer 4"1900 },
    { 
"Chief Warrant Officer 5"2000 },
    { 
"Second Lieutenant"2100 },
    { 
"First Lieutenant"2200 },
    { 
"Captain"2500 },
    { 
"Major"3000 },
    { 
"Lieutenant Colonel"3500 },
    { 
"Colonel"4000 },
    { 
"Brigadier General"4500 },
    { 
"Major General"5000 },
    { 
"Lieutenant General"6000 },
    { 
"General"10000 }
}

new const 
g_szmodels_rangos[][] =
{
    { 
"private" },
    { 
"private_fc" },
    { 
"corporal" },
    { 
"corporal" },
    { 
"sergeant" },
    { 
"sergeant" },
    { 
"sergeant" },
    { 
"sergeant" },
    { 
"sergeant" },
    { 
"major" },
    { 
"major" },
    { 
"officer" },
    { 
"officer" },
    { 
"officer" },
    { 
"officer" },
    { 
"officer" },
    { 
"lieutenant" },
    { 
"lieutenant" },
    { 
"captain" },
    { 
"major" },
    { 
"colonel" },
    { 
"colonel" },
    { 
"brigadier" },
    { 
"major_g" },
    { 
"lieutenant_g" },
    { 
"general" }    
    
    
/*/ los player model serian
    private (1)
    private_fc
    corproal
    sergeant
    major
    officer
    lieutenant
    captain
    major
    colonel
    brigadier
    major_g
    lieutenant_g
    general (14)
    */
}

enum 
{
    
C_RANGO,
    
C_FRAGS,
    
C_MAX
}
new 
g_campos[C_MAX]

enum (+= 100)
{
    
TASK_HUD 2000,
    
TASK_SHOWHUD 2000
}
const 
PEV_SPEC_TARGET pev_iuser2

public plugin_precache()
{
    for( new 
0sizeof g_szmodels_rangosi++ )
        
precache_player_modelg_szmodels_rangos[i] )
}

stock precache_player_model( const mdl[] )
{
    new 
szBuffer[512];
    
formatexszBuffer511"models/player/%s/%s.mdl"mdlmdl );
    
precache_modelszBuffer );

    
formatexszBuffer511"models/player/%s/%sT.mdl"mdlmdl );
    if( 
file_existsszBuffer )) precache_modelszBuffer );


public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
RegisterHamHam_Killed"player""Ham_PlayerKilled")
    
RegisterHamHam_Spawn"player""Ham_SpawnPost", .Post true )
    
Hud CreateHudSyncObj()
    
g_vault adv_vault_open("Rangos"false),
    
g_campos[C_RANGO] = adv_vault_register_field(g_vault"RANGO"),
    
g_campos[C_FRAGS] = adv_vault_register_field(g_vault"FRAGS"),
    
adv_vault_init(g_vault)
   
}

public 
client_putinserver(id)
{
    
set_task(1.0"ShowHud"id+TASK_SHOWHUD__"b");
    
get_user_name(idg_cuenta[id], 31)
    
    
get_user_name(idg_playername[id], charsmax(g_playername[]));
    
g_frags[id] = 0;
    
g_rangos[id] = 0;
    
Cargar(id)
}

public 
client_infochanged(id){
    if(!
is_user_connected(id)) return
    
    static 
newname[32]
    
    
get_user_info(id"name"newnamecharsmax(newname))    
    
    if(!
equal(newnameg_playername[id]))
    {
        
set_task(0.1"Cargar"id)
    }
}

public 
client_disconnect(id)
{
    
remove_task(id+TASK_SHOWHUD)
    
Guardar(id)
}

public 
Ham_PlayerKilled(victimattacker)
{
    if (
victim == attacker)
    return;
    
    
g_frags[attacker]++
    
check_rango(attacker)
}

public 
check_rango(id)
{
    if (
g_frags[id] >= Rangos[g_rangos[id] + 1][rgn_frags] && g_rangos[id] < 9)
    { 
    
g_rangos[id]++
        
cs_set_user_model(idg_szmodels_rangos[g_rangos[id]])
    }
    return 
PLUGIN_HANDLED
}

public 
ShowHud(taskid
{
    static 
id 
   
public Guardar(id)
{
    if(!
is_user_connected(id)) return;
    
    
adv_vault_set_start(g_vault)
    
adv_vault_set_field(g_vaultg_frags[id], g_rangos[id])
    
adv_vault_set_end(g_vault0g_playername[id])
    
}

public 
Cargar(id)
{
    if(!
adv_vault_get_prepare(g_vault_g_playername[id]))        
        return;
    
    
g_rangos[id] = adv_vault_get_field(g_vaultg_campos[frags], g_campos[Rangos])
    

Responder
#2
Es normal que no compile le falta casi toda la funcion del hud XD
Código PHP:
public ShowHud(taskid
{
    static 
id 
Si no tenes esa parte del codigo borra eso y borra esto tambien
Código PHP:
new Hud
enum 
(+= 100)
{
TASK_HUD 2000,
TASK_SHOWHUD 2000
}
const 
PEV_SPEC_TARGET pev_iuser2
Hud 
CreateHudSyncObj()
#define HUD_ID (taskid - TASK_HUD)
set_task(1.0"ShowHud"id+TASK_SHOWHUD__"b");
remove_task(id+TASK_SHOWHUD
y para el chat usa esto
Hacer tu propio chat
y tendrias que cambiar esto
Código PHP:
formatex(prefixcharsmax(prefix), "%s%s[Nivel:^x04 %d^x01]^x03 %s"g_isalive[id] ? "^x01" "^x01*MUERTO* "g_vip[id] ? "(VIP) " ""g_level[id], g_playername[id])
//------>
formatex(prefixcharsmax(prefix), "%s%s[Rango:^x04 %s^x01]^x03 %s"g_isalive[id] ? "^x01" "^x01*MUERTO* "g_vip[id] ? "(VIP) " ""Rangos[g_rangos[id]][rgn_name], g_playername[id]) 
“Quien te quiere en su vida, volverá a buscarte”
Qué frase más estúpida
Porque quien te quiere en su vida, jamás se iría.
Responder
#3
Gracias we, lo probaré <3
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)