Здравствуйте, гость ( Вход | Регистрация )
20 Jul 2012, 22:52
(Сообщение отредактировал feanor - 09 May 2013, 15:16)
Сообщение
#1
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20605 раз |
Плагин, добавляющий в чат несколько дополнительных команд и возможность исполнения ERM.
https://dl.dropboxusercontent.com/u/61759222/HoMM/chalk.era (v001) https://dl.dropbox.com/u/61759222/HoMM/chalk.rar (исходники) ![]() Команды:
Код #include <windows.h> #include <stdio.h> #include "..\..\include\era.h" #include "..\..\include\heroes.h" #include "..\..\include\patcher_x86_commented.hpp" void InitWoGSpecials() { if (*(int *)(*(int*)0x69CCFC + 4)!=-1) { HERO* currhero = (HERO*)GetHeroRecord(*(int *)(*(int*)0x69CCFC + 4)); *(int*)0x27F9970 = (int)currhero; ErmV[998] = currhero->x; ErmV[999] = currhero->y; ErmV[1000] = currhero->l; ErmF[1000]= !CALL_1(int, __thiscall, 0x4BAA60, *(int*)0x69CCFC); } } void PrintString(char* str) { char buf[1024]; sprintf(buf,"IF:L^{~green}%s{~}^;",str); ExecErmCmd(buf); /*sprintf(buf,"IF:L^%s^;",str); EventParams[1] = str*/ } void __stdcall OnChat(PEvent e) { if(EventParams[0] == 1) { EventParams[2] = 1; char *buf=(char*)malloc(32+strlen((const char*)EventParams[1])); sprintf(buf,"IF:L^{~%s}%s{~}^;\0","lime",EventParams[1]); ExecErmCmd(buf); free(buf); char str[256]; if(!stricmp((const char*)EventParams[1],"/showfps")) { *(int*)((*(int*)0x6992B8)+0x3C) = !*(int*)((*(int*)0x6992B8)+0x3C); PrintString("FPS switched off"); } if(!stricmp((const char*)EventParams[1],"/leveldebugger")) { *(int*)0x698A18 = !*(int*)0x698A18; PrintString(*(int*)0x698A18?"Level debugger switched on":"Level debugger switched off"); } if(!stricmp((const char*)EventParams[1],"/heroid")) { int id = *(int *)(*(int*)0x69CCFC + 4); if (id!=-1) { sprintf(str,"%s: id %i, struct at 0x%08X", ((HERO*)GetHeroRecord(id))->Name, id, GetHeroRecord(id) ); } else { strcpy(str,"Hero not selected"); } PrintString(str); } if(!strnicmp((const char*)EventParams[1],"/execerm",strlen("/execerm"))) { InitWoGSpecials(); ExecErmCmd((char*)(strlen("/execerm")+1+EventParams[1])); PrintString("Executed"); } if(!strnicmp((const char*)EventParams[1],"!!",strlen("!!"))) { InitWoGSpecials(); ExecErmCmd((char*)(strlen("!!")+EventParams[1])); PrintString("Executed"); } //ExecErmCmd(str); //MessageBoxA(0,(LPCSTR)(EventParams[1]),(LPCSTR)str,0); } } BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { if (ul_reason_for_call == DLL_PROCESS_ATTACH) { ConnectEra(); RegisterHandler(OnChat, "OnChat"); } return TRUE; } Сорцы и нормальная заливка будут позже. Спасибо сказали: |
|
|
|
![]() |
27 Jul 2012, 16:35
Сообщение
#2
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20605 раз |
Цитата если написать группу команд для одного ресивера через пробел, они будут адекватно обработаны? Да. Цитата можно ли так же через пробел использовать разные ресиверы? Нет, выполнится только первый |
|
|
|
feanor ERM-консоль 20 Jul 2012, 22:52
Berserker Вспомнилось:
КодZVSE
!?FU77003;
!!SN... 21 Jul 2012, 01:56
feanor Упс. Ну ладно, у меня понтовее 21 Jul 2012, 02:27
Berserker Кстати, а почему бы точку с запятой автоматом не д... 21 Jul 2012, 13:29
feanor ЦитатаКстати, а почему бы точку с запятой автомато... 26 Jul 2012, 15:56
feanor Версия..ну пусть 001 (от 18 часов 26 июля 2012 год... 26 Jul 2012, 18:40
Bes если написать группу команд для одного ресивера че... 27 Jul 2012, 16:13
Berserker Можно, конечно, по ";" разбивать строку ... 27 Jul 2012, 17:30
Bes feanor
активирую чат (жму TAB), нажимаю ВВОД (Ente... 08 Jan 2013, 03:32
feanor Хм. У меня все норм.
Кто-нибудь еще, подтвердите ... 08 Jan 2013, 15:27
Bes Цитата(feanor @ 08 Jan 2013, 16:27) Хм. У... 08 Jan 2013, 17:00
hippocamus У меня почему-то не активируется плагин. Но и не в... 08 Jan 2013, 15:45
feanor ЦитатаУ меня почему-то не активируется плагин. Но ... 08 Jan 2013, 15:49
hippocamus Команда !!IF:M^2^; не работает. 08 Jan 2013, 16:20
feanor Ага, с HD вылетело.
ЦитатаКоманда !!IF:M... 08 Jan 2013, 17:18
Bes после многочисленных манипуляций с чатом стало оче... 14 Jan 2013, 21:19
hippocamus Shift-Ins и Ctrl-V не рабоатют? Жаль, не могу полн... 14 Jan 2013, 22:12
Bes Цитата(hippocamus @ 14 Jan 2013, 23:12) S... 14 Jan 2013, 22:22
feanor Вот Ctrl+С/V и нумпада не хватает адназначна.
А в... 14 Jan 2013, 22:39
Bes Цитата(feanor @ 14 Jan 2013, 23:39) Вот C... 14 Jan 2013, 23:06
feanor лезть в обработку ввода не хочется категорически.
... 15 Jan 2013, 01:24
Iv Очень не хватает, как в DOS, по нажатию кнопки ... 27 Jan 2013, 11:18
tolich В DOS она тоже не сразу появилась. 27 Jan 2013, 11:53
gerkruger Просьба перезалить файл, так как ссылка в первом п... 21 Apr 2013, 18:50
feanor Псто №6 же. 26 Apr 2013, 17:19
gamecreator так вставь эту ссылку в первый пост что ли 26 Apr 2013, 17:27
Algor Кидаю chalk.dll в Mods\WoG\EraPlugins.
З... 29 Apr 2013, 07:07
hippocamus Цитата(Algor @ 29 Apr 2013, 08:07) hippoc... 29 Apr 2013, 13:21
gamecreator так команды /chalk и нету то 29 Apr 2013, 09:44
Algor Цитата(gamecreator @ 29 Apr 2013, 10:44) ... 29 Apr 2013, 14:58
feanor А если в chalk.era переименовать? 29 Apr 2013, 15:18
Algor Цитата(feanor @ 29 Apr 2013, 16:18) А есл... 29 Apr 2013, 15:47![]() ![]() |
| Текстовая версия | Сейчас: 15 December 2025 - 13:44 |
|
Copyright by Алексей Крючков
Programming by Degtyarev Dmitry |
|