Laba , atsisiunčiau hook plugina gal kas galėtu pasakyti kaip padaryti kad hook'inti galėtu visi?
Siusta is http://forums.alliedmods.net/showthread.php?p=151022
Pagalba del hook plugin'o
- Niuton
- O taip. Jis jau surinko 50 žinučių!
- Posts: 78
- Joined: 2013 Jan 18 12:09
- Skype: Kasparaszu
- Location: Kaunas
Pagalba del hook plugin'o
Didelis dėkui visai Amxmodx.lt bendruomenei.
Re: Pagalba del hook plugin'o
.sma faile, pakeikst ADMIN_LEVEL_ reiktu gal i koki ADMIN_ALL?
Padėjau? +rep
Re: Pagalba del hook plugin'o
Tiesiog sita naudok https://forums.alliedmods.net/showthread.php?t=41054
- Niuton
- O taip. Jis jau surinko 50 žinučių!
- Posts: 78
- Joined: 2013 Jan 18 12:09
- Skype: Kasparaszu
- Location: Kaunas
Re: Pagalba del hook plugin'o
jai kas mokat pataisykit arba parašykit kur ka pakeisti.
Code: Select all
/************************************************************************************************** **** CVARS (FEATURES) ****sv_adminhook = Turn Plugin On/off**** ADMIN COMMANDS ****ADMIN_LEVEL_A (flag="m")Granting Hook/Rope = amx_granthook <authid, nick, @team, @all or #userid> <on/off> ADMIN_LEVEL_E (flag="q") || Granted by adminNinja Rope by Spacedude (slightly modified) & Hook thingyAttaching Rope = +ropeDeattaching Rope = -ropeAttaching Hook = +hookDeattaching Hook = -hook **************************************************************************************************/#define USING_AMX 0 // 1 = Using AMX \ 0 = Useing AMXX #if USING_AMX #include <amxmod> #include <amxmisc> #include <VexdUM> #include <fun> 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_gravitynew 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{ client_print(id,print_chat,"[%s] You have no access to that command",gModName) return PLUGIN_HANDLED } }else{ client_print(id,print_chat,"[%s] This command is deativated",gModName) } return PLUGIN_HANDLED} public hook_off(id){ if (gAllowedHook[id] || (get_user_flags(id)&ADMIN_LEVEL_E)) { if (gIsHooked[id]) { RopeRelease(id) } }else{ client_print(id,print_chat,"[%s] You have no access to that command",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( 0 ) // r, g, b } else // Counter-Terrorist { write_byte( 0 ) // r, g, b write_byte( 0 ) // 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} /************************************************************************************************************************//************************************************** AMXX -> AMX funcs ***************************************************//************************************************************************************************************************/#if USING_AMX stock get_user_button(id) return entity_get_int(id, EV_INT_button)#endif
Last edited by Niuton on 2013 Jan 18 13:45, edited 2 times in total.
Didelis dėkui visai Amxmodx.lt bendruomenei.
Re: Pagalba del hook plugin'o
Code: Select all
register_clcmd("+hook", "hook_on",ADMIN_LEVEL_E) register_clcmd("-hook", "hook_off",ADMIN_LEVEL_E)
Code: Select all
register_clcmd("+hook", "hook_on") register_clcmd("-hook", "hook_off")
Re: Pagalba del hook plugin'o
Code: Select all
/************************************************************************************************** **** CVARS (FEATURES) **** sv_adminhook = Turn Plugin On/off **** ADMIN COMMANDS **** ADMIN_LEVEL_A (flag="m") Granting Hook/Rope = amx_granthook <authid, nick, @team, @all or #userid> <on/off> ADMIN_LEVEL_E (flag="q") || Granted by admin Ninja Rope by Spacedude (slightly modified) & Hook thingy Attaching Rope = +rope Deattaching Rope = -rope Attaching Hook = +hook Deattaching Hook = -hook **************************************************************************************************/ #define USING_AMX 0 // 1 = Using AMX \ 0 = Useing AMXX #if USING_AMX #include <amxmod> #include <amxmisc> #include <VexdUM> #include <fun> 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") register_clcmd("-rope", "hook_off") register_clcmd("+hook", "hook_on") register_clcmd("-hook", "hook_off") //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))) { 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{ client_print(id,print_chat,"[%s] You have no access to that command",gModName) return PLUGIN_HANDLED } }else{ client_print(id,print_chat,"[%s] This command is deativated",gModName) } return PLUGIN_HANDLED } public hook_off(id) { if (gAllowedHook[id] || (get_user_flags(id))) { if (gIsHooked[id]) { RopeRelease(id) } }else{ client_print(id,print_chat,"[%s] You have no access to that command",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( 0 ) // r, g, b } else // Counter-Terrorist { write_byte( 0 ) // r, g, b write_byte( 0 ) // 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 } /************************************************************************************************************************/ /************************************************** AMXX -> AMX funcs ***************************************************/ /************************************************************************************************************************/ #if USING_AMX stock get_user_button(id) return entity_get_int(id, EV_INT_button) #endif
Who is online
Users browsing this forum: No registered users and 3 guests