Je voudrais vous demandez si par hasard vous pouriez me dire si c'est une cvars QUE ce menu s'ouvre que pour les terro a chaque round mais que pour les terro sinon me le faire si c'est le plugin a modifié merci!!!
Code:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#define MAX_MODEL_PATH_LENGTH 64
#define MAX_MODEL_DESCRIPTION 32
#define XO_WEAPON 4
#define m_pPlayer 41
#define m_fWeaponState 74
#define m_flDeployedTime 76
#define XO_PLAYER 5
#define m_pActiveItem 373
#define m_iUserPrefs 510
const HAS_SHIELD = 1<<24
#define HasShield(%0) ( get_pdata_int(%0, m_iUserPrefs, XO_PLAYER) & HAS_SHIELD )
#define KNIFE_DRAW 3
#define MAX_PLAYERS 32
new g_iKnifeModel[MAX_PLAYERS+1]
new g_iMenu = -1
new Array:g_aKnivesModels
public plugin_init()
{
register_plugin("Knife Models", "0.3.2", "ConnorMcLeod")
}
public plugin_end()
{
if( g_aKnivesModels != Invalid_Array )
{
ArrayDestroy(g_aKnivesModels)
}
}
public plugin_precache()
{
new szConfigFile[64]
get_localinfo("amxx_configsdir", szConfigFile, charsmax(szConfigFile))
add(szConfigFile, charsmax(szConfigFile), "/knives_models.ini")
new fp = fopen(szConfigFile, "r")
if( fp )
{
new szDatas[MAX_MODEL_PATH_LENGTH+MAX_MODEL_DESCRIPTION+8],
szModel[MAX_MODEL_PATH_LENGTH],
szModelName[MAX_MODEL_DESCRIPTION],
szDefaultModel[4]
new szData[6], iModelsCount, iParsed
while( !feof(fp) )
{
fgets(fp, szDatas, charsmax(szDatas))
trim( szDatas )
if( !szDatas[0] || szDatas[0] == '/' || szDatas[0] == '#' )
{
continue
}
iParsed = parse( szDatas,
szModel, charsmax(szModel),
szModelName, charsmax(szModelName),
szDefaultModel, charsmax(szDefaultModel))
if( (iParsed == 3 && szDefaultModel[0] == '1') || file_exists(szModel) )
{
if( g_iMenu == -1 )
{
EnablePlugin()
}
formatex(szData, charsmax(szData), "%d", ++iModelsCount)
menu_additem(g_iMenu, szModelName, szData)
ArrayPushString(g_aKnivesModels, szModel)
precache_model(szModel)
}
}
if( g_aKnivesModels != Invalid_Array && ArraySize(g_aKnivesModels) < 10 )
{
menu_setprop(g_iMenu, MPROP_PERPAGE, 9)
}
fclose(fp)
}
}
EnablePlugin()
{
g_iMenu = menu_create("Knife Model Menu :", "KnifeModelMenuCallBack")
menu_setprop(g_iMenu, MPROP_NUMBER_COLOR, "\y")
g_aKnivesModels = ArrayCreate( MAX_MODEL_PATH_LENGTH )
RegisterHam(Ham_Item_Deploy, "weapon_knife", "CKnife_Deploy", 1)
register_clcmd("say /knife", "ClCmd_OpenKnifeMenu")
register_clcmd("say_team /knife", "ClCmd_OpenKnifeMenu")
}
public client_putinserver( id )
{
g_iKnifeModel[id] = 0
}
public ClCmd_OpenKnifeMenu(id)
{
menu_display(id, g_iMenu)
}
public KnifeModelMenuCallBack(id, iMenu, iItem)
{
if( iItem != MENU_EXIT )
{
new szData[6], szName[2]
new iAccess, callback
menu_item_getinfo(g_iMenu, iItem, iAccess, szData, charsmax(szData), szName, charsmax(szName), callback)
g_iKnifeModel[id] = str_to_num(szData)-1
new szModel[MAX_MODEL_PATH_LENGTH]
ArrayGetString(g_aKnivesModels, g_iKnifeModel[id], szModel, charsmax(szModel))
if( get_user_weapon(id) == CSW_KNIFE && !HasShield(id) )
{
new iWeapon = get_pdata_cbase(id, m_pActiveItem, XO_PLAYER)
if( get_gametime() - get_pdata_float(iWeapon, m_flDeployedTime, XO_WEAPON) <= 1.5 )
{
message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player=id)
{
write_byte(KNIFE_DRAW)
write_byte( pev(id, pev_body) )
}
message_end()
}
ExecuteHamB(Ham_Item_Deploy, iWeapon)
}
new iCurrentPage, osef
player_menu_info(id, osef, osef, iCurrentPage)
menu_display(id, g_iMenu, iCurrentPage)
}
return PLUGIN_HANDLED
}
public CKnife_Deploy( iKnife )
{
new id = get_pdata_cbase(iKnife, m_pPlayer, XO_WEAPON)
if( !HasShield(id) )
{
new szModel[MAX_MODEL_PATH_LENGTH]
ArrayGetString(g_aKnivesModels, g_iKnifeModel[id], szModel, charsmax(szModel))
set_pev(id, pev_viewmodel2, szModel)
}
}