Raised This Month: $ Target: $400
 0% 

Shop Base Builder


  
 
 
Thread Tools Display Modes
Author Message
Kidev
Veteran Member
Join Date: Jun 2010
Location: France
Old 08-11-2010 , 08:16   Shop Base Builder
#1

Salut tout le Monde.
Oui je sais, il y a déjà des thread la dessus, mais le plugin de Devil bug... Voici ce plugin:

PHP Code:
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <fakemeta>
 
#define VERSION "4.0"
#define IsPlayer(%1) ( 1 <= %1 <= g_iMaxPlayers )
#define MAX_PLAYERS 32
#define Ham_Player_ResetMaxSpeed Ham_Item_PreFrame
 
new g_iMaxPlayers
 
new const g_ModelSuperKnife[] = "models/superknife.mdl"
 
new bool:g_HasSuperKnife[MAX_PLAYERS+1]
new 
bool:g_HasSpeed[MAX_PLAYERS+1]
new 
bool:g_HasGravityT[MAX_PLAYERS+1]
new 
bool:g_HasGravityCt[MAX_PLAYERS+1]
 
enum _:Items {
    
Item_SuperKnife_T 1,
    
Item_Gravity_T,
    
Item_Speed,
    
Item_SuperKnife_Ct,
    
Item_Gravity_Ct,
    
Item_M249,
    
Item_G3SG1,
    
Item_He,
    
Item_Flash,
    
Item_Smoke
}
 
new 
g_pCvarCost[Items]
new 
g_pCvarQuantityGravityTg_pCvarQuantityGravityCt
 
public plugin_init() 
{
    
register_plugin("Shop"VERSION"Fr33m@n")
 
    
register_clcmd("say /shop""ShowShop")
    
register_clcmd("say_team /shop""ShowShop")
 
    
g_pCvarCost[Item_SuperKnife_T] = register_cvar("shopbb_cost_superknife_t""10000")
    
g_pCvarCost[Item_Gravity_T] = register_cvar("shopbb_cost_gravity_t""12000")
    
g_pCvarCost[Item_Speed] = register_cvar("shopbb_cost_speed""6000")
    
g_pCvarCost[Item_SuperKnife_Ct] = register_cvar("shopbb_cost_superknife_ct""10000")
    
g_pCvarCost[Item_Gravity_Ct] = register_cvar("shopbb_cost_gravity_ct""12000")
    
g_pCvarCost[Item_M249] = register_cvar("shopbb_cost_m249""7000")
    
g_pCvarCost[Item_G3SG1] = register_cvar("shopbb_cost_g3sg1""14000")
    
g_pCvarCost[Item_He] = register_cvar("shopbb_cost_he""5000")
    
g_pCvarCost[Item_Flash] = register_cvar("shopbb_cost_flash""2000")
    
g_pCvarCost[Item_Smoke] = register_cvar("shopbb_cost_smoke""2000")
 
    
g_pCvarQuantityGravityT register_cvar("shopbb_quantity_gravity_t""0.125")
    
g_pCvarQuantityGravityCt register_cvar("shopbb_quantity_gravity_ct""0.125")
 
    
RegisterHam(Ham_Spawn"player""Player_Spawn_Post"1)
    
RegisterHam(Ham_TakeDamage"player""ham_TakeDamage_Pre")
    
RegisterHam(Ham_Item_Deploy"weapon_knife""ham_ItemDeploy_Post"1)
    
RegisterHam(Ham_Player_ResetMaxSpeed"player""Player_ResetMaxSpeed"1)
 
    
g_iMaxPlayers get_maxplayers()
 
    
set_cvar_num("sv_maxspeed"999)
}
 
public 
plugin_precache()
{
    
precache_model(g_ModelSuperKnife)
}
public 
Player_ResetMaxSpeedid )
{
    if ( 
is_user_alive id ) )
    {
         if ( 
get_user_maxspeed(id) != -1.0 )
         {
              if ( 
g_HasSpeed[id] )
              {
                   
set_user_maxspeed(id600.0)
              }
         }
    }
}
 
public 
client_connectid )
{
    
client_cmd(id"cl_forwardspeed 999;cl_sidespeed 999;cl_backspeed 999")
    
g_HasSuperKnife[id] = false
    g_HasSpeed
[id] = false;
}
 
public 
ShowShop(id)
{
    new 
Text[32
 
    if ( 
is_user_alive(id) )
    {
        if ( 
cs_get_user_team(id) == CS_TEAM_T )
        { 
            new 
menu menu_create ("\w[\rShop\w]""ShopT")
            
formatex(Textcharsmax(Text), "\wSuperKnife \y[\r%d $\y]"get_pcvar_num(g_pCvarCost[Item_SuperKnife_T]))
            
menu_additem(menuText"1")
            
formatex(Textcharsmax(Text), "\wLow Gravity \y[\r%d $\y]"get_pcvar_num(g_pCvarCost[Item_Gravity_T]))
            
menu_additem(menuText"2")
            
formatex(Textcharsmax(Text), "\wSpeed \y[\r%d $\y]"get_pcvar_num(g_pCvarCost[Item_Speed]))
            
menu_additem(menuText"3")
 
            
menu_setprop(menuMPROP_EXITNAME"Quitter")
            
menu_setprop(menuMPROP_EXITMEXIT_ALL)
 
            
menu_display(idmenu)
        }
 
        else
        {
            new 
menu2 menu_create ("\w[\rShop BaseBuilder CT\w]""ShopCt")
            
formatex(Textcharsmax(Text), "\wSuperKnife \y[\r%d $\y]"get_pcvar_num(g_pCvarCost[Item_SuperKnife_Ct]))
            
menu_additem(menu2Text"1")
            
formatex(Textcharsmax(Text), "\wLow Gravity \y[\r%d $\y]"get_pcvar_num(g_pCvarCost[Item_Gravity_Ct]))
            
menu_additem(menu2Text"2")
            
formatex(Textcharsmax(Text), "\wM249 \y[\r%d $\y]"get_pcvar_num(g_pCvarCost[Item_M249]))
            
menu_additem(menu2Text"3")
            
formatex(Textcharsmax(Text), "\wG3SG1 \y[\r%d $\y]"get_pcvar_num(g_pCvarCost[Item_G3SG1]))
            
menu_additem(menu2Text"4")
            
formatex(Textcharsmax(Text), "\wHE Grenade \y[\r%d $\y]"get_pcvar_num(g_pCvarCost[Item_He]))
            
menu_additem(menu2Text"5")
            
formatex(Textcharsmax(Text), "\wFlashbang \y[\r%d $\y]"get_pcvar_num(g_pCvarCost[Item_Flash]))
            
menu_additem(menu2Text"6")
            
formatex(Textcharsmax(Text), "\wSmoke \y[\r%d $\y]"get_pcvar_num(g_pCvarCost[Item_Smoke]))
            
menu_additem(menu2Text"7")
 
            
menu_setprop(menu2MPROP_EXITNAME"Quitter")
            
menu_setprop(menu2MPROP_EXITMEXIT_ALL)
 
            
menu_display(idmenu2)
        }
    }
    else
    {
        
client_print(idprint_chat"Tu dois etre vivant pour acheter un item !")
    }
}
 
public 
ShopT(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
 
    if ( !
is_user_alive(id) )
    {
        
client_print(idprint_chat"Tu dois etre vivant pour acheter un item !")
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
 
    new 
info[3]
    new 
accesscallback
    menu_item_getinfo
(menuitemaccessinfo2__callback)
 
    new 
key str_to_num(info)
    new 
iNewMoney cs_get_user_money(id) - get_pcvar_num(g_pCvarCost[key])
 
    if ( 
iNewMoney )
    {
        
client_print(idprint_chat"Tu n'as pas assez d'argent pour acheter cet item !")
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    else
    {
        switch(
key)
        {
            case 
Item_SuperKnife_T:
            {
                if ( 
g_HasSuperKnife[id] )
                {
                    
client_print(idprint_chat"Tu as deja le SuperKnife !")
                    
menu_destroy(menu)
                    return 
PLUGIN_HANDLED
                
}
                
cs_set_user_money(idiNewMoney1)
                
g_HasSuperKnife[id] = true;
                
client_print(idprint_chat"Tu viens d'acheter le SuperKnife !")
            }
 
            case 
Item_Gravity_T:
            {
                if ( 
g_HasGravityT[id] )
                {
                    
client_print(idprint_chat"Tu as deja la Low Gravity !")
                    
menu_destroy(menu)
                    return 
PLUGIN_HANDLED
                
}
                
cs_set_user_money(idiNewMoney1)
                
set_user_gravity(idget_pcvar_float(g_pCvarQuantityGravityT) )
                
client_print(idprint_chat"Tu viens d'acheter la Low Gravity !")
                
g_HasGravityT[id] = true;
            }
 
            case 
Item_Speed:
            {
                if ( 
g_HasSpeed[id] )
                {
                    
client_print(idprint_chat"Tu as deja la Super Speed !")
                    
menu_destroy(menu)
                    return 
PLUGIN_HANDLED
                
}
                
cs_set_user_money(idiNewMoney1)
                
g_HasSpeed[id] = true;
                
client_print(idprint_chat"Tu viens d'acheter la Super Speed !")
            }
        }
    }
    
menu_destroy(menu)
    return 
PLUGIN_HANDLED
}
 
public 
ShopCt(idmenu2item)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu2)
        return 
PLUGIN_HANDLED
    
}
 
    if ( !
is_user_alive(id) )
    {
        
client_print(idprint_chat"Tu dois etre vivant pour acheter un item !")
        
menu_destroy(menu2)
        return 
PLUGIN_HANDLED
    
}
 
    new 
info[3]
    new 
accesscallback
    menu_item_getinfo
(menu2itemaccessinfo2__callback)
 
    new 
key str_to_num(info)
    new 
iNewMoney cs_get_user_money(id) - get_pcvar_num(g_pCvarCost[key])
 
    if ( 
iNewMoney )
    {
        
client_print(idprint_chat"Tu n'as pas assez d'argent pour acheter cet item !")
        
menu_destroy(menu2)
        return 
PLUGIN_HANDLED
    
}
    else
    {
        switch(
key)
        {
            case 
Item_SuperKnife_Ct:
            {
                if ( 
g_HasSuperKnife[id] )
                {
                    
client_print(idprint_chat"Tu as deja le SuperKnife !")
                    
menu_destroy(menu2)
                    return 
PLUGIN_HANDLED
                
}
                
cs_set_user_money(idiNewMoney1)
                
g_HasSuperKnife[id] = true;
                
client_print(idprint_chat"Tu viens d'acheter le SuperKnife !")
            }
 
            case 
Item_Gravity_Ct:
            {     
                if ( 
g_HasGravityCt[id] )
                {
                    
client_print(idprint_chat"Tu as deja la Low Gravity !")
                    
menu_destroy(menu2)
                    return 
PLUGIN_HANDLED
                
}
                
cs_set_user_money(idiNewMoney1)
                
set_user_gravity(idget_pcvar_float(g_pCvarQuantityGravityCt))
                
client_print(idprint_chat"Tu viens d'acheter la Low Gravity !")
                
g_HasGravityCt[id] = true;
            }
 
            case 
Item_M249:
            {
                if ( 
user_has_weapon(idCSW_M249) )
                {
                    
client_print(idprint_chat"Tu as deja la M249 !")
                    
menu_destroy(menu2)
                    return 
PLUGIN_HANDLED
                
}
                
cs_set_user_money(idiNewMoney1)
                
give_item(id"weapon_m249")
                
client_print(idprint_chat"Tu viens d'acheter la M249 !")
            }
 
            case 
Item_G3SG1:
            {
                if ( 
user_has_weapon(idCSW_G3SG1) )
                {
                    
client_print(idprint_chat"Tu as deja la G3SG1 !")
                    
menu_destroy(menu2)
                    return 
PLUGIN_HANDLED
                
}
                
cs_set_user_money(idiNewMoney1)
                
give_item(id"weapon_g3sg1")
                
client_print(idprint_chat"Tu viens d'acheter la G3SG1 !")
            }
 
            case 
Item_He:
            {
                if ( 
user_has_weapon(idCSW_HEGRENADE) )
                {
                    
client_print(idprint_chat"Tu as deja une Grenade !")
                    
menu_destroy(menu2)
                    return 
PLUGIN_HANDLED
                
}
                
cs_set_user_money(idiNewMoney1)
                
give_item(id"weapon_hegrenade")
                
client_print(idprint_chat"Tu viens d'acheter une Grenade !")
            }
 
            case 
Item_Flash:
            {
                if ( 
cs_get_user_bpammo(idCSW_FLASHBANG) == )
                {
                    
client_print(idprint_chat"Tu as deja 2 flashbangs !")
                    
menu_destroy(menu2)
                    return 
PLUGIN_HANDLED
                
}
                
cs_set_user_money(idiNewMoney1)
                
give_item(id"weapon_flashbang")
                
client_print(idprint_chat"Tu viens d'acheter une Flashbang !")
            }
 
            case 
Item_Smoke:
            {
                if ( 
user_has_weapon(idCSW_SMOKEGRENADE) )
                {
                    
client_print(idprint_chat"Tu as deja une Smoke !")
                    
menu_destroy(menu2)
                    return 
PLUGIN_HANDLED
                
}
                
cs_set_user_money(idiNewMoney1)
                
give_item(id"weapon_smokegrenade")
                
client_print(idprint_chat"Tu viens d'acheter une Smoke !")
            }
        }
    }
    
menu_destroy(menu2)
    return 
PLUGIN_HANDLED
}
 
public 
Player_Spawn_Post(id)
{
    if ( 
is_user_alive id ) )
    {
        
client_print(idprint_chat"Tape /shop dans le chat pour acheter un item !")
 
        if ( 
g_HasSuperKnife[id] && get_user_weapon(id) == CSW_KNIFE )
        {
            
set_pev(idpev_viewmodel2"models/v_knife.mdl")
        }
        
g_HasSuperKnife[id] = false
        g_HasSpeed
[id] = false;
    } 
}
 
public 
ham_TakeDamage_Pre(victiminflictorattackerFloat:damagedamage_bits)
{
    if ( 
IsPlayer(attacker) && g_HasSuperKnife[attacker] && is_user_alive(attacker) && inflictor == attacker && get_user_weapon(attacker) == CSW_KNIFE )
    {
        
SetHamParamFloat4damage 154.0 )
    }
}
 
public 
ham_ItemDeploy_Post(weapon_ent)
{
    static 
owner
    owner 
get_pdata_cbase(weapon_ent414)
 
    if ( 
is_user_alive(owner) && g_HasSuperKnife[owner] )
    {
        
set_pev(ownerpev_viewmodel2g_ModelSuperKnife)
    }

Ce plugin, pour le shop CT, est décallé. Voici le shop:

Super Knife = Rien
Gravité = Rien
M249 = Rien
G3SG1 = Super Knife
HE = Gravité
FLASH = M249
SMOKE = G3SG1

Les prix aussi sont décallés. Par exemple, j'ai 5000$, j'essaye d'acheter la FLASH a 2000$, et ça me marque: "Tu n'as pas assez d'argent pour acheter cet item". Le prix lui, est donc bon. J'en conclu que ce sont juste les nom et les prix affichés qui sont mauvais, mais je ne voit pas ça dans le code...

Pour le Shop T, tout marche sauf la Super Speed...

Donc voilà j'aimerai bien trouver la solution, parce que la, je sèche.

Je cherche aussi un plugin qui permet au FLASH de freeze les joueurs, et une SMOKE qui fait tousser en blessant

Merci de m'avoir lu
__________________

Last edited by Kidev; 08-11-2010 at 08:59.
Kidev is offline
Fr33m@n
Veteran Member
Join Date: May 2008
Location: France Marne
Old 08-11-2010 , 10:28   Re: Shop Base Builder
#2

déjà il a des enum foireuse, il aurait du en faire deux...

d'ailleur je me demande si il a compris le but de l'enum et des valeur atribué lors de l'enum...

Last edited by Fr33m@n; 08-11-2010 at 10:31.
Fr33m@n is offline
Kidev
Veteran Member
Join Date: Jun 2010
Location: France
Old 08-11-2010 , 11:22   Re: Shop Base Builder
#3

Tu pense que c'est long a corriger?
__________________
Kidev is offline
Fr33m@n
Veteran Member
Join Date: May 2008
Location: France Marne
Old 08-11-2010 , 12:22   Re: Shop Base Builder
#4

Sa beau être marqué mon nom en auteur, c'est pas moi qui ai codé ce bug.

Je laisse donc la personne en question s'en charger (car j'ai la flemme)

Last edited by Fr33m@n; 08-11-2010 at 14:46.
Fr33m@n is offline
Kidev
Veteran Member
Join Date: Jun 2010
Location: France
Old 08-11-2010 , 13:27   Re: Shop Base Builder
#5

Ha... OK
__________________
Kidev is offline
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 08-12-2010 , 07:37   Re: Shop Base Builder
#6

Fais un effort, Fr33m@n. Je ne connais pas l'étendu des modifications par rapport à l'original, mais ça reste ton plugin. Dans cette situation, assures le support.
__________________
Arkshine is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 08-12-2010 , 08:37   Re: Shop Base Builder
#7

Pour le coup jsuis d'accord avec freeman, le plugin a été pas mal modifié, il avait surement fait le 1er sur une request et il a pas à faire d'effort pour une modification de celui-ci, importante ou non.
Il pourrait c'est sûr, déjà estimer si la correction prendrait du temps ou pas, et de là décider si oui ou non il va corriger, mais ceci ne nous prendrait pas + de temps à toi ou moi, sinon moins de temps, et on n'a aucune obligation non plus ;)
__________________
- tired and retired -

- my plugins -
ConnorMcLeod is offline
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 08-12-2010 , 08:53   Re: Shop Base Builder
#8

Que du blabla.

Je vois son nom sur le plugin, vu la taille du plugin et le contenu, les changements n'ont pas dû être énorme. Avoir la "flème" n'est pas un motif légitime pour ne pas aider, surtout dans le cas où c'est son plugin à la base. La moindre des choses, à défaut de fournir une aide complète, est que l'auteur du plugin lui donne des indications pour qu'il s'en sorte. C'est le temps d'un message. Je n'aurais pas réagi si il n'aurait pas répondu ou si il n'aurait pas fait la remarque "la flème". Il n'y a certe aucune obligation mais dans ce cas, si on pas l'intention d'aider on s'abtient de faire des remarques.
__________________

Last edited by Arkshine; 08-12-2010 at 08:57.
Arkshine is offline
Fr33m@n
Veteran Member
Join Date: May 2008
Location: France Marne
Old 08-12-2010 , 08:56   Re: Shop Base Builder
#9

Ok ok...
c'est juste que je suis occupé, je le ferait. Je pensais juste que Devil repondrait et le ferait.

Edit :
Mais bon je trouve pas normal de corriger quelque chose qui a déjà été donné avec cette erreur.
Perso moi quand je repond au request, je donne toujours quelque chose qui a été testé afin d'assurer le moins de problème possible, et donc forcement je comprend ce que j'ai fait.

C'est pour ca que je voulait pas le corriger à la base. La flemme c'etait le pretexte pour eviter de m'expliquer.

Last edited by Fr33m@n; 08-12-2010 at 09:14.
Fr33m@n is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 08-12-2010 , 09:15   Re: Shop Base Builder
#10

C'est pas un plugin dans la section plugins, donc pour moi je considère qu'il n'y a aucune obligation de support.
Après c'est du cas par cas et du bon sens.
Dans le cas particulier d'un plugin qui a été modifié entre temps par une tièrce personne, je considère que c'est plutôt à cette dernière d'assurer le support, mais c'est évidemment discutable, et c'est vrai que l'auteur de plugin original a normalement le soucis de voir les choses bien faites, surtout quand le plugin porte son nom.
__________________
- tired and retired -

- my plugins -
ConnorMcLeod is offline
 



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 00:14.


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