AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   need help with menu options (https://forums.alliedmods.net/showthread.php?t=98767)

raidmax 07-29-2009 02:42

need help with menu options
 
Hello, i have a little problem, i am trying to make menu with jetpack option

MENU:
PHP Code:

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <fakemeta_util>

new bool:FirstSpawn[33]
public 
plugin_init()
{
    
RegisterHam        (Ham_Spawn"player""Player_Spawn"1)
    
register_forwardFM_PlayerPreThink"forward_player_prethink" );
    
register_logevent"logevent_round_start"2"1=Round_Start" );

}
public 
Player_Spawn(id)
{
    if( !
is_user_alive(id) )
    
// this spawn occurs when a player connects to the server, so this is a good place to reset the value
        
{
            
FirstSpawn[id] = true
            
return
        }
    
FirstSpawn[id] = false

    
new menu menu_create("MENU:""vip_menu");

    
menu_additem(menu"1 OPTION""1"0);
    
menu_additem(menu"2 JETPACK""2"0);
    
menu_additem(menu"3 OPTION""3"ADMIN_ADMIN);

    
menu_setprop(menuMPROP_EXITMEXIT_ALL);

    
menu_display(idmenu0);
 }
 public 
vip_menu(idmenuitem)
 {
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }

    new 
data[6], iName[64];
    new 
accesscallback;
    
menu_item_getinfo(menuitemaccessdata,5iName63callback);


    new 
key str_to_num(data);

    switch(
key)
    {
        case 
1:
        {
            
client_print(idprint_chat"OPTION 1");
            
menu_destroy(menu);
            return 
PLUGIN_HANDLED;
        }
        case 
2:
        {
                    
client_print(idprint_chat"JETPACK 2");
     }
case 
3:
        {
            
client_print(idprint_chat"JETPACK 2");
        }
        case 
4:
        {
            
client_print(idprint_chat"OPTION 3");
        }
    }

    
menu_destroy(menu);
    return 
PLUGIN_HANDLED;
 } 

JETPACK:
PHP Code:

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

new SPRITE_MODEL[]     = "sprites/explode1.spr"
new JETPACK_PMODEL[]     = "models/p_longjump.mdl"
new JETPACK_GOTSOUND[]     = "items/ammopickup2.wav"

new cvar_cost
new cvar_thrust
new cvar_min_speed
new cvar_max_speed

new sprite_fire

new g_HasJetpack[33]
new 
g_JetpackEnt[33]

static const 
PLUGIN_NAME[]     = "SyN Surf Jetpack"
static const PLUGIN_AUTHOR[]     = "Cheap_Suit"
static const PLUGIN_VERSION[]    = "1.4"

public plugin_init()
{
    new 
mapName[33]
    
get_mapname(mapName32)
    
    if(!
equali(mapName"surf_"5))
    {
        new 
pluginName[33]
        
format(pluginName32"[Disabled] %s"PLUGIN_NAME)
        
register_plugin(pluginNamePLUGIN_VERSIONPLUGIN_AUTHOR)
        
pause("ade")
    }
    else
    {
        
register_plugin(PLUGIN_NAMEPLUGIN_VERSIONPLUGIN_AUTHOR)
        
register_cvar(PLUGIN_NAMEPLUGIN_VERSIONFCVAR_SPONLY|FCVAR_SERVER)
        
        
register_clcmd("sjp_givesj" ,         "cmd_GiveSJ",         ADMIN_IMMUNITY"<userid> - Gives free surf jetpack")
        
register_clcmd("sjp_stripsj" ,         "cmd_StripSJ",         ADMIN_IMMUNITY"<userid> - Strips users surf jetpack")
        
        
register_clcmd("say /buyjetpack",     "cmd_BuySurfJetpack"0"Buys surf jetpack")
        
register_clcmd("say buy_jetpack",     "cmd_BuySurfJetpack"0"Buys surf jetpack")
        
register_concmd("buy_jetpack",         "cmd_BuySurfJetpack"0"Buys surf jetpack")
        
register_concmd("buyjetpack",         "cmd_BuySurfJetpack"0"Buys surf jetpack")
        
        
cvar_cost    register_cvar("sjp_cost""5000")
        
cvar_thrust     register_cvar("sjp_thrust""10")
        
cvar_min_speed     register_cvar("sjp_min_speed""400")
        
cvar_max_speed     register_cvar("sjp_max_speed""1200")
        
        
register_event("DeathMsg",         "Event_DeathMsg""a")
    }
}

public 
plugin_precache()
{
    
sprite_fire precache_model(SPRITE_MODEL)
    
precache_sound(JETPACK_GOTSOUND)
    
precache_model(JETPACK_PMODEL)
}

public 
client_connect(id)
{
    
g_HasJetpack[id] = 0
    _removeJetpackEnt
(id)
}
    
public 
client_disconnect(id)
{
    
g_HasJetpack[id] = 0
    _removeJetpackEnt
(id)
}

public 
Event_DeathMsg()
{
    new 
id read_data(2)

    
g_HasJetpack[id] = 0
    _removeJetpackEnt
(id)

    return 
PLUGIN_CONTINUE
}

public 
cmd_BuySurfJetpack(id)
{
    new 
iMoney cs_get_user_money(id)
    new 
iCost get_pcvar_num(cvar_cost)
    
    if(!
is_user_alive(id)) 
        
client_print(idprint_center"You cant buy when your dead!")
    else if(
g_HasJetpack[id])
        
client_print(idprint_center"You already own a surf jetpack.")
    else if(
iMoney iCost)
        
client_print(idprint_center"Insufficient funds! ($%d)"iCost)
    else
    {
        
_give_Jetpack(id)
        
cs_set_user_money(idiMoney iCost1)
      }
    return 
PLUGIN_HANDLED
}

public 
cmd_GiveSJ(id level cid
{
    if(!
cmd_access(id level cid 2))
        return 
PLUGIN_HANDLED
        
    
new arg1[33]
    
read_argv(arg1 32)

    new 
target cmd_target(id arg1 0)
    if(!
is_user_connected(target))
    {
        
console_print(id"Player does not exist")
        return 
PLUGIN_HANDLED
    
}

    if(
g_HasJetpack[target])
    {
        
console_print(id"Player already has a surf jetpack")
        return 
PLUGIN_HANDLED
    
}
    
    
_give_Jetpack(target)

    new 
Name[33], Name2[33]
    
get_user_name(idName32)
    
get_user_name(targetName232)
    
    
console_print(id"You gave %s a surf jetpack"Name2)
    
client_print(targetprint_chat"ADMIN: %s gave you a surf jetpack"Name)
    
    return 
PLUGIN_HANDLED
}

public 
cmd_StripSJ(id level cid
{
    if(!
cmd_access(id level cid 2))
        return 
PLUGIN_HANDLED
        
    
new arg1[33]
    
read_argv(arg1 32)

    new 
target cmd_target(id arg1 0)
    if(!
is_user_connected(target))
    {
        
console_print(id"Player does not exist")
        return 
PLUGIN_HANDLED
    
}

    if(!
g_HasJetpack[target])
    {
        
console_print(id"Player does not have a surf jetpack")
        return 
PLUGIN_HANDLED
    
}
    
    
g_HasJetpack[id] = 0
    _removeJetpackEnt
(id)

    new 
Name[33], Name2[33]
    
get_user_name(idName32)
    
get_user_name(targetName232)
    
    
console_print(id"You stripped %s a surf jetpack"Name2)
    
client_print(targetprint_chat"ADMIN: %s stripped your surf jetpack"Name)
    
    return 
PLUGIN_HANDLED
}

public 
_give_Jetpack(id)
{
    
g_HasJetpack[id] = 1
    client_cmd
(id"spk %s"JETPACK_GOTSOUND)
    
client_print(idprint_chat"You've got a surf jetpack! :: HOW TO USE :: ~ Just Surf ~ ")
    
    if(
g_JetpackEnt[id] < 1)
    {
        
g_JetpackEnt[id] = create_entity("info_target")
        if(
is_valid_ent(g_JetpackEnt[id]))
        {
            
entity_set_model(g_JetpackEnt[id], JETPACK_PMODEL)
            
entity_set_int(g_JetpackEnt[id], EV_INT_movetypeMOVETYPE_FOLLOW)
            
entity_set_edict(g_JetpackEnt[id], EV_ENT_aimentid)
        }
    }
}

public 
_removeJetpackEnt(id)
{
    if(
g_JetpackEnt[id] > 0)
        
remove_entity(g_JetpackEnt[id])
    
g_JetpackEnt[id] = 0
}

public 
client_PreThink(id)
{
    if(!
is_user_alive(id) || !g_HasJetpack[id])
        return 
PLUGIN_CONTINUE
        
    
if(get_user_speed(id) < get_pcvar_num(cvar_min_speed))
        return 
PLUGIN_CONTINUE    
        
    
new Button get_user_button(id)
    if(
Button IN_MOVELEFT || Button IN_MOVERIGHT)
    {        
        
_jetEffect(id)    
        
_jetThrust(id)
    }
    return 
PLUGIN_CONTINUE
}

public 
_jetThrust(id)
{    
    new 
Float:fVelocity[3]
    
entity_get_vector(idEV_VEC_velocityfVelocity)

    new 
Float:fAngle[3]
    
entity_get_vector(idEV_VEC_anglesfAngle)
    
engfunc(EngFunc_MakeVectorsfAngle)
                
    new 
Float:fForward[3]
    
get_global_vector(GL_v_forwardfForward)
                
    
fVelocity[0] += fForward[0] * get_pcvar_num(cvar_thrust)
    
fVelocity[1] += fForward[1] * get_pcvar_num(cvar_thrust)
            
    if(
get_user_speed(id) < get_pcvar_num(cvar_max_speed))
        
entity_set_vector(idEV_VEC_velocityfVelocity)
        
    return 
PLUGIN_CONTINUE
}

public 
_jetEffect(id)
{    
    new 
iOrigin[3]
    
get_user_origin(idiOrigin0)
    
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(17)
    
write_coord(iOrigin[0])
    
write_coord(iOrigin[1])
    
write_coord(iOrigin[2])
    
write_short(sprite_fire)
    
write_byte(10)
    
write_byte(115)
    
message_end()
    
    
entity_set_int(id EV_INT_gaitsequence 8)
}

stock get_user_speed(id)
{
    new 
Float:fVelocity[3]
    
entity_get_vector(idEV_VEC_velocityfVelocity)
    
    new 
iVelocity[3]
    
FVecIVec(fVelocityiVelocity)
    
    new 
iVelocity0 iVelocity[0] * iVelocity[0]
    new 
iVelocity1 iVelocity[1] * iVelocity[1]
    
    return 
sqroot(iVelocity0 iVelocity1)
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/ 

Problem is that i dont know how to add jetpack in option 2 (jet pack must be removed, when player die, and when he respawn, he get menu again.)

fysiks 07-29-2009 03:17

Re: need help with menu options
 
What do you mean by "add jetpack to option 2"? So, just tell us what you want option 2 to do.

Also, I'm assuming that you lose your jetpack when you die already. Is this correct?

raidmax 07-29-2009 04:26

Re: need help with menu options
 
Quote:

Originally Posted by fysiks (Post 884601)
What do you mean by "add jetpack to option 2"? So, just tell us what you want option 2 to do.

Also, I'm assuming that you lose your jetpack when you die already. Is this correct?

If someone press option 2 in menu, they'll get free jetpack

I want to make 1 plugin from 2. But i have no ideam how to do that


All times are GMT -4. The time now is 18:32.

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