Recopilacion de Stock's
#1
Bueno gente junto con saludarles esta vez quise hacer este thread para compartir stocks, ya que vi que no hay un thread asi.
bueno publicare todos los que tengo si ustedes tienen alguno pasenme para actualzar.

Cantidad de Stocks: 11

=================================================================================================================

stock drop_weapons: bota el arma del cliente

Código PHP:
//Ejemplo: 
drop_weapons(id1bota el arma primaria del cliente
drop_weapons
(id2bota el arma secundaria del cliente
//--------

stock drop_weapons(iddropwhat)
{
    static 
weapons[32], numiweaponid
    num 
0
    get_user_weapons
(idweaponsnum)
    
    const 
PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_MAC10)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_MAC10)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|
    (
1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
    
    for (
0numi++)
    {
        
weaponid weapons[i]
        
        if (
dropwhat == && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
        {
            static 
wname[32]
            
get_weaponname(weaponidwnamesizeof wname 1)
            
engclient_cmd(id"drop"wname)
        }
    }



stock count_characters: cuenta la cantidad de caracteres en un string

Código PHP:
stock count_characters(const szString[], const len sizeof(szString))
{
    new 
counti
    
    
for (leni++)
    {
        if (
isalnum(szString[i]))
            
count++
    }
    
    return 
count;



stock contain_special_characters: revisa si hay algun caracter especial para proceder a ejecutar una accion como restringir, otorgar, etc..

Código PHP:
stock contain_special_charactersid, const str[ ], const type[ ] )
{
    static 
iLen;
    
    
iLen strlenstr )
    
    for( new 
0iLeni++ )
    {
        if( !
isalphastr] ) && !isdigitstr] ) )
        {
            
client_printidprint_chat"%s Caracter especial invalido en %s: ^"%c^""TAGtypestr] );
            
console_printid"%s Caracter especial invalido en %s: ^"%c^""TAGtypestr] );
            
            return 
1;
        }
    }
    
    return 
0;



stock get_killer_weapon: obtiene el nombre del arma con la que mato por lo general se usa en eventos donde muere el player para checkear
con que arma mato y asi setear alguna condicion.

Código PHP:
//Ejemplo
static wpn[24]
get_killer_weapon(atacantepev(victimapev_dmg_inflictor), wpn23)

if(
equal(wpn"ak47")) // si el arma que mato es la ak47 en este caso no va el weapon_
//--------

stock get_killer_weapon(killerinflictorretVar[], retLen)
{
    static 
killer_weapon_name[32];
    
killer_weapon_name "world";
    
    if (
pev_valid(killer) && (pev(killerpev_flags) & FL_CLIENT))
    {
        if (
pev_valid(inflictor))
        {
            if (
inflictor == killer)
            {
                new 
weapon get_user_weapon(killer);
                
get_weaponname(weaponkiller_weapon_name31);
            }
            else 
pev(inflictorpev_classnamekiller_weapon_name31);
        }
    }
    else
    {
        if (
pev_valid(killer)) pev(inflictorpev_classnamekiller_weapon_name31);
        else if (
killer == 0killer_weapon_name "worldspawn";
        }
    
    
// Strip the monster_* or weapon_* from the inflictor's classname
    
if (equal(killer_weapon_name"weapon_"7))
        
format(killer_weapon_name31"%s"killer_weapon_name[7]);
    else if (
equal(killer_weapon_name"monster_"8))
        
format(killer_weapon_name31"%s"killer_weapon_name[8]);
    else if (
equal(killer_weapon_name"func_"5))
        
format(killer_weapon_name31"%s"killer_weapon_name[5]);
    
    
formatex(retVarretLen"%s"killer_weapon_name);
}  


stock addpointsbueno este stock en lo personal me gusta mucho ya que su funcion es agregar un punto al valor con 4 o mas digitos
(1000 -> 1.000)

[
php]

//Ejemplo:
addpoints(variable[id]) // si la variable es mas de 999 se mostraria asi 1.000 | 10.000 | 100.000 | 1.000.000, etc...
//-------

stock addpoints(number)
{
    new 
str[15], strpointed[15], len
    num_to_str
(numberstr14)
    
lenstrlen(str)
    new 
c
    
for (new i=0;i<len;i++)
    {
        if (
i!=&& ((len-i)%3==0))
        {
            
add(strpointed14"."1)
            
c++
            
add(strpointed[i+c], 1str[i], 1)
        }
        else 
add(strpointed[i+c], 1str[i], 1)
    }
    return 
strpointed



stock print_color: muestra mensajes de color tanto al cliente como a todos los clientes.

Código PHP:
//Ejemplo

print_color(id"!gMensaje de color verde para que solo el jugador lo vea")
print_color(0"!gMensaje de color verde para que todos los jugadores lo vean")

print_color(id"!yMensaje de color amarillo para que solo el jugador lo vea")
print_color(0"!yMensaje de color amarillo para que todos los jugadores lo vean")

print_color(id"!tMensaje del color del team que corresponda ct = azul | tt = rojo")
//------

stock print_color(const id, const input[], any:...) 

    static 
msg[191
    
vformat(msg190input3
    
    
replace_all(msg190"!g""^4"
    
replace_all(msg190"!y""^1"
    
replace_all(msg190"!t""^3"
    
    
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _id
    
write_byte(id
    
write_string(msg
    
message_end() 


stock fm_get_speed: obtiene la velocidad de una entidad

Código PHP:
stock fm_get_speed(entity)
{
    static 
Float:velocity[3]
    
pev(entitypev_velocityvelocity)

    return 
floatround(vector_length(velocity));



stock fm_find_ent_by_owner: Encuentra la entidad del propietario muy util cuando quieres darle cierta cantidad de disparos a
un arma

Código PHP:
//ejemplo:
cs_set_weapon_ammo(fm_find_ent_by_owner(-1"weapon_p228"id), 5); // seteamos a la entidad del arma p228 5 disparos 
//--------

stock fm_find_ent_by_owner(entity, const classname[], owner)
{
    while ((
entity engfunc(EngFunc_FindEntityByStringentity"classname"classname)) && pev(entitypev_owner) != owner) { }
    return 
entity;



stock is_player_stuck: checkea si un player esta trabado o "bugeado"

Código PHP:
stock is_player_stuck(id)
{
    static 
Float:originF[3]
    
pev(idpev_originoriginF)
                
    
engfunc(EngFunc_TraceHulloriginForiginF0, (pev(idpev_flags) & FL_DUCKING) ? HULL_HEAD HULL_HUMANid0)
                
    if (
get_tr2(0TR_StartSolid) || get_tr2(0TR_AllSolid) || !get_tr2(0TR_InOpen))
    return 
true;
                
    return 
false;



stock ham_give_weapon: da un arma al cliente

Código PHP:
//Ejemplo
ham_give_weapon(id"weapon_elite"// le da el arma elite al cliente
//-------

stock ham_give_weapon(id,weapon[])
{
    if(!
equal(weapon,"weapon_",7)) return 0;

    new 
wEnt engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,weapon));
    if(!
pev_valid(wEnt)) return 0;

    
set_pev(wEnt,pev_spawnflags,SF_NORESPAWN);
    
dllfunc(DLLFunc_Spawn,wEnt);
    
    if(!
ExecuteHamB(Ham_AddPlayerItem,id,wEnt))
    {
        if(
pev_valid(wEnt)) set_pev(wEnt,pev_flags,pev(wEnt,pev_flags) | FL_KILLME);
        return 
0;
    }

    
ExecuteHamB(Ham_Item_AttachToPlayer,wEnt,id)
    return 
1;



stock ham_strip_weapon: // le quita el arma al cliente

Código PHP:
//Ejemplo:
if(user_has_weapon(idCSW_ELITE)) ham_strip_weapon(id"weapon_elite"// si el usuario tiene el arma elite se la quita
//--------

stock ham_strip_weapon(id,weapon[])
{
    if(!
equal(weapon,"weapon_",7)) return 0;

    new 
wId get_weaponid(weapon);
    if(!
wId) return 0;

    new 
wEnt;
    while((
wEnt engfunc(EngFunc_FindEntityByString,wEnt,"classname",weapon)) && pev(wEnt,pev_owner) != id) {}
    if(!
wEnt) return 0;

    if(
get_user_weapon(id) == wIdExecuteHamB(Ham_Weapon_RetireWeapon,wEnt);

    if(!
ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)) return 0;
    
ExecuteHamB(Ham_Item_Kill,wEnt);

    
set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId));

    
// Esta parte es para la Granada/C4
    /*if(wId == CSW_C4)
    {
        cs_set_user_plant(id,0,0);
        cs_set_user_bpammo(id,CSW_C4,0);
    }
    else if(wId == CSW_SMOKEGRENADE || wId == CSW_FLASHBANG || wId == CSW_HEGRENADE)
        cs_set_user_bpammo(id,wId,0);*/

    
return 1;



stock mdlsize: detecta el tamaño de un model

Código PHP:
stock mdlsize(filename[],Float:vec[3]){ 
    new 
file fopen(filename,"rb"
    
fseek(file,160,SEEK_SET
    new 
bboff 
    fread
(file,bboff,BLOCK_INT
    
fseek(file,bboff+8,SEEK_SET
    new 
Float:size[6
    
fread_blocks(file,_:size,6,BLOCK_INT
    
fclose(file
    
vec[0]=size[3]-size[0
    
vec[1]=size[4]-size[1
    
vec[2]=size[5]-size[2



stock set_screenfade: setea un efecto luz de pantalla

Código PHP:
stock set_screenfadeidiDuracioniAlpha )
{
    
message_beginid MSG_ONE_UNRELIABLE MSG_BROADCASTget_user_msgid"ScreenFade" ), _id );
    
write_shortiDuracion 4096 );
    
write_shortiDuracion 4096 );
    
write_short0x0000 );
    
write_byterandom_num0255 ) ); // Color 1
    
write_byterandom_num0255 ) ); // Color 2
    
write_byterandom_num0255 ) ); // Color 3
    
write_byteiAlpha );
    
message_end( );
    


PD: Cualquier stock que tengan si quieren dejenlo y lo agrego para la recopilacion... saludos!
PD2: No se si estoy en la seccion correcta :c
Responder
#2
pregunta : esto :

Código PHP:
stock print_color(const id, const input[], any:...) 

    static 
msg[191
    
vformat(msg190input3
    
    
replace_all(msg190"!g""^4"
    
replace_all(msg190"!y""^1"
    
replace_all(msg190"!t""^3"
    
    
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _id
    
write_byte(id
    
write_string(msg
    
message_end() 


lo agrego al final del plug ?

una vez que lo agrege en el mensaje en vez de client_print pongo

print_color ?

otra pregunte ponele que un mod ejemplo El automix viste que cuando vos poner que estas listo dice en el say para todos "X haora esta listo" y eso como lo pongo en color ? por que veo el mensaje en el code pero es un diccionario osea algo asi

Código PHP:
client_print(0print_chat"%s %L"PREFIXLANG_PLAYER"SERVER_PASSWORD_PROTECTED 
")

eso de "server password protected" vos lo poner en un lang y eso eso como lo puedo poner todo verde ? osea por que no puedo aser esto :

Código PHP:
client_print(0print_chat"%s %L"PREFIXLANG_PLAYER"!gSERVER_PASSWORD_PROTECTED"

supongo y donde tendria que poner la "!g" ?

Gracias por tu aporte.
(10/10/2014, 06:38 PM)RauliTop escribió:
(10/10/2014, 04:40 PM)ivan escribió: no sabía que se podia poner los iconos gestuales cuando das reputacion negativa/positiva.
ui, peligro...
pronto habrán reputaciones de ivan:
hace muy muy muii DafuqYao mingGenius buenos Thats what she saidtutoriales Proud me encataan Whatever
Responder
#3
(23/03/2014, 06:54 AM)K.- escribió: pregunta : esto :

Código PHP:
stock print_color(const id, const input[], any:...) 

    static 
msg[191
    
vformat(msg190input3
    
    
replace_all(msg190"!g""^4"
    
replace_all(msg190"!y""^1"
    
replace_all(msg190"!t""^3"
    
    
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _id
    
write_byte(id
    
write_string(msg
    
message_end() 


lo agrego al final del plug ?

una vez que lo agrege en el mensaje en vez de client_print pongo

print_color ?

otra pregunte ponele que un mod ejemplo El automix viste que cuando vos poner que estas listo dice en el say para todos "X haora esta listo" y eso como lo pongo en color ? por que veo el mensaje en el code pero es un diccionario osea algo asi

Código PHP:
client_print(0print_chat"%s %L"PREFIXLANG_PLAYER"SERVER_PASSWORD_PROTECTED 
")

eso de "server password protected" vos lo poner en un lang y eso eso como lo puedo poner todo verde ? osea por que no puedo aser esto :

Código PHP:
client_print(0print_chat"%s %L"PREFIXLANG_PLAYER"!gSERVER_PASSWORD_PROTECTED"

supongo y donde tendria que poner la "!g" ?

Gracias por tu aporte.

Tenes que agregarlo en tu archivo lang que contenga la linea deseada, ejemplo: SERVER_PASSWORD_PROTECTED = !gHola !yke ase

despues en el plugin reemplazar:
Código PHP:
client_print(0print_chat"%s %L"PREFIXLANG_PLAYER"SERVER_PASSWORD_PROTECTED")
// POR ESTO -->
print_color(0"%s %L"PREFIXLANG_PLAYER"SERVER_PASSWORD_PROTECTED"
Responder
#4
fm_set_rendering
fm_get_speed
ham_give_weapon

esos stocks son inservibles y basura...

para qué utilizar los fm_ teniendo el módulo engine con set_rendering y get_speed que hace mejor el trabajo que esos stocks?

para el otro es mejor utilizar fun, give_item

el drop_weapons que pusiste está mal.

luego si eso posteo algunos
(17/04/2015, 03:36 PM)Neeeeeeeeeel.- escribió: No se va a volver a conectar a internet en toda su puta vida... nadie sube porno a mi foro y vive para contarlo.
Responder
#5
saber el size de un model:

Código PHP:
stock mdlsize(filename[],Float:vec[3]){ 
    new 
file fopen(filename,"rb"
    
fseek(file,160,SEEK_SET
    new 
bboff 
    fread
(file,bboff,BLOCK_INT
    
fseek(file,bboff+8,SEEK_SET
    new 
Float:size[6
    
fread_blocks(file,_:size,6,BLOCK_INT
    
fclose(file
    
vec[0]=size[3]-size[0
    
vec[1]=size[4]-size[1
    
vec[2]=size[5]-size[2

Ingeniero agrónomo y desarrollador de Software.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#6
Código PHP:
new g_msgScreenFade;

public 
plugin_init( )
{
    
g_msgScreenFade get_user_msgid"ScreenFade" );
    
    
register_clcmd"test""test" );
}

public 
testid set_screenfade01);

stock set_screenfadeidiDuracioniAlpha )
{
    
message_beginid MSG_ONE_UNRELIABLE MSG_BROADCASTg_msgScreenFade_id );
    
write_shortiDuracion 4096 );
    
write_shortiDuracion 4096 );
    
write_short0x0000 );
    
write_byterandom_num0255 ) ); // Color 1
    
write_byterandom_num0255 ) ); // Color 2
    
write_byterandom_num0255 ) ); // Color 3
    
write_byteiAlpha );
    
message_end( );
    


Saludos,
cLAANS.-
Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017, 09:30 PM)SoundBlaster escribió: Espera y llamo a los power rangers para que me digan la linea de error
Responder
#7
(23/03/2014, 12:19 PM)RauliTop escribió: fm_set_rendering
fm_get_speed
ham_give_weapon

esos stocks son inservibles y basura...

para qué utilizar los fm_ teniendo el módulo engine con set_rendering y get_speed que hace mejor el trabajo que esos stocks?

para el otro es mejor utilizar fun, give_item

el drop_weapons que pusiste está mal.

luego si eso posteo algunos

El stock drop_Weapons no esta malo yo lo uso lo unico que le agrege adentro es el const

el thread se llama "recopilacion de stocks" no "recopilacion de stocks con mas rendimiento"
Responder
#8
vas a destruir ram con tus super stocks
Ingeniero agrónomo y desarrollador de Software.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#9
(23/03/2014, 10:45 PM)roccoxx escribió: vas a destruir ram con tus super stocks

yo no estoy promoviendo que usen tal stock a la fuerza es una recopilacion para colocar todos los stocks que hayan y el user que quiera los usa el que quiera no.
Responder
#10
lo ideal seria no aportar entonces, si un usuario publica un stock como en tu caso el de fakemeta util te corregimos como lo hizo raul, ahi si le veo mas sentido.
Ingeniero agrónomo y desarrollador de Software.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#11
(23/03/2014, 10:31 PM)3mcy daimont escribió: El stock drop_Weapons no esta malo yo lo uso lo unico que le agrege adentro es el const

el thread se llama "recopilacion de stocks" no "recopilacion de stocks con mas rendimiento"

está mal, no le pusiste para que pueda tirar armas secundarias.

entonces dices que hay que aportar, aunque sea de la peor forma verdad?
en el mismo thread de fakemeta_util dicen que no lo utilicen, pero ahora vienes tú promoviendo su uso, ook:
https://forums.alliedmods.net/showthread.php?t=28284
(17/04/2015, 03:36 PM)Neeeeeeeeeel.- escribió: No se va a volver a conectar a internet en toda su puta vida... nadie sube porno a mi foro y vive para contarlo.
Responder
#12
el print color no tiene soporte para 0, osea mandar el mensaje a todos los jugadores
Todos los MODS VHL totalmente gratuitos  Descarga Aqui

Mis plugins:
STEAM: https://steamcommunity.com/id/Metrikcz/
FB: fb.com/rwoong
Venta plugins a pedido en México mándame MP
Responder
#13
mejor edita el título del tema por recopilacion de codigos.

dejo este link que paso kane <3 hace un ratito, la verdad que es bastante util.

http://doktor.haze.free.fr/counter-strik.../index.php
Ingeniero agrónomo y desarrollador de Software.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#14
Este que lo encuentro hermoso:

Código PHP:
stock precache_player_model(const modelname[]) 

    static 
longname[128]
    
formatex(longnamecharsmax(longname), "models/player/%s/%s.mdl"modelnamemodelname
    
precache_model(longname
         
    
copy(longname[strlen(longname)-4], charsmax(longname) - (strlen(longname)-4), "T.mdl"
    if (
file_exists(longname)) precache_model(longname


Otro para kickear descriptivamente
Código PHP:
stock DesconectarJugador(id, const szRazon[], any:...)
{
    if(!(
is_user_connected(id) || is_user_connecting(id)))
        return
        
    static 
s_Size[128]
    
vformat(s_Sizecharsmax(s_Size), szRazon3)
    
    
message_begin(MSG_ONESVC_DISCONNECT_id);
    
write_string(s_Size);
    
message_end()


Ejecutar una animación del modelo (sequences)
Código PHP:
stock StartWeaponAnim(id, const Animation )
{
    
entity_set_int(idEV_INT_weaponanimAnimation);

    
message_beginMSG_ONE_UNRELIABLESVC_WEAPONANIM, .player id );
    
write_byte(Animation)
    
write_byte(entity_get_int(idEV_INT_body))
    
message_end();


Cambiar la cantidad de luz de un jugador
Uso: set_player_light(index, "a") // Luz oscura
Código PHP:
stock set_player_light(id, const s_LightStyle[])
{
    
message_begin(MSG_ONE_UNRELIABLESVC_LIGHTSTYLE, .player id)
    
write_byte(0)
    
write_string(s_LightStyle)
    
message_end()


Precachear un sonido automaticamente si es mp3 o wav.
Código PHP:
stock precache_sound2(sound[])
{
    static 
linedata[64]
    
formatex(linedatacharsmax(linedata), "sound/%s"sound)
    
    if (
equal(sound[strlen(sound)-4], ".mp3"))
        
precache_generic(linedata)
    else
        
precache_sound(sound)


Ejecutar daño desde una entidad:
Uso: SetPlayerDamage(victim, "Pipe Bomb", attacker, 1000.0, DMG_ALLWAYSGIB)
Código PHP:
stock SetPlayerDamage(victim, const szNameEntity[], attackerFloat:f_Damagedmg_typeinflictor 0)
{
    
inflictor create_entity("trigger_hurt")
    
entity_set_string(inflictorEV_SZ_classnameszNameEntity)
        
    
ExecuteHamB(Ham_TakeDamagevictiminflictorattackerf_Damagedmg_type)
    
remove_entity(inflictor)

[Imagen: 76561197999970868.png]
Responder
#15
aca les dejo un code que hice cuando jugaba mucho al poker, es parecido al de add_points, solo que este le mete una 'k' cada 1.000 y le agrege mas cosas.

Código PHP:
/*
Params:
@num                el numero para transformar

@decimal_num            cuantos numeros despues de la coma

@dividir_cant (default 1)    segun el numero que ingresemos podemos elegir con cuantos numeros antes de
                la coma queramos.
                
@return                devuelve una string

eg: con el numero 120 000 000

new inum = 120000000

1,20kk        = signo_poker(inum, 2, 1)
12,0kk        = signo_poker(inum, 1, 2))
12,000kk    = signo_poker(inum, 3, 2))
1,200kk        = signo_poker(inum, 3, 1))

*/

stock signo_poker(numdecimal_numdividir_cant=1)
{
    new 
poker[15], num_str[33]
    
num_to_str(numnum_strcharsmax(num_str))
    
    if (
strlen(num_str) < 4)
        
formatex(pokercharsmax(poker), num_str)
    else
    {
        new 
Float:res float(num) / ( floatpower10.0 float( ( strlennum_str ) - dividir_cant ) ) ) )
        
        if (
decimal_num == 1)
            
formatex(pokercharsmax(poker), "%.1f%s"res, (strlen(num_str) >= 6) ? "kk" "k")
        else if (
decimal_num == 2)
            
formatex(pokercharsmax(poker), "%.2f%s"res, (strlen(num_str) >= 6) ? "kk" "k")
        else
            
formatex(pokercharsmax(poker), "%.3f%s"res, (strlen(num_str) >= 6) ? "kk" "k")
        
        
replace(pokercharsmax(poker), "."",")
    }
    
    return 
poker;

Espero que les guste
(19/06/2014, 11:08 PM)01011001 escribió: No tiene niveles infinitos, llega hasta 2147483648 (Y despues hace un integer overflow)

(19/06/2014, 11:08 PM)[R]ak escribió: Mis conocimientos aumentaron un 500% con este post
Responder
#16
Código PHP:
screen_fades(id1+, 0-2550-2550-2550-2550-1)

stock screen_fades(idiDuracionredgreenblueAlphaRandom)
{
    
message_beginid MSG_ONE_UNRELIABLE MSG_BROADCASTget_user_msgid"ScreenFade" ), _id );
    
write_shortiDuracion 4096 );
    
write_shortiDuracion 4096 );
    
write_short(0x0000)
    
    if(!
Random)
    {
        
write_byte(red)
        
write_byte(green)
        
write_byte(blue)
    }
    else
    {
        
write_byterandom_num0255 ) ); // Color 1
        
write_byterandom_num0255 ) ); // Color 2
        
write_byterandom_num0255 ) ); // Color 3
    
}
    
write_byte(Alpha)
    
message_end()

Responder
#17
Maybe this:

Saber si apretó shift :3

Código PHP:
stock bool:userShift(id)
    return ( 
pev(id,pev_gaitsequence) == 3); 

FUENTE: DarkGL
Responder
#18
Originalmente era una función que vi en C
Código PHP:
stock Float32ToInt24( const Float:f)
{
    new 
_:f
    
    
new negative = ((>> 31) & 0x1        )            ; // 0x10000000
    
new exponent = ((>> 23) &  0xFF      )            ; // 0x7F800000
    
new mantissa = ((>>  0) &    0x7FFFFF) | 0x800000 // 0x007FFFFF implicit bit
    
new i        mantissa >> (22 - (exponent 0x80));
    
    if(!
exponent)
        return 
0
    
if(negative)
        return -
i

        
return  i


Este macro lo arme para dejar solo el entero de un float (solo num +)
Código PHP:
#define RemoveFloat(%1) ((((_:%1>> 0)&0x7FFFFF)|0x800000)>>(22-(((_:%1>>23)& 0xFF)-0x80))) 

____________________________________________________________________


Imprime los 32 bits de una variable
Código PHP:
stock PrintBites(num)
{
    new 
buff[40]
    for(new 
ic32i++)
    {
        
buff[c++] = (num & (1<<31-i))?'1':'0'
        
        
if(31 && (1) % == 0)
            
buff[c++] = ' '
    
}
    
    
server_print("decimal: [%d] - bits: [%s]"numbuff)


____________________________________________________________________


Almacenar numero muy altos que sobrepasa la capacidad de un entero
Código PHP:
enum _:_BIG_INT
{
    
_Least,
    
_Most
}

public 
plugin_init()
{
    new 
bignum[_BIG_INT], sznum[20]
    
    
BigInt_Load("999999999999999"bignum)
    
BigInt_Add(50000000bignum)
    
BigInt_Save(bignumsznum19)
    
    
server_print("Prueba: %s"sznum)
}

stock BigInt_Add(NumberBigNum[])
{
    
#define LEAST_LIMIT 0999999999
    
if((BigNum[_Least] + Number) <= LEAST_LIMIT)
        
BigNum[_Least] += Number
    
else {
        
BigNum[_Most]++
        
Number = (BigNum[_Least] + Number) - LEAST_LIMIT-1
        BigNum
[_Least] = Number
    
}
}

stock BigInt_Save(BigNum[], szNumber[], iLen)
{
    if(!
BigNum[_Most])
    {
        
num_to_str(BigNum[_Least], szNumberiLen)
        return
    }
    static const 
zero[] = "000000000"
    
    
new szLeast[11], iCount
    iCount 
num_to_str(BigNum[_Least], szLeast10)
    
    
formatex(szNumberiLen"%d%s%s"BigNum[_Most], zero[iCount], szLeast)
}

stock BigInt_Load(const szNumber[], BigNum[])
{
    new 
iLen strlen(szNumber)
    
    if(
iLen <= 9)
    {
        
BigNum[_Least] = str_to_num(szNumber)
        return
    }
    
    new 
szTemp[11]
    
copy(szTempiLen-9szNumber)
    
    
BigNum[_Least] = str_to_num(szNumber[iLen-9])
    
BigNum[_Most] = str_to_num(szTemp)


____________________________________________________________________


Otro tipo de print center (el color depende de la cvar con_color del cliente)
Código PHP:
stock center_print(id, const input[], any:...)
{
    new 
buff[128]

    if(
numargs() == 2)
        
copy(buffcharsmax(buff), input)
    else    
vformat(buffcharsmax(buff), input3)

    if(
id)
    {
        if(
is_user_connected(id))
            
engfunc(EngFunc_ClientPrintfid1buff)
        return
    }
    
    new 
count 1players[32], i
    get_players
(playerscount"ch")
    for(
0counti++)
        
engfunc(EngFunc_ClientPrintfplayers[i], 1buff)


____________________________________________________________________


Enviá al o a los clientes la información básica sobre un jugador. (Con esto el cliente sabe el nombre de cada player para mostrar en los huds (scoreboard, deathmsg, etc), también de acá se obtiene el model que utiliza el jugador)
Código PHP:
stock send_userinfo(idplayername[], model[])
{
    new 
info[64]
    
formatex(info63"\name\%s\model\%s\", name, model)
        
    message_begin(id?MSG_ONE:MSG_ALL, SVC_UPDATEUSERINFO, _, id)
    write_byte(player-1) 
    write_long(get_user_userid(player))
    write_string(info)
    write_long(0)
    write_long(0)
    write_long(0)
    write_long(0)
    message_end()

Responder
#19
Código PHP:
stock UnixToString(const TimeUnix) {
    new 
sBuffer[64];
    
sBuffer[0] = EOS;
    
    if(!
TimeUnix) {
        return 
sBuffer;
    }
    
    new const 
sMonths[][] = {
        
"Enero",
        
"Febrero",
        
"Marzo",
        
"Abril",
        
"Mayo",
        
"Junio",
        
"Julio",
        
"Agosto",
        
"Septiembre",
        
"Octubre",
        
"Noviembre",
        
"Diciembre"
    
};
    
    new 
iYear;
    new 
iMonth;
    new 
iDay;
    new 
iHour;
    new 
iMinute;
    new 
iSecond;
    
    
UnixToTime(TimeUnixiYeariMonthiDayiHouriMinuteiSecondUT_TIMEZONE_SERVER);    
    
formatex(sBuffercharsmax(sBuffer), "%02d de %s de %d - %02d:%02d:%02d"iDaysMonths[iMonth-1], iYeariHouriMinuteiSecond);
    
    return 
sBuffer;


Sirve para pasar el famoso "UnixTime" a una string detallada (nada complicado).

Código PHP:
server_print("%s"UnixToString(get_systime()));
/* Ejemplo: 15 de Junio de 2015 - 01:15:53 */ 



Código PHP:
stock CalculateTime(const TimeUnix) {
    new 
sBuffer[25];
    
sBuffer[0] = EOS;
    
    if(!
TimeUnix) {
        return 
sBuffer;
    }
    
    new const 
szUnidad[][] = {"año""mes""día""hora""minuto"};
    new const 
szPlural[][] = {"s""es""s""s""s"};
    new const 
szDividir[] = {31536000259200086400360060}; /*60*60*24*365, 60*60*24*30, 60*60*24, 60*60, 60*/
    
    
new TimeToCalculate;
    new 
i;
    
    
TimeToCalculate    get_systime() - TimeUnix;    
    
    for(
0sizeof(szDividir); ++i) {
        if(
TimeToCalculate >= szDividir[i]) {
            new 
num = (TimeToCalculate szDividir[i]);
            
            if (!
num) {
                
sBuffer[0] = EOS;
            }
            else {
                
formatex(sBuffercharsmax(sBuffer), "(Hace %d %s%s)"numszUnidad[i], num == "" szPlural[i]);
            }
            
            break;
        }
    }
    
    return 
sBuffer;


Sirve para calcular cuanto tiempo pasó desde el "UnixTime" que le asignemos hasta la fecha en la que se calcula.

Código PHP:
server_print("%s"CalculateTime(get_systime() - 60));
/* Ejemplo: (Hace 1 minuto) */ 

Este stock le doy los créditos a Neeeeeeeeeel.- ya que el creo este pequeño sistemita, yo solo lo convertí en stock.
Believe, be yourself and don't hold on to just one dream ❤

https://github.com/FEDERICOMB96
Responder
#20
Algo simple pacman

Código PHP:
stock percent(NumPercent)
{
    new 
Valor;Valor Num Percent 100
    
return Valor;


Ejemplos de uso:

Código PHP:
static ValorValor 1500
client_print
(0print_chat"El 5% de %d es: %d"Valorpercent(Valor5))
client_print(0print_chat"El 10% de %d es: %d"Valorpercent(Valor10))
client_print(0print_chat"El 75% de %d es: %d"Valorpercent(Valor75)) 

Código PHP:
client_print(0print_chat"El 35% de %d es: %d"g_kills[id], percent(g_kills[id], 35)) 
Responder
#21
Estaba re haciendo mi sistema de combos, entonces:

Código PHP:
stock addpoints(num) {
    new 
res[15], ic;
    static 
str[15], len;

    for(
len num_to_str(numstr14); leni++) {
        
&& (len i) % == && (res[c++] = '.');
        
res[c++] = str[i];
    }

    return 
res;


+36.66% rápido.
Responder
#22
Edit: no es mio.
Código PHP:
stock AddComasNum )
{
    new 
szNum[15];
    
num_to_strNumszNum14 );
    
    
    if( 
strlen(szNum] ) && !strlen(szNum] ) )
    {
        
szNum10 ] = szNum];
        
szNum] = szNum];
        
szNum] = szNum];
        
szNum] = szNum];
        
szNum] = szNum];        
        
szNum] = szNum];
        
szNum] = szNum3];
        
szNum] = szNum];
        
szNum] = szNum];
        
szNum] = '.';
        
szNum] = '.';
    }
    else if( 
strlen(szNum] ))
    {
        
szNum] = szNum];
        
szNum] = szNum];
        
szNum] = szNum];
        
szNum] = '.';
    }
    else if( 
strlen(szNum] ))
    {
        
szNum] = szNum];
        
szNum] = szNum];
        
szNum] = szNum];
        
szNum] = '.';
    }
    else if( 
strlen(szNum] ))
    {
        
szNum] = szNum3];
        
szNum] = szNum];
        
szNum] = szNum];
        
szNum] = '.';
    }    
    
    return 
szNum;

Responder
#23
Competitive/Face it Pick Up Game (PUG) servidor de prueba: 45.77.94.109:27016 Click para Entrar
[Imagen: b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png]

(14/08/2015, 10:15 PM)Sugisaki escribió: "El mundo es caotico, irracional e injusto. No tiene ningun significado"
Palabras que desde hace mucho tiempo he buscado para describir, ¿Que es el mundo?
Crab

Código PHP:
if(ayuda && free)
{
    exit();

Responder
#24
(11/08/2018, 10:42 PM)Niper.-. escribió: Edit: no es mio.
Código PHP:
stock AddComasNum )
{
    new 
szNum[15];
    
num_to_strNumszNum14 );
    
    
    if( 
strlen(szNum] ) && !strlen(szNum] ) )
    {
        
szNum10 ] = szNum];
        
szNum] = szNum];
        
szNum] = szNum];
        
szNum] = szNum];
        
szNum] = szNum];        
        
szNum] = szNum];
        
szNum] = szNum3];
        
szNum] = szNum];
        
szNum] = szNum];
        
szNum] = '.';
        
szNum] = '.';
    }
    else if( 
strlen(szNum] ))
    {
        
szNum] = szNum];
        
szNum] = szNum];
        
szNum] = szNum];
        
szNum] = '.';
    }
    else if( 
strlen(szNum] ))
    {
        
szNum] = szNum];
        
szNum] = szNum];
        
szNum] = szNum];
        
szNum] = '.';
    }
    else if( 
strlen(szNum] ))
    {
        
szNum] = szNum3];
        
szNum] = szNum];
        
szNum] = szNum];
        
szNum] = '.';
    }    
    
    return 
szNum;


Código PHP:
server_print("%s"AddComas(1)); // 1
server_print("%s"AddComas(11)); // 11
server_print("%s"AddComas(111)); // 111
server_print("%s"AddComas(1111)); // 1.111
server_print("%s"AddComas(11111)); // 11.111
server_print("%s"AddComas(111111)); // 111.111
server_print("%s"AddComas(1111111)); // 1.111.11 (err)
server_print("%s"AddComas(11111111)); // 111.1111 (err)
server_print("%s"AddComas(111111111)); // 111.11111 (err)
server_print("%s"AddComas(1111111111)); // 111.111111 (err)
server_print("%s"AddComas(11111111111)); // -17.737077 

De todas formas, yo lo iba a hacer de esa manera pero creí que a nadie le iba a gustar :p

Edit:
Hice un stock de esa forma pero mejor, el rendimiento es variable entre ~12%-15% y el código no se ve muy bonito, no creo que valga la pena. Es decir:
Código PHP:
for(new 030000000i++) {
    
AddComas(1500);
    
AddComas(10000000);

Ese 12%-15% no es visible ni con 10k de players disparando al mismo tiempo (y sólo tienes a 32 a la vez) :p
Mejor usar el primero que publiqué, es más simple y razonable.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)