Vous êtes sûrs qu'il marche bien ce correctif ? Parce que j'ai là un exemple de plugin qui ne marche pas et le plugin resmenu de jghg ne marche pas non plus, ni en listen ni en dédié, d'ailleurs.
Le plugin est censé empêcher les joueurs d'acheter une HE et de limiter l'achat des flashes à une seule flash par round.
1. La HE est acheté même si le message qui dit qu'elle ne l'est pas s'affiche;
2. Les Flashes sont achetées 2 par 2 (en une seule fois);
3. Si je montre les messages de restriction au milieu de l'écran en utilisant print_center plutôt que print_chat, ils ne s'affichent pas.
Je pense donc que les fonctions d'achats natives à CS sont appelées VIA AMXX mais aussi directement SANS passer par AMXX... A moins qu'il n'y ait une erreur dans mon script ?...
Code:
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <amxmisc>
public flashbuy(id){
// We check wether player is vip
if ( cs_get_user_vip(id) ) {
engclient_cmd(id,"menuselect","10")
client_print(id,print_chat,"You are the VIP. You can't buy anything!")
} else {
// Allow one FB per round per player only
if ( cs_get_user_bpammo(id, CSW_FLASHBANG) > 0 ) {
client_cmd(id,"menuselect","10")
client_print(id,print_chat,"Only ONE flash grenade per round")
} else if ( Money(id,200) ) {
give_item(id,"weapon_flashbang")
engclient_cmd(id,"menuselect","10")
}
}
return PLUGIN_HANDLED
}
public hebuy(id){
// We check wether player is vip
if ( cs_get_user_vip(id) ) {
engclient_cmd(id,"menuselect","10")
client_print(id,print_chat,"You are the VIP. You can't buy anything!")
} else {
client_cmd(id,"menuselect","10")
client_print(id,print_chat,"You cannot buy HE grenades")
}
return PLUGIN_HANDLED
}
public Money(id,num) // check money
// thx to Alternate Shop 1.3 by SniperBeamer, changed using AMX Mod X CS functions
{
new userMoney = cs_get_user_money(id)-num
if (userMoney < 0)
{
client_print(id,print_center,"You have insufficient funds!")
return false
}
cs_set_user_money(id,userMoney,1)
return true
}
/*
public menuItem(id,key) {
switch ( key ) {
case 2 : flashbuy(id)
case 3 : hebuy(id)
//case 4 : smokebuy(id)
}
return PLUGIN_CONTINUE
}
*/
public plugin_init ( ) {
register_plugin ( "Grenade Restrict", "0.1", "St James" )
// Intercept purchase commands
// these 2 do not even get "inside" the buy functions (dont display restriction messages)
//register_menucmd(register_menuid("BuyItem", 1 ),511,"menuItem")
//register_menucmd(-34,511,"menuItem")
register_clcmd("flash","flashbuy",-1,"flash")
register_clcmd("hegren","hebuy",-1,"hegren")
// Register mapcycle admin commands (not used yet)
if ( !cvar_exists("mp_restgren") ) register_cvar("mp_restgren", "1")
register_concmd("restgren","resgren",ADMIN_MAP," <0|1> - Restrict Grenades < off | on >")
return PLUGIN_CONTINUE
}