Witam, mam problem z poprawnym wyświetlaniem obecnej klasy w menu oraz na HUD po otrzymaniu awansu. Wydaje mi się że wyświetlana jest wszędzie nazwa klasy która osiągnęła awans i jest pierwsza w kolejności alfabetycznej.
Nie wiem jaką dać przybliżoną cenę za poprawienie kodu bo nie wiem ile czasu z tym zejdzie. Proszę o kontakt PW dla chętnych.
public select_faction_handle(id, menu, item)
{
if (!is_user_connected(id)) return PLUGIN_HANDLED;
if (item == MENU_EXIT) {
client_cmd(id, "spk %s", codSounds[SOUND_EXIT]);
menu_destroy(menu);
return PLUGIN_HANDLED;
}
client_cmd(id, "spk %s", codSounds[SOUND_SELECT]);
new menuData[128], menuClassName[MAX_NAME], menuClassId[5], itemData[MAX_NAME], classId = codPlayer[id][PLAYER_CLASS], codClass[classInfo], itemAccess, itemCallback;
menu_item_getinfo(menu, item, itemAccess, itemData, charsmax(itemData), _, _, itemCallback);
menu_destroy(menu);
new menu = menu_create("\yWybierz \rKlase\w:", "select_class_confirm");
for (new i = 1; i < ArraySize(codClasses); i++) {
ArrayGetArray(codClasses, i, codClass);
if (equal(itemData, codClass[CLASS_FRACTION])) {
load_class(id, i);
if (codPlayer[id][PLAYER_PROMOTION]) get_user_class_info(id, i, CLASS_NAME, menuClassName, charsmax(menuClassName));
else formatex(menuClassName, charsmax(menuClassName), codClass[CLASS_NAME]);
formatex(menuData, charsmax(menuData), "%s \yPoziom: %i \d(%s)", menuClassName, codPlayer[id][PLAYER_LEVEL], get_weapons(codPlayer[id][PLAYER_WEAPONS]));
// wydaje mi się że problem leży tutaj "menuClassName", nwm jak zdefiniować żeby była to dana klasa. Ale mogę być w błędzie
num_to_str(i, menuClassId, charsmax(menuClassId));
menu_additem(menu, menuData, menuClassId);
}
}
load_class(id, classId);
menu_setprop(menu, MPROP_EXITNAME, "Wyjscie");
menu_setprop(menu, MPROP_BACKNAME, "Poprzednie");
menu_setprop(menu, MPROP_NEXTNAME, "Nastepne");
menu_display(id, menu);
return PLUGIN_HANDLED;
}


Dodatki SourceMod













