Enviar respuesta 
[GUIA][ZP 4.3] Agregar niveles por Frags e Infecciones
Autor Mensaje
[E]manuelitop15 Sin conexión
Miembro Junior


Mensajes: 34
Registro en: Oct 2018
Reputación: 0
Mensaje: #1
[GUIA][ZP 4.3] Agregar niveles por Frags e Infecciones
Bueno la verdad creo que este tuto era necesario ya que si bien hay tutos (son una kk), muchos tienen errores y estan mal hechos Whatever
Agredecimientos a: warrior
Saque informacion de este tuto: https://amxmodx-es.com/Thread-GUIA-Crear...nfecciones


Comenzemos

Definimos las infecciones y frags
Código PHP:
#define FRAGS(%1)    (%1 * 1) + 1 //Si sube de nivel, se agregaria 1 frag más
#define INFECCIONES(%1)    (%1 * 1) + 1 // Si sube de nivel, se agregaria 1 infección más 

creamos las variables van a
Código PHP:
Player Vars 

Arriba de
Código PHP:
new g_zombie[33
Agregamos
Código PHP:
new g_level[33]
new 
g_frags[33]
new 
g_infecciones[33

Quedaria
Código PHP:
new g_level[33]
new 
g_frags[33]
new 
g_infecciones[33
new 
g_zombie[33// is zombie
new g_nemesis[33// is nemesis
new g_survivor[33// is survivor
new g_sniper[33]
new 
g_firstzombie[33// is first zombie
new g_lastzombie[33// is last zombie
new g_lasthuman[33// is last human
//Mas codigo... 
Ahora vamos a
Código PHP:
public fw_PlayerKilled(victimattackershouldgib

Y agregamos despues del
Código:
{
Código PHP:
if (g_zombie[victim] || g_nemesis[victim])
    {
        
g_frags[attacker]+= 1
        check_level
(attacker)
    } 

Quedaria...
Código PHP:
// Ham Player Killed Forward
public fw_PlayerKilled(victimattackershouldgib)
{
    if (
g_zombie[victim] || g_nemesis[victim])
    {
        
g_frags[attacker]+= 1
        check_level
(attacker)
    }

    
// Player killed
    
g_isalive[victim] = false
    
// Disable nodamage mode after we die to prevent spectator nightvision using zombie madness colors bug
    
g_nodamage[victim] = false
    
    
// Enable dead players nightvision
    
set_task(0.1"spec_nvision"victim)

//Mas codigo... 

Ahora buscamos
Código:
zombieme
y en
Código PHP:
// Reward frags, deaths, health, and ammo packs 

Agregamos
Código PHP:
//Ganara infecciones cuando infecte :v
        
g_infecciones[infector]++
                  
check_level(infector
Quedaria..
Código PHP:
// Show deathmsg and reward infector?
    
if (rewards && infector)
    {
        
// Send death notice and fix the "dead" attrib on scoreboard
        
SendDeathMsg(infectorid)
        
FixDeadAttrib(id)
        
        
        
// Reward frags, deaths, health, and ammo packs
        
UpdateFrags(infectoridget_pcvar_num(cvar_fragsinfect), 11)
        
g_ammopacks[infector] += get_pcvar_num(cvar_ammoinfect)
        
fm_set_user_health(infectorpev(infectorpev_health) + get_pcvar_num(cvar_zombiebonushp))
        
        
// Ganara Infecciones
        
g_infecciones[infector]++
                  
check_level(infector)
    } 

Bueno ahora vamos a
Código PHP:
reset_vars(idresetall
y agregaremos debajo de
Código PHP:
if (resetall

Código PHP:
g_level[id] = 
g_frags
[id] = 0
g_infecciones
[id] = 

Quedaria...
Código PHP:
    if (resetall)
    {
        
g_level[id] = 1
        g_frags
[id] = 0
        g_infecciones
[id] = 0
        g_ammopacks
[id] = 0
        g_zombieclass
[id] = ZCLASS_NONE
        g_zombieclassnext
[id] = ZCLASS_NONE
        g_humanclass
[id] = HCLASS_NONE
        g_humanclassnext
[id] = HCLASS_NONE
        g_damagedealt_human
[id] = 0
        g_damagedealt_zombie
[id] = 0
        WPN_AUTO_ON 
0
        WPN_STARTID 
0
        PL_ACTION 
0
        MENU_PAGE_ZCLASS 
0
        MENU_PAGE_EXTRAS 
0
        MENU_PAGE_PLAYERS 


Bueno ahora crearemos el check_level
Código PHP:
//Debajo de todo su plugin pongan esto
public check_level(id)
{
        
    if(
g_level[id] >= 200)
    {
        
g_level[id] = 200 
        
return;
    }
    while (
g_frags[id] >= FRAGS(g_level[id]) && g_infecciones[id] >= INFECCIONES(g_level[id]))
    {
        
g_level[id]++
        
g_frags[id] = 0
        g_infecciones
[id] = 0
        zp_colored_print
(id,"^x04[ZP]^x01 Subiste al nivel: ^x04%d"g_level[id])
    }


Bueno ahora editaremos el hud para que nos diga los frags y todo eso
Vamos a
Código PHP:
public ShowHUD(taskid

Y reemplazan todo ese code por este.
Código PHP:
// Show HUD Task
public ShowHUD(taskid)
{
    static 
id
    id 
ID_SHOWHUD;
    
    
// Player died?
    
if (!g_isalive[id])
    {
        
// Get spectating target
        
id pev(idPEV_SPEC_TARGET)
        
        
// Target not alive
        
if (!g_isalive[id]) return;
    }
    
    
// Format classname
    
static class[32]
    
    if (
g_zombie[id]) // zombies
    
{
        
        if (
g_nemesis[id])
            
formatex(class, charsmax(class), "%L"ID_SHOWHUD"CLASS_NEMESIS")
        else
            
copy(class, charsmax(class), g_zombie_classname[id])
    }
    
    else  
// humans
    
{
        
        if (
g_survivor[id])
            
formatex(class, charsmax(class), "%L"ID_SHOWHUD"CLASS_SURVIVOR")
        else
            
copy(class, charsmax(class), g_human_classname[id])
    }
    
    
    
// Spectating someone else?
    
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
    {
        static 
szIncompleto[20]; formatexszIncompleto19"%d/%d"g_frags[id], FRAGS(g_level[id]), FRAGS(g_level[id]) - g_frags[id])
        static 
szCompleto[20]; formatexszCompleto19"[COMPLETADO]" )
        
        static 
siIncompleto[20]; formatexsiIncompleto19"%d/%d"g_infecciones[id], INFECCIONES(g_level[id]), INFECCIONES(g_level[id]) - g_infecciones[id])
        static 
siCompleto[20]; formatexsiCompleto19"[COMPLETADO]" )
        
        
// Show health, class and ammo packs
        
set_hudmessage(redgreenblueHUD_STATS_XHUD_STATS_Y06.01.10.00.0, -1)
        
ShowSyncHudMsg(ID_SHOWHUDg_MsgSync2"ñVida: %d - Clase %s - Aps %d^nLvl: %d  - Frags: %s - Infecciones: %s"get_user_health(id),  class, g_ammopacks[id], g_level[id], g_reset[id], g_frags[id] >= FRAGS(g_level[id]) ? szCompleto szIncompletog_infecciones[id] >= INFECCIONES(g_level[id]) ? siCompleto siIncompleto)
    } 


Ahora para que sume infecciones al tirar bomba de infeccion
vamos a...
Código PHP:
// Infection Bomb Explosion 

y agregamos
Código PHP:
g_infecciones[attacker]++ 

Quedaria
Código PHP:
// Infection Bomb Explosion
infection_explode(ent)
{
    
    
// Round ended (bugfix)
    
if (g_endround) return;
    
    
// Get origin
    
static Float:originF[3]
    
pev(entpev_originoriginF)
    
    
// Make the explosion
    
create_blast(originF)
    
    
// Infection nade explode sound
    
static sound[64]
    
ArrayGetString(grenade_infectrandom_num(0ArraySize(grenade_infect) - 1), soundcharsmax(sound))
    
emit_sound(entCHAN_WEAPONsound1.0ATTN_NORM0PITCH_NORM)
    
    
// Get attacker
    
static attacker
    attacker 
pev(entpev_owner)
    
    
// Infection bomb owner disconnected? (bugfix)
    
if (!is_user_valid_connected(attacker))
    {
        
// Get rid of the grenade
        
engfunc(EngFunc_RemoveEntityent)
        return;
    }
    
    
// Collisions
    
static victim
    victim 
= -1
    
    
while ((victim engfunc(EngFunc_FindEntityInSpherevictimoriginFNADE_EXPLOSION_RADIUS)) != 0)
    {
        
// Only effect alive non-spawnprotected humans
        
if (!is_user_valid_alive(victim) || g_zombie[victim] || g_nodamage[victim])
            continue;
        
        
// Last human is killed
        
if (fnGetHumans() == 1)
        {
            
ExecuteHamB(Ham_Killedvictimattacker0)
            continue;
        }
        
        
// Infected victim's sound
        
ArrayGetString(grenade_infect_playerrandom_num(0ArraySize(grenade_infect_player) - 1), soundcharsmax(sound))
        
emit_sound(victimCHAN_VOICEsound1.0ATTN_NORM0PITCH_NORM)
        
        
// Turn into zombie
        
zombieme(victimattacker011)
        
             
//Sumar Infs!
              
g_infecciones[attacker]++ /// suma el g_infecciones por cada humano infectado con la bomba
    
}
    
    
// Get rid of the grenade
    
engfunc(EngFunc_RemoveEntityent)


Bueno y creo que eso fue todo Insecure
Si me olvido de algo haganlo saber y lo arreglo!
(Este mensaje fue modificado por última vez en: 08/11/2018 10:54 PM por [E]manuelitop15.)
06/11/2018 05:34 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
warrior Sin conexión
Miembro Sr.


Trebol de oro
Mensajes: 404
Registro en: Jan 2017
Reputación: 3
Mensaje: #2
RE: [GUIA][ZP 4.3] Agregar niveles por Frags e Infecciones
Al ultimo humano lo mata si o si, nunca lo infecta, fijate bien cuando chequeas al sumarle la infección...

En lo último que pasas sobre la bomba de infección, en :

Código PHP:
case EXTRA_INFBOMB 

Aca estas comprando la bomba, no tirandola. Para que te sume con la bomba tienes que agregar el g_infecciones[id]++ en:

Código PHP:
// Infection Bomb Explosion
infection_explode(ent

Pero este último creo que no es necesario sumarte por lo que ya le sumas en zombieme y estaria sumandole 2 veces, no me acuerdo bien, podrias chequearlo...
07/11/2018 12:03 AM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
[E]manuelitop15 Sin conexión
Miembro Junior


Mensajes: 34
Registro en: Oct 2018
Reputación: 0
Mensaje: #3
RE: [GUIA][ZP 4.3] Agregar niveles por Frags e Infecciones
Arreglado. 07/11/2018!
(Este mensaje fue modificado por última vez en: 07/11/2018 01:18 PM por [E]manuelitop15.)
07/11/2018 02:50 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
warrior Sin conexión
Miembro Sr.


Trebol de oro
Mensajes: 404
Registro en: Jan 2017
Reputación: 3
Mensaje: #4
RE: [GUIA][ZP 4.3] Agregar niveles por Frags e Infecciones
Aquie tienes otro error:

Código PHP:
// Infection Bomb Explosion
infection_explode(ent)
{
    
    
// Round ended (bugfix)
    
if (g_endround) return;
    
    
// Get origin
    
static Float:originF[3]
    
pev(entpev_originoriginF)
    
    
// Make the explosion
    
create_blast(originF)
    
    
// Infection nade explode sound
    
static sound[64]
    
ArrayGetString(grenade_infectrandom_num(0ArraySize(grenade_infect) - 1), soundcharsmax(sound))
    
emit_sound(entCHAN_WEAPONsound1.0ATTN_NORM0PITCH_NORM)
    
    
// Get attacker
    
static attacker
    attacker 
pev(entpev_owner)
    
    
//Sumar Infs!
    
g_infecciones[attacker]++ // error
    
    // Infection bomb owner disconnected? (bugfix)
    
if (!is_user_valid_connected(attacker))
    {
        
// Get rid of the grenade
        
engfunc(EngFunc_RemoveEntityent)
        return;
    }
    
    
// Collisions
    
static victim
    victim 
= -1
    
    
while ((victim engfunc(EngFunc_FindEntityInSpherevictimoriginFNADE_EXPLOSION_RADIUS)) != 0)
    {
        
// Only effect alive non-spawnprotected humans
        
if (!is_user_valid_alive(victim) || g_zombie[victim] || g_nodamage[victim])
            continue;
        
        
// Last human is killed
        
if (fnGetHumans() == 1)
        {
            
ExecuteHamB(Ham_Killedvictimattacker0)
            continue;
        }
        
        
// Infected victim's sound
        
ArrayGetString(grenade_infect_playerrandom_num(0ArraySize(grenade_infect_player) - 1), soundcharsmax(sound))
        
emit_sound(victimCHAN_VOICEsound1.0ATTN_NORM0PITCH_NORM)
        
        
// Turn into zombie
        
zombieme(victimattacker011)
    }
    
    
// Get rid of the grenade
    
engfunc(EngFunc_RemoveEntityent)


Código PHP:
//Sumar Infs!
    
g_infecciones[attacker]++ // error 

esto último va dentro de while asi te suma por cada humano que infectaste y no solo por tirarla..

>>>>>>

Código PHP:
// Infection Bomb Explosion
infection_explode(ent)
{
    
    
// Round ended (bugfix)
    
if (g_endround) return;
    
    
// Get origin
    
static Float:originF[3]
    
pev(entpev_originoriginF)
    
    
// Make the explosion
    
create_blast(originF)
    
    
// Infection nade explode sound
    
static sound[64]
    
ArrayGetString(grenade_infectrandom_num(0ArraySize(grenade_infect) - 1), soundcharsmax(sound))
    
emit_sound(entCHAN_WEAPONsound1.0ATTN_NORM0PITCH_NORM)
    
    
// Get attacker
    
static attacker
    attacker 
pev(entpev_owner)
    
    
// Infection bomb owner disconnected? (bugfix)
    
if (!is_user_valid_connected(attacker))
    {
        
// Get rid of the grenade
        
engfunc(EngFunc_RemoveEntityent)
        return;
    }
    
    
// Collisions
    
static victim
    victim 
= -1
    
    
while ((victim engfunc(EngFunc_FindEntityInSpherevictimoriginFNADE_EXPLOSION_RADIUS)) != 0)
    {
        
// Only effect alive non-spawnprotected humans
        
if (!is_user_valid_alive(victim) || g_zombie[victim] || g_nodamage[victim])
            continue;
        
        
// Last human is killed
        
if (fnGetHumans() == 1)
        {
            
ExecuteHamB(Ham_Killedvictimattacker0)
            continue;
        }
        
        
// Infected victim's sound
        
ArrayGetString(grenade_infect_playerrandom_num(0ArraySize(grenade_infect_player) - 1), soundcharsmax(sound))
        
emit_sound(victimCHAN_VOICEsound1.0ATTN_NORM0PITCH_NORM)
        
        
// Turn into zombie
        
zombieme(victimattacker011)
    
    
//Sumar Infs!
    
g_infecciones[attacker]++ /// suma el g_infecciones por cada humano infectado con la bomba
    
}
    
    
// Get rid of the grenade
    
engfunc(EngFunc_RemoveEntityent)


Pero como te dije más antes, nose si es necesario esto por lo que ya sumás dentro de zombieme, haceme el favor de chequearlo y aclararlo
08/11/2018 01:06 AM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
kikizon2 Ausente
Suspendido


Donador Regalo Beta Tester Trebol purpura 1k Plugin popular
Mensajes: 3,476
Registro en: Jan 2014
Mensaje: #5
RE: [GUIA][ZP 4.3] Agregar niveles por Frags e Infecciones
When dices que todos los tutos son kk, pero el tuyo es recopilacion de kk Whatever
08/11/2018 01:09 AM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
[E]manuelitop15 Sin conexión
Miembro Junior


Mensajes: 34
Registro en: Oct 2018
Reputación: 0
Mensaje: #6
RE: [GUIA][ZP 4.3] Agregar niveles por Frags e Infecciones
(08/11/2018 01:09 AM)kikizon2 escribió:  When dices que todos los tutos son kk, pero el tuyo es recopilacion de kk Whatever

Los otros tutos no sirven y dan muchos erros este funciona bien no hables sin saber Whatever
08/11/2018 01:09 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
+rdNN! Sin conexión
Miembro


Mensajes: 64
Registro en: Aug 2016
Reputación: 0
Mensaje: #7
RE: [GUIA][ZP 4.3] Agregar niveles por Frags e Infecciones
(08/11/2018 01:09 PM)[E]manuelitop15 escribió:  
(08/11/2018 01:09 AM)kikizon2 escribió:  When dices que todos los tutos son kk, pero el tuyo es recopilacion de kk Whatever

Los otros tutos no sirven y dan muchos erros este funciona bien no hables sin saber Whatever

Los otros tutoriales si andan, tu eres el que no lee bien y cometes muchos errores.
08/11/2018 02:33 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
kikizon2 Ausente
Suspendido


Donador Regalo Beta Tester Trebol purpura 1k Plugin popular
Mensajes: 3,476
Registro en: Jan 2014
Mensaje: #8
RE: [GUIA][ZP 4.3] Agregar niveles por Frags e Infecciones
(08/11/2018 01:09 PM)[E]manuelitop15 escribió:  
(08/11/2018 01:09 AM)kikizon2 escribió:  When dices que todos los tutos son kk, pero el tuyo es recopilacion de kk Whatever

Los otros tutos no sirven y dan muchos erros este funciona bien no hables sin saber Whatever

Pues un poco si se, y te digo que es igual (o mas) "kk" que los demas, no entiendo la necesad de tener que 'aportar' sin saber que es lo que se hace.
08/11/2018 07:47 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
SthoNy' Sin conexión
Miembro Sr.


Mensajes: 284
Registro en: Apr 2015
Reputación: 4
Mensaje: #9
RE: [GUIA][ZP 4.3] Agregar niveles por Frags e Infecciones
(06/11/2018 05:34 PM)[E]manuelitop15 escribió:  Definimos las infecciones y frags por marcos
Código PHP:
#define FRAGS(%1)    (%1 * 1) + 1 //Si sube de nivel, se agregaria 1 frag más
#define INFECCIONES(%1)    (%1 * 1) + 1 // Si sube de nivel, se agregaria 1 infección más 

Muy wena tu guia man, solamente me quedó una duda. *Sarcasm*

¿Que tipo de marcos se utilizan? ¿Marcos de puertas o de ventanas? Genius

Mis Aportes:

[ TTT ] Item: Target Gun

[ TTT ] Item: Pipe Bomb
[ TTT ] Item: Inverse Golden (New)
Image Image
Pregúntate si lo que estás haciendo hoy te acerca a el lugar en el que quieres estar mañana. Corazón
08/11/2018 08:19 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Hypnotize Sin conexión
Suspendido


Donador
Mensajes: 308
Registro en: Dec 2017
Mensaje: #10
RE: [GUIA][ZP 4.3] Agregar niveles por Frags e Infecciones
(08/11/2018 01:09 AM)kikizon2 escribió:  When dices que todos los tutos son kk, pero el tuyo es recopilacion de kk Whatever

+1


(08/11/2018 08:19 PM)SthoNy escribió:  
(06/11/2018 05:34 PM)[E]manuelitop15 escribió:  Definimos las infecciones y frags por marcos
Código PHP:
#define FRAGS(%1)    (%1 * 1) + 1 //Si sube de nivel, se agregaria 1 frag más
#define INFECCIONES(%1)    (%1 * 1) + 1 // Si sube de nivel, se agregaria 1 infección más 

Muy wena tu guia man, solamente me quedó una duda. *Sarcasm*

¿Que tipo de marcos se utilizan? ¿Marcos de puertas o de ventanas? Genius

Marcos el del cs wey ese mero
09/11/2018 12:06 PM
Visita su sitio web 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