PDA

Просмотр полной версии : Алгоритмы или описания последовательности действий


NLObP
17.05.2008, 05:05
Есть предложение в этой теме собирать алгоритмы или подробное описание какого нибудь полезного для реализации процесса. Предлагается формат сообщений.
Алгоритм такой то:
сам алгоритм
и всё.


Проверено на практике, в скрипте рыбалки.
продажа состоит из следующих шагов:
1. таргет на продавце, пауза, снова таргет (c04=Action, c04=Action)
2. приходит s0F=NpcHtmlMessage:d(MessageID)s(HTML)d(d)
3. шлём выбранный пункт из меню c21=RequestBypassToServer:s(Cmd)
4. приходит s10=SellList:d(Money)h(ListID)w(ListCount)w(ItemTy pe1)h(ObjectID)i(ItemID)d(Count)w(ItemType2)w(h)d( ItemBodyPart)...
5. FindItem(ID) найдем OID, Count нужной вещи по ID
6. шлем c1E=RequestSellItem:h(ListID)d(SellCount)h(ObjectI D)i(ItemID)d(Count)

покупка состоит из следующих шагов:
1. таргет на продавце, пауза, снова таргет (c04=Action, c04=Action)
2. приходит s0F=NpcHtmlMessage:d(MessageID)s(HTML)d(d)
3. шлем выбранный пункт из меню c21=RequestBypassToServer:s(Cmd)
4. приходит s11=BuyList:d(Money)h(ListID)w(ListCount)w(ItemTyp e1)h(ObjectID)i(ItemID)d(maxcnt)w(ItemType2)w(h)d( ItemBodyPart)...
5. FindItem(ID) найдем OID, Count нужной вещи по ID
6. шлем c1F=RequestBuyItem:h(ListID)d(BuyCount)i(ItemID)d( Count)i(ItemID)d(Count)

обмен состоит из следующих шагов:
1. таргет на продавце, пауза, снова таргет (c04=Action, c04=Action)
2. приходит s0F=NpcHtmlMessage:d(MessageID)s(HTML)d(d)
3. шлем выбранный пункт из меню c21=RequestBypassToServer:s(Cmd)
4. приходит sD0=MultiSellList:d(listId)d(page_beg)d(page_end)d (onpage)d(entrycount)d(EntryId)b(?)w(prodcount)w(i temcount<)w(pItemId)d(?)w(ptype2)...
5. FindItem(ID) найдем OID, Count нужной вещи по ID
6. шлем cA7=RequestMultiSellChoose:h(ListID)d(EntryID)d(Am ount)

poizon
19.05.2008, 11:26
встать из сидячего положения(покупка/продажа/просто сидит)interlude
1.команда подняться (если сидит то это пакет 45 00 00 00 00 00 00 00 00 00, если продаёт то это пакет 73, если покупает то это пакет 90)
2.отправить пакет validateposition 48 d(myX)d(myY)d(myZ)d(header)d(data)
myx myy myz это координаты персонажа нынешние, хеадер и дата можно получить посмотрев что отправляет клиент серверу сам.

сесть(начать продавать покупать или сесть)interlude
1.команда сесть или продавать или покупать (сесть пакет 45 00 00 00 00 00 00 00 00 00, продавать 73 покупать 90)
3.если это магазин то посылается(опционально) пакет с призывом лавочки, для покупки это buf:=#$94 WriteS(name);
для продажи это buf:=#$77 WriteS(name);
4.если это магазин то посылается пакет со списком предметов, покупаем - пакет 91 d(itemsCount) d(itemID1) d(0) d(itemCount1) d(itemPrice1) d(itemIDN) d(0) d(itemCountN) d(itemPriceN) ... ...
в пакете количество вещей на покупку далее идет повторяющаяся последовательность байтов ид вещи (не object id ) 4 байта пустых d(0) количество покупаемого, и прайс.
для продажи это пакет 74 d(0) d(listcount) d(Oid1) d(count1) d(price1) d(oidN) d(countN) d(priceN)
номер пакета(74) далее 4 пустых байта D(0) делаее количество продаваемых предметов, далее Objectid предмета(не просто ИД предмета) ну собственно далее количество и прайс, три последних d() повторяются в зависимости от количества продаваемого)
после отправки пакета с листом предметов он сам садится.
5.после того как персонаж сел(сел,покупать,продавать) посылается пакет validatepoosition (см.выше) и пакет validaterotate (или как его) вот пакет - buf:=#$4B d(degree) d(rconst).угол поворота персонажа, я беру его от клиента предварительно сев встав, и далее константа тоже беру от клиента.задержка между пакетами думаю не более 100мс.