23/11/2019, 04:58 PM
(Última modificación: 23/11/2019, 04:59 PM por JhoNNyNeuTroN. Edited 1 time in total.)
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
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_playername[ 33 ][ 32 ];
enum _:inf_rgn
{
rgn_name[33],
rgn_frags,
rgn_model[100]
}
new const Rangos[][inf_rgn] =
{
{ "Private", 0 },
{ "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 i = 0; i < sizeof g_szmodels_rangos; i++ )
precache_player_model( g_szmodels_rangos[i] )
}
stock precache_player_model( const mdl[] )
{
new szBuffer[512];
formatex( szBuffer, 511, "models/player/%s/%s.mdl", mdl, mdl );
precache_model( szBuffer );
formatex( szBuffer, 511, "models/player/%s/%sT.mdl", mdl, mdl );
if( file_exists( szBuffer )) precache_model( szBuffer );
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam( Ham_Killed, "player", "Ham_PlayerKilled", 1 )
RegisterHam( Ham_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(id, g_cuenta[id], 31)
get_user_name(id, g_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", newname, charsmax(newname))
if(!equal(newname, g_playername[id]))
{
set_task(0.1, "Cargar", id)
}
}
public client_disconnect(id)
{
remove_task(id+TASK_SHOWHUD)
Guardar(id)
}
public Ham_PlayerKilled(victim, attacker)
{
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(id, g_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_vault, g_frags[id], g_rangos[id])
adv_vault_set_end(g_vault, 0, g_playername[id])
}
public Cargar(id)
{
if(!adv_vault_get_prepare(g_vault, _, g_playername[id]))
return;
g_rangos[id] = adv_vault_get_field(g_vault, g_campos[frags], g_campos[Rangos])
}