PHP Code:
#include <amxmodx>
#include <nvault>
new const gKnifeNames[][] = {
"Knife 1",
"Knife 2",
"Knife 3"
};
#define TOTAL_KNIVES sizeof(gKnifeNames)
enum _:ModelViews {
Model_View,
Model_Player
};
new const gKnifeModels[TOTAL_KNIVES][ModelViews][] = {
{"models/new/v_knife1.mdl", "models/new/p_knife1.mdl"},
{"models/new/v_knife2.mdl", "models/new/p_knife2.mdl"},
{"models/new/v_knife3.mdl", "models/new/p_knife3.mdl"}
};
new gMenuKnife;
public plugin_precache() {
// precache all knife models
for(new i = 0; i < TOTAL_KNIVES; i++) {
precache_model(gKnifeModels[i][Model_View]);
precache_model(gKnifeModels[i][Model_Player]);
}
}
public plugin_init() {
// create the menu
gMenuKnife = menu_create("Select a knife:", "MenuKnife");
// add a default in case players don't want custom
menu_additem(gMenuKnife, "\yDefault", "-1");
// add all custom knives
new indexString[11];
for(new i = 0; i < TOTAL_KNIVES; i++) {
num_to_str(i, indexString, charsmax(indexString));
menu_additem(gMenuKnife, gKnifeNames[i], indexString);
}
}
public MenuKnife(id, menu, item) {
if(item == MENU_EXIT) {
return;
}
new _access, indexString[11], callback;
menu_item_getinfo(menu, item, _access, indexString, charsmax(indexString), _, _, callback);
// grab selected item
new index = str_to_num(indexString);
// check if chose default
if(index == -1) {
// set blank models so the default knife model is used
SaveModels(id, CSW_KNIFE, "", "");
} else {
// save new models
SaveModels(id, CSW_KNIFE, gKnifeModels[index][Model_View], gKnifeModels[index][Model_Player]);
}
}
Remember that those functions were made for multiple weapon support.
If you are making just a knife menu, these codes could be made a lot shorter.
__________________