NOTICIAS

Los registros estan desactivados, si requieres de soporte puedes crear un ticket en nuestro Discord.




Tema cerrado
Calificación:
  • 35 voto(s) - 2.97 Media
  • 1
  • 2
  • 3
  • 4
  • 5

[ ZP4.3 GUIA ] Niveles por daño + resets
#1

Nombre de la guía: [ZP4.3 GUIA ] Niveles por daño + resets
Dificultad: Fácil.
Conocimientos Previos: Introducción al pawn ( Basico )

Hola:$

Esta sera mi primera guía, la cree hace algún tiempo en otro foro. Aquí se las dejo actualizada :p

Requisitos:
Código:
AMX Studio ( No es totalmente necesario, pero les facilita las cosas )
Compilador amxx ( AMXXPC.EXE )
Código fuente del mod ( Link abajo )

LINK :p

1er paso:

Crear Variables, cvars, etc.

Código PHP:
// Macro para definir sig nivel
#define LevelUpCost(%1) (%1 * 55 + 20) // nivel x 55 + 20 ejemplo: si soy nivel uno: 1x55+20=75 para sig. nivel || soy nivel 3: 3x55+20=185 para sig. nivel

// Este mensaje saldrá en el menú de reseteo
new const MsgReset[] = "Al resetear tu nivel y exp volveran a 0, pero desbloqueras nuevas funciones."

new cvar_maxlevel, cvar_dmgreq, cvar_exp; // Nivel Maximo, Daño requerido, Exp por dmg
new kDamage[33], kExp[33], kNivel[33], kResets[33]; // Daño, Experiencia, Nivel, Reset. 


2do paso:

Setear un valor a las variables que acabamos de crear, para evitar bugs:

Valor para las cvars:
Buscamos "plugin_init()" y debajo de las demás cvarrs, agregamos las nuestras:
Código PHP:
register_clcmd( "say /reset", "show_menu_reset" ); // Cuando escriban "/reset", se abrira el menu de reseteo

cvar_maxlevel = register_cvar( "zp_maxlevel" , "100" ); // Se definen el nombre de la cvar, y el nivel máximo
cvar_dmgreq = register_cvar( "zp_dmg_req" , "1200" ); // Se definen el nombre de la cvar, y el daño requerido
cvar_exp = register_cvar( "zp_exp_bydmg", "1" ); // Se definen el nombre de la cvar, y la experiencia que se otorga cada vez que se alcance el daño requerido. 

Valor para las variables:
Buscamos "reset_vars(id, resetall)", dentro de esta funcion buscamos la condicion "if(resetall)", y antes de que se cierre la condición, agregamos:

Código PHP:
kNivel[id] = 1;
kExp[id] = kDamage[id] =kResets[id] = 0; 

Así, seteamos los valores a las variables.


3er paso:



Buscamos la función: "public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)"

Buscamos la condición: "if (!g_zombie[attacker])", y antes de que cierre la condición, antes del "return HAM_IGNORED;"

Código PHP:
kDamage[attacker] += floatround(damage);
static 
dmg_required; dmg_required = get_pcvar_num(cvar_dmgreq);

while(
kDamage[attacker] > dmg_required) 
{ 
 
   kDamage[attacker] -= dmg_required;
 
   SetExp( attacker , get_pcvar_num(cvar_exp) ); 
} 


4to paso:

Crear funciones que se necesitan: ( C&P )
Esto va al final del plugin.

Código PHP:
SetExp( index , exp )
{
 
   if( !g_isconnected[ index ] || !exp || kNivel[ index ] >= get_pcvar_num(cvar_maxlevel) ) return;

 
   kExp[ index ] += exp;

 
   static lvl; lvl = kNivel[ index ];

 
   while( kExp[ index ] >= LevelUpCost(lvl) )
 
       ++kNivel[ index ];

 
   if( lvl < kNivel[ index ] )
 
       client_print( index , print_center, "Felicidades, Subiste al nivel: %d", kNivel[ index ] );
} 

Código PHP:
show_menu_reset( index ) 
{
 
   static Tittle[ 512 ], menu, maxlvl; maxlvl = get_pcvar_num(cvar_maxlevel);
 
   formatex(Tittle, charsmax(Tittle), "\r[ZP] \wMenu de Reseteo^n\w%s^n\yNivel Requerido:\r %d", MsgReset, maxlvl )

 
   menu = menu_create(Tittle, "menu_reset")

 
   menu_additem(menu, (kNivel[index] >= maxlvl ) ? "Hacer Reseteo" : "\dNo puedes hacer reseteo...", "" );

 
   menu_display(index, menu );
 
   return PLUGIN_HANDLED;
}

public 
menu_reset( index , menu , item )
{
 
   if( item != MENU_EXIT && kNivel[ index ] >= get_pcvar_num(cvar_maxlevel))
 
   {
 
       kNivel[ index ] = 1;
 
       kExp[ index ] = 0;
 
       ++kResets[ index ];

 
       client_print( index , print_center , "Felicidades, acabas de hacer un reset, tienes: %d", kResets[ index ] );
 
   }

 
   menu_destroy( menu );
 
   return PLUGIN_HANDLED;
} 



FIN DE LA GUÍA...


Cualquier, Duda/Queja/Sugerencia, comentar y con gusto le atenderemos Pacman


Saludos:3
WWW
Tema cerrado


Mensajes en este tema
[ ZP4.3 GUIA ] Niveles por daño + resets - por kikizon - 22/08/2015, 08:21 PM

Salto de foro:


Usuarios navegando en este tema: