W internecie znalazłem owy plugin:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <biohazard>
#include <engine>
#define PLUGIN "Push player"
#define VERSION "1.0"
#define AUTHOR "OneEyed & Sn!ff3r"
new cvar
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
cvar = register_cvar("amx_moveplayer", "1")
register_touch("player", "player", "touchtouch")
}
public touchtouch(player, player2)
{
if(get_pcvar_num(cvar))
{
if((!(task_exists(player * 1000 + player2))) &&
(!(task_exists(player2 * 1000 + player))) &&
(get_user_button(player) & IN_ATTACK2) &&
is_user_zombie(player) &&
is_user_zombie(player2))
{
new Float:speed[2][3]
new Float:over_speed[3]
set_task(0.2, "empty_space", player * 1000 + player2)
set_task(0.2, "empty_space", player2 * 1000 + player)
entity_get_vector(player, EV_VEC_velocity, speed[0])
entity_get_vector(player2, EV_VEC_velocity, speed[1])
for(new i = 0; i < 3; i++)
{
over_speed[i] = speed[0][i] + speed[1][i]
speed[0][i] += over_speed[i] * 0.65
speed[1][i] -= over_speed[i] * 0.65
}
entity_set_vector(player, EV_VEC_velocity, speed[0])
entity_set_vector(player2, EV_VEC_velocity, speed[1])
}
}
}
public empty_space() {}
Wg opisu powinien on popychać Zombie przy nacisnieciu PPM. Niestety efekt nie był do końca osiągalny dlatego też trochę plugin przerobiłem w ten sposób:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <biohazard>
#include <engine>
#define PLUGIN "Push player"
#define VERSION "1.0"
#define AUTHOR "OneEyed & Sn!ff3r"
new cvar
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
cvar = register_cvar("amx_moveplayer", "1")
register_touch("player", "player", "touchtouch")
}
public touchtouch(player2, player)
{
if(get_pcvar_num(cvar))
{
if((!(task_exists(player * 1000 + player2))) &&
(!(task_exists(player2 * 1000 + player))) &&
(get_user_button(player2) & IN_ATTACK2) &&
is_user_zombie(player) &&
is_user_zombie(player2))
{
new Float:speed[2][3]
new Float:over_speed[3]
set_task(0.2, "empty_space", player * 1000 + player2)
set_task(0.2, "empty_space", player2 * 1000 + player)
entity_get_vector(player, EV_VEC_velocity, speed[0])
entity_get_vector(player2, EV_VEC_velocity, speed[1])
for(new i = 0; i < 3; i++)
{
over_speed[i] = speed[0][i] + speed[1][i]
speed[0][i] += over_speed[i] * 1.0
//speed[1][i] -= over_speed[i] * 4.0 //0.65
}
entity_set_vector(player, EV_VEC_velocity, speed[0])
entity_set_vector(player2, EV_VEC_velocity, speed[1])
}
}
}
public empty_space() {}
Po kilku poprawkach otrzymuję zamierzony efekt... zombie sie przesuwa podczas popychania... jednak brakuje jednej funkcjonalności... otóż mam problem z podrzuceniem zombie do góry... tak jakby popchaniem w osi pionowej...
Ma ktoś pomysł co zrobić z tym plugiem aby mozna było podrzucać zombie w górę ?
pozdrawiam.