Перейти к содержанию
Авторизация  
stif1er

lostworld 0.4v lottery

Рекомендуемые сообщения

Добрый день товарищи! Может найдется у кого время на подсказку.. Решил включить лоттерею на сборке и при попытке выбрать число у нпс диалог закрывается и сервер выдает ошибку в логах. Может кто знает как решить? Что-то с байпасами..

[22:40:24] ERROR Error while handling bypass: npc_268445360_Loto 1 via NPC 30990 Lottery Ticket Seller
java.lang.IllegalArgumentException: Incorrect name: fore="L2UI.lottoNum01" back="L2UI.lottoNum01a_check"
        at org.mmocore.gameserver.network.l2.components.HtmlMessage.replace(HtmlMessage.java:97)
        at org.mmocore.gameserver.model.instances.LotteryManagerInstance.showLotoWindow(LotteryManagerInstance.java:118)
        at org.mmocore.gameserver.model.instances.LotteryManagerInstance.onBypassFeedback(LotteryManagerInstance.java:34)
        at org.mmocore.gameserver.network.l2.c2s.RequestBypassToServer.runImpl(RequestBypassToServer.java:102)
        at org.mmocore.gameserver.network.l2.c2s.L2GameClientPacket.run(L2GameClientPacket.java:50)
        at org.mmocore.commons.net.nio.impl.MMOExecutableQueue.run(MMOExecutableQueue.java:55)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
        at org.mmocore.commons.threading.PriorityThreadFactory$1.run(PriorityThreadFactory.java:35)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

по ошибке же все и так понятно - некорректно сформирована ссылка в диалоге

изучай хтмлки лотореи и думай что не так

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 18.07.2020 в 22:45, Gaikotsu сказал:

по ошибке же все и так понятно - некорректно сформирована ссылка в диалоге

изучай хтмлки лотореи и думай что не так

Проблема в том что в хтмлке все правильно. Сравнил с другими сборками. Даже в файле(путь ниже) все аналогично другим сборкам.  Знать бы как дебажить сборку  в тех или иных местах :)

org.mmocore.gameserver.model.instances.LotteryManagerInstance

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, stif1er сказал:

Проблема в том что в хтмлке все правильно. Сравнил с другими сборками. Даже в файле(путь ниже) все аналогично другим сборкам.  Знать бы как дебажить сборку  в тех или иных местах :)


org.mmocore.gameserver.model.instances.LotteryManagerInstance

 

запускаешь через ide, ставишь точку и дальше уже дебажишь)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а судя по ошибки у тебя bypass не верно сформирован походу. На две части поделилась строка

[22:40:24] ERROR Error while handling bypass: npc_268445360_Loto 1 via NPC 30990 Lottery Ticket Seller
java.lang.IllegalArgumentException: Incorrect name: fore="L2UI.lottoNum01" back="L2UI.lottoNum01a_check"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
17 часов назад, Evolution сказал:

а судя по ошибки у тебя bypass не верно сформирован походу. На две части поделилась строка


[22:40:24] ERROR Error while handling bypass: npc_268445360_Loto 1 via NPC 30990 Lottery Ticket Seller
java.lang.IllegalArgumentException: Incorrect name: fore="L2UI.lottoNum01" back="L2UI.lottoNum01a_check"

Уже все посмотрел что можно. Не могу понять как она формируется еще и сборка  нормально не загружается в eclipse с показом всех связностей и ошибок. Закомментил часть в LotteryManagerInstance.java с реплейсом теперь нажимается 5 раз и снова вываливается в ошибку. Может есть какой материал по байпасам где поглядеть можно как они работают?

			count = 0;
			for(int i = 0; i < 5; i++)
				if(player.getLoto(i) > 0)
				{
					count++;
					String button = String.valueOf(player.getLoto(i));
					if(player.getLoto(i) < 10)
						button = "0" + button;
					//String search = "fore=\"L2UI.lottoNum" + button + "\" back=\"L2UI.lottoNum" + button + "a_check\"";
					//String replace = "fore=\"L2UI.lottoNum" + button + "a_check\" back=\"L2UI.lottoNum" + button + "\"";
					//html.replace(search, replace);

				}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо тем кто помог! Возможно не самое лучшее решение но сделал. Было две проблемы. Может кому пригодится 

Закомментить проверку в gameserver\src\main\java\org\mmocore\gameserver\network\l2\components\HtmlMessage.java

        //if(!name.startsWith("%") || !name.endsWith("%"))
        //    throw new IllegalArgumentException("Incorrect name: " + name);

Здесь  заменить строки gameserver\src\main\java\org\mmocore\gameserver\model\instances\LotteryManagerInstance.java

                String search = "0\">" + HtmlUtils.htmlNpcString(1000170);
                String replace = "22\">" + HtmlUtils.htmlNpcString(1000179);

на

                String search = "0\">Return";
                String replace = "22\">The winner selected the numbers above.";

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...