08/07/2014, 01:54 AM
(Última modificación: 08/07/2014, 04:02 PM por Evil Spiret.)
Hola chicos les dejo este sistema de combos.
Sirve para 4.2 , no se si servira para 4.3
Dueño del code: L//
Explicaciones: SkiGz
buscamos // Task offsets
Al final ponemos
Abajo de
Ponemos
Agregamos la variables y el macro
Despues buscamos esto
y al lado agregamos
Ahora en public plugin_init()
en // Ham Take Damage Forward
Abajo de
Ponemos
Y abajo de eso, ponemos esto
Ahora en public fw_ClientDisconnect(id)
Abajo de
ponemos
Ahora los public , los ponen donde mas les guste
Ahora para que nos de los APS del Combo , voy a corregir algo.
En el public que finaliza el combo
A esto
Le agregamos esto
Quedaria:
Saludos, si falto algo me avisan.
Sirve para 4.2 , no se si servira para 4.3
Dueño del code: L//
Explicaciones: SkiGz
buscamos // Task offsets
Al final ponemos
Código PHP:
TASK_INFO_COMBO, // el task muestra información de combo
TASK_FINISH_COMBO, // el task hace finalización de combo
TASK_RESET_COMBO // el task restablece el combo
Abajo de
Código PHP:
#define ID_SHOWHUD (taskid - TASK_SHOWHUD)
Ponemos
Código PHP:
#define ID_INFO_COMBO (taskid - TASK_INFO_COMBO) // definimos la información del combo
#define ID_FINISH_COMBO (taskid - TASK_FINISH_COMBO) // definimos el finalizado del combo
#define ID_RESET_COMBO (taskid - TASK_RESET_COMBO) // definimos el restablecimiento del combo
Agregamos la variables y el macro
Código PHP:
new g_damagecombo[33] // variable del damage causado por el player
new g_damagehits[33] // variable de los hits provocados por el damage
new g_combo[33] // variable del combo
new g_info_combo[33][64] // variable de la información de combo
#define ammount_damage(%1) (%1 + 1) * 300 // determinamos porcentaje en una ecuación matemática
Despues buscamos esto
Código PHP:
new g_MsgSync, g_MsgSync2
Código PHP:
g_MsgSync3 // variable para que registremos el hud de nuestro combo
Ahora en public plugin_init()
Código PHP:
g_MsgSync3 = CreateHudSyncObj()
en // Ham Take Damage Forward
Abajo de
Código PHP:
// Store damage dealt
g_damagedealt[attacker] += floatround(damage)
Ponemos
Código PHP:
new bool:up
Y abajo de eso, ponemos esto
Código PHP:
// Almacenamos daño por combo
g_damagecombo[attacker] += floatround(damage) // le asignamos el damage
g_damagehits[attacker]++ // acumula los hits hecho por el player
show_current_combo(attacker, floatround(damage)) // llamamos el task al atacante
remove_task(attacker+TASK_RESET_COMBO)
if (g_damagehits[attacker] > 5) // creamos la condición
{
while (g_damagecombo[attacker] >= ammount_damage(g_combo[attacker])) //hacemos un while para detectar la subida del damage en el combo
{
g_combo[attacker]++ // sumamos 1 combo más
up = true // verifica si el combo fue sumado
}
if (up) // condición para seguir el combo
{
formatex(g_info_combo[attacker], 63, "Combo %d completado!", g_combo[attacker]) // completamos el combo
remove_task(attacker+TASK_INFO_COMBO) // removemos el task
set_task(3.0, "info_combo", attacker+TASK_INFO_COMBO) // task en 0,3 segundos para finalizar el combo
}
remove_task(attacker+TASK_FINISH_COMBO) // removemos el task
set_task(3.0, "finish_combo", attacker+TASK_FINISH_COMBO) // finaliza el combo y nos dará los ammopacks correspondientes
}
else
{
set_task(1.0, "reset_combo", attacker+TASK_RESET_COMBO) // task en 0,1 segundo para reiniciar el combo en cero
}
Ahora en public fw_ClientDisconnect(id)
Abajo de
Código PHP:
remove_task(id+TASK_SHOWHUD)
ponemos
Código PHP:
remove_task(id+TASK_INFO_COMBO) // remueve el task del combo
remove_task(id+TASK_FINISH_COMBO) // remueve el task que indica que finalizó el combo
remove_task(id+TASK_RESET_COMBO) // remueve el combo & lo reinicia
Ahora los public , los ponen donde mas les guste
Código PHP:
public show_current_combo(id, idamage) // public para el combo ocurrido funcione
{
static combo; combo = g_combo[id]
set_hudmessage(255, 0, 0, -1.0, 0.6, 1, 3.0, 3.0, 0.01, 0.01)
if (!combo)
{
ShowSyncHudMsg(id, g_MsgSync3, "%d", idamage)
}
else
{
ShowSyncHudMsg(id, g_MsgSync3, "%s^n^nCombo %d^n%d | %d", g_info_combo[id], combo + 1, g_damagecombo[id], ammount_damage(combo))
}
}
Código PHP:
public finish_combo(taskid) // public que finaliza el combo
{
static id, ap, info[32];
id = ID_FINISH_COMBO // finaliza el combo
ap = (g_combo[id] * 2) // nos dará los aps
set_hudmessage(255, 255, 255, -1.0, 0.6, 0, 3.0, 3.0, 0.01, 0.01) // colores para el hud del combo
if (ap) // condicion para proseguir
{
formatex(info, charsmax(info), "Extra AP ganados: %d", ap) // nos dará los ammopacks correspondientes
}
else
{
info[0] = '^0'
}
ShowSyncHudMsg(id, g_MsgSync3, "Combo finalizado!^nTotal: %d, danio: %d, hits: %d^n^n%s", g_combo[id], g_damagecombo[id], g_damagehits[id], info) // hud que índica que el combo ha finalizado
g_combo[id] = 0 // reinicia el combo en cero
g_damagecombo[id] = 0 // reinicia el damage
g_damagehits[id] = 0 // reinicia los hits por el damage
}
Código PHP:
public info_combo(taskid) // public que nos dará la info del combo
{
static id;
id = ID_INFO_COMBO
g_info_combo[id][0] = '^0' // nos dará cierta información
}
Código PHP:
public reset_combo(taskid) // public que reinicia el combo
{
static id;
id = ID_RESET_COMBO
g_combo[id] = 0
g_damagecombo[id] = 0
g_damagehits[id] = 0
}
Ahora para que nos de los APS del Combo , voy a corregir algo.
En el public que finaliza el combo
A esto
Código PHP:
if (ap) // condicion para proseguir
{
formatex(info, charsmax(info), "Extra AP ganados: %d", ap) // nos dará los ammopacks correspondientes
}
Le agregamos esto
Código PHP:
g_ammopacks[id] += ap
Quedaria:
Código PHP:
if (ap) // condicion para proseguir
{
formatex(info, charsmax(info), "Extra AP ganados: %d", ap) // nos dará los ammopacks correspondientes
g_ammopacks[id] += ap
}
Saludos, si falto algo me avisan.