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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 31.01.2008, 21:23   #11
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

Цитата:
Сообщение от АрхиНуб
Сейчас поэксперементирую с YesFree... вызову его из другой процедуры может чего и получится...
кстати я тут подумал, задать для какого соединения выполнять YesFree... можно выполнив перед её вызовом ConnectID:=0; например
так что NoFreeOnClientDisconnectEX опять начинаю считать ненужным)
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 01.02.2008, 02:27   #12
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 52
Сказал Спасибо: 22
Имеет 16 спасибок в 9 сообщенях
ChiterEPT
По умолчанию

Цитата:
Сообщение от xkor
так что NoFreeOnClientDisconnectEX опять начинаю считать ненужным)
Да ф топку его :D С этим уже разобрались. Я его не оттуда откуда надо вызывал =)
ChiterEPT вне форума   Ответить с цитированием
Старый 01.02.2008, 08:34   #13
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Цитата:
Сообщение от xkor
сначала не обратил внимания, эти процедуры нельзя вызывать внутри процедур Init или Free ибо они действуют на соединение для которого они вызваны а Init и Free непривязаны к конкретному соединению!
Я же говорил!!!
Цитата:
Сообщение от lQaKl
2) Попробуй прописать не во Free, а отдльную процедурку сделай, которая будет вызываться, например, при определенных условиях(тыркнул кнопку,конец скрипта).
а ты мне не верил =)
QaK вне форума   Ответить с цитированием
Старый 01.02.2008, 14:15   #14
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 52
Сказал Спасибо: 22
Имеет 16 спасибок в 9 сообщенях
ChiterEPT
По умолчанию

Цитата:
Сообщение от lQaKl
:friends: :beer:
Гы офтоп развели =) А если честно то процедуры YesFree у меня и так и так соединения не разрывают.

Добавлено спустя 3 минуты 30 секунд:
У кого корректно работаю процедуры YesFreeOnClientDisconnect; YesFreeOnServerDisconnect; напишите тут, откуда вы их вызываете?
ChiterEPT вне форума   Ответить с цитированием
Старый 01.02.2008, 14:38   #15
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Цитата:
Сообщение от АрхиНуб
У кого корректно работаю процедуры YesFreeOnClientDisconnect; YesFreeOnServerDisconnect; напишите тут, откуда вы их вызываете?
Если успею - дома сегодня проверю ...
QaK вне форума   Ответить с цитированием
Старый 18.02.2008, 01:51   #16
Новичок
 
Аватар для scorpio818
 
Регистрация: 04.12.2007
Сообщений: 6
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
scorpio818
По умолчанию

Код:
     //оставлять саппорта в игре после закрытия клиента или нет
     if SupportPlus and (not SupportFlag) and (ConnectName = Support) then begin
         ConnectID:=ConnectIDByName(Support);
         NoFreeOnClientDisconnect;
         NoFreeOnServerDisconnect;
         SendMsgEx('Режим Маклауда включен...',ConnectName);
         SupportFlag:=true;
     end;
При выполнении этого куска кода сообщение получает именно саппорт, но при закрытии клиента с саппортом в L2PH соединение с именем саппорта остается, а чар из игры выходит (наблюдаю из второго окна).

Раньше (буквально несколько дней назад) NoFreeOnClientDisconnect; и NoFreeOnServerDisconnect; у меня сидели в Init; и всё работало так, как предполагалось, т.е. при закрытии окна с саппортом тот оставался в игре. Потом что-то поломалось и саппорт стал из игры вылетать сразу по закрытию окна. Я полез сюда читать тонкости использования, в результате чего родился вышеприведённый кусок кода, вставленный в основное тело скрипта. Но саппорт по-прежнему вылетает...

p.s. Там лишняя перестраховка (ConnectID:=ConnectIDByName(Support) но это уже от безысходности... Ведь работало же! В чем может быть причина?
scorpio818 вне форума   Ответить с цитированием
Старый 18.02.2008, 08:23   #17
Гость
 
Сообщений: n/a
По умолчанию

Возможно на сервер посылается логаут...
Вот рабочий кусок из моего скрипта
Код:
  if FromClient and (ConnectName=Name) and (pck[1]=#$1B) then begin
    case ReadD(2) of //SocialID
      //социальное действие Yes для начала
      6: begin
            if ready then begin
             pck:='';
             NoFreeOnClientDisconnect;
             NoFreeOnServerDisconnect;
             //started:=true;
             //timer1.enabled:=true;
             buf:=#$7E; //LogOutOk
             SendToClientEx(Name);
            end;
      end;
    end;
  end;
  Ответить с цитированием
Старый 18.02.2008, 12:52   #18
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 52
Сказал Спасибо: 22
Имеет 16 спасибок в 9 сообщенях
ChiterEPT
По умолчанию

Цитата:
Сообщение от ratvier
Возможно на сервер посылается логаут...
Цитата:
Сообщение от scorpio818
Раньше (буквально несколько дней назад) NoFreeOnClientDisconnect; и NoFreeOnServerDisconnect; у меня сидели в Init; и всё работало так, как предполагалось, т.е. при закрытии окна с саппортом тот оставался в игре.
Судя по всему у Скорпиона818 и раньше на сервер посылался логаут и все работало. Вообще на своей практике заметил, что сервера, как правило, не закрывают соединения при получении пакета ЛогАут от клиента, они просто проверяют возможность выхода из игры и если выход возможен сервер отсылает клиенту пакет 7Е ЛогАутОк и клиент уже сам разрывает соединение. Хотя конечно возможны исключения, где сервер получив пакет ЛогАут от клиента проверит возможно ли разорвать соединение и в случае положительного ответа разорвет его сам (врядли).

Проверь вариант предложенный ratvierом. Конечно трудно назвать этот кусок ЕГО куском от скрипта (уж больно он напоминает немного измененный кусок скрипта из темы "ДА БУДЕТ БОТ") ну неважно :)

P.S.
Цитата:
Сообщение от scorpio818
Режим Маклауда включен...
Улыбнуло :D
ChiterEPT вне форума   Ответить с цитированием
Старый 18.02.2008, 18:41   #19
Местный
 
Регистрация: 18.02.2008
Сообщений: 141
Сказал Спасибо: 16
Имеет 66 спасибок в 30 сообщенях
ratvier
По умолчанию


Цитата:
Конечно трудно назвать этот кусок ЕГО куском от скрипта (уж больно он напоминает немного измененный кусок скрипта из темы "ДА БУДЕТ БОТ")
Это была моя первая попытка отвечать на пинги, сейчас работает более элегантно, но не идееально
зы решил всё-таки зарегиться :)
ratvier вне форума   Ответить с цитированием
Старый 20.02.2008, 04:20   #20
Новичок
 
Аватар для scorpio818
 
Регистрация: 04.12.2007
Сообщений: 6
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
scorpio818
По умолчанию Re:

Цитата:
Сообщение от ratvier
Возможно на сервер посылается логаут...
Именно так и было. Вот рабочий вариант:
Код:
     if SupportPlus and (ConnectName = Support) then begin
         if not SupportFlag then begin
             ConnectID:=ConnectIDByName(Support);
             NoFreeOnClientDisconnect;
             NoFreeOnServerDisconnect;
             SendMsgEx('Режим Маклауда включен...',ConnectName);
             SupportFlag:=true;
         end;
         if FromClient and (pck[1] = Logout) then begin
             pck:=''; //не пропускать на сервер Logout от клиента
             buf:=LogOutOk;
             SendToClient; //сказать клиенту, что логаут разрешен
         end;
     end;
scorpio818 вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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