Az amxmodx.crys.hu-n amx_hitbox amxx fájlját próbáltam,működik. No rush plugin pedig itt van:
Kód: #include <amxmodx> #include <amxmisc> #include <fun> #include <engine>
//Used for create_middle functions #define tag_sprite_size_horizontal 4000 #define tag_sprite_size_vertical 600 #define tag_sprite_vertical_increments 15
#define MINNUM 2
new bool:stopplugin
new beamsprite
new CTspawn_loc[3] new Tspawn_loc[3]
new plugin_enabled, plugin_fence, plugin_2ppl, plugin_checktime, plugin_redrawtime, plugin_fencecolor, plugin_fencealpha, plugin_punishment
new Float:farthest_point1[3] new Float:farthest_point2[3] new alivenum, maxplayers
new Float:oldtime
new multiplier
public plugin_init() { register_plugin("No Rush","2.0","GHW_Chronic")
plugin_enabled = register_cvar("NR_enabled","1") plugin_fence = register_cvar("NR_fence","1") plugin_2ppl = register_cvar("NR_twopeople","1") plugin_punishment = register_cvar("NR_punishment","1") plugin_checktime = register_cvar("NR_checktime","2.0") plugin_redrawtime = register_cvar("NR_redrawtime","15.0") plugin_fencecolor = register_cvar("NR_fencecolor","green") plugin_fencealpha = register_cvar("NR_fencealpha","200")
stopplugin=true new mapname[32] get_mapname(mapname,31) new configfile[200] get_configsdir(configfile,199) format(configfile,199,"%s/no_rush_maps.ini",configfile) if(file_exists(configfile)) { new read[32], trash for(new i=0;i<file_size(configfile,1);i++) { read_file(configfile,i,read,31,trash) if(equali(mapname,read)) { set_task(0.1,"spawn_locs") set_task(0.2,"create_middle1") oldtime = get_pcvar_float(plugin_redrawtime) stopplugin=false break; } } }
register_event("DeathMsg","checknum","a") register_event("ResetHUD","checknum","b")
maxplayers = get_maxplayers() }
public plugin_precache() { beamsprite = precache_model("sprites/dot.spr") }
public client_putinserver(id) { if(!stopplugin) { set_task(get_pcvar_float(plugin_checktime),"prethink",id,"",0,"b") } }
public client_disconnect(id) { remove_task(id) }
public checknum() { if(get_pcvar_num(plugin_enabled) && !stopplugin) { new newnum for(new i=0;i<=maxplayers;i++) { if(is_user_alive(i)) newnum++ } if(alivenum>MINNUM && newnum<=MINNUM && get_pcvar_num(plugin_2ppl)) { client_print(0,print_chat,"[AMXX] You can now cross over to the other side since only 2 people remain.") } alivenum=newnum } }
public prethink(id) { if(is_user_alive(id) && !stopplugin && get_pcvar_num(plugin_enabled) && !(alivenum<=MINNUM && get_pcvar_num(plugin_2ppl)) ) { new origin[3] get_user_origin(id,origin) new team[32] get_user_team(id,team,31) new teamnum=1 if(containi(team,"CT")!=-1 || containi(team,"Counter")!=-1) { teamnum=2 } if( (get_distance(origin,CTspawn_loc)<get_distance(origin,Tspawn_loc) && teamnum==1) || (get_distance(origin,Tspawn_loc)<get_distance(origin,CTspawn_loc) && teamnum==2) ) { if(get_pcvar_num(plugin_punishment)==1) user_kill(id) else { new origin[3] get_user_origin(id,origin) new Float:vector1[3] if(teamnum==2) { vector1[0] = float(CTspawn_loc[0]) - origin[0] vector1[1] = float(CTspawn_loc[1]) - origin[1] vector1[2] = float(CTspawn_loc[2]) - origin[2] } else { vector1[0] = float(Tspawn_loc[0]) - origin[0] vector1[1] = float(Tspawn_loc[1]) - origin[1] vector1[2] = float(Tspawn_loc[2]) - origin[2] } new Float:num = floatsqroot(250*250 / vector1[0]*vector1[0] + vector1[1]*vector1[1] + vector1[2]*vector1[2]) vector1[0] *= num vector1[1] *= num vector1[2] *= num set_user_velocity(id,vector1) } client_print(id,print_chat,"[AMXX] No crossing the middle line.") } } }
public spawn_locs() { new ent1 = find_ent_by_class(0,"info_player_start") new ent2 = find_ent_by_class(0,"info_player_deathmatch") if(!ent1) { log_amx("No info_player_start found") stopplugin=true } if(!ent2) { log_amx("No info_player_deathmatch found") stopplugin=true } new Float:CTspawn_loc_F[3] new Float:Tspawn_loc_F[3] entity_get_vector(ent1,EV_VEC_origin,CTspawn_loc_F) entity_get_vector(ent2,EV_VEC_origin,Tspawn_loc_F) CTspawn_loc[0] = floatround(CTspawn_loc_F[0]) CTspawn_loc[1] = floatround(CTspawn_loc_F[1]) CTspawn_loc[2] = floatround(CTspawn_loc_F[2]) Tspawn_loc[0] = floatround(Tspawn_loc_F[0]) Tspawn_loc[1] = floatround(Tspawn_loc_F[1]) Tspawn_loc[2] = floatround(Tspawn_loc_F[2]) }
public create_middle1() { //*** //Simple Algebra to calculate the location of the middle line(s). //*** new Float:CTspawn_loc_F[3] new Float:Tspawn_loc_F[3] IVecFVec(CTspawn_loc,CTspawn_loc_F) IVecFVec(Tspawn_loc,Tspawn_loc_F) new Float:line1_slope = (CTspawn_loc_F[1] - Tspawn_loc_F[1]) / (CTspawn_loc_F[0] - Tspawn_loc_F[0]) new Float:line2_slope = -1.0 * (1.0 / line1_slope) new Float:midpoint[3] midpoint[0] = (CTspawn_loc_F[0] + Tspawn_loc_F[0]) / 2 midpoint[1] = (CTspawn_loc_F[1] + Tspawn_loc_F[1]) / 2 midpoint[2] = (CTspawn_loc_F[2] + Tspawn_loc_F[2]) / 2
if(floatabs(line2_slope)>1.0) { farthest_point1[1] = midpoint[1] + (tag_sprite_size_horizontal / 2) farthest_point2[1] = midpoint[1] - (tag_sprite_size_horizontal / 2) farthest_point1[0] = (farthest_point1[1] - midpoint[1] + (line2_slope * midpoint[0])) / line2_slope farthest_point2[0] = (farthest_point2[1] - midpoint[1] + (line2_slope * midpoint[0])) / line2_slope } if(floatabs(line2_slope)<=1.0) { farthest_point1[0] = midpoint[0] + (tag_sprite_size_horizontal / 2) farthest_point2[0] = midpoint[0] - (tag_sprite_size_horizontal / 2)
farthest_point1[1] = line2_slope*(farthest_point1[0]-midpoint[0]) + midpoint[1] farthest_point2[1] = line2_slope*(farthest_point2[0]-midpoint[0]) + midpoint[1] } farthest_point1[2] = midpoint[2] - (tag_sprite_size_vertical / 2)
set_task(get_pcvar_float(plugin_redrawtime),"create_middle2",1337,"",0,"b") }
public create_middle2() { if(!stopplugin && get_pcvar_num(plugin_fence) && get_pcvar_num(plugin_enabled) && !(alivenum<=MINNUM && get_pcvar_num(plugin_2ppl))) { set_task(0.1,"create_middle3",0,"",0,"a",(tag_sprite_size_vertical / tag_sprite_vertical_increments)) multiplier=1 } if(oldtime!=get_pcvar_float(plugin_redrawtime)) { remove_task(1337) set_task(get_pcvar_float(plugin_redrawtime),"create_middle1",1337,"",0,"b") oldtime=get_pcvar_float(plugin_redrawtime) } }
public create_middle3() { new zpoint = floatround(farthest_point1[2]) + (multiplier * tag_sprite_vertical_increments) multiplier++ new color[32], red, green, blue get_pcvar_string(plugin_fencecolor,color,31) if(equali(color,"red")) { red=255 green=0 blue=0 } else if(equali(color,"blue")) { red=0 green=0 blue=255 } else if(equali(color,"white")) { red=255 green=255 blue=255 } else if(equali(color,"random")) { red=random_num(0,255) green=random_num(0,255) blue=random_num(0,255) } else if(equali(color,"Yellow")) { red = 255 green = 255 blue = 0 } else if(equali(color,"Orange")) { red = 255 green = 128 blue = 64 } else if(equali(color,"Pink")) { red = 255 green = 0 blue = 128 } else if(equali(color,"Indigo")) { red = 0 green = 255 blue = 255 } else { red=0 green=255 blue=0 }
message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(0) //TE_BEAMPOINTS write_coord(floatround(farthest_point1[0])) write_coord(floatround(farthest_point1[1])) write_coord(zpoint) write_coord(floatround(farthest_point2[0])) write_coord(floatround(farthest_point2[1])) write_coord(zpoint) write_short(beamsprite) write_byte(1) // framestart write_byte(1) // framerate write_byte(get_pcvar_num(plugin_redrawtime) * 10)// life in 0.1's write_byte(5) // width write_byte(0) // noise write_byte(red) // red write_byte(green) // green write_byte(blue) // blue write_byte(get_pcvar_num(plugin_fencealpha))// brightness write_byte(0) // speed message_end() }
Ezt átalakítod amxx formátummá, aztán a configs mappába csinálsz 1 no_rush_maps.ini fájlt és ide azon mappok nevét írod amelyiknél szeretnéd, hogy működjön az antri rush (pl awp_india). Ha megvan akkor mapváltás...
Kód: NR_enabled 1 NR_fence 1 NR_twopeople 0 NR_checktime 2.0 NR_redrawtime 120.0 NR_fencecolor red NR_fencealpha 200 NR_punishment 2 Szerintem ezek a legjobb beállítások hozzá.Remélem segítettem...üdv
|