Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг
Войти через OpenID

Скриптинг Форум посвещенный созданию скриптов для L2PacketHack

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 12.12.2009, 21:17   #1
Новичок
 
Регистрация: 12.12.2009
Сообщений: 6
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
Martin пока неопределено
По умолчанию Диалог с НПС

Вопрос такого характера.
Интересует реализация диалога с НПС.
а именно , написал все алгоритм примерно такой
как только пришел пакет о таргете, отправляем опять экшен
пришел НТМЛ от НПС, проверили что именно тот НТМЛ
отправляем команду что нужно нажать
приходит НТМЛ от НПС, отправляем команду
и вот тут загвоздка

если делать через таймер то диалоги работают, пытался как выше описано по принятому пакету с ХТМЛ от сервера и не получается
может кто подскажет или выложет примерный код реализации диалога до 3 - 4 уровня вложения
Martin вне форума   Ответить с цитированием
Старый 12.12.2009, 21:35   #2
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

не знаю как ты делал, но вот это простейшее и работать должно.
главное правильно задавать ключевые фразы которые бы были присущи только этому диалогу и соблюдать регистр.

delphi Код:
var npcoid : integer; html, cmd : string; Timer:ttimer; procedure init; begin   useforconnectname := 'ИмяСоединения';   timer := ttimer.create(nil);   timer.enabled := false;   timer.interval := 300;   timer.ontimer := @TimerHandler; end; procedure free; begin   timer.free; endprocedure TimerHandler(Sender:tobject); begin     timer.enabled := false;     buf := #$23;     writes(cmd);     sendtoserver;    end; begin if fromserver and (pck[1] = #$19) then begin npcoid := readd(2); html := reads(6); if (pos('Trader Silvia', html)>0) and (pos('Buy Accessories', html)>0) then   begin     cmd:= format('npc_%d_Buy 3000300',[npcoid]);     timer.enabled := true;     exit;   end; if pos('Ключевая фраза', html)>0 then   begin     cmd := format('действие_%d_действие',[npcoid]);     timer.enabled := true;     exit;   end; end; end.
__________________
L2Ext - project closed.

Последний раз редактировалось alexteam, 13.12.2009 в 20:14.
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился 2 спасибками от:
Старый 13.12.2009, 18:56   #3
Новичок
 
Регистрация: 12.12.2009
Сообщений: 6
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
Martin пока неопределено
По умолчанию

Спасибо что ответили
Но все равно не получается.
l2phx использую версия 3.5.28.151, можно скачать и последней версии но думаю разницы не будет

я пишу все тоже самое как вы и предложили, но не получается вот почему

пакет с командой что нужно сделать уходит до того как пакет с сервера с ХТМЛ попадает в клиент.

Вообщем если все сделать через таймер задержка в 300мс. то после получения пакета с сервера, если пакет тот, то команда отсылается через таймер на сервер и все работает. Не знаю с чем связано, думаю тут много ГУРУ которые знают это.
Martin вне форума   Ответить с цитированием
Старый 13.12.2009, 20:14   #4
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

Цитата:
пакет с командой что нужно сделать уходит до того как пакет с сервера с ХТМЛ попадает в клиент.
Но сервер то об этом не знает. он отослал пакет хтмла клиенту, и получил ответ. для него все выглядит так как и должно выглядеть. разве что на сервере есть контроль скорости ответа на диалог.

Добавлено через 5 минут
Поправил скрипт.
__________________
L2Ext - project closed.

Последний раз редактировалось alexteam, 13.12.2009 в 20:16. Причина: Добавлено сообщение
alexteam вне форума   Ответить с цитированием
Старый 14.12.2009, 01:16   #5
Новичок
 
Регистрация: 12.12.2009
Сообщений: 6
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
Martin пока неопределено
По умолчанию

Ну я так и сделал.
Просто опыта маловато в написании скриптов для серверов, поэтому думал мало ли руки кривые))))

Спасибочки за ответ
Martin вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг



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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 00:17.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!