AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   i cant get this code to work.....(hook) (https://forums.alliedmods.net/showthread.php?t=20361)

onfirenburnin420 11-07-2005 07:00

i cant get this code to work.....(hook)
 
for some reason i cant get hook to work... heres the code please help..
Code:
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <fun> #include <engine> #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 //Checkpoint Stuff new oldpoint[33][3] new newpoint[33][3] new distance[33] //Hook Stuff new gHookLocation[33][3] new gHookLenght[33] new bool:gIsHooked[33] new Float:gBeamIsCreated[33] new global_gravity new beam public plugin_init() {     register_plugin("Kz Mod", "1.0", "Fire")         // Cvars     register_cvar("kz_mod", "0")     register_cvar("kz_respawn", "0")     register_cvar("kz_checkpoints", "0")     register_cvar("kz_godmode", "0")     register_cvar("kz_noclip", "0")     register_cvar("kz_hook", "0")     register_cvar("kz_scout", "0")         //Client Commands     register_clcmd("say /respawn","respawn_client")     register_clcmd("say /checkpoint","add_checkpoint")     register_clcmd("say /gocheck","goto_checkpoint")     register_clcmd("say /stuck","stuck")     register_clcmd("say /god","godmode")     register_clcmd("say /clip","noclip")     register_clcmd("+hook", "hook_on")     register_clcmd("-hook", "hook_off")         //Events     register_event("DeathMsg","respawn_client","a")     register_event("ResetHUD","give_scout","b") } public respawn_client() {         if(get_cvar_num("kz_mod") == 0) {         return PLUGIN_HANDLED     }         if(get_cvar_num("kz_respawn") == 0) {         return PLUGIN_HANDLED     }         new victim_id = read_data(2)         new param[1]     param[0]=victim_id         set_task(0.9,"player_spawn",72,param,1)     set_task(0.5,"player_spawn",72,param,1)         return PLUGIN_CONTINUE } public player_spawn(parm[1])     {     spawn(parm[0]) } public add_checkpoint(id) {         if(get_cvar_num("kz_mod") == 0) {         client_print(id,print_chat,"[Kz Mod] This Plugin Is Off")         return PLUGIN_HANDLED     }         if(get_cvar_num("kz_checkpoints") == 0) {         client_print(id,print_chat,"[Kz Mod] Checkpoints Are Off")         return PLUGIN_HANDLED     }         if(!(oldpoint[id][0])) {                 get_user_origin(id,oldpoint[id],0)         client_print(id,print_chat,"[Kz Mod] Checkpoint Recorded, Please Record One More Checkpoint To Teleport Freely")         return PLUGIN_HANDLED     }         if(!(newpoint[id][0])) {         get_user_origin(id,newpoint[id],0)         client_print(id,print_chat,"[Kz Mod] Second Checkpoint Recorded, You May Now Teleport Freely")         return PLUGIN_HANDLED     }         oldpoint = newpoint     get_user_origin(id,newpoint[id],0)     distance[id] = get_distance(oldpoint[id],newpoint[id])     client_print(id,print_chat,"[Kz Mod] Point Saved, You are %i Units From Your Last Checkpoint",distance[id])     return PLUGIN_HANDLED } public goto_checkpoint(id) {         if(get_cvar_num("kz_mod") == 0) {         client_print(id,print_chat,"[Kz Mod] This Plugin Is Off")         return PLUGIN_HANDLED     }         if(get_cvar_num("kz_checkpoints") == 0) {         client_print(id,print_chat,"[Kz Mod] Checkpoints Are Off")         return PLUGIN_HANDLED     }         if(!(oldpoint[id][0])) {                 client_print(id,print_chat,"[Kz Mod] You Have To Add a Checkpoint Before You Can Teleport")         return PLUGIN_HANDLED     }         if(!(newpoint[id][0])) {                 client_print(id,print_chat,"[Kz Mod] You Should Register More Than One Checkpoint Before Teleporting")         set_user_origin(id,oldpoint[id])         return PLUGIN_HANDLED     }         set_user_origin(id,newpoint[id])     client_print(id,print_chat,"[Kz Mod] You Have Been Teleported, If You Are Stuck, Say /stuck Or Say /respawn")     return PLUGIN_HANDLED } public stuck(id) {         if(get_cvar_num("kz_mod") == 0) {         client_print(id,print_chat,"[Kz Mod] This Plugin Is Off")         return PLUGIN_HANDLED     }         if(get_cvar_num("kz_checkpoints") == 0) {         client_print(id,print_chat,"[Kz Mod] Checkpoints Are Off")         return PLUGIN_HANDLED     }         if(!(newpoint[id][0])) {                 client_print(id,print_chat,"[Kz Mod] You Only Have One Checkpoint Recorded, Unable To Move")         return PLUGIN_HANDLED     }     set_user_origin(id,oldpoint[id])     client_print(id,print_chat,"[Kz Mod] You Have Been Teleported Back To Your Old Checkpoint")     return PLUGIN_HANDLED } public godmode(id) {         if(get_cvar_num("kz_mod") == 0) {         client_print(id,print_chat,"[Kz Mod] This Plugin Is Off")         return PLUGIN_HANDLED     }         if(get_cvar_num("kz_godmode") == 0) {         client_print(id,print_chat,"[Kz Mod] Godmode Is Off")         return PLUGIN_HANDLED     }         new name[33]     get_user_name(id,name,32)         if(get_user_godmode(id) == 0) {         set_user_godmode(id,1)         client_print(id,print_center,"[Kz Mod] You Now Have Godmode Set")         client_print(0,print_chat,"[Kz Mod] %s Now Has Godmode On",name)         return PLUGIN_HANDLED     }         if(get_user_godmode(id) == 1) {         set_user_godmode(id,0)         client_print(id,print_center,"[Kz Mod] You No Longer Have Godmode Set")         client_print(0,print_chat,"[Kz Mod] %s Now Has Godmode Off",name)         return PLUGIN_HANDLED     }         client_print(0,print_chat,"[Kz Mod] Error...Godmode Wasn't On Or Off? Inaccurate Statement")     return PLUGIN_HANDLED } public noclip(id) {         if(get_cvar_num("kz_mod") == 0) {         client_print(id,print_chat,"[Kz Mod] This Plugin Is Off")         return PLUGIN_HANDLED     }         if(get_cvar_num("kz_noclip") == 0) {         client_print(id,print_chat,"[Kz Mod] Noclip Is Off")         return PLUGIN_HANDLED     }         new name[33]     get_user_name(id,name,32)     if(get_user_noclip(id) == 0) {         set_user_noclip(id,1)         client_print(id,print_center,"[Kz Mod] You Now Have Noclip On")         client_print(0,print_chat,"[Kz Mod %s Now Has Noclip On",name)         return PLUGIN_HANDLED     }     if(get_user_noclip(id) == 1) {         set_user_noclip(id,0)         client_print(id,print_center,"[Kz Mod] You No Longer Have NoClip On")         client_print(0,print_chat,"[Kz Mod] %s Now Has Noclip Off",name)         return PLUGIN_HANDLED     }     client_print(0,print_chat,"[Kz Mod] Error...Noclip Wasn't On Or Off? Inaccurate Statement")     return PLUGIN_HANDLED } 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]) } 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("kz_mod") == 0) {         client_print(id,print_chat,"[Kz Mod] This Plugin Is Off")         return PLUGIN_HANDLED     }         if(get_cvar_num("kz_hook") == 0) {         client_print(id,print_chat,"[Kz Mod] Hook Is Off")         return PLUGIN_HANDLED     }         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)     }     return PLUGIN_HANDLED } public hook_off(id) {     if (gIsHooked[id]) {         RopeRelease(id)     }     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() } public give_scout(id) {         if(get_cvar_num("kz_mod") == 0) {         return PLUGIN_HANDLED     }         if(get_cvar_num("kz_scout") == 0) {         return PLUGIN_HANDLED     }     give_item(id, "weapon_scout")     return PLUGIN_CONTINUE }

*THIS CODE IS ONLY FOR MY USE... SOME CODE HAS BEEN TAKEN FROM OTHER PLUGINS... I DO NOT PLAN TO RELEASE THIS PLUGIN*


All times are GMT -4. The time now is 23:44.

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