| closedDoD Push |
| Started by Tank on 11-04-2009, 01:19 PM |
Threads: 59
Joined: Jan 2007
Hey guys,nnI've been fiddling around with this plugin for a while and I can't get it working.The plugin has the command bound to the use key. The problem with that is that the moment you prime a nade and you continue pressing the use key (for priming on the run) you push everyone out of the way. nnOk, you at least have a clear path for your running but Im not that kind of admin. nnCan someone show me what Im doing wrong here. I'll post original then my attempt. It gives an compiler error about the id never recognised, I thought you could name id to anything you like. Like in the function underneath its called pusher and pushed. The idea behind the plugin is to allow the user to bind a key. So say: bind x clcmd_playerpushnnI tried to adjust Zors but once turned on, i could not turn it off.nn
// reworked by diamond-opticn#include <amxmodx>n#include <amxmisc>n#include <fakemeta>nn#define VERSION "1.0"nn//Admin Leveln#define PUSH_ADMIN ADMIN_CVARn#define IMMUNE_ADMIN ADMIN_IMMUNITYnnn//PCVARsnnew p_push, p_immunity, p_admins, p_forcenn//Soundsnnew mysound[] = "weapons/knife_slash1.wav"nnpublic plugin_init()n{n register_plugin("DoD Player Push 2",VERSION,"AMXX DoD Team")n n register_cvar("dod_playerpush2_stats",VERSION,FCVAR_SERVER|FCVAR_SPONLY)n n p_push = register_cvar("dod_playerpush2","1")n p_immunity = register_cvar("dod_playerpush2_immunity","0")n p_admins = register_cvar("dod_playerpush2_admins","0")n p_force = register_cvar("dod_playerpush2_force", "15")n n register_forward(FM_Touch, "player_touched")n}nnpublic plugin_precache()n{n precache_sound(mysound)n}nnpublic player_touched(pusher,pushed) n{n if(get_pcvar_num(p_push) && is_user_connected(pusher) && pev_valid(pusher) && is_user_connected(pushed) && pev_valid(pushed))n {n if((get_pcvar_num(p_admins) && !access(pusher,PUSH_ADMIN)) || (get_pcvar_num(p_immunity) && access(pushed,IMMUNE_ADMIN)))n return PLUGIN_CONTINUEn n new classname[32], classname2[32]n pev(pusher,pev_classname, classname, 31)n pev(pushed,pev_classname, classname2, 31)n n if((equali(classname,"player") && equali(classname2,"player")) && pev(pusher,pev_button) & IN_USE)n { n new Float:a[2][3]n pev(pusher,pev_origin,a[0])n pev(pushed,pev_origin,a[1])n n new force = get_pcvar_num(p_force)n n // *** need to rework speed method to incorporate force cvarn //new Float:Vel[3], speedn //pev(pusher,pev_velocity, Vel)n //speed = floatround(vector_length(Vel))n n for(new b = 0; b <= 2; b++) n {n a[1][b] -= a[0][b]n a[1][b] *= forcen }n n set_pev(pushed,pev_velocity,a[1])n n new Float:random_punch[3]n n for(new i = 0; i < 3; i++) n random_punch[i] = random_float(1.0,float(force))n n set_pev(pushed,pev_punchangle,random_punch)n n // *** taking away health, needs to be upgraded incase it kills the playern //set_user_health(pushed, (get_user_health(pushed) - 5))n n emit_sound(pushed,CHAN_VOICE,mysound,VOL_NORM,ATTN_NORM,0,PITCH_NORM)n }n }n n return PLUGIN_CONTINUEn}nn}nnMy version:nnn// reworked by diamond-opticn#include <amxmodx>n#include <amxmisc>n#include <fakemeta>nn#define VERSION "1.0"nn//Admin Leveln#define PUSH_ADMIN ADMIN_CVARn#define IMMUNE_ADMIN ADMIN_IMMUNITYnn// Arraysnnew pushpush[33]nn//PCVARsnnew p_push, p_immunity, p_admins, p_forcenn//Soundsnnew mysound[] = "weapons/knife_slash1.wav"nnpublic plugin_init()n{n register_plugin("DoD Player Push 2",VERSION,"AMXX DoD Team")n n register_cvar("dod_playerpush2_stats",VERSION,FCVAR_SERVER|FCVAR_SPONLY)n n p_push = register_cvar("dod_playerpush2","1")n p_immunity = register_cvar("dod_playerpush2_immunity","0")n p_admins = register_cvar("dod_playerpush2_admins","0")n p_force = register_cvar("dod_playerpush2_force", "15")n n register_concmd("+playerpush","clcmd_playerpush")n register_concmd("-playerpush","clcmd_playerpush")n n register_forward(FM_Touch, "player_touched")n}nnpublic plugin_precache()n{n precache_sound(mysound)n}nn//===========================================================n// Catch if the player is pushing or releasing the buttonn//===========================================================npublic clcmd_playerpush(id) n{n new cmd[16]n read_argv(0,cmd,15)n n if( equal(cmd,"+",1))n {n pushpush[id] = 1n client_cmd(id,"+playerpush")n }n else if( equal(cmd,"-",1))n {n pushpush[id] = 0n client_cmd(id,"-playerpush")n }n return PLUGIN_HANDLED;n}nnpublic player_touched(pusher,pushed) n{n if(get_pcvar_num(p_push) && is_user_connected(pusher) && pev_valid(pusher) && is_user_connected(pushed) && pev_valid(pushed))n {n if((get_pcvar_num(p_admins) && !access(pusher,PUSH_ADMIN)) || (get_pcvar_num(p_immunity) && access(pushed,IMMUNE_ADMIN)))n return PLUGIN_CONTINUEn n new classname[32], classname2[32]n pev(pusher,pev_classname, classname, 31)n pev(pushed,pev_classname, classname2, 31)n n if((equali(classname,"player") && equali(classname2,"player")) && pev(pusher,pev_button) & pushpush[id] == 1) //<<----n { n new Float:a[2][3]n pev(pusher,pev_origin,a[0])n pev(pushed,pev_origin,a[1])n n new force = get_pcvar_num(p_force)n n // *** need to rework speed method to incorporate force cvarn //new Float:Vel[3], speedn //pev(pusher,pev_velocity, Vel)n //speed = floatround(vector_length(Vel))n n for(new b = 0; b <= 2; b++) n {n a[1][b] -= a[0][b]n a[1][b] *= forcen }n n set_pev(pushed,pev_velocity,a[1])n n new Float:random_punch[3]n n for(new i = 0; i < 3; i++) n random_punch[i] = random_float(1.0,float(force))n n set_pev(pushed,pev_punchangle,random_punch)n n // *** taking away health, needs to be upgraded incase it kills the playern //set_user_health(pushed, (get_user_health(pushed) - 5))n n emit_sound(pushed,CHAN_VOICE,mysound,VOL_NORM,ATTN_NORM,0,PITCH_NORM)n }n }n return PLUGIN_CONTINUEn}nThreads: 75
Joined: Nov 2007
Thought we fixed this 8-9 months ago :P - Check how Vet did in this http://forums.alliedmods.net/showthread.php?p=566790
Threads: 59
Joined: Jan 2007
Thats the thing, i adjusted Zors dod_push but i dont know how to turn the effect off, it catches when the player is touched, but how do i check if the player is not being touched (outsiders of dodplugins would think im talking about something competely different).nnWhen you and h0_noman tried to help me, 8 or 9 months ago Ive been trying and testing for a week together with a few of my admins, they can all occur Ive never been able to turn it off.nnWith the plugin you provided + he turns pov up, - he turns it normal. Just like this:nn
n#include <amxmodx>n#include <engine>nn#define PLUGIN "New Plug-In"n#define VERSION "1.0"n#define AUTHOR "author"nnnew something[33]nnpublic plugin_init() n{n register_plugin(PLUGIN, VERSION, AUTHOR)nn register_concmd("+something", "start_something") n register_concmd("-something", "stop_something") n}nnpublic start_something(id)n{n client_print(id, 3, "something is on (+)" )n return PLUGIN_HANDLEDn}nnpublic stop_something(id)n{n client_print(id, 3, "something is off (-)" )n return PLUGIN_HANDLEDn}n
