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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 04.02.2012, 00:15   #1
Новичок
 
Аватар для TechnoWiz@rd
 
Регистрация: 03.02.2012
Сообщений: 4
Сказал Спасибо: 0
Имеет 3 спасибок в 1 сообщении
TechnoWiz@rd пока неопределено
По умолчанию Пример плагина на С++

Начал ваять под себя плагинчик на C++ для некоторого удобства игры в несколько окон и решил выложить зачатки этого дела. Может кому как шаблон для его собственных разработок сгодиться. Плагин написан в Visual Studio 2010, содержит базу для обработки пакетов + в качестве примера правка пакета MoveBackwardToLocation, блокировка вызова списка ГМ и авто прием в пати от заданного чара. Так-же присутствует возможность загрузки параметров из ".ini" файла. Комментарии в коде присутствуют, так что разобраться что к чему думаю труда не составит.

Проверен на phx версий 3.4.1.61 и 3.4.1.82.
Вложения
Тип файла: rar L2Automatics.rar (14.8 Кб, 80 просмотров)

Последний раз редактировалось TechnoWiz@rd, 04.02.2012 в 00:33.
TechnoWiz@rd вне форума   Ответить с цитированием
За это сообщение TechnoWiz@rd нажился 3 спасибками от:
Старый 05.02.2012, 02:44   #2
Местный
 
Аватар для Sherman
 
Регистрация: 24.04.2008
Сообщений: 364
Сказал Спасибо: 15
Имеет 116 спасибок в 83 сообщенях
Sherman пока неопределено
По умолчанию

Цитата:
Сообщение от TechnoWiz@rd Посмотреть сообщение
Начал ваять под себя плагинчик на C++ для некоторого удобства игры в несколько окон и решил выложить зачатки этого дела. Может кому как шаблон для его собственных разработок сгодиться. Плагин написан в Visual Studio 2010, содержит базу для обработки пакетов + в качестве примера правка пакета MoveBackwardToLocation, блокировка вызова списка ГМ и авто прием в пати от заданного чара. Так-же присутствует возможность загрузки параметров из ".ini" файла. Комментарии в коде присутствуют, так что разобраться что к чему думаю труда не составит.

Проверен на phx версий 3.4.1.61 и 3.4.1.82.
Помоему излишне разнечено по модулям. Но я смотрю с точки зрения паскакаля, а не насильника....

Последний раз редактировалось Sherman, 05.02.2012 в 02:50.
Sherman вне форума   Ответить с цитированием
Старый 05.02.2012, 19:58   #3
Новичок
 
Регистрация: 05.02.2012
Сообщений: 2
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
vo1ty пока неопределено
По умолчанию

Доброго времени суток! Извиняюсь, возможно, вопрос будет нубский. у меня MSVS 2010. Собираю этот пример в дебаге нормально, а в релизе вот что выдает:
Цитата:
------ Build started: Project: L2Automatics, Configuration: Release Win32 ------
Build started 2/5/2012 6:51:39 PM.
InitializeBuildStatus:
Touching "Release\L2Automatics.unsuccessfulbuild".
ClCompile:
Configuration.cpp
Configuration.cpp(22): error C2664: 'GetModuleHandleW' : cannot convert parameter 1 from 'const char [17]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Configuration.cpp(26): error C2664: 'GetPrivateProfileStringW' : cannot convert parameter 1 from 'const char [6]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Configuration.cpp(28): error C2664: 'GetPrivateProfileStringW' : cannot convert parameter 1 from 'const char [6]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

Build FAILED.

Time Elapsed 00:00:00.48
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
кусок кода, на который ругается:
Код:
void InitConfiguration( void )
{
	// Получаем путь к папке с плагином
	char FullPath[MAX_PATH+1];
	/* строка 22 */ GetModuleFileName( GetModuleHandle( "L2Automatics.dll" ), FullPath, MAX_PATH+1 );
	strcpy( &FullPath[ strlen(FullPath) - 3], "ini" );

	char Buff[256];
	GetPrivateProfileString( "Party", "AutoAcceptParty", "0", Buff, 256, FullPath );
	sscanf_s( Buff, "%u", &g_bAutoAcceptParty );
	GetPrivateProfileString( "Party", "LeaderName", "", g_pLeaderName, 17, FullPath );
};
Не уверен, можно ли данную проблему решить таким простым способом, но я заменил функции GetModuleFileName, GetModuleHandle и GetPrivateProfileString на GetModuleFileNameA, GetModuleHandleA и GetPrivateProfileStringA соответственно, так скомпилировалось без ошибок, но, что в случае дебага, что в случае релиза, когда я включаю данный плагин, сообщения от сервера больше не показываются в логе пакетов, ну и, собственно, автоприём пати не работает. что я не то делаю?

P.S.: даже в L2PacketHandler.cpp заменил кое-что, а именно:
Код:
void SP_AskJoinParty( unsigned char tid )
{
	// Автоматический прием в пати
	if( 1 ) { // в любом случае
		char WhoAsk[17];
		ReadS( WhoAsk );
		if( !strcmp( "vo1ty", WhoAsk ) ) { // для ника vo1ty
			L2NewPacket( L2P_RequestAnswerJoinParty );
			WriteD( 0x00000001 ); // Принять приглашение
			SendToServer( tid );
		};
	};
};
И все равно никакого автоприёма.

P.P.S.: Заранее спасибоу за совет. Пользоваться L2PHX начал только сегодня, опыт в С++ не очень-то большой, как видите, за что сразу извиняюсь.

Последний раз редактировалось vo1ty, 05.02.2012 в 20:07.
vo1ty вне форума   Ответить с цитированием
Старый 05.02.2012, 20:13   #4
Местный
 
Аватар для Aries
 
Регистрация: 19.01.2011
Сообщений: 241
Сказал Спасибо: 7
Имеет 26 спасибок в 22 сообщенях
Aries пока неопределено
По умолчанию

Кодировку просто поменяй в проекте)
Открываешь свойства проекта. Выбираешь релиз сборку.
Там дальше Свойства Конфигурации => Общие => Набор символов.
И там выбираешь: Использовать многобайтовую кодировку

ЗЫ надеюсь, у тебя русский msvc) Хотя если английский, думаю по смыслу догадаешься)
Aries вне форума   Ответить с цитированием
За это сообщение Aries нажился спасибкой от:
Старый 05.02.2012, 20:19   #5
Новичок
 
Регистрация: 05.02.2012
Сообщений: 2
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
vo1ty пока неопределено
По умолчанию

Спасибо за не извращенный способ, теперь все компилируется нормально (у меня английский MSVS, но перевести смог ). Но главные проблемы остаются:
Цитата:
когда я включаю данный плагин, сообщения от сервера больше не показываются в логе пакетов, ну и, собственно, автоприём пати не работает. что я не то делаю?
P.S.: кое-как разобрался, я пытался запустить в новом ПНХ, в 3.4.1.83 работает.

Последний раз редактировалось vo1ty, 06.02.2012 в 02:13.
vo1ty вне форума   Ответить с цитированием
Ответ

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


Опции темы
Опции просмотра

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

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


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

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

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