Raised This Month: $ Target: $400
 0% 

Rope to [ZP]Rope :)


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
the_raculaa
Junior Member
Join Date: Jan 2010
Old 01-05-2011 , 04:09   Rope to [ZP]Rope :)
Reply With Quote #1

hello Pope plugins to zp extra item Is it possible to make?

use Zombie-Humans
ammo pack= 30
#define MOVEACCELERATION 900 // units per second^2
#define REELSPEED 500 // units per second

PHP Code:
/* AMX Mod X script.
*
*   Ninja Rope (amx_ejl_spacedude_ninjarope.sma)
*   Copyright (C) 2003-2004  SpaceDude / Eric Lidman / jtp10181
*
*   This program is free software; you can redistribute it and/or
*   modify it under the terms of the GNU General Public License
*   as published by the Free Software Foundation; either version 2
*   of the License, or (at your option) any later version.
*
*   This program is distributed in the hope that it will be useful,
*   but WITHOUT ANY WARRANTY; without even the implied warranty of
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*   GNU General Public License for more details.
*
*   You should have received a copy of the GNU General Public License
*   along with this program; if not, write to the Free Software
*   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*
*   In addition, as a special exception, the author gives permission to
*   link the code of this program with the Half-Life Game Engine ("HL
*   Engine") and Modified Game Libraries ("MODs") developed by Valve,
*   L.L.C ("Valve"). You must obey the GNU General Public License in all
*   respects for all of the code used other than the HL Engine and MODs
*   from Valve. If you modify this file, you may extend this exception
*   to your version of the file, but you are not obligated to do so. If
*   you do not wish to do so, delete this exception statement from your
*   version.
*
****************************************************************************
*
*   Version 1.1.1 - Date: 10/16/2004
*
*   Original by SpaceDude and Eric Lidman aka "Ludwig van" <[email protected]>
*   Homepage: http://lidmanmusic.com/cs/plugins.html
*
*   Upgraded to STEAM and ported to AMXx by: jtp10181 <[email protected]>
*   Homepage: http://www.jtpage.net
*
****************************************************************************
*
*  Formely known as Grappling Hook, I [SpaceDude] changed the name to Ninja 
*  Rope to avoid confusion with the hook metamod plugin. Also the plugin now 
*  acts in exactly the same way as the ninja rope from the game worms. Its 
*  based on real world physics, modelled as a point mass on the end of a rod.
*  
*  This plugin is similar to the Hook Grab plugin but there are few distinct 
*  differences. Players are not given a "boost" when the rope is attached. The 
*  rope has different physics and acts more like a rope, in fact it is near 
*  identical to the operation of the rope from the orginal 2D Worms game. 
*  There is a different sprite used for the rope and it LOOKS like a rope 
*  instead of a giant beam.
*  
*
*  Admin Commands:
*
*  amx_rope        - toggles rope on and off. Also if cvar mentioned
*                         below is set to 1, it also activates/deactivates
*                         plugin "out_of_bounds.amx" if you are using it
*                         so that bounds limits are off when rope is on and
*                         vice versa
*  amx_rope_count       - <# of ropes allowed per player round>
*
*
*  Client Command:
*
*    +rope - bind a key to +rope like this: bind <key> +rope, once you
*            have done that look in the direction where you want to fire
*            the hook and press the button. You can shorten the rope by
*            holding down the jump key, and make it longer by holding the
*            crouch key. Also you can move around with the regular move
*            keys (+forward, +back, +moveleft, +moveright) to release the
*            rope just let go of the button.
*
*    rope_toggle - has the same effect as +rope, except that you press it
*                  once to fire it and once again to release.
*
*    say /rope        - show window with info about use of rope
*
*  CVARs: Paste the following into your amxx.cfg to change defaults.
*        You must uncomment cvar lines for them to take effect
*
****************************************************************************
*  CVAR CONFIG BEGIN
****************************************************************************

// ******************  Ninja Rope Settings  ******************

//0 to disable ninjarope, 1 to enable ninjarope
//sv_ninjarope 1

//If you are running my "out_of_bounds" plugin you may want it disabled when
//you have the rope fully enabled. If you want this plugin to leave
//"out_of_bounds" alone, then set this cvar to 0.
//amx_rb_pl_kill 1

//Default is 0, to enforce a 15 second delay on roping
//at round start so as to prevent spawn massacres set to 1.
//amx_rope_spawndelay 0

//Set to 1 to not allow vip to use rope. Set cvar to 0 to allow free vip roping
//amx_rope_no_vip 1

//This is number of times a player may use the rope each round.
//Default is 100. I would suggest setting to 2 or 3 per round to
//encourage strategic usage of the rope rather than just having it be total craziness.
//amx_ropes_round 100

//Switch to report number of ropes remaining in a round to a player if
//that number drops to 10 or less. By default its on 1, set to 0 to turn off this report.
//amx_rep_rcount 1

//1 is a rope like looking rope with no team colors,
//0 is for the original look with red and blue beams
//amx_ropetype 1

****************************************************************************
*  CVAR CONFIG END
****************************************************************************
*
*                 ******** Engine Module REQUIRED ********
*                   ******** FUN Module REQUIRED ********
*
*  Changelog:
*
*  v1.1.1 - JTP10181 - 10/16/04
*    - Updated for AMXModX 0.20
*
*  v1.1 - JTP10181 - 07/10/04
*    - Made it so the rope cannot be used before the freezetime has ended
*    - Rearranged a lot of code and removed some useless events
*    - Removed all voting code, use amx_customvotes instead
*
*  v1.01 - JTP10181 - 06/18/04
*    - Converted MOTD boxes to work with steam and possibly with WON still (untested)
*    - Fixed all authid variables to be 32 chars to STEAMIDs are handled properly
*    - Ported functions to AMXX and replaced AMX tags with AMXX
*    - Fixed logging to admin log for AMXx
*
*  Below v1.01 was maintained by Eric Lidman / SpaceDude
*
**************************************************************************/

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fun>

new ob_pl1,ob_pl2

new round_delay
new IsVip[33]
new 
RopeCount[33]
new 
Float:RpDelay[33]

#define HOLD_T 60.0
#define ROPE_DELAY 0.1
#define TE_BEAMENTPOINT 1
#define TE_KILLBEAM 99
#define DELTA_T 0.1        // seconds
#define BEAMLIFE 9999        // deciseconds
#define MOVEACCELERATION 900    // units per second^2
#define REELSPEED 500        // units per second

new hooklocation[33][3]
new 
hooklength[33]
new 
bool:hooked[33]
new 
bool:roundfreeze
new bool:mapbounds_checked
new Float:beamcreated[33]

new 
global_gravity
new beam
new s_rope

public hooktask(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 
accelerationvelocity_TAdesired_velocity_TA
    
new velocity[3], null[3]
    new 
Float:tmpVector[3]

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

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

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

    get_user_origin
(iduser_origin)
    
get_user_origin(iduser_look,2)
    
    
entity_get_vector(idEV_VEC_velocitytmpVector)
    
FVecIVec(tmpVectorvelocity)

    
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]) {
        
hooklength[id] -= floatround(buttonadjust[2] * REELSPEED DELTA_T)
    }
    if (
hooklength[id] < 100) {
        (
hooklength[id]) = 100
    
}

    
A[0] = hooklocation[id][0] - user_origin[0]
    
A[1] = hooklocation[id][1] - user_origin[1]
    
A[2] = hooklocation[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)

    new 
aDistance get_distance(null,D) ? get_distance(null,D) : 1
    acceleration 
= - global_gravity D[2] / aDistance

    velocity_TA 
= (velocity[0] * A[0] + velocity[1] * A[1] + velocity[2] * A[2]) / get_distance(null,A)
    
desired_velocity_TA = (get_distance(user_origin,hooklocation[id]) - hooklength[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_TA velocity_TA) * A[0]) / get_distance(null,A)
    
velocity[1] += ((desired_velocity_TA velocity_TA) * A[1]) / get_distance(null,A)
    
velocity[2] += ((desired_velocity_TA velocity_TA) * A[2]) / get_distance(null,A)

    
IVecFVec(velocitytmpVector)
    
entity_set_vector(idEV_VEC_velocitytmpVector)
}

public 
hook_on(id){
    if (!
get_cvar_num("sv_ninjarope") || hooked[id] || !is_user_alive(id) || roundfreeze)
        return 
PLUGIN_HANDLED
        
    
new ropes_round_cvar
    
if(IsVip[id]){
        
client_print(id,print_chat"[AMXX] Roping by the VIP is prohibited.")
        return 
PLUGIN_HANDLED
    
}
    else if(
round_delay == 1){
        
client_print(id,print_chat"[AMXX] Roping during the first 15 seconds of a round is prohibited.")
        return 
PLUGIN_HANDLED
    
}
    if(
RpDelay[id] > get_gametime() - ROPE_DELAY)
        return 
PLUGIN_HANDLED

    RpDelay
[id] = get_gametime()
    
RopeCount[id] +=1
    ropes_round_cvar 
get_cvar_num("amx_ropes_round")
    if(
RopeCount[id] > ropes_round_cvar){
        
client_print(id,print_chat"[AMXX] You are all out of rope. Wait until next round.")
        return 
PLUGIN_HANDLED
    
}
    else {
        if( (
get_cvar_num("amx_rep_rcount") == 1) && (ropes_round_cvar RopeCount[id] < 10) ) {
            if(
ropes_round_cvar-RopeCount[id] == 0)
                
client_print(id,print_chat"[AMXX] That was your last rope for this round.")
            else
                
client_print(id,print_chat"[AMXX] You have %d ropes left, use them wisely.",ropes_round_cvar RopeCount[id])
        }
    }
    
attach(id)
    
    return 
PLUGIN_HANDLED
}

public 
hook_off(id) {
    if (
get_cvar_num("sv_ninjarope") && hooked[id])
        
release(id)

    return 
PLUGIN_HANDLED
}

public 
rope_toggle(id) {
    if (
get_cvar_num("sv_ninjarope") && !hooked[id] && is_user_alive(id)){
        new 
ropes_round_cvar
        
if(IsVip[id]){
            
client_print(id,print_chat"[AMXX] Roping by the VIP is prohibited.")
            return 
PLUGIN_HANDLED
        
}
        else if(
round_delay == 1){
            
client_print(id,print_chat"[AMXX] Roping during the first 15 seconds of a round is prohibited.")
            return 
PLUGIN_HANDLED
        
}
        if(
RpDelay[id] > get_gametime() - ROPE_DELAY)
            return 
PLUGIN_HANDLED
        RpDelay
[id] = get_gametime()
        
RopeCount[id] +=1
        ropes_round_cvar 
get_cvar_num("amx_ropes_round")
        if(
RopeCount[id] > ropes_round_cvar){
            
client_print(id,print_chat"[AMXX] You are all out of rope. Wait until next round.")
            return 
PLUGIN_HANDLED
        
}else{
            if( (
get_cvar_num("amx_rep_rcount") == 1) && (ropes_round_cvar-RopeCount[id] < 10) ){
                if(
ropes_round_cvar RopeCount[id] == 0)
                    
client_print(id,print_chat"[AMXX] That was your last rope for this round.")
                else
                    
client_print(id,print_chat"[AMXX] You have %d  ropes left, use them wisely.",ropes_round_cvar-RopeCount[id])
            }
        }
        
attach(id)
    }
    else if (
get_cvar_num("sv_ninjarope") && hooked[id])
    {
        
release(id)
    }
    return 
PLUGIN_HANDLED
}

public 
attach(id){
    new 
parm[1], user_origin[3]
    
parm[0] = id
    hooked
[id] = true
    get_user_origin
(iduser_origin)
    
get_user_origin(idhooklocation[id], 3)
    
hooklength[id] = get_distance(hooklocation[id],user_origin)
    
global_gravity get_cvar_num("sv_gravity")
    
set_user_gravity(id,0.001)
    
beamentpoint(id)
    
emit_sound(idCHAN_STATIC"weapons/xbow_hit2.wav"1.0ATTN_NORM0PITCH_NORM)
    
set_task(DELTA_T"hooktask"200+idparm1"b")
    
set_task(HOLD_T"let_go",77545+id,parm1)
    
server_cmd("ropemissile_chk %d 1",id)
}

public 
let_go(parm[]){
    
release(parm[0])
    return 
PLUGIN_CONTINUE
}


public 
release(id){
    
hooked[id] = false
    killbeam
(id)
    
set_user_gravity(id)
    
remove_task(200+id)
    
remove_task(77545+id)
    
remove_task(77578+id)
    
server_cmd("ropemissile_chk %d 0",id)
}

public 
beamentpoint(id)
{
    
message_beginMSG_BROADCASTSVC_TEMPENTITY )
    
write_byteTE_BEAMENTPOINT )
    
write_shortid )
    
write_coordhooklocation[id][0] )
    
write_coordhooklocation[id][1] )
    
write_coordhooklocation[id][2] )
    if(
get_cvar_num("amx_ropetype") == 1) {
        
write_shortbeam )    // sprite index
        
write_byte)        // start frame
        
write_byte)        // framerate
        
write_byte120 )    // life
        
write_byte12 )    // width
        
write_byte)        // noise
        
write_byte153 )    // r, g, b
        
write_byte255 )    // r, g, b
        
write_byte51 )    // r, g, b
        
write_byte150 )    // brightness
    
}
    else {
        
write_shortbeam )    // sprite index
        
write_byte)        // start frame
        
write_byte)        // framerate
        
write_byteBEAMLIFE )    // life
        
write_byte10 )    // width
        
write_byte)        // noise
        
if (get_user_team(id) == 1)    // Terrorist
        
{
            
write_byte255 )    // r, g, b
            
write_byte)        // r, g, b
            
write_byte)        // r, g, b
        
}
        else                
// Counter-Terrorist
        
{
            
write_byte)        // r, g, b
            
write_byte)        // r, g, b
            
write_byte255 )    // r, g, b
        
}
        
write_byte150 )        // brightness
    
}
    
write_byte)        // speed
    
message_end( )
    
beamcreated[id] = get_gametime()
}

public 
killbeam(id)
{
    
message_beginMSG_BROADCASTSVC_TEMPENTITY )
    
write_byteTE_KILLBEAM )
    
write_shortid )
    
message_end()
}

public 
new_round(id) {
    if (
hooked[id]) release(id)
}

public 
round_start() {
    if (
get_cvar_num("amx_rope_spawndelay") && !round_delay) {
        
round_delay 1
        set_task
(15.0,"roundstart_delay")
    }
    
roundfreeze false
    mapbounds_killer
()
}
public 
round_end() {
    
roundfreeze true
    
for (new i=1<= get_maxplayers(); i++) {
        
RopeCount[i] = 0
        IsVip
[i] = 0
    
}
}

public 
amx_hc(id,level,cid){
    if (!
cmd_access(id,level,cid,1))
        return 
PLUGIN_HANDLED

    
new command[60]
    new 
variable[6]
    new 
name[32]
    
get_user_name(id,name,31)
    
read_argv(0,command,59)
    
read_argv(1,variable,5)

    if(
get_cvar_num("sv_ninjarope") == 1){
        new 
maxplayers get_maxplayers()+1
        
for (new i=1i<=maxplayersi++) {
            
RopeCount[i] = 0
            
if (hooked[i]){
                
release(i)
            }
        }
        
set_cvar_string("sv_ninjarope","0")
        
client_print(id,print_console,"[AMXX] %s has been set turned OFF",command)
        
server_print("[AMXX] %s has been set turned OFF",command)
        switch(
get_cvar_num("amx_show_activity"))    {
            case 
2:    client_print(0,print_chat,"ADMIN %s: Executed %s OFF",name,command)
            case 
1:    client_print(0,print_chat,"ADMIN: Executed %s OFF",command)
        }
        
mapbounds_killer()
    }
    else {
        
set_cvar_string("sv_ninjarope","1")
        
client_print(id,print_console,"[AMXX] %s has been set turned ON.",command)
        
server_print("[AMXX] %s has been set turned ON.",command)
        switch(
get_cvar_num("amx_show_activity"))    {
            case 
2:    client_print(0,print_chat,"ADMIN %s: Executed %s ON",name,command)
            case 
1:    client_print(0,print_chat,"ADMIN: Executed %s ON",command)
        }
        
mapbounds_killer()
    }
    return 
PLUGIN_HANDLED
}

public 
admin_hook_count(id,level,cid){
    if (!
cmd_access(id,level,cid,2))
        return 
PLUGIN_HANDLED
    
new arg[8]
    
read_argv(1,arg,7)
    if ((
str_to_num(arg) > 10000) || (str_to_num(arg) < 1)){
        
console_print(id,"[AMXX] Invalid parameter. Must be a number between 1 and 10000")
        return 
PLUGIN_HANDLED
    
}
    new 
name[32]
    
get_user_name(id,name,31)
    
console_print(id,"[AMXX] Rope count per round is now %s",arg)
    switch(
get_cvar_num("amx_show_activity"))    {
        case 
2:    client_print(0,print_chat,"ADMIN %s: Executed amx_rope_count %s",name,arg)
        case 
1:    client_print(0,print_chat,"ADMIN: Executed amx_rope_count %s",arg)
    }
    
set_cvar_string("amx_ropes_round",arg)
    return 
PLUGIN_HANDLED
}

public 
HandleSay(id) {
    new 
Speech[192]
    
read_args(Speech,192)
    
remove_quotes(Speech)

    if( (
containi(Speech"vote") == -1) && ((containi(Speech,  "rope") != -1) || (containi(Speech"hook") != -1) || (containi(Speech,  "spider") != -1) || (containi(Speech"swing") != -1) ||  (containi(Speech"grap") != -1))) {
        if(
get_cvar_num("sv_ninjarope") == 1)
            
client_print(id,print_chat"[AMXX] Ninja Rope is enabled - For help say /rope")
        else
            
client_print(id,print_chat"[AMXX] Ninja Rope is disabled")

    }

    return 
PLUGIN_CONTINUE
}

public 
roundstart_delay(){
    
round_delay 0
}

public 
client_connect(id){
    
RpDelay[id] = 0.0
    RopeCount
[id] = 0
    hooked
[id] = false
}

public 
client_disconnect(id){
    
RpDelay[id] = 0.0
    RopeCount
[id] = 0
    hooked
[id] = false

}

public 
mapbounds_killer(){
    if(
get_cvar_num("amx_rb_pl_kill") == 0)
        return 
PLUGIN_CONTINUE

    
if (!mapbounds_checked) {
        new 
nump get_pluginsnum()
        new 
filename[64],temp[5]
        for(new 
i=0;i<nump;++i){
            
get_plugin(i,filename,63,temp,4,temp,4,temp,4,temp,4)
        
            if (
equali(filename,"amx_ejl_outofbounds.amx"))
                
ob_pl1 1
            
else if (equali(filename,"out_of_bounds.amx"))
                
ob_pl2 1
        
}
        
mapbounds_checked true
    
}
    
    if (
get_cvar_num("sv_hook") == 1) {
        if(
ob_pl1 == 1)
            
pause("ac","amx_ejl_outofbounds.amx")
        if(
ob_pl2 == 1)
            
pause("ac","out_of_bounds.amx")
    }
    else {
        if(
ob_pl1 == 1)
            
unpause("ac","amx_ejl_outofbounds.amx")
        if(
ob_pl2 == 1)
            
unpause("ac","out_of_bounds.amx")        
    }

    return 
PLUGIN_CONTINUE
}

public 
vip_spawn(id){
    if(
get_cvar_num("amx_rope_no_vip") == 1){
        new 
inum
        
new players[32]
        
get_players(playersinum ,"c")
        if(
inum 1) {
            
IsVip[id] = 1
        
}
    }
    return 
PLUGIN_CONTINUE
}

public 
rope_motd(id){

    new 
len 1300
    
new buffer[1301]
    new 
0

#if !defined NO_STEAM
    
+= copybuffer[n],len-n,"<html><head><style  type=^"text/css^">pre{color:#FFB000;}body{background:#000000;margin-left:8px;margin-top:0px;}</style></head><body><pre>")
#endif


    
+= copybuffer[n],len-n,"To use your rope have to bind a key to: +rope^n^n")

    
+= copybuffer[n],len-n,"In order to bind a key you must open your console and use the bind command: ^n^n")
    
+= copybuffer[n],len-n,"bind ^"key^" ^"command^" ^n^n")

    
+= copybuffer[n],len-n,"In this case the command is ^"+rope^".  Here are some examples:^n^n")
    
+= copybuffer[n],len-n,"    bind f +rope        bind MOUSE3 +rope^n^n")

    
+= copybuffer[n],len-n,"Now whenever you press the that button, it launches your rope.^n")
    
+= copybuffer[n],len-n,"Make sure to hold the key down as long as you want to be on the rope.^n")
    
+= copybuffer[n],len-n,"Release the key when you want to get off of the rope.^n")
    
+= copybuffer[n],len-n,"To make the rope shorter, press your jump button while using the rope.^n")
    
+= copybuffer[n],len-n,"To make the rope longer, press duck while on the rope.^n^n")

    
+= copybuffer[n],len-n,"New Command: rope_toggle - has the same effect as +rope, except that you^n")
    
+= copybuffer[n],len-n,"    press it once to fire it and once again to release.^n^n")

    
+= copybuffer[n],len-n,"Roping has to be enabled for you to use the rope.^n")
    
+= copybuffer[n],len-n,"Under normal circumstances when rope is enabled, vip's in CS cannot use the rope.^n")
    
+= copybuffer[n],len-n,"Also the rope may not be used for the first 15 seconds of a round in CS.^n")

#if !defined NO_STEAM
    
+= copybuffer[n],len-n,"</pre></body></html>")
#endif

    
show_motd(id,buffer,"Ninja Rope Help")
    return 
PLUGIN_CONTINUE
}

public 
plugin_precache() {
    
beam precache_model("sprites/zbeam4.spr")
    
s_rope precache_model("sprites/rope.spr")
    
precache_sound("weapons/xbow_hit2.wav")
}

public 
plugin_init() {
    
register_plugin("Ninja Rope","1.1.1","EJL-SpaceDude/JTP10181")
    
register_concmd("amx_rope","amx_hc",ADMIN_LEVEL_A,": toggles rope on and off")
    
register_concmd("amx_rope_count","admin_hook_count",ADMIN_LEVEL_A,": <# of ropes allowed to each player per round>")
    
register_clcmd("say","HandleSay")
    
register_clcmd("say /rope","rope_motd")

    
register_cvar("amx_rope_spawndelay","0")
    
register_cvar("amx_rope_no_vip","1")
    
register_cvar("amx_ropes_round","9999")
    
register_cvar("amx_rep_rcount","1")
    
register_cvar("amx_ropetype","1")
    
register_event("Battery","vip_spawn","b","1=200")

    
register_cvar("sv_ninjarope","1",FCVAR_SERVER)
    
register_clcmd("rope_toggle""rope_toggle")
    
register_clcmd("+rope""hook_on")
    
register_clcmd("-rope""hook_off")
    
register_event("ResetHUD""new_round""b")
    
    
register_logevent("round_start"2"1=Round_Start"
    
register_logevent("round_end"2"1=Round_End")

    
register_cvar("amx_rb_pl_kill","1")
    
set_task(4.0,"mapbounds_killer")
}

public 
plugin_modules()
{
    
require_module("fun")
    
require_module("engine")

can be used to escape
the_raculaa is offline
 


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 02:14.


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