30/07/2014, 12:51 PM
en que sentido 'le gustan los otakus' O.o ?
esta bien el sistema de habilidades este ?
tengo el de CSAxel , le quiero agregar una habilidad pero no entiendo una mierda y prefiero este xD
esta bien el sistema de habilidades este ?
Código PHP:
/*
* Descripción : Con este plugin podras obtener habilidades segun tus puntos.
* Description: With this plugin you can get abilities for your points. ( Ok soy un asco en esto del ingles jajaja )
* Changelog :
- 1.0 : Posteo del plugin ( 9/01/2013 )
- 1.1 : Arreglo de Bugs ( 11/01/2013 )
- 1.2 : Optimizacion del code ( 31/08/2013 )
* Creditos :
- Neeeeeeeeeel.-
- r0ma
*/
#include < amxmodx >
#include < amxmisc >
#include < fun >
#include < hamsandwich >
#define PLUGIN "Habilidades por puntos"
#define AUTHOR "cLAANS"
#define VERSION "1.2"
#define MaxSlotServidor 33
#define MarkBit(%1,%2) ( %1 |= ( 1 << ( %2 & 31 ) ) )
#define ClearBit(%1,%2) ( %1 &= ~ ( 1 << ( %2 & 31 ) ) )
#define IsBit(%1,%2) ( %1 & ( 1 << ( %2 & 31 ) ) )
new const TAG [ ] = "[HABILIDADES]"
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame
enum _:DATA_MEJORA
{
MEJORA_NAME[ 10 ],
MEJORA_COSTO,
MEJORA_MAX
};
new g_mejora_data[ ][ DATA_MEJORA ] =
{
{ "Vida", 10, 20 },
{ "Chaleco", 13, 10 },
{ "Velocidad", 11, 5 },
{ "Gravedad", 16, 4}
};
new g_habilidad[ MaxSlotServidor ][ 4 ];
new g_puntos[ MaxSlotServidor ];
new g_conectado;
new g_msgSayText;
#define vida(%1) (%1 * 15)
#define chaleco(%1) (%1 * 10)
#define velocidad(%1) (%1 * 0.1)
#define gravedad(%1) (%1 * 0.1)
public plugin_init( )
{
register_plugin( PLUGIN, VERSION, AUTHOR );
register_clcmd( "say /puntos" , "show_menu_puntos" );
g_msgSayText = get_user_msgid( "SayText" );
RegisterHam( Ham_Player_ResetMaxSpeed, "player", "fw_Player_ResetMaxSpeed", 1 );
RegisterHam( Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1 );
}
public client_putinserver( id ) MarkBit( g_conectado, id );
public client_disconnect( id ) ClearBit( g_conectado, id );
public fw_PlayerSpawn_Post( id )
{
if( !IsBit( g_conectado, id ) )
return HAM_IGNORED;
set_user_health( id, get_user_health( id ) + vida( g_habilidad[ id ][ 0 ] ) );
set_user_armor( id, get_user_armor(id ) + chaleco( g_habilidad[ id ][ 1 ] ) );
set_user_gravity( id, get_user_gravity( id ) - gravedad( g_habilidad[ id ][ 3 ] ) );
/*
En vez de utilizar get_user_health( id ) se podria usar el numero 100 si es que no tienen otro plugin que
Interfiera en la vida, lo mismo en la gravedad utilizando 1.0 en vez de get_user_gravity( id )
En el chaleco no ya que queda de la ronda anterior
*/
return HAM_IGNORED;
}
public fw_Player_ResetMaxSpeed( id )
set_user_maxspeed(id, get_user_maxspeed( id ) + velocidad( g_habilidad[ id ][ 2 ] ) );
public show_menu_puntos( id )
{
new iLen[ 250 ];
new hadle_puntos = menu_create("\y=============================^n\w Sistema de habilidades \d|| \wBy cLAANS ^n\y=============================^n", "hadle_puntos")
for( new i = 0; i < sizeof g_mejora_data; i++ )
{
if( g_habilidad[ id ][ i ] <= g_mejora_data[ i ][ MEJORA_MAX ] )
{
if( g_puntos[ id ] >= g_mejora_data[ i ][ MEJORA_COSTO ] )
formatex( iLen , charsmax( iLen ) , "\wAumentar : %s [%d / %d] \y[ Costo : %d P]", g_mejora_data[i][MEJORA_NAME],g_habilidad[ id ][ i ], g_mejora_data[ i ][ MEJORA_MAX ], g_mejora_data[ i ][ MEJORA_COSTO ] );
else
formatex( iLen , charsmax( iLen ) , "\dAumentar : %s [%d / %d] \r[P.Necesarios : %d]", g_mejora_data[ i ][ MEJORA_NAME ], g_habilidad[ id ][ i ], g_mejora_data[ i ][ MEJORA_MAX ], g_mejora_data[ i ][ MEJORA_COSTO ] );
if(g_habilidad[ id ][ i ] >= g_mejora_data[ i ][ MEJORA_MAX ] )
formatex( iLen , charsmax( iLen ) , "\d[%d] %s [%d / %d] \r[COMPLETADO]", i+1, g_mejora_data[ i ][ MEJORA_NAME ], g_habilidad[ id ][ i ], g_mejora_data[ i ][ MEJORA_MAX ] );
}
menu_additem( hadle_puntos , iLen );
}
menu_setprop( hadle_puntos , MPROP_EXITNAME,"\ySalir" );
menu_display( id, hadle_puntos , 0 );
return PLUGIN_HANDLED;
}
public hadle_puntos(id , menu, item)
{
menu_destroy(menu);
if (item == MENU_EXIT)
return
if(g_puntos[ id ] < g_mejora_data[ item ][ MEJORA_COSTO ] )
{
hns_print_color(id, "^x04%s^x01 Nesecitas^x03 %d^x01 puntos para mejorar^x03 %s^x01.", TAG, g_mejora_data[ item ][ MEJORA_COSTO ], g_mejora_data[ item ][ MEJORA_NAME ] );
client_cmd( id, "spk buttons/button10.wav" );
return;
}
if(g_habilidad[ id ][ item ] >= g_mejora_data[ item ][ MEJORA_MAX ] )
{
hns_print_color(id, "^x04%s^x01 Subistes el maximo de puntos para la mejora:^x03 %s^x01.", TAG, g_mejora_data[ item ][ MEJORA_NAME ] );
client_cmd( id, "spk buttons/button10.wav" );
return;
}
g_puntos[ id ] -= g_mejora_data[ item ][ MEJORA_COSTO ];
g_habilidad[ id ][ item ]++;
hns_print_color( id, "^x04%s^x01 Subistes la mejora:^x03 %s^x01 ahora tenes^x03 %d^x01 /^x03 %d^x01 completada de ella. ", TAG, g_mejora_data[ item ][ MEJORA_NAME ], g_habilidad[ id ][ item ], g_mejora_data[ item ][ MEJORA_MAX ] );
show_menu_puntos( id );
}
stock hns_print_color( id, const mensaje[ ], any:...)
{
if( !IsBit( g_conectado, id ) )
return;
static buffer[ 192 ];
vformat(buffer, charsmax(buffer), mensaje, 3);
message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, id );
write_byte( id );
write_string(buffer );
message_end( );
}
tengo el de CSAxel , le quiero agregar una habilidad pero no entiendo una mierda y prefiero este xD