/* VexdUM stocks backwards compatibility * * by the AMX Mod X Development Team * * This file is provided as is (no warranties). */ #if defined _vexd_bcompat_stocks_included #endinput #endif #define _vexd_bcompat_stocks_included #if !defined _engine_included #include #endif stock is_entity(ent) { return pev_valid(ent); } stock get_offset_int(ent, offset, linos = 5) { return get_pdata_int(ent, offset, linos); } stock set_offset_int(ent, offset, value, linos = 5) { return set_pdata_int(ent, offset, value, linos); } stock in_view_cone(ent, Float:Orig[3]) { return is_in_viewcone(ent, Orig); } stock get_maxentities() { return global_get(glb_maxEntities); } stock can_see(ent1, ent2) { if (is_entity(ent1) && is_entity(ent2)) { new flags = pev(ent1, pev_flags); if (flags & EF_NODRAW || flags & FL_NOTARGET) { return 0; } new Float:lookerOrig[3]; new Float:targetOrig[3]; new Float:temp[3]; pev(ent1, pev_origin, lookerOrig); pev(ent1, pev_view_ofs, temp); lookerOrig[0] += temp[0]; lookerOrig[1] += temp[1]; lookerOrig[2] += temp[2]; pev(ent2, pev_origin, targetOrig); pev(ent2, pev_view_ofs, temp); targetOrig[0] += temp[0]; targetOrig[1] += temp[1]; targetOrig[2] += temp[2]; engfunc(EngFunc_TraceLine, lookerOrig, targetOrig, 0, ent1, 0); if (get_tr2(0, TraceResult:TR_InOpen) && get_tr2(0, TraceResult:TR_InWater)) { return 0; } else { new Float:flFraction; get_tr2(0, TraceResult:TR_flFraction, flFraction); if (flFraction == 1.0 || (get_tr2(0, TraceResult:TR_pHit) == ent2)) { return 1; } } } return 0; } //From AMX Mod: // Find an entity in the world, will return -1 if nothing is found // type = 0: "classname" // type = 1: "globalname" // type = 2: "model" // type = 3: "target" // type = 4: "targetname" // type = 5: "netname" // type = 6: "message" // type = 7: "noise" // type = 8: "noise1" // type = 9: "noise2" // type = 10: "noise3" // type = 11: "viewmodel" // type = 12: "weaponmodel" stock vexd_find_entity(ent, szValue[], type=0) { static _g_FindEntTypes[13][] = { "classname", "globalname", "model", "target", "targetname", "netname", "messages", "noise", "noise1", "noise2", "noise3", "viewmodel", "weaponmodel" }; if (type < 0 || type >= 13) { type = 0; } return engfunc(EngFunc_FindEntityByString, ent, _g_FindEntTypes[type], szValue); } #define find_entity vexd_find_entity //From AMX Mod: // Find an entity within a given origin and radius stock find_entity_sphere(ent, Float:Orig[3], Float:Rad) { return engfunc(EngFunc_FindEntityInSphere, ent, Orig, Rad); }