[ Обновленные темы · Новые сообщения · Участники · Поиск · RSS ]
  • Страница 4 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Форум » Моддинг » 6.3. Прочие идеи и их обсуждение » W4MapLauncher или Мега - Крэзи ИДЕЯ W4 с W3D текстурами!!!!
W4MapLauncher или Мега - Крэзи ИДЕЯ W4 с W3D текстурами!!!!
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Вчера обнаружив на форуме Team17 патч OMG для W4, я его скачал, после чего сильно разочаровался, Текстуры на новых картах в W4 ужасно убогие...

И у меня возникла идея!!!!!

1. Итак, текстуры загружаются при загрузке игры.
2. Все текстуры являются файлами, и чтобы попасть в игру проходят через функцию kernel32.CreateFile или msvcr71.fopen
3. Создав перехватчик этой функции МЫ МОЖЕМ открывать любой файл, вместо заданного!!!!!

Первые наброски:
1. Создается перехватчик функции, в виде загрузчика, который будет перехватывать все имена файлов для открытия, сравнивать их с заданной таблицей, и изменять.
1.1 Найти нужное место для перехвата.
1.1.1 Исследовать открытие файлов.
1.2 Создать загрузчик перехвата.
1.3 На ассемблере написать функцию обработки перехвата и сравнения с таблицей.

1.4 Организовать корректную работу.
2. Создать таблицу где текстураW4 = ТекстуреW3D
3. Создать конвертер, который возьмет все текстурные файлы и заменит в них текстуры согласно таблице
4. Создать генератор databank.xml и scripts.xml из scripts.xom
5. Достать все текстуры из W3D и положить их в отдельную папку для W4.
6. Организовать правильную работу.
7. Создать Патч W3D карт для W4 =)

И не говорите мне, что это не риально =)

Прикрепления: 7727185.jpg (78.9 Kb) · 7963396.jpg (69.2 Kb)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Ну-с продолжим!!!
Quote (AlexBond)
Одна лишь проблема, нужно придумать способ перехвата. Или это сделать прямо в игре, через вируальный процесс. Или сделать перехватывающую msvcr71.dll, которая и будет обрабатывать это дело...

Так как множества exe версий имеют защиту или разный код, то нужно поискать способ подгрузки моего перехватчика через msvcr71.dll...

Пока других идей нет...

Все желающие помочь проекту, пишите какие карты добавить в следующую версию.

Список карт:

List of maps v1.085:

1. Alien Juice Suckers( by W3D)
2. Atlantis Training Facility( by W3D)
3. A Bridge To Far( by Armageddon)
4. A Good Nights Sleep( by W3D)
5. A Leek in a Vegetable( by W3D)
6. A Quick Fix( by W3D)
7. Alien Invasion( by Martin)
8. ALPHA353 B( by GrenadeX)
9. Arctic Roper( by AlexBond)
10. Bad BnG Roper 6( by GrenadeX)
11. Banana Cup BnG( by GrenadeX)
12. Beefcake Breakfast Brawl( by W3D)
13. BiG Mega Tower( by GrenadeX)
14. BIG TREE Lands ( by GrenadeX)
15. Check Mate( by AlexBond)
16. Chess( by AlexBond)
17. Christmas Tree( by AlexBond)
18. Cocons( by AlexBond)
19. Costa Del Danges( by W3D)
20. Crate Britain( by W3D)
21. Crazy Roads( by AlexBond)
22. Crop Circle( by W3D)
23. Cubos 3( by AlexBond)
24. Cubos 5( by AlexBond)
25. D-Day( by W3D)
26. Death Staff( by AlexBond)
27. Earn Your Crust( by W3D)
28. Eiffel Tower( by AlexBond)
29. Falling For You( by W3D)
30. Farm Trouble( by Flamar)
31. Final War( by AlexGT)
32. Find Fox( by AlexBond)
33. Forest( by AlexBond)
34. Gold Island( by AlexGT)
35. Grave Danger( by W3D)
36. Hell Coming RoperX( by GrenadeX)
37. Helter Skelter( by W3D)
38. Hide and Peek( by W3D)
39. High Stakes( by W3D)
40. Ice, Ice, Maybe( by W3D)
41. In Space No-One Can Hear You Clean( by W3D)
42. Island Vilage 2( by AlexBond)
43. JetPack Challenge 1( by W3D)
44. JetPack Challenge 2( by W3D)
45. Lunar Stemps 6( by GrenadeX)
46. Motorbike( by AlexBond)
47. Mountains( by AlexBond)
48. Movie Mayhem( by W3D)
49. Nobody Rides For Free( by W3D)
50. Orange Island( by GrenadeX)
51. Pirates Seawar( by FinnishWorm)
52. Plaice Holder( by W3D)
53. Pleace Not More Island( by W3D)
54. Psyduck Island( by AlexBond)
55. Ragnarok and Roll( by W3D)
56. Remagen( by Lucas)
57. Return to Chateau Assassin( by W3D)
58. Roping Stadium( by AlexBond)
59. Sahara( by AlexBond)
60. Schools In For Summer( by W3D)
61. Shiver Me Timbers( by W3D)
62. Shotgun Callenge 3( by W3D)
63. Showdown at the OK( by W3D)
64. Snooker( by AlexBond)
65. Snow( by AlexBond)
66. South Park( by AlexBond)
67. Space Stations 2b( by GrenadeX)
68. Spiders( by AlexBond)
69. Stars( by AlexBond)
70. Statue Of Liberty( by AlexBond)
71. Submission( by W3D)
72. Super Sheep Challenge( by Remake)
73. Take My Cherry( by W3D)
74. The Driving Range( by W3D)
75. The Mighty Kong( by W3D)
76. Thee Village Trouble( by W3D)
77. Titanic( by W3D)
78. Titanic 2( by GrenadeX)
79. T-Rex( by AlexBond)
80. Trial Of The Damned( by W3D)
81. TriBanana Holly( by AlexBond)
82. Victory Or Death( by Nezon)
83. When Annelids Collide( by W3D)
84. Worms Monkey Island( by GrenadeX)
85. Zodd( by AlexBond)

Список карт из w3d:
**********************
50 new Maps...
************

1. Aliens Planet (by AlexBond)
2. Atoms (by Mambaczarna)
3. Aztec Temple (by PlaiceHolder)
4. Boeing 747-400 (by PlaiceHolder)
5. Business Jets (by PlaiceHolder)
6. Church of The Hell (by FinnishWorm)
7. Crazy Roads (by AlexBond)
8. Cubos 9 (by PlaiceHolder)
9. Deathmatch CS (by Konter)
10. Dinos Island (by GrenadeX)
11. DNA (by AlexBond)
12. Earthworm Jim (by AlexBond)
13. F-15 Eagle (War) (by PlaiceHolder)
14. Fall of the Warlords (by AlexBond)
15. Fruits (by AlexBond)
16. Giant's Garden (by FinnishWorm)
17. Gorillaz Island (by AlexBond)
18. Hell Zombies (by AlexBond)
19. Hiroshima Disaster (by PlaiceHolder)
20. House (by FinnishWorm)
21. Kill monkey 4 (by GrenadeX)
22. LAPUTA (by PlaiceHolder)
23. Lunar Stemps X12 (by GrenadeX)
24. Lunar Stemps X13 (by GrenadeX)
25. Lunar Stemps X14 (by GrenadeX)
26. Lunar Stemps X15 (by GrenadeX)
27. Lunar Stemps X16 (by GrenadeX)
28. Lunar Stemps X17 (by GrenadeX)
29. Lunar Stemps X18 (by GrenadeX)
30. Lunar Stemps X19 (by GrenadeX)
31. Lunar Stemps X20 (by GrenadeX)
32. Lunar Stemps X21 (by GrenadeX)
33. Oh My Tetris (by FinnishWorm)
34. Pirate Castle (by PlaiceHolder)
35. Seekery Maybe (by GrenadeX)
36. Skatepark (by FinnishWorm)
37. Ski Jump (by FinnishWorm)
38. Skyscraper (by FinnishWorm)
39. Sonic The Hedgehog (by AlexBond)
40. Star Wars (by Mambaczarna)
41. The Army of the Dead (by AlexBond)
42. They Sphinx It's All Over (by AlexBond)
43. Tree ICE Trouble (by FinnishWorm)
44. Turtle Island (by FinnishWorm)
45. Veranda (by PlaiceHolder)
46. War of the Hotels (by FinnishWorm)
47. Wild West (by FinnishWorm)
48. World On Three Turtles (by FinnishWorm)
49. Worm Temple 4 (by FinnishWorm)
50. XX Palm island XX (by GrenadeX)


 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
AlexBond, очень интересно, каким образом ты делаешь перехватчик? Можешь объяснить идею?

________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Что происходит после нажатия кнопки run
1. создаем папку Data/Temp/
2. копируем /Data/MapPacks/Scripts_W3Dv1085.xml -> /Data/Temp/Scripts.xml
3. обновляем файл launcher.cfg
4. записываем данные в реестр
5. запускаем \WORMS 4 MAYHEM.EXE через CreateProcess
6. если был аспект, то:
ждем 10 секунд, выделяем память в процессе
VirtualAllocEx. Записываем туда асемблерный код вычесления аспекта WriteProcessMemory.
Меняем адресс функции glLoadMatrixf(вроде бы) на мой адресс через WriteProcessMemory
код ассемблера такой
var asmcode: array[0..25] of byte = (
($8b),($44),($24),($04), //mov eax,[esp+4]
($d9),($40),($14), //fld [eax+14]
($c7),($00),($cd),($cc),($cc),($3f), //mov [eax],$3fcccccd
($d8),($30), //fdiv [eax]
($d9),($18), //fstp [eax]
($50), //push eax
($ff),($15),($18),($64),($77),($00), //call dword ptr [$00776418]
($c2),($04)); //ret $0004

7. Если включены w3d текстуры, то:
проверяем наличие библиотеки w3dmapper.dll
Выделяем память в процессе для подгрузки этой библиотеки.
Записываем имя нашей библиотеки в память процесса.
Узнаем адресс LoadLibraryA в процессе через GetProcAddress
Создаем ветвь в процессе CreateRemoteThread
Ветвь загружает библиотеку в процесс.
ждем 5 секунд
Получаем базовый адресс загруженной библиотеки через GetModuleAdress
Узнаем абсолютный адресс нашей функции обработчика TextureLoader. И прописываем его на вызов функции fopen библиотеки msvcr71.dll в процессе.
Ждем секунду.
8. Завершаем процесс.

Далее уже работает сам обработчик TextureLoader библиотеки w3dmapper.dll:
1. Берем имя файла
2. Если режим ReDirect Сверяем имя с .txt
2.1. Если он txt, то подменяем имя файла на Data/Temp/w3dt.txt
3. открываем файл через fopen библиотекой msvcr71.dll
3.1. Если он открылся то проверяем есть ли такой .xml
3.2. Если есть то проверяем есть ли такой .xan
3.3. Узнаем что грузится карта.
3.3.1. Очищаем папки Data/Temp/Custom/ и Data/Temp/ThemeCamelot/
3.3.2. Проверяем есть ли файл .w3dt
3.3.2.1. Создаем папки Data/Temp/Custom/ , Data/Temp/Custom/Bank01 и Data/Temp/ThemeCamelot/
3.3.2.2. Вызываем функцию MakeTextures . которая копирует текстуры во временные папки по связным именам и создает файл Data/Temp/w3dt.txt
3.3.2.3. Включаем режим ReDirect.


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Итак, нужно как-то создать клон-пересылку библиотеки msvcr71.dll в которой будет моя функция TextureLoader вместо fopen

...

Спрошу на WASM.ru может помогут люди...


 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
ппц одним словом=) так же можно навешать любые действия на игру) Вопрос, что такое аспект?

________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
SW_Krash
Проверенные
Сообщений: 818
Реп: 28 / Инв: 7
Эм... у меня один вопрос я так понимаю что прогу считывающую заданные перменные из памяти игры и записывающая их в txt не так уж сложно??? или тут малость не то???

Всё что ни делается, делается в Китае(SW_Krash, 2009)
Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
Я отрицаю вашу реальность и заменяю её своей!(Адам Севидж, 200x)
OFFTOP SWEAT OFFTOP(фольклор)

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Quote (Герыч)
Вопрос, что такое аспект?

Аспект это соотношение ширины к высоте.

Вот наглядный пример

Quote (SW_Krash)
Эм... у меня один вопрос я так понимаю что прогу считывающую заданные перменные из памяти игры и записывающая их в txt не так уж сложно??? или тут малость не то???

прогу ...щую и ...щая не так уж сложно ...
Где ж ты учился мальчик =) Русский язык совсем хромает...


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Я тут вспомнил, я уже делал пересылку библиотеки. Ее просто создаешь в fasm как пустышку с адрессами. И можно заменить оригинальную. Вопрос лишь в том, создать две библиотеки, или одну...

Вариант первый

Worms 4 -> fopen -> msvcr71.dll -> TextureLoader -> w3dmapper.dll -> fopen -> msvcr72.dll

Все это может замедлить процесс...

Вариант два

Worms 4 -> fopen -> msvcr71.dll -> TextureLoader -> fopen -> msvcr72.dll

Нынешний вариант

Worms 4 -> fopen -> TextureLoader -> w3dmapper.dll -> fopen -> msvcr71.dll

Оригинал

Worms 4 -> fopen -> msvcr71.dll


 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Аспект-ясно)
SW_Krash, какие переменные имеешь ввиду?
AlexBond, по известным исходникам(сишным) возможно найти положение этого кода в памяти? на 100% уверен, они Lua тупо включили в проект с небольшими изменениями в luaconf.c и luaconf.h. Соответственно откомпилировав на том же компиляторе можно получить почти идентичный код => его реально найти. Найдя его можно сделать похожую процедуру, какую сделал ты. Соответственно можно будет сильно расширить управляемость игрой, перевесив все действия на lua


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
SW_Krash
Проверенные
Сообщений: 818
Реп: 28 / Инв: 7
Quote (AlexBond)
Где ж ты учился мальчик =) Русский язык совсем хромает...
Не учился, а учусь =) 11 класс как ни как =) да и нормально я его знаю... просто мысль формируется не сразу, поэтому падежи к концу высказывания уже путаются =))))

Quote (Герыч)
SW_Krash, какие переменные имеешь ввиду?

Ну любую переменную добавляем в xml и с помощью скрипта меняем её, а потом в txt записывай, короче альтернативный сейв =))) наверно он не пригодится зато классно было бы =)))


Всё что ни делается, делается в Китае(SW_Krash, 2009)
Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
Я отрицаю вашу реальность и заменяю её своей!(Адам Севидж, 200x)
OFFTOP SWEAT OFFTOP(фольклор)

 
Woitek
Проверенные
Сообщений: 523
Реп: 57 / Инв: 11
Alex asked me to write in Polish.
1.Przydało by się żebyś poprawił włączanie map z worms forts. Niektóre włączają się, niektóre w ogóle a niektóre z błędem. Pliki są w folderze landscapes. 4-6 maps tylko działają.
2. Zrób edytor float to hex. W sensie żeby można było edytować liczby w samym xom_view.
3. Spróbuj naprawić błąd z włączaniem niektórych plików. Na przykład małpy z arki nie pokazują się animację przez błąd.
4. Oczywiście export i import Xbone i clips.
5. Zmień nazwę na Xom_editor.
Potem powiem resztę a na razie to wszystko

--- рус ---
Alex попросил меня написать по-польски.
1. Было бы неплохо убрать пробелему с открытием карт из Worms FORTS. Некоторые из них открываются, некоторые нет, а некоторые с ошибками. Файлы в папке ландшафтах. Карты работают только 4-6.
2. Сделать редактор float to hex. В том смысле, что вы можете изменить значения в xom_view.
3. Попробуйте исправить ошибку при включении определенных файлов. Для примера, обезьяны из ковчега не показывают анимацию, ошибки.
4. Из Конечно, экспорт и импорт Xbone и клипов.
5. Изменить название на Xom_editor.
Потом еще добавлю, но сейчас это все.

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Quote (AlexBond)
Worms 4 -> fopen -> msvcr71.dll -> TextureLoader -> fopen -> msvcr72.dll

решил проверить эту штуку на деле... получился облом... Они оказывается в этой библиотеке используют функции как переменные, поэтому переадресация не работает... Жаль... Хотел сделать загрузчик для Лицензии...


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Получилось!!! Теперь карты будут работать на всех версиях и на лицензионных тоже!!!

Создал три файла:
msvcr7.dll
msvcr71.dll
w3dmapper.dll

И никакой загрузчик не нужен!!!!
Всё прекрасно работает!!!


 
MarkWarT
Проверенные
Сообщений: 497
Реп: 22
AlexBond, ты гений. Все скоро будут тебе молиться и приносить жертвы

Trading Unusual Nickname with Perfectly Straight Underlines, serious offers only
 
Alex826
Проверенные
Сообщений: 247
Реп: -2
AlexBond,Так w3dmapper.dll это не прога которой Team 17 пользовалисс когда делали мапы,облом...

 
[WEC]Snusmumr
Проверенные
Сообщений: 320
Реп: 11 / Инв: 5
Alex826, XD это компонент приложения (dll)
 
Alex826
Проверенные
Сообщений: 247
Реп: -2
[WEC]Snusmumr, В файле dll может хранится всё что угодно,не обязательно компонент приложения

 
[WEC]Snusmumr
Проверенные
Сообщений: 320
Реп: 11 / Инв: 5
Alex826, но ето тип файла такой... Компонент!! Я открывал его, и там херь какаято... типа - @#$
 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
насобираю несколько карт и выпущу новую версию загрузчика

 
[WEC]Snusmumr
Проверенные
Сообщений: 320
Реп: 11 / Инв: 5
Уррраа!!!!!
 
Форум » Моддинг » 6.3. Прочие идеи и их обсуждение » W4MapLauncher или Мега - Крэзи ИДЕЯ W4 с W3D текстурами!!!!
  • Страница 4 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск: