[ Обновленные темы · Новые сообщения · Участники · Поиск · RSS ]
Форум » Записи участника » Герыч [1233]
Результаты поиска
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Бегло почитал) радует) Про Lua не забудьте им напомнить, если что)
Вообще им надо дать свободу в написании дополнений к игре: улучшенная поддержка скриптов, лёгкость встраивания нового оружия, 3д моделей и т.п.


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Никто не задумывается, а каталог ссылок или подобная ей вещь очень важен для сайта, ибо на самом деле найти нас в поисковике не так уж и легко и это немного проблема. Нас, как правило перебивают сайты с обзорами и обсуждениями игр.

________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Я выбрал пункт 2. Переименование по-моему не повлияет на популярность сайта. Я больше всего согласен именно с Unaited, всё должно происходить своевременно.

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

Новый сайт гораздо дольше будет идти вверх в результатах поиска.

Возможно я не прав и чего-то не понимаю)


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Quote (AlexBond)
Еще нужны люди знающие как расставить червей по карте.

АлексБонд, попробуй это:
http://w4tweaks.ru/load/5_skripty/5_0_ostalnoe/65-1-0-42
http://w4tweaks.ru/load/5_skripty/5_2_igrovye_skripty/63-1-0-43
http://w4tweaks.ru/load/5_skripty/5_2_igrovye_skripty/63-1-0-44

Оно, конечно, старо, как мир, но всё же ;)


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Ну и рассказ про использование этого дела http://w4tweaks.ru/forum/91-38-1

________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Вроде бы продлил домен w4tweaks.ru ещё на год. Во всяком случае 120 рублёв заплачено, на их сайте пока платёж непроплачен.

P.S. Процедура восстановления своих ключиков от webmoney - это откровенная попа, господа)

UPD. Всё, они среагировали)
Quote
Домен w4tweaks.ru был успешно продлён на срок на 1 год.
Новый срок окончания делегирования: 2012-11-01.

Информация о сроках делегирования домена
в базе WHOIS будет обновлена в течение суток.


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Важно. Скажите, lua в червях в отдельной dll лежит или нет?

________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
ок, спасибо за инфу.

luac(lua compiler) - компилятор луа файлов(*.lua) в бинарную форму(*.lub). В четвёртых червях на наше благо их не использовали, а вот в Worms3D - да. Поэтому Алексбонду пришлось и их декомпилировать)


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Так, парни, мне нужна ваша помощь.
Запустите worms.exe

Затем запустите программу в аттаче и выберите в ней "Load functions from all DLLs attached to the selected process "

В появившемся окне отсортируйте список по колонке "Filename".
Нажмите Ctrl + A (выделить весь список) и затем сохранить.
полученный файл, выложите сюда.

Будем надеяться, что лазейка есть)
Прикрепления: dllexp.zip (46.2 Kb)


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Спасибо, Unaited!

Поздравляю всех) Скоро с огромной долей вероятности у нас будут свои функции, которые можно будет выполнять прямо из игры... К примеру, запись игры в файл или ещё что-нибудь, что придумаете.

У нас где-нибудь есть экзешник worms?


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
В качестве подопытного кролика у меня выступает стандартный консольный интерпретатор lua...

Сейчас я смог запустить подопытного, перехватить все вызовы функции luaL_openlib(регистрация библиотек в lua) и зарегистрировать в этот момент свою библиотеку test с одной функцией test, которая попросту печатает важную строчку (см. рисунок)
Прикрепления: 9444704.png (85.2 Kb)


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Короче я буду понемного писать lua-инъектор на C#, оформлю это как библиотеку, суть которой сведётся к тому, что она будет запускать произвольный экзешник с lua внутри, а затем предоставлять все доступные функции из lua в удобной форме + события, соответствующие тому, что была перехвачена какая-либо функция из lua.

В итоге мы получим возможность регистрировать в червяках в lua любую логику, хоть даже запрос на веб-сервер или работу с файлами или что ещё можно будет придумать.
Кроме того скорее всего я прилинкую к червякам полную стандартную lua библиотеку, и возможно сделаю адаптацию под новый lua, если это возможно и/или будет полезно.

Хотелось бы слышать ваши пожелания и вопросы типа "возможно ли будет сделать вот-это?", чтобы я немного смог развить свои идеи.

Проект сделаю open-source, выложу на github.com


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Quote (Woitek)
Hmmmm be possible edit Vector?

It depends on several things: how vectors are passed to lua, is it a copy of vector from engine or a real pointer or reference to it. One thing I can say surely - I can open all lua(but not engine) facilities, which are not available now.

Quote (Unaited)
а можно будет добавить свой контент в игру без замены?

Не факт. Ещё раз повторю - луа - это мостик между нами и движком игры. При этом сами разработчики червяков определили, насколько он широк. В частности они не позволили загружать свои луа(*.lua или *.dll)-библиотеки - эту возможность я открою. А вот недра движка заставить работать по-другому - сложнее, но в принципе и можно.

Quote (firsacho)
сохранять оружие вконце раунда в MySQL)

Интересная задумка... на паузу игру ставить)
Фирсачо, развивай мысль)

Quote (firsacho)
Один минус - у нас на сайте с lua работать полноценно умеют 3-4 человека...

Изучайте, будет полезно.
Вообще советую в связи с грядущим появлением моего проекта начать изучение C# или C++, ибо появится возможность добавлять в игру любой код, а максимальными возможностями будет обладать запускатель игры (на C#).


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Code

             luaL_openlib_hook = Utils.SetupHook<luaL_openlib_Delegate>("luaL_openlib", hookedModule,
                 (original) => (L, s, l, nup) =>
                 {
                     Interface.Echo("luaL_openlib called");
                     original(L, s, l, nup);
                 });


Вот как сейчас выглядит хук функции luaL_openlib... красота для сишарповца)

Code

             luaL_openlib_hook = Utils.SetupHook<luaL_openlib_Delegate>("luaL_openlib", hookedModule,
                 (original) => (L, s, l, nup) =>
                 {
                     Interface.Echo("luaL_openlib called");
                     original(L, s, l, nup);
                 });

Дальше мне надо придумать, как сделать красивым вот такой код:
Code


         [StructLayout(LayoutKind.Sequential)]
         struct luaL_Reg
         {
             public string name;
             [MarshalAs(UnmanagedType.FunctionPtr)]
             public lua_CFunction func;
         };

         static int test(IntPtr L)
         {
             Console.WriteLine("Hacked!");

             return 0;
         }

         private static readonly luaL_Reg[] mylib = new[]
                    {
                    new luaL_Reg {name = "test", func = test}
                    };

...

                 IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(luaL_Reg)) * (mylib.Length + 1));

                 try
                 {
                     for (int i = 0; i < mylib.Length; i++)
                     {
                         Marshal.StructureToPtr(mylib[i], new IntPtr((long)ptr + Marshal.SizeOf(typeof(luaL_Reg)) * i), false);
                     }

                     Marshal.StructureToPtr(new luaL_Reg(), new IntPtr((long)ptr + Marshal.SizeOf(typeof(luaL_Reg)) * mylib.Length), false);

                     luaL_openlib(L, "test", ptr, 0);
                 }
                 finally
                 {
                     // Free the unmanaged memory.
                     Marshal.FreeHGlobal(ptr);
                 }


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Всё, начальная версия, которая способна хукать lua.exe лежит тут
https://github.com/gerich-home/lua-inject
Работает для этой версии луа http://code.google.com/p/luaforwindows/downloads/list


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
По поводу синхронизации я бы предложил бы такой вариант:
ланчер червяков запускает игру, при этом он устанавливает хук, он же посредством хука регистрирует в луа какую-либо библиотеку для работы.
При этом, чтобы не пытаться определить что-то по никам, можно определять с помощью функций который предоставил ланчер, все ли игроки имеют у себя на компе запущенный ланчер. Если да, то у главного игрока или с сервера загружается актуальный скрипт и выполняется.


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Борюсь с .net 4.0... проблема в том, что я сейчас могу писать только .net3.5 приложения, что не позволяет мне реализовать одну клёвую задумку..

________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Та-дам!)

я прикрутил MEF к хукеру. Теперь можно писать хуки(в форме DLL -библиотек) при уже имеющемся хукере, просто подкладывать их в нужную папку и при запуске они будут, работая в адресном пространстве worms.exe, загружать дотнетовские плагины и устанавливать хуки на произвольные экспортируемые функции червяков. При этом можно будет изначально написать пару таких плагинов, которые устанавливают хук на пару функций, на пример на loadLibrary и на luaL_loadbuffer например, а затем по мере необходимости или при возникновении новых идей добавлять новые хуки.


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Нужен только энтузиазм в рамках моддинга червей.
Так сказать, занимайтесь больше модами / картами / чем угодно ещё и удивляйте других людей!


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Та-дам! Делаю всё более и более конфигурируемые хуки.
Теперь, какие хуки ставить и с помощью чего, определяется через Config.xml
Можете потрогать ручками(конкретно вот этот файл).

Очень классно, если кто-нибудь попробует запустить хукер с таким конфигом над червяками (в формочке надо поменять путь на путь к червякам, и заменить конфиг):
Code
<?xml version="1.0" encoding="utf-8" ?>
<LuaHookerConfig luamodule="WORMS 4 MAYHEM.EXE">
   <Hookers>
     <Hooker name="TestHooker">TestHooker.dll</Hooker>
   </Hookers>
   <Hooks>
     <Hook name="luaL_openlib">TestHooker</Hook>
   </Hooks>
</LuaHookerConfig>


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Форум » Записи участника » Герыч [1233]
Поиск: