Raised This Month: $ Target: $400
 0% 

Help / Support Problem with parachute


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
HamSwit
Member
Join Date: Nov 2014
Location: Romania
Old 01-29-2015 , 10:30   Problem with parachute
Reply With Quote #1

I use the plugin below and when a player which is zombie uses this parachute, his gravity goes back to 1.0, how to solve?

PHP Code:
#include <amxmodx> 
#include <amxmisc> 
#include <engine> 
#include <cstrike> 
#include <fun> 
 
new bool:has_parachute[33
new 
para_ent[33
new 
gCStrike 
new pDetachpFallSpeedpEnabledpCostpPayback 
 
#define PARACHUTE_LEVEL ADMIN_LEVEL_A 
 
public plugin_init() 

    
register_plugin("Parachute""1.0""Unknown"
    
pEnabled register_cvar("sv_parachute""1" 
    
pFallSpeed register_cvar("parachute_fallspeed""100"
    
pDetach register_cvar("parachute_detach""1"
 
    if (
cstrike_running()) gCStrike true 
 
    
if (gCStrike) { 
 
        
pCost register_cvar("parachute_cost""0"
        
pPayback register_cvar("parachute_payback""0"
 
        
register_concmd("amx_parachute""admin_give_parachute"PARACHUTE_LEVEL"<nick, #userid or @team>" 
    } 
 
    
register_clcmd("say""HandleSay"
    
register_clcmd("say_team""HandleSay"
 
    
register_event("ResetHUD""newSpawn""be"
    
register_event("DeathMsg""death_event""a"
 
    
//Setup jtp10181 CVAR 
    
new cvarString[256], shortName[16
    
copy(shortName,15,"chute"
 
    
register_cvar("jtp10181","",FCVAR_SERVER|FCVAR_SPONLY
    
get_cvar_string("jtp10181",cvarString,255
 
    if (
strlen(cvarString) == 0) { 
        
formatex(cvarString,255,shortName
        
set_cvar_string("jtp10181",cvarString
    } 
    else if (
contain(cvarString,shortName) == -1) { 
        
format(cvarString,255,"%s,%s",cvarStringshortName
        
set_cvar_string("jtp10181",cvarString
    } 

 
public 
plugin_natives() 

    
set_module_filter("module_filter"
    
set_native_filter("native_filter"

 
public 
module_filter(const module[]) 

    if (!
cstrike_running() && equali(module"cstrike")) { 
        return 
PLUGIN_HANDLED 
    

 
    return 
PLUGIN_CONTINUE 

 
public 
native_filter(const name[], indextrap

    if (!
trap) return PLUGIN_HANDLED 
 
    
return PLUGIN_CONTINUE 

 
public 
client_connect(id

    
parachute_reset(id

 
public 
client_disconnect(id

    
parachute_reset(id

 
public 
death_event() 

    new 
id read_data(2
    
parachute_reset(id

 
parachute_reset(id

    if(
para_ent[id] > 0) { 
        if (
is_valid_ent(para_ent[id])) { 
            
remove_entity(para_ent[id]) 
        } 
    } 
 
    if (
is_user_alive(id)) set_user_gravity(id1.0
 
    
has_parachute[id] = false 
    para_ent
[id] = 

 
public 
newSpawn(id

    if(
para_ent[id] > 0) { 
        
remove_entity(para_ent[id]) 
        
set_user_gravity(id1.0
        
para_ent[id] = 
    

 
    if (!
gCStrike || access(id,PARACHUTE_LEVEL) || get_pcvar_num(pCost) <= 0) { 
        
has_parachute[id] = true 
        
//set_view(id, CAMERA_3RDPERSON) 
    


 
public 
HandleSay(id

    if(!
is_user_connected(id)) return PLUGIN_CONTINUE 
 
    
new args[128
    
read_args(args127
    
remove_quotes(args
 
    if (
gCStrike) { 
        if (
equali(args"buy_parachute")) { 
            
buy_parachute(id
            return 
PLUGIN_HANDLED 
        

        else if (
equali(args"sell_parachute")) { 
            
sell_parachute(id
            return 
PLUGIN_HANDLED 
        

        else if (
containi(args"give_parachute") == 0) { 
            
give_parachute(id,args[15]) 
            return 
PLUGIN_HANDLED 
        

    } 
 
    if (
containi(args"parachute") != -1) { 
        if (
gCStrikeclient_print(idprint_chat"[AMXX] Parachute commands: buy_parachute, sell_parachute, give_parachute"
        
client_print(idprint_chat"[AMXX] To use your parachute press and hold your +use button while falling"
    } 
 
    return 
PLUGIN_CONTINUE 

 
public 
buy_parachute(id

    if (!
gCStrike) return PLUGIN_CONTINUE 
    
if (!is_user_connected(id)) return PLUGIN_CONTINUE 
 
    
if (!get_pcvar_num(pEnabled)) { 
        
client_print(idprint_chat"[AMXX] Parachute plugin is disabled"
        return 
PLUGIN_HANDLED 
    

 
    if (
has_parachute[id]) { 
        
client_print(idprint_chat"[AMXX] You already have a parachute"
        return 
PLUGIN_HANDLED 
    

 
    new 
money cs_get_user_money(id
    new 
cost get_pcvar_num(pCost
 
    if (
money cost) { 
        
client_print(idprint_chat"[AMXX] You don't have enough moneyfor a parachute - Costs $%i"cost
        return 
PLUGIN_HANDLED 
    

 
    
cs_set_user_money(idmoney cost
    
client_print(idprint_chat"[AMXX] You have bought a parachute. To use it, press +use while falling."
    
has_parachute[id] = true 
 
    
return PLUGIN_HANDLED 

 
public 
sell_parachute(id

    if (!
gCStrike) return PLUGIN_CONTINUE 
    
if (!is_user_connected(id)) return PLUGIN_CONTINUE 
 
    
if (!get_pcvar_num(pEnabled)) { 
        
client_print(idprint_chat"[AMXX] Parachute plugin is disabled"
        return 
PLUGIN_HANDLED 
    

 
    if (!
has_parachute[id]) { 
        
client_print(idprint_chat"[AMXX] You don't have a parachute to sell"
        return 
PLUGIN_HANDLED 
    

 
    if (
access(id,PARACHUTE_LEVEL)) { 
        
client_print(idprint_chat"[AMXX] You cannot sell your free admin parachute"
        return 
PLUGIN_HANDLED 
    

 
    
parachute_reset(id
 
    new 
money cs_get_user_money(id
    new 
cost get_pcvar_num(pCost
 
    new 
sellamt floatround(cost * (get_pcvar_num(pPayback) / 100.0)) 
    
cs_set_user_money(idmoney sellamt
 
    
client_print(idprint_chat"[AMX] You have sold your used parachute for $%d"sellamt
 
    return 
PLUGIN_CONTINUE 

 
public 
give_parachute(id,args[]) 

    if (!
gCStrike) return PLUGIN_CONTINUE 
    
if (!is_user_connected(id)) return PLUGIN_CONTINUE 
 
    
if (!get_pcvar_num(pEnabled)) { 
        
client_print(idprint_chat"[AMXX] Parachute plugin is disabled"
        return 
PLUGIN_HANDLED 
    

 
    if (!
has_parachute[id]) { 
        
client_print(idprint_chat"[AMXX] You don't have a parachute to give"
        return 
PLUGIN_HANDLED 
    

 
    new 
player cmd_target(idargs4
    if (!
player) return PLUGIN_HANDLED 
 
    
new id_name[32], pl_name[32
    
get_user_name(idid_name31
    
get_user_name(playerpl_name31
 
    if(
has_parachute[player]) { 
        
client_print(idprint_chat"[AMXX] %s already has a parachute."pl_name
        return 
PLUGIN_HANDLED 
    

 
    
parachute_reset(id
    
has_parachute[player] = true 
 
    client_print
(idprint_chat"[AMXX] You have given your parachute to %s."pl_name
    
client_print(playerprint_chat"[AMXX] %s has given thier parachute to you."id_name
 
    return 
PLUGIN_HANDLED 

 
public 
admin_give_parachute(idlevelcid) { 
 
    if (!
gCStrike) return PLUGIN_CONTINUE 
 
    
if(!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED 
 
    
if (!get_pcvar_num(pEnabled)) { 
        
client_print(idprint_chat"[AMXX] Parachute plugin is disabled"
        return 
PLUGIN_HANDLED 
    

 
    new 
arg[32], name[32], name2[32], authid[35], authid2[35
    
read_argv(1,arg,31
    
get_user_name(id,name,31
    
get_user_authid(id,authid,34
 
    if (
arg[0]=='@'){ 
        new 
players[32], inum 
        
if (equali("T",arg[1]))        copy(arg[1],31,"TERRORIST"
        if (
equali("ALL",arg[1]))    get_players(players,inum
        else                        
get_players(players,inum,"e",arg[1]) 
 
        if (
inum == 0) { 
            
console_print(id,"No clients in such team"
            return 
PLUGIN_HANDLED 
        

 
        for(new 
0inuma++) { 
            
has_parachute[players[a]] = true 
        

 
        switch(
get_cvar_num("amx_show_activity"))    { 
            case 
2:    client_print(0,print_chat,"ADMIN %s: gave a parachute to ^"%s^" players",name,arg[1]) 
            case 
1:    client_print(0,print_chat,"ADMIN: gave a parachute to ^"%s^" players",arg[1]) 
        } 
 
        
console_print(id,"[AMXX] You gave a parachute to ^"%s^" players",arg[1]) 
        
log_amx("^"%s<%d><%s><>^" gave a parachute to ^"%s^""name,get_user_userid(id),authid,arg[1]) 
    } 
    else { 
 
        new 
player cmd_target(id,arg,6
        if (!
player) return PLUGIN_HANDLED 
 
        has_parachute
[player] = true 
 
        get_user_name
(player,name2,31
        
get_user_authid(player,authid2,34
 
        switch(
get_cvar_num("amx_show_activity")) { 
            case 
2:    client_print(0,print_chat,"ADMIN %s: gave a parachute to ^"%s^"",name,name2
            case 
1:    client_print(0,print_chat,"ADMIN: gave a parachute to ^"%s^"",name2
        } 
 
        
console_print(id,"[AMXX] You gave a parachute to ^"%s^""name2
        
log_amx("^"%s<%d><%s><>^" gave a parachute to ^"%s<%d><%s><>^""name,get_user_userid(id),authid,name2,get_user_userid(player),authid2
    } 
    return 
PLUGIN_HANDLED 

 
public 
client_PreThink(id

    
//parachute.mdl animation information 
    //0 - deploy - 84 frames 
    //1 - idle - 39 frames 
    //2 - detach - 29 frames 
 
    
if (!get_pcvar_num(pEnabled)) return 
    if (!
is_user_alive(id) || !has_parachute[id]) return 
 
    new 
Float:fallspeed get_pcvar_float(pFallSpeed) * -1.0 
    
new Float:frame 
 
    
new button get_user_button(id
    new 
oldbutton get_user_oldbutton(id
    new 
flags get_entity_flags(id
 
    if (
para_ent[id] > && (flags FL_ONGROUND)) { 
 
        if (
get_pcvar_num(pDetach)) { 
 
            if (
get_user_gravity(id) == 0.1set_user_gravity(id1.0
 
            if (
entity_get_int(para_ent[id],EV_INT_sequence) != 2) { 
                
entity_set_int(para_ent[id], EV_INT_sequence2
                
entity_set_int(para_ent[id], EV_INT_gaitsequence1
                
entity_set_float(para_ent[id], EV_FL_frame0.0
                
entity_set_float(para_ent[id], EV_FL_fuser10.0
                
entity_set_float(para_ent[id], EV_FL_animtime0.0
                
entity_set_float(para_ent[id], EV_FL_framerate0.0
                return 
            } 
 
            
frame entity_get_float(para_ent[id],EV_FL_fuser1) + 2.0 
            entity_set_float
(para_ent[id],EV_FL_fuser1,frame
            
entity_set_float(para_ent[id],EV_FL_frame,frame
 
            if (
frame 254.0) { 
                
remove_entity(para_ent[id]) 
                
para_ent[id] = 
            

        } 
        else { 
            
remove_entity(para_ent[id]) 
            
set_user_gravity(id1.0
            
para_ent[id] = 
        

 
        return 
    } 
 
    if (
button IN_USE) { 
 
        new 
Float:velocity[3
        
entity_get_vector(idEV_VEC_velocityvelocity
 
        if (
velocity[2] < 0.0) { 
 
            if(
para_ent[id] <= 0) { 
                
para_ent[id] = create_entity("info_target"
                if(
para_ent[id] > 0) { 
                    
entity_set_string(para_ent[id],EV_SZ_classname,"parachute"
                    
entity_set_edict(para_ent[id], EV_ENT_aimentid
                    
entity_set_edict(para_ent[id], EV_ENT_ownerid
                    
entity_set_int(para_ent[id], EV_INT_movetypeMOVETYPE_FOLLOW
                    
entity_set_int(para_ent[id], EV_INT_sequence0
                    
entity_set_int(para_ent[id], EV_INT_gaitsequence1
                    
entity_set_float(para_ent[id], EV_FL_frame0.0
                    
entity_set_float(para_ent[id], EV_FL_fuser10.0
                } 
            } 
 
            if (
para_ent[id] > 0) { 
 
                
entity_set_int(idEV_INT_sequence3
                
entity_set_int(idEV_INT_gaitsequence1
                
entity_set_float(idEV_FL_frame1.0
                
entity_set_float(idEV_FL_framerate1.0
                
set_user_gravity(id0.1
 
                
velocity[2] = (velocity[2] + 40.0 fallspeed) ? velocity[2] + 40.0 fallspeed 
                entity_set_vector
(idEV_VEC_velocityvelocity
 
                if (
entity_get_int(para_ent[id],EV_INT_sequence) == 0) { 
 
                    
frame entity_get_float(para_ent[id],EV_FL_fuser1) + 1.0 
                    entity_set_float
(para_ent[id],EV_FL_fuser1,frame
                    
entity_set_float(para_ent[id],EV_FL_frame,frame
 
                    if (
frame 100.0) { 
                        
entity_set_float(para_ent[id], EV_FL_animtime0.0
                        
entity_set_float(para_ent[id], EV_FL_framerate0.4
                        
entity_set_int(para_ent[id], EV_INT_sequence1
                        
entity_set_int(para_ent[id], EV_INT_gaitsequence1
                        
entity_set_float(para_ent[id], EV_FL_frame0.0
                        
entity_set_float(para_ent[id], EV_FL_fuser10.0
                    } 
                } 
            } 
        } 
        else if (
para_ent[id] > 0) { 
            
remove_entity(para_ent[id]) 
            
set_user_gravity(id1.0
            
para_ent[id] = 
        

    } 
    else if ((
oldbutton IN_USE) && para_ent[id] > ) { 
        
remove_entity(para_ent[id]) 
        
set_user_gravity(id1.0
        
para_ent[id] = 
    


Solved: https://forums.alliedmods.net/showth...ight=parachute

Last edited by HamSwit; 01-29-2015 at 11:36.
HamSwit is offline
Send a message via Yahoo to HamSwit Send a message via Skype™ to HamSwit
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 14:14.


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