Offline |
|
|
Csatlakozott: 2014.12.19. 23:49 Hozzászólások: 100
Megköszönt másnak: 19 alkalommal Megköszönték neki: 23 alkalommal
|
Pulse írta: Sziasztok valaki tudna nekem küldeni egy olyan fegyver skin menüt, amiben csak mp5 skinek vannak? Thanks Try:#include <amxmodx> #include <amxmisc> #include <fakemeta> #define PLUGIN "fragbolt" #define VERSION "1.0" #define AUTHOR "BBHUNTERR" #define DICTIONARY "fragbolt.txt" #define HOOK_P_MODELS #define HOOK_V_MODELS #define HOOK_W_MODELS new weapon_select[33] new const menu_item_names[][][] = { { "[\rMp5menü] \yAlap csomag", "0", "" }, { "[\rMp5menü] \yParaszt csomag", "0", "weapon1" }, { "[\rMp5menü] \yPolgár csomag", "0", "weapon2" }, { "[\rMp5menü] \yPolgármester csomag", "0", "weapon3" }, { "[\rMp5menü] \yPolitikus csomag", "0", "weapon4" }, { "[\rMp5menü] \yElnök csomag", "0", "weapon5" } } new const models_name[][] = { "mp5.mdl" } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_dictionary(DICTIONARY) register_clcmd("say /fegyoskin", "clcmd_menu") register_event("CurWeapon","Hook_P_V_Model","be","1=1") #if defined HOOK_W_MODELS register_forward(FM_SetModel, "Hook_W_Model", 1) #endif } public plugin_precache() { for(new i = 0; i < sizeof(models_name); i++) { for(new j = 1; j < sizeof(menu_item_names); j++) { #if defined HOOK_P_MODELS new precache_p[256] format(precache_p, sizeof(precache_p), "models/%s/p_%s", menu_item_names[j][2], models_name[i:3q3qz7ed]) precache_model(precache_p) #endif #if defined HOOK_V_MODELS new precache_v[256] format(precache_v, sizeof(precache_v), "models/%s/v_%s", menu_item_names[j][2], models_name[i]) precache_model(precache_v) #endif #if defined HOOK_W_MODELS new precache_w[256] format(precache_w, sizeof(precache_w), "models/%s/w_%s", menu_item_names[j][2], models_name[i]) precache_model(precache_w) #endif } } } public client_disconnect(id) weapon_select[id] = 0 public W_Model_Hook(ent, model[]) { if(!pev_valid(ent)) return FMRES_IGNORED new owner = pev(ent, pev_owner) for(new i = 0; i < sizeof(models_name); i++) { new old_w[256] format(old_w, sizeof(old_w), "models/w_%s", models_name[i]) new new_w[256] format(new_w, sizeof(new_w), "models/%s/w_%s", menu_item_names[weapon_select[owner]][2], models_name[i]) if(equali(model, old_w) || equali(model, new_w)) { if(weapon_select[owner] >= 1) engfunc(EngFunc_SetModel, ent, new_w) else engfunc(EngFunc_SetModel, ent, old_w) return FMRES_SUPERCEDE } } return FMRES_IGNORED } public Hook_P_V_Model(id) { if(!is_user_alive(id)) return PLUGIN_CONTINUE static v_model[32], p_model[32] pev(id, pev_viewmodel2, v_model, 31) pev(id, pev_weaponmodel2, p_model,31) for(new i = 0; i < sizeof(models_name); i++) { #if defined HOOK_V_MODELS new old_v[256] format(old_v, sizeof(old_v), "models/v_%s", models_name[i]) new new_v[256] format(new_v, sizeof(new_v), "models/%s/v_%s", menu_item_names[weapon_select[id]][2], models_name[i]) if(equali(v_model, old_v) || equali(v_model, new_v)) { if(weapon_select[id] >= 1) set_pev(id, pev_viewmodel2, new_v) else set_pev(id, pev_viewmodel2, old_v) break } #endif #if defined HOOK_P_MODELS new old_p[256] format(old_p, sizeof(old_p), "models/p_%s", models_name[i]) new new_p[256] format(new_p, sizeof(new_p), "models/%s/p_%s", menu_item_names[weapon_select[id]][2], models_name[i]) if(equali(p_model, old_p) || equali(p_model, new_p)) { if(weapon_select[id] >= 1) set_pev(id, pev_weaponmodel2, new_p) else set_pev(id, pev_weaponmodel2, old_p) break } #endif } return PLUGIN_CONTINUE } public clcmd_menu(id) { new menu_line[64], menu_newline[64], i_data[64] format(menu_line, charsmax(menu_line), "\w%L", id, "SKIN_MENU", get_user_frags(id)) new menu = menu_create(menu_line, "clcmd_menu_handler") for(new i = 0; i < sizeof(menu_item_names); i++) { new convert_num = str_to_num(menu_item_names[i][1]) num_to_str(i, i_data, sizeof(i_data)) if(get_user_frags(id) < convert_num) format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM1", menu_item_names[i][0], convert_num) else format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM2", menu_item_names[i][0]) menu_additem(menu, menu_newline, i_data, 0) } menu_display(id, menu, 0) return PLUGIN_HANDLED } public clcmd_menu_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new data[64], szName[64] new access, callback menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback) new key = str_to_num(data) new convert_num = str_to_num(menu_item_names[key][1]) if(get_user_frags(id) < convert_num) { client_print(id, print_chat, "%L", id, "SKIN_NOT_USE", menu_item_names[key][0], convert_num) return PLUGIN_HANDLED } else { weapon_select[id] = key client_print(id, print_chat, "%L", id, "SKIN_CHOOSED", menu_item_names[key][0]) Hook_P_V_Model(id) } return PLUGIN_CONTINUE }
Átírtam a fegyverskin fragért pluginomat úgy, hogy csak mp5 skinek vannak benne és 0 fragtől használható az összes! A Kód: /fegyoskin parancsra jön elő a menü! A 'weapon1-2-3-4-5' mappákba kell rakni az 'mp5.mdl' nevű modeleket! Ha maga a menü kinézetét szeretnéd szerkeszteni akkor ezt a részt kell szerkesztened: Pl:[i]Alap: { "[\rMp5menü] \yAlap csomag", "0", "" }, { "[\rMp5menü] \yParaszt csomag", "0", "weapon1" }, { "[\rMp5menü] \yPolgár csomag", "0", "weapon2" }, { "[\rMp5menü] \yPolgármester csomag", "0", "weapon3" }, { "[\rMp5menü] \yPolitikus csomag", "0", "weapon4" }, { "[\rMp5menü] \yElnök csomag", "0", "weapon5" }
Szerkesztett:{ "[\rSkinmenü] \yAlap MP5", "0", "" }, { "[\rSkinmenü] \yRozsdás Mp5", "0", "model1" }, { "[\rSkinmenü] \yVas Mp5", "10", "model2" }, { "[\rSkinmenü] \yBronz MP5", "20", "model3" }, { "[\rSkinmenü] \yEzüst MP5", "30", "model4" }, { "[\rSkinmenü] \yArany MP5", "50", "model5" }
ÍGY KELL SZERKESZTENI: { "[\rMp5menü] \yAlap csomag", "0", "" }, //Az [\rMp5menü] \yAlap csomag helyére azt írd amit szeretnél, hogy írjon a menü ezesetben az első csomagnál! A többinél is ugyanígy! { "[\rMp5menü] \yParszt csomag", "0", "weapon1" }, //A "0" Helyére azt írd, hogy mennyi frag kelljen a megszerzéshez! { "[\rMp5menü] \yPolgár csomag", "0", "weapon2" }, //A (ezesetben) "weapon2" helyére azt írd, hogy mi legyen a mappa neve! { "[\rMp5menü] \yPolgármester csomag", "0", "weapon3" }, { "[\rMp5menü] \yPolitikus csomag", "0", "weapon4" }, { "[\rMp5menü] \yElnök csomag", "0", "weapon5" }
Ha be raktad a szerverre a menüt akkor: Pl.: Models mappába csinálsz egy mappát (Ahány menüpont annyi mappa!) Ezesetben legyen a weapon1 nevű mappa! Ebbe a mappába be rakod az első MP5 skint melynek a neve mp5.mdl legyen! Ui. Minden modelnek a neve mp5.mdl legyen, és minden mappának az legyen a neve ami a pluginban le van írva pl. weapon1, weapon2, stb.. Remélem segíthettem!
_________________ [mozgo]^^^ [.:~Be4tBox~:.] ^^^[/mozgo]
|
|