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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 31.01.2010, 05:30   #1
Местный
 
Аватар для kpa9pt
 
Регистрация: 13.01.2010
Сообщений: 159
Сказал Спасибо: 18
Имеет 30 спасибок в 23 сообщенях
kpa9pt имеет немного плохого в прошлом
По умолчанию Пакет от клиента или от сервера

В общем столкнулся с проблемой сделал скрипт, на нём поставил условие, что если от клиента идёт соц действие, то отослать на сервер пакет:
жму соц действие - на сервер шлётся пакет, всё нормально

делаю скрипт сложнее и нахожу вещь такую, что, если более простым языком, то засунув пакет соц действия в посылку, условие не выполняется, в скрипте это выглядит так, например чар что-то делает и в определённый момент подходит к нпс...ставлю чтоб когда он стоял в точке с координатой x y z(около нпс) , он писал в чат что-либо(то есть пакет от клиента) и условие, когда от клиента пакет (на сообщение), чтоб делал что-то, результат - не работает, но если в условие ставить пакет от сервера который показывает, что чар мой, что-то написал, то пашет.

Вот вопрос - дело в условии ? нельзя ставить в данном случае fromclient? или что ?я не пойму...
Была догадка что, когда шлём пакет с программы, это не совсем является пакетом от клиента, мб бред, но это единственное что приходит на ум.

Коды скриптов не выкладывают потому, что это для любого случая.
kpa9pt вне форума   Ответить с цитированием
Старый 02.02.2010, 00:32   #2
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

kpa9pt, код выложи, чтобы понятно стало, что делаешь.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 02.02.2010, 00:41   #3
Местный
 
Регистрация: 08.05.2008
Сообщений: 107
Сказал Спасибо: 6
Имеет 12 спасибок в 6 сообщенях
finomen пока неопределено
По умолчанию

пакет отправляет оди скрипт, а ловишь в другом? тогда, если не ошибаюсь, пакеты проходят цепочку скритов от первого в списке к последнему начиная с отправившего скрипт
__________________
Intel® Core™2 Duo Processor E6400 @ 2.64GHz
Nvidia GeForce 9800GT
3 G Ram
1T HDD
Gentoo Linux x64
finomen вне форума   Ответить с цитированием
Старый 02.02.2010, 01:08   #4
Местный
 
Аватар для kpa9pt
 
Регистрация: 13.01.2010
Сообщений: 159
Сказал Спасибо: 18
Имеет 30 спасибок в 23 сообщенях
kpa9pt имеет немного плохого в прошлом
По умолчанию

вот написал только-что результат на лицо.
Скрипт устроен так(чтоб вы голову особо не забивали) если от клиента приходит пакет say то чар шлёт на сервер пакет p1, в моём случае say - сказать в чат "сесть" , а p1 - пакет на то чтоб сесть.
Врубаем скрипт в нём каждые 6000милисекунд отправляеться на сервер пакет say, и чар пишет в чат "сесть", но пакет p1 не шлёться на сервер, но стоит мне с клиента самому набрать в чате "сесть" тоесть отправить пакет say вручную , то чар садиться, вот код:

delfi Код:
const p1='56 00 00 00 00 00 00 00 00 00'; nik='JealouS'; say='49 41 04 35 04 41 04 42 04 4C 04 00 00 00 00 00 00'; var i:integer; timer:TTimer; timer2:TTimer; procedure Init;           begin                timer:=TTimer.Create(nil);                timer.OnTimer:=@OnTimer;                timer.enabled:=false;                timer.interval:=3000;                timer2:=TTimer.Create(nil);                timer2.OnTimer:=@OnTimer2;                timer2.enabled:=true;                timer2.interval:=6000;                end; procedure OnTimer(Sender: TObject);           begin                buf:=hstr(p1);                SendToServerex(nik);                timer.enabled:=false;           end; procedure OnTimer2(Sender: TObject);           begin                buf:=hstr(say);                SendToServerex(nik);           end; procedure Free;           begin                timer.Free;                timer2.Free;            end; begin if fromclient and (ConnectName=nik) and (pck=hstr(say)) then timer.enabled:=true; end.
kpa9pt вне форума   Ответить с цитированием
Старый 02.02.2010, 01:15   #5
Местный
 
Регистрация: 08.05.2008
Сообщений: 107
Сказал Спасибо: 6
Имеет 12 спасибок в 6 сообщенях
finomen пока неопределено
По умолчанию

скрипт не получит пакет, который отправил. никогда.
__________________
Intel® Core™2 Duo Processor E6400 @ 2.64GHz
Nvidia GeForce 9800GT
3 G Ram
1T HDD
Gentoo Linux x64
finomen вне форума   Ответить с цитированием
Старый 02.02.2010, 01:37   #6
Местный
 
Аватар для kpa9pt
 
Регистрация: 13.01.2010
Сообщений: 159
Сказал Спасибо: 18
Имеет 30 спасибок в 23 сообщенях
kpa9pt имеет немного плохого в прошлом
По умолчанию

Цитата:
Сообщение от finomen Посмотреть сообщение
скрипт не получит пакет, который отправил. никогда.
Но почему в записе пакетов видно что от клиента исходит этот пакет, но условие скрипта не реагирует...это можно как-обойти?
kpa9pt вне форума   Ответить с цитированием
Старый 02.02.2010, 10:38   #7
Пользователь
 
Регистрация: 01.12.2009
Сообщений: 32
Сказал Спасибо: 0
Имеет 14 спасибок в 12 сообщенях
sinles пока неопределено
По умолчанию

отправляемый скриптом пакет к этому же скрипту не приходит. Это вполне логично иначе возможна была ситуация зацикливания на одном пакете (обработка - отправка - обработка -отправка). У вас получится только если вы напишете 2 скрипта, один управляющий, второй исполняющий. То есть в чат сесть писать будет один скрипт, а исполнять это другой. С одной стороны, а с другой если это в пределах одного скрипта, то зачем ставить такой изощренный метод, почему не написать так:
procedure OnTimer2(Sender: TObject);
begin
OnTimer;
end;
результат будет одинаковый
sinles вне форума   Ответить с цитированием
Старый 02.02.2010, 13:00   #8
Местный
 
Аватар для kpa9pt
 
Регистрация: 13.01.2010
Сообщений: 159
Сказал Спасибо: 18
Имеет 30 спасибок в 23 сообщенях
kpa9pt имеет немного плохого в прошлом
По умолчанию

Цитата:
Сообщение от sinles Посмотреть сообщение
отправляемый скриптом пакет к этому же скрипту не приходит. Это вполне логично иначе возможна была ситуация зацикливания на одном пакете (обработка - отправка - обработка -отправка). У вас получится только если вы напишете 2 скрипта, один управляющий, второй исполняющий. То есть в чат сесть писать будет один скрипт, а исполнять это другой. С одной стороны, а с другой если это в пределах одного скрипта, то зачем ставить такой изощренный метод, почему не написать так:
procedure OnTimer2(Sender: TObject);
begin
OnTimer;
end;
результат будет одинаковый
Мне это нужно совершенно для другого скрипта) где кокрас это пригодиться, щас попробую в 2 скрипта написать.

Нет с двумя скриптами тоже не выходит...

Последний раз редактировалось kpa9pt, 02.02.2010 в 13:07.
kpa9pt вне форума   Ответить с цитированием
Старый 03.02.2010, 11:11   #9
Местный
 
Регистрация: 08.05.2008
Сообщений: 107
Сказал Спасибо: 6
Имеет 12 спасибок в 6 сообщенях
finomen пока неопределено
По умолчанию

у тебя в окне скриптов справа список. так вот пакеты обрабатываются в порядке живой очереди (сверху вниз)
а вообще-нафига тебе это? хреновый способ обмена данными...
__________________
Intel® Core™2 Duo Processor E6400 @ 2.64GHz
Nvidia GeForce 9800GT
3 G Ram
1T HDD
Gentoo Linux x64
finomen вне форума   Ответить с цитированием
Старый 03.02.2010, 12:50   #10
Местный
 
Аватар для kpa9pt
 
Регистрация: 13.01.2010
Сообщений: 159
Сказал Спасибо: 18
Имеет 30 спасибок в 23 сообщенях
kpa9pt имеет немного плохого в прошлом
По умолчанию

Цитата:
Сообщение от finomen Посмотреть сообщение
у тебя в окне скриптов справа список. так вот пакеты обрабатываются в порядке живой очереди (сверху вниз)
а вообще-нафига тебе это? хреновый способ обмена данными...
Мне нужно было зациклить несколько скриптов.
Пакеты от клиента, которые про те, что я вас спрашивал, они (соц действия, текст в чат, там ещё, что нить мб) не меняются у меня на сервере при рестарте, что очень удобно - не надо делать что-то дополнительного перед включением или выключением, а поскольку от клиента не работает приходиться брать от сервера , а они меняются при рестартах из-за смены char id. Вот зачем мне надо).
kpa9pt вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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