The Hidden Mod Invisibilidad
#1
Bombilla 
Basado en el Mod "The Hidden".
Son 4 plugins en cuestion pero por ahora pondre solo el principal
TheHidden.amxx (Principal)
TheHiddenHook.amxx (como el gancho de Batman)
grab_plus.amxx (como la fuerza de StarWars)
laser_aiming.amxx (mira laser que se torna verde cuando apuntas al invisible)

Otorga Invisibilidad y poderes al comprador.
(los poderes son los otros 2 plugins que no son de mi autoria pero los modifique para completar el principal)

("h_cost","5000") //5000$ coste para adquirir el Hidden
("h_buyable","1") // activar/desactivar comprar
("h_sounds","1") // activar/desactivar sonidos (reproduce sonidos del hidden aleatoriamente mientras la ronda este en curso)
("h_rules","1") // activar/desactivar reglas (Para ser Invisible tu Equipo debe ir perdiendo por 3 rondas o mas...)

Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <engine>
#include <fun>
#include <colorchat>

enum ROUNDSTATUS {
    
RS_END,
    
RS_RUNNING,
    
RS_UNDEFINED
}
new 
ROUNDSTATUS:roundstatus RS_UNDEFINED

#define HIDDEN_PAIN 8
new pain_hidden[HIDDEN_PAIN][] = {
    
"hidden/617-303pain01.wav",
    
"hidden/617-303pain02.wav",
    
"hidden/617-303pain03.wav",
    
"hidden/617-303pain04.wav",
    
"hidden/617-303pain05.wav",
    
"hidden/617-303pain06.wav",
    
"hidden/617-303pain07.wav",
    
"hidden/617-303pain08.wav"
}
#define HIDDEN_IDLE 5
new idle_hidden[HIDDEN_IDLE][] = {
    
"hidden/617-behindyou01.wav"
    
"hidden/617-imhere01.wav",
    
"hidden/617-iseeyou01.wav",
    
"hidden/617-lookup01.wav",
    
"hidden/617-overhere01.wav"
}
#define HIDDEN_MISS 3
new miss_hidden[HIDDEN_MISS][] = {
    
"hidden/617-pigstick01.wav",
    
"hidden/617-pigstick02.wav",
    
"hidden/617-pigstick03.wav"
}
#define HIDDEN_HIT 3
new hit_hidden[HIDDEN_HIT][] = {
    
"hidden/claw_strike1.wav",
    
"hidden/claw_strike2.wav",
    
"hidden/claw_strike3.wav"
}
#define HIDDEN_DEATH 4
new death_hidden[HIDDEN_DEATH][] = {
    
"hidden/617-death01.wav",
    
"hidden/617-death02.wav",
    
"hidden/617-death03.wav",
    
"hidden/617-death04.wav"
}
#define HIDDEN_RADIO 2
new radio_hidden[HIDDEN_RADIO][] = {
    
"hidden/617-radiotaunts01.wav",
    
"hidden/617-radiotaunts04.wav"
}

//Color de la Nightvision Hidden
#define nR     0
#define nG     200
#define nB     200

new nightvision[33]
new 
bool:hidden[33]

new 
h_costh_buyableh_soundsh_rules

new TwinsCTwins
#define MAX_PLAYERS 32
new bool:g_restart_attempt[MAX_PLAYERS 1]

new 
bool:map_off false
new mapname[32]

//para usar con zombieme.amxx
new bool:zombie[33]
new 
bool:xvar_task
new xvar_zombie_hasxvar_zombie_idget_id

public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
////COMMANDS
    
register_concmd("buy_hidden","buy_hidden")
    
register_clcmd("nightvision","client_nightvision")
    
    
register_menuid("hidden_menu")
    
register_concmd("hidden_menu","hidden_menu"ADMIN_BAN)//para abrir menu desde la consola
    
register_concmd("hmenu","hidden_menu"ADMIN_BAN)
    
register_concmd("+hidden","radio_off")//bindear teclas de radio Z X C
    
register_clcmd"+grab""grab")
    
register_clcmd"-grab""invisibility")
    
/////////EVENTS/////
    
register_event("WeapPickup""event_weap_pickup""be""1!29")    // removes players picked up weapon
    
register_event("Damage","event_damage_pain","be","2!0","3=0")     // cuando produce algun daño al jugador
    
register_event("DeathMsg","event_DeathMsg","a")            // cuando muere de algun jugador
    
register_event("CurWeapon","event_CurWeapon","be")        // use the CurWeapon event to keep setting player's speed
    //register_event("CurWeapon","event_CurWeapon","be", "1=1", "2=29")        // use the CurWeapon event to keep setting player's speed
    
register_event("ResetHUD""event_hud_reset""be")        // cuando se reinicia el HUD PLAYER
    //register_event("HLTV", "check_commands", "a")
    
register_clcmd("fullupdate""clcmd_fullupdate")        // 
    
register_event("TextMsg""event_restart_attempt""a""2=#Game_will_restart_in")// cuendo el CS usa algun comando
    
register_event("TextMsg""event_restart_attempt""a""2=#Game_Commencing")// cuendo el CS usa algun comando
    
    
register_event("TeamScore""T_score""a""1=TERRORIST")//Cuando los T ganan una ronda
    
register_event("TeamScore""CT_score""a""1=CT")
    
    
register_forward(FM_PlayerPreThink,"Client_PreThink")
    
register_forward(FM_Touch,"fw_Touch")                // Cuando el jugador o entidad toca algo
    
register_forward(FM_EmitSound"fw_EmitSound")
    
    
register_logevent("event_roundstart"2"0=World triggered""1=Round_Start")    // detecta el empieze de la ronda
    
register_event("SendAudio""event_twin""a""2&%!MRAD_terwin")        // detecta cuando ganan T
    
register_event("SendAudio""event_ctwin""a""2&%!MRAD_ctwin")        // detecta cuadno ganan CT
    
register_logevent("event_roundend",2,"1=Game_Commencing")            // detecta el final de la ronda
    /////////////////////
    /////////CVARS/////////
    
h_cost register_cvar("h_cost","5000"//5000 coste
    
h_buyable register_cvar("h_buyable","1"// activar/desactivar comprar
    
h_sounds register_cvar("h_sounds","1"// activar/desactivar sonidos
    
h_rules register_cvar("h_rules","1"// activar/desactivar reglas
    ///////////////////
    ///////////////STUFF////////////
    
register_cvar(PLUGIN,VERSION,FCVAR_SERVER)
    
    if(!
xvar_exists("zombie_has"))// si la xvar NO existe
    
{
        
log_amx("XVar zombie_has, no existe en zombieme.amxx")
        
xvar_task false
    
}
    else{
//si la xvar SI existe
        
xvar_task true
    
}
}

public 
bool:hidden_has false    //para usar en otros plugins
public hidden_id 0        //para usar en otros plugins
        //para usar en otros plugins

public plugin_precache() {
    
precache_model("models/player/hidden/hidden.mdl")     //  model player
    
precache_model("models/player/hidden/v_knife_hidden.mdl")     //  knife model
    
precache_sound("hidden/617-aurain01.wav")
    
precache_sound("hidden/617-auraout01.wav")
    
    new 
i
    
for (0HIDDEN_PAINi++)
        
precache_sound(pain_hidden[i])
    for (
0HIDDEN_IDLEi++)
        
precache_sound(idle_hidden[i])
    for (
0HIDDEN_MISSi++)
        
precache_sound(miss_hidden[i])
    for (
0HIDDEN_HITi++)
        
precache_sound(hit_hidden[i])
    for (
0HIDDEN_DEATHi++)
        
precache_sound(death_hidden[i])
    for (
0HIDDEN_RADIOi++)
        
precache_sound(radio_hidden[i])
}

public 
client_connect(id) {// resetea todas las variables
    
set_task(0.1"xvar_load"id__"b")
    
hidden[id] = false 
    hidden_has 
false
    hidden_id 
id
    nightvision
[id] = false
}
public 
client_disconnect(id) {// resetea todas las variables
    
Remove_hidden(id)
}
public 
xvar_load(id){
    if(
xvar_task == true){
        
xvar_zombie_has get_xvar_id ("zombie_has")
        
xvar_zombie_id get_xvar_id ("zombie_id")
        
get_id get_xvar_num(xvar_zombie_id)
        
zombie[get_id] = bool:get_xvar_num(xvar_zombie_has)
    }
}
public 
nombre_mapa(){
    
    
get_mapname(mapnamesizeof (mapname))
    
    if( (
equali(mapname"as_"3)) || (equali(mapname"es_"3)) ){
        
map_off true
    
}
}
public 
buy_hidden(id) {
    if (
get_pcvar_num(h_buyable) != 1){
        
client_print(id,print_chat,"[HIDDEN] La Invisibilidad no esta disponible.")
        return 
PLUGIN_HANDLED
    
}
    if(!
is_user_alive(id)){
        
client_print(id,print_chat,"[HIDDEN] Intentalo cuando estes vivo.")
        return 
PLUGIN_HANDLED
    
}
    if(
hidden[id]){
        
client_print(idprint_chat"[HIDDEN] Ya eres Invisible.")
        return 
PLUGIN_HANDLED
    
}
    if(
zombie[id]){
        
client_print(idprint_chat"[HIDDEN] Eres Zombi, no puedes volverte Invisible!")
        return 
PLUGIN_HANDLED
    
}
    
nombre_mapa()
    if(
map_off){
        
client_print(id,print_chat,"[HIDDEN] En este mapa no se perminte la Invisibilidad.")
        return 
PLUGIN_HANDLED
    
}
    if( 
cs_get_user_buyzone(id) == ){// si NO esta en la zona de compra
        
client_print(idprint_chat"[HIDDEN] Debes estar en la zona de compra!" )
        return 
PLUGIN_HANDLED
    
}
    if((
cs_get_user_money(id) - get_pcvar_num(h_cost)) < 0){// check if the player has enough cash
        
client_print(id,print_chat,"[HIDDEN] Para volverte Invisible necesitas $%d"get_cvar_num("z_cost"))
        return 
PLUGIN_HANDLED
    
}
    if(!
check_team_lose(id) && get_pcvar_num(h_rules) == 1){
        
client_print(idprint_chat"[HIDDEN] Para ser Invisible tu Equipo debe ir perdiendo por 3 rondas o mas...")
        return 
PLUGIN_HANDLED
    
}
    if(
checking_hidden() == true){//si algun jugador es el hidden
        
client_print(id,print_chat,"[HIDDEN] Solo puede existir un Invisible.")
        return 
PLUGIN_HANDLED
        
    
}
    
hidden[id] = true
    hidden_has 
true
    hidden_id 
id
    
    event_player_spawn
(id)
    
cs_set_user_money(id,cs_get_user_money(id) - get_pcvar_num(h_cost))
    return 
PLUGIN_CONTINUE
}

public 
clcmd_fullupdate(){
    return 
PLUGIN_HANDLED_MAIN
}
public 
event_roundstart(id){
    
roundstatus RS_RUNNING
}
public 
event_twin(){
    
set_task(1.0"event_roundend")
}
public 
event_ctwin(){
    
set_task(1.0"event_roundend")
}
public 
event_roundend(){//si la ronda termino reiniciar el model del hidden para evitar errores al volver a cargarlo    
    
roundstatus RS_END
    
    
new players[32], count
    get_players
(playerscount"h")
    for(new 
0counti++)
    {
        if(
hidden[players[i]])
            
cs_reset_user_model(players[i])
    }
    return 
PLUGIN_HANDLED
}

public 
event_restart_attempt() {//para verificar si se ha reiniciado la ronda
    
Twins 0
    CTwins 
0
    
new players[32], num
    get_players
(playersnum"a")
    for (new 
inum; ++i){
        
g_restart_attempt[players[i]] = true
    
}
}

public 
event_hud_reset(id) {//al empezar la ronda
    
if (g_restart_attempt[id]) {// si la ronda se a reiniciado
        
g_restart_attempt[id] = false
        Remove_hidden
(id)
    }
    
event_roundstart(id)
    
event_player_spawn(id)
}
public 
bool:checking_hidden(){
    new 
players[32], num
    get_players
(playersnum"a")
    for (new 
inum; ++i){
        if(
hidden[players[i]] == true){
            return 
true
        
}
    }
    return 
false
}
public 
bool:Aiming_hiddens(id){//chequea si el id esta mirando a un hidden
    
new idAiming iBodyPart
    get_user_aiming
id idAiming iBodyPart )

    if( 
is_user_alive(idAiming) && hidden[idAiming] ){    
        return 
true
    
}
    return 
false
}
public 
BotDontShoot(id){//event_CurWeapon para que los robots suelten las armas
    
if(Aiming_hiddens(id)){
        if(
is_user_bot(id) && is_user_connected(id) && is_user_alive(id)){  //si es un bot
            
engclient_cmd(id"drop")
        }
    }
}
/*
public check_wins(id){
    if(!check_team_lose(id)){//si el equipo del jugador no va perdiendo
        clear_hidden(id)
    }
}
*/
public T_score(){
    
Twins read_data(2)
}
public 
CT_score(){
    
CTwins read_data(2)
}
public 
bool:check_team_lose(id){//Para saber si el equipo del jugador va perdiendo

    
new CsTeams:iTeam cs_get_user_team(id
    
    if((
iTeam == CS_TEAM_T) && (Twins CTwins)){//el jug es T y van perdiendo
        
if(CTwins Twins >= 3){//perdiendo por 3 rondas o mas
            
return true
        
}
    }
    if((
iTeam == CS_TEAM_CT) && (Twins CTwins)){//el jug es CT y van perdiendo
        
if(Twins CTwins >= 3){
            return 
true
        
}
    }
    return 
false
}
public 
clear_hidden(id){
    if(!
hidden[id]){
        return
    }
    
Remove_hidden(id)
    
emit_sound(idCHAN_VOICE"hidden/617-auraout01.wav"1.0ATTN_NORM0PITCH_NORM)
    
client_print(idprint_chat"[HIDDEN] Las vitaminas para la Invisibilidad dejaron de tener efecto!")

    if(
get_user_health(id) != 100){//restablece la vida
        
set_user_health(id100)
    }
    if(
get_user_armor(id) != 100){//restablece la armadura
        
set_user_armor(id100)
    }
    
    
event_player_spawn(id)//quita el model del jugador y lo vuelve visible
    
engclient_cmd(id"drop")//suelta el arma actual
    
give_item(id,"weapon_p228")//restablece el model del arma mostrada
    
give_itemid "ammo_357sig" )//da balas para la pistola p228
    
cs_set_user_nvg(id,0)//quita la vision nocturna
    //set_user_rendering(id)//quita el glow del jugador
    
set_vision(id)//restablece el color de la vision del jugador
}
//########################################################################################################################//
public event_player_spawn(id) {//cuando se compra el zombie o se empieza la ronda siendo zombie
    
    
if(hidden[id] && is_user_alive(id)){
        
set_task(0.1"RemovePickedWeapon"id//removes zombies guns
        //Hidden transform
        
emit_sound(idCHAN_VOICE"hidden/617-aurain01.wav"1.0ATTN_NORM0PITCH_NORM)
        
//////////////
        
ChatColor(idBLUE"[HIDDEN] Te has vuelto Invisible!")
        
        if (
roundstatus == RS_RUNNING){
            
cs_set_user_model(id"hidden")
        }
        if(!
nightvision[id]){
            
cs_set_user_nvg(id,0)
            
client_cmd(id"nightvision")
        }
        
//if(!task_exists(id))
        
set_task(1.0"life_increase"id__"b")
        
set_task(1.0,"hiddensounds"id__"b")
        
        
set_vision(id)
        
//SI PONGO ESTO DE ERROR EN EL LOG give_item(id, "item_kevlar")
        
set_user_armor(id100)
        
//client_cmd(id, "+hook_on")//activar el hook en TheHiddenHook.amxx
        
fm_set_entity_visibility(id0)// 0=invisible 1=visible    
    
}
    else{
        if (
zombie[id] == false && is_user_alive(id)){//Si no es zombi
            
cs_reset_user_model(id)
        }
        
fm_set_entity_visibility(id1)
    }
}
public 
life_increase(id){
    if(!
is_user_alive(id) || !hidden[id]){
        return 
PLUGIN_HANDLED
    
}
    if(
get_user_health(id) >= 100){//max
        
return PLUGIN_HANDLED
    
}
    if(
get_user_health(id) +100){//max
        
set_user_health(id100)
        return 
PLUGIN_HANDLED
    
}
    
set_user_health(idget_user_health(id)+1)
    return 
PLUGIN_CONTINUE
}
public 
event_DeathMsg() { //despues de morir
    //new killer = read_data(1)
    //new victim = read_data(2)
    
new id
    id 
read_data(2)
    if(
hidden[id]){
        
set_task(1.0,"Remove_hidden",id)//el que muere(victima) se le resetean las variables
    
}
    return 
PLUGIN_CONTINUE
}
public 
Remove_hidden(id){// declara que ya no es zombi
    
hidden[id] = false
    hidden_has 
false
    hidden_id 
id
    nightvision
[id] = false
    set_vision
(id)
    
fm_set_entity_visibility(id1)// 0=invisible 1=visible    
}


public 
set_vision(id) {//pone el model
    
if (!zombie[id] && !hidden[id]){//si no es zombie ni el hidden reestablece la vision del jugador
        
message_begin(MSG_ONEget_user_msgid("ScreenFade"), {0,0,0}, id)
        
write_short(~0)
        
write_short(~0)
        
write_short(0)
        
write_byte(0)
        
write_byte(0)
        
write_byte(0)
        
write_byte(80)
        
message_end()
        
        
client_cmd(id"amx_restrict off shield")//Habilita el item
        
client_cmd(id"amx_restrict off nvgs")
        return
    }
    
set_pev(idpev_viewmodelengfunc(EngFunc_AllocString"models/player/hidden/v_knife_hidden.mdl"))
    
set_pev(idpev_weaponmodelengfunc(EngFunc_AllocString""))
    
    
client_cmd(id"amx_restrict on shield")//Deshabilita el item
    
client_cmd(id"amx_restrict on nvgs")
}
public 
event_weap_pickup(id) {//cuando recoje un arma
    
if(hidden[id]){
        
set_task(0.1"RemovePickedWeapon"id)
    }
    return 
PLUGIN_HANDLED
}

public 
RemovePickedWeapon(id) {//para soltar todas las armas
    
if(!is_user_alive(id) || !is_user_connected(id)) 
        return 
PLUGIN_CONTINUE

    
if(hidden[id]){
        
engclient_cmd(id"drop""weapon_c4")
        
set_vision(id)
        
        
strip_user_weapons(id)
        
give_item(id,"weapon_knife")
    }
    return 
PLUGIN_HANDLED


public 
fw_Touch(pToucherpTouched)
{
    if ( !
pev_valid(pToucher) || !pev_valid(pTouched) )
        return 
FMRES_IGNORED
    
    
if (!is_user_connected(pTouched) )
        return 
FMRES_IGNORED
    
    
if (!hidden[pTouched] )
        return 
FMRES_IGNORED
    
    
new className[32]
    
pev(pToucherpev_classnameclassName31)
    
    if ( 
equal(className"weaponbox") || equal(className"armoury_entity" ) || equal(className"weapon_shield" ) )
        return 
FMRES_SUPERCEDE
    
    
return FMRES_IGNORED
}

public 
event_CurWeapon(id) { // declara la velocidad continuamente al cojer/dejar/cambiar de arma
    
if(is_user_alive(id) && hidden[id]){
        
set_vision(id)
    }    
    
set_task(0.1"BotDontShoot"id__"b")
}

public 
event_damage_pain(victim) {//daño recibido
    //new damage = read_data(2)
    //new bodypart, weapon
    //new killer = get_user_attacker(victim, weapon, bodypart)
    
    
if (hidden[victim] && is_user_alive(victim)){//si el que recibe daño es el hidden
        
emit_sound(victimCHAN_VOICEpain_hidden[random_num(0HIDDEN_PAIN -1)], 1.0ATTN_NORM0PITCH_NORM)
        
//fm_set_entity_visibility(victim, 1)// 0=invisible 1=visible
        
grab(victim)
        
set_task(0.01"invisibility"victim)
        
    } 
}
public 
invisibility(id){
    if(
is_user_alive(id) && hidden[id]){
        
fm_set_entity_visibility(id0)
    }
}
public 
grab(id){
    if(
is_user_alive(id) && hidden[id]){
        
fm_set_entity_visibility(id1)// 0=invisible 1=visible
    
}
}
stock fm_set_entity_visibility(indexvisible 1){     //from fakemeta_util PARA ON/OFF INVISIBILIDAD
    
set_pev(indexpev_effectsvisible == pev(indexpev_effects) & ~EF_NODRAW pev(indexpev_effects) | EF_NODRAW)
    
//new kRndMode = visible == 1 ? ( _:kRenderNormal ) : ( _:kRenderTransAlpha )
    //set_user_rendering(index, kRenderFxNone, 0, 0, 0, kRndMode, 0)
    
return 1
}
public 
hiddensounds(id){//reproduce sonidos del hidden aleatoriamente mientras la ronda este en curso
    
if (roundstatus == RS_RUNNING && get_pcvar_num(h_sounds))
    {
        if (
random_num(135) == && hidden[id] && is_user_alive(id)) {
            if(
is_user_alive(id))
                
emit_sound(idCHAN_VOICEidle_hidden[random_num(0HIDDEN_IDLE -1)], 1.0ATTN_NORM0PITCH_NORM)
        }
    }    
}

public 
Client_PreThink(id){//para poner la vision nocturna        

    
if(hidden[id] && is_user_alive(id) && nightvision[id]) {
        new 
pos[3]
        
get_user_origin(idpos)
        
message_begin(MSG_ONESVC_TEMPENTITY, {0,0,0}, id)
        
write_byte(TE_DLIGHT)
        
write_coord(pos[0])
        
write_coord(pos[1])
        
write_coord(pos[2])
        
write_byte(80)
        
write_byte(nR)
        
write_byte(nG)
        
write_byte(nB)
        
write_byte(5)
        
write_byte(10)
        
message_end()
    }
    return 
PLUGIN_CONTINUE
}

public 
client_nightvision(id){//para saber si se esta usando la vision nocturna (si se ha pulsado la N)
    
    
if(nightvision[id])
    {
        
nightvision[id] = false
        
return PLUGIN_HANDLED
    
}
    if(!
nightvision[id])
    {
        
nightvision[id] = true
    
}
    return 
PLUGIN_CONTINUE
}

public 
fw_EmitSound(idchannelsample[]){//para emitir sonidos segun las teclas pulsadas

    
if(sample[0] == 'p' && sample[1] == 'l'&& sample[7] == 'd' && hidden[id])
    {
        
emit_sound(idCHAN_WEAPON,  death_hidden[random_num(0HIDDEN_DEATH -1)], VOL_NORMATTN_NORM0PITCH_NORM)
        return 
FMRES_SUPERCEDE    
    
}
    
    if ( !
is_user_alive(id) || !hidden[id] )
        return 
FMRES_IGNORED
    
    
if ( sample[0] == 'w' && sample[1] == 'e' && sample[8] == 'k' && sample[9] == 'n' )
    {
        switch(
sample[17])
        {
            case 
'l': return FMRES_SUPERCEDE
                
            
case 's''w':
            {                
                
emit_sound(idCHAN_WEAPONmiss_hidden[random_num(0HIDDEN_MISS -1)], VOL_NORMATTN_NORM0PITCH_NORM)    
                return 
FMRES_SUPERCEDE
            
}
            
            case 
'b''1''2''3''4':
            {
                
emit_sound(idCHAN_WEAPONhit_hidden[random_num(0HIDDEN_HIT -1)], VOL_NORMATTN_NORM0PITCH_NORM)
                return 
FMRES_SUPERCEDE
            
}
        }
    }
    
    
    return 
FMRES_IGNORED
}
public 
radio_off(id){
    if(
is_user_alive(id) && hidden[id]){
        
emit_sound(idCHAN_VOICEradio_hidden[random_num(0HIDDEN_RADIO -1)], 1.0ATTN_NORM0PITCH_NORM)
    }
}

//########################################################################################################################//
public hidden_menu(id){
    if (!(
get_user_flags(id)&ADMIN_KICK)){  
        
server_print("El Menu Hidden es solo para admins...")
        
client_print(id,print_chat,"El Menu Hidden es solo para admins...")
        return
    }
    
/*
     Colores:
    \w = Blanco
    \r = Rojo
    \d = Gris
    \y = Amarillo
    ^t = tabulacion (espacio)
    ^n = salto de linea
    \R = align text to the right
    \a => Beep
    \b => Backspace
    \e => Escape
    \n => Nueva Línea
    \r => Retorno de Carro (se utiliza en Windows para una línea nueva "/r/n")
    \t => Tabulación Horizontal
    \v => Tabulación Vertical
    \\ => Inserta literalmente el símbolo '\'
    \’’ => Inserta literalmente el símbolo "'"
    \" => Inserta literalmente el símbolo '"'
    \% => Inserta literalmente el símbolo '%'
    \ddd => código de caracteres, con el código en decimal "ddd"
    \xhhh => código de caracteres, con el código en hexadecimal "hhh"
    */

    
new players[32], num;
    new 
szName[32], szUserId[32];
    
get_players(playersnum);
    new 
menu menu_create("\yTransformar en Hidden a :""hidden_trasform"
    
    for(new 
num i++){//busca a todos los jugadores
        
if (is_user_connected(players[i]) && is_user_alive(players[i])){
            
get_user_nameplayers[i], szNamecharsmaxszName ) );
            
formatexszUserIdcharsmaxszUserId ), "%d"get_user_userid(players[i]) );
            
menu_additemmenuszNameszUserId);
        }
    }
    
    
menu_setprop(menuMPROP_EXITNAME"\ySalir")
    
menu_setprop(menuMPROP_NEXTNAME"\yMas")
    
menu_setprop(menuMPROP_BACKNAME"\yAtras")
    
menu_setprop(menuMPROP_EXITMEXIT_ALL)
    
    
menu_display(idmenu0)
}
public 
hidden_trasform(idmenuitem){
    if(
item == MENU_EXIT){
        
menu_destroy(menu
        return 
PLUGIN_HANDLED 
    
}
    
    new 
data[6], iName[64
    new 
accesscallback 

    menu_item_getinfo
(menuitemaccessdatacharsmax(data), iNamecharsmax(iName), callback); 
    
    new 
iKey str_to_num(data); //guarda el id del jugador elegido
    
new player_id find_player"k"iKey ); // flag "k" : para buscar al jugador por id
    
    
if(checking_hidden() == true){//si algun jugador es el hidden
        
client_print(id,print_chat,"[HIDDEN] Solo puede existir un Invisible.")
        return 
PLUGIN_HANDLED
    
}
    
    if (!
is_user_connected(player_id) || !is_user_alive(player_id)){
        
client_print(idprint_chat"[HIDDEN] El usuario %s esta Muerto o no esta Conectado."iName)
        return 
PLUGIN_HANDLED
    
}
    
    if ( 
player_id && is_user_alive(player_id) ){//si el jugador esta vivo
        
if(hidden[player_id] == true){
            
clear_hidden(id)
            
            
client_print(id,print_chat,"[HIDDEN] Invisibilidad OFF para %s"iName)
            new 
Admin_Name[32]
            
get_user_nameidAdmin_NamecharsmaxAdmin_Name ) );
            
client_print(player_id,print_chat,"[HIDDEN] El Admin %s te volvio Visible."Admin_Name)
        }
        else{
//si el jugador no es hidden
            
hidden[player_id] = true
            hidden_has 
true
            hidden_id 
player_id
            
            event_player_spawn
(player_id)
            
            
client_print(id,print_chat,"[HIDDEN] Invisibilidad ON para %s"iName)
            new 
Admin_Name[32]
            
get_user_nameidAdmin_NamecharsmaxAdmin_Name ) );
            
client_print(player_idprint_chat"[HIDDEN] El Admin %s te volvio Invisible."Admin_Name)
        }
    }
    
    
menu_destroy(menu
    return 
PLUGIN_HANDLED 

Pues nada a comprobar y si me dan el visto bueno actualizare el tema con el siguiente plugin. Gracias!


Archivos adjuntos
.sma   Descargar AMXX / TheHidden.sma (Tamaño: 21.87 KB / Descargas: 27)
.rar   TheHidden.rar (Tamaño: 4.44 MB / Descargas: 46)
Responder
#2
Por lo que lei seve bueno y util pero a hora cuando este desocupado veo el code y lo pruebo y te digo que tal Whatever
* Ing. Informático * Mapper * Venezolano
Responder
#3
Una pregunta, vos hiciste el modo desde 0?
(15/12/2020, 07:06 PM)Mario AR. escribió: Cuando tu acatante conozca de tu nuevo puerto, te volverá a atacar
Responder
#4
https://forums.alliedmods.net/showthread.php?t=214947


Whatever
Responder
#5
Código PHP:
#define AUTHOR "WaxinTon" 

No veo créditos...
Responder
#6
Si bueno desde 0 no coji el codigo de zombieme.amxx y lo fui modificando y coji los audios del propio mod the hidden y algunas ideas y los models y demas de internet creo recordar...
-Pero que os gusta hay algo mal?? o que?
Responder
#7
feo codigo aparte...

Código PHP:
public check_bind(id){//event_CurWeapon
    
if(hidden[id]){
        
client_cmd(id"bind z +hidden")
        
client_cmd(id"bind x +hidden")
        
client_cmd(id"bind c +hidden")
    }
    else{
        if(!
zombie[id]){
            
client_cmd(id"bind z radio1")
            
client_cmd(id"bind x radio2")
            
client_cmd(id"bind c radio3")
        }
    }


No esta permitido... ( No funciona )
Responder
#8
El mod The Hidden ya existe y esta en AlliedModders, seguramente esta mejor que este.
Responder
#9
Lo malo es que, no podés ponerte de AUTOR, digamos, Algo que hicieron, suponete, hacen un algo, que se yo, un pibe hace una torta gigante, después viene alguien y pregunta, quién hizo la torta esta? Y saltes vos y digas, Yo la hice, Y que el otro negro que hizo la torta, venga y te cage a palos, en este caso es algo similar (?
(15/12/2020, 07:06 PM)Mario AR. escribió: Cuando tu acatante conozca de tu nuevo puerto, te volverá a atacar
Responder
#10
FloresMagon:
- Ya se que los binds estan prohibidos en servers oficiales!!!! no me lo repitais mas gracias
- Mi server es privado para amigos que apenas saben abrir el portatil se que hay otras maneras pero como es mi servidor...

FreDDy y Cr3470r:
Solo he visto lo que puso FloresMagon que y es para CSO y encima va de un Joker (payaso).
Intento copiar el mod original del hidden pero le salio un xurro mezclado con un payaso.
Y lo mio no es un mod puro que cambia el estilo de juego si no como un item mas para comprar...
Pero siguiendo el ejemplo de la torta gigante si esa la has echo tu muy bien.
Yo he echo otra parecida y es MIA con ingredientes parecidos y lo que tu quieras pero es mia.
Y el inventor de la torta gigante pues en su gloria estara que la que he hecho yo es mia... jajaj
Y a todo esto que mas da, el caso es si funciona bien y si gusta no debatir sobre autorias y tortillas o payasos... drink water my friend!
Responder
#11
Si este mod es mod es una version mas que el mod criwlawer o algo asi, que los cts tenian un rayo para distinguir al tt invisible q solo se le veia el cuchillo, y este mod ya esta en otros foros, no es por ser mala onda pero este mod no es tuyo y no has inventado nada nuevo, solo has cambiado un par de boludeces..
Responder
#12
(22/04/2015, 08:53 PM)waxinton7 escribió: vale esta repetido y todo lo que querais alguien mira si esta bien el code? y ya que estais una preguntita algun truco para evitar el lag? porque cada 2 por tres cuando se cruzan 2 jugadores se laguea tela y tenemos de 50 a 100mb y graficas de 1gb no lo entiendo jajaj el cs 1.6 no da pa mas no?
ta estoy harto de cambiar rates para nada y los fps de 60 nunca pasan creo que por el hlbooster?
rate "9999999"
cl_cmdrate "101"
cl_updaterate "11"
fps_max "999"

estoy por pasar el CSO que me han dicho que aguanta los mismo plgugins y todo no?

Depende de tu conexión a internet...

1 MB: rate 20000 / cl_updaterate 80 / cl_cmdrate 80
+1 MB: rate 25000 / cl_updaterate 101 / cl_cmdrate 101
Pacman rip :'v
Responder
#13
Eso tenia puesto pero es que tengo 100mb y alguna config para mi servidor??'
Drink water my friend!
Responder
#14
(22/04/2015, 01:59 PM)waxinton7 escribió: FloresMagon:
- Ya se que los binds estan prohibidos en servers oficiales!!!! no me lo repitais mas gracias
- Mi server es privado para amigos que apenas saben abrir el portatil se que hay otras maneras pero como es mi servidor...

FreDDy y Cr3470r:
Solo he visto lo que puso FloresMagon que y es para CSO y encima va de un Joker (payaso).
Intento copiar el mod original del hidden pero le salio un xurro mezclado con un payaso.
Y lo mio no es un mod puro que cambia el estilo de juego si no como un item mas para comprar...
Pero siguiendo el ejemplo de la torta gigante si esa la has echo tu muy bien.
Yo he echo otra parecida y es MIA con ingredientes parecidos y lo que tu quieras pero es mia.
Y el inventor de la torta gigante pues en su gloria estara que la que he hecho yo es mia... jajaj
Y a todo esto que mas da, el caso es si funciona bien y si gusta no debatir sobre autorias y tortillas o payasos... drink water my friend!
No, a lo que voy es que vos no hiciste la torta, sino el otro la hizo, y vos te estarías adueñando de la torta que el boludo imaginario hizo.. Ahora captas? Sería lo mismo que vos hagas un plugin que se yo, algo sencillo, y venga yo y me ponga de autor en el plugin, y lo postee en plugins nuevos, a vos no te gustaría eso.. Al menos si vas a publicar un plugin que no es tuyo en la sección de PLUGINS NUEVOS, entonces dejá los creditos al que hizo el plugin..
(15/12/2020, 07:06 PM)Mario AR. escribió: Cuando tu acatante conozca de tu nuevo puerto, te volverá a atacar
Responder
#15
Pone los autores de los plugin , esto es mas un recopilación que otra cosa deberia ir en aportes
[Imagen: tumblr_mt8w6d7yz11rn3500o1_400.gif]
Responder
#16
Te lo resumo en palabras que entiendas ya que no te tomas el tiempo ni de leer.
DEJA DE ROBAR CREDITOS. Fin.
[Imagen: 76561198038869740.png]

Responder
#17
Vale quillo pongo de autor a quien tu quieras ma da igual, lo veo una ---- tonteria enorme tio deja de raya con eso. decirme a quien pongo que lo lo hago pero el caso es el plugin va o no va bien
Drink water my friend!
Responder
#18
(23/04/2015, 10:18 AM)yhoon escribió: Te lo resumo en palabras que entiendas ya que no te tomas el tiempo ni de leer.
DEJA DE ROBAR CREDITOS. Fin.
Responder
#19
(23/04/2015, 11:17 AM)FloresMagon escribió:
(23/04/2015, 10:18 AM)yhoon escribió: Te lo resumo en palabras que entiendas ya que no te tomas el tiempo ni de leer.
DEJA DE ROBAR CREDITOS. Fin.
Responder
#20
(23/04/2015, 10:36 AM)waxinton7 escribió: Vale quillo pongo de autor a quien tu quieras ma da igual, lo veo una ---- tonteria enorme tio deja de raya con eso. decirme a quien pongo que lo lo hago pero el caso es el plugin va o no va bien

Si el dia de mañana llegas a hacer un plugin desde 0 voy a venir y lo voy a postear pero con mi autoria. y vamos a ver que dices.

(en serio lo voy a hacer)
Responder
#21
(21/04/2015, 04:39 PM)Nazi.- escribió: Por lo que lei seve bueno y util pero a hora cuando este desocupado veo el code y lo pruebo y te digo que tal Whatever

Alguien lo probo? para seguir poniendo el resto de plugins
porque me funciona bien pero me tira el server si lo pongo sera que tengo demasiadas cosas aunque he visto servers con mas cosas que el mio por eso estoy dudando si es el code o saturacion de plugins...
Drink water my friend!
Responder
#22
(30/04/2015, 06:49 AM)waxinton7 escribió:
(21/04/2015, 04:39 PM)Nazi.- escribió: Por lo que lei seve bueno y util pero a hora cuando este desocupado veo el code y lo pruebo y te digo que tal Whatever

Alguien lo probo? para seguir poniendo el resto de plugins
porque me funciona bien pero me tira el server si lo pongo sera que tengo demasiadas cosas aunque he visto servers con mas cosas que el mio por eso estoy dudando si es el code o saturacion de plugins...
ajajajaajja saturacion dr plugins??Roflmao
[Imagen: tumblr_mt8w6d7yz11rn3500o1_400.gif]
Responder
#23
Tienes por costumbre comentar lo que te hace gracia? porque cree el tema para otra...
Drink water my friend!
Responder
#24
Estas seguro que lo hiciste vos? Estoy casi seguro que esto lo vi en otro lado..
En fin, buen plugin Sonrisa
Zombie Escape + Niveles [MP]
HNS + Niveles [MP]
FreDDy escribió:Mierda que tenes ébola en las manos que no podes escribir bien, no te entendí una mierda.
Responder
#25
No quiero entrar en quien lo creo me da igual si hay otros parecidos por hay o si lo edite yo y es una copia me da igual!!! lo que quiero es saber si funciona bien
Drink water my friend!
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)