Čia mano veikiantis kodas nematomų sienų kūrimui, skirtas ESF, tad kelis parametrus gali tekt pasikeist (classname, model).
Code: Select all
CreateBoundary(const Float:origin[3], const Float:mins[3], const Float:maxs[3], const className[], const solidType, const extraInfo = -1){ new const ent = create_entity("env_model"); entity_set_string(ent, EV_SZ_classname, className); entity_set_origin(ent, origin); entity_set_model(ent, "models/db1.mdl"); entity_set_int(ent, EV_INT_solid, solidType); entity_set_size(ent, mins, maxs); entity_set_float(ent, EV_FL_takedamage, DAMAGE_NO); if (extraInfo != -1) entity_set_int(ent, EV_INT_iuser1, extraInfo); set_rendering(ent, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0);}
Čia pavyzdinis kodas, kurį naudojau sudėti sienas aplink areną žemėlapyje:
Code: Select all
CreateArenaBoundaries(){ #define ARENA_X 3190.0 #define ARENA_Y 3640.0 #define ARENA_Z 5410.0 #define ARENA_MIN_X -1600.0 #define ARENA_MIN_Y -2040.0 #define ARENA_MIN_Z -2350.0 #define ARENA_MAX_X 1600.0 #define ARENA_MAX_Y 1600.0 #define ARENA_MAX_Z 3068.0 CreateBoundary(Float:{ARENA_MIN_X, ARENA_MIN_Y, ARENA_MIN_Z}, Float:{-1.0, 0.0, 0.0}, Float:{0.0, ARENA_Y, ARENA_Z}, "arena_boundary", SOLID_TRIGGER, AP_LEFT); CreateBoundary(Float:{ARENA_MIN_X, ARENA_MAX_Y, ARENA_MIN_Z}, Float:{0.0, 0.0, 0.0}, Float:{ARENA_X, 1.0, ARENA_Z}, "arena_boundary", SOLID_TRIGGER, AP_CENTER); CreateBoundary(Float:{ARENA_MAX_X, ARENA_MIN_Y, ARENA_MIN_Z}, Float:{0.0, 0.0, 0.0}, Float:{1.0, ARENA_Y, ARENA_Z}, "arena_boundary", SOLID_TRIGGER, AP_RIGHT); register_touch("arena_boundary", "player", "OnArenaBoundaryTouch");}
Kol tuos
mins ir
maxs perprasi, gali kiek užtrukt.