Вернуться   CoderX :: Forums > Основные форумы > Курилка
Войти через OpenID

Курилка Флудим и шутим тут!

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 23.03.2017, 14:05   #1
Новичок
 
Регистрация: 25.08.2016
Сообщений: 21
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
wongerlt пока неопределено
По умолчанию [Lineage2] rGuard Interlude

Hello,
Any one tryed to adapt it on interlude?
Im trying, all work perfect except "Olympiad hero list tab" i get this error:
Цитата:
General protection fault!

History: UUIScript::execGetPledgeCrestTexFromPledgeCrestID <- UObject::ProcessEvent <- (HeroTowerWnd Transient.HeroTowerWnd0, Function Interface.HeroTowerWnd.OnEvent) <- XMLUIManager::ExecuteUIEvent <- NConsoleWnd::OnHeroList <- UGameEngine::OnHeroList <- ExHeroListPacket <- UNetworkHandler::Tick <- Function Name=ExHeroListPacke <- UGameEngine::Tick <- UpdateWorld <- MainLoop
Where can be problem?
rGaurd part of code:
Код:
void __cdecl new_SendPacket(unsigned int This, char *Format, ...)
{
	if(enumas==0)
		enumas=1;
	
	unsigned char buf[10240];
	int size = 0, len;
	wchar_t *wstr;

    va_list args;
	va_start(args, Format);

	while (*Format != 0)
	{
		
		switch (*Format)
		{
			case 'c':
				*(unsigned char*) (buf + size) = va_arg(args, unsigned char);
				size++;
				break;
			case 'h':
				*(unsigned short int*) (buf + size) = va_arg(args, unsigned short int);
				size += 2;
				break;
			case 'd':
				*(unsigned int*) (buf + size) = va_arg(args, unsigned int);
				size += 4;
				break;
			case 'Q':
				*(unsigned __int64*) (buf + size) = va_arg(args, unsigned __int64);
				size += 8;
				break;
			case 'b':
				len = va_arg(args, unsigned int);
				memcpy(buf + size, va_arg(args, void*), len);
				size += len;
				break;			
			case 'S':
				wstr = va_arg(args, wchar_t*);
				if (wstr == 0)
				{
					len = 2;
					*(unsigned short int*) (buf + size) = 0;
				}
				else
				{
					len = wcslen(wstr) * 2 + 2;
					memcpy(buf + size, wstr, len);
				}
				size += len;
				break;
			default:
				true_SendPacket(This, "cc", 0xA1, 0x04);
				ErrorExit("Send Packet Unknown Format!");
				break;
		}
		Format++;	
	}

	va_end(args);
	
	true_SendPacket(This, "b", size, (int)buf);
}

int __fastcall new_AddNetworkQueue(unsigned int This, unsigned int EDX, TNetworkPacket *NetworkPacket)
{
		if(enumas==0) enumas=1;
	if (SendPacket == NULL) {
				__asm {
			mov		ebx, ecx
				mov     ecx, [ebx + 0x48] ; see offset in disassembler
				mov     edx, [ecx]
				mov		_clientSocket, ecx
				mov     ecx, [edx + 0x68]; in disassembler too
				mov		_sendPacket, ecx;
		}
				true_SendPacket = (_SendPacket) splice((unsigned char*) _sendPacket, new_SendPacket);
				SendPacket = 1;
	}
return true_AddNetworkQueue(This, EDX, NetworkPacket);
}
wongerlt вне форума   Ответить с цитированием
Старый 23.03.2017, 19:12   #2
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

Код:
unsigned char buf = (unsigned char*)malloc(65535);
and
Код:
free(buf);
after
Код:
true_SendPacket(This, "b", size, (int)buf);
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
Старый 24.03.2017, 13:15   #3
Новичок
 
Регистрация: 25.08.2016
Сообщений: 21
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
wongerlt пока неопределено
По умолчанию

Цитата:
Сообщение от ScythLab Посмотреть сообщение
Код:
unsigned char buf = (unsigned char*)malloc(65535);
and
Код:
free(buf);
after
Код:
true_SendPacket(This, "b", size, (int)buf);
both codes after true_SendPacket...?

Now i get error about buf (unsigned char differs in levels of indirection from unsigned char[1024]) and about cannot convert from unsigned char* to unsigned char
wongerlt вне форума   Ответить с цитированием
Старый 28.03.2017, 13:20   #4
Новичок
 
Регистрация: 25.08.2016
Сообщений: 21
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
wongerlt пока неопределено
По умолчанию

Any one?

Добавлено через 1 час 12 минут
Ok, im fixed errors but same situtation im still get critical error on hero list in game.

Последний раз редактировалось wongerlt, 28.03.2017 в 13:20. Причина: Добавлено сообщение
wongerlt вне форума   Ответить с цитированием
Старый 29.03.2017, 12:23   #5
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

Либо забудь о программировании, либо начинай думать самостоятельно.
Код, который я тебе привел, элементарен и прост, если ты его не можешь понять и скомпилировать, то найми себе программиста, кто сделает это за тебя, а сам занимайся более полезными вещами.
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
Старый 30.03.2017, 02:55   #6
Местный
 
Регистрация: 22.10.2014
Сообщений: 122
Сказал Спасибо: 1
Имеет 8 спасибок в 7 сообщенях
alexov пока неопределено
По умолчанию

ща поцан такой русский выучит еще чтобы твой коммент прочитать))
я вот сам до сих пор не могу собраться за c++ взяться чтобы сплайсинг сделать))
alexov вне форума   Ответить с цитированием
Старый 30.03.2017, 21:30   #7
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

alexov, пацан, если хоть немного мозгов есть, то воспользуется переводчиком. К тому же это этого его проблемы, не мои, что он зашел на русский ресурс и здесь надеется, чтобы за него все решили.
Ну а ты если возьмешься за с++, то я так думаю, что осилишь как заюзать массив на 64к вместо жалких 10, которых для некоторых пакетов не хватает
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
Старый 31.03.2017, 03:30   #8
Местный
 
Регистрация: 22.10.2014
Сообщений: 122
Сказал Спасибо: 1
Имеет 8 спасибок в 7 сообщенях
alexov пока неопределено
По умолчанию

жестко как-то ты последнее время отвечаешь всем) злой стал))

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

а на с++ мне поди даже память выделять не придется, я хочу сделать просто коннектор: что приходит в функцию, то сразу в сокет записывать, отправлять себе по сети. а дальше уж на шарпе горы свернуть не вопрос)
alexov вне форума   Ответить с цитированием
Старый 31.03.2017, 08:09   #9
Пользователь
 
Регистрация: 14.07.2016
Сообщений: 59
Сказал Спасибо: 6
Имеет 10 спасибок в 9 сообщенях
Smwr на пути к лучшему
По умолчанию

Цитата:
Сообщение от alexov Посмотреть сообщение
то есть на первых пакетах эта куча созданий массива
но зачем такое? под size выделено 4 байта -> максимум 2^16, столько можно выделить один раз и не задумываться.

Цитата:
Сообщение от alexov Посмотреть сообщение
то сразу в сокет записывать, отправлять себе по сети.
куда по сети если не секрет?
Smwr вне форума   Ответить с цитированием
Старый 31.03.2017, 19:35   #10
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

Цитата:
Сообщение от alexov Посмотреть сообщение
жестко как-то ты последнее время отвечаешь всем) злой стал))
не люблю людей, кто головой думать не хочет, особенно тех кто кричит "помогите, помогите, не получается", начинаешь ему помогать, а по факту человек просто хочет чтобы за него все сделали

Цитата:
Сообщение от Smwr Посмотреть сообщение
но зачем такое? под size выделено 4 байта -> максимум 2^16, столько можно выделить один раз и не задумываться.
кстати, здесь все же крайне желательно использовать локальные переменные и так сказать "локальную" память, т.е. либо стек буферов свой делать и бегать по ним, либо постоянно выделять память (эта операция очень быстрая благодаря менеджеру памяти компилятора)
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Курилка



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

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


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

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

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