[ZA] Ayuda con esta idea
#1
Bueno la idea que Tengo no se si sera Fácil o Difícil de Realizar pero es algo que se explica muy simple (Creo)

Que es lo que quiero que me ayuden pues en agregarle al Sistema de Combo que trae el [ZA] que para realizar un Combo se necesita una cierta cantidad de daño y ir bajando ese daño dependiendo del admin también agregarlo a la hora del vicio

Para hacer 1 de EXP se necesita 1500 de daño para realizar 1 Combo.

EJEMPLO: Estoy atacando a un zombie le pegue 42 balas y hice 2000 de daño Gano 1 de EXP por que nada mas eh echo 1 combo y me faltaría 1000 de daño para otro Combo ya sea el Combo numero 1 o 2

Espero que me puedan ayudar aki les dejo el zombieapocalypse46.sma de bajo


PD: Se que la idea ya la invento otro, pero la idea para mi es el reto de agregarlo al [ZA] sin remplazar el sistema de combo


Archivos adjuntos
.sma   Descargar AMXX / zombie_apocalypse46.sma (Tamaño: 566.58 KB / Descargas: 15)
Responder
#2
Pues es simple .. No se para que dejas tu codigo, nadie te lo hara xD.

1. Creas tu macro, la que se te de las ganas.
2. Funcion TakDamage (Post)
- Obtenes el danio, lo sumas a una variable local, compras con un if (Aunque si queres otra forma podrias usar un while) si la variable global supero a la macro.
- Si se comple la condicion anterior, le sumas 1 de exp.
- Aca viene lo que nos separa (?) .. Podes setear la variable global en 0 y hacer el if [Sumas el combo que va en la macro], o podes hacer el while y dejar la variable global que siga sumando
- Tambien si deseas, que por ej, en 5 segundos dejo de atacar (Sacar daño) ... podes obtener tiempo sys_time( ) y limpiar la variable

- Lo de menos daño siendo admin o por hora feliz, lo puedes definir en la misma macro.

Si quiere que te de una mano de como aplicarla al combo de tu zp, explicame como funciona y no vendrian mal una porciones de codigo, no descargare tu codigo y me pondre a buscar linea por lineas las funciones.

¡ Ya tenes todo servido ahora te toca pensar a ti !

Saludos,
cLAANS.-
Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017, 09:30 PM)SoundBlaster escribió: Espera y llamo a los power rangers para que me digan la linea de error
Responder
#3
Creo que esto son los códigos con que funciona el sistema de combo
1) SECTION_COMBO
2) TASK_COMBO
3) #define ID_COMBO (taskid - TASK_COMBO)
4) a) new g_damage_done[33] // damage done for combo
b) new g_combo[33] // combo for experience
c) new g_comboreward[33] // total experience in combo
5) a) Array:g_combo_levels
b) Array:g_combo_colors
c) Array:g_combo_says

el muestra un Hud que dice Hits echos (combo), Daño total y EXP obtenida
entonces por cada 1 Hit echo es 1 EXP si hago 2 Hits seria 2 de EXP y muestra el daño que hiciste pero no lo toma en cuenta para hacer un Hit o Combo

PD: si quieres no entendiste muy bien me dices estaré atento
Responder
#4
(24/05/2017, 09:48 AM)ascaban2000 escribió: Creo que esto son los códigos con que funciona el sistema de combo
1) SECTION_COMBO
2) TASK_COMBO
3) #define ID_COMBO (taskid - TASK_COMBO)
4) a) new g_damage_done[33] // damage done for combo
b) new g_combo[33] // combo for experience
c) new g_comboreward[33] // total experience in combo
5) a) Array:g_combo_levels
b) Array:g_combo_colors
c) Array:g_combo_says

el muestra un Hud que dice Hits echos (combo), Daño total y EXP obtenida
entonces por cada 1 Hit echo es 1 EXP si hago 2 Hits seria 2 de EXP y muestra el daño que hiciste pero no lo toma en cuenta para hacer un Hit o Combo

PD: si quieres no entendiste muy bien me dices estaré atento

Vale .. entonces tu lo que deseas es cambiar en vez de que te de experiencia por hits, te de experiencia por "x" damage, verdad ?

Saludos,
cLAANS.-
Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017, 09:30 PM)SoundBlaster escribió: Espera y llamo a los power rangers para que me digan la linea de error
Responder
#5
(24/05/2017, 07:33 PM)cLAANS escribió:
(24/05/2017, 09:48 AM)ascaban2000 escribió: Creo que esto son los códigos con que funciona el sistema de combo
1) SECTION_COMBO
2) TASK_COMBO
3) #define ID_COMBO (taskid - TASK_COMBO)
4) a) new g_damage_done[33] // damage done for combo
b) new g_combo[33] // combo for experience
c) new g_comboreward[33] // total experience in combo
5) a) Array:g_combo_levels
b) Array:g_combo_colors
c) Array:g_combo_says

el muestra un Hud que dice Hits echos (combo), Daño total y EXP obtenida
entonces por cada 1 Hit echo es 1 EXP si hago 2 Hits seria 2 de EXP y muestra el daño que hiciste pero no lo toma en cuenta para hacer un Hit o Combo

PD: si quieres no entendiste muy bien me dices estaré atento

Vale .. entonces tu lo que deseas es cambiar en vez de que te de experiencia por hits, te de experiencia por "x" damage, verdad ?

Saludos,
cLAANS.-


Si eso mismo Rainbow
Responder
#6
Vale entonces es super simple, fijate que g_damage_done[ 33 ]; debe almacenar el daño. Vos ahi mismo deberias hacer algo como

Código PHP:
if( g_damage_doneattacker ] >= mimacrog_comboattacker ] ) )
{
    
g_experienciaattacker ] += Numero
    g_combo
attaker ]++;


y bueno, deberias sacar la parte donde usa g_hits imagino, la verdad que no sabria decirte

Saludos,
cLAANS.-
Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017, 09:30 PM)SoundBlaster escribió: Espera y llamo a los power rangers para que me digan la linea de error
Responder
#7
(24/05/2017, 08:36 PM)cLAANS escribió: Vale entonces es super simple, fijate que g_damage_done[ 33 ]; debe almacenar el daño. Vos ahi mismo deberias hacer algo como

Código PHP:
if( g_damage_doneattacker ] >= mimacrog_comboattacker ] ) )
{
    
g_experienciaattacker ] += Numero
    g_combo
attaker ]++;


y bueno, deberias sacar la parte donde usa g_hits imagino, la verdad que no sabria decirte

Saludos,
cLAANS.-


Man yo no se mucho de agregar Código solo se copiar y pegar me podrías ayudar un poco mas explicándome detalladamente donde va cada cosa y que tengo que hacer (de Verdad no se mucho solo me guió por otros códigos)Whatdone

PD: en el ZA no hay nada llamado g_hits
Responder
#8
Si solo sabes copiar y pegar, date un tiro plis.

Sección incorrecta, supongo que sabes leer, no?
Aquí solo se da ayuda con códigos, no se dejan tus cosas en bandeja.
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#9
(24/05/2017, 11:29 PM)ascaban2000 escribió:
(24/05/2017, 08:36 PM)cLAANS escribió: Vale entonces es super simple, fijate que g_damage_done[ 33 ]; debe almacenar el daño. Vos ahi mismo deberias hacer algo como

Código PHP:
if( g_damage_doneattacker ] >= mimacrog_comboattacker ] ) )
{
    
g_experienciaattacker ] += Numero
    g_combo
attaker ]++;


y bueno, deberias sacar la parte donde usa g_hits imagino, la verdad que no sabria decirte

Saludos,
cLAANS.-


Man yo no se mucho de agregar Código solo se copiar y pegar me podrías ayudar un poco mas explicándome detalladamente donde va cada cosa y que tengo que hacer (de Verdad no se mucho solo me guió por otros códigos)Whatdone

PD: en el ZA no hay nada llamado g_hits

No, aprende. No vas a venir y tener el mejor zp de un dia para el otro, ni de una semana para la otra, ni para un mes para el otro.

Metele ganas, lee, guiate de buenas respuestas (Metaligay, rak, gente como chamo, axel, entre otros)

Yo no tengo drama en ayudarte, pero siempre y cuando vengas con preguntas puntuales.

Saludos,
cLAANS.-
Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017, 09:30 PM)SoundBlaster escribió: Espera y llamo a los power rangers para que me digan la linea de error
Responder
#10
Si es verdad prácticamente estoy diciendo que me lo hagan después y si me lo hacen no aprendo nada y si la idea es aprender disculpen (estoy de acuerdo con ustedes debo aprender o siempre seré una ka-ka copiando y pegando) JAjaaj debería pegarme un tiro como dice kikizon2 XD

Continuemos con el tema (Bueno si no quieren ayudarme con la idea los entiendo)

cLAANS

El combo no usa ningún g_hits

Pero Creo que el que cuenta los hits es el g_combo

¿Significa que se puede hacer de otra forma quitando el g_combo y hacer que "g_damage_done" haga que cada vez que llegue a un cierto daño le sume la exp ?

la pregunta es como hago que sume el g_damage_done para que cada cierto daño te sume la exp y hacer que abaje ese daño con los diferentes admins o Happy Hour(Hora Feliz)


PD: Disculpen por esa respuesta estoy claro que eso no se hace
Responder
#11
Vale te explico yo, lo mismo que @cLAANS, revisando un ZA 4.6 Default que tengo por aquí, lo único que veo necesitas es hacer esto:

1) Buscas:

Código PHP:
public on_damage(id)
{
    static 
attackerattacker get_user_attacker(id)
    static 
damagedamage read_data(2)
    
    
set_hudmessage(255000.450.5020.14.00.10.1, -1)
    
ShowSyncHudMsg(idg_MsgSync4"%i"damage)
    
    
// Connected?
    
if (!is_user_valid_connected(attacker)) return;
    
    
// Victim has Zombie Madness
    
if (g_nodamage[id]) return;
    
    
// Add received damage
    
if (g_class[id] >= ZOMBIE)
    {
        if (
g_class[id] == NEMESISg_damage[id][1][4] += damage
        
else if (g_class[id] == ALIENg_damage[id][1][5] += damage
        
else g_damage[id][1][1] += damage
    
}
    else
    {
        if (
g_class[id] == SURVIVORg_damage[id][1][2] += damage
        
else if (g_class[id] == WESKERg_damage[id][1][3] += damage
        
else g_damage[id][1][0] += damage
    
}
    
    
// Add inflicted damage
    
if (g_class[attacker] >= ZOMBIE)
    {
        if (
g_class[attacker] == NEMESISg_damage[attacker][0][4] += damage
        
else if (g_class[attacker] == ALIENg_damage[attacker][0][5] += damage
        
else g_damage[attacker][0][1] += damage
        
        
// Add combo +2 for zombie (two hands)
        
g_combo[attacker] += 2
    
}
    else
    {
        if (
g_class[attacker] == SURVIVORg_damage[attacker][0][2] += damage
        
else if (g_class[attacker] == WESKERg_damage[attacker][0][3] += damage
        
else g_damage[attacker][0][0] += damage
        
        
// Add combo
        
g_combo[attacker]++
    }
    
    
// Add damage
    
g_damage_done[attacker] += damage
        
    
// Remove task
    
remove_task(attacker+TASK_COMBO)
        
    
// Set combo tasks
    
set_task(0.1"combo_counter"attacker+TASK_COMBO)
    
set_task(5.0"give_bonus"attacker+TASK_COMBO)


2) Haces esto (debajo de g_damage_done[attacker] += damage):

Código PHP:
if (g_damage_done[attacker] >= GetComboDamage(attacker))
{
    
tu_variable_combo[attacker]++
    
tu_variable_experiencia[attacker]++


3) Adaptas esto, según tus variables/accesos para admin:

Código PHP:
GetComboDamage(const I_Player)
{
    new 
I_NeedDamage;
    static 
I_Flags;
    
I_Flags get_user_flags(I_Player)
    
I_NeedDamage 1500
    
    
if (I_Flags TU_ADMIN_1)
        
I_NeedDamage -= 250
    
else if (I_Flags TU_ADMIN_2)
        
I_NeedDamage -= 175
    
else if (I_Flags TU_ADMIN_3)
        
I_NeedDamage -= 90
        
    
if (tu_variable_vicio)
        
I_NeedDamage -= 100
    
    
return I_NeedDamage;


Listo, la tienes re-fácil, solo tienes que pensar.

PD: La forma de comprobar accesos la hago de esa forma, dado que no se si manejas una Array/Array dinámica para hacerlo
Responder
#12
(25/05/2017, 02:42 PM)Chamo. escribió: Vale te explico yo, lo mismo que @cLAANS, revisando un ZA 4.6 Default que tengo por aquí, lo único que veo necesitas es hacer esto:

1) Buscas:

Código PHP:
public on_damage(id)
{
    static 
attackerattacker get_user_attacker(id)
    static 
damagedamage read_data(2)
    
    
set_hudmessage(255000.450.5020.14.00.10.1, -1)
    
ShowSyncHudMsg(idg_MsgSync4"%i"damage)
    
    
// Connected?
    
if (!is_user_valid_connected(attacker)) return;
    
    
// Victim has Zombie Madness
    
if (g_nodamage[id]) return;
    
    
// Add received damage
    
if (g_class[id] >= ZOMBIE)
    {
        if (
g_class[id] == NEMESISg_damage[id][1][4] += damage
        
else if (g_class[id] == ALIENg_damage[id][1][5] += damage
        
else g_damage[id][1][1] += damage
    
}
    else
    {
        if (
g_class[id] == SURVIVORg_damage[id][1][2] += damage
        
else if (g_class[id] == WESKERg_damage[id][1][3] += damage
        
else g_damage[id][1][0] += damage
    
}
    
    
// Add inflicted damage
    
if (g_class[attacker] >= ZOMBIE)
    {
        if (
g_class[attacker] == NEMESISg_damage[attacker][0][4] += damage
        
else if (g_class[attacker] == ALIENg_damage[attacker][0][5] += damage
        
else g_damage[attacker][0][1] += damage
        
        
// Add combo +2 for zombie (two hands)
        
g_combo[attacker] += 2
    
}
    else
    {
        if (
g_class[attacker] == SURVIVORg_damage[attacker][0][2] += damage
        
else if (g_class[attacker] == WESKERg_damage[attacker][0][3] += damage
        
else g_damage[attacker][0][0] += damage
        
        
// Add combo
        
g_combo[attacker]++
    }
    
    
// Add damage
    
g_damage_done[attacker] += damage
        
    
// Remove task
    
remove_task(attacker+TASK_COMBO)
        
    
// Set combo tasks
    
set_task(0.1"combo_counter"attacker+TASK_COMBO)
    
set_task(5.0"give_bonus"attacker+TASK_COMBO)


2) Haces esto (debajo de g_damage_done[attacker] += damage):

Código PHP:
if (g_damage_done[attacker] >= GetComboDamage(attacker))
{
    
tu_variable_combo[attacker]++
    
tu_variable_experiencia[attacker]++


3) Adaptas esto, según tus variables/accesos para admin:

Código PHP:
GetComboDamage(const I_Player)
{
    new 
I_NeedDamage;
    static 
I_Flags;
    
I_Flags get_user_flags(I_Player)
    
I_NeedDamage 1500
    
    
if (I_Flags TU_ADMIN_1)
        
I_NeedDamage -= 250
    
else if (I_Flags TU_ADMIN_2)
        
I_NeedDamage -= 175
    
else if (I_Flags TU_ADMIN_3)
        
I_NeedDamage -= 90
        
    
if (tu_variable_vicio)
        
I_NeedDamage -= 100
    
    
return I_NeedDamage;


Listo, la tienes re-fácil, solo tienes que pensar.

PD: La forma de comprobar accesos la hago de esa forma, dado que no se si manejas una Array/Array dinámica para hacerlo


La hago así mira pero me lanza estos errores al compilar
Código PHP:
public on_damage(id)
{
    static 
attackerattacker get_user_attacker(id)
    static 
damagedamage read_data(2)
    
    
set_hudmessage(255000.450.5020.14.00.10.1, -1)
    
ShowSyncHudMsg(idg_MsgSync4"%i"damage)
    
    
// Connected?
    
if (!is_user_valid_connected(attacker)) return;
    
    
// Victim has Zombie Madness
    
if (g_nodamage[id]) return;
    
    
// Add received damage
    
if (g_class[id] >= ZOMBIE)
    {
        if (
g_class[id] == NEMESISg_damage[id][1][4] += damage
        
else if (g_class[id] == ALIENg_damage[id][1][5] += damage
        
else g_damage[id][1][1] += damage
    
}
    else
    {
        if (
g_class[id] == SURVIVORg_damage[id][1][2] += damage
        
else if (g_class[id] == WESKERg_damage[id][1][3] += damage
        
else g_damage[id][1][0] += damage
    
}
    
    
// Add inflicted damage
    
if (g_class[attacker] >= ZOMBIE)
    {
        if (
g_class[attacker] == NEMESISg_damage[attacker][0][4] += damage
        
else if (g_class[attacker] == ALIENg_damage[attacker][0][5] += damage
        
else g_damage[attacker][0][1] += damage
        
        
// Add combo +2 for zombie (two hands)
        
g_combo[attacker] += 2
    
}
    else
    {
        if (
g_class[attacker] == SURVIVORg_damage[attacker][0][2] += damage
        
else if (g_class[attacker] == WESKERg_damage[attacker][0][3] += damage
        
else g_damage[attacker][0][0] += damage
        
        
// Add combo
        
g_combo[attacker]++
    }
    
// Add damage
    
g_damage_done[attacker] += damage
    
    
if (g_damage_done[attacker] >= GetComboDamage(attacker))
    {
    
g_combo[attacker]++
    
g_experience[attacker]++
    }
    
GetComboDamage(const I_Player)
    {
    new 
I_NeedDamage;
    static 
I_Flags;
    
I_Flags get_user_flags(I_Player)
    
I_NeedDamage 1500
    
}
    
    
    
// Remove task
    
remove_task(attacker+TASK_COMBO)
        
    
// Set combo tasks
    
set_task(0.1"combo_counter"attacker+TASK_COMBO)
    
set_task(5.0"give_bonus"attacker+TASK_COMBO)
    

Errores de Compile:
Error: Undefined symbol "GetComboDamage" on line 12317
Error: Undefined symbol "GetComboDamage" on line 12322
Error: Invalid expression, assumed zero on line 12322
Error: Undefined symbol "I_Player" on line 12322
Error: Too many error messages on one line on line 12322


Quite esto del código para hacer un test rápidamente
Código PHP:
if (I_Flags TU_ADMIN_1)
        
I_NeedDamage -= 250
    
else if (I_Flags TU_ADMIN_2)
        
I_NeedDamage -= 175
    
else if (I_Flags TU_ADMIN_3)
        
I_NeedDamage -= 90
        
    
if (tu_variable_vicio)
        
I_NeedDamage -= 100 

También quito el return por que lanza otro error al compilar que seria este

Warning: Function "on_damage" should return a value on line 12279

PD: incluso el código donde se define el daño para la ganancia de exp la cambie hacia Give_bonus(id) sigue los mismo errores
Responder
#13
Compañero, a mi no me tiro error, lo puse asi pero al final del plugin

Código PHP:
GetComboDamage(const I_Player)
{
    new 
I_NeedDamage;
    static 
I_Flags;
    
I_Flags get_user_flags(I_Player)
    
I_NeedDamage 250
    
if (g_happytime)
    
I_NeedDamage -= 80
    
return I_NeedDamage;


Vos modificalo como quieras, en happy hour tiene 80, pero podes cambiarlo y agregar otra mas para admin.
kissmeyearbasic-
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)