Code:
#include <amxmodx>
#include <amxmisc>
#include <Vexd_Utilities>
public plugin_init()
{
register_plugin("Amxx Turn","1.0","KRoTaL")
register_concmd("amx_turn","admin_turn",ADMIN_LEVEL_A,"<name,id,@team,*> <degrees> <left,right>")
return PLUGIN_CONTINUE
}
public admin_turn(id,level,cid)
{
if (!cmd_access(id,level,cid,4))
return PLUGIN_HANDLED
new arg1[32]
new arg2[32]
new arg3[32]
read_argv(1,arg1,31)
read_argv(2,arg2,31)
read_argv(3,arg3,31)
new direction=0
if(containi(arg3, "right")!=-1)
direction=0
else if(containi(arg3, "left")!=-1)
direction=1
new nbDegrees=str_to_num(arg2)
if(arg1[0] == '@')
{
new users[32], inum
get_players(users, inum, "ae", arg1[1])
if(inum == 0)
{
console_print(id, "No users in such team")
return PLUGIN_HANDLED
}
for(new i = 0; i < inum; ++i)
turn(users[i], nbDegrees, direction)
client_print(id, print_chat, "All %s's have been rotated.", arg1[1])
}
else if(arg1[0] == '*')
{
new users[32], inum
get_players(users, inum, "a")
if(inum == 0)
{
console_print(id, "No users in such team")
return PLUGIN_HANDLED
}
for(new i = 0; i < inum; ++i)
turn(users[i], nbDegrees, direction)
client_print(id, print_chat, "All the players have been rotated.")
}
else
{
new player = cmd_target(id, arg1, 0)
if(!player) return PLUGIN_HANDLED
new player_name[32]
get_user_name(player, player_name, 31)
turn(player, nbDegrees, direction)
client_print(id, print_chat, "%s has been rotated.", player_name)
}
return PLUGIN_HANDLED
}
public turn(player,nbDegrees,direction)
{
new Float:pLook[3]
entity_get_vector(player, EV_VEC_angles, pLook)
switch(direction)
{
case 0: pLook[1]-=float(nbDegrees)
case 1: pLook[1]+=float(nbDegrees)
}
entity_set_vector(player, EV_VEC_angles, pLook)
entity_set_int(player, EV_INT_fixangle, 1)
return PLUGIN_CONTINUE
}