#include #include #include #include #include #include new const nazwa[] = "SpadochroniarzoSaper"; new const opis[] = "Posiada 3 miny i spadochron"; new const bronie = 1< 0) { if(para_ent[id]) uzywa[id] = false; else { uzywa[id] = true; pozostale_spadochrony[id]--; } } else ColorChat(id, RED, "Wykorzystales juz wszystkie 5 spadochronow"); ilosc_min_gracza[id]--; new Float:origin[3]; entity_get_vector(id, EV_VEC_origin, origin); new ent = create_entity("info_target"); entity_set_string(ent ,EV_SZ_classname, "mine"); entity_set_edict(ent ,EV_ENT_owner, id); entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS); entity_set_origin(ent, origin); entity_set_int(ent, EV_INT_solid, SOLID_BBOX); entity_set_model(ent, model); entity_set_size(ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0}); drop_to_floor(ent); set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50); return PLUGIN_CONTINUE; } public DotykMiny(ent, id) { if(!is_valid_ent(ent)) return; new attacker = entity_get_edict(ent, EV_ENT_owner); if (get_user_team(attacker) != get_user_team(id)) { new Float:fOrigin[3]; entity_get_vector( ent, EV_VEC_origin, fOrigin); new iOrigin[3]; for(new i=0;i<3;i++) iOrigin[i] = floatround(fOrigin[i]); message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin); write_byte(TE_EXPLOSION); write_coord(iOrigin[0]); write_coord(iOrigin[1]); write_coord(iOrigin[2]); write_short(sprite_blast); write_byte(32); write_byte(20); write_byte(0); message_end(); new entlist[33]; new numfound = find_sphere_class(ent,"player", 90.0 ,entlist, 32); for (new i=0; i < numfound; i++) { new pid = entlist[i]; if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid)) continue; cod_inflict_damage(attacker, pid, 70.0, 0.8, ent, (1<<24)); } remove_entity(ent); } } public client_PreThink(id) { //parachute.mdl animation information //0 - deploy - 84 frames //1 - idle - 39 frames //2 - detach - 29 frames if (!is_user_alive(id) || !ma_klase[id]) return new Float:fallspeed = -100.0 new Float:frame new flags = get_entity_flags(id) if (para_ent[id] > 0 && (flags & FL_ONGROUND)) { uzywa[id] = false; if (get_user_gravity(id) == 0.1) set_user_gravity(id, 1.0) if (entity_get_int(para_ent[id],EV_INT_sequence) != 2) { entity_set_int(para_ent[id], EV_INT_sequence, 2) entity_set_int(para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(para_ent[id], EV_FL_frame, 0.0) entity_set_float(para_ent[id], EV_FL_fuser1, 0.0) entity_set_float(para_ent[id], EV_FL_animtime, 0.0) entity_set_float(para_ent[id], EV_FL_framerate, 0.0) return } frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 2.0 entity_set_float(para_ent[id],EV_FL_fuser1,frame) entity_set_float(para_ent[id],EV_FL_frame,frame) if (frame > 254.0) { remove_entity(para_ent[id]) para_ent[id] = 0 } } if (uzywa[id]) { new Float:velocity[3] entity_get_vector(id, EV_VEC_velocity, velocity) if (velocity[2] < 0.0) { if(para_ent[id] <= 0) { para_ent[id] = create_entity("info_target") if(para_ent[id] > 0) { entity_set_string(para_ent[id],EV_SZ_classname,"parachute") entity_set_edict(para_ent[id], EV_ENT_aiment, id) entity_set_edict(para_ent[id], EV_ENT_owner, id) entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW) entity_set_model(para_ent[id], "models/parachute.mdl") entity_set_int(para_ent[id], EV_INT_sequence, 0) entity_set_int(para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(para_ent[id], EV_FL_frame, 0.0) entity_set_float(para_ent[id], EV_FL_fuser1, 0.0) } } if (para_ent[id] > 0) { entity_set_int(id, EV_INT_sequence, 3) entity_set_int(id, EV_INT_gaitsequence, 1) entity_set_float(id, EV_FL_frame, 1.0) entity_set_float(id, EV_FL_framerate, 1.0) set_user_gravity(id, 0.1) velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed entity_set_vector(id, EV_VEC_velocity, velocity) if (entity_get_int(para_ent[id],EV_INT_sequence) == 0) { frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 1.0 entity_set_float(para_ent[id],EV_FL_fuser1,frame) entity_set_float(para_ent[id],EV_FL_frame,frame) if (frame > 100.0) { pozostale_spadochrony[id]--; entity_set_float(para_ent[id], EV_FL_animtime, 0.0) entity_set_float(para_ent[id], EV_FL_framerate, 0.4) entity_set_int(para_ent[id], EV_INT_sequence, 1) entity_set_int(para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(para_ent[id], EV_FL_frame, 0.0) entity_set_float(para_ent[id], EV_FL_fuser1, 0.0) } } } } else if (para_ent[id] > 0) { remove_entity(para_ent[id]) set_user_gravity(id, 1.0) para_ent[id] = 0 } } else if (para_ent[id] > 0 ) { remove_entity(para_ent[id]) set_user_gravity(id, 1.0) para_ent[id] = 0 } } public ResetHUD(id) { ilosc_min_gracza[id] = 3; uzywa[id] = false; pozostale_spadochrony[id] = 100; } public NowaRunda() { new ent = find_ent_by_class(-1, "mine"); while(ent > 0) { remove_entity(ent); ent = find_ent_by_class(ent, "mine"); } } public client_disconnect(id) { new ent = find_ent_by_class(0, "mine"); while(ent > 0) { if(entity_get_edict(id, EV_ENT_owner) == id) remove_entity(ent); ent = find_ent_by_class(ent, "mine"); } }