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

L2PacketHack Форум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела! Обсуждение багов Lineage ЗАПРЕЩЕНО!

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 19.06.2009, 22:48   #1
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 36
Сказал Спасибо: 13
Имеет 17 спасибок в 15 сообщенях
ПолуГость2 пока неопределено
По умолчанию Что нах за магия вуду???

Вот ЧТО может быть неправильно в таком скрипте? Я ля уже в шоке.

Код:
var
	NickName : String;

procedure Init;
begin
	NickName := 'lalala'; // тут все как надо
end;

procedure Free;
begin
	
end;

//====================================================================================
procedure getYes;
begin
	buf:=#$4A; WriteD(0); WriteD(10); WriteS(''); WriteS('Прошло YES'); SendToClient;
	pck := '';
end;

//====================================================================================
procedure getNo;
begin
	buf:=#$4A; WriteD(0); WriteD(10); WriteS(''); WriteS('Прошло NO'); SendToClient;
	pck := '';
end;

//====================================================================================
//====================================================================================
begin
	if pck = '' then exit;
	if (ConnectName = NickName) and FromClient then begin
		if (pck[1]=#$34) and (pck[2]=#$06) then getYes;
		if (pck[1]=#$34) and (pck[2]=#$05) then getNo;
	end;

end.
Если нажать Yes, проходит:
Код:
(c) CreatureSay (4A 00 00 00 00 0A 00 00 00 00 00 1F 04 40 04 3E 04 48 04 3B 04 3E 04 20 00 59 00 45 00 53 00 00 00 )
(c) CreatureSay (4A 00 00 00 00 0A 00 00 00 00 00 1F 04 40 04 3E 04 48 04 3B 04 3E 04 20 00 59 00 45 00 53 00 00 00 )
(s) RequestSocialAction (34 06 00 00 00 )
(c) SocialAction (27 2F 37 02 10 06 00 00 00 )
Если нажать No, проходит:
Код:
(c) CreatureSay (4A 00 00 00 00 0A 00 00 00 00 00 1F 04 40 04 3E 04 48 04 3B 04 3E 04 20 00 4E 00 4F 00 00 00 )
(c) CreatureSay (4A 00 00 00 00 0A 00 00 00 00 00 1F 04 40 04 3E 04 48 04 3B 04 3E 04 20 00 4E 00 4F 00 00 00 )
Притом CreatureSay идет дважды, хотя клиент рисует анонс один раз.

Я это обнаружил когда по Yes отправлял на сервер запрос - мало того, что не блокировался Yes, так и запрос проходил ДВАЖДЫ, хотя в коде, разумеется, отправка была одна-единственная. Либо я чего-то важного не понимаю, либо l2ph косячит, либо одно из трех.

З.Ы. l2phx.3.5.11.118
ПолуГость2 вне форума   Ответить с цитированием
Старый 19.06.2009, 23:09   #2
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

эм...
обнулять буффер раньше отправки..
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 19.06.2009, 23:26   #3
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

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


NLObP вне форума   Ответить с цитированием
Старый 19.06.2009, 23:58   #4
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 36
Сказал Спасибо: 13
Имеет 17 спасибок в 15 сообщенях
ПолуГость2 пока неопределено
По умолчанию

alexteam
Не помогает.

NLObP
Как можно быть в этом уверенным? Кстати, в других скриптах такого не замечал...
ПолуГость2 вне форума   Ответить с цитированием
Старый 20.06.2009, 00:05   #5
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

ну, на вскидку могу сказать только 2 места где пакет отправляется это пропуск пакета скриптами (pck не был обнулен) и отработка SendToxxx
так что отправляет он действительно ровно столько раз сколько от него требуется...
с отрисовкой немного посложнее.. пакет сначала добавляется в акумулятор дня отрисовки а поом уже с него забирается.. там я могу накосячить
да и
Цитата:
Притом CreatureSay идет дважды, хотя клиент рисует анонс один раз.
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 20.06.2009, 00:24   #6
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 36
Сказал Спасибо: 13
Имеет 17 спасибок в 15 сообщенях
ПолуГость2 пока неопределено
По умолчанию

ППЦ, это магия!!!
пх 3.4.1.83 на yes выдает Access violation по гениальному адресу 13232819 (что-то читает адрес 0), _до_ того, как отправляет-таки на сервер yes, creature say срабатывает один раз. Для No все ок.

Добавлено через 3 минуты
Если обойтись без анонсов, то все равно access violation при yes, проблема конкретно в нем. Перейду на другое соц. действие Двойную отправку считаем фантомом, тем более, что в 3.4.1.83 ее вроде нет...

Добавлено через 12 минут
ААААААААААААААААААААААААААААА, бля, я понял!!!
Проблема в том, что при yes срабатывает вызов, pck чистится, и после возврата следующий if лезет в несуществующие элементы срокового массива, а дальше уж неизвестно что происходит, но плохое. Если скрипт сделать с отложенным удалением, все ок. (ну кроме двойной отправки, которую мы считаем кажущейся)

Это, ребята, надо в доку вносить, это может быть системой...

Код:
var
	NickName : String;
	killPacket:Boolean;

procedure Init;
begin
	NickName := 'userName';
end;

procedure Free;
begin
	NickName := '';
	killPacket := false;
end;

//====================================================================================
procedure getNo;
begin
	killPacket := true;
end;

//====================================================================================
procedure getYes;
begin
	killPacket := true;
end;

//====================================================================================
//====================================================================================
begin
	if pck = '' then exit;
	if (ConnectName = NickName) and FromClient then begin
		if (pck[1]=#$34) and (pck[2]=#$06) then getYes;
		if (pck[1]=#$34) and (pck[2]=#$05) then getNo;
	end;

	if (killPacket) then pck := '';
	killPacket := false;
end.

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

Цитата:
Сообщение от ПолуГость2 Посмотреть сообщение
Access violation
это первый признак, что шлеш пакеты не в то соединение (Name не соответствует чару).
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 20.06.2009, 00:33   #8
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

Мухахха.. не поверишь.. я пошел покурил.. попутно спросил себя - а почему не кейс... и потом уже понял откуда аксесвиолейшин брался.
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 20.06.2009, 00:39   #9
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 36
Сказал Спасибо: 13
Имеет 17 спасибок в 15 сообщенях
ПолуГость2 пока неопределено
По умолчанию

if потому что лениво два символа вырезать или переприсваивать, что, кстати, решило бы проблему...
ПолуГость2 вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack



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

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


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

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

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