Raised This Month: $51 Target: $400
 12% 

[TUT] Combos ZP


  
 
 
Thread Tools Display Modes
Author Message
lobito
Member
Join Date: Dec 2010
Old 01-03-2013 , 01:00   [TUT] Combos ZP
#1

Como no vi ningun tutorial de combos para zp y muchas personas preguntando por uno, lo cree. En fin, aca les dejo una forma de crear combos.

* No esta testeado.

* Lo habia creado para zp 4.2

* Si quieren los combos solo para uso sin niveles donde dice combo_next(%1, %2) ((g_combo[%1][combo] * %2) * 300 + (g_level[%1] * %2) * 20) lo reeemplazamos por combo_next(%1, %2) ((g_combo[%1][combo] * %2) * 300 + (g_ammopacks[%1] * %2) * 20).

* Por favor, si no les gusta no hagan comentarios fuera de lugar o innecesarios.

* Si hay lago mal por favor diganlo asi lo corregimos, este es mi primer tutorial.

1) Abrir el zombie_plague.sma. Abajo de los includes agregan

PHP Code:
/* Combo AmmoPack */
enum _COMBO_DATA // hacemos un enum que usaremos en ves de crear muchas variables. El enum tendra:
{
 
Float:iDamage// aca guardaremos el danio, el danio puede tener numeros decimales por eso le pondremos Float: adelante.
 
Hits// aca guardaremos los hits del combo
 
Headshots// aca guardaremos los headshots del combo
 
eInfo// aca guardaremos el nivel de informacion de combo
 
Combo // aca guardaremos la cantidad de combos realizados
}
new 
g_combo[33][COMBO_DATA], g_combo_msg // Creamos 2 variables globales. La primera contiene todos los datos
// del combo. La segunda es el hud en el cual el combo se mostrará.
 
#define combo_next(%1,%2) ((g_combo[%1][Combo] * %2) * 300  + (g_ammopacks[%1] * %2) * 20) // la condicion para que el combo aumente.
 
new const combo_info[][] = { "Bien""Muy Bien""Excelente""Increible""Genial""Espectacular!""Impresionante!!""Sorprendente!!!""!!!Alucinante!!!""¡¡¡¡¡GODLIKE!!!!!" }
// creamos un const para que nos muestre en el hud, segun el nivel de la variable g_combo[id][eInfo], la info
// eg: g_combo[id][eInfo] = 4 Nos mostrara "Increible".
 
#define TASK_COMBO 5678 // creamos el task del combo
#define FINISH_COMBO (taskid - TASK_COMBO) 
Pueden cambiar lo que salga en el hud por donde dice combo_info.

2) Buscamos la funcion plugin_init() y abajo de g_MsgSync = CreateHudSyncObj(), agregamos

PHP Code:
g_combo_msg CreateHudSyncObj() // aca creamos el hud 
Nos quedaria..
PHP Code:
 // Create the HUD Sync Objects
 
g_MsgSync CreateHudSyncObj() 
 
g_MsgSync2 CreateHudSyncObj() 
 
g_combo_msg CreateHudSyncObj() 
3) Al final de client putinserver y client disconnect agregamos:

PHP Code:
for (new 0COMBO_DATAi++) // creamos un loop para setear todas los datos guardados a 0.
  
g_combo[id][i] = // los seteamos en 0
ClearSyncHud(idg_combo_msg// borramos el contenido de g_combo_msg 
4) Buscamos el takedamage (el public donde se obtiene el danio echo-recibido). En el .sma esta como
fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type). Donde dice if (!g_zombie[attacker]), abajo agregamos

PHP Code:
  // Combos
  
g_combo[attacker][iDamage] += floatround(damage// acumulamos el danio
  
g_combo[attacker][Hits]++ // acumulamos los hits
 
  
if (get_pdata_int(victim75) == HIT_HEAD// si el disparo fue en la cabeza
   
g_combo[attacker][Headshots]++ // aumentamos los headshots del combo
 
  
set_hudmessage(25500, -1.00.603.03.00.010.01// le decimos la preferencias de como salga el hud,
  // en este caso saldra rojo y centrado.
 
  
ShowSyncHudMsg(attackerg_combo_msg"Combo de %d AmmoPacks^n%d | %f Daño | %d Hits | %d HeadShots",  g_combo[attacker][Combo], combo_info[g_combo[attacker][eInfo]], g_combo[attacker][iDamage], g_combo[attacker][Hits], g_combo[attacker][Headshots])
  
// le mostramos los combos al usuario/atacante.
 
  
while (g_combo[attacker][iDamage] > combo_next(attackerg_combo[attacker][Combo])) // si el combo es mayor a lo pedido entonces....
  
{
   
g_combo[attacker][Combo]++ // aumentamos el combo
 
   
if (g_combo[attacker][eInfo] < 11// si la info del combo es menor a 11
    
while (g_combo[attacker][iDamage] > combo_next(attackerg_combo[attacker][Combo])) // y si el combo es mayor a lo pedido entonces....
     
g_combo[attacker][eInfo]++ // aumentamos la informcaion de el combo
  
}
 
  
remove_task(attacker+TASK_COMBO// removemos el task
  
set_task(4.0"reset_combo"attacker+TASK_COMBO// lo volvemos a llamar 
Nos quedaria..

PHP Code:
 // 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)
 }
 
 
// Combos
 
g_combo[attacker][iDamage] += floatround(damage// acumulamos el danio
 
g_combo[attacker][Hits]++ // acumulamos los hits
 
 
if (get_pdata_int(victim75) == HIT_HEAD// si el disparo fue en la cabeza
  
g_combo[attacker][Headshots]++ // aumentamos los headshots del combo
 
 
set_hudmessage(25500, -1.00.603.03.00.010.01// le decimos la preferencias de como salga el hud,
 // en este caso saldra rojo y centrado.
 
 
ShowSyncHudMsg(attackerg_combo_msg"Combo de %d AmmoPacks^n%d | %f Daño | %d Hits | %d HeadShots",  g_combo[attacker][Combo], combo_info[g_combo[attacker][eInfo]], g_combo[attacker][iDamage], g_combo[attacker][Hits], g_combo[attacker][Headshots])
 
// le mostramos los combos al usuario/atacante.
 
 
while (g_combo[attacker][iDamage] > combo_next(attackerg_combo[attacker][Combo])) // si el combo es mayor a lo pedido (next_combo) entonces....
 
{
  
g_combo[attacker][Combo]++ // aumentamos el combo
 
  
if (g_combo[attacker][eInfo] < 11// si la info del combo es menor a 11
   
while (g_combo[attacker][iDamage] > combo_next(attackerg_combo[attacker][Combo])) // y si el combo es mayor a lo pedido entonces....
    
g_combo[attacker][eInfo]++ // aumentamos la informcaion de el combo
 
}
 
 
remove_task(attacker+TASK_COMBO// removemos el task
 
set_task(4.0"reset_combo"attacker+TASK_COMBO// lo volvemos a llamar
 
 // Reward ammo packs
 
if (!g_survivor[attacker] || !get_pcvar_num(cvar_survignoreammo))
 {
  
// Store damage dealt
  
g_damagedealt[attacker] += floatround(damage)
 
  
// 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)
  {
   
g_ammopacks[attacker]++
   
g_damagedealt[attacker] -= ammodamage
  
}
 }
 
 return 
HAM_IGNORED;
 } 
5) Por ultimo, vamos al final del zp y agregamos

PHP Code:
public reset_combo(taskid// aca se termina el combo
{
 static 
idgBonificacion
 id 
FINISH_COMBO
 
 gBonificacion 
= ((g_combo[id][Combo] * 2) * g_combo[id][eInfo]) // esta bonificacion es un ejemplo, le
 // pueden poner como se les ocurra. Aca daria: si el combo es de 20. 20*2= 40*11= 440. Le daria 440 ammopacks extras
 
 
set_hudmessage(255255255, -1.00.1106.05.0)// le decimos la preferencias de como salga el hud de
 // finalizacion de combo, en este caso saldra blanco.
 
 
ShowSyncHudMsg(idg_combo_msg"Combo %d Finalizado!^nExtra de %d AmmoPacks^n"g_combo[id][Combo], g_combo[id][Combo] * 2)
 
// le mostramos la bonificacion al usuario.
 
 
for (new 0COMBO_DATAi++) // Creamos un loop para setear todas los datos guardados a 0.
  
g_combo[id][i] = // los seteamos en 0
 
 
ClearSyncHud(idg_combo_msg// borramos el contenido de g_combo_msg
 
 /*check_level(id)*/
 // En este lugar tienen que poner el public donde checkean el nivel si es que tienen, sino agregan
 // g_ammopacks[id] += gBonificacion

Creditos:
Neeeeeeeeeeeel.- -> vi una parte de combo_info en un post y la adapte
fearAR -> por el tut de macros y apartir de ahí creee el combo_next
L//
Les dejo un zp con combos ya puestos, ese zp no tiene niveles asique reemplaze las partes que dice g_level por g_ammopacks.
Attached Files
File Type: sma Get Plugin or Get Source (zombie_plague40.sma - 643 views - 9.8 KB)

Last edited by lobito; 01-03-2013 at 20:27.
lobito is offline
dalegato
Senior Member
Join Date: Feb 2011
Old 01-03-2013 , 01:14   Re: [TUT] Combos ZP
#2

Quote:
Originally Posted by lobito View Post
Como no vi ningun tutorial de combos para zp y muchas personas preguntando por uno, lo cree.
¿Y esto que es?, ¿nos enseña a preparar cafe?

https://forums.alliedmods.net/showthread.php?t=169040

Tu no los creaste, parte del code es de L//, se dice lo edite un poco.
dalegato is offline
Exodisto
BANNED
Join Date: Dec 2012
Location: Algún que otro lugar
Old 01-03-2013 , 01:32   Re: [TUT] Combos ZP
#3

Pero creo que este es mucho mejor, el otro era horrible, porque no te da los ap al final del combo sino a medida que lo vas haciendo...

PD: Lo testeé pero al finalizar el combo no me sale el segundo cartelito que dice: combo %d finalizado y toda la wea
PD 2: No sube el combo.
PD 3: El combo al dejar de disparar desaparece inmediatamente... tendría que esperar almenos unos 4 segundos.

Last edited by Exodisto; 01-03-2013 at 01:58.
Exodisto is offline
Roccoxx
AlliedModders Donor
Join Date: Jan 2012
Location: Argentina
Old 01-03-2013 , 02:34   Re: [TUT] Combos ZP
#4

sino esta testeado para que lo subes?¿para generar confusiones? antes de aportar algo revisa el code y prueba que funcione...
__________________
Tutorials here (Spanish)

Like as another Pijudo said: "Tired and retired"
Roccoxx is offline
Send a message via MSN to Roccoxx
Exodisto
BANNED
Join Date: Dec 2012
Location: Algún que otro lugar
Old 01-03-2013 , 02:35   Re: [TUT] Combos ZP
#5

Quote:
Originally Posted by Roccoxx View Post
sino esta testeado para que lo subes?¿para generar confusiones? antes de aportar algo revisa el code y prueba que funcione...
+10
Exodisto is offline
rak
Veteran Member
Join Date: Oct 2011
Location: banned country
Old 01-03-2013 , 02:49   Re: [TUT] Combos ZP
#6

creo q es una copia del viejo modificado...........
__________________

www.amxmodx-es.com

Steam: Luchokoldo
rak is offline
Send a message via MSN to rak Send a message via Skype™ to rak
Exodisto
BANNED
Join Date: Dec 2012
Location: Algún que otro lugar
Old 01-03-2013 , 02:57   Re: [TUT] Combos ZP
#7

Pero este esta mas lindo con un par de cosillas mas que tiene, igualmente como dije antes... he testeado y tiene estos problemas:

1: Lo testeé pero al finalizar el combo no me sale el segundo cartelito que dice: combo %d finalizado.
2: No sube el combo.
3: El combo al dejar de disparar desaparece inmediatamente... tendría que esperar almenos unos 4 segundos.
Exodisto is offline
Neeeeeeeeeel.-
Some Guy Yellin'
Join Date: Jul 2010
Location: Argentina
Old 01-03-2013 , 11:13   Re: [TUT] Combos ZP
#8

Por lo menos dale créditos a \\L

PHP Code:
for (new 0COMBO_DATAi++) // Creamos un loop para setear todas los datos guardados a 0.
  
g_combo[id][i] = // los seteamos en 0

//--->

arraysetg_comboid ], 0COMBO_DATA ); 
;)
__________________

Last edited by Neeeeeeeeeel.-; 01-03-2013 at 11:15.
Neeeeeeeeeel.- is offline
Send a message via Skype™ to Neeeeeeeeeel.-
lobito
Member
Join Date: Dec 2010
Old 01-03-2013 , 20:32   Re: [TUT] Combos ZP
#9

Quote:
Originally Posted by dalegato View Post
Tu no los creaste, parte del code es de L//, se dice lo edite un poco.
Donde dice que los combos son mios? Yo cree una parte y modifique otra. Ahi dice que cree un tutorial no los combos.
lobito is offline
Exodisto
BANNED
Join Date: Dec 2012
Location: Algún que otro lugar
Old 01-03-2013 , 20:53   Re: [TUT] Combos ZP
#10

esta todo mal hecho lobito, testealo, arreglalo y recien ahí subelo...
Exodisto is offline
 



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 20:47.


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