NOTICIAS



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_maxlevelcvar_dmgreqcvar_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_requireddmg_required get_pcvar_num(cvar_dmgreq);

while(
kDamage[attacker] > dmg_required

 
   kDamage[attacker] -= dmg_required;
 
   SetExpattacker get_pcvar_num(cvar_exp) ); 



4to paso:

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

Código PHP:
SetExpindex exp )
{
 
   if( !g_isconnectedindex ] || !exp || kNivelindex ] >= get_pcvar_num(cvar_maxlevel) ) return;

 
   kExpindex ] += exp;

 
   static lvllvl kNivelindex ];

 
   whilekExpindex ] >= LevelUpCost(lvl) )
 
       ++kNivelindex ];

 
   iflvl kNivelindex ] )
 
       client_printindex print_center"Felicidades, Subiste al nivel: %d"kNivelindex ] );


Código PHP:
show_menu_resetindex 
{
 
   static Tittle512 ], menumaxlvlmaxlvl get_pcvar_num(cvar_maxlevel);
 
   formatex(Tittlecharsmax(Tittle), "\r[ZP] \wMenu de Reseteo^n\w%s^n\yNivel Requerido:\r %d"MsgResetmaxlvl )

 
   menu menu_create(Tittle"menu_reset")

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

 
   menu_display(indexmenu );
 
   return PLUGIN_HANDLED;
}

public 
menu_resetindex menu item )
{
 
   ifitem != MENU_EXIT && kNivelindex ] >= get_pcvar_num(cvar_maxlevel))
 
   {
 
       kNivelindex ] = 1;
 
       kExpindex ] = 0;
 
       ++kResetsindex ];

 
       client_printindex print_center "Felicidades, acabas de hacer un reset, tienes: %d"kResetsindex ] );
 
   }

 
   menu_destroymenu );
 
   return PLUGIN_HANDLED;




FIN DE LA GUÍA...


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


Saludos:3
WWW
Tema cerrado


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)