#include
#include
#include
#define PLUGIN "Co mnie bedzie spychalo!"
#define VERSION "1.0"
#define AUTHOR "R3X"
new Float:gfSpawns[64][3], giSpawnsNum = 0;
new gcvarMaxDistance;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
gcvarMaxDistance = register_cvar("amx_push_maxdistance", "400.0");
new ent = -1;
while((ent = find_ent_by_class(ent, "info_player_start")))
{
entity_get_vector(ent, EV_VEC_origin, gfSpawns[giSpawnsNum++]);
}
}
public plugin_cfg()
{
setTrigPushSolid(SOLID_NOT);
}
public plugin_end()
{
setTrigPushSolid(SOLID_TRIGGER);
}
public plugin_unpause()
{
setTrigPushSolid(SOLID_NOT);
}
public plugin_pause()
{
setTrigPushSolid(SOLID_TRIGGER);
}
is_on_spawn(ent, Float:fMaxDistance)
{
new Float:fMins[3], Float:fOrigin[3];
entity_get_vector(ent, EV_VEC_absmin, fMins);
entity_get_vector(ent, EV_VEC_absmax, fOrigin);
fOrigin[0] = (fOrigin[0]+fMins[0])/2;
fOrigin[1] = (fOrigin[1]+fMins[1])/2;
fOrigin[2] = (fOrigin[2]+fMins[2])/2;
for(new i=0;i {
if(get_distance_f(fOrigin, gfSpawns[i]) < fMaxDistance)
{
return 1;
}
}
return 0;
}
setTrigPushSolid(solid)
{
new Float:fDistance = get_pcvar_float(gcvarMaxDistance);
new ent = -1;
while((ent = find_ent_by_class(ent, "trigger_push")))
{
if(is_on_spawn(ent, fDistance))
entity_set_int(ent, EV_INT_solid, solid);
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/
Plugin nie do końca działa tak jak powinien
Autor umieścił takiego enta:
while((ent = find_ent_by_class(ent, "trigger_push"))){
Który nie pozbywa się tego "trigger_push" który spycha z respa.
Niektóre mapy zamiast tego trigger_push używają "func_conveyor".
Po dodaniu:
while((ent = find_ent_by_class(ent, "func_conveyor")))
func_conveyor (nasze spychanie) usuwa.
Tutaj rodzi się pytanie dlaczego nie usuwa "trigger_push?
Użytkownik Vakos edytował ten post 14.07.2019 21:38