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

Parachute Plugin


Post New Thread Reply   
 
Thread Tools Display Modes
JusTGo
Veteran Member
Join Date: Mar 2013
Old 05-20-2016 , 07:21   Re: Parachute Plugin
Reply With Quote #11

Quote:
Originally Posted by uzairhussain View Post
dosen't work bro
post the code ?
__________________
JusTGo is offline
redivcram
Veteran Member
Join Date: Jul 2014
Location: Serbia
Old 05-20-2016 , 08:44   Re: Parachute Plugin
Reply With Quote #12

Quote:
Originally Posted by uzairhussain View Post
dosen't work bro
So descriptive... /sarscasm

You didn't even try doing what I told you to. Post the code here.
redivcram is offline
uzairhussain
Junior Member
Join Date: May 2016
Old 05-20-2016 , 11:23   Re: Parachute Plugin
Reply With Quote #13

PHP Code:
/*******************************************************************************

  Parachute

  Version: 1.3
  Author: KRoTaL/JTP10181

  0.1    Release
  0.1.1  Players can't buy a parachute if they already own one
  0.1.2  Release for AMX MOD X
  0.1.3  Minor changes
  0.1.4  Players lose their parachute if they die
  0.1.5  Added amx_parachute cvar
  0.1.6  Changed set_origin to movetype_follow (you won't see your own parachute)
  0.1.7  Added amx_parachute <name> | admins with admin level a get a free parachute
  0.1.8  JTP - Cleaned up code, fixed runtime error
  1.0    JTP - Should be final version, made it work on basically any mod
  1.1    JTP - Added Changes from AMX Version 0.1.8
             Added say give_parachute and parachute_fallspeed cvar
               Plays the release animation when you touch the ground
               Added chat responder for automatic help
  1.2    JTP - Added cvar to disable the detach animation
              Redid animation code to improve organization
              Force "walk" animation on players when falling
              Change users gravity when falling to avoid choppiness
  1.3    JTP - Upgraded to pCVARs

  Commands:

    say buy_parachute   -   buys a parachute (CStrike ONLY)
    saw sell_parachute  -   sells your parachute (75% of the purchase price)
    say give_parachute <nick, #userid or @team>  -  gives your parachute to the player

    amx_parachute <nick, #userid or @team>  -  gives a player a free parachute (CStrike ONLY)
    amx_parachute @all  -  gives everyone a free parachute (CStrike ONLY)

    Press +use to slow down your fall.

  Cvars:

    sv_parachute "1"            - 0: disables the plugin - 1: enables the plugin

    parachute_cost "1000"        - cost of the parachute (CStrike ONLY)

    parachute_payback "75"        - how many percent of the parachute cost you get when you sell your parachute
                                (ie. (75/100) * 1000 = 750$)

    parachute_fallspeed "100"    - speed of the fall when you use the parachute


  Setup (AMXX 1.x):

    Install the amxx file.
    Enable engine and cstrike (for cs only) in the amxx modules.ini
    Put the parachute.mdl file in the modname/models/ folder

*******************************************************************************/

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

new bool:has_parachute[33]
new 
para_ent[33]
new 
gCStrike 0
new pDetachpFallSpeedpEnabledpCostpPayback

#define PARACHUTE_LEVEL ADMIN_LEVEL_A

public plugin_init()
{
    
register_plugin("Parachute""1.3""KRoT@L/JTP10181")
    
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""1000")
        
pPayback register_cvar("parachute_payback""75")

        
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 
plugin_precache()
{
    
precache_model("models/parachute.mdl")
}

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] = 0
}

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

    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] = 0
            
}
        }
        else {
            
remove_entity(para_ent[id])
            
set_user_gravity(id1.0)
            
para_ent[id] = 0
        
}

        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_model(para_ent[id], "models/parachute.mdl")
                    
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] = 0
        
}
    }
    else if ((
oldbutton IN_USE) && para_ent[id] > ) {
        
remove_entity(para_ent[id])
        
set_user_gravity(id1.0)
        
para_ent[id] = 0
    
}

uzairhussain is offline
EFFx
Veteran Member
Join Date: Feb 2016
Location: São Paulo, Brasil
Old 05-20-2016 , 19:20   Re: Parachute Plugin
Reply With Quote #14

Here:

PHP Code:
if (!is_user_alive(id) || !has_parachute[id]) return 
->

PHP Code:
if (!is_user_alive(id) && get_user_team(id) != && !has_parachute[id]) 
   return 
__________________
• Ranking System • AutoMix 5vs5 System
• Web Ban System • Plugins for free

____________________________________________
For private works:
• Discord: EFFEXo#8850 • Steam: EFFEXo

Last edited by EFFx; 05-20-2016 at 19:21.
EFFx is offline
uzairhussain
Junior Member
Join Date: May 2016
Old 05-20-2016 , 23:21   Re: Parachute Plugin
Reply With Quote #15

EFFx still t have parachute
uzairhussain is offline
Chihuahuax
Senior Member
Join Date: Oct 2014
Location: Malaysia
Old 05-21-2016 , 07:42   Re: Parachute Plugin
Reply With Quote #16

Quote:
Originally Posted by EFFx View Post
Here:

PHP Code:
if (!is_user_alive(id) || !has_parachute[id]) return 
->

PHP Code:
if (!is_user_alive(id) && get_user_team(id) != && !has_parachute[id]) 
   return 
Pls tell me why do u put "&&" instead of "||'
Im beggin u

Last edited by Chihuahuax; 05-21-2016 at 07:43.
Chihuahuax is offline
Send a message via Skype™ to Chihuahuax
SkumTomteN
Veteran Member
Join Date: Oct 2013
Location: Asgard
Old 05-21-2016 , 14:49   Re: Parachute Plugin
Reply With Quote #17

Quote:
Originally Posted by Chihuahuax View Post
Pls tell me why do u put "&&" instead of "||'
Im beggin u
op

Quote:
Originally Posted by EFFx View Post
I think ?? Dont post what you dont know
__________________
Contact: Steam
Videos: Youtube

Last edited by SkumTomteN; 05-21-2016 at 14:49.
SkumTomteN is offline
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:41.


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