Enviar respuesta 
[ZP][TUT] Crear Niveles por Experiencia con Daño
Autor Mensaje
ShaDow^ Sin conexión
Miembro


Mensajes: 69
Registro en: Dec 2013
Reputación: 0
Mensaje: #1
[ZP][TUT] Crear Niveles por Experiencia con Daño
Nota antes de empezar: Este tutorial esta hecho para ZP 4.2 no se si anda para el 4.3 fijense ustedes...

Agradesco al usuario de AlliedModders Kiske que use su Tuto de niveles como inspiracion...

Empezemos.

Abajo de los Includes y arriba de Plugin Customization agregamos las siguientes variables:

Código PHP:
new g_level[33// Esta es la variable que usaremos para los niveles
new g_exp[33// Esta es la variable que usaremos para la cantidad de experiencia
#define MAXLEVEL <cantidad> // Este define sirve para definir el nivel maximo que se puede llegar (en <cantidad> pongan el numero que uds. quieran
new const LEVELS[MAXLEVEL] = { cantidades // Este const sirve para definir la experiencia que requiere cada nivel (En cantidad pongan el monto que uds. quieran Ej: { 1, 2, 3, 4, 5 } cada numero separado por una coma. 

Ahora nos vamos al public fw_TakeDamage. Buscan la siguiente linea:

Código PHP:
// Reward ammo packs for every [ammo damage] dealt 

Y abajo de:

Código PHP:
g_damagedealt[attacker] -= ammodamage 

Agregan:

Código PHP:
g_exp[attacker] += <cantidad// Esto sirve para dar la experiencia por el daño que tengas definido en tu zp (en cantidad pornga el monto que quieran)
check_level(id// esto sirve para checkear el nivel cada vez que ganemos un punto de xp por damage. 

Ahora buscan la linea:

Código PHP:
reset_vars(idresetall

Y abajo de:

Código PHP:
WPN_AUTO_ON 

Agregan:

Código PHP:
g_level[id] = // Aca decimos que cuando un player entre al servidor su nivel sera 1
g_exp[id] = // Aca decimos que cuando un player entre al servidor su experiencia sera 0 

Ahora vamos al final del plugin y agregamos lo siguiente:

Código PHP:
public check_level(id

    if (
g_exp[id] > LEVELS[sizeof LEVELS 1] - 1)
        return 
PLUGIN_HANDLED
     
    while(
g_exp[id] >= LEVELS[g_level[id]]) 
    { 
        
g_level[id]++    
        
zp_colored_print(id"^x04[ZP]^x01 Has subido al nivel ^x04%d^x01."g_level[id])  
    } 

    return 
PLUGIN_HANDLED


Para agregar el nivel al Hud vamos a

Código PHP:
public ShowHUD(taskid

Y buscamos la linea

Código PHP:
ShowSyncHudMsg(ID_SHOWHUDg_MsgSync2code... 

Y ahi agregamos
Código PHP:
"Nivel: %d Experiencia: %d"g_level[id], g_exp[id]) 

En mi caso quedaria asi:

Código PHP:
ShowSyncHudMsg(ID_SHOWHUDg_MsgSync2"Nivel: %d Experiencia: %d"g_level[id], g_exp[id]) 

Y esto fue todo para crear niveles.

Saludos, Atte. ShaDow^
(Este mensaje fue modificado por última vez en: 03/01/2014 11:10 AM por ShaDow^.)
10/12/2013 11:02 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
roccoxx Sin conexión
Miembro Destacado


Plugin developer Trebol purpura 1k
Mensajes: 1,159
Registro en: Oct 2013
Reputación: 18
Mensaje: #2
RE: [ZP][TUT] Crear Niveles por Experiencia con Daño
dices que no responderas algunas preguntas porque son faciles.

acaso tu tutorial es algo complejo y dificil?

yo solo lo veo como otra guia mediocre.

futuro ingeniero agrónomo.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

volví a vender plugins, contactame
10/12/2013 11:29 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
ShaDow^ Sin conexión
Miembro


Mensajes: 69
Registro en: Dec 2013
Reputación: 0
Mensaje: #3
RE: [ZP][TUT] Crear Niveles por Experiencia con Daño
Y por que te parece mediocre?
10/12/2013 11:48 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
LA BANDA Sin conexión
Miembro


Plugin developer
Mensajes: 200
Registro en: Oct 2013
Reputación: 1
Mensaje: #4
RE: [ZP][TUT] Crear Niveles por Experiencia con Daño
A mi me parece un tuto para megaprincipiantes (como yo en mayo de 2012), igual creo que puede servirle a gente que no sabe una mierda de plugins, yo me acuerdo que asi empeze a hacer plugins, viendo estas guias/tut que era buscar y reemplazar, y despues de a poco me empeze a preguntar por que se usaba siempre lo mismo xd

Image
11/12/2013 01:49 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
RauliTop Sin conexión
Miembro Héroe


El protector 1k
Mensajes: 1,961
Registro en: Oct 2013
Reputación: 36
Mensaje: #5
RE: [ZP][TUT] Crear Niveles por Experiencia con Daño
muy incompleto, nunca se llama a check_level

(17/04/2015 03:36 PM)Neeeeeeeeeel.- escribió:  No se va a volver a conectar a internet en toda su puta vida... nadie sube porno a mi foro y vive para contarlo.
11/12/2013 11:07 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
ShaDow^ Sin conexión
Miembro


Mensajes: 69
Registro en: Dec 2013
Reputación: 0
Mensaje: #6
RE: [ZP][TUT] Crear Niveles por Experiencia con Daño
(11/12/2013 11:07 AM)RauliTop escribió:  muy incompleto, nunca se llama a check_level

Es verdad, me olvide disculpa.
11/12/2013 11:58 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Pipa Roja Sin conexión
Miembro Sr.


Trebol purpura
Mensajes: 597
Registro en: Nov 2013
Reputación: 11
Mensaje: #7
RE: [ZP][TUT] Crear Niveles por Experiencia con Daño
no entiendo (perdón la ignorancia)
Código PHP:
// Reward ammo packs for every [ammo damage] dealt 

no tengo eso en mi zp 4.2

en mi zp aparese esto:
Código PHP:
// Ham Take Damage Forward (inflictor = weapon)
public fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type)
{
    
// Non-player damage or self damage
    
if (victim == attacker || !is_user_connected(attacker))
        return 
HAM_IGNORED;
    
    
// New round starting or round ended
    
if (g_newround || g_endround)
        return 
HAM_SUPERCEDE;
    
    
// Victim shouldn't take damage or victim is frozen
    
if (g_nodamage[victim] || g_frozen[victim])
        return 
HAM_SUPERCEDE;
    
    
// Prevent friendly fire
    
if (g_zombie[attacker] == g_zombie[victim])
        return 
HAM_SUPERCEDE;
    
    
// Attacker is human...
    
if (!g_zombie[attacker])
    {
        
// Armor multiplier for the final damage on normal zombies
        
if (!g_nemesis[victim])
        {
            
damage *= get_pcvar_float(cvar_zombiearmor)
            
SetHamParamFloat(4damage)
        }
        
        
// Reward ammo packs
        
if (!g_survivor[attacker] || !get_pcvar_num(cvar_survignoreammo))
        {
            
// Store damage dealt
            
g_damagedealt[attacker] += floatround(damage)
            new 
bool:up
            
            
// Almacenamos daño por combo
            
g_damagecombo[attacker] += floatround(damage)
            
g_damagehits[attacker]++
            
            
show_current_combo(attackerfloatround(damage))
            
            
remove_task(attacker+TASK_RESET_COMBO)
            
            if (
g_damagehits[attacker] > 5)
            {
                while (
g_damagecombo[attacker] >= ammount_damage(g_combo[attacker]))
                {
                    
g_combo[attacker]++
                    
up true
                
}
                
                if (
up)
                {
                    
formatex(g_info_combo[attacker], 63"Combo %d completado!"g_combo[attacker])
                    
                    
remove_task(attacker+TASK_INFO_COMBO)
                    
set_task(3.0"info_combo"attacker+TASK_INFO_COMBO)
                }
                
                
remove_task(attacker+TASK_FINISH_COMBO)
                
set_task(3.0"finish_combo"attacker+TASK_FINISH_COMBO)
            }
            else
            {
                
set_task(1.0"reset_combo"attacker+TASK_RESET_COMBO)
            }
            
            
// Get damage required to get an ammo pack
            
static ammodamage
            ammodamage 
get_pcvar_num(cvar_ammodamage)
            
            
// Reward ammo packs for every [ammo damage] dealt
            
while (g_damagedealt[attacker] >= ammodamage)
            {
                
Levels(attacker1)
                
g_damagedealt[attacker] -= ammodamage
            
}
        }
        
        return 
HAM_IGNORED;
    }
    
    
// Attacker is zombie...
    
    // Prevent infection by HE grenade (bugfix)
    
if (damage_type DMG_HEGRENADE)
        return 
HAM_SUPERCEDE;
    
    
// Nemesis?
    
if (g_nemesis[attacker])
    {
        
// Set nemesis damage
        
SetHamParamFloat(4get_pcvar_float(cvar_nemdamage))
        return 
HAM_IGNORED;
    }
    
    
// Last human or swarm round or plague round
    
if (g_swarmround || g_plagueround || fnGetHumans() == 1)
        return 
HAM_IGNORED// human is killed
    
    // Does human armor need to be reduced before infecting?
    // Get victim armor
    
static Float:armor
    pev
(victimpev_armorvaluearmor)
    
    
// Block the attack if he has some
    
if (armor 0.0)
    {
        
engfunc(EngFunc_EmitSoundvictimCHAN_BODYsound_armorhit1.0ATTN_NORM0PITCH_NORM)
        
set_pev(victimpev_armorvaluefloatmax(0.0g_hclass_armor[g_humanclass[victim]] - damage))
        return 
HAM_SUPERCEDE;
    }
    
    
// Infection allowed
    
SendDeathMsg(attackervictim// send death notice
    
FixDeadAttrib(victim// fix the "dead" attrib on scoreboard
    
UpdateFrags(attackervictimget_pcvar_num(cvar_fragsinfect), 11// add corresponding frags and deaths
    
    
zombieme(victimattacker00// turn into zombie
    
    // ammo packs given to zombie for infection
    
Levels(attackerget_pcvar_num(cvar_ammoinfect))
    
fm_set_user_health(attackerpev(attackerpev_health)+get_pcvar_num(cvar_zombiebonushp)) // attacker gets bonus HP for the infection
    
    
return HAM_SUPERCEDE;


24/12/2013 04:41 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Frosst Sin conexión
Miembro Sr.


Mensajes: 581
Registro en: Oct 2013
Reputación: 2
Mensaje: #8
RE: [ZP][TUT] Crear Niveles por Experiencia con Daño
Código PHP:
// Reward ammo packs for every [ammo damage] dealt
            
while (g_damagedealt[attacker] >= ammodamage)
            {
                
Levels(attacker1)
                
g_damagedealt[attacker] -= ammodamage
            
}
        }
        
        return 
HAM_IGNORED;
    } 

(?
24/12/2013 05:01 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Pipa Roja Sin conexión
Miembro Sr.


Trebol purpura
Mensajes: 597
Registro en: Nov 2013
Reputación: 11
Mensaje: #9
RE: [ZP][TUT] Crear Niveles por Experiencia con Daño
Rainbow no lo había vistoA ysi

24/12/2013 05:26 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Nike Sin conexión
Miembro


Mensajes: 208
Registro en: Nov 2013
Reputación: 4
Mensaje: #10
RE: [ZP][TUT] Crear Niveles por Experiencia con Daño
si bajas de nivel no lo checkea
(Este mensaje fue modificado por última vez en: 29/12/2013 01:47 AM por Nike.)
29/12/2013 01:46 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Enviar respuesta 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | Allied Modders en español | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS