rendered paste body#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "SAMURAI"
#define ROCK_MINS Float:{ -78.0,-5.0,-156.0 }
#define ROCK_MAXS Float:{ 78.0, 5.0, 156.0 }
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_concmd("say place","place_rock",ADMIN_BAN,"place rock");
}
public place_rock(id,level,cid)
{
if(!cmd_access(id,level,cid,1))
return PLUGIN_HANDLED;
new Float:fVec[3], Float:fOrigin[3];
new angle;
velocity_by_aim(id,150,fVec);
pev(id, pev_origin, fOrigin);
fOrigin[0] += fVec[0];
fOrigin[1] += fVec[1];
fOrigin[2] -= 20.0;
pev(id, pev_v_angle, fVec);
angle = floatround(fVec[1]);
if (angle < 0)
angle += 360;
if (angle > 180)
angle -= 180;
make_rock(fOrigin, (angle > 45 && angle < 135));
return PLUGIN_HANDLED
}
make_rock(Float:origin[3], angle)
{
new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "func_wall"))
new Float:mins[3], Float:maxs[3];
new Float:ftmp;
set_pev(ent, pev_classname, "amxx_stone")
mins = ROCK_MINS
maxs = ROCK_MINS
if(!angle)
{
ftmp = mins[1]
mins[1] = mins[0]
mins[0] = ftmp
ftmp = maxs[1]
maxs[1] = maxs[0]
maxs[0] = ftmp
engfunc(EngFunc_SetModel, ent, "models/rockgibs.mdl")
}
else
engfunc(EngFunc_SetModel, ent, "models/rockgibs.mdl")
dllfunc(DLLFunc_Spawn, ent)
// set sizes etc.
engfunc(EngFunc_SetSize, ent, ROCK_MINS, ROCK_MINS)
set_pev(ent, pev_mins, mins)
set_pev(ent, pev_maxs, maxs)
set_pev(ent, pev_absmin, mins)
set_pev(ent, pev_absmax, maxs)
origin[0] += random_float(-0.4, 0.4)
origin[1] += random_float(-0.4, 0.4)
engfunc(EngFunc_SetOrigin, ent, origin)
set_pev(ent, pev_movetype, MOVETYPE_FLY)
set_pev(ent, pev_solid, SOLID_BBOX)
set_pev(ent, pev_takedamage, DAMAGE_NO)
return ent
}