hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.06.17. 01:38



Jelenlévő felhasználók

Jelenleg 357 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 356 vendég

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot]az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása Hozzászólás a témához  [3 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Hook
HozzászólásElküldve:2012.08.28. 16:40 
Offline
Őskövület
Avatar

Csatlakozott:2011.12.28. 00:35
Hozzászólások:2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
Hali.

Ebben mi a hiba??

Kód:
        #include <amxmod>
   #include <amxmisc>
   #include <VexdUM>
   #include <fun>
   #include <colorchat>
        new gModName[32] = "AMX"
#else
   #include <amxmodx>
   #include <amxmisc>
   #include <fun>
   #include <engine>
   new gModName[32] = "AMXX"
#endif

#define TE_BEAMENTPOINT 1
#define TE_KILLBEAM 99
#define DELTA_T 0.1            // seconds
#define BEAMLIFE 100         // deciseconds
#define MOVEACCELERATION 150   // units per second^2
#define REELSPEED 300         // units per second

/* Hook Stuff */
new gHookLocation[33][3]
new gHookLenght[33]
new bool:gIsHooked[33]
new gAllowedHook[33]
new Float:gBeamIsCreated[33]
new global_gravity
new beam

/************************************************************************************************************************/
public plugin_init() //Called on plugin start
{
   // Plugin Info
   register_plugin("Admin Hook","1.0","AssKicR")
   
   //CVARS
   register_cvar("sv_adminhook", "1" )

   //ADMIN CMDS
   register_concmd("amx_granthook","AdminGrantHook",ADMIN_LEVEL_A,"<authid, nick, @team, @all or #userid> <on/off>")

   //USER COMMANDS
   register_clcmd("+rope", "hook_on",ADMIN_LEVEL_E)
   register_clcmd("-rope", "hook_off",ADMIN_LEVEL_E)
   register_clcmd("+hook", "hook_on",ADMIN_LEVEL_E)
   register_clcmd("-hook", "hook_off",ADMIN_LEVEL_E)

   //HOOKED EVENTS
   register_event("ResetHUD", "ResetHUD", "b")
}
/************************************************************************************************************************/
public plugin_precache()
{
   beam = precache_model("sprites/zbeam4.spr")
   precache_sound("weapons/xbow_hit2.wav")
}
/*************************************************************************************************************************/
/************************************************** USP/SCOUT REMOVE *****************************************************/
/*************************************************************************************************************************/

/*************************************************************************************************************************/
/**************************************************** HOOKED EVENTS ******************************************************/
/*************************************************************************************************************************/
public ResetHUD(id) {
   //Check if he is hooked to something
   if (gIsHooked[id]) RopeRelease(id)
}
/************************************************************************************************************************/
stock kz_velocity_set(id,vel[3]) {
   //Set Their Velocity to 0 so that they they fall straight down from
   new Float:Ivel[3]
   Ivel[0]=float(vel[0])
   Ivel[1]=float(vel[1])
   Ivel[2]=float(vel[2])
   entity_set_vector(id, EV_VEC_velocity, Ivel)
}

stock kz_velocity_get(id,vel[3]) {
   //Set Their Velocity to 0 so that they they fall straight down from
   new Float:Ivel[3]

   entity_get_vector(id, EV_VEC_velocity, Ivel)
   vel[0]=floatround(Ivel[0])
   vel[1]=floatround(Ivel[1])
   vel[2]=floatround(Ivel[2])
}

/************************************************************************************************************************/
/**************************************************** ADMIN COMMANDS ****************************************************/
/************************************************************************************************************************/
public AdminGrantHook(id,level,cid)
{
   if ( !cmd_access(id,level,cid,1) )
      return PLUGIN_HANDLED

   new arg1[32],arg2[32]
   read_argv(1,arg1,31)
   read_argv(2,arg2,31)
   new onoff = str_to_num(arg2)

   if ( equali(arg1,"@all") )
   {
      new plist[32],pnum
      get_players(plist,pnum,"a")
      if (pnum==0)
      {
       console_print(id,"[%s] There are no clients",gModName)
       return PLUGIN_HANDLED
      }
      for (new i=0; i<pnum; i++) {
         gAllowedHook[plist[i]]=onoff
         if (gIsHooked[plist[i]]==true && onoff==0)
         {
            RopeRelease(plist[i])
         }
      }

      console_print(id,"[%s] %s all players access to hook/rope",gModName,onoff ? "Gave":"Removed")
   }
   else if ( arg1[0]=='@' )
   {
      new plist[32],pnum
      get_players(plist,pnum,"ae",arg1[1])
      if ( pnum==0 )
      {
       console_print(id,"[%s] No clients in such team",gModName)
       return PLUGIN_HANDLED
      }
      for (new i=0; i<pnum; i++) {
         gAllowedHook[plist[i]]=onoff
         if (gIsHooked[plist[i]]==true && onoff==0)
         {
            RopeRelease(plist[i])
         }
      }
      console_print(id,"[%s] %s all %ss access to hook/rope",onoff ? "Gave":"Removed",arg1[1])
   }
   else
   {
      new pName[32]
      new player = cmd_target(id,arg1,6)
      if (!player) return PLUGIN_HANDLED

      gAllowedHook[player]=onoff
      if (gAllowedHook[player]==0 && onoff==0)
      {
         RopeRelease(player)
      }

      
      get_user_name(player,pName,31)
      console_print(id,"[%s] %s ^"%s^" access to hook/rope",onoff ? "Gave":"Removed",pName)
   }

   return PLUGIN_HANDLED
}

/************************************************************************************************************************/
/****************************************************** NINJAROPE *******************************************************/
/************************************************************************************************************************/

public ropetask(parm[])
{
   new id = parm[0]
   new user_origin[3], user_look[3], user_direction[3], move_direction[3]
   new A[3], D[3], buttonadjust[3]
   new acceleration, velocity_towards_A, desired_velocity_towards_A
   new velocity[3], null[3]

   if (!is_user_alive(id))
   {
      RopeRelease(id)
      return
   }

   if (gBeamIsCreated[id] + BEAMLIFE/10 <= get_gametime())
   {
      beamentpoint(id)
   }

   null[0] = 0
   null[1] = 0
   null[2] = 0

   get_user_origin(id, user_origin)
   get_user_origin(id, user_look,2)
   kz_velocity_get(id, velocity)

   buttonadjust[0]=0
   buttonadjust[1]=0

   if (get_user_button(id)&IN_FORWARD)      buttonadjust[0]+=1
   if (get_user_button(id)&IN_BACK)      buttonadjust[0]-=1
   if (get_user_button(id)&IN_MOVERIGHT)   buttonadjust[1]+=1
   if (get_user_button(id)&IN_MOVELEFT)   buttonadjust[1]-=1
   if (get_user_button(id)&IN_JUMP)      buttonadjust[2]+=1
   if (get_user_button(id)&IN_DUCK)      buttonadjust[2]-=1

   if (buttonadjust[0] || buttonadjust[1])
   {
      user_direction[0] = user_look[0] - user_origin[0]
      user_direction[1] = user_look[1] - user_origin[1]

      move_direction[0] = buttonadjust[0]*user_direction[0] + user_direction[1]*buttonadjust[1]
      move_direction[1] = buttonadjust[0]*user_direction[1] - user_direction[0]*buttonadjust[1]
      move_direction[2] = 0

      velocity[0] += floatround(move_direction[0] * MOVEACCELERATION * DELTA_T / get_distance(null,move_direction))
      velocity[1] += floatround(move_direction[1] * MOVEACCELERATION * DELTA_T / get_distance(null,move_direction))
   }

   if (buttonadjust[2])   gHookLenght[id] -= floatround(buttonadjust[2] * REELSPEED * DELTA_T)
   if (gHookLenght[id] < 100) gHookLenght[id] = 100

   A[0] = gHookLocation[id][0] - user_origin[0]
   A[1] = gHookLocation[id][1] - user_origin[1]
   A[2] = gHookLocation[id][2] - user_origin[2]

   D[0] = A[0]*A[2] / get_distance(null,A)
   D[1] = A[1]*A[2] / get_distance(null,A)
   D[2] = -(A[1]*A[1] + A[0]*A[0]) / get_distance(null,A)

   acceleration = - global_gravity * D[2] / get_distance(null,D)

   velocity_towards_A = (velocity[0] * A[0] + velocity[1] * A[1] + velocity[2] * A[2]) / get_distance(null,A)
   desired_velocity_towards_A = (get_distance(user_origin,gHookLocation[id]) - gHookLenght[id] /*- 10*/) * 4

   if (get_distance(null,D)>10)
   {
      velocity[0] += floatround((acceleration * DELTA_T * D[0]) / get_distance(null,D))
      velocity[1] += floatround((acceleration * DELTA_T * D[1]) / get_distance(null,D))
      velocity[2] += floatround((acceleration * DELTA_T * D[2]) / get_distance(null,D))
   }

   velocity[0] += ((desired_velocity_towards_A - velocity_towards_A) * A[0]) / get_distance(null,A)
   velocity[1] += ((desired_velocity_towards_A - velocity_towards_A) * A[1]) / get_distance(null,A)
   velocity[2] += ((desired_velocity_towards_A - velocity_towards_A) * A[2]) / get_distance(null,A)

   kz_velocity_set(id, velocity)
}

public hooktask(parm[])
{
   new id = parm[0]
   new velocity[3]

   if ( !gIsHooked[id] ) return
   
   new user_origin[3],oldvelocity[3]
   parm[0] = id

   if (!is_user_alive(id))
   {
      RopeRelease(id)
      return
   }

   if (gBeamIsCreated[id] + BEAMLIFE/10 <= get_gametime())
   {
      beamentpoint(id)
   }

   get_user_origin(id, user_origin)
   kz_velocity_get(id, oldvelocity)
   new distance=get_distance( gHookLocation[id], user_origin )
   if ( distance > 10 )
   {
      velocity[0] = floatround( (gHookLocation[id][0] - user_origin[0]) * ( 2.0 * REELSPEED / distance ) )
      velocity[1] = floatround( (gHookLocation[id][1] - user_origin[1]) * ( 2.0 * REELSPEED / distance ) )
      velocity[2] = floatround( (gHookLocation[id][2] - user_origin[2]) * ( 2.0 * REELSPEED / distance ) )
   }
   else
   {
      velocity[0]=0
      velocity[1]=0
      velocity[2]=0
   }

   kz_velocity_set(id, velocity)
   
}

public hook_on(id)
{
   if (get_cvar_num("sv_adminhook")==1)
      {
      if (gAllowedHook[id] || (get_user_flags(id)&ADMIN_LEVEL_E)) {
         if (!gIsHooked[id] && is_user_alive(id))
         {
            new cmd[32]
            read_argv(0,cmd,31)
            if(equal(cmd,"+rope")) RopeAttach(id,0)
            if(equal(cmd,"+hook")) RopeAttach(id,1)
         }
      }else{
         ColorChat(0, GREEN, "[%s] ^3Nincs elerhetoseged hozza",gModName)
         return PLUGIN_HANDLED
      }
   }else{
      ColorChat(0, GREEN, "[%s] ^3Ez a parancs ki van kapcsolva",gModName)
   }
   return PLUGIN_HANDLED
}

public hook_off(id)
{
   if (gAllowedHook[id] || (get_user_flags(id)&ADMIN_LEVEL_E)) {
      if (gIsHooked[id])
      {
         RopeRelease(id)
      }
   }else{
      ColorChat(0, GREEN, "[%s] ^3Nincs elerhetoseged hozza",gModName)
      return PLUGIN_HANDLED
   }
   return PLUGIN_HANDLED
}

public RopeAttach(id,hook)
{
   new parm[1], user_origin[3]
   parm[0] = id
   gIsHooked[id] = true
   get_user_origin(id,user_origin)
   get_user_origin(id,gHookLocation[id], 3)
   gHookLenght[id] = get_distance(gHookLocation[id],user_origin)
   global_gravity = get_cvar_num("sv_gravity")
   set_user_gravity(id,0.001)
   beamentpoint(id)
   emit_sound(id, CHAN_STATIC, "weapons/xbow_hit2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
   if (hook) set_task(DELTA_T, "hooktask", 200+id, parm, 1, "b")
   else set_task(DELTA_T, "ropetask", 200+id, parm, 1, "b")
}

public RopeRelease(id)
{
   gIsHooked[id] = false
   killbeam(id)
   set_user_gravity(id)
   remove_task(200+id)
}

public beamentpoint(id)
{
   message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
   write_byte( TE_BEAMENTPOINT )
   write_short( id )
   write_coord( gHookLocation[id][0] )
   write_coord( gHookLocation[id][1] )
   write_coord( gHookLocation[id][2] )
   write_short( beam )   // sprite index
   write_byte( 0 )      // start frame
   write_byte( 0 )      // framerate
   write_byte( BEAMLIFE )   // life
   write_byte( 10 )   // width
   write_byte( 0 )      // noise
   if (get_user_team(id)==1)      // Terrorist
   {
      write_byte( 255 )   // r, g, b
      write_byte( 0 )   // r, g, b
      write_byte( 255 )   // r, g, b
   }
   else                     // Counter-Terrorist
   {
      write_byte( 255 )   // r, g, b
      write_byte( 255 )   // r, g, b
      write_byte( 255 )   // r, g, b
   }
   write_byte( 150 )   // brightness
   write_byte( 0 )      // speed
   message_end( )
   gBeamIsCreated[id] = get_gametime()
}

public killbeam(id)
{
   message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
   write_byte( TE_KILLBEAM )
   write_short( id )
   message_end()
}

/************************************************************************************************************************/
/******************************************************* FORWARDS *******************************************************/
/************************************************************************************************************************/

public client_disconnect(id) {
   gAllowedHook[id]=0
}

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Hook
HozzászólásElküldve:2012.08.28. 16:48 
Offline
Őskövület
Avatar

Csatlakozott:2011.09.17. 17:54
Hozzászólások:2350
Megköszönt másnak: 40 alkalommal
Megköszönték neki: 57 alkalommal
Kód:
  #define USING_AMX 0
 
   #if USING_AMX
   #include <amxmod>
   #include <amxmisc>
   #include <VexdUM>
   #include <fun>
        new gModName[32] = "AMX"
#else
   #include <amxmodx>
   #include <amxmisc>
   #include <fun>
   #include <engine>
   #include <colorchat>
   new gModName[32] = "AMXX"
#endif

#define TE_BEAMENTPOINT 1
#define TE_KILLBEAM 99
#define DELTA_T 0.1            // seconds
#define BEAMLIFE 100         // deciseconds
#define MOVEACCELERATION 150   // units per second^2
#define REELSPEED 300         // units per second

/* Hook Stuff */
new gHookLocation[33][3]
new gHookLenght[33]
new bool:gIsHooked[33]
new gAllowedHook[33]
new Float:gBeamIsCreated[33]
new global_gravity
new beam

/************************************************************************************************************************/
public plugin_init() //Called on plugin start
{
   // Plugin Info
   register_plugin("Admin Hook","1.0","AssKicR")
   
   //CVARS
   register_cvar("sv_adminhook", "1" )

   //ADMIN CMDS
   register_concmd("amx_granthook","AdminGrantHook",ADMIN_LEVEL_A,"<authid, nick, @team, @all or #userid> <on/off>")

   //USER COMMANDS
   register_clcmd("+rope", "hook_on",ADMIN_LEVEL_E)
   register_clcmd("-rope", "hook_off",ADMIN_LEVEL_E)
   register_clcmd("+hook", "hook_on",ADMIN_LEVEL_E)
   register_clcmd("-hook", "hook_off",ADMIN_LEVEL_E)

   //HOOKED EVENTS
   register_event("ResetHUD", "ResetHUD", "b")
}
/************************************************************************************************************************/
public plugin_precache()
{
   beam = precache_model("sprites/zbeam4.spr")
   precache_sound("weapons/xbow_hit2.wav")
}
/*************************************************************************************************************************/
/************************************************** USP/SCOUT REMOVE *****************************************************/
/*************************************************************************************************************************/

/*************************************************************************************************************************/
/**************************************************** HOOKED EVENTS ******************************************************/
/*************************************************************************************************************************/
public ResetHUD(id) {
   //Check if he is hooked to something
   if (gIsHooked[id]) RopeRelease(id)
}
/************************************************************************************************************************/
stock kz_velocity_set(id,vel[3]) {
   //Set Their Velocity to 0 so that they they fall straight down from
   new Float:Ivel[3]
   Ivel[0]=float(vel[0])
   Ivel[1]=float(vel[1])
   Ivel[2]=float(vel[2])
   entity_set_vector(id, EV_VEC_velocity, Ivel)
}

stock kz_velocity_get(id,vel[3]) {
   //Set Their Velocity to 0 so that they they fall straight down from
   new Float:Ivel[3]

   entity_get_vector(id, EV_VEC_velocity, Ivel)
   vel[0]=floatround(Ivel[0])
   vel[1]=floatround(Ivel[1])
   vel[2]=floatround(Ivel[2])
}

/************************************************************************************************************************/
/**************************************************** ADMIN COMMANDS ****************************************************/
/************************************************************************************************************************/
public AdminGrantHook(id,level,cid)
{
   if ( !cmd_access(id,level,cid,1) )
      return PLUGIN_HANDLED

   new arg1[32],arg2[32]
   read_argv(1,arg1,31)
   read_argv(2,arg2,31)
   new onoff = str_to_num(arg2)

   if ( equali(arg1,"@all") )
   {
      new plist[32],pnum
      get_players(plist,pnum,"a")
      if (pnum==0)
      {
       console_print(id,"[%s] There are no clients",gModName)
       return PLUGIN_HANDLED
      }
      for (new i=0; i<pnum; i++) {
         gAllowedHook[plist[i]]=onoff
         if (gIsHooked[plist[i]]==true && onoff==0)
         {
            RopeRelease(plist[i])
         }
      }

      console_print(id,"[%s] %s all players access to hook/rope",gModName,onoff ? "Gave":"Removed")
   }
   else if ( arg1[0]=='@' )
   {
      new plist[32],pnum
      get_players(plist,pnum,"ae",arg1[1])
      if ( pnum==0 )
      {
       console_print(id,"[%s] No clients in such team",gModName)
       return PLUGIN_HANDLED
      }
      for (new i=0; i<pnum; i++) {
         gAllowedHook[plist[i]]=onoff
         if (gIsHooked[plist[i]]==true && onoff==0)
         {
            RopeRelease(plist[i])
         }
      }
      console_print(id,"[%s] %s all %ss access to hook/rope",onoff ? "Gave":"Removed",arg1[1])
   }
   else
   {
      new pName[32]
      new player = cmd_target(id,arg1,6)
      if (!player) return PLUGIN_HANDLED

      gAllowedHook[player]=onoff
      if (gAllowedHook[player]==0 && onoff==0)
      {
         RopeRelease(player)
      }

     
      get_user_name(player,pName,31)
      console_print(id,"[%s] %s ^"%s^" access to hook/rope",onoff ? "Gave":"Removed",pName)
   }

   return PLUGIN_HANDLED
}

/************************************************************************************************************************/
/****************************************************** NINJAROPE *******************************************************/
/************************************************************************************************************************/

public ropetask(parm[])
{
   new id = parm[0]
   new user_origin[3], user_look[3], user_direction[3], move_direction[3]
   new A[3], D[3], buttonadjust[3]
   new acceleration, velocity_towards_A, desired_velocity_towards_A
   new velocity[3], null[3]

   if (!is_user_alive(id))
   {
      RopeRelease(id)
      return
   }

   if (gBeamIsCreated[id] + BEAMLIFE/10 <= get_gametime())
   {
      beamentpoint(id)
   }

   null[0] = 0
   null[1] = 0
   null[2] = 0

   get_user_origin(id, user_origin)
   get_user_origin(id, user_look,2)
   kz_velocity_get(id, velocity)

   buttonadjust[0]=0
   buttonadjust[1]=0

   if (get_user_button(id)&IN_FORWARD)      buttonadjust[0]+=1
   if (get_user_button(id)&IN_BACK)      buttonadjust[0]-=1
   if (get_user_button(id)&IN_MOVERIGHT)   buttonadjust[1]+=1
   if (get_user_button(id)&IN_MOVELEFT)   buttonadjust[1]-=1
   if (get_user_button(id)&IN_JUMP)      buttonadjust[2]+=1
   if (get_user_button(id)&IN_DUCK)      buttonadjust[2]-=1

   if (buttonadjust[0] || buttonadjust[1])
   {
      user_direction[0] = user_look[0] - user_origin[0]
      user_direction[1] = user_look[1] - user_origin[1]

      move_direction[0] = buttonadjust[0]*user_direction[0] + user_direction[1]*buttonadjust[1]
      move_direction[1] = buttonadjust[0]*user_direction[1] - user_direction[0]*buttonadjust[1]
      move_direction[2] = 0

      velocity[0] += floatround(move_direction[0] * MOVEACCELERATION * DELTA_T / get_distance(null,move_direction))
      velocity[1] += floatround(move_direction[1] * MOVEACCELERATION * DELTA_T / get_distance(null,move_direction))
   }

   if (buttonadjust[2])   gHookLenght[id] -= floatround(buttonadjust[2] * REELSPEED * DELTA_T)
   if (gHookLenght[id] < 100) gHookLenght[id] = 100

   A[0] = gHookLocation[id][0] - user_origin[0]
   A[1] = gHookLocation[id][1] - user_origin[1]
   A[2] = gHookLocation[id][2] - user_origin[2]

   D[0] = A[0]*A[2] / get_distance(null,A)
   D[1] = A[1]*A[2] / get_distance(null,A)
   D[2] = -(A[1]*A[1] + A[0]*A[0]) / get_distance(null,A)

   acceleration = - global_gravity * D[2] / get_distance(null,D)

   velocity_towards_A = (velocity[0] * A[0] + velocity[1] * A[1] + velocity[2] * A[2]) / get_distance(null,A)
   desired_velocity_towards_A = (get_distance(user_origin,gHookLocation[id]) - gHookLenght[id] /*- 10*/) * 4

   if (get_distance(null,D)>10)
   {
      velocity[0] += floatround((acceleration * DELTA_T * D[0]) / get_distance(null,D))
      velocity[1] += floatround((acceleration * DELTA_T * D[1]) / get_distance(null,D))
      velocity[2] += floatround((acceleration * DELTA_T * D[2]) / get_distance(null,D))
   }

   velocity[0] += ((desired_velocity_towards_A - velocity_towards_A) * A[0]) / get_distance(null,A)
   velocity[1] += ((desired_velocity_towards_A - velocity_towards_A) * A[1]) / get_distance(null,A)
   velocity[2] += ((desired_velocity_towards_A - velocity_towards_A) * A[2]) / get_distance(null,A)

   kz_velocity_set(id, velocity)
}

public hooktask(parm[])
{
   new id = parm[0]
   new velocity[3]

   if ( !gIsHooked[id] ) return
   
   new user_origin[3],oldvelocity[3]
   parm[0] = id

   if (!is_user_alive(id))
   {
      RopeRelease(id)
      return
   }

   if (gBeamIsCreated[id] + BEAMLIFE/10 <= get_gametime())
   {
      beamentpoint(id)
   }

   get_user_origin(id, user_origin)
   kz_velocity_get(id, oldvelocity)
   new distance=get_distance( gHookLocation[id], user_origin )
   if ( distance > 10 )
   {
      velocity[0] = floatround( (gHookLocation[id][0] - user_origin[0]) * ( 2.0 * REELSPEED / distance ) )
      velocity[1] = floatround( (gHookLocation[id][1] - user_origin[1]) * ( 2.0 * REELSPEED / distance ) )
      velocity[2] = floatround( (gHookLocation[id][2] - user_origin[2]) * ( 2.0 * REELSPEED / distance ) )
   }
   else
   {
      velocity[0]=0
      velocity[1]=0
      velocity[2]=0
   }

   kz_velocity_set(id, velocity)
   
}

public hook_on(id)
{
   if (get_cvar_num("sv_adminhook")==1)
      {
      if (gAllowedHook[id] || (get_user_flags(id)&ADMIN_LEVEL_E)) {
         if (!gIsHooked[id] && is_user_alive(id))
         {
            new cmd[32]
            read_argv(0,cmd,31)
            if(equal(cmd,"+rope")) RopeAttach(id,0)
            if(equal(cmd,"+hook")) RopeAttach(id,1)
         }
      }else{
         ColorChat(0, GREEN, "[%s] ^3Nincs elerhetoseged hozza",gModName)
         return PLUGIN_HANDLED
      }
   }else{
      ColorChat(0, GREEN, "[%s] ^3Ez a parancs ki van kapcsolva",gModName)
   }
   return PLUGIN_HANDLED
}

public hook_off(id)
{
   if (gAllowedHook[id] || (get_user_flags(id)&ADMIN_LEVEL_E)) {
      if (gIsHooked[id])
      {
         RopeRelease(id)
      }
   }else{
      ColorChat(0, GREEN, "[%s] ^3Nincs elerhetoseged hozza",gModName)
      return PLUGIN_HANDLED
   }
   return PLUGIN_HANDLED
}

public RopeAttach(id,hook)
{
   new parm[1], user_origin[3]
   parm[0] = id
   gIsHooked[id] = true
   get_user_origin(id,user_origin)
   get_user_origin(id,gHookLocation[id], 3)
   gHookLenght[id] = get_distance(gHookLocation[id],user_origin)
   global_gravity = get_cvar_num("sv_gravity")
   set_user_gravity(id,0.001)
   beamentpoint(id)
   emit_sound(id, CHAN_STATIC, "weapons/xbow_hit2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
   if (hook) set_task(DELTA_T, "hooktask", 200+id, parm, 1, "b")
   else set_task(DELTA_T, "ropetask", 200+id, parm, 1, "b")
}

public RopeRelease(id)
{
   gIsHooked[id] = false
   killbeam(id)
   set_user_gravity(id)
   remove_task(200+id)
}

public beamentpoint(id)
{
   message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
   write_byte( TE_BEAMENTPOINT )
   write_short( id )
   write_coord( gHookLocation[id][0] )
   write_coord( gHookLocation[id][1] )
   write_coord( gHookLocation[id][2] )
   write_short( beam )   // sprite index
   write_byte( 0 )      // start frame
   write_byte( 0 )      // framerate
   write_byte( BEAMLIFE )   // life
   write_byte( 10 )   // width
   write_byte( 0 )      // noise
   if (get_user_team(id)==1)      // Terrorist
   {
      write_byte( 255 )   // r, g, b
      write_byte( 0 )   // r, g, b
      write_byte( 255 )   // r, g, b
   }
   else                     // Counter-Terrorist
   {
      write_byte( 255 )   // r, g, b
      write_byte( 255 )   // r, g, b
      write_byte( 255 )   // r, g, b
   }
   write_byte( 150 )   // brightness
   write_byte( 0 )      // speed
   message_end( )
   gBeamIsCreated[id] = get_gametime()
}

public killbeam(id)
{
   message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
   write_byte( TE_KILLBEAM )
   write_short( id )
   message_end()
}

/************************************************************************************************************************/
/******************************************************* FORWARDS *******************************************************/
/************************************************************************************************************************/

public client_disconnect(id) {
   gAllowedHook[id]=0
}


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Hook
HozzászólásElküldve:2012.08.28. 22:38 
Offline
Őskövület
Avatar

Csatlakozott:2011.12.28. 00:35
Hozzászólások:2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
Köszi megy :D

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése: Rendezés 
Új téma nyitása Hozzászólás a témához  [3 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 33 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole