Hikari 48 Опубликовано 27 августа, 2014 (изменено) Пилю свою админку. Дойдя до листа персонажей онлайн, никак не мог придумать как реализовать вывод меню страниц. Долго думая получилось такое. private void listCharacters(Player activeChar, int page){List<Player> players = GameObjectsStorage.getAllPlayers();int MaxCharactersPerPage = 20;int MaxPages = players.size() / MaxCharactersPerPage + 8;int ThisPage = 2;int NextPage = ThisPage + 10;activeChar.sendMessage("This page = " + ThisPage);while(NextPage > MaxPages){NextPage--;}if(NextPage < MaxPages && NextPage != 10){NextPage += 10;}int MaxShowPages = MaxPages - 10;if(players.size() > MaxCharactersPerPage * MaxPages)MaxPages++;// Check if number of users changed//if(page > MaxPages)// page = MaxPages;int CharactersStart = MaxCharactersPerPage * page;int CharactersEnd = players.size();if(CharactersEnd - CharactersStart > MaxCharactersPerPage)CharactersEnd = CharactersStart + MaxCharactersPerPage;String admhtml = "";StringBuilder pages = new StringBuilder("");StringBuilder charlist = new StringBuilder("");if(ThisPage == MaxPages || ThisPage < MaxPages){activeChar.sendMessage("This page == or < MaxPages");for(int x = 0; x < NextPage; x++){int pagenr = x + 1;pages.append("<td align=center><button value=\"" + pagenr + "\" action=\"bypass -h admin_show_characters " + x + "\" width=18 height=20 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td>");}}//for(int x = 0; x < MaxPages; x++)//{// int pagenr = x + 1;// pages.append("<td align=center><button value=\"" + pagenr + "\" action=\"bypass -h admin_show_characters " + x + "\" width=18 height=20 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td>");//}for(int i = CharactersStart; i < CharactersEnd; i++){Player p = players.get(i);charlist.append("<tr><td width=160>" + "<button value=\"" + p.getName() + " \" action=\"bypass -h admin_character_list" + p.getName() + "\" width=160 height=19 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td><td width=110>" + p.getTemplate().className + "</td><td width=40>" + p.getLevel() + "</td><td width=40><button value=\"Go To\" action=\"bypass -h admin_goto_char_menu " + p.getName() + "\" width=80 height=19 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td><td width=40><button value=\"Recall\" action=\"bypass -h admin_recall_char_menu " + p.getName() + "\" width=80 height=19 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td></tr>");}admhtml = HtmCache.getInstance().getNotNull("admin/charlist.htm", activeChar);admhtml = admhtml.replace("%pages%", pages.toString());admhtml = admhtml.replace("%char_list%", charlist.toString());admhtml = BbsUtil.htmlBuff(admhtml, activeChar);ShowBoard.separateAndSend(admhtml, activeChar);} Что нужно: Нужно что бы при переходе на следующую страницу она становилась первой то-есть у нас есть 1 2 3 4 5 6 7 8 9 10, мы перешли на 3 страницу и получили уже такое меню 3 4 5 6 7 8 9 10 11 12 13 Изменено 27 августа, 2014 пользователем Pacifist Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mizuwokiru 181 Опубликовано 27 августа, 2014 (изменено) Пилю свою админку. Дойдя до листа персонажей онлайн, никак не мог придумать как реализовать вывод меню страниц. Долго думая получилось такое. private void listCharacters(Player activeChar, int page){List<Player> players = GameObjectsStorage.getAllPlayers();int MaxCharactersPerPage = 20;int MaxPages = players.size() / MaxCharactersPerPage + 8;int ThisPage = 2;int NextPage = ThisPage + 10;activeChar.sendMessage("This page = " + ThisPage);while(NextPage > MaxPages){NextPage--;}if(NextPage < MaxPages && NextPage != 10){NextPage += 10;}int MaxShowPages = MaxPages - 10;if(players.size() > MaxCharactersPerPage * MaxPages)MaxPages++;// Check if number of users changed//if(page > MaxPages)// page = MaxPages;int CharactersStart = MaxCharactersPerPage * page;int CharactersEnd = players.size();if(CharactersEnd - CharactersStart > MaxCharactersPerPage)CharactersEnd = CharactersStart + MaxCharactersPerPage;String admhtml = "";StringBuilder pages = new StringBuilder("");StringBuilder charlist = new StringBuilder("");if(ThisPage == MaxPages || ThisPage < MaxPages){activeChar.sendMessage("This page == or < MaxPages");for(int x = 0; x < NextPage; x++){int pagenr = x + 1;pages.append("<td align=center><button value=\"" + pagenr + "\" action=\"bypass -h admin_show_characters " + x + "\" width=18 height=20 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td>");}}//for(int x = 0; x < MaxPages; x++)//{// int pagenr = x + 1;// pages.append("<td align=center><button value=\"" + pagenr + "\" action=\"bypass -h admin_show_characters " + x + "\" width=18 height=20 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td>");//}for(int i = CharactersStart; i < CharactersEnd; i++){Player p = players.get(i);charlist.append("<tr><td width=160>" + "<button value=\"" + p.getName() + " \" action=\"bypass -h admin_character_list" + p.getName() + "\" width=160 height=19 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td><td width=110>" + p.getTemplate().className + "</td><td width=40>" + p.getLevel() + "</td><td width=40><button value=\"Go To\" action=\"bypass -h admin_goto_char_menu " + p.getName() + "\" width=80 height=19 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td><td width=40><button value=\"Recall\" action=\"bypass -h admin_recall_char_menu " + p.getName() + "\" width=80 height=19 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td></tr>");}admhtml = HtmCache.getInstance().getNotNull("admin/charlist.htm", activeChar);admhtml = admhtml.replace("%pages%", pages.toString());admhtml = admhtml.replace("%char_list%", charlist.toString());admhtml = BbsUtil.htmlBuff(admhtml, activeChar);ShowBoard.separateAndSend(admhtml, activeChar);} Что нужно: Нужно что бы при переходе на следующую страницу она становилась первой то-есть у нас есть 1 2 3 4 5 6 7 8 9 10, мы перешли на 3 страницу и получили уже такое меню 3 4 5 6 7 8 9 10 11 12 13 А ты возьми, как образец, генерацию html-странички списка кланов в комьюнити. scripts/services/community/ClanCommunity.java вроде. Только там немного не так (при клацанье на последнюю кнопку открывается след страница, на первую - предыдущая страница). Изменено 27 августа, 2014 пользователем DiQuero 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hikari 48 Опубликовано 28 августа, 2014 /close Решил. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты