Raised This Month: $32 Target: $400
 8% 

please help!!....


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
can1357
Junior Member
Join Date: Apr 2011
Old 07-21-2011 , 07:12   please help!!....
Reply With Quote #1

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
can1357 is offline
Old 07-21-2011, 17:27
can1357
This message has been deleted by Emp`. Reason: Wait one week before bumping
r0ck
Senior Member
Join Date: Jun 2011
Location: India
Old 07-22-2011 , 03:36   Re: please help!!....
Reply With Quote #2

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

__________________
Preparing to release my plugins..

Last edited by r0ck; 07-22-2011 at 03:41.
r0ck is offline
Honors
Member
Join Date: Jul 2011
Old 07-22-2011 , 03:46   Re: please help!!....
Reply With Quote #3

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 ) {      ... }
Honors is offline
can1357
Junior Member
Join Date: Apr 2011
Old 07-22-2011 , 17:27   Re: please help!!....
Reply With Quote #4

ı dont now codding ı am very sory can a user send me the sma of ı want ??
can1357 is offline
r0ck
Senior Member
Join Date: Jun 2011
Location: India
Old 07-22-2011 , 23:28   Re: please help!!....
Reply With Quote #5

done
__________________
Preparing to release my plugins..

Last edited by r0ck; 06-27-2014 at 16:08.
r0ck is offline
can1357
Junior Member
Join Date: Apr 2011
Old 07-23-2011 , 03:02   Re: please help!!....
Reply With Quote #6

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 ??
can1357 is offline
r0ck
Senior Member
Join Date: Jun 2011
Location: India
Old 07-23-2011 , 03:33   Re: please help!!....
Reply With Quote #7

what ?
__________________
Preparing to release my plugins..
r0ck is offline
nikhilgupta345
Veteran Member
Join Date: Aug 2009
Location: Virginia
Old 07-23-2011 , 03:39   Re: please help!!....
Reply With Quote #8

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.
__________________
Quote:
Originally Posted by DarkGod View Post
nikhilgupta generates his plugins using sheer awesome.
If you like my work, please
nikhilgupta345 is offline
Send a message via ICQ to nikhilgupta345 Send a message via Yahoo to nikhilgupta345
r0ck
Senior Member
Join Date: Jun 2011
Location: India
Old 07-23-2011 , 03:55   Re: please help!!....
Reply With Quote #9

now try ?
Attached Files
File Type: sma Get Plugin or Get Source (hookgrab.sma - 477 views - 19.5 KB)
__________________
Preparing to release my plugins..
r0ck is offline
can1357
Junior Member
Join Date: Apr 2011
Old 07-23-2011 , 04:07   Re: please help!!....
Reply With Quote #10

its dont work ı have admın ımmunuty and ın ct or t ı cant hook .???
can1357 is offline
Old 07-23-2011, 12:08
can1357
This message has been deleted by Exolent[jNr]. Reason: Don't bump until 2 weeks have passed since last post.
Old 07-24-2011, 05:34
can1357
This message has been deleted by Exolent[jNr]. Reason: Don't bump until 2 weeks have passed since last post.
Old 07-24-2011, 06:46
Honors
This message has been deleted by Exolent[jNr]. Reason: Don't bump until 2 weeks have passed since last post.
Old 07-26-2011, 15:59
can1357
This message has been deleted by Exolent[jNr]. Reason: It's been 3 days. 2 weeks is 14 days.
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


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


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