Что-то подобное получается но не совсем то, объект (игрок, заложник) начинает почему-то приближаться к себе, и переносить толком нельзя, слетает когда двигаешся в право или в лево и. т. п. ? , и как заблокировать все его действия ? Помогите пожалуйста. Пробывал так:
Code
#include amxmodx
#include engine
#include fakemeta
#define PLUGIN "Use Teleporter"
#define VERSION "1.0"
#define AUTHOR "PahanCS"
#define radius 50.0
new use_teleporter = 0
public plugin_init() {
register_forward(FM_PlayerPreThink, "forward_playerprethink")
register_concmd("use_teleport", "use_teleport")
register_plugin(PLUGIN, VERSION, AUTHOR)
}
//
public use_teleport(id) {
if(use_teleporter == 0) {
use_teleporter = 1
client_print(id, print_center, "Use Teleporter 'ON'")
}
else {
use_teleporter = 0
client_print(id, print_center, "Use Teleporter 'OFF'")
}
return PLUGIN_HANDLED
}
//
public forward_playerprethink(id) {
if(use_teleporter != 1) return FMRES_IGNORED;
if(!is_user_alive(id)) return FMRES_IGNORED;
if(!(get_user_button(id) & IN_USE)) return FMRES_IGNORED;
new orig[3], Float:iOrigin[3];
get_user_origin(id, orig, 3);
IVecFVec(orig, iOrigin)
new id2 = find_ent_in_sphere(id, iOrigin, radius);
if(id2 == 0 || id2 == id) return FMRES_IGNORED;
new Float:healthid;
pev(id2, pev_health, healthid);
if(healthid <= 0.0) return FMRES_IGNORED;
new Float:iOrigin3[3], Float:iOrigin4[3];
pev(id, pev_origin, iOrigin3);
pev(id2, pev_origin, iOrigin4);
if(get_distance_f(iOrigin3, iOrigin4) <= 60.0) return FMRES_IGNORED; //Это потому что не
// получается держать объект на месте, а как ?
if(id2 > 32) iOrigin[2] -= 30.0 //Это в основном для заложей.
set_pev(id2, pev_origin, iOrigin);
return FMRES_IGNORED;
}