W4Tweaks
·  Регистрация Вход
[ Новые сообщения · Участники · Подписки · Поиск · RSS ]
Страница 2 из 4«1234»
Форум » Worms 4 Mayhem » 5.3. Идеи скриптов и их обсуждение » Lua инъекция (Внедриться в lua-движок червей)
Lua инъекция
Vorobey
Дата: ВТ, 07.02.2012, 20:40:11 | Сообщение # 21
Vorobey
Жестокий
Группа: Модераторы
Сообщений: 1747
Репутация: 101
Инвентарь: 11
Статус: Offline
Quote (firsacho)
Один минус - у нас на сайте с lua работать полноценно умеют 3-4 человека...

Да, я их не осилил)
 
4erveR
Дата: ВТ, 07.02.2012, 20:52:01 | Сообщение # 22
4erveR
Неадекват
Группа: Модераторы
Сообщений: 1467
Репутация: 76
Инвентарь: 13
Статус: Offline
Я писал некоторые скрипты, например часть "режима буйвола" в New Edition... не столь сложно, как кажется

твеак умер, а я еще нет

Сообщение отредактировал 4erveR - ВТ, 07.02.2012, 20:52:11
 
Jhonny_old
Дата: ВТ, 07.02.2012, 21:07:34 | Сообщение # 23
Jhonny_old
Завсегдатай
Группа: Заблокированные
Сообщений: 355
Репутация: 57
Инвентарь: 5
Статус: Offline
Я даже заголовок темы не понял. Куда мне скрипты %) хотя я их не пробовал, может мне рискнуть сломать мозг? Хотя может скриптинг не такой сложный всё же я попробую ;)
 
Unaited
Дата: ВТ, 07.02.2012, 21:37:12 | Сообщение # 24
Unaited
UN4173D
Группа: Админы
Сообщений: 1367
Репутация: 91
Инвентарь: 13
Статус: Offline
Quote (Герыч)
Хотелось бы слышать ваши пожелания и вопросы типа "возможно ли будет сделать вот-это?", чтобы я немного смог развить свои идеи.
а можно будет добавить свой контент в игру без замены?


 
Woitek
Дата: ВТ, 07.02.2012, 23:14:45 | Сообщение # 25
Woitek
Его узнают в чате
Группа: Проверенные
Сообщений: 521
Репутация: 57
Инвентарь: 11
Статус: Offline
Hmmmm be possible edit Vector? At this moment is not possible change vector by lua. Much mods be possible create :D. Be great because my older idea be possible for create now.
 
firsacho
Дата: СР, 08.02.2012, 06:54:44 | Сообщение # 26
firsacho
ICQ = 453-163-541
Группа: Админы
Сообщений: 3714
Репутация: 76
Инвентарь: 15
Статус: Offline
Quote (Unaited)
а можно будет добавить свой контент в игру без замены?

думаю, что нет. Контент загружается до луа.

Кстати в игре есть дофига "пустых" моделей. Так что вполне можно ими пользоваться, не заменяя стандартное.





Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005)
Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007)
Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)

www.w-mod.info - мод Worms Renewation для Worms4
 
Vorobey
Дата: СР, 08.02.2012, 08:06:04 | Сообщение # 27
Vorobey
Жестокий
Группа: Модераторы
Сообщений: 1747
Репутация: 101
Инвентарь: 11
Статус: Offline
Jhonny, читай уроки по lua
 
Герыч
Дата: СР, 08.02.2012, 08:37:53 | Сообщение # 28
Герыч
Админ
Группа: Админы
Сообщений: 1240
Репутация: 60
Инвентарь: 5
Статус: Offline
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#).


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Наклс2
Дата: СР, 08.02.2012, 16:06:55 | Сообщение # 29
Наклс2
Ozelot assasin
Группа: Проверенные
Сообщений: 126
Репутация: 0
Инвентарь: 1
Статус: Offline
Quote (Unaited)
а можно будет добавить свой контент в игру без замены?

Так-то это не возможно!Нужно программировать игру на новый скрипт,оружие и т.п.

Добавлено (08.02.2012, 16:06)
---------------------------------------------

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

С твиками так и не разобрался...Но с этим попробую!


Ушёл. Черви уже в моде, сайт катится ко дну. Моддинг не для меня, поэтому я здесь никому не нужен...
 
Герыч
Дата: СР, 08.02.2012, 16:40:34 | Сообщение # 30
Герыч
Админ
Группа: Админы
Сообщений: 1240
Репутация: 60
Инвентарь: 5
Статус: Offline
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);
                 }


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


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
firsacho
Дата: СР, 08.02.2012, 17:54:22 | Сообщение # 32
firsacho
ICQ = 453-163-541
Группа: Админы
Сообщений: 3714
Репутация: 76
Инвентарь: 15
Статус: Offline
Если синхронизировать через интернет C# составляющую между игроками играющими одновременно в одной комнате (сделав идентификацию оппонентов например по никам червей)- возможно ли синхронизировать между игроками их пользовательские куски кода (например характеристики оружия индивидуальные для каждого игрока)? То есть определяем, допустим, характеристики и установленные эффекты для базуки в специальной части скрипта пользователя 1 и отправляем кусок скрипта их задающий всем юзерам, чтобы не было вылета.




Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005)
Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007)
Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)

www.w-mod.info - мод Worms Renewation для Worms4
 
Герыч
Дата: СР, 08.02.2012, 18:12:36 | Сообщение # 33
Герыч
Админ
Группа: Админы
Сообщений: 1240
Репутация: 60
Инвентарь: 5
Статус: Offline
По поводу синхронизации я бы предложил бы такой вариант:
ланчер червяков запускает игру, при этом он устанавливает хук, он же посредством хука регистрирует в луа какую-либо библиотеку для работы.
При этом, чтобы не пытаться определить что-то по никам, можно определять с помощью функций который предоставил ланчер, все ли игроки имеют у себя на компе запущенный ланчер. Если да, то у главного игрока или с сервера загружается актуальный скрипт и выполняется.


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Grimnir
Дата: ЧТ, 09.02.2012, 00:05:51 | Сообщение # 34
Grimnir
Его узнают в чате
Группа: Проверенные
Сообщений: 589
Репутация: 19
Статус: Offline
А можно сделать голосовой чат как в Team Fortness ?







Понравилось моё сообщение ? Повысь репутацию и дай червонец.
Не бывает разницы в возрасте, бывает разница в уме © Вин Дизель
 
Woitek
Дата: ЧТ, 09.02.2012, 00:24:39 | Сообщение # 35
Woitek
Его узнают в чате
Группа: Проверенные
Сообщений: 521
Репутация: 57
Инвентарь: 11
Статус: Offline
Vector and repair weapon_select funtion to like w3d. Add laser to game (shotgun) Most important things in Multi,Mission :D
 
firsacho
Дата: ЧТ, 09.02.2012, 06:49:26 | Сообщение # 36
firsacho
ICQ = 453-163-541
Группа: Админы
Сообщений: 3714
Репутация: 76
Инвентарь: 15
Статус: Offline
Grimnir, его можно сделать и без внедрения в луа) только worms 4 голосовой чат противопоказан... там столько малолеток играет от 7 до 13 лет, что давать им что то орать в микрофон - это взрыв мозга за 2 минуты (ненавижу детей :D ).




Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005)
Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007)
Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)

www.w-mod.info - мод Worms Renewation для Worms4
 
Jhonny_old
Дата: ЧТ, 09.02.2012, 16:30:09 | Сообщение # 37
Jhonny_old
Завсегдатай
Группа: Заблокированные
Сообщений: 355
Репутация: 57
Инвентарь: 5
Статус: Offline
да и ктому же слушать, как дети от 7 лет до 13 лет ругаются матом, так это вообще помрёшь за 2 секунды
 
Герыч
Дата: ПТ, 10.02.2012, 10:09:52 | Сообщение # 38
Герыч
Админ
Группа: Админы
Сообщений: 1240
Репутация: 60
Инвентарь: 5
Статус: Offline
Борюсь с .net 4.0... проблема в том, что я сейчас могу писать только .net3.5 приложения, что не позволяет мне реализовать одну клёвую задумку..

________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Дата: ПТ, 10.02.2012, 12:14:45 | Сообщение # 39
Герыч
Админ
Группа: Админы
Сообщений: 1240
Репутация: 60
Инвентарь: 5
Статус: Offline
Та-дам!)

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


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Woitek
Дата: ПТ, 10.02.2012, 13:29:55 | Сообщение # 40
Woitek
Его узнают в чате
Группа: Проверенные
Сообщений: 521
Репутация: 57
Инвентарь: 11
Статус: Offline
Gz!!!
Waiting for any hack :D.
 
Форум » Worms 4 Mayhem » 5.3. Идеи скриптов и их обсуждение » Lua инъекция (Внедриться в lua-движок червей)
Страница 2 из 4«1234»
Поиск:

Copyright W4Tweaks™ 2008-2017 Хостинг от uCoz