AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Parachute (https://forums.alliedmods.net/showthread.php?t=194212)

gump497 08-26-2012 07:40

Parachute
 
Hello,
Could someone help me, when I set the para_free to 1 and admin_parachute to 0, so it is only for admins, which should go to all players. Where is your fault please?

Code:
PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>

#define PLUGINNAME    "AMXX Parachute"
#define VERSION        "0.2.3"
#define AUTHOR        "KRoT@L"

new bool:has_parachute[33];
new 
para_ent[33];
new 
bool:had_parachute[33];
new 
bool:player_died[33];

public 
plugin_init()
{
    
register_pluginPLUGINNAMEVERSIONAUTHOR )
    
    
register_concmd"say buy_parachute""buy_parachute" )
    
register_concmd"say sell_parachute""sell_parachute" )
    
register_concmd"amx_parachute""give_parachute"ADMIN_CFG"amx_parachute <prezyvka, @vsetci>" )

    
register_cvar"sv_parachute""1" )
    
register_cvar"parachute_cost""1000" )
    
register_cvar"parachute_payback""75" )
    
register_cvar"admin_parachute""0" )
    
register_cvar"para_free""1" )
    
    
register_logevent"event_roundstart"2"0=World triggered""1=Round_Start" )
    
register_logevent"event_roundend"2"0=World triggered""1=Round_End" )
    
register_event"ResetHUD""event_resethud""be" )
    
register_event"DeathMsg""death_event""a" )
}

public 
plugin_modules() {
    
require_module"engine" )
    
require_module"cstrike" )
}

public 
plugin_precache()
{
    
precache_model("models/parachute.mdl")
}

public 
client_connect(id)
{
    if(
para_ent[id] > 0)
    {
        
remove_entity(para_ent[id])
    }
    
has_parachute[id] = true;
    
para_ent[id] = 0
}

public 
event_roundstart() {
    new 
MaxPlayers get_maxplayers();
    for( new 
idid MaxPlayersid++ ) {
        if( 
had_parachute[id] == true && player_died[id] == false ) {
            
has_parachute[id] = true
        
}
    }
    
set_task0.3 "free_parachute"3210__"b" );
        
}

public 
event_roundend() {
    new 
MaxPlayers get_maxplayers();
    for( new 
idid MaxPlayersid++ ) {
        if( 
is_user_aliveid ) ) {
            if( 
has_parachute[id] == true ) {
                
had_parachute[id] = true;
            }else{
                
had_parachute[id] = false;
            }
            
player_died[id] = false;

        }else {
            if(
para_ent[id] > 0) {
                
remove_entity(para_ent[id])
            }
            
has_parachute[id] = false
            para_ent
[id] = 0
            player_died
[id] = true;
        }
    }
    
remove_task3210 )
}

public 
event_resethudid ) {
    if(
para_ent[id] > 0)
    {
        
remove_entity(para_ent[id])
    }
    
has_parachute[id] = false
    para_ent
[id] = 0
}

public 
death_event()
{
    new 
id read_data(2)

    if(
para_ent[id] > 0)
    {
        
remove_entity(para_ent[id])
    }
    
has_parachute[id] = false
    para_ent
[id] = 0
    player_died
[id] = true
}

public 
buy_parachute(id) {
    
    if(
get_cvar_num"sv_parachute" ) == 0)
    {
        
ChatColorid"!g[Parachute] !yPadak je zakazany")
        return 
PLUGIN_HANDLED
    
}

    if(
has_parachute[id])
    {
        return 
PLUGIN_HANDLED        
    
}

    new 
money cs_get_user_money(id)
    new 
cost get_cvar_num"parachute_cost" )

    if(
money cost)
    {
        
ChatColorid"!g[Parachute] !yNemas dostatok penazi na padak, stoji !t%i $"cost)
        return 
PLUGIN_CONTINUE
    
}

    
cs_set_user_money(idmoney cost)
    
ChatColorid"!g[Parachute] !yKupil si si padak. Ak ho chces pouzit, stlac a podrz !t+use !y(!te!y)" )
    
has_parachute[id] = true

    
return PLUGIN_CONTINUE
}

public 
sell_parachute(id) {
    if (
get_cvar_num("sv_parachute") == 0) {
        
ChatColorid"!g[Parachute] !yPadak je zakazany")
        return 
PLUGIN_CONTINUE
    
}
    if (
has_parachute[id]) {
        if(
para_ent[id] > 0)
        {
            if(
is_valid_ent(para_ent[id])) {
                
remove_entity(para_ent[id])
            }
        }
        
has_parachute[id] = false
        para_ent
[id] = 0

        
new money cs_get_user_money(id)
        new 
cost get_cvar_num("parachute_cost")
        new 
payback floatround(float(cost) * (get_cvar_float("parachute_payback") / 100))
        
cs_set_user_money(idmoney payback)
        
ChatColorid"!g[Parachute] !yPredal si padak za !t%i $"payback)
    }
    return 
PLUGIN_CONTINUE
}
public 
free_parachute() {
    new 
maxPlayers get_maxplayers();
    if(
get_cvar_num"sv_parachute" ) == 0) return PLUGIN_CONTINUE

        
for( new 1<= maxPlayersi++ )
        {
        if( !
is_user_connected) ) return PLUGIN_CONTINUE
        
        
if ( get_cvar_num"para_free") == ) {
            
has_parachute[i] = true
            
            
return PLUGIN_CONTINUE
        
}
        if ( 
get_cvar_num("admin_parachute") == && get_user_flags) && ADMIN_LEVEL_H ) {
            
has_parachute[i] = true
            
            
return PLUGIN_CONTINUE
        
}
    }
    return 
PLUGIN_CONTINUE
}

public 
give_parachute(idlevelcid) {
    
    if (!
cmd_access(idlevelcid) ) {
        return 
PLUGIN_CONTINUE
    
}
    
    if (
get_cvar_num("sv_parachute") == ) {
        
ChatColorid"!g[Parachute] !yPadak je zakazany")
        
        return 
PLUGIN_CONTINUE
    
}else{
        new 
arg[32]
        
read_argv1arg31 )
        if (
arg[0] == '@' && arg[1] == 'a') {
            new 
maxPlayers get_maxplayers();
            for( new 
1<= maxPlayersi++ )
            {
                
ChatColori"!yADMIN: dal vsetkym padak" )
                
has_parachute[i] = true
            
}
            
            return 
PLUGIN_CONTINUE
        
}
        new 
player cmd_targetidarg)
        
        if (
has_parachute[id]) {
            
            return 
PLUGIN_CONTINUE
        
}
        if( !
player ) {
            
ChatColorid"!g[Parachute] !yNeexistuje ziadny takyto hrac" )
    
            return 
PLUGIN_CONTINUE
        
}else{
            
ChatColorplayer"!yADMIN: ti dal padak" )
            
has_parachute[player] = true
            
            
return PLUGIN_CONTINUE
        
}
        
    }
    return 
PLUGIN_CONTINUE
}

public 
client_PreThink(id)
{
    if( 
get_cvar_num"sv_parachute" ) == )
    {
        return 
PLUGIN_CONTINUE
    
}

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

    if( 
has_parachute[id] )
    {
        if (
get_user_button(id) & IN_USE )
        {
            if ( !( 
get_entity_flags(id) & FL_ONGROUND ) )
            {
                new 
Float:velocity[3]
                
entity_get_vector(idEV_VEC_velocityvelocity)
                if(
velocity[2] < 0)
                {
                    if (
para_ent[id] == 0)
                    {
                        
para_ent[id] = create_entity("info_target")
                        if (
para_ent[id] > 0)
                        {
                            
entity_set_model(para_ent[id], "models/parachute.mdl")
                            
entity_set_int(para_ent[id], EV_INT_movetypeMOVETYPE_FOLLOW)
                            
entity_set_edict(para_ent[id], EV_ENT_aimentid)
                        }
                    }
                    if (
para_ent[id] > 0)
                    {
                        
velocity[2] = (velocity[2] + 40.0 < -100) ? velocity[2] + 40.0 : -100.0
                        entity_set_vector
(idEV_VEC_velocityvelocity)
                        if (
entity_get_float(para_ent[id], EV_FL_frame) < 0.0 || entity_get_float(para_ent[id], EV_FL_frame) > 254.0)
                        {
                            if (
entity_get_int(para_ent[id], EV_INT_sequence) != 1)
                            {
                                
entity_set_int(para_ent[id], EV_INT_sequence1)
                            }
                            
entity_set_float(para_ent[id], EV_FL_frame0.0)
                        }
                        else 
                        {
                            
entity_set_float(para_ent[id], EV_FL_frameentity_get_float(para_ent[id], EV_FL_frame) + 1.0)
                        }
                    }
                }
                else
                {
                    if (
para_ent[id] > 0)
                    {
                        
remove_entity(para_ent[id])
                        
para_ent[id] = 0
                    
}
                }
            }
            else
            {
                if (
para_ent[id] > 0)
                {
                    
remove_entity(para_ent[id])
                    
para_ent[id] = 0
                
}
            }
        }
        else if (
get_user_oldbutton(id) & IN_USE)
        {
            if (
para_ent[id] > 0)
            {
                
remove_entity(para_ent[id])
                
para_ent[id] = 0
            
}
        }
    }
    
    return 
PLUGIN_CONTINUE
}

stock ChatColor( const id, const string[ ], any:... ) 
{
    new 
msg191 ], players32 ], count 1
    vformat
msgsizeof msg 1string,  3)

    
replace_allmsg,190,"!g","^4" )
    
replace_allmsg,190,"!y","^1" )
    
replace_allmsg,190,"!t","^3" )

    if( 
id )
        
players] = id
    
else get_playersplayers,count,"ch" )

    for( new 
count i++ )
    {
        if( 
is_user_connectedplayers] ) )
        {
            
message_beginMSG_ONE_UNRELIABLEget_user_msgid"SayText" ), _players] )
            
write_byteplayers] )
            
write_stringmsg )
            
message_end( )
        }
    }



fysiks 08-26-2012 19:30

Re: Parachute
 
If you have an issue with a plugin, post in that plugin's thread.


All times are GMT -4. The time now is 05:45.

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