Ucina menu
Jak się nazwać
12.08.2011
Siema znowu mam problem a mianowicie:
Jeśli zmniejsze ilość "itemów" w menu do 5 to działa ale czy mogę zrobić żeby było tak jak normalnie ?
Użytkownik Jak się nazwać edytował ten post 12.08.2011 17:15
public PokazPrzedzial(id)
{
if(!zadanie_gracza[id]){
new menu = menu_create("Wybierz frakcje:", "PokazZadania");
for(new i = 1;i<sizeof(przedzial);i++){
menu_additem(menu, przedzial[i]);
}
menu_display(id, menu);
}
else
ColorChat(id, GREEN, "Posiadasz juz zadanie. Aktualne zadanie: %s", zadania[zadanie_gracza[id]])
}
public PokazZadania(id, menu2, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu2);
return PLUGIN_CONTINUE;
}
item++;
new menu = menu_create("Zadania:", "Zadanie_Handle");
new cb = menu_makecallback("Zadanie_CallBack");
new menuitem[320]
for(new i=1; i < sizeof zadania; i++)
{
if(nalezy_do[i] == item){
format(menuitem, 319, "\w%s \r[\yNagroda: %i XP oraz %i Monet\r] [\yPostep: %i/%i\r]", zadania[i], nagroda[i][0], nagroda[i][1], postep[id][i], limit_postepu[i]);
menu_additem(menu, menuitem, _, _, cb);
}
}
menu_display(id, menu);
return PLUGIN_CONTINUE
}
public Zadanie_Handle(id, menu, item)
{
client_cmd(id, "spk QTM_CodMod/select");
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
item++;
zadanie_gracza[id] = item;
return PLUGIN_CONTINUE
}
public Zadanie_CallBack(id, menu2, item)
{
item++;
if(postep[id][item] >= limit_postepu[item])
return ITEM_DISABLED;
return ITEM_ENABLED;
}
Jeśli zmniejsze ilość "itemów" w menu do 5 to działa ale czy mogę zrobić żeby było tak jak normalnie ?
Użytkownik Jak się nazwać edytował ten post 12.08.2011 17:15
speedkill
12.08.2011
public PokazPrzedzial(id) { if(!zadanie_gracza[id]){ new menu = menu_create("Wybierz frakcje:", "PokazZadania"); for(new i = 1;i<sizeof(przedzial);i++){ menu_additem(menu, przedzial[i]); } menu_display(id, menu); } else ColorChat(id, GREEN, "Posiadasz juz zadanie. Aktualne zadanie: %s", zadania[zadanie_gracza[id]]) } public PokazZadania(id, menu2, item) { if(item == MENU_EXIT) { menu_destroy(menu2); return PLUGIN_CONTINUE; } item++; new menu = menu_create("Zadania:", "Zadanie_Handle"); new cb = menu_makecallback("Zadanie_CallBack"); new menuitem[640] for(new i=1; i < sizeof zadania; i++) { if(nalezy_do[i] == item){ format(menuitem, 319, "\w%s \r[\yNagroda: %i XP oraz %i Monet\r] [\yPostep: %i/%i\r]", zadania[i], nagroda[i][0], nagroda[i][1], postep[id][i], limit_postepu[i]); menu_additem(menu, menuitem, _, _, cb); } } menu_display(id, menu); return PLUGIN_CONTINUE } public Zadanie_Handle(id, menu, item) { client_cmd(id, "spk QTM_CodMod/select"); if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } item++; zadanie_gracza[id] = item; return PLUGIN_CONTINUE } public Zadanie_CallBack(id, menu2, item) { item++; if(postep[id][item] >= limit_postepu[item]) return ITEM_DISABLED; return ITEM_ENABLED; }
Jak się nazwać
12.08.2011
Nie działa. Już próbowałem tego
Użytkownik Jak się nazwać edytował ten post 12.08.2011 17:45
Użytkownik Jak się nazwać edytował ten post 12.08.2011 17:45
A może sma?
12.08.2011
new menuitem[640]
for(new i=1; i < sizeof zadania; i++)
{
if(nalezy_do[i] == item){
format(menuitem, 639,
?
Jak się nazwać
12.08.2011
Nie działa już powiększałem to. Jakieś inne propozycje ?
Mam też taki problem że zadanie_gracza[id] = item
ale jeśli misja jest w 2 przedziale to jest w innym menu i item wynosi 1 jak zrobić żeby wynośił tyle ile naprawdę wynosi ?
Menu jest u góry
Edit;
Z tym już sobie poradziłem. To co wie ktoś jak wyświetlić żeby nie ucinało może jest jakiś ogranicznik znaków w menu ?
Użytkownik Jak się nazwać edytował ten post 12.08.2011 18:12
Mam też taki problem że zadanie_gracza[id] = item
ale jeśli misja jest w 2 przedziale to jest w innym menu i item wynosi 1 jak zrobić żeby wynośił tyle ile naprawdę wynosi ?
new const nalezy_do[sizeof zadania] =
{
0,
1,//1
1,//2
1,//3
1,//4
1,//5
1,//6
1,//7
1,//8
1,//9
1,//10
1,//11
1,//12
1,//13
1,//14
2//15 o to właśnie mi chodzi
};
Menu jest u góry
Edit;
Z tym już sobie poradziłem. To co wie ktoś jak wyświetlić żeby nie ucinało może jest jakiś ogranicznik znaków w menu ?
Użytkownik Jak się nazwać edytował ten post 12.08.2011 18:12
A może sma?
12.08.2011
format(menuitem, 639,
Tutaj też?
W 2. poście w tym miejscu powiększone nie jest...
Tutaj też?
W 2. poście w tym miejscu powiększone nie jest...
DarkGL
12.08.2011
limit znaków w menu
#define MAX_MENU_STRING 512 char g_szMenuString[MAX_MENU_STRING]; char g_szPrelocalisedMenuString[MAX_MENU_STRING]; int CHudMenu :: MsgFunc_ShowMenu( const char *pszName, int iSize, void *pbuf ) { char *temp = NULL; BEGIN_READ( pbuf, iSize ); m_bitsValidSlots = READ_SHORT(); int DisplayTime = READ_CHAR(); int NeedMore = READ_BYTE(); if ( DisplayTime > 0 ) m_flShutoffTime = DisplayTime + gHUD.m_flTime; else m_flShutoffTime = -1; if ( m_bitsValidSlots ) { if ( !m_fWaitingForMore ) // this is the start of a new menu { strncpy( g_szPrelocalisedMenuString, READ_STRING(), MAX_MENU_STRING ); } else { // append to the current menu string strncat( g_szPrelocalisedMenuString, READ_STRING(), MAX_MENU_STRING - strlen(g_szPrelocalisedMenuString) ); } g_szPrelocalisedMenuString[MAX_MENU_STRING-1] = 0; // ensure null termination (strncat/strncpy does not) if ( !NeedMore ) { // we have the whole string, so we can localise it now strcpy( g_szMenuString, gHUD.m_TextMessage.BufferedLocaliseTextString( g_szPrelocalisedMenuString ) ); // Swap in characters if ( KB_ConvertString( g_szMenuString, &temp ) ) { strcpy( g_szMenuString, temp ); free( temp ); } } m_fMenuDisplayed = 1; m_iFlags |= HUD_ACTIVE; } else { m_fMenuDisplayed = 0; // no valid slots means that the menu should be turned off m_iFlags &= ~HUD_ACTIVE; } m_fWaitingForMore = NeedMore; return 1; }maksymalnie 512 znaków w menu nie da się tego zwiększyć
Jak się nazwać
12.08.2011
Dzięki dark. Wszyscy dostaliście plusiki.
Czyli teraz muszę zrobić
menu_setprop(menu, MPROP_PERPAGE, 5);
lub mniej jak się nie będzie mieścic ?
Czyli teraz muszę zrobić
menu_setprop(menu, MPROP_PERPAGE, 5);
lub mniej jak się nie będzie mieścic ?