AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   please help!!.... (https://forums.alliedmods.net/showthread.php?t=162630)

can1357 07-21-2011 07:12

please help!!....
 
I Have a plugin
PHP Code:

//#define engine
#include <amxmodx>
#include <amxmisc>
#include <fun>
#if defined engine
#include <engine>
#else
#include <fakemeta>
#endif
#define ADMIN_LEVEL_Q ADMIN_IMMUNITY
//Used for Grab
new maxplayers
new grab[33]
new 
Float:grab_totaldis[33]
new 
grab_speed_cvar
new grab_enabled_cvar
new bool:has_grab[33]
//Used for Hook
new bool:hook[33]
new 
hook_to[33][3]
new 
hook_speed_cvar
new hook_enabled_cvar
new bool:has_hook[33]
//Used for Rope
new bool:rope[33]
new 
rope_to[33][3]
new 
Float:rope_totaldis[33]
new 
rope_speed_cvar
new rope_enabled_cvar
new bool:has_rope[33]
//Used for All
new beamsprite
 
/****************************
 Register Commands and CVARs
****************************/
public plugin_init()
{
 
register_plugin("Grab + Hook + Rope","1.0","GHW_Chronic")
 
register_concmd("+grab","grab_on",ADMIN_LEVEL_Q," - Use: bind key +grab")
 
register_concmd("-grab","grab_off")
 
register_concmd("grab_toggle","grab_toggle",ADMIN_LEVEL_Q,"Toggles your grab on and off")
 
register_concmd("+hook","hook_on",ADMIN_LEVEL_Q," - Use: bind key +hook")
 
register_concmd("-hook","hook_off")
 
register_concmd("hook_toggle","hook_toggle",ADMIN_LEVEL_Q,"Toggles your hook on and off")
 
register_concmd("+rope","rope_on",ADMIN_LEVEL_Q," - Use: bind key +rope")
 
register_concmd("-rope","rope_off")
 
register_concmd("rope_toggle","rope_toggle",ADMIN_LEVEL_Q,"Toggles your rope on and off")
 
register_concmd("amx_give_grab","cmd_givetake",ADMIN_LEVEL_Q,"Give a player the ability to grab <nick>")
 
register_concmd("amx_give_hook","cmd_givetake",ADMIN_LEVEL_Q,"Give a player the ability to hook <nick>")
 
register_concmd("amx_give_rope","cmd_givetake",ADMIN_LEVEL_Q,"Give a player the ability to rope <nick>")
 
register_concmd("amx_take_grab","cmd_givetake",ADMIN_LEVEL_Q,"Take a player's ability to grab <nick>")
 
register_concmd("amx_take_hook","cmd_givetake",ADMIN_LEVEL_Q,"Take a player's ability to hook <nick>")
 
register_concmd("amx_take_rope","cmd_givetake",ADMIN_LEVEL_Q,"Take a player's ability to rope <nick>")
 
register_concmd("amx_ghr_menu","menu_cmd",ADMIN_LEVEL_Q,"Shows a menu that allows you to turn on/off non-admin use of grab, hook, or rope")
 
register_menucmd(register_menuid("ghr_menu"),(1<<0)|(1<<1)|(1<<2)|(1<<9), "Pressedghr")
 
grab_speed_cvar register_cvar("grab_speed","5")
 
grab_enabled_cvar register_cvar("grab_enabled","0")
 
hook_speed_cvar register_cvar("hook_speed","5")
 
hook_enabled_cvar register_cvar("hook_enabled","0")
 
rope_speed_cvar register_cvar("rope_speed","5")
 
rope_enabled_cvar register_cvar("rope_enabled","0")
 
maxplayers get_maxplayers()
 
//CVAR that is only used for tracking servers that use this plugin.
 
register_cvar("GHW_GHW","1",FCVAR_SERVER)
}
 
/**********************************
 Register beam sprite + Hook Sound
**********************************/
public plugin_precache()
{
 
beamsprite precache_model("sprites/dot.spr")
 
precache_sound("weapons/xbow_hit2.wav")
 
precache_sound("weapons/xbow_fire1.wav")
}
 
/*****************************
 Reset VARs on client connect
*****************************/
public client_putinserver(id)
{
 
has_grab[id]=false
 has_hook
[id]=false
 has_rope
[id]=false
}
 
/*****
 Menu
*****/
public menu_cmd(id,level,cid)
{
 if(
cmd_access(id,level,cid,1))
 {
  
show_ghr(id)
  
console_print(id,"[AMXX] Menu launched.")
 }
}
public 
show_ghr(id)
{
 static 
aaa[32]
 static 
bbb[32]
 static 
ccc[32]
 if(
get_pcvar_num(grab_enabled_cvar)==0format(aaa,31,"No")
 else 
format(aaa,31,"Yes")
 if(
get_pcvar_num(hook_enabled_cvar)==0format(bbb,31,"No")
 else 
format(bbb,31,"Yes")
 if(
get_pcvar_num(rope_enabled_cvar)==0format(ccc,31,"No")
 else 
format(ccc,31,"Yes")
 new 
menuBody[576]
 if(
colored_menus())
 {
  new 
len format(menuBody,575,"\bAllow Players To Use:^n^n")
  
len += format(menuBody[len],575-len"\w1. Grab\R\w%s^n",aaa)
  
len += format(menuBody[len],575-len"\w2. Hook\R\w%s^n",bbb)
  
len += format(menuBody[len],575-len"\w3. Rope\R\w%s^n",ccc)
  
len += format(menuBody[len],575-len"\r0. Exit")
 }
 else
 {
  new 
len format(menuBody,575,"Allow Players To Use:^n^n")
  
len += format(menuBody[len],575-len"1. Grab\R%s^n",aaa)
  
len += format(menuBody[len],575-len"2. Hook\R%s^n",bbb)
  
len += format(menuBody[len],575-len"3. Rope\R%s^n",ccc)
  
len += format(menuBody[len],575-len"0. Exit")
 }
 
show_menu(id,(1<<0)|(1<<1)|(1<<2)|(1<<9),menuBody,-1,"ghr_menu")
 return 
PLUGIN_CONTINUE
}
public 
Pressedghr(id,key)
{
 switch(
key)
 {
  case 
0:
  {
   if(
get_pcvar_num(grab_enabled_cvar)==0)
   {
    
set_pcvar_num(grab_enabled_cvar,1)
    
client_print(0,print_chat,"[AMXX] Admin has enabled Grab for all clients. Use: bind key +grab")
   }
   else
   {
    
set_pcvar_num(grab_enabled_cvar,0)
    
client_print(0,print_chat,"[AMXX] Admin has disabled Grab for all non-admins.")
   }
   
show_ghr(id)
  }
  case 
1:
  {
   if(
get_pcvar_num(hook_enabled_cvar)==0)
   {
    
set_pcvar_num(hook_enabled_cvar,1)
    
client_print(0,print_chat,"[AMXX] Admin has enabled Hook for all clients. Use: bind key +hook")
   }
   else
   {
    
set_pcvar_num(hook_enabled_cvar,0)
    
client_print(0,print_chat,"[AMXX] Admin has disabled Hook for all non-admins.")
   }
   
show_ghr(id)
  }
  case 
2:
  {
   if(
get_pcvar_num(rope_enabled_cvar)==0)
   {
    
set_pcvar_num(rope_enabled_cvar,1)
    
client_print(0,print_chat,"[AMXX] Admin has enabled Rope for all clients. Use: bind key +rope")
   }
   else
   {
    
set_pcvar_num(rope_enabled_cvar,0)
    
client_print(0,print_chat,"[AMXX] Admin has disabled Rope for all non-admins.")
   }
   
show_ghr(id)
  }
 }
}
 
/****************
 Handle Commands
****************/
public cmd_givetake(id,level,cid)
{
 if(!
cmd_access(id,level,cid,2))
 {
  return 
PLUGIN_HANDLED
 
}
 new 
arg1[32]
 
read_argv(1,arg1,31)
 new 
target cmd_target(id,arg1,9)
 if(!
target)
 {
  return 
PLUGIN_HANDLED
 
}
 new 
name[32]
 
get_user_name(target,name,31)
 if(
get_user_flags(target) & ADMIN_LEVEL_Q)
 {
  
console_print(id,"[AMXX] Cannot give/take grab/hook/rope from admin %s.",name)
  return 
PLUGIN_HANDLED
 
}
 new 
arg0[32]
 
read_argv(0,arg0,31)
 if(
containi(arg0,"give")!=-1)
 {
  if(
containi(arg0,"grab")!=-1)
  {
   if(
has_grab[target])
   {
    
console_print(id,"[AMXX] %s already has grab",name)
   }
   else
   {
    
has_grab[target]=true
    console_print
(id,"[AMXX] %s has been given grab",name)
    
client_print(target,print_chat,"[AMXX] An admin has given you grab. Use: bind key +grab")
   }
  }
  else if(
containi(arg0,"hook")!=-1)
  {
   if(
has_hook[target])
   {
    
console_print(id,"[AMXX] %s already has hook",name)
   }
   else
   {
    
has_hook[target]=true
    console_print
(id,"[AMXX] %s has been given hook",name)
    
client_print(target,print_chat,"[AMXX] An admin has given you hook. Use: bind key +hook")
   }
  }
  else if(
containi(arg0,"rope")!=-1)
  {
   if(
has_rope[target])
   {
    
console_print(id,"[AMXX] %s already has rope",name)
   }
   else
   {
    
has_rope[target]=true
    console_print
(id,"[AMXX] %s has been given rope",name)
    
client_print(target,print_chat,"[AMXX] An admin has given you hook. Use: bind key +rope")
   }
  }
 }
 if(
containi(arg0,"take")!=-1)
 {
  if(
containi(arg0,"grab")!=-1)
  {
   if(!
has_grab[target])
   {
    
console_print(id,"[AMXX] %s doesn't have grab",name)
   }
   else
   {
    
has_grab[target]=false
    console_print
(id,"[AMXX] %s's grab has been taken away.",name)
    
client_print(target,print_chat,"[AMXX] An admin has taken your grab away.")
   }
  }
  if(
containi(arg0,"hook")!=-1)
  {
   if(!
has_hook[target])
   {
    
console_print(id,"[AMXX] %s doesn't have hook",name)
   }
   else
   {
    
has_hook[target]=false
    console_print
(id,"[AMXX] %s's hook has been taken away.",name)
    
client_print(target,print_chat,"[AMXX] An admin has taken your hook away.")
   }
  }
  if(
containi(arg0,"rope")!=-1)
  {
   if(!
has_rope[target])
   {
    
console_print(id,"[AMXX] %s doesn't have rope",name)
   }
   else
   {
    
has_rope[target]=false
    console_print
(id,"[AMXX] %s's rope has been taken away.",name)
    
client_print(target,print_chat,"[AMXX] An admin has taken your rope away.")
   }
  }
 }
 return 
PLUGIN_HANDLED
}
 
/*****
 Grab
*****/
public grab_toggle(id,level,cid)
{
 if(
grab[id]) grab_off(id)
 else 
grab_on(id,level,cid)
 return 
PLUGIN_HANDLED
}
public 
grab_on(id,level,cid)
{
 if(!
has_grab[id] && !get_pcvar_num(grab_enabled_cvar) && !cmd_access(id,level,cid,1))
 {
  return 
PLUGIN_HANDLED
 
}
 if(
grab[id])
 {
  return 
PLUGIN_HANDLED
 
}
 
grab[id]=-1
 
static targettrash
 target
=0
 get_user_aiming
(id,target,trash)
 if(
target && is_valid_ent2(target) && target!=id)
 {
  if(
target<=maxplayers)
  {
   if(
is_user_alive(target) && !(get_user_flags(target) & ADMIN_IMMUNITY))
   {
    
client_print(id,print_chat,"[AMXX] Found Target")
    
grabem(id,target)
   }
  }
  else if(
get_solidity(target)!=4)
  {
   
client_print(id,print_chat,"[AMXX] Found Target")
   
grabem(id,target)
  }
 }
 else
 {
  
client_print(id,print_chat,"[AMXX] Searching for Target")
  
set_task(0.1,"grab_on2",id)
 }
 return 
PLUGIN_HANDLED
}
public 
grab_on2(id)
{
 if(
is_user_connected(id))
 {
  static 
targettrash
  target
=0
  get_user_aiming
(id,target,trash)
  if(
target && is_valid_ent2(target) && target!=id)
  {
   if(
target<=maxplayers)
   {
    if(
is_user_alive(target) && !(get_user_flags(target) & ADMIN_IMMUNITY))
    {
     
client_print(id,print_chat,"[AMXX] Found Target")
     
grabem(id,target)
    }
   }
   else if(
get_solidity(target)!=4)
   {
    
client_print(id,print_chat,"[AMXX] Found Target")
    
grabem(id,target)
   }
  }
  else
  {
   
set_task(0.1,"grab_on2",id)
  }
 }
}
public 
grabem(id,target)
{
 
grab[id]=target
 set_rendering2
(target,kRenderFxGlowShell,255,0,0,kRenderTransAlpha,70)
 if(
target<=maxplayersset_user_gravity(target,0.0)
 
grab_totaldis[id] = 0.0
 set_task
(0.1,"grab_prethink",id+1000,"",0,"b")
 
grab_prethink(id+1000)
 
emit_sound(id,CHAN_VOICE,"weapons/xbow_fire1.wav"1.0ATTN_NORM0PITCH_NORM)
}
public 
grab_off(id)
{
 if(
is_user_connected(id))
 {
  if(
grab[id]==-1)
  {
   
client_print(id,print_chat,"[AMXX] No Target Found")
   
grab[id]=0
  
}
  else if(
grab[id])
  {
   
client_print(id,print_chat,"[AMXX] Target Released")
   
set_rendering2(grab[id])
   if(
grab[id]<=maxplayers && is_user_alive(grab[id])) set_user_gravity(grab[id],1.0)
   
grab[id]=0
  
}
 }
 return 
PLUGIN_HANDLED
}
public 
grab_prethink(id)
{
 
id -= 1000
 
if(!is_user_connected(id) && grab[id]>0)
 {
  
set_rendering2(grab[id])
  if(
grab[id]<=maxplayers && is_user_alive(grab[id])) set_user_gravity(grab[id],1.0)
  
grab[id]=0
 
}
 if(!
grab[id] || grab[id]==-1)
 {
  
remove_task(id+1000)
  return 
PLUGIN_HANDLED
 
}
 
//Get Id's, target's, and Where Id is looking's origins
 
static origin1[3]
 
get_user_origin(id,origin1)
 static 
Float:origin2_F[3], origin2[3]
 
get_origin(grab[id],origin2_F)
 
origin2[0] = floatround(origin2_F[0])
 
origin2[1] = floatround(origin2_F[1])
 
origin2[2] = floatround(origin2_F[2])
 static 
origin3[3]
 
get_user_origin(id,origin3,3)
 
//Create red beam
 
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
 
write_byte(1)  //TE_BEAMENTPOINT
 
write_short(id)  // start entity
 
write_coord(origin2[0])
 
write_coord(origin2[1])
 
write_coord(origin2[2])
 
write_short(beamsprite)
 
write_byte(1)  // framestart
 
write_byte(1)  // framerate
 
write_byte(1)  // life in 0.1's
 
write_byte(5)  // width
 
write_byte(0)  // noise
 
write_byte(255)  // red
 
write_byte(0)  // green
 
write_byte(0)  // blue
 
write_byte(200)  // brightness
 
write_byte(0)  // speed
 
message_end()
 
//Convert to floats for calculation
 
static Float:origin1_F[3]
 static 
Float:origin3_F[3]
 
origin1_F[0] = float(origin1[0])
 
origin1_F[1] = float(origin1[1])
 
origin1_F[2] = float(origin1[2])
 
origin3_F[0] = float(origin3[0])
 
origin3_F[1] = float(origin3[1])
 
origin3_F[2] = float(origin3[2])
 
//Calculate target's new velocity
 
static Float:distance[3]
 if(!
grab_totaldis[id])
 {
  
distance[0] = floatabs(origin1_F[0] - origin2_F[0])
  
distance[1] = floatabs(origin1_F[1] - origin2_F[1])
  
distance[2] = floatabs(origin1_F[2] - origin2_F[2])
  
grab_totaldis[id] = floatsqroot(distance[0]*distance[0] + distance[1]*distance[1] + distance[2]*distance[2])
 }
 
distance[0] = origin3_F[0] - origin1_F[0]
 
distance[1] = origin3_F[1] - origin1_F[1]
 
distance[2] = origin3_F[2] - origin1_F[2]
 static 
Float:grab_totaldis2
 grab_totaldis2 
floatsqroot(distance[0]*distance[0] + distance[1]*distance[1] + distance[2]*distance[2])
 static 
Float:que
 que 
grab_totaldis[id] / grab_totaldis2
 
static Float:origin4[3]
 
origin4[0] = ( distance[0] * que ) + origin1_F[0]
 
origin4[1] = ( distance[1] * que ) + origin1_F[1]
 
origin4[2] = ( distance[2] * que ) + origin1_F[2]
 static 
Float:velocity[3]
 
velocity[0] = (origin4[0] - origin2_F[0]) * (get_pcvar_float(grab_speed_cvar) / 1.666667)
 
velocity[1] = (origin4[1] - origin2_F[1]) * (get_pcvar_float(grab_speed_cvar) / 1.666667)
 
velocity[2] = (origin4[2] - origin2_F[2]) * (get_pcvar_float(grab_speed_cvar) / 1.666667)
 
set_velo(grab[id],velocity)
 return 
PLUGIN_CONTINUE
}
 
/*****
 Hook
*****/
public hook_toggle(id,level,cid)
{
 if(
hook[id]) hook_off(id)
 else 
hook_on(id,level,cid)
 return 
PLUGIN_HANDLED
}
public 
hook_on(id,level,cid)
{
 if(!
has_hook[id] && !get_pcvar_num(hook_enabled_cvar) && !cmd_access(id,level,cid,1))
 {
  return 
PLUGIN_HANDLED
 
}
 if(
hook[id])
 {
  return 
PLUGIN_HANDLED
 
}
 
set_user_gravity(id,0.0)
 
set_task(0.1,"hook_prethink",id+10000,"",0,"b")
 
hook[id]=true
 hook_to
[id][0]=999999
 hook_prethink
(id+10000)
 
emit_sound(id,CHAN_VOICE,"weapons/xbow_hit2.wav"1.0ATTN_NORM0PITCH_NORM)
 return 
PLUGIN_HANDLED
}
public 
hook_off(id)
{
 if(
is_user_alive(id)) set_user_gravity(id)
 
hook[id]=false
 
return PLUGIN_HANDLED
}
public 
hook_prethink(id)
{
 
id -= 10000
 
if(!is_user_alive(id))
 {
  
hook[id]=false
 
}
 if(!
hook[id])
 {
  
remove_task(id+10000)
  return 
PLUGIN_HANDLED
 
}
 
//Get Id's origin
 
static origin1[3]
 
get_user_origin(id,origin1)
 if(
hook_to[id][0]==999999)
 {
  static 
origin2[3]
  
get_user_origin(id,origin2,3)
  
hook_to[id][0]=origin2[0]
  
hook_to[id][1]=origin2[1]
  
hook_to[id][2]=origin2[2]
 }
 
//Create blue beam
 
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
 
write_byte(1)  //TE_BEAMENTPOINT
 
write_short(id)  // start entity
 
write_coord(hook_to[id][0])
 
write_coord(hook_to[id][1])
 
write_coord(hook_to[id][2])
 
write_short(beamsprite)
 
write_byte(1)  // framestart
 
write_byte(1)  // framerate
 
write_byte(2)  // life in 0.1's
 
write_byte(5)  // width
 
write_byte(0)  // noise
 
write_byte(0)  // red
 
write_byte(0)  // green
 
write_byte(255)  // blue
 
write_byte(200)  // brightness
 
write_byte(0)  // speed
 
message_end()
 
//Calculate Velocity
 
static Float:velocity[3]
 
velocity[0] = (float(hook_to[id][0]) - float(origin1[0])) * 3.0
 velocity
[1] = (float(hook_to[id][1]) - float(origin1[1])) * 3.0
 velocity
[2] = (float(hook_to[id][2]) - float(origin1[2])) * 3.0
 
static Float:y
 y 
velocity[0]*velocity[0] + velocity[1]*velocity[1] + velocity[2]*velocity[2]
 static 
Float:x
 x 
= (get_pcvar_float(hook_speed_cvar) * 120.0) / floatsqroot(y)
 
velocity[0] *= x
 velocity
[1] *= x
 velocity
[2] *= x
 set_velo
(id,velocity)
 return 
PLUGIN_CONTINUE
}
 
/*****
 Rope
*****/
public rope_toggle(id,level,cid)
{
 if(
rope[id]) rope_off(id)
 else 
rope_on(id,level,cid)
 return 
PLUGIN_HANDLED
}
public 
rope_on(id,level,cid)
{
 if(!
has_rope[id] && !get_pcvar_num(rope_enabled_cvar) && !cmd_access(id,level,cid,1))
 {
  return 
PLUGIN_HANDLED
 
}
 if(
rope[id])
 {
  return 
PLUGIN_HANDLED
 
}
 
set_task(0.1,"rope_prethink",id+100000,"",0,"b")
 
rope[id]=true
 rope_to
[id][0]=999999
 rope_prethink
(id+100000)
 
emit_sound(id,CHAN_VOICE,"weapons/xbow_hit2.wav"1.0ATTN_NORM0PITCH_NORM)
 return 
PLUGIN_HANDLED
}
public 
rope_off(id)
{
 
rope[id]=false
 
return PLUGIN_HANDLED
}
public 
rope_prethink(id)
{
 
id -= 100000
 
if(!is_user_alive(id))
 {
  
rope[id]=false
 
}
 if(!
rope[id])
 {
  
remove_task(id+100000)
  return 
PLUGIN_HANDLED
 
}
 
//Get Id's origin
 
static origin1[3]
 
get_user_origin(id,origin1)
 static 
Float:origin1_F[3]
 
origin1_F[0] = float(origin1[0])
 
origin1_F[1] = float(origin1[1])
 
origin1_F[2] = float(origin1[2])
 
//Check to see if this is the first time prethink is being run
 
if(rope_to[id][0]==999999)
 {
  static 
origin2[3]
  
get_user_origin(id,origin2,3)
  
rope_to[id][0]=origin2[0]
  
rope_to[id][1]=origin2[1]
  
rope_to[id][2]=origin2[2]
  static 
Float:origin2_F[3]
  
origin2_F[0] = float(origin2[0])
  
origin2_F[1] = float(origin2[1])
  
origin2_F[2] = float(origin2[2])
  static 
Float:distance[3]
  
distance[0] = floatabs(origin1_F[0] - origin2_F[0])
  
distance[1] = floatabs(origin1_F[1] - origin2_F[1])
  
distance[2] = floatabs(origin1_F[2] - origin2_F[2])
  
rope_totaldis[id] = floatsqroot(distance[0]*distance[0] + distance[1]*distance[1] + distance[2]*distance[2])
 }
 
//Create green beam
 
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
 
write_byte(1)  //TE_BEAMENTPOINT
 
write_short(id)  // start entity
 
write_coord(rope_to[id][0])
 
write_coord(rope_to[id][1])
 
write_coord(rope_to[id][2])
 
write_short(beamsprite)
 
write_byte(1)  // framestart
 
write_byte(1)  // framerate
 
write_byte(1)  // life in 0.1's
 
write_byte(5)  // width
 
write_byte(0)  // noise
 
write_byte(0)  // red
 
write_byte(255)  // green
 
write_byte(0)  // blue
 
write_byte(200)  // brightness
 
write_byte(0)  // speed
 
message_end()
 
//Calculate Velocity
 
static Float:velocity[3]
 
get_velo(id,velocity)
 static 
Float:velocity2[3]
 
velocity2[0] = (rope_to[id][0] - origin1_F[0]) * 3.0
 velocity2
[1] = (rope_to[id][1] - origin1_F[1]) * 3.0
 
static Float:y
 y 
velocity2[0]*velocity2[0] + velocity2[1]*velocity2[1]
 static 
Float:x
 x 
= (get_pcvar_float(rope_speed_cvar) * 20.0) / floatsqroot(y)
 
velocity[0] += velocity2[0]*x
 velocity
[1] += velocity2[1]*x
 
if(rope_to[id][2] - origin1_F[2] >= rope_totaldis[id] && velocity[2]<0.0velocity[2] *= -1
 set_velo
(id,velocity)
 return 
PLUGIN_CONTINUE
}
public 
get_origin(ent,Float:origin[3])
{
#if defined engine
 
return entity_get_vector(id,EV_VEC_origin,origin)
#else
 
return pev(ent,pev_origin,origin)
#endif
}
public 
set_velo(id,Float:velocity[3])
{
#if defined engine
 
return set_user_velocity(id,velocity)
#else
 
return set_pev(id,pev_velocity,velocity)
#endif
}
public 
get_velo(id,Float:velocity[3])
{
#if defined engine
 
return get_user_velocity(id,velocity)
#else
 
return pev(id,pev_velocity,velocity)
#endif
}
public 
is_valid_ent2(ent)
{
#if defined engine
 
return is_valid_ent(ent)
#else
 
return pev_valid(ent)
#endif
}
public 
get_solidity(ent)
{
#if defined engine
 
return entity_get_int(ent,EV_INT_solid)
#else
 
return pev(ent,pev_solid)
#endif
}
stock set_rendering2(indexfx=kRenderFxNoner=255g=255b=255render=kRenderNormalamount=16)
{
#if defined engine
 
return set_rendering(index,fx,r,g,b,render,amount)
#else
 
set_pev(indexpev_renderfxfx);
 new 
Float:RenderColor[3];
 
RenderColor[0] = float(r);
 
RenderColor[1] = float(g);
 
RenderColor[2] = float(b);
 
set_pev(indexpev_rendercolorRenderColor);
 
set_pev(indexpev_rendermoderender);
 
set_pev(indexpev_renderamtfloat(amount));
 return 
1;
#endif


But Only the Admins Can use +rope etc
how can i do only the CT TEAM or Admins(have immunty) Can use +rope etc thanks
soryy for bad english

r0ck 07-22-2011 03:36

Re: please help!!....
 
you mean something like this ? not tried
PHP Code:

//#define engine
#include <amxmodx>
#include <amxmisc>
#include <fun>
#if defined engine
#include <engine>
#else
#include <fakemeta>
#endif
#define ADMIN_LEVEL_Q ADMIN_IMMUNITY
//Used for Grab
new maxplayers
new grab[33]
new 
Float:grab_totaldis[33]
new 
grab_speed_cvar
new grab_enabled_cvar
new bool:has_grab[33]
//Used for Hook
new bool:hook[33]
new 
hook_to[33][3]
new 
hook_speed_cvar
new hook_enabled_cvar
new bool:has_hook[33]
//Used for Rope
new bool:rope[33]
new 
rope_to[33][3]
new 
Float:rope_totaldis[33]
new 
rope_speed_cvar
new rope_enabled_cvar
new bool:has_rope[33]
//Used for All
new beamsprite
 
/****************************
 Register Commands and CVARs
****************************/
public plugin_init()
{
 
register_plugin("Grab + Hook + Rope","1.0","GHW_Chronic")
 
register_concmd("+grab","grab_on")
 
register_concmd("-grab","grab_off")
 
register_concmd("grab_toggle","grab_toggle",ADMIN_LEVEL_Q,"Toggles your grab on and off")
 
register_concmd("+hook","hook_on")
 
register_concmd("-hook","hook_off")
 
register_concmd("hook_toggle","hook_toggle",ADMIN_LEVEL_Q,"Toggles your hook on and off")
 
register_concmd("+rope","rope_on")
 
register_concmd("-rope","rope_off")
 
register_concmd("rope_toggle","rope_toggle",ADMIN_LEVEL_Q,"Toggles your rope on and off")
 
register_concmd("amx_give_grab","cmd_givetake",ADMIN_LEVEL_Q,"Give a player the ability to grab <nick>")
 
register_concmd("amx_give_hook","cmd_givetake",ADMIN_LEVEL_Q,"Give a player the ability to hook <nick>")
 
register_concmd("amx_give_rope","cmd_givetake",ADMIN_LEVEL_Q,"Give a player the ability to rope <nick>")
 
register_concmd("amx_take_grab","cmd_givetake",ADMIN_LEVEL_Q,"Take a player's ability to grab <nick>")
 
register_concmd("amx_take_hook","cmd_givetake",ADMIN_LEVEL_Q,"Take a player's ability to hook <nick>")
 
register_concmd("amx_take_rope","cmd_givetake",ADMIN_LEVEL_Q,"Take a player's ability to rope <nick>")
 
register_concmd("amx_ghr_menu","menu_cmd",ADMIN_LEVEL_Q,"Shows a menu that allows you to turn on/off non-admin use of grab, hook, or rope")
 
register_menucmd(register_menuid("ghr_menu"),(1<<0)|(1<<1)|(1<<2)|(1<<9), "Pressedghr")
 
grab_speed_cvar register_cvar("grab_speed","5")
 
grab_enabled_cvar register_cvar("grab_enabled","0")
 
hook_speed_cvar register_cvar("hook_speed","5")
 
hook_enabled_cvar register_cvar("hook_enabled","0")
 
rope_speed_cvar register_cvar("rope_speed","5")
 
rope_enabled_cvar register_cvar("rope_enabled","0")
 
maxplayers get_maxplayers()
 
//CVAR that is only used for tracking servers that use this plugin.
 
register_cvar("GHW_GHW","1",FCVAR_SERVER)
}
 
/**********************************
 Register beam sprite + Hook Sound
**********************************/
public plugin_precache()
{
 
beamsprite precache_model("sprites/dot.spr")
 
precache_sound("weapons/xbow_hit2.wav")
 
precache_sound("weapons/xbow_fire1.wav")
}
 
/*****************************
 Reset VARs on client connect
*****************************/
public client_putinserver(id)
{
 
has_grab[id]=false
 has_hook
[id]=false
 has_rope
[id]=false
}
 
/*****
 Menu
*****/
public menu_cmd(id,level,cid)
{
 if(
cmd_access(id,level,cid,1))
 {
  
show_ghr(id)
  
console_print(id,"[AMXX] Menu launched.")
 }
}
public 
show_ghr(id)
{
 static 
aaa[32]
 static 
bbb[32]
 static 
ccc[32]
 if(
get_pcvar_num(grab_enabled_cvar)==0format(aaa,31,"No")
 else 
format(aaa,31,"Yes")
 if(
get_pcvar_num(hook_enabled_cvar)==0format(bbb,31,"No")
 else 
format(bbb,31,"Yes")
 if(
get_pcvar_num(rope_enabled_cvar)==0format(ccc,31,"No")
 else 
format(ccc,31,"Yes")
 new 
menuBody[576]
 if(
colored_menus())
 {
  new 
len format(menuBody,575,"\bAllow Players To Use:^n^n")
  
len += format(menuBody[len],575-len"\w1. Grab\R\w%s^n",aaa)
  
len += format(menuBody[len],575-len"\w2. Hook\R\w%s^n",bbb)
  
len += format(menuBody[len],575-len"\w3. Rope\R\w%s^n",ccc)
  
len += format(menuBody[len],575-len"\r0. Exit")
 }
 else
 {
  new 
len format(menuBody,575,"Allow Players To Use:^n^n")
  
len += format(menuBody[len],575-len"1. Grab\R%s^n",aaa)
  
len += format(menuBody[len],575-len"2. Hook\R%s^n",bbb)
  
len += format(menuBody[len],575-len"3. Rope\R%s^n",ccc)
  
len += format(menuBody[len],575-len"0. Exit")
 }
 
show_menu(id,(1<<0)|(1<<1)|(1<<2)|(1<<9),menuBody,-1,"ghr_menu")
 return 
PLUGIN_CONTINUE
}
public 
Pressedghr(id,key)
{
 switch(
key)
 {
  case 
0:
  {
   if(
get_pcvar_num(grab_enabled_cvar)==0)
   {
    
set_pcvar_num(grab_enabled_cvar,1)
    
client_print(0,print_chat,"[AMXX] Admin has enabled Grab for all clients. Use: bind key +grab")
   }
   else
   {
    
set_pcvar_num(grab_enabled_cvar,0)
    
client_print(0,print_chat,"[AMXX] Admin has disabled Grab for all non-admins.")
   }
   
show_ghr(id)
  }
  case 
1:
  {
   if(
get_pcvar_num(hook_enabled_cvar)==0)
   {
    
set_pcvar_num(hook_enabled_cvar,1)
    
client_print(0,print_chat,"[AMXX] Admin has enabled Hook for all clients. Use: bind key +hook")
   }
   else
   {
    
set_pcvar_num(hook_enabled_cvar,0)
    
client_print(0,print_chat,"[AMXX] Admin has disabled Hook for all non-admins.")
   }
   
show_ghr(id)
  }
  case 
2:
  {
   if(
get_pcvar_num(rope_enabled_cvar)==0)
   {
    
set_pcvar_num(rope_enabled_cvar,1)
    
client_print(0,print_chat,"[AMXX] Admin has enabled Rope for all clients. Use: bind key +rope")
   }
   else
   {
    
set_pcvar_num(rope_enabled_cvar,0)
    
client_print(0,print_chat,"[AMXX] Admin has disabled Rope for all non-admins.")
   }
   
show_ghr(id)
  }
 }
}
 
/****************
 Handle Commands
****************/
public cmd_givetake(id,level,cid)
{
 if(!
cmd_access(id,level,cid,2))
 {
  return 
PLUGIN_HANDLED
 
}
 new 
arg1[32]
 
read_argv(1,arg1,31)
 new 
target cmd_target(id,arg1,9)
 if(!
target)
 {
  return 
PLUGIN_HANDLED
 
}
 new 
name[32]
 
get_user_name(target,name,31)
 if(
get_user_flags(target) & ADMIN_LEVEL_Q)
 {
  
console_print(id,"[AMXX] Cannot give/take grab/hook/rope from admin %s.",name)
  return 
PLUGIN_HANDLED
 
}
 new 
arg0[32]
 
read_argv(0,arg0,31)
 if(
containi(arg0,"give")!=-1)
 {
  if(
containi(arg0,"grab")!=-1)
  {
   if(
has_grab[target])
   {
    
console_print(id,"[AMXX] %s already has grab",name)
   }
   else
   {
    
has_grab[target]=true
    console_print
(id,"[AMXX] %s has been given grab",name)
    
client_print(target,print_chat,"[AMXX] An admin has given you grab. Use: bind key +grab")
   }
  }
  else if(
containi(arg0,"hook")!=-1)
  {
   if(
has_hook[target])
   {
    
console_print(id,"[AMXX] %s already has hook",name)
   }
   else
   {
    
has_hook[target]=true
    console_print
(id,"[AMXX] %s has been given hook",name)
    
client_print(target,print_chat,"[AMXX] An admin has given you hook. Use: bind key +hook")
   }
  }
  else if(
containi(arg0,"rope")!=-1)
  {
   if(
has_rope[target])
   {
    
console_print(id,"[AMXX] %s already has rope",name)
   }
   else
   {
    
has_rope[target]=true
    console_print
(id,"[AMXX] %s has been given rope",name)
    
client_print(target,print_chat,"[AMXX] An admin has given you hook. Use: bind key +rope")
   }
  }
 }
 if(
containi(arg0,"take")!=-1)
 {
  if(
containi(arg0,"grab")!=-1)
  {
   if(!
has_grab[target])
   {
    
console_print(id,"[AMXX] %s doesn't have grab",name)
   }
   else
   {
    
has_grab[target]=false
    console_print
(id,"[AMXX] %s's grab has been taken away.",name)
    
client_print(target,print_chat,"[AMXX] An admin has taken your grab away.")
   }
  }
  if(
containi(arg0,"hook")!=-1)
  {
   if(!
has_hook[target])
   {
    
console_print(id,"[AMXX] %s doesn't have hook",name)
   }
   else
   {
    
has_hook[target]=false
    console_print
(id,"[AMXX] %s's hook has been taken away.",name)
    
client_print(target,print_chat,"[AMXX] An admin has taken your hook away.")
   }
  }
  if(
containi(arg0,"rope")!=-1)
  {
   if(!
has_rope[target])
   {
    
console_print(id,"[AMXX] %s doesn't have rope",name)
   }
   else
   {
    
has_rope[target]=false
    console_print
(id,"[AMXX] %s's rope has been taken away.",name)
    
client_print(target,print_chat,"[AMXX] An admin has taken your rope away.")
   }
  }
 }
 return 
PLUGIN_HANDLED
}
 
/*****
 Grab
*****/
public grab_toggle(id,level,cid)
{
 if(
grab[id]) grab_off(id)
 else 
grab_on(id,level,cid)
 return 
PLUGIN_HANDLED
}
public 
grab_on(id,level,cid)
{
 if(!
has_grab[id] && !get_pcvar_num(grab_enabled_cvar) && get_user_team(id) != 2)
 {
  return 
PLUGIN_HANDLED
 
}
 if(
grab[id])
 {
  return 
PLUGIN_HANDLED
 
}
 
grab[id]=-1
 
static targettrash
 target
=0
 get_user_aiming
(id,target,trash)
 if(
target && is_valid_ent2(target) && target!=id)
 {
  if(
target<=maxplayers)
  {
   if(
is_user_alive(target) && !(get_user_flags(target) & ADMIN_IMMUNITY))
   {
    
client_print(id,print_chat,"[AMXX] Found Target")
    
grabem(id,target)
   }
  }
  else if(
get_solidity(target)!=4)
  {
   
client_print(id,print_chat,"[AMXX] Found Target")
   
grabem(id,target)
  }
 }
 else
 {
  
client_print(id,print_chat,"[AMXX] Searching for Target")
  
set_task(0.1,"grab_on2",id)
 }
 return 
PLUGIN_HANDLED
}
public 
grab_on2(id)
{
 if(
is_user_connected(id))
 {
  static 
targettrash
  target
=0
  get_user_aiming
(id,target,trash)
  if(
target && is_valid_ent2(target) && target!=id)
  {
   if(
target<=maxplayers)
   {
    if(
is_user_alive(target) && !(get_user_flags(target) & ADMIN_IMMUNITY))
    {
     
client_print(id,print_chat,"[AMXX] Found Target")
     
grabem(id,target)
    }
   }
   else if(
get_solidity(target)!=4)
   {
    
client_print(id,print_chat,"[AMXX] Found Target")
    
grabem(id,target)
   }
  }
  else
  {
   
set_task(0.1,"grab_on2",id)
  }
 }
}
public 
grabem(id,target)
{
 
grab[id]=target
 set_rendering2
(target,kRenderFxGlowShell,255,0,0,kRenderTransAlpha,70)
 if(
target<=maxplayersset_user_gravity(target,0.0)
 
grab_totaldis[id] = 0.0
 set_task
(0.1,"grab_prethink",id+1000,"",0,"b")
 
grab_prethink(id+1000)
 
emit_sound(id,CHAN_VOICE,"weapons/xbow_fire1.wav"1.0ATTN_NORM0PITCH_NORM)
}
public 
grab_off(id)
{
 if(
is_user_connected(id))
 {
  if(
grab[id]==-1)
  {
   
client_print(id,print_chat,"[AMXX] No Target Found")
   
grab[id]=0
  
}
  else if(
grab[id])
  {
   
client_print(id,print_chat,"[AMXX] Target Released")
   
set_rendering2(grab[id])
   if(
grab[id]<=maxplayers && is_user_alive(grab[id])) set_user_gravity(grab[id],1.0)
   
grab[id]=0
  
}
 }
 return 
PLUGIN_HANDLED
}
public 
grab_prethink(id)
{
 
id -= 1000
 
if(!is_user_connected(id) && grab[id]>0)
 {
  
set_rendering2(grab[id])
  if(
grab[id]<=maxplayers && is_user_alive(grab[id])) set_user_gravity(grab[id],1.0)
  
grab[id]=0
 
}
 if(!
grab[id] || grab[id]==-1)
 {
  
remove_task(id+1000)
  return 
PLUGIN_HANDLED
 
}
 
//Get Id's, target's, and Where Id is looking's origins
 
static origin1[3]
 
get_user_origin(id,origin1)
 static 
Float:origin2_F[3], origin2[3]
 
get_origin(grab[id],origin2_F)
 
origin2[0] = floatround(origin2_F[0])
 
origin2[1] = floatround(origin2_F[1])
 
origin2[2] = floatround(origin2_F[2])
 static 
origin3[3]
 
get_user_origin(id,origin3,3)
 
//Create red beam
 
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
 
write_byte(1)  //TE_BEAMENTPOINT
 
write_short(id)  // start entity
 
write_coord(origin2[0])
 
write_coord(origin2[1])
 
write_coord(origin2[2])
 
write_short(beamsprite)
 
write_byte(1)  // framestart
 
write_byte(1)  // framerate
 
write_byte(1)  // life in 0.1's
 
write_byte(5)  // width
 
write_byte(0)  // noise
 
write_byte(255)  // red
 
write_byte(0)  // green
 
write_byte(0)  // blue
 
write_byte(200)  // brightness
 
write_byte(0)  // speed
 
message_end()
 
//Convert to floats for calculation
 
static Float:origin1_F[3]
 static 
Float:origin3_F[3]
 
origin1_F[0] = float(origin1[0])
 
origin1_F[1] = float(origin1[1])
 
origin1_F[2] = float(origin1[2])
 
origin3_F[0] = float(origin3[0])
 
origin3_F[1] = float(origin3[1])
 
origin3_F[2] = float(origin3[2])
 
//Calculate target's new velocity
 
static Float:distance[3]
 if(!
grab_totaldis[id])
 {
  
distance[0] = floatabs(origin1_F[0] - origin2_F[0])
  
distance[1] = floatabs(origin1_F[1] - origin2_F[1])
  
distance[2] = floatabs(origin1_F[2] - origin2_F[2])
  
grab_totaldis[id] = floatsqroot(distance[0]*distance[0] + distance[1]*distance[1] + distance[2]*distance[2])
 }
 
distance[0] = origin3_F[0] - origin1_F[0]
 
distance[1] = origin3_F[1] - origin1_F[1]
 
distance[2] = origin3_F[2] - origin1_F[2]
 static 
Float:grab_totaldis2
 grab_totaldis2 
floatsqroot(distance[0]*distance[0] + distance[1]*distance[1] + distance[2]*distance[2])
 static 
Float:que
 que 
grab_totaldis[id] / grab_totaldis2
 
static Float:origin4[3]
 
origin4[0] = ( distance[0] * que ) + origin1_F[0]
 
origin4[1] = ( distance[1] * que ) + origin1_F[1]
 
origin4[2] = ( distance[2] * que ) + origin1_F[2]
 static 
Float:velocity[3]
 
velocity[0] = (origin4[0] - origin2_F[0]) * (get_pcvar_float(grab_speed_cvar) / 1.666667)
 
velocity[1] = (origin4[1] - origin2_F[1]) * (get_pcvar_float(grab_speed_cvar) / 1.666667)
 
velocity[2] = (origin4[2] - origin2_F[2]) * (get_pcvar_float(grab_speed_cvar) / 1.666667)
 
set_velo(grab[id],velocity)
 return 
PLUGIN_CONTINUE
}
 
/*****
 Hook
*****/
public hook_toggle(id,level,cid)
{
 if(
hook[id]) hook_off(id)
 else 
hook_on(id,level,cid)
 return 
PLUGIN_HANDLED
}
public 
hook_on(id,level,cid)
{
 if(!
has_hook[id] && !get_pcvar_num(hook_enabled_cvar) && get_user_team(id) != 2)
 {
  return 
PLUGIN_HANDLED
 
}
 if(
hook[id])
 {
  return 
PLUGIN_HANDLED
 
}
 
set_user_gravity(id,0.0)
 
set_task(0.1,"hook_prethink",id+10000,"",0,"b")
 
hook[id]=true
 hook_to
[id][0]=999999
 hook_prethink
(id+10000)
 
emit_sound(id,CHAN_VOICE,"weapons/xbow_hit2.wav"1.0ATTN_NORM0PITCH_NORM)
 return 
PLUGIN_HANDLED
}
public 
hook_off(id)
{
 if(
is_user_alive(id)) set_user_gravity(id)
 
hook[id]=false
 
return PLUGIN_HANDLED
}
public 
hook_prethink(id)
{
 
id -= 10000
 
if(!is_user_alive(id))
 {
  
hook[id]=false
 
}
 if(!
hook[id])
 {
  
remove_task(id+10000)
  return 
PLUGIN_HANDLED
 
}
 
//Get Id's origin
 
static origin1[3]
 
get_user_origin(id,origin1)
 if(
hook_to[id][0]==999999)
 {
  static 
origin2[3]
  
get_user_origin(id,origin2,3)
  
hook_to[id][0]=origin2[0]
  
hook_to[id][1]=origin2[1]
  
hook_to[id][2]=origin2[2]
 }
 
//Create blue beam
 
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
 
write_byte(1)  //TE_BEAMENTPOINT
 
write_short(id)  // start entity
 
write_coord(hook_to[id][0])
 
write_coord(hook_to[id][1])
 
write_coord(hook_to[id][2])
 
write_short(beamsprite)
 
write_byte(1)  // framestart
 
write_byte(1)  // framerate
 
write_byte(2)  // life in 0.1's
 
write_byte(5)  // width
 
write_byte(0)  // noise
 
write_byte(0)  // red
 
write_byte(0)  // green
 
write_byte(255)  // blue
 
write_byte(200)  // brightness
 
write_byte(0)  // speed
 
message_end()
 
//Calculate Velocity
 
static Float:velocity[3]
 
velocity[0] = (float(hook_to[id][0]) - float(origin1[0])) * 3.0
 velocity
[1] = (float(hook_to[id][1]) - float(origin1[1])) * 3.0
 velocity
[2] = (float(hook_to[id][2]) - float(origin1[2])) * 3.0
 
static Float:y
 y 
velocity[0]*velocity[0] + velocity[1]*velocity[1] + velocity[2]*velocity[2]
 static 
Float:x
 x 
= (get_pcvar_float(hook_speed_cvar) * 120.0) / floatsqroot(y)
 
velocity[0] *= x
 velocity
[1] *= x
 velocity
[2] *= x
 set_velo
(id,velocity)
 return 
PLUGIN_CONTINUE
}
 
/*****
 Rope
*****/
public rope_toggle(id,level,cid)
{
 if(
rope[id]) rope_off(id)
 else 
rope_on(id,level,cid)
 return 
PLUGIN_HANDLED
}
public 
rope_on(id,level,cid)
{
 if(!
has_rope[id] && !get_pcvar_num(rope_enabled_cvar) && get_user_team(id) != )
 {
  return 
PLUGIN_HANDLED
 
}
 if(
rope[id])
 {
  return 
PLUGIN_HANDLED
 
}
 
set_task(0.1,"rope_prethink",id+100000,"",0,"b")
 
rope[id]=true
 rope_to
[id][0]=999999
 rope_prethink
(id+100000)
 
emit_sound(id,CHAN_VOICE,"weapons/xbow_hit2.wav"1.0ATTN_NORM0PITCH_NORM)
 return 
PLUGIN_HANDLED
}
public 
rope_off(id)
{
 
rope[id]=false
 
return PLUGIN_HANDLED
}
public 
rope_prethink(id)
{
 
id -= 100000
 
if(!is_user_alive(id))
 {
  
rope[id]=false
 
}
 if(!
rope[id])
 {
  
remove_task(id+100000)
  return 
PLUGIN_HANDLED
 
}
 
//Get Id's origin
 
static origin1[3]
 
get_user_origin(id,origin1)
 static 
Float:origin1_F[3]
 
origin1_F[0] = float(origin1[0])
 
origin1_F[1] = float(origin1[1])
 
origin1_F[2] = float(origin1[2])
 
//Check to see if this is the first time prethink is being run
 
if(rope_to[id][0]==999999)
 {
  static 
origin2[3]
  
get_user_origin(id,origin2,3)
  
rope_to[id][0]=origin2[0]
  
rope_to[id][1]=origin2[1]
  
rope_to[id][2]=origin2[2]
  static 
Float:origin2_F[3]
  
origin2_F[0] = float(origin2[0])
  
origin2_F[1] = float(origin2[1])
  
origin2_F[2] = float(origin2[2])
  static 
Float:distance[3]
  
distance[0] = floatabs(origin1_F[0] - origin2_F[0])
  
distance[1] = floatabs(origin1_F[1] - origin2_F[1])
  
distance[2] = floatabs(origin1_F[2] - origin2_F[2])
  
rope_totaldis[id] = floatsqroot(distance[0]*distance[0] + distance[1]*distance[1] + distance[2]*distance[2])
 }
 
//Create green beam
 
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
 
write_byte(1)  //TE_BEAMENTPOINT
 
write_short(id)  // start entity
 
write_coord(rope_to[id][0])
 
write_coord(rope_to[id][1])
 
write_coord(rope_to[id][2])
 
write_short(beamsprite)
 
write_byte(1)  // framestart
 
write_byte(1)  // framerate
 
write_byte(1)  // life in 0.1's
 
write_byte(5)  // width
 
write_byte(0)  // noise
 
write_byte(0)  // red
 
write_byte(255)  // green
 
write_byte(0)  // blue
 
write_byte(200)  // brightness
 
write_byte(0)  // speed
 
message_end()
 
//Calculate Velocity
 
static Float:velocity[3]
 
get_velo(id,velocity)
 static 
Float:velocity2[3]
 
velocity2[0] = (rope_to[id][0] - origin1_F[0]) * 3.0
 velocity2
[1] = (rope_to[id][1] - origin1_F[1]) * 3.0
 
static Float:y
 y 
velocity2[0]*velocity2[0] + velocity2[1]*velocity2[1]
 static 
Float:x
 x 
= (get_pcvar_float(rope_speed_cvar) * 20.0) / floatsqroot(y)
 
velocity[0] += velocity2[0]*x
 velocity
[1] += velocity2[1]*x
 
if(rope_to[id][2] - origin1_F[2] >= rope_totaldis[id] && velocity[2]<0.0velocity[2] *= -1
 set_velo
(id,velocity)
 return 
PLUGIN_CONTINUE
}
public 
get_origin(ent,Float:origin[3])
{
#if defined engine
 
return entity_get_vector(id,EV_VEC_origin,origin)
#else
 
return pev(ent,pev_origin,origin)
#endif
}
public 
set_velo(id,Float:velocity[3])
{
#if defined engine
 
return set_user_velocity(id,velocity)
#else
 
return set_pev(id,pev_velocity,velocity)
#endif
}
public 
get_velo(id,Float:velocity[3])
{
#if defined engine
 
return get_user_velocity(id,velocity)
#else
 
return pev(id,pev_velocity,velocity)
#endif
}
public 
is_valid_ent2(ent)
{
#if defined engine
 
return is_valid_ent(ent)
#else
 
return pev_valid(ent)
#endif
}
public 
get_solidity(ent)
{
#if defined engine
 
return entity_get_int(ent,EV_INT_solid)
#else
 
return pev(ent,pev_solid)
#endif
}
stock set_rendering2(indexfx=kRenderFxNoner=255g=255b=255render=kRenderNormalamount=16)
{
#if defined engine
 
return set_rendering(index,fx,r,g,b,render,amount)
#else
 
set_pev(indexpev_renderfxfx);
 new 
Float:RenderColor[3];
 
RenderColor[0] = float(r);
 
RenderColor[1] = float(g);
 
RenderColor[2] = float(b);
 
set_pev(indexpev_rendercolorRenderColor);
 
set_pev(indexpev_rendermoderender);
 
set_pev(indexpev_renderamtfloat(amount));
 return 
1;
#endif



Honors 07-22-2011 03:46

Re: please help!!....
 
You don't check if the user is admin.

Code:
if( cs_get_user_team( id ) == CS_TEAM_CT || get_user_flags( id ) & ADMIN_KICK ) {      ... }

can1357 07-22-2011 17:27

Re: please help!!....
 
ı dont now codding ı am very sory can a user send me the sma of ı want ??:(

r0ck 07-22-2011 23:28

Re: please help!!....
 
done :)

can1357 07-23-2011 03:02

Re: please help!!....
 
i tried when i on the team t ı can hook but in ct admin or nonadmin ı cant hook
ı want on CT team OR admins has IMMUNITY ct teams all admın cant hook on t all admıns hook ??

r0ck 07-23-2011 03:33

Re: please help!!....
 
what ?

nikhilgupta345 07-23-2011 03:39

Re: please help!!....
 
He's saying that it's the opposite of what he wants.

He can't hook right now on ct team, only when he's on T team.

Change it so that he can use hook if he's a ct or if he's an admin.

r0ck 07-23-2011 03:55

Re: please help!!....
 
1 Attachment(s)
now try ?

can1357 07-23-2011 04:07

Re: please help!!....
 
its dont work ı have admın ımmunuty and ın ct or t ı cant hook .??? :(


All times are GMT -4. The time now is 01:11.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.