Русское сообщество по скриптингу

Помощь

Все вопросы по скриптингу для Metamod, помощь в редактировании плагинов.
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для
Metamod.


Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [pawn], в противном случае, если тег [pawn] не отображает ваш код, можно использовать тег [code].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник плагина.

Помощь

Сообщение quckly » 20 апр 2012, 18:38

Что - то не получается сделать плагин к метамоду. ОС Win 7 x64. MSVS 2010. Пытаюсь скомпилировать простой тестовый код из статьи бабкина. Компилируется, но если поставить на сервер то пишет bad file. Так же совершенно случайно для теста взял код из fakemeta
Код: Выделить всё
#ifdef __linux__
// linux prototype
C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {

#else
#ifdef _MSC_VER
// MSVC: Simulate __stdcall calling convention
C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
{
   __asm         // Prolog
   {
      // Save ebp
      push      ebp
      // Set stack frame pointer
      mov         ebp, esp
      // Allocate space for local variables
      // The MSVC compiler gives us the needed size in __LOCAL_SIZE.
      sub         esp, __LOCAL_SIZE
      // Push registers
      push      ebx
      push      esi
      push      edi
   }
#else   // _MSC_VER
#ifdef __GNUC__
// GCC can also work with this
C_DLLEXPORT void __stdcall GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
{
#else   // __GNUC__
// compiler not known
#error There is no support (yet) for your compiler. Please use MSVC or GCC compilers or contact the AMX Mod X dev team.
#endif   // __GNUC__
#endif // _MSC_VER
#endif // __linux__

   // ** Function core <--
   memcpy(&g_engfuncs, pengfuncsFromEngine, sizeof(enginefuncs_t));
   gpGlobals = pGlobals;
   // NOTE!  Have to call logging function _after_ copying into g_engfuncs, so
   // that g_engfuncs.pfnAlertMessage() can be resolved properly, heh. :)
   // UTIL_LogPrintf("[%s] dev: called: GiveFnptrsToDll\n", Plugin_info.logtag);
   // --> ** Function core

#ifdef _MSC_VER
   // Epilog
   if (sizeof(int*) == 8)
   {   // 64 bit
      __asm
      {
         // Pop registers
         pop   edi
         pop   esi
         pop   ebx
         // Restore stack frame pointer
         mov   esp, ebp
         // Restore ebp
         pop   ebp
         // 2 * sizeof(int*) = 16 on 64 bit
         ret 16
      }
   }
   else
   {   // 32 bit
      __asm
      {
         // Pop registers
         pop   edi
         pop   esi
         pop   ebx
         // Restore stack frame pointer
         mov   esp, ebp
         // Restore ebp
         pop   ebp
         // 2 * sizeof(int*) = 8 on 32 bit
         ret 8
      }
   }
#endif // #ifdef _MSC_VER

С ним плагин загружается, но ничего не выводит в консоль load ANY unload PAUSE
В мета лист выводится имя плагина и версия. Но ничего не выводится в консоль. В чем может быть ошибка?
Аватара пользователя
quckly
Скриптер
 
Сообщения: 403
Зарегистрирован: 20 ноя 2009, 10:03
Благодарил (а): 41 раз.
Поблагодарили: 243 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

Re: Помощь

Сообщение quckly » 20 апр 2012, 19:19

Скомпилировал stub_plugin. В meta_attach добавил UTIL_LogPrintf("[PLUGIN] Meta Attach -___--__-_--_-__----_"); и ничего не выводится.
stat - RUN | load - ANY | unload - PAUSE
Аватара пользователя
quckly
Скриптер
 
Сообщения: 403
Зарегистрирован: 20 ноя 2009, 10:03
Благодарил (а): 41 раз.
Поблагодарили: 243 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

Re: Помощь

Сообщение 6a6kin » 20 апр 2012, 19:49

Для примера из моей статьи походу def-файла не хватает.
Код: Выделить всё
LIBRARY   plugin

EXPORTS
   GiveFnptrsToDll @1

SECTIONS
   .data READ WRITE

Создайте подобный файл и в настройках линкера(Module Definition FIle) укажите.
Если функция UTIL_LogPrintf использует ALERT(at_logged, ... то вывод будет осуществлен в консоль только при log on.
На заказ не пишу.
Аватара пользователя
6a6kin
Скриптер
 
Сообщения: 332
Зарегистрирован: 09 мар 2010, 16:40
Благодарил (а): 38 раз.
Поблагодарили: 278 раз.

Re: Помощь

Сообщение quckly » 20 апр 2012, 20:15

log on
Аватара пользователя
quckly
Скриптер
 
Сообщения: 403
Зарегистрирован: 20 ноя 2009, 10:03
Благодарил (а): 41 раз.
Поблагодарили: 243 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

Re: Помощь

Сообщение 6a6kin » 20 апр 2012, 20:57

Попробуй developer 3 и log on.
На заказ не пишу.
Аватара пользователя
6a6kin
Скриптер
 
Сообщения: 332
Зарегистрирован: 09 мар 2010, 16:40
Благодарил (а): 38 раз.
Поблагодарили: 278 раз.

Re: Помощь

Сообщение Polarhigh » 29 май 2014, 19:49

у меня такая же проблема, в логах такие сообщения

Код: Выделить всё
L 05/29/2014 - 19:26:07: Log file started (file "logs\L0529000.log") (game "cstrike") (version "48/1.1.2.7/6027")
L 05/29/2014 - 19:26:12: [META] ini: Begin re-reading plugins list: d:/cs/hlds2/cstrike/addons/metamod/plugins.ini
L 05/29/2014 - 19:26:12: [META] ini: Read plugin config for: dproto_EF
L 05/29/2014 - 19:26:12: [META] WARNING: ini: Plugin '<hldsv8.dll>' has newer file, but unexpected status (badfile)
L 05/29/2014 - 19:26:12: [META] ini: Read plugin config for: <hldsv8.dll>
L 05/29/2014 - 19:26:12: [META] ini: Finished reading plugins list: d:/cs/hlds2/cstrike/addons/metamod/plugins.ini; Found 2 plugins
L 05/29/2014 - 19:26:12: [META] dll: Updating plugins...
L 05/29/2014 - 19:26:13: [META] WARNING: dll: Failed query plugin '<hldsv8.dll>'; Couldn't open file 'd:/cs/hlds2/cstrike/addons/v8/dlls/hldsv8.dll': Ќеверна¤ попытка доступа к адресу пам¤ти.


L 05/29/2014 - 19:26:13: [META] WARNING: dll: Skipping plugin '<hldsv8.dll>'; couldn't query
L 05/29/2014 - 19:26:13: [META] dll: Finished updating 2 plugins; kept 1, loaded 0, unloaded 0, reloaded 0, delayed 0
L 05/29/2014 - 19:26:13: Server shutdown
L 05/29/2014 - 19:26:13: Log file closed


def файл добавил
Аватара пользователя
Polarhigh
 
Сообщения: 1006
Зарегистрирован: 04 май 2010, 17:41
Благодарил (а): 131 раз.
Поблагодарили: 388 раз.
Опыт программирования: Больше трех лет

Re: Помощь

Сообщение s1lent » 30 май 2014, 11:40

trofian,
пробуй скомпилировать с /MT
Свойства проекта -> C/C++ -> Создание кода -> Библиотека времени выполнения -> Многопоточная (/MT)
Аватара пользователя
s1lent
Скриптер
 
Сообщения: 123
Зарегистрирован: 11 июл 2011, 20:02
Откуда: Северск
Благодарил (а): 32 раз.
Поблагодарили: 110 раз.

Re: Помощь

Сообщение PRoSToTeM@ » 30 май 2014, 15:25

plamont, зачем тебе русская студия ? :-D
Аватара пользователя
PRoSToTeM@
Скриптер
 
Сообщения: 2498
Зарегистрирован: 26 мар 2010, 00:12
Благодарил (а): 438 раз.
Поблагодарили: 1125 раз.

Re: Помощь

Сообщение Polarhigh » 30 май 2014, 15:29

я компилю с /MT и либы скомпилены с /MT и всё в 10 студии

Добавлено спустя 1 минуту 22 секунды:
PRoSToTeM@, сбствнно какая разница?)
Аватара пользователя
Polarhigh
 
Сообщения: 1006
Зарегистрирован: 04 май 2010, 17:41
Благодарил (а): 131 раз.
Поблагодарили: 388 раз.
Опыт программирования: Больше трех лет

Re: Помощь

Сообщение PRoSToTeM@ » 30 май 2014, 15:33

trofian,
1) Тяжелей гуглить
2) Какие-то фразы/словосочетания могут быть переведены до неузнаваемости
3) В случае программирования мне проще разбираться в английских фразах, а не переведённых
4) В большинстве своём английский короче
Аватара пользователя
PRoSToTeM@
Скриптер
 
Сообщения: 2498
Зарегистрирован: 26 мар 2010, 00:12
Благодарил (а): 438 раз.
Поблагодарили: 1125 раз.

След.

Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6