Re: Заявка на новые возможности, либо на исправление старых
Posted: 31.10.2016 4:25
Возможности работы с этим прицелом нету?
Альтернативный клиент Ultima Online
https://stealth.od.ua/forum/
http://www.uoguide.com/Client_Patch_5.0.2Vizit0r wrote:а это прицел?
так напиши свой стелс, делов то...Quleebeen wrote:Проблема: на шарде X не корректно работает функция Y (в частности - MoveItem, но по сути неважно какая), а через графический клиент ручками - все получается ок.
Решение: послать из стелс-клиента точную копию пакета, который создал родной клиент (предварительно перехватить и скопировать его вручную в логе совсем не сложно)
Запрос: Нужна функция а-ля SendRawPacket(...) в стелс клиенте, которая обернет и отправит по нужному адресу предварительно перехваченную вручную в логах последовательность байт (задавать последовательность можно например через массив byte[], или как строку "0xD6 0x00 0xD7 0x00 ..." перепечатывая ее из HEX редактора, что удобно).
PS Если что - могу помочь с реализацией этого в коде. Мощнейший же по сути инструмент получится, и универсальный, позволяющий не дожидаться фиксов багов клиента или сервера, и реализовывать что угодно.
PPS Если подобное уже возможно, не сочтите за труд - ткните меня носом как. Облазил форумы, изгуглил все вдоль и поперек - не нашел. Ну или запросы формулировал некоректно. Буду признателен за инормацию по этому вопросу.
Ты серьезно? Ты вообще вчитывался в мое сообщение?drabadan wrote: так напиши свой стелс, делов то...
Как поддержитьва "тысячу кастомных" стелсов?
Не проще тогда просить девелоперов выложить на гитхаб в паблик исходники стелса.
про кастомные и правда не вчитывался!Quleebeen wrote:Ты серьезно? Ты вообще вчитывался в мое сообщение?drabadan wrote: так напиши свой стелс, делов то...
Как поддержитьва "тысячу кастомных" стелсов?
Не проще тогда просить девелоперов выложить на гитхаб в паблик исходники стелса.
Спасибо за совет "по существу". Прям как я просил.
"Написать собсный клиент" на любою проблему - это "пять"! Code reuse? Нет, не слышал.
Ради одного небольшого, но универсального дополнения функционала - писать с нуля решение. Прелесно.
Я точно темой не ошибся? Тут feature request topic или где?
Покажи мне, где я говорил о "выложить, паблик, кастомных"???
Я всего лишь предложил свою помощь в реализации, потому что прекрасно понимаю что у человека может просто не быть свободного времени. А вносить это потом в релиз или нет - уже сам решит. Тебе понятие Pull Request знакомо??? А гитхабом или через приватную систему контроля версий - уже детали.
И что ты вообще там поддерживать собрался?
void SendRawPacket(...) или в худшем случае bool SendRawPacket(...) даже значения не возвращает по сути, так - "получилось/не получилось". Обернула нужные нам байты в сетевой пакет, послала серверу, забыла. /facepalm
Были б сорцы в гитхабе - даже постить тут бы не стал, молча сделал бы все что надо, форкнул бы свой стелс и радовался. А вместе со мной - все те, кому это пришлось бы по душе. Так что оставь такие советы себе.
И ты б фантазию поумерил. Так скоро миллионы форкнутых стелсов поддерживать захочешь. Сам проблему придумал, сам ужаснулся, и наводишь панику тут. Я чуть было сам не запаниковал. Но потом вспомнил про "git merge" и успокоился.
Не знаешь как это реализовать в текущем билде - просто промолчи, ответит кто знает или будет видно, что никто не знает.
PS Многие проекты от перехода в OpenSource выигрывали, так что это и правда могло быть проще. Но тут не мне и не тебе решать, а владельцу кода, так что бессмысленно это даже обсуждать.
Да криптования там вообще нет, снято. Дело точно не в этом.drabadan wrote: А на том шарде все работает кроме 1 функции? Может проблема не в пакетах а енкрипт етих пакетов?
Quleebeen wrote:Да криптования там вообще нет, снято. Дело точно не в этом.drabadan wrote: А на том шарде все работает кроме 1 функции? Может проблема не в пакетах а енкрипт етих пакетов?
Похоже на личностное своеобразие сервера.
Со стандартными контейнерами перемещения ок, а вот зарядить рунбуку бросив в нее предмет через MoveItem уже не получается. Предмет вообще исчезает в неведомом направлении
Раньше работало, после изменений на сервере - перестало. Хотел обойти это тупо подделав пакет.
Если еще есть варианты зарядить рунбуку скроллами - велкам, любой совет приветствуется.
А то я уже все перебрал... Ну кроме отсылки пакетов.
PS Да понятно что подобная функция только для продвинутых, на свой страх и риск. Но я бы рискнул
Code: Select all
DropItem
function DropItem(MoveIntoID : Cardinal; X,Y,Z : Integer) : Boolean
Бросить вещь из рук в место, куда вы укажете.
Ф-ция вернет false если у вас в руках ничего нету.
Если MoveIntoID = Ground, то кинет на землю с указанными координатами.
Если MoveIntoID не существует, то кинет в бекпак вашего персонажа.
В случае "земли" работают относительные координаты.
В случае если MoveIntoID - контейнер, то кинет его как в контейнер.
Если MoveIntoID - айтим, то клиент попытается состыковать айтимы.
В случае нулевых координат - клиент сам попытается подставит нужные.
Важно: Обратите внимание, что эта ф-ция просто бросает предмет из рук, а не перемешает его в другой контейнер.
Также не забывайте, что эта ф-ция должна использоваться только в паре с DragItem.
а ты возьми и тупо скажи мне какой "правильный" пакет шлет клиент, и как "криво" шлет стелс.Quleebeen wrote: Со стандартными контейнерами перемещения ок, а вот зарядить рунбуку бросив в нее предмет через MoveItem уже не получается. Предмет вообще исчезает в неведомом направлении
Раньше работало, после изменений на сервере - перестало. Хотел обойти это тупо подделав пакет.
Конечно пробовал! И все остальные перемещающие функции тоже, с разными прараметрами. И не мог вкурить где засада.drabadan wrote: ...
пробовал?
http://stealth.od.ua/Doc:RU/Manual/Refe ... e#DropItem
покажи пакет в хекс виде...
Code: Select all
!>DC, !A1, !3C, !24, !22, !AE, !11, !1A, !1C, !1D, !6E, !77, !D6, !BF 00 09 00 10, !<73, !09, !6C, !06, !02, !54, !BF
Вот эти ребята (пакеты от клиента UO):Vizit0r wrote: а ты возьми и тупо скажи мне какой "правильный" пакет шлет клиент, и как "криво" шлет стелс.
Вангую что все это решается выставлением правильных параметров.
Code: Select all
14:47:29:374: Player, Client -> Server: 0x07, len: 7
0000: 07 41 0A 63 9B 00 01 .A.c...
14:47:30:073: Player, Client -> Server: 0x08, len: 15
0000: 08 41 0A 63 9B FF FF FF FF 00 00 40 00 A8 34 [email protected]
Code: Select all
AddToSystemJournal('+ Test Start +');
if FindType($22C5, Backpack) > 0 then
RuneBookID := FindItem;
AddToSystemJournal(' RuneBookID: '+IntToStr(FindItem));
if FindType($1F4C, Backpack) > 0 then begin // scroll
AddToSystemJournal(' RecallScrollID: '+IntToStr(FindItem));
if DragItem(FindItem, Backpack) then
AddToSystemJournal(' * DragItem *');
//if DropItem(RuneBookID, -1, -1, 0) then
//if DropItem(RuneBookID, $FFFF, $FFFF, 0) then
if DropItem(RuneBookID, 65535, 65535, 0) then
AddToSystemJournal(' * DropItem *');
end;
AddToSystemJournal('- Test End. -');
Code: Select all
16:21:22:390: Player, Client -> Server: 0x07, len: 7
0000: 07 40 4C 43 4C 00 01 .@LCL..
16:21:22:571: Player, Client -> Server: 0x08, len: 15
0000: 08 40 4C 43 4C 00 2F 00 4C 00 00 40 00 A8 34 .@LCL./[email protected]