Witam,
Próbuję zrobić plugin który liczy odległość granata od gracza gdy granat dotknie ziemi pierwszy raz.
Problem leży w tym że w funkcji do Ham_Touch nie działa poprawnie id gracza...
#include <amxmodx>
#include <fakemeta_util>
#include <hamsandwich>
#define PLUGIN "Grenade Distance"
#define VERSION "1.0"
#define AUTHOR "oeN."
new Float:player_origin[33][3], bool:grenade_touched;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
RegisterHam(Ham_Touch, "grenade", "Touch")
}
public grenade_throw(id, greindex, grenade) {
if(grenade == CSW_SMOKEGRENADE) {
new origin[3];
get_user_origin(id, origin);
for(new i=0;i<3;i++)
player_origin[id][i] = float(origin[i]);
client_print(id, print_chat, "Rzuciles granat");
grenade_touched = false;
}
}
public Touch(ent, id) {
if(!grenade_touched) {
new Float:grenade_origin[3], Float:final_dist[3];
grenade_touched = true;
fm_get_brush_entity_origin(ent, grenade_origin);
xs_vec_cross(grenade_origin, player_origin[id], final_dist);
client_print(0, print_chat, "Granat wyladowal %.1f unitow od gracza", final_dist);
}
}
Jakieś sugestie co tu jest nie tak? Gdy używam player_origin[33][3] to w Touch gdy sprawdzam player_origin[id][0] wychodzi 0.0. Gdy jednak użyję player_origin[3] to już normalnie pokazuje...
@Edit
Ale Ja jestem głupi... Niby w jaki sposób miało by to być id gracza?... Ehh.
Delete to coś pls ![]()
Użytkownik oeN. edytował ten post 16.11.2015 22:02


Dodatki SourceMod












