Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* AMX Mod X Script */
- /*
- Admin Speed v1.1 -=- by KinSprite , 06/08, 2006
- With this plugin , the admin can set Players's running speed.
- [Cvars]:
- amx_allowspeed <1 or 0> // 0, turn off speed changing.
- amx_speedall <1 or 0> // 1, all players at the same running speed, except special players
- amx_speedallvalue <Integer: percent of normal speed>
- //all players's running speed value, except special players
- [Command]:
- amx_speed <#userid,nick,authorid,@ALL,@TEAM> [ON/OFF] [Integer: percent of normal speed]
- // to Set special players' speed.
- [Required Module]: Fun
- [Change Log]:
- v1.1:
- 1, fix speed when a sniper rifle is zoomed in/out or a shield is opened/closed
- 2, all players can run at the same percent of normal speed, except special players
- */
- #include <amxmodx>
- #include <amxmisc>
- #include <fun>
- #define PLUGIN "Admin Speed"
- #define VERSION "1.1"
- #define AUTHOR "KinSprite"
- new g_WpnUsed[33]
- new bool:g_hasSpeed[33]
- new g_Speed[33]
- new g_allowspeed
- new g_speedall
- new g_speedallvalue
- public plugin_init()
- {
- register_plugin(PLUGIN, VERSION, AUTHOR)
- register_concmd("amx_speed", "cmdspeed", ADMIN_LEVEL_A, "<#userid,nick,authorid,@ALL,@TEAM> [ON/OFF] [Integer: percent of normal speed] - Set special players' speed")
- register_event("CurWeapon","Change_Wpn","be","1=1")
- register_event("HideWeapon", "Change_WpnState", "b")
- register_logevent("new_round",2,"0=World triggered","1=Round_Start")
- g_allowspeed = register_cvar("amx_allowspeed","1")
- g_speedall = register_cvar("amx_speedall","0")
- g_speedallvalue = register_cvar("amx_speedallvalue","100")
- }
- public cmdspeed(id,level,cid)
- {
- if (!cmd_access(id, level, cid, 2))
- return PLUGIN_HANDLED
- if (!get_pcvar_num(g_allowspeed))
- {
- if (id == 0)
- server_print("[AMX Speed] Speed changing is not allowed !")
- else
- console_print(id, "[AMX Speed] Speed changing is not allowed !")
- return PLUGIN_HANDLED
- }
- new arga[32], argb[8], argc[8]
- read_argv(1, arga, 31)
- read_argv(2, argb, 7)
- new admin[32], plName[32]
- get_user_name(id, admin, 31)
- new activity = get_cvar_num("amx_show_activity")
- if (arga[0] == '@')
- {
- new players[32], tName[32]
- new num
- if(equali(arga[1],"A")
- || equali(arga[1],"ALL"))
- {
- format(tName, 31, "ALL PlAYERS")
- get_players(players, num)
- }
- else
- {
- if(equali(arga[1],"TERRORIST")
- || equali(arga[1],"T")
- || equali(arga[1],"TERROR")
- || equali(arga[1],"TE")
- || equali(arga[1],"TER"))
- {
- format(tName, 31, "TERRORIST")
- get_players(players,num,"e","TERRORIST")
- }
- else
- {
- if(equali(arga[1],"CT")
- || equali(arga[1],"C")
- || equali(arga[1],"COUNTER"))
- {
- format(tName, 31, "COUNTER-TERRORIST")
- get_players(players,num,"e","CT")
- }
- else
- {
- if (id == 0)
- server_print("[AMX Speed] invalid parameter !")
- else
- console_print(id, "[AMX Speed] invalid parameter !")
- return PLUGIN_HANDLED
- }
- }
- }
- if (num ==0)
- {
- if (id == 0)
- server_print("[AMX Speed] *** No players in this team !")
- else
- console_print(id, "[AMX Speed] *** No players in this team !")
- return PLUGIN_HANDLED
- }
- if (equali(argb, "ON"))
- {
- read_argv(3, argc, 7)
- new value = str_to_num(argc)
- value = (value > 0) ? value : 0
- for (new i=0; i<num; i++)
- {
- g_hasSpeed[players[i]] = true
- g_Speed[players[i]] = value
- speed_control(players[i], value)
- }
- switch(activity)
- {
- case 1:
- {
- client_print(0,print_chat,"[AMX Speed] ADMIN: set %s to run %d%% of normal speed.", tName, value)
- server_print("[AMX Speed] ADMIN: set %s to run %d%% of normal speed.", tName, value)
- }
- case 2:
- {
- client_print(0,print_chat,"[AMX Speed] ADMIN %s: set %s to run %d%% of normal speed.", admin, tName, value)
- server_print("[AMX Speed] ADMIN %s: set %s to run %d%% of normal speed.", admin, tName, value)
- }
- }
- }
- else
- {
- if (equali(argb, "OFF"))
- {
- for (new i=0; i<num; i++)
- {
- g_hasSpeed[players[i]] = false
- set_user_maxspeed(players[i], 0.0)
- }
- switch(activity)
- {
- case 1:
- {
- client_print(0,print_chat,"[AMX Speed] ADMIN: set %s to run normal speed.", tName)
- server_print("[AMX Speed] ADMIN: set %s to run normal speed.", tName)
- }
- case 2:
- {
- client_print(0,print_chat,"[AMX Speed] ADMIN %s: set %s to run normal speed.", admin, tName)
- server_print("[AMX Speed] ADMIN %s: set %s to run normal speed.", admin, tName)
- }
- }
- }
- else
- {
- if (id == 0)
- server_print("[AMX Speed] The second parameter must be ON or OFF !")
- else
- console_print(id, "[AMX Speed] The second parameter must be ON or OFF !")
- }
- }
- }
- else
- {
- new player = cmd_target(id, arga, 2)
- if (!player)
- return PLUGIN_HANDLED
- get_user_name(player, plName, 31)
- if (argb[0] == 0)
- {
- if (g_hasSpeed[player])
- {
- if (id == 0)
- server_print("[AMX Speed] PLAYER %s 's speed is %d%% of normal speed.", plName, g_Speed[player])
- else
- console_print(id, "[AMX Speed] PLAYER %s 's speed is %d%% of normal speed.", plName, g_Speed[player])
- }
- else
- {
- if (id == 0)
- server_print("[AMX Speed] PLAYER %s is at normal speed.", plName)
- else
- console_print(id, "[AMX Speed] PLAYER %s is at normal speed.", plName)
- }
- }
- else
- {
- if (equali(argb, "ON"))
- {
- g_hasSpeed[player] = true
- read_argv(3, argc, 7)
- new value = str_to_num(argc)
- g_Speed[player] = (value > 0) ? value : 0
- speed_control(player, g_Speed[player])
- switch(activity)
- {
- case 1:
- {
- client_print(0,print_chat,"[AMX Speed] ADMIN: set Player %s to run %d%% of normal speed.", plName, g_Speed[player])
- server_print("[AMX Speed] ADMIN: set Player %s to run %d%% of normal speed.", plName, g_Speed[player])
- }
- case 2:
- {
- client_print(0,print_chat,"[AMX Speed] ADMIN %s: set Player %s to run %d%% of normal speed.", admin, plName, g_Speed[player])
- server_print("[AMX Speed] ADMIN %s: set Player %s to run %d%% of normal speed.", admin, plName, g_Speed[player])
- }
- }
- }
- else
- {
- if (equali(argb, "OFF"))
- {
- g_hasSpeed[player] = false
- set_user_maxspeed(player, 0.0) // run normal speed
- switch(activity)
- {
- case 1:
- {
- client_print(0,print_chat,"[AMX Speed] ADMIN: set Player %s to run normal speed.", plName)
- server_print("[AMX Speed] ADMIN: set Player %s to run normal speed.", plName)
- }
- case 2:
- {
- client_print(0,print_chat,"[AMX Speed] ADMIN %s: set Player %s to run normal speed.", admin, plName)
- server_print("[AMX Speed] ADMIN %s: set Player %s to run normal speed.", admin, plName)
- }
- }
- }
- else
- {
- if (id == 0)
- server_print("[AMX Speed] The second parameter must be ON or OFF !")
- else
- console_print(id, "[AMX Speed] The second parameter must be ON or OFF !")
- }
- }
- }
- }
- return PLUGIN_HANDLED
- }
- public speed_control(id, percent)
- {
- new Float:value = get_user_maxspeed(id) * percent / 100.0
- value = (value > 0.1) ? value : 0.1
- set_user_maxspeed(id, value)
- }
- public Change_Wpn(id)
- {
- if (!get_pcvar_num(g_allowspeed) || (!g_hasSpeed[id] && !get_pcvar_num(g_speedall)))
- return PLUGIN_CONTINUE
- new iWpnNum = read_data(2)
- if (iWpnNum != g_WpnUsed[id])
- {
- if (g_hasSpeed[id])
- {
- speed_control(id, g_Speed[id])
- }
- else
- {
- speed_control(id, get_pcvar_num(g_speedallvalue))
- }
- g_WpnUsed[id] = iWpnNum
- }
- return PLUGIN_CONTINUE
- }
- public Change_WpnState(id)
- {
- if (!get_pcvar_num(g_allowspeed) || (!g_hasSpeed[id] && !get_pcvar_num(g_speedall)))
- return PLUGIN_CONTINUE
- //new iWpnNum = get_user_weapon(id)
- //g_WpnUsed[id] = iWpnNum
- if (g_hasSpeed[id])
- {
- speed_control(id, g_Speed[id])
- }
- else
- {
- speed_control(id, get_pcvar_num(g_speedallvalue))
- }
- return PLUGIN_CONTINUE
- }
- public new_round()
- {
- if (get_pcvar_num(g_allowspeed))
- set_task(0.2, "reset_speed")
- }
- public reset_speed()
- {
- new players[32]
- new num
- get_players(players, num)
- for (new i=0; i<num; i++)
- {
- if (g_hasSpeed[players[i]])
- {
- speed_control(players[i], g_Speed[players[i]])
- }
- else
- {
- if (get_pcvar_num(g_speedall))
- {
- speed_control(players[i], get_pcvar_num(g_speedallvalue))
- }
- }
- }
- }
- public client_putinserver(id)
- {
- g_hasSpeed[id] = false
- return PLUGIN_CONTINUE
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement