12/05/2022, 11:10 AM
(Última modificación: 13/05/2022, 11:37 AM por (_$G$_). Edited 1 time in total.)
Buenas, tengo este menú de skins que lo hice a partir del sistema "weapon_data" del Zombie Plague v6 de Kiske.
Hago este post porque no sé como seteo las skins que elejí de cada arma, sé que se puede hacer con una variable (g_weaponmodel), pero ni idea de como hacerlo. Igualmente este código queda como aporte para el que lo quiera utilizar.
Solo le faltan algunas cosas, que no lo hice ya que es obvio y fácil de hacer.
- Precacheo de models, en caso de no ser "deafult".
- Nombres para las skins.
- Crear variable junto a su enum. (g_page[PAGE_STRUCT])
Hago este post porque no sé como seteo las skins que elejí de cada arma, sé que se puede hacer con una variable (g_weaponmodel), pero ni idea de como hacerlo. Igualmente este código queda como aporte para el que lo quiera utilizar.
Solo le faltan algunas cosas, que no lo hice ya que es obvio y fácil de hacer.
- Precacheo de models, en caso de no ser "deafult".
- Nombres para las skins.
- Crear variable junto a su enum. (g_page[PAGE_STRUCT])
Código PHP:
enum _:STRUCT_DATA_WEAPON
{
WEAPON_DATA_NAME[32],
WEAPON_DATA_ID
};
new const WEAPON_DATA[20][STRUCT_DATA_WEAPON] =
{
{ "Cuchillo", CSW_KNIFE },
{ "Glock 18C", CSW_GLOCK18 },
{ "USP .45 ACP Tactical", CSW_USP },
{ "Desert Eagle .50 AE", CSW_DEAGLE },
{ "P228 Compact", CSW_P228 },
{ "FiveseveN", CSW_FIVESEVEN },
{ "Dual Elite Berettas", CSW_ELITE },
{ "M3 Super 90", CSW_M3 },
{ "XM1014 M4", CSW_XM1014 },
{ "Schmidt TMP", CSW_TMP },
{ "Ingram MAC-10", CSW_MAC10 },
{ "UMP 45", CSW_UMP45 },
{ "MP5 Navy", CSW_MP5NAVY },
{ "ES P90", CSW_P90 },
{ "IMI Galil", CSW_GALIL },
{ "Famas", CSW_FAMAS },
{ "Steyr AUG A1", CSW_AUG },
{ "SG-552 Commando", CSW_SG552 },
{ "M4A1 Carbine", CSW_M4A1 },
{ "AK-47 Kalashnikov", CSW_AK47 }
};
enum _:WEAPONS_SKINS_STRUCT
{
SKIN_NAME[32],
SKIN_MODEL[64],
WEAPON_ID
};
new const WEAPON_SKINS[][WEAPONS_SKINS_STRUCT] =
{
{ "Default", "default", CSW_KNIFE },
{ "Faka #1", "default", CSW_KNIFE },
{ "Faka #2", "default", CSW_KNIFE },
{ "Faka #3", "default", CSW_KNIFE },
{ "Faka #4", "default", CSW_KNIFE },
{ "Faka #5", "default", CSW_KNIFE },
{ "Default", "default", CSW_GLOCK18 },
{ "Glock #1", "default", CSW_GLOCK18 },
{ "Glock #2", "default", CSW_GLOCK18 },
{ "Default", "default", CSW_USP },
{ "USP #1", "default", CSW_USP },
{ "USP #2", "default", CSW_USP },
{ "Default", "default", CSW_DEAGLE },
{ "Deagle #1", "default", CSW_DEAGLE },
{ "Deagle #2", "default", CSW_DEAGLE },
{ "Default", "default", CSW_P228 },
{ "P228 #1", "default", CSW_P228 },
{ "P228 #2", "default", CSW_P228 },
{ "Default", "default", CSW_FIVESEVEN },
{ "FiveseveN #1", "default", CSW_FIVESEVEN },
{ "FiveseveN #2", "default", CSW_FIVESEVEN },
{ "Default", "default", CSW_ELITE },
{ "Dual Elite #1", "default", CSW_ELITE },
{ "Dual Elite #2", "default", CSW_ELITE },
{ "Default", "default", CSW_M3 },
{ "M3 #1", "default", CSW_M3 },
{ "M3 #2", "default", CSW_M3 },
{ "Default", "default", CSW_XM1014 },
{ "XM1014 #1", "default", CSW_XM1014 },
{ "XM1014 #2", "default", CSW_XM1014 },
{ "Default", "default", CSW_TMP },
{ "TMP #1", "default", CSW_TMP },
{ "TMP #2", "default", CSW_TMP },
{ "Default", "default", CSW_MAC10 },
{ "MAC #1", "default", CSW_MAC10 },
{ "MAC #2", "default", CSW_MAC10 },
{ "Default", "default", CSW_UMP45 },
{ "UMP #1", "default", CSW_UMP45 },
{ "UMP #2", "default", CSW_UMP45 },
{ "Default", "default", CSW_MP5NAVY },
{ "MP5 #1", "default", CSW_MP5NAVY },
{ "MP5 #2", "default", CSW_MP5NAVY },
{ "Default", "default", CSW_P90 },
{ "P90 #1", "default", CSW_P90 },
{ "P90 #2", "default", CSW_P90 },
{ "Default", "default", CSW_GALIL },
{ "Galil #1", "default", CSW_GALIL },
{ "Galil #2", "default", CSW_GALIL },
{ "Default", "default", CSW_FAMAS },
{ "Famas #1", "default", CSW_FAMAS },
{ "Famas #2", "default", CSW_FAMAS },
{ "Default", "default", CSW_AUG },
{ "AUG #1", "default", CSW_AUG },
{ "AUG #2", "default", CSW_AUG },
{ "Default", "default", CSW_SG552 },
{ "SG #1", "default", CSW_SG552 },
{ "SG #2", "default", CSW_SG552 },
{ "Default", "default", CSW_M4A1 },
{ "M4A1 #1", "default", CSW_M4A1 },
{ "M4A1 #2", "default", CSW_M4A1 },
{ "Default", "default", CSW_AK47 },
{ "AK #1", "default", CSW_AK47 },
{ "AK #2", "default", CSW_AK47 }
};
public show_menu_skins_weapon(const id, const weapon_id, const weapon_data_id)
{
if (!weapon_id)
{
static text[64];
static num[3];
static menu;
static i;
menu = menu_create("ARMAS\R", "handled_menu_data_weapons");
for (i = 0; i < 20; ++i)
{
num[0] = WEAPON_DATA[i][WEAPON_DATA_ID];
num[1] = i;
num[2] = 0;
formatex(text, charsmax(text), "%s", WEAPON_DATA[i][WEAPON_DATA_NAME]);
menu_additem(menu, text, num);
}
menu_setprop(menu, MPROP_BACKNAME, "Atrás");
menu_setprop(menu, MPROP_NEXTNAME, "Siguiente");
menu_setprop(menu, MPROP_EXITNAME, "Volver");
g_page[id][PAGE_WEAPON_STATS] = min(g_page[id][PAGE_WEAPON_STATS], menu_pages(menu) - 1);
menu_display(id, menu, g_page[id][PAGE_WEAPON_STATS]);
}
else
{
static text[64];
static num[3];
static menu;
static i;
formatex(text, charsmax(text), "MODELOS PARA %s\R", WEAPON_DATA[weapon_data_id][WEAPON_DATA_NAME]);
menu = menu_create(text, "handled_menu_skins_weapon");
for (i = 0; i < sizeof(WEAPON_SKINS); ++i)
{
if (weapon_id != WEAPON_SKINS[i][WEAPON_ID])
continue;
formatex(text, charsmax(text), "%s", WEAPON_SKINS[i][SKIN_NAME]);
menu_additem(menu, text, num);
}
menu_setprop(menu, MPROP_BACKNAME, "Atrás");
menu_setprop(menu, MPROP_NEXTNAME, "Siguiente");
menu_setprop(menu, MPROP_EXITNAME, "Volver");
g_page[id][PAGE_WEAPON_STATS_IN] = weapon_id;
g_page[id][PAGE_WEAPON_STATS_ID] = weapon_data_id;
menu_display(id, menu, 0);
}
}
public handled_menu_data_weapons(const id, const menuid, const item)
{
if (!g_connected[id])
{
menu_destroy(menuid);
return PLUGIN_HANDLED;
}
static iNothing;
player_menu_info(id, iNothing, iNothing, g_page[id][PAGE_WEAPON_STATS]);
if (item == MENU_EXIT)
{
menu_destroy(menuid);
return PLUGIN_HANDLED;
}
static sItem[3];
menu_item_getinfo(menuid, item, iNothing, sItem, charsmax(sItem), _, _, iNothing);
menu_destroy(menuid);
show_menu_skins_weapon(id, .weapon_id = sItem[0], .weapon_data_id = sItem[1]);
return PLUGIN_HANDLED;
}
public handled_menu_skins_weapon(const id, const menuid, const item)
{
if (!g_connected[id])
{
menu_destroy(menuid);
return PLUGIN_HANDLED;
}
static iNothing;
player_menu_info(id, iNothing, iNothing, g_page[id][PAGE_WEAPON_STATS]);
if (item == MENU_EXIT)
{
menu_destroy(menuid);
return PLUGIN_HANDLED;
}
static sItem[3];
menu_item_getinfo(menuid, item, iNothing, sItem, charsmax(sItem), _, _, iNothing);
menu_destroy(menuid);
show_menu_skins_weapon(id, .weapon_id = sItem[0], .weapon_data_id = sItem[1]);
return PLUGIN_HANDLED;
}