AlliedModders

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

riscanuc 02-14-2013 11:52

Problem set_user_maxspeed
 
I have a problem ... When the menu appears, choose speed(4) give speed and when changing weapon speed disappears
Code:

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>
#include <xs>
#include <engine>

#define FLAG ADMIN_LEVEL_E

new const VIP[] = "vip_zpchile"
new const VIP_MODEL[] = "models/player/vip_zpchile/vip_zpchile.mdl"

new const MENU_POPUP[] = "misc/DeathRunVip/vip_menu_popup.wav"
new const MENU_OK[] = "misc/DeathRunVip/vip_menu_ok.wav"
new const VIP_CONNECT[] = "misc/DeathRunVip/vip_connect.wav"

#define TASKID_SHOWHUD    2931
#define TASKID_MODEL        3810

new player_model[33][32]
new Float: g_counter
new bool: g_model[33]
new g_hudsync
new cvar_gravity
new cvar_speed
new SayTxT

new gCylinderSprite;

public plugin_precache()
{
    precache_sound(VIP_CONNECT)

    precache_sound(MENU_POPUP)
    precache_sound(MENU_OK)

    gCylinderSprite = precache_model( "sprites/shockwave.spr" );
}

public plugin_init()
{
    register_plugin("Deathrun V.I.P", "1.0", "DoviuX")

    cvar_gravity = register_cvar("dr_vip_gravity", "700")
    cvar_speed = register_cvar("amx_vip_speed", "600")
   
    RegisterHam(Ham_Spawn, "player", "bacon_spawn", 1)
    register_forward(FM_SetClientKeyValue, "fw_SetClientKeyValue")
    register_forward(FM_ClientUserInfoChanged, "fw_ClientUserInfoChanged")

    g_hudsync = CreateHudSyncObj()
    SayTxT = get_user_msgid("SayText");
}

public bacon_spawn(id)
{
    if (!is_user_alive(id))
        return;
   
    static CsTeams: team ; team = cs_get_user_team(id)
   
    if (team == CS_TEAM_T && (get_user_flags(id) & FLAG))
    { 
    set_task(0.5, "T_menu", id)

    new iOrigin[ 3 ];
    get_user_origin( id, iOrigin );

    Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 100, 0 );
    Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 100, 0 );
    Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 100, 0 );

    copy(player_model[id], 31, VIP)
       
    new currentmodel[32];
    fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);
       
    if(!equal(currentmodel, player_model[id]))
    {
        Task_Model(id + TASKID_MODEL)
        g_counter += 0.1;
    }

    if(!task_exists(TASKID_SHOWHUD + id))
    set_task(0.2, "Task_ShowHUD", TASKID_SHOWHUD + id)

    set_user_rendering(id,kRenderFxGlowShell,150,0,0,kRenderNormal,0)
    }
    else if (team == CS_TEAM_CT && (get_user_flags(id) & FLAG))
    {
        set_task(2.0, "CT_menu", id)

        new iOrigin[ 3 ];
        get_user_origin( id, iOrigin );

        Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 100, 0 );
        Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 100, 0 );
        Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 100, 0 );

        copy(player_model[id], 31, VIP)

        strip_user_weapons(id)
        give_item(id, "weapon_knife")
       
        new currentmodel[32];
        fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);
       
        if(!equal(currentmodel, player_model[id]))
        {
            Task_Model(id + TASKID_MODEL)
            g_counter += 0.1;
        }

        if(!task_exists(TASKID_SHOWHUD + id))
        set_task(0.2, "Task_ShowHUD", TASKID_SHOWHUD + id)

        set_user_rendering(id,kRenderFxGlowShell,0,0,150,kRenderNormal,0)
    }
}

public T_menu(id)
{
    if(cs_get_user_team(id) == CS_TEAM_T)
    {
        if(!is_user_alive(id))
            return PLUGIN_HANDLED

        client_cmd(id, "spk %s", MENU_POPUP)
       
        new gmenu = menu_create("\r~DrX.rLz.Ro~" , "Vip_Handler");
        menu_additem(gmenu ,"\yViata", "1" , 0);
        menu_additem(gmenu ,"\yArmura", "2" , 0);
        menu_additem(gmenu ,"\yGravitate", "3" , 0);
        menu_additem(gmenu ,"\yViteza", "4" , 0);
        menu_additem(gmenu ,"\yDeagle", "5" , 0);
        menu_additem(gmenu ,"\yGrenada HE", "6" , 0);
        menu_additem(gmenu ,"\yNightVision (Harti intunecate)", "7" , 0);
 
        menu_setprop(gmenu , MPROP_EXIT , MEXIT_ALL);
   
        menu_display(id , gmenu , 0);
    }
    return PLUGIN_CONTINUE
}

public CT_menu(id)
{
    if(cs_get_user_team(id) == CS_TEAM_CT)
    {
        if(!is_user_alive(id))
            return PLUGIN_HANDLED
       
        client_cmd(id, "spk %s", MENU_POPUP)
   
        new gmenu = menu_create("\r~DrX.rLz.Ro~" , "VipCt_Handler");
        menu_additem(gmenu ,"\yViata", "1" , 0);
        menu_additem(gmenu ,"\yArmura", "2" , 0);
        menu_additem(gmenu ,"\yGravitate", "3" , 0);
        menu_additem(gmenu ,"\yViteza", "4" , 0);
        menu_additem(gmenu ,"\yGrenada HE", "5" , 0);
        menu_additem(gmenu ,"\yNightVision (Harti intunecate)", "6" , 0);
        menu_additem(gmenu ,"\yInvizibilitate", "7" , 0);
   
        menu_setprop(gmenu , MPROP_EXIT , MEXIT_ALL);
   
        menu_display(id , gmenu , 0);
    }
    return PLUGIN_CONTINUE;
}

public Vip_Handler(id, gmenu, item, player)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(gmenu)
        return PLUGIN_HANDLED
    }

    new data[6], iName[64]
    new access, callback
    menu_item_getinfo(gmenu, item, access, data, 5, iName, 63, callback)
 
    new key = str_to_num(data)
 
    switch(key)
    {
        case 1:
        {
            client_cmd(id, "spk %s", MENU_OK)

            set_user_health(id, 200)
        }
        case 2:
        {
            client_cmd(id, "spk %s", MENU_OK)

            set_user_armor(id, 500)
        }
        case 3:
        {
            client_cmd(id, "spk %s", MENU_OK)

            new Float: gravity
            gravity    = get_pcvar_float(cvar_gravity) / 800

            set_user_gravity(id, gravity)
        }
        case 4:
        {
            new Float:speed = get_user_maxspeed(id) + get_cvar_num("amx_vip_speed")
            client_cmd(id, "spk %s", MENU_OK)
   
            set_user_maxspeed(id , 600.0)
        }
        case 5:
        {
            give_item(id, "weapon_deagle")

            new weapon_id = find_ent_by_owner(-1, "weapon_deagle", id);
            if(weapon_id)
            {
                cs_set_weapon_ammo(weapon_id, 2);
            }

            client_cmd(id, "spk %s", MENU_OK)

        } 
        case 6:
        {
            give_item(id, "weapon_hegrenade")

            client_cmd(id, "spk %s", MENU_OK)

        }
        case 7:
        {
            cs_set_user_nvg(id)

            client_cmd(id, "spk %s", MENU_OK)

        }
    }
    menu_destroy(gmenu)
    return PLUGIN_HANDLED;
}

public VipCt_Handler(id, gmenu, item, player)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(gmenu)
        return PLUGIN_HANDLED
    }

    new data[6], iName[64]
    new access, callback
    menu_item_getinfo(gmenu, item, access, data, 5, iName, 63, callback)
 
    new key = str_to_num(data)
 
    switch(key)
    {
        case 1:
        {
            client_cmd(id, "spk %s", MENU_OK)

            set_user_health(id, 400)
        }
        case 2:
        {
            client_cmd(id, "spk %s", MENU_OK)
   
            set_user_armor(id, 500)
        }
        case 3:
        {
            client_cmd(id, "spk %s", MENU_OK)

            new Float: gravity
            gravity    = get_pcvar_float(cvar_gravity) / 800

            set_user_gravity(id, gravity)
        }
        case 4:
      {
            new Float:speed = get_user_maxspeed(id) + get_cvar_num("amx_vip_speed")
            client_cmd(id, "spk %s", MENU_OK)
   
            set_user_maxspeed(id , 600.0)
        }
        case 5:
        {
            give_item(id, "weapon_hegrenade")

            client_cmd(id, "spk %s", MENU_OK)

        }
        case 6:
        {
        cs_set_user_nvg(id)

        client_cmd(id, "spk %s", MENU_OK)

        }
 
        case 7:
      {
    client_cmd(id, "spk %s", MENU_OK)
    set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 35)
      }

    }
    menu_destroy(gmenu)
    return PLUGIN_HANDLED;
}

public Task_ShowHUD(task)
{
    new id = task - TASKID_SHOWHUD
   
    if(!is_user_alive(id))
        return PLUGIN_HANDLED
   
    static health, armour
    health = get_user_health(id)
    armour = get_user_armor(id)
   
    set_hudmessage(0, 250, 0, 0.40, 0.92, 0, 0.0, 0.3, 0.0, 0.0)
    ShowSyncHudMsg(id, g_hudsync , "..:|Viata: %d - Armura: %d|:..", health, armour)
   
    set_task(0.1, "Task_ShowHUD", TASKID_SHOWHUD + id)       
   
    return PLUGIN_CONTINUE
}

public client_PreThink(id)
{
    if(is_user_alive(id))
    {   
        if(get_user_flags(id) & FLAG)
        {
           
            new oldbuttons = get_user_oldbutton(id);
       
           
            oldbuttons &= ~IN_JUMP;
            entity_set_int(id, EV_INT_oldbuttons, oldbuttons);
        }
    }


public Task_Model(task)
{
    new id = task - TASKID_MODEL
   
    fm_set_user_model(id, player_model[id])
}

stock Create_BeamCylinder( origin[ 3 ], addrad, sprite, startfrate, framerate, life, width, amplitude, red, green, blue, brightness, speed )
{
    message_begin( MSG_PVS, SVC_TEMPENTITY, origin );
    write_byte( TE_BEAMCYLINDER );
    write_coord( origin[ 0 ] );
    write_coord( origin[ 1 ] );
    write_coord( origin[ 2 ] );
    write_coord( origin[ 0 ] );
    write_coord( origin[ 1 ] );
    write_coord( origin[ 2 ] + addrad );
    write_short( sprite );
    write_byte( startfrate );
    write_byte( framerate );
    write_byte(life );
    write_byte( width );
    write_byte( amplitude );
    write_byte( red );
    write_byte( green );
    write_byte( blue );
    write_byte( brightness );
    write_byte( speed );
    message_end();
}

stock te_sprite(id, Float:origin[3], sprite, scale, brightness)
{
    message_begin(MSG_ONE, SVC_TEMPENTITY, _, id)
    write_byte(TE_SPRITE)
    write_coord(floatround(origin[0]))
    write_coord(floatround(origin[1]))
    write_coord(floatround(origin[2]))
    write_short(sprite)
    write_byte(scale)
    write_byte(brightness)
    message_end()
}

stock normalize(Float:fIn[3], Float:fOut[3], Float:fMul)
{
    new Float:fLen = xs_vec_len(fIn)
    xs_vec_copy(fIn, fOut)
   
    fOut[0] /= fLen, fOut[1] /= fLen, fOut[2] /= fLen
    fOut[0] *= fMul, fOut[1] *= fMul, fOut[2] *= fMul
}

public fw_SetClientKeyValue(id, infobuffer, key[], value[])

    if (g_model[id] && equal(key, "model"))
        return FMRES_SUPERCEDE
   
    return FMRES_IGNORED
}

public fw_ClientUserInfoChanged(id, infobuffer)

    if (!g_model[id])
        return FMRES_IGNORED
   
    new currentmodel[32];
    fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);
   
    if(!equal(currentmodel, player_model[id]))
        fm_set_user_model(id, player_model[id])
   
    return FMRES_IGNORED
}

stock fm_set_user_model(player, modelname[])

    engfunc(EngFunc_SetClientKeyValue, player, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", modelname)
   
    g_model[player] = true
}

stock fm_get_user_model(player, model[], len)

    engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", model, len)
}

stock fm_reset_user_model(player)
{       
    g_model[player] = false
   
    dllfunc(DLLFunc_ClientUserInfoChanged, player, engfunc(EngFunc_GetInfoKeyBuffer, player))
}

stock client_printcolor(const id, const input[], any:...)
{
    new count = 1, players[32];
    static msg[191];
    vformat(msg,190,input,3);
    replace_all(msg,190,"/g","^4");// green txt
    replace_all(msg,190,"/y","^1");// orange txt
    replace_all(msg,190,"/ctr","^3");// team txt
    replace_all(msg,190,"/w","^0");// team txt
    if (id) players[0] = id; else get_players(players,count,"ch");
    for (new i = 0; i < count; i++)
    if (is_user_connected(players[i]))
    {
        message_begin(MSG_ONE_UNRELIABLE, SayTxT, _, players[i]);
        write_byte(players[i]);
        write_string(msg);
        message_end();
    }
}



All times are GMT -4. The time now is 20:39.

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