horr0r, неплохо =) Только хочу дать несколько советов, если не против:
- Удобнее запомнить номер класса игрока, т.к. зная номер мы знаем модель (и не нужны лишние строковые массивы).
GetEntProp(client, Prop_Send, "m_iClass");
Code
new const String:MODEL_CLASS[9][] =
{
"",
"models/player/t_phoenix.mdl",
"models/player/t_leet.mdl",
"models/player/t_arctic.mdl",
"models/player/t_guerilla.mdl",
"models/player/ct_urban.mdl",
"models/player/ct_gsg9.mdl",
"models/player/ct_sas.mdl",
"models/player/ct_gign.mdl"
};
- на счет события public Action:pdeath: Делать проверку GetConVarInt(PEnable) лучше всего с самого начала, ибо если стоит режим откл, то весь код перед этим становится зря выполненным.
- кэшировать модели нужно в OnMapStart (вызывается и после вкл. плагина)
- в EventHookMode_Pre нет необходимости думаю
- код new String:mdl[256], String:weapon[64]; (здесь лучше вместо new использовать decl)
- и последнее:
Code
new String:mdl[256], String:weapon[64]; // здесь объявлять переменную mdl рано, ибо она может не понадобиться
GetEventString(event, "weapon", weapon, sizeof(weapon));
if (StrEqual(weapon, "knife", false) && ...)
{
GetClientModel(client, mdl, sizeof(mdl)); // а вот перед этой строкой - как раз
Format(NeedModel[attacker], 256, "%s", mdl);
ShowDisgMenu(attacker);
}
А так, молодец, и идея норм.