24/11/2018, 07:52 PM (Última modificación: 05/12/2018, 05:33 PM por Skylar. Edited 9 times in total.)
AUTOR: Skylar VERSIÓN: 2.1 CRÉDITOS:
Tano (Idea del modo - usuario de otro foro)
TioWinny (Mapa del modo - usuario de otro foro)
Totopizza (Mejoras de algunas funciones)
Hypnotize (Mejoras de algunas funciones)
DESCRIPCIÓN: El modo está basado en el juego Super Smash Bros en el cual se enfrentan 2 jugadores en una plataforma aérea y gana el que le quite toda la vida al enemigo o el que logra tirar al enemigo de la plataforma.
La diferencia de este modo con el juego, es que en la plataforma aérea se enfrentan todos contra todos y cuentan con cuchillo, 250 de vida y dos habilidades.
HABILIDADES:
Doble Salto (Máximo de saltos configurables por cvars)
Empujar (Esta habilidad se utiliza con el click izquierdo[click primario])
CVARS:
sm_mod_active(default 1 - cualquier valor diferente a 0 activa el mod ) - activar/desactivar modo.
sm_min_players(default 2) - mínimo de jugadores que se requieren para comenzar el modo.
sm_health(default 250) - vida de los usuarios.
sm_radius(default 150.0) - radio en el que se puede empujar a los enemigos.
sm_maxjumps(default 1) - cantidad de saltos que el usuario puede dar.
sm_time_hability(default 3.0) - conteo en el que se puede usar la habilidad empujar.
25/11/2018, 02:01 AM (Última modificación: 25/11/2018, 02:01 AM por Skylar. Edited 1 time in total.)
(24/11/2018, 09:38 PM)kikizon2 escribió: Si tienes como requerimiento AMX 1.8.3 deberias de poner soporte para 1.8.2, ademas de utilizar el print color de amx 1.8.3.
En fnShowhud vuelves a obtener el nombre, aunque ya este cacheado en una variable.
Lo vi por encima y solo eso encontre, aunque tambien podrias hacerlo exclusivo para amx 1.9 asi se empieza a utilizar mas xd
Listo, gracias
Lo armé en amx 1.9, se me olvidó y anoté 1.8.3, la costumbre
Mas adelante le agrego soporte para 1.8.2.
25/11/2018, 04:43 PM (Última modificación: 25/11/2018, 05:03 PM por w0w. Edited 1 time in total.)
Si usas AMXX >= 1.8.3 deberías usar:
Código:
for( new i = 1; i < g_MaxPlayers; i++ )
->
Código:
for( new i = 1; i <= MaxClients; i++ )
Además, creo que es mejor usar create_cvar + bind_pcvar_num. Después, podrás usar AutoExecConfig también.. Puedes ver un ejemplo aquí: Shield Teleport v1.0. Usando esto no hara faltá usar más get_pcvar_*.
Código:
new bool:g_DoJump[ 33 ] = false;
->
Código:
new bool:g_DoJump[ MAX_PLAYERS+1 ];
Constantes (asi con todas las demás variables) + no hace falta poner false porque es false desde el principio.
Formateamos g_PlayerName solo una vez, y si el jugador cambia de nombre? Además, con el AMXX >= 1.8.3 apenas hay que usar get_user_name u otra cosa para saber el nombre del usuario. Tenemos "%n".
Ejemplo:
Código:
client_print(0, print_chat, "Name of the player: %n", id);
25/11/2018, 04:53 PM (Última modificación: 25/11/2018, 05:05 PM por Hinami. Edited 3 times in total.)
(25/11/2018, 04:43 PM)w0w escribió: If you use AMXX >= 1.8.3 you should change it:
Código:
for( new i = 1; i < g_MaxPlayers; i++ )
->
Código:
for( new i = 1; i <= MaxClients; i++ )
Moreover, I think it's better to use create_cvar + bind_pcvar_num. Then, you can use AutoExecConfig, too. You can see an example here: Shield Teleport v1.0. By using it you don't need to use always get_pcvar_*.
Código:
new bool:g_DoJump[ 33 ] = false;
->
Código:
new bool:g_DoJump[ MAX_PLAYERS+1 ];
Constantes (asi con todas las demás variables) + no hace falta poner false porque es false desde el principio.
Formateamos g_PlayerName solo una vez, y si el jugador cambia de nombre? Además, con el AMXX >= 1.8.3 apenas hay que usar get_user_name u otra cosa para saber el nombre del usuario. Tenemos "%n".
Ejemplo:
Código:
client_print(0, print_chat, "Name of the player: %n", id);
25/11/2018, 04:59 PM (Última modificación: 25/11/2018, 05:04 PM por w0w. Edited 4 times in total.)
(25/11/2018, 04:53 PM)Hypnotize escribió:
(25/11/2018, 04:43 PM)w0w escribió: If you use AMXX >= 1.8.3 you should change it:
Código:
for( new i = 1; i < g_MaxPlayers; i++ )
->
Código:
for( new i = 1; i <= MaxClients; i++ )
Moreover, I think it's better to use create_cvar + bind_pcvar_num. Then, you can use AutoExecConfig, too. You can see an example here: Shield Teleport v1.0. By using it you don't need to use always get_pcvar_*.
Código:
new bool:g_DoJump[ 33 ] = false;
->
Código:
new bool:g_DoJump[ MAX_PLAYERS+1 ];
Constantes (asi con todas las demás variables) + no hace falta poner false porque es false desde el principio.
Formateamos g_PlayerName solo una vez, y si el jugador cambia de nombre? Además, con el AMXX >= 1.8.3 apenas hay que usar get_user_name u otra cosa para saber el nombre del usuario. Tenemos "%n".
Ejemplo:
Código:
client_print(0, print_chat, "Name of the player: %n", id);
No hace falta poner "== true" al igual que "== false". Para false sería por ejemplo "if(!g_DoJump)"
Código:
iName[ 32 ]
->
Código:
szName[ MAX_NAME_LENGTH ]
Constantes + correcto nombre (i = int = número entero).
Al menos para mi es lo mismo
SI quiere poner == o no da lo mismo, cada quien programa a gusto
I = integer
sz = del string
pero como dije arriba si el quiere programar así déjalo, aunque esta muy bien tu consejo
PD; esto es un foro en ESPAÑOL
Simplemente consejos para que el código sea mejor. Por eso mismo he dicho lo de i y sz. En este caso sería szName y no iName u otra cosa porque es una string.
¿Qué significa que el foro es en español? ¿He hecho algo malo ?
PD: Ya me di cuenta, me entretuve y empecé a escribir en inglés : D. Ya lo he cambiado.
(25/11/2018, 07:43 PM)angel escribió: excelente mod lo probare
Gracias
(25/11/2018, 04:59 PM)w0w escribió:
(25/11/2018, 04:53 PM)Hypnotize escribió:
(25/11/2018, 04:43 PM)w0w escribió: If you use AMXX >= 1.8.3 you should change it:
Código:
for( new i = 1; i < g_MaxPlayers; i++ )
->
Código:
for( new i = 1; i <= MaxClients; i++ )
Moreover, I think it's better to use create_cvar + bind_pcvar_num. Then, you can use AutoExecConfig, too. You can see an example here: Shield Teleport v1.0. By using it you don't need to use always get_pcvar_*.
Código:
new bool:g_DoJump[ 33 ] = false;
->
Código:
new bool:g_DoJump[ MAX_PLAYERS+1 ];
Constantes (asi con todas las demás variables) + no hace falta poner false porque es false desde el principio.
Formateamos g_PlayerName solo una vez, y si el jugador cambia de nombre? Además, con el AMXX >= 1.8.3 apenas hay que usar get_user_name u otra cosa para saber el nombre del usuario. Tenemos "%n".
Ejemplo:
Código:
client_print(0, print_chat, "Name of the player: %n", id);
No hace falta poner "== true" al igual que "== false". Para false sería por ejemplo "if(!g_DoJump)"
Código:
iName[ 32 ]
->
Código:
szName[ MAX_NAME_LENGTH ]
Constantes + correcto nombre (i = int = número entero).
Al menos para mi es lo mismo
SI quiere poner == o no da lo mismo, cada quien programa a gusto
I = integer
sz = del string
pero como dije arriba si el quiere programar así déjalo, aunque esta muy bien tu consejo
PD; esto es un foro en ESPAÑOL
Simplemente consejos para que el código sea mejor. Por eso mismo he dicho lo de i y sz. En este caso sería szName y no iName u otra cosa porque es una string.
¿Qué significa que el foro es en español? ¿He hecho algo malo ?
PD: Ya me di cuenta, me entretuve y empecé a escribir en inglés : D. Ya lo he cambiado.