Raised This Month: $51 Target: $400
 12% 

Paintball Movement fix


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
sanimare
Senior Member
Join Date: Sep 2010
Old 06-04-2020 , 08:51   Paintball Movement fix
Reply With Quote #1

Plugin working great. I have this errors in console many times:
Code:
[AMXX] Displaying debug trace (plugin "PBR_Movement.amxx", version "1.1")
[AMXX] Run time error 10: native error (native "get_weaponname")
[AMXX] [0] PBR_Movement.sma::fw_cmdstart (line 89)
When i comment that line i don't have errors, but then it doesnt give previous weapon after sprint is finished.

PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>  
#include <engine>

#define PLUGIN "[PBR] Movement"
#define VERSION "1.1"
#define AUTHOR "Sneaky.amxx"

new Float:userSprintLast[33], Float:userSprintLastBat[33], Float:userSprintSound[33
new 
userSprintSpeed[33], userSprintTiredness[33], userSprintAdvised[33]
new 
userWeapon[33][32]
new 
pbmovesverboseuse_batmeterrechargetimemax_stamina

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_forward(FM_CmdStart"fw_cmdstart");
}

public 
plugin_precache()
{
    
RegisterHam(Ham_Spawn,"player","reset_tireness")  
    
pbmoves register_cvar("pbmoves_enabled""1");
    
verbose register_cvar("pbmoves_verbose""1");
    
use_batmeter register_cvar("pbmoves_usebatterymeter""1");
    
rechargetime register_cvar("pbmoves_rechargetime""10.0");
    
max_stamina register_cvar("pbmoves_maxstamina""700");
    
    
precache_sound("paintballR/sprint.wav");
    
precache_sound("paintballR/gasp1.wav");
}

public 
reset_tireness(id)
  
userSprintTiredness[id] = 0;  

public 
fw_cmdstart(iduc_handlerandom_seed)
{
    if (!
is_user_alive(id) || !get_pcvar_num(pbmoves))
        return 
FMRES_IGNORED
    
    
static buttonsbuttons get_uc(uc_handleUC_Buttons)
    new 
Float:gametime get_gametime()
    
    if((
gametime userSprintLast[id] > get_pcvar_float(rechargetime) || !userSprintLast[id]))
    {
        
userSprintTiredness[id] = 0
        userSprintLast
[id] = gametime
        set_hudmessage
(255255255, -1.00.3301.01.0);
        if(!
userSprintAdvised[id])
        {
            
userSprintAdvised[id] = true
            
//show_hudmessage(id, "You are fresh! You can sprint with right-click...");
        
}
        
        if(
get_pcvar_num(use_batmeter))
        {
            
userSprintLastBat[id] = gametime
            
            message_begin
(MSG_ONE_UNRELIABLEget_user_msgid("FlashBat"), {0,0,0}, id)
            
write_byte(100)
            
message_end()
        }
    }
    
    new 
currentweapon get_user_weapon(id)
    
    if(
buttons IN_ATTACK2 && currentweapon != CSW_SCOUT)
    {
        
set_uc(uc_handleUC_Buttonsbuttons & ~IN_ATTACK2);
    
        if(
userSprintTiredness[id] >= get_pcvar_num(max_stamina))
        {
            
userSprintAdvised[id] = false
            set_hudmessage
(25500, -1.00.3300.10.1);
            
show_hudmessage(id"Too tired to sprint. Please wait...");

            if(
gametime userSprintSound[id] > 1.0)
            {
                
emit_sound(idCHAN_AUTO"paintballR/gasp1.wav"1.0ATTN_NORM 0PITCH_NORM);
                
userSprintSound[id] = gametime
            
}
            
            return 
FMRES_IGNORED;        
        }
    
        
userSprintTiredness[id] += 1                
        
        
if(!(buttons IN_DUCK))
        {    
            
            if (
currentweapon != CSW_KNIFE){
                
get_weaponname(currentweapon,userWeapon[id],30)
                
engclient_cmd(id"weapon_knife")
            }
            
userSprintSpeed[id] += 2;

            if (
userSprintSpeed[id] < 200)
                
userSprintSpeed[id] = 200;

            if (
userSprintSpeed[id] > 400)
                
userSprintSpeed[id] = 400;

            
userSprintLast[id] = gametime
            
            
//Some of this was inspired in +Speed 1.17 by Melanie
            
new Float:returnV[3], Float:Original[3]
            
VelocityByAim iduserSprintSpeed[id], returnV )
    
            
pev(id,pev_velocity,Original)
            
            
//Avoid floating in the air and ultra high jumps
            
if (vector_length(Original) < 600.0 || Original[2] < 0.0)
                
returnV[2] = Original[2]
            
            
set_pev(id,pev_velocity,returnV)
            
set_hudmessage(25500, -1.00.3300.10.1);
            
show_hudmessage(id"Sprinting...");
            
            if (
userSprintLast[id] - userSprintSound[id] > 1.0)
            {
                
emit_sound(idCHAN_AUTO"paintballR/sprint.wav"1.0ATTN_NORM0PITCH_NORM);
                
userSprintSound[id] = userSprintLast[id]                
            }
        
            if (
gametime userSprintLastBat[id] > 0.2 && get_pcvar_num(use_batmeter))
            {
                
userSprintLastBat[id] = gametime
                
new percentage 100 - (userSprintTiredness[id] * 100 get_pcvar_num(max_stamina))
                
message_begin(MSG_ONE,get_user_msgid("FlashBat"),{0,0,0},id);
                
write_byte(percentage);
                
message_end();
            }


        
            return 
FMRES_IGNORED;
        } else
        {            
            if (
userSprintSpeed[id] > 2)
                
userSprintSpeed[id] -= 2;
            else
                
userSprintSpeed[id] = 0;
                
            
userSprintLast[id] = gametime

            
new Float:returnV[3], Float:Original[3]
            
VelocityByAim iduserSprintSpeed[id], returnV )
    
            
pev(id,pev_velocity,Original)
            
            
//Avoid floating in the air and ultra high jumps
            
if (vector_length(Original) < 600.0 || Original[2] < 0.0)
                
returnV[2] = Original[2]
            
            
set_pev(id,pev_velocity,returnV)
            
set_hudmessage(25500, -1.00.3300.10.1);
            
show_hudmessage(id"Sliding...")
            
            return 
FMRES_IGNORED;
        }

    }

    
//restore weapon after sprinting
    
if(userWeapon[id][0])
    {
        
engclient_cmd(iduserWeapon[id])
        
userWeapon[id][0] = 0
    
}
    
userSprintSpeed[id] = 0;
    
    return 
FMRES_IGNORED;

sanimare is offline
Old 06-04-2020, 15:02
Xalus
This message has been deleted by Xalus.
Reply



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 10:16.


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