AlliedModders

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

freust 07-30-2010 10:45

Help for code
 
Hi everybody,

I need help for a menu that im trying to write. I have a menu who contains 8 items. The item 8 is a ESPION item. When a Terrorist player choose this item, his model change to a CT model. I need a code who reset this item when the player die or change his team but my present code dont work.

Here is my code, could you help me ? THX

Code:


       
Code:

       
#include <amxmodx>
#include <fakemeta>
#include <cstrike>
#include <fun>
#include <hamsandwich>

new const VERSION[] = "0.1.0"

#define MAX_PLAYERS 32
#define IsPlayer(%1)    ( 1 <= %1 <= g_iMaxPlayers )

new g_iMaxPlayers

new const g_ModelSuperKnife[] = "models/jailmod_superknife.mdl"

new bool:g_HasAutoBhop[MAX_PLAYERS+1]
new bool:g_HasSuperKnife[MAX_PLAYERS+1]
new bool:g_HasEspion[MAX_PLAYERS+1]
new bool:g_HasHealth[MAX_PLAYERS+1]
new bool:g_HasArmor[MAX_PLAYERS+1]

enum _:Items {
    Item_He = 1,
    Item_Flash,
    Item_Smoke,
    Item_Armor,
    Item_Health,
    Item_Bunny,
    Item_SuperKnife,
    Item_Espion
}

new g_pCvarCost[Items]
new g_pCvarQuantityArmor, g_pCvarQuantityHealth, g_pCvarKnifeMultiplier

public plugin_init()
{
    // Plugin Info
    register_plugin("Shop", VERSION, "Devil")
   
    // HamSandwich
    RegisterHam(Ham_Spawn, "player", "ham_Player_Spawn_Post", 1)
    RegisterHam(Ham_Player_Jump, "player", "ham_PlayerJump_Pre", 1)
    RegisterHam(Ham_TakeDamage, "player", "ham_TakeDamage_Pre")
    RegisterHam(Ham_Item_Deploy, "weapon_knife", "ham_ItemDeploy_Post", 1)
   
    // GetMaxPlayers
    g_iMaxPlayers = get_maxplayers()
   
    // Commandes
    register_clcmd("say /shop", "ShowBoutique")
    register_clcmd("say_team /shop", "ShowBoutique")
    register_clcmd("say shop", "ShowBoutique")
   
    // On définit le prix des items.
    g_pCvarCost[Item_He] = register_cvar("shop_cost_grenade", "3000")
    g_pCvarCost[Item_Flash] = register_cvar("shop_cost_flashbang", "2000")
    g_pCvarCost[Item_Smoke] = register_cvar("shop_cost_smoke", "1000")
    g_pCvarCost[Item_Armor] = register_cvar("shop_cost_armor", "2000")
    g_pCvarCost[Item_Health] = register_cvar("shop_cost_health", "2000")
    g_pCvarCost[Item_Bunny] = register_cvar("shop_cost_bunny", "2500")
    g_pCvarCost[Item_SuperKnife] = register_cvar("shop_cost_superknife", "14000")
    g_pCvarCost[Item_Espion] = register_cvar("shop_cost_espion", "15000")
    g_pCvarQuantityArmor = register_cvar("shop_quantity_armor", "50")
    g_pCvarQuantityHealth = register_cvar("shop_quantity_health", "10")
    g_pCvarKnifeMultiplier = register_cvar("shop_multiplier_superknife", "3")
}

public plugin_precache()
{
    precache_model(g_ModelSuperKnife)
}

public ShowBoutique(id)
{
    if ( is_user_alive(id) )
    {
        if ( cs_get_user_team(id) == CS_TEAM_T )
        {
            new Text[64]
            new menu = menu_create("[La boutique de la prison]", "Shop")
            formatex(Text, charsmax(Text), "Grenade HE [%d $]", get_pcvar_num(g_pCvarCost[Item_He]))
            menu_additem(menu, Text, "1")
            formatex(Text, charsmax(Text), "Flashbang [%d $]", get_pcvar_num(g_pCvarCost[Item_Flash]))
            menu_additem(menu, Text, "2")
            formatex(Text, charsmax(Text), "Fumigène [%d $]", get_pcvar_num(g_pCvarCost[Item_Smoke]))
            menu_additem(menu, Text, "3")
            formatex(Text, charsmax(Text), "Armure [%d AP] [%d $]",  get_pcvar_num(g_pCvarQuantityArmor),  get_pcvar_num(g_pCvarCost[Item_Armor]))
            menu_additem(menu, Text, "4")
            formatex(Text, charsmax(Text), "Santé [%d HP] [%d $]",  get_pcvar_num(g_pCvarQuantityHealth),  get_pcvar_num(g_pCvarCost[Item_Health]))
            menu_additem(menu, Text, "5")
            formatex(Text, charsmax(Text), "Bunny Hop [%d $]", get_pcvar_num(g_pCvarCost[Item_Bunny]))
            menu_additem(menu, Text, "6")
            formatex(Text, charsmax(Text), "Super couteau [%d $]", get_pcvar_num(g_pCvarCost[Item_SuperKnife]))
            menu_additem(menu, Text, "7")
            formatex(Text, charsmax(Text), "Espion [%d $]", get_pcvar_num(g_pCvarCost[Item_Espion]))
            menu_additem(menu, Text, "8")
           
            menu_setprop(menu, MPROP_EXITNAME, "Quitter")
            menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
           
            menu_display(id, menu)
        }
        else
        {
            client_print(id, print_chat, "Tu dois être PRISONNIER pour acheter un objet !")
            return PLUGIN_HANDLED
        }
    }
    else
    {
        client_print(id, print_chat, "Tu dois être VIVANT pour acheter un objet !")
    }
}

public Shop(id, menu, item)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }
   
    if ( !is_user_alive(id) )
    {
        client_print(id, print_chat, "Tu dois etre VIVANT pour acheter un objet !")
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }
   
    new info[3]
    new access, callback
    menu_item_getinfo(menu, item, access, info, 2, _, _, callback)
   
    new key = str_to_num(info)
    new iNewMoney = cs_get_user_money(id) - get_pcvar_num(g_pCvarCost[key])
   
    if ( iNewMoney < 0 )
    {
        client_print(id, print_chat, "Tu n'as pas assez d'argent pour acheter cet objet !")
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }
    else
    {
        if ( cs_get_user_team(id) == CS_TEAM_T )
        {
            switch(key)
            {
                case Item_He:
                {
                    if ( user_has_weapon(id, CSW_HEGRENADE) )
                    {
                        client_print(id, print_chat, "Tu as déjà une grenade HE !")
                        menu_destroy(menu)
                        return PLUGIN_HANDLED
                    }
                    cs_set_user_money(id, iNewMoney, 1)
                    give_item(id, "weapon_hegrenade")
                    client_print(id, print_chat, "Tu viens d'acheter une grenade HE !")
                }
               
                case Item_Flash:
                {
                    if ( cs_get_user_bpammo(id, CSW_FLASHBANG) == 2 )
                    {
                        client_print(id, print_chat, "Tu as déjà deux flashbang !")
                        menu_destroy(menu)
                        return PLUGIN_HANDLED
                    }
                    cs_set_user_money(id, iNewMoney, 1)
                    give_item(id, "weapon_flashbang")
                    client_print(id, print_chat, "Tu viens d'acheter une flashbang !")
                }
               
                case Item_Smoke:
                {
                    if ( user_has_weapon(id, CSW_SMOKEGRENADE) )
                    {
                        client_print(id, print_chat, "Tu as déjà une fumigène !")
                        menu_destroy(menu)
                        return PLUGIN_HANDLED
                    }
                    cs_set_user_money(id, iNewMoney, 1)
                    give_item(id, "weapon_smokegrenade")
                    client_print(id, print_chat, "Tu viens d'acheter une fumigène !")
                }
               
                case Item_Armor:
                {
                    cs_set_user_money(id, iNewMoney, 1)
                    g_HasArmor[id] = true
                    new iArmorQuantity = get_pcvar_num(g_pCvarQuantityArmor)
                    cs_set_user_armor(id, get_user_armor(id) + iArmorQuantity, CS_ARMOR_VESTHELM)
                    client_print(id, print_chat, "Tu viens d'acheter %d d'armure !", iArmorQuantity)
                }
               
                case Item_Health:
                {
                    cs_set_user_money(id, iNewMoney, 1)
                    g_HasHealth[id] = true
                    new iHealthQuantity = get_pcvar_num(g_pCvarQuantityHealth)
                    set_user_health(id, get_user_health(id) + iHealthQuantity)
                    client_print(id, print_chat, "Tu viens d'acheter %d HP !", iHealthQuantity)
                }
               
                case Item_Bunny:
                {
                    cs_set_user_money(id, iNewMoney, 1)
                    g_HasAutoBhop[id] = true
                    client_print(id, print_chat, "Tu viens d'acheter un Bunny Hop hop hop hop...")
                }
               
                case Item_SuperKnife:
                {
                    cs_set_user_money(id, iNewMoney, 1)
                    g_HasSuperKnife[id] = true
                    if ( get_user_weapon(id) == CSW_KNIFE )
                    {
                        set_pev(id, pev_viewmodel2, g_ModelSuperKnife)
                    }
                    client_print(id, print_chat, "Tu viens d'acheter le super couteau de la mort qui tue !")
                }
               
                case Item_Espion:
                {
                    cs_set_user_money(id, iNewMoney, 1)
                    cs_set_user_model(id, "IG_gardiens")
                    g_HasEspion[id] = true
                    client_print(id, print_chat, "Tu es maintenant un espion du KFC... heu KGB !")
                }
            }
        }
        else
        {
            client_print(id, print_chat, "Tu dois être PRISONNIER pour acheter un objet")
        }
    }
   
    menu_destroy(menu)
    return PLUGIN_HANDLED
}

public ham_PlayerJump_Pre(id)
{
    if ( g_HasAutoBhop[id] && is_user_alive(id) )
    {
        if ( pev(id, pev_flags) & (FL_WATERJUMP | FL_ONGROUND) == FL_ONGROUND && pev(id, pev_waterlevel) < 2 )
        {
            new iOldButtons = pev(id, pev_oldbuttons)
            if ( iOldButtons & IN_JUMP )
            {
                set_pev(id, pev_oldbuttons, iOldButtons & ~IN_JUMP)
            }
        }
    }
}

public ham_Player_Spawn_Post(id)
{
    if ( is_user_alive(id) )
    {
        client_print(id, print_chat, "Tape /shop dans le chat pour acheter un objet !")
       
        if ( g_HasSuperKnife[id] && get_user_weapon(id) == CSW_KNIFE )
        {
            //On remet le model normal si il avait le super Knife et qu'il n'est pas mort.
            set_pev(id, pev_viewmodel2, "models/jail/v_knife.mdl")
        }
        g_HasSuperKnife[id] = false
       
        if ( g_HasEspion[id] && cs_get_user_team(id) == CS_TEAM_T )
        {
            cs_set_user_model(id, "IG_gardiens")
            g_HasEspion[id] = false
        }
       
        if ( g_HasEspion[id] && cs_get_user_team(id) == CS_TEAM_CT )
        {
            cs_set_user_model(id, "IG_prisonnier")
            g_HasEspion[id] = false
        }
       
        g_HasAutoBhop[id] = false
        g_HasHealth[id] = false
        g_HasArmor[id] = false
    }
}

public ham_TakeDamage_Pre(victim, inflictor, attacker, Float:damage, damage_bits)
{
    if ( IsPlayer(attacker) && g_HasSuperKnife[attacker]  && is_user_alive(attacker) && inflictor == attacker  && get_user_weapon(attacker) == CSW_KNIFE )
    {
        SetHamParamFloat( 4, damage * get_pcvar_float(g_pCvarKnifeMultiplier) )
    }
}

public ham_ItemDeploy_Post(weapon_ent)
{
    static owner
    owner = get_pdata_cbase(weapon_ent, 41, 4)
   
    if ( is_user_alive(owner) && g_HasSuperKnife[owner] )
    {
        set_pev(owner, pev_viewmodel2, g_ModelSuperKnife)
    }

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1036\\ f0\\ fs16 \n\\ par }
*/




ConnorMcLeod 07-30-2010 10:48

Re: Help for code
 
Poorly coded.

freust 07-30-2010 11:11

Re: Help for code
 
ConnorMcLeod, it's not my code. But i want to personalize it for my server.

I'm french, u too, if u have any advice or help to give to me, i ll be happy :)

Thanks

ConnorMcLeod 07-30-2010 13:55

Re: Help for code
 
Rewrite the plugin from 0.

Devil259 07-30-2010 15:24

Re: Help for code
 
I said don't use this menu. :mrgreen:

freust 07-30-2010 16:11

Re: Help for code
 
Vu que c'est le RDV des français, pourriez-vous me dire ce qu'il cloche avec ce code ?? Je ne suis pas expert en développement de fichier plugin AMX et j'aimerais vraiment savoir ce qui ne va pas...

Why can't i use this menu ??

Devil259 07-30-2010 16:16

Re: Help for code
 
You can... but :

Quote:

Originally Posted by ConnorMcLeod (Post 1256142)
Poorly coded.

It's an old menu.

freust 07-30-2010 16:23

Re: Help for code
 
Ah ok. Je vais donc rechercher un tutoriel de menu que j'avais vu quelque part sur le forum, merci à vous.

Thanks you


All times are GMT -4. The time now is 00:10.

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