Sistema de Habilidades v4.0
Descripción:
- Plugin que contiene atributos (Habilidades) a aumentar para cada jugador, ya sea, vida, velocidad, gravedad o daño.
- Se puede modificar su nivel máximo, costo y valor de aumento en una constante (Se explica más abajo)
- Cuenta con un guardado si es que lo desean utilizar
- Se puede modificar su nivel máximo, costo y valor de aumento en una constante (Se explica más abajo)
- Cuenta con un guardado si es que lo desean utilizar
Librerías:
Código PHP:
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <colorchat>
#include <api_oldmenu>
#include <adv_vault>
hab_enabled <1/0>: [Default: 1]
- Habilitar/Deshabilitar plugin
hab_points_win: [Default: 2]
- Cantidad de puntos que gana un jugador al matar 'x' veces
hab_round_k_points_win: [Default: 3]
- Cantidad de puntos que gana un jugador al matar 'x' veces en una ronda
hab_round_points_win: [Default: 3]
- Cantidad de puntos que gana si sobrevive la ronda
hab_kill: [Default: 3]
- Cantidad de matados para ganar puntos
hab_round_kill: [Default: 6]
- Cantidad de matados por ronda para ganar puntos
hab_hookear_menu <1/0>; [Default: 1]
- Habilitar/Deshabilitar el menú de habilidades en la selección de equipos
hab_enabled_vault <1/0>: [Default: 1]
- Habilitar/Deshabilitar el guardado de habilidades y puntos
hab_enabled_steam <1/0>: [Default: 1]
- Habilitar/Deshabilitar el guardado por SteamID. Si está en 1, guarda por SteamID, si está en 0, guarda por nombre.
Más variables y constantes a editar
- Habilitar/Deshabilitar plugin
hab_points_win: [Default: 2]
- Cantidad de puntos que gana un jugador al matar 'x' veces
hab_round_k_points_win: [Default: 3]
- Cantidad de puntos que gana un jugador al matar 'x' veces en una ronda
hab_round_points_win: [Default: 3]
- Cantidad de puntos que gana si sobrevive la ronda
hab_kill: [Default: 3]
- Cantidad de matados para ganar puntos
hab_round_kill: [Default: 6]
- Cantidad de matados por ronda para ganar puntos
hab_hookear_menu <1/0>; [Default: 1]
- Habilitar/Deshabilitar el menú de habilidades en la selección de equipos
hab_enabled_vault <1/0>: [Default: 1]
- Habilitar/Deshabilitar el guardado de habilidades y puntos
hab_enabled_steam <1/0>: [Default: 1]
- Habilitar/Deshabilitar el guardado por SteamID. Si está en 1, guarda por SteamID, si está en 0, guarda por nombre.
Más variables y constantes a editar
Código PHP:
/** Prefijo que aparece en cada inicio de un Chat
ACLARACIÖN: No remover ^x04 que es un prefijo para el color verde en el chat **/
new const g_sPrefix[] = "^x04[HAB]";
/** Nombre para la base de datos del guardado **/
new const g_sVault_Name[] = "Hab_Vault";
/** Constante modificable para las habilidades **/
new const g_sHabilities[DATA_HAB_ID][DATA_HAB] =
{
/** Nombre Costo Nivel Máximo **/
{ "Vida", 5, 5, 15 },
{ "Velocidad", 4, 1, 10 },
{ "Gravedad", 4, 5, 10 },
{ "Daño", 8, 5, 25 }
};
/** Cantidad de jugadores MÍNIMA para ganar puntos al matar o al terminar la ronda **/
const MIN_PLAYED_ONLINE = 6;
/** Cantidad de PUNTOS que se necesita para restaurar los mismos **/
const RESET_HAB_COST = 15;
/** Acceso | Bandera | Flag de administrador que se necesita para lso comandos **/
const ADMIN_COMMAND_ACCESS = ADMIN_RCON;
Código:
v4.0
- Se agregó un guardado (Adv_Vault) para las habilidades
- Se removieron algunas habilidades innecesarias
- Optimización de todo el código
- Fix bugs
-------------------------
v3.0
- Agregado: #pragma semicolon
- Agregado: Constante que guarda el prefijo
- Agregado: Constante que guarda el MÍNIMO de jugadores online
- Agregado: Macro is_user_playng
- Agregado: Evento (HLTV) RoundStart
- Agregado: client_disconnect y client_infochanged
- Agregado: Variables globales (g_iMenus y g_szText)
- Agregado: Constante donde guarda la vida actual
- Agregado: Librería fun (Junto a sus funciones)
- Removido: gCvar_prefijo
- Removido: FM_ClientDisconnect y FM_ClientUserInfoChanged
- Removido: Cvars innecesarias
- Removido: Código innecesario
- Removido: Librería fakemeta (Junto a sus funciones)
- Fixeado: gCvar_enable
- Fixeado: Constante MAX_HAB
- Fixeado: ChatColor
- Fixeado: Variables, constantes, y macros
- Fixeado: Ham_PlayerKilled
- Fixeado: Ham_PlayerTakeDamage
- Fixeado: Ham_Player_ResetMaxSpeed
- Fixeado: ClcmdTeam
- Fixeado: ClcmdHab
- Fixeado: Menú de resetear habilidades
- Fixeado: RoundEnd
- Fixeado: Menu callback: Resetear
- Fixeado: client_infochanged
- Fixeado: Todos los menues
-------------------------
v2.7
- Modificado; Función fw_TakeDamage
- Modificado: Variable gRonda
- Modificado: Variables del menú
- Modificado: CVAR: hab_enable
- Modificado: RoundRnd
- Agregado: 2 nuevas CVARS
- Removido: Mucho código innecesario
-------------------------
v2.6
- Modificado: Función fw_TakeDamage
- Modificado: Función fw_PlayerKilled
- Modificado: Uuuuuuuuuuuna vez más los menues e.e
- Modificado: Evento RoundEnd
- Removido: Prefijo: TAG
- Fixed: Matados por ronda en fw_PlayerKilled
- Fixed: Reseteo de habilidades
- Agregado: Nuevo prefijo
- Agregado: 2 nuevas CVARS
- Agregado: Una nueva varaible
-------------------------
v2.5
- Modificado: Re-codeado la mayoría del plugin
- Modificado: Función Ham_PlayerKilled
- Modificado: Menú de habilidades
- Modificado: Menú de aumentar habilidades
- Modificado: Menú de resetear habilidades
- Modificado: Funciones fw_PlayerKilled y fw_TakeDamage
- Modificado: Evento RoundEnd
- Fixed: Daño y resistencia
- Removido: Forward client_dissconnect y client_infochange
- Removido: Los loop en client_putinserver
- Removido: Funciones y librero fun
- Removido: Algunas variables innecesarias
- Agregado: arrayset (Reemplazando los loop en client_putinserver)
- Agregado: FM_ClientDisconnect y FM_ClientUserInfoChanged
- Agregado: Natives de fakemeta (Vida, Chaleco, Gravedad, etc)
- Agregado: Más stocks de fakemeta_util
- Agregado: 2 nuevas cvars
- Agregado: MenuCallBack a la mayoría de los menues
-------------------------
v2.0.1
- Modificado: Mensajes en say
-------------------------
v2.0
- Modificado: Todo el código y más optimizado
- Modificado: Algunos textos en los chats y menues
- Agregado: Ganancia de puntos. Cada 5 matados ganas 1 punto. Cada 3 matados por ronda ganas 2 puntos. Si sobrevivis a una ronda ganas 2 puntos.
- Agregado: Opcion "Resetear Habilidades" al menú de Habilidades. Antes no podía por un bug en el menú
- Agregado: Callbacks en la opcion al resetear habilidades
- Agregado: ChatColor
- Fixeado: Algunos bugs en el plugin
- Removido: Menú para que los admines den puntos
- Removidos: Comandos del say /reset y /set
-------------------------
v1.2.5
- Modificado: Sistema de costo
- Modificado: Varias condiciones internas del plugin
- Arreglado: Errores de menues
- Arreglado: Sistema de costo (Aumentaba cualquier habilidad aunque no tengas puntos)
-------------------------
v1.2
- Agregado: Sistema de costos por habilidad (Optimizado)
- Arreglado: Un error en varios menus (Fucking titulo :c)
- Arreglado: Un error en el calculo al aumentar una habilidad al maximo
- Eliminado: La parte de HABILIDAD DEFAULT: Por un tema de que quiero plantear un sistema pero con esto se hace un problema. Asi que lo elimine hasta que pueda hacer otra cosa
- Eliminado: Algunas variables inecesarias
- Eliminado: Menu de Informacion
- Eliminado: Stock PrintColor
- Eliminado: Cvars de costo por habilidad
-------------------------
v1.1
- Agregado: Sistema de bits para las variables gConectado y gVivo
- Agregado: Algunos prints o mensajes
- Correjido: Un bug interno al aumentar al maximo una habilidad (Menu de mierda :C)
- Eliminado: Mensajes al azar
-------------------------
v1.0.4
- Agregado: Ya no se puede cambiarse el nombre dentro del juego
- Agregado: Una constante para definir el maximo de las habilidades
- Agregado: La version en el titulo del menu
- Arreglado: Un bug en el menu de resetear
-------------------------
v1.0
- Lanzamiento del plugin
Para agregar una habilidad solo hay que hacer lo siguiente:
Supongamos que queremos agregar una habilidad de chaleco.
Primero agregaremos una habilidad o número o valor a las siguientes instrucciones
Ahora vamos a setear el chaleco y crear una función para el mismo
Eso es todo, es muy fácil hacerlo, y si quieren agregar una habilidad, por ejemplo.
Tiempo de congelación, Resistencia, Velocidad de disparo, tienen que tener un conocimiento más avanzado para este tipo de habilidades, así no tienen problemas al agregarlos.
Supongamos que queremos agregar una habilidad de chaleco.
Primero agregaremos una habilidad o número o valor a las siguientes instrucciones
Código PHP:
enum _:DATA_HAB_ID
{
HAB_HEALTH = 0,
HAB_SPEED,
HAB_GRAVITY,
HAB_DAMAGE, /** Siempre una coma si vamos a añadir alguna habilidad **/
HAB_ARMOR
/** Acá guardamos un vector o matriz para las variables que almacenen los valores y datos de las habilidades **/
};
new const g_sHabilities[DATA_HAB_ID][DATA_HAB] =
{
/** Nombre Costo Valor Máximo **/
{ "Vida", 5, 5, 15 },
{ "Velocidad", 4, 2, 10 },
{ "Gravedad", 4, 1, 10 },
{ "Daño", 8, 5, 25 },
/** Como dijimos arriba, agregamos una coma al agregar una habilidad **/
{ "Chaleco", 6, 10, 20 },
/** Agregamos el nombre "Chaleco" para que aparezca en el menú
El costo de la habilidad será 6 (Se multiplica por el nivel de habilidad actual)
El valor (Es decir lo que aumentará en el atributo deseado) iría la cantidad que vamos a aumentar el chaleco por nivel de habilidad
El máximo de habilidad lo dejamos en 20, que sería el límite del nivel de habilidad (10 * 20 = 200 de chaleco si llegas al nivel máximo) **/
};
Ahora vamos a setear el chaleco y crear una función para el mismo
Código PHP:
/** Nos vamos a Ham_PlayerSpawn_Post, así cuando renace ya tiene su chaleco y agregamos esto **/
set_user_armor(id, fnHability_Armor(id));
/** La función fnHability_Armor es la que vamos a crear ahora
Esa función devolverá el valor de cuanto chaleco nos dará dependiendo el nivel de la habilidad **/
public fnHability_Armor(const id)
{
static iArmor, iHab;
iHab = g_iHabilities[id][HAB_ARMOR]; /** HAB_ARMOR es lo que habíamos agregado anteriormente para identificar la habilidad del chaleco **/
iArmor = 0;
if (iHab) /** Si su nivel de habilidad es positivo (Es decir, 1 en adelante) **/
iArmor += g_sHabilities[HAB_ARMOR][DATA_HAB_VALUE] * iHab;
/** Esto calcula lo siguiente: Toma el valor de habilidad por nivel y lo multiplica
por el nivel de habilidad actual y lo va sumando a medida que va subiendo de
nivel la habilida **/
return iArmor; /** Le devolvemos el valor del chaleco calculado **/
};
Tiempo de congelación, Resistencia, Velocidad de disparo, tienen que tener un conocimiento más avanzado para este tipo de habilidades, así no tienen problemas al agregarlos.
- Gonza.-*
- [Anti]
- mongito100
- Zonejo
- Federcomb
- cLANNS
- Mario.AR
- KISKE
- [Anti]
- mongito100
- Zonejo
- Federcomb
- cLANNS
- Mario.AR
- KISKE
En las habilidades Velocidad y Gravedad se calcula en una función para cada uno, en especial la gravedad.
Para calcular la gravedad toma el valor que está en g_sHabilities (En donde dice "Valor") y lo divide por 166.666666 (Gracias KISKE) y lo multiplica por el nivel de habilidad actual. A este resultado lo resta y lo setea como gravedad.
En la velocidad es lo mismo pero lo divide por 2.0.
Si deseas tener menos o más gravedad, te recomiendo que agarres la calculadora y calcules el valor que le vas a dar en g_sHabilities y lo divides por, ya sea gravedad 166.666666 o velocidad 2.0
Para calcular la gravedad toma el valor que está en g_sHabilities (En donde dice "Valor") y lo divide por 166.666666 (Gracias KISKE) y lo multiplica por el nivel de habilidad actual. A este resultado lo resta y lo setea como gravedad.
En la velocidad es lo mismo pero lo divide por 2.0.
Si deseas tener menos o más gravedad, te recomiendo que agarres la calculadora y calcules el valor que le vas a dar en g_sHabilities y lo divides por, ya sea gravedad 166.666666 o velocidad 2.0
api_habilities.inc (Tamaño: 321 bytes / Descargas: 299)
Descargar AMXX / SysHability.sma (Tamaño: 24.46 KB / Descargas: 745)
Saludos y gracias por tomarse su tiempo!
Free agent - Vendo plugins, mods o apps del foro IPB (Invision community)
Contactarme vía Discord >>> AtselTV#8202
Contactarme vía Discord >>> AtselTV#8202