Raised This Month: $ Target: $400
 0% 

[ZP] Crear Niveles por AmmoPacks


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
Kiske
Veteran Member
Join Date: May 2009
Old 12-20-2009 , 16:03   [ZP] Crear Niveles por AmmoPacks
#1

ATENCIÓN: No doy más soporte a esto y probablemente esté desactualizado y genere errores!




Descripcion: Si queres crear Niveles por AmmoPacks de una Forma Completa y Buena, entonces este Tutorial es para vos.

Nota:
Este Tutorial lo recopile de varias partes, no es completamente mio, ni siquiera hize un 5% del Code de este Tutorial ^^
Yo lo hacia de otra forma, pero esta me resultaron mejores.

Nota2: Este Tutorial fue echo en el ZombiePlague 4.2
No se si anda en la 4.3

PHP Code:
// Abajo de los Includes de tu ZombiePlague, pones:
new const NIVELES[5] = { 05102050 }
// Como veran, ahi estamos Creando una Constante con el Nombre "NIVELES" que abarcara (Para Explicarlo de una Manera que lo Entiendan), unos 5 Niveles.
// Si van a poner mas Niveles, deberan cambiar ese "5" por la Cantidad de Niveles que vayan a poner.


// Abajo de esa Constante creamos una Variable que contendra 33 Lugares.
new g_level[33]


// Nos dirigimos a la Forward:
public fw_PlayerKilled(victimattackershouldgib)
{

// Adentro de este Public, buscamos la siguiente linea:
if (g_zombie[attacker] && (!g_nemesis[attacker] || !get_pcvar_num(cvar_nemignoreammo)))
        
g_ammopacks[attacker] += get_pcvar_num(cvar_ammoinfect)
// Y lo reemplazamos por esto:
if (g_zombie[attacker] && (!g_nemesis[attacker] || !get_pcvar_num(cvar_nemignoreammo)))
        
update_ap(attackerget_pcvar_num(cvar_ammoinfect), 0)

// La Funcion "update_ap" la llamaremos mas tarde.

}


// Ahora nos dirigimos a la Forward:
public fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type)
{

// Y adentro de este Public buscamos esta linea:
g_ammopacks[attacker]++
// La reemplazamos por:
update_ap(attacker10)
// El primer numero(1), que esta despues del Index(attacker), son los AmmoPacks que recibira el Index(attacker=atacante).
// El otro numero no nos servira por ahora.

// En este mismo Public buscamos esta linea que se encuentra mas abajo:
g_ammopacks[attacker] += get_pcvar_num(cvar_ammoinfect// ammo packs given to zombie for infection
// La reemplazamos por:
update_ap(attackerget_pcvar_num(cvar_ammoinfect), 0// ammo packs given to zombie for infection

}


// Buscamos el CLCMD:
public clcmd_buyammo(id)
{

// Y adentro de este Public buscamos esta linea:
g_ammopacks[id]--
// Y la reemplazamos por:
update_ap(id, -10)

}


// Ahora buscamos lo siguiente en el Plugin:
buy_extra_item(iditemid)
{

// Aca adentro buscamos una linea que diga lo siguiente:
// Deduce item cost
g_ammopacks[id] -= g_extraitem_cost[itemid]
// La reemplazamos por:
update_ap(idg_extraitem_cost[itemid], 0)

}


// Ahora buscamos la Funcion:
infection_explode(ent)
{

// Aca adentro buscamos la siguiente Linea:
g_ammopacks[attacker] += get_pcvar_num(cvar_ammoinfect// ammo packs given to zombie for infection
// Y la reemplazamos por:
update_ap(attackerget_pcvar_num(cvar_ammoinfect), 0// ammo packs given to zombie for infection

}


// Buscamos la Native:
public native_set_user_ammo_packs(idamount)
{

// Reemplazamos todo lo que esta aca adentro por:
return update_ap(idg_ammopacks[id] + amount0)

}


// Ahora nos vamos al FINAL DEL PLUGIN, incluso abajo de un: "#endif", y ponemos lo siguiente:

// FORMA DE SPEED! [CON EL "goto"]
// FORMA DE SPEED! [CON EL "goto"]
// FORMA DE SPEED! [CON EL "goto"]
public update_ap(idamountcheck)
{
    if (
check) goto check2 // Lo que hace el "goto" es, si la Funcion esta se llamo desde "check", el Plugin lo que hara, es llamar directamente a "check2".
   
    // Aca detectamos que si es Nivel Maximo no suba mas.
    
if (g_ammopacks[id] + amount NIVELES[sizeof NIVELES 1] - 1)
        return 
PLUGIN_HANDLED
    
    
// Le damos los APs correspondientes.
    
g_ammopacks[id] += amount
    
    
// Ya lo dijimos antes ^^.
    
check2:
    if(
amount 0)
    {
        if(
g_ammopacks[id] < NIVELES[g_level[id]] )
        {
            
g_level[id]--
            
client_print(idprint_center"Bajaste de nivel")
            
update_ap(id, -11)
        }

    }
    else
    {
        if(
g_ammopacks[id] >= NIVELES[g_level[id]] )
        {
            
g_level[id]++
            
client_print(idprint_center"Subiste de nivel")
            
update_ap(id01
        }
    }
    
    return 
PLUGIN_HANDLED
}



// FORMA DE CAPOSTRIKE93! [SIN EL "goto"]
// FORMA DE CAPOSTRIKE93! [SIN EL "goto"]
// FORMA DE CAPOSTRIKE93! [SIN EL "goto"]
public update_ap(idamountcheck)
{    
    if (!
check)
    {    
        if (
g_ammopacks[id] + amount NIVELES[sizeof NIVELES 1] - 1)
            return 
PLUGIN_HANDLED
    
        g_ammopacks
[id] += amount
    
}
    else
    {
        if(
amount 0)
        {
            if(
g_ammopacks[id] < NIVELES[g_level[id]])
            {
                
g_level[id]--
                
client_print(idprint_center"Bajaste de nivel")
                
update_ap(id, -11)
            }
        }
        else
        {
            if(
g_ammopacks[id] >= NIVELES[g_level[id]])
            {
                
g_level[id]++
                
client_print(idprint_center"Subiste de nivel")
                
update_ap(id01
            }
        }
    }
    
    return 
PLUGIN_HANDLED

Listo esto fue todo para hacer Niveles.


Esto Fue Todo!
__________________


Last edited by Kiske; 03-02-2014 at 08:57.
Kiske is offline
Send a message via Skype™ to Kiske
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 02:06.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode