[ZP] Crear niveles por Ammopacks
#1
Bueno, para empezar vamos a aclarar (como ya la mayoría saben) que este tutorial NO es mio, si no que es de Kiske.
Este es un sistema de niveles básico, recomendado para los que recién comienzan con el scripting.
========================================================
Descripción: 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(Funciona para 4.3 pero hay que cambiar algunas partes del code, yo mismo lo probe)

Código PHP:
// 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

Como dice Kiske en su post:
Se responderan Dudas siempre y cuando:
→Se pregunte algo acorde al Tema.
→Se pregunte algo Logico y Entendible.
→No se responderan Dudas cuando:
→Se pregunte algo que no tenga que ver con el Tutorial.
→Se pregunte algo que no se entiende o que no tiene sentido.

Como por ejemplo:
→No me sube de Nivel. ¿ Por Que ? [Esto Sera Respondido]

Yo quiero que aparesca mi Nivel en el Hud. ¿ Como Hago ? [Esto NO Sera Respondido porque aqui solo Explica como CREAR Niveles.] Yo por mi parte, preguntas de estas no las voy a responder, si otro quiere, puede hacerlo.

Saludos!
Responder
#2
[php]
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team

Error: Undefined symbol "g_zombie" on line 10
Warning: Expression has no effect on line 10
Error: Expected token: ";", but found "]" on line 10
Error: Invalid expression, assumed zero on line 10
Error: Too many error messages on one line on line 10

Compilation aborted.
4 Errors.
Could not locate output file C:\Users\Marian\Desktop\Levels_Por_Ammopack.amx (compile failed).
Responder
#3
faltaron los niveles o macro...
[Guia] Granada de Droga [actulizado 01/04/14]
[Guia] Cambio de leap zp 4.2 a 4.3

Zp 4.2 Extincion [Beta+Lvl] Edicion 0.1 (%95) terminado
Responder
#4
(04/04/2014, 10:09 PM)Nike escribió: faltaron los niveles o macro...

really?

Error: Undefined symbol "g_zombie" on line 10
Ingeniero agrónomo y desarrollador de Software.

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"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#5
(04/04/2014, 10:36 PM)roccoxx escribió:
(04/04/2014, 10:09 PM)Nike escribió: faltaron los niveles o macro...

really?

Error: Undefined symbol "g_zombie" on line 10

si me referia a su error hubiera citado el mensaje... lo que yo decia esque le falta en el tuto los niveles...
solo puso la varible level, sin los niveles
el error que tiene el es que cerro mal una llave o puse llaves de mas...
[Guia] Granada de Droga [actulizado 01/04/14]
[Guia] Cambio de leap zp 4.2 a 4.3

Zp 4.2 Extincion [Beta+Lvl] Edicion 0.1 (%95) terminado
Responder
#6
el error es que no tiene la variable g_zombie creada -.-
Ingeniero agrónomo y desarrollador de Software.

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"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#7
(04/04/2014, 10:04 PM)V1LL4N0.- escribió: [php]
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team

Error: Undefined symbol "g_zombie" on line 10
Warning: Expression has no effect on line 10
Error: Expected token: ";", but found "]" on line 10
Error: Invalid expression, assumed zero on line 10
Error: Too many error messages on one line on line 10

Compilation aborted.
4 Errors.
Could not locate output file C:\Users\Marian\Desktop\Levels_Por_Ammopack.amx (compile failed).

porque ese código lo tienes que meter en tu zp, no hacer un plugin aparte.
(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.
Responder
#8
Hola como hago para hacerlo por ammopacks cuando no me aparec la linea :

Código PHP:
if (g_zombie[attacker] && (!g_nemesis[attacker] || !get_pcvar_num(cvar_nemignoreammo)))
        
g_ammopacks[attacker] += get_pcvar_num(cvar_ammoinfect
Responder
#9
Te falto crear la variable de la experiencia que te piden los niveles

Ejemplo;

Código PHP:
new NIVELES[5] = { 120050010002000 
Responder
#10
Código PHP:
// Abajo de esa Constante creamos una Variable que contendra 33 Lugares. 

------------>

Código PHP:
//Abajo de esa Constante creamos una Variable que contendra 33 Celdas. 

Creo que queda mejor 'Celdas'.

Saludos.
(10/10/2014, 06:38 PM)RauliTop escribió:
(10/10/2014, 04:40 PM)ivan escribió: no sabía que se podia poner los iconos gestuales cuando das reputacion negativa/positiva.
ui, peligro...
pronto habrán reputaciones de ivan:
hace muy muy muii DafuqYao mingGenius buenos Thats what she saidtutoriales Proud me encataan Whatever
Responder
#11
(13/06/2014, 07:08 PM)K.- escribió:
Código PHP:
// Abajo de esa Constante creamos una Variable que contendra 33 Lugares. 

------------>

Código PHP:
//Abajo de esa Constante creamos una Variable que contendra 33 Celdas. 

Creo que queda mejor 'Celdas'.

Saludos.
Es la misma pija.
(08/10/2014, 10:50 PM)meTaLiCroSS escribió: Siento que en este foro viven en una competencia, en vez de preocuparse del contenido se preocupan de la gente, nisiquiera de eso, de sus actitudes por muy buenas o malas que sean, que clase de convivencia se puede llegar con aquello? Siempre la misma mierda en todos lados, progresen de una vez

**************************************************

Como hacer una Base de Datos para Sistema de Cuentas by r0ma
Responder
#12
(13/06/2014, 09:55 PM)Store.gh escribió:
(13/06/2014, 07:08 PM)K.- escribió:
Código PHP:
// Abajo de esa Constante creamos una Variable que contendra 33 Lugares. 

------------>

Código PHP:
//Abajo de esa Constante creamos una Variable que contendra 33 Celdas. 

Creo que queda mejor 'Celdas'.

Saludos.
Es la misma pija.

Si yase , pero supongo que queda mejor asi Whatever

solo digo.
(10/10/2014, 06:38 PM)RauliTop escribió:
(10/10/2014, 04:40 PM)ivan escribió: no sabía que se podia poner los iconos gestuales cuando das reputacion negativa/positiva.
ui, peligro...
pronto habrán reputaciones de ivan:
hace muy muy muii DafuqYao mingGenius buenos Thats what she saidtutoriales Proud me encataan Whatever
Responder
#13
no detecta la bajada de niveles esto.... lo probe...xD
Responder
#14
Pero como crearias una nueva celda arriba o aabajo dinde dice tu vida tu clase y faltaria [--Level:]
Tan malo no soyWhatever
Responder
#15
Asi

yo esto 2 lo cambie para que hud aparesca en la parte superior a la de izquierda

Código PHP:
const Float:HUD_STATS_X 0.02
const Float:HUD_STATS_Y 0.9 
----------->
Código PHP:
const Float:HUD_STATS_X 0.00
const Float:HUD_STATS_Y 0.00 

Vas a public ShowHUD(taskid)

y buscas esto

Código PHP:
if (id != ID_SHOWHUD)
    {
        static 
name[32]
        
get_user_name(idnamesizeof name 1)
        
        
// Show name, health, class, and ammo packs
        
set_hudmessage(255255255HUD_SPECT_XHUD_SPECT_Y06.01.10.00.0, -1)
        
ShowSyncHudMsg(ID_SHOWHUDg_MsgSync2"%L %s^nHP: %d - %L %s - %L %d"ID_SHOWHUD"SPECTATING"namepev(idpev_health), ID_SHOWHUD"CLASS_CLASS", class, ID_SHOWHUD"AMMO_PACKS1"g_ammopacks[id])
    }
    else
    {
        
// Show health, class and ammo packs
        
set_hudmessage(redgreenblueHUD_STATS_XHUD_STATS_Y06.01.10.00.0, -1)
        
ShowSyncHudMsg(ID_SHOWHUDg_MsgSync2"%L: %d - %L %s - %L %d"id"ZOMBIE_ATTRIB1"pev(ID_SHOWHUDpev_health), ID_SHOWHUD"CLASS_CLASS", class, ID_SHOWHUD"AMMO_PACKS1"g_ammopacks[ID_SHOWHUD])
    } 
------------------>
Código PHP:
if (id != ID_SHOWHUD)
    {
        static 
name[32]
        
get_user_name(idnamesizeof name 1)
        
        
// Show name, health, class, and ammo packs
        
set_hudmessage(255255255HUD_SPECT_XHUD_SPECT_Y06.01.10.00.0, -1)
        
ShowSyncHudMsg(ID_SHOWHUDg_MsgSync2"%L %s^nHP: %d - %L %s - %L %d - level: %d"ID_SHOWHUD"SPECTATING"namepev(idpev_health), ID_SHOWHUD"CLASS_CLASS", class, ID_SHOWHUD"AMMO_PACKS1"g_ammopacks[id], g_level[id])
    }
    else
    {
        
// Show health, class and ammo packs
        
set_hudmessage(redgreenblueHUD_STATS_XHUD_STATS_Y06.01.10.00.0, -1)
        
ShowSyncHudMsg(ID_SHOWHUDg_MsgSync2"%L: %d^n%L %s^n%L %d^nLevel : %d"id"ZOMBIE_ATTRIB1"pev(ID_SHOWHUDpev_health), ID_SHOWHUD"CLASS_CLASS", class, ID_SHOWHUD"AMMO_PACKS1"g_ammopacks[ID_SHOWHUD], g_level[id])
    } 
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)