[ Обновленные темы · Новые сообщения · Участники · Поиск · RSS ]
Результаты поиска
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Цитата FuzzX ()
Also, its normal that when I play a map with small terrain areas, that there's still a little portion of terrain that didn't was on the map file?

No. Its not normal.

Цитата FuzzX ()
I'm actually looking for add maps without replacing on WUM, and with custom textures since I don't know how to.

With custom textures will hard... need write something like on NTX in W3D for this....
Here game not use Temp folder and all data in Bundl###.xom

So for add your map you need:
1. Add your new map to list Data\Tweak\SCRIPTS.XOM
2. Create Databank for map - example Data\MULTI_JOUSTABOUTIT.XOM
3. Add Map files:
Data\Maps\my_map.hmp
Data\Maps\my_map.txt
Data\Maps\my_map.xan
4. Change CRC code for Scripts.xom in WormsMayhem.exe


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
I tested all work.





When you add maps to Scripts.xom you need use option Insert Cntr for xomview.
1. you select any w3d map in list and press Export Cntr
2. you change names in this new Xom to your map
3. you insert your map Cntr to Scripts.xom

I attached files of this test, try change in exe crc for scripts.xom
how writed in crc.txt
Код
Original SCRIPTS.XOM DE100F13 - 13 0F 10 DE
New SCRIPTS.XOM 35592E89  - 89 2E 59 35

If should work.

Maybe this files help you understand how it work.
If no, I will try make tutorial...
Прикрепления: WormsXHD.rar (181.4 Kb)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Модинг игры был запрещен Team17, для этого они специально создали проверку CRC кодов.
Можно конечно заменять эти коды, при каждой правке, но зачем? =)

Итак тут я постараюсь показать как я ломал игру:



Как мы видим все что нужно это изменить код 75 4D на EB 00 находящийся по адресу 00234A18.
И больше нет головной боли по поводу замены CRC!!!
Теперь можно править что угодно!!!


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
FuzzX, this your pay for hack game =)
Also you can open all missions use XomView. Heh =)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Цитата Вормус ()
С этим можно все существующие здесь моды адаптировать под W:UM?

По поводу всех не знаю. Но адаптация - это ручной ввод из xml файлов в xom... плюс замена ресурсов игры так же ручная... Мало кто этим будет заниматься.
Да и сказать честно WUM - отстой полный, я в него больше минуты играть не могу, там физика игры ужаснейшая, графика отстойнешняя...


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Вормус, потенциал имеется, фин c войтеком уже делают DM 21, у меня в планах сделать миссию с Боссом, но когда я до этого доберусь... может в следующем году =)

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

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
До миссий еще не дошел, но новые DM это жесть просто. С трудом можно пройти, то ли комп поумнел, то ли я стал плохо играть =)

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Man your icon panel is sucks... use alpha!!! =)

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Your words is nothing!!! Screens pls!!!!!!

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Кое-что изменил в xomview'е. Теперь при редактировании расположения зданий они не в виде иконок, а в виде простейших 3d объектов.



 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
your code in IDA:
Код

  NumBuilds = v8->NumBuilds;
   v37 = v8->NumBuilds;
   v10 = (str_builds->BuildsPoints[NumBuilds] + 28);
   (*(v7->func + 4))(v11, str_builds, v7);
   if ( *v10 )
     (*(**v10 + 8))(*v10);
   *v10 = v7;
   ++v8->NumBuilds;


We have big problem. T17 used structures what have Array [64] so you cant change this value!!!

here it initialise:
Код

   buildpt = a1->BuildsPoints;
   numBuilds = 64;
   do
   {
     if ( *buildpt )
       (*(**buildpt + 8))(*buildpt);
     *buildpt = 0;
     buildpt += 4;
     --numBuilds;
   }
   while ( numBuilds );


a1->BuildsPoints; this Array [64] of objects... and this structure have many values. So you cant change size of structure... for this need recompile all EXE!!!


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Update:
For convert W4 XML scripts to W3D Lua I writed new programm



Для перевода W4 скриптов в W3D я написал новую программу.


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Решил я поиграться с IDA скриптингом, и вот что у меня получилось. Мой скрипт для IDA достает инфу из EXE файла. Вот пример на типе ParticleEmitterContainer, с комментами вшитыми в класс.

Код
== Reading XConteiner Info ===
<ParticleEmitterContainer>
ParticleEmitterContainer.Comment <XString>
//    Description of the emitter. PLEASE FILL THIS IN!
ParticleEmitterContainer.EmitterType <XEnum>
// ParticleTypeEnum
/* enum    kNormal
kSnow
kRain
kTrail
*/
ParticleEmitterContainer.SpriteSet <XString>
//    Resource ID of the sprite used to render the perticle
ParticleEmitterContainer.MeshAnimNodeName <XString>
//    Animation frame(s) for XOM mesh particles. Syntax '[loop:]<NodeName1> [+|,[loop:]<NodeName2]...]. To Loop animation start with 'Loop:'. To play animations simultaneously use '+'. To play animations in sequence use ','. Any number of animations can be played
ParticleEmitterContainer.EmitterAcceleration <XVector3f>
//    Accelaration of the EMITTER
ParticleEmitterContainer.EmitterAccelerationRandomise <XVector3f>
//    Accelaration of the EMITTER
ParticleEmitterContainer.EmitterIsAttachedToLand <XBool>
//    If set then the emmiter will die if the land directly below it disappears
ParticleEmitterContainer.EmitterIsOfInterest <XBool>
//    If set then the current turn will not end until the emitter dies
ParticleEmitterContainer.EmitterIsLaunchedFromWeapon <XBool>
//    If set then the emitter will come the end of the weapon
ParticleEmitterContainer.EmitterLifeTime <XUint>
//    Lifetime of the emitter (in ms)
ParticleEmitterContainer.EmitterLifeTimeRandomise <XUint>
//    Lifetime of the emitter (in ms)
ParticleEmitterContainer.EmitterMaxParticles <XUint>
//    Maximum number of particles visible
ParticleEmitterContainer.EmitterNumCollide <XUint>
//    How many of MaxParticles will collide with the ground. VERY EXPENSIVE so keep low!
ParticleEmitterContainer.EmitterNumSpawn <XUint>
//    Number of particles the emitter will spawn at once
ParticleEmitterContainer.EmitterNumSpawnRadnomise <XUint>
//    Number of particles the emitter will spawn at once
ParticleEmitterContainer.EmitterOriginOffset <XVector3f>
//    Position of the emitter (relative to the emitter's origin)
ParticleEmitterContainer.EmitterOriginRandomise <XVector3f>
//    Position of the emitter (relative to the emitter's origin)
ParticleEmitterContainer.EmitterParticleExpireFX <XString>
//    Particle emitter to spawn when EACH particle expires - EXPENSIVE!
ParticleEmitterContainer.EmitterParticleFX <XString>
//    Particle emitter effect to attatch to EACH particle - EXPENSIVE!
ParticleEmitterContainer.EmitterSameDirectionAsWorm <XBool>
//    If set then particles will be emitted in the direction the worm is facing
ParticleEmitterContainer.EmitterSoundFX <XString>
//    Sound effect to play when the emitter is created
ParticleEmitterContainer.EmitterSoundFXVolume <XFloat>
//    Volume of the Sound effect
ParticleEmitterContainer.EmitterSpawnFreq <XUint>
//    How frequently the emitter will spawn particles (in ms)
ParticleEmitterContainer.EmitterSpawnFreqRansomise <XUint>
//    How frequently the emitter will spawn particles (in ms)
ParticleEmitterContainer.EmitterSpawnSizeVelocity <XVector2f>
ParticleEmitterContainer.EmitterStartDelay <XUint>
//    Delay before the emitter starts emitting prarticles (in ms)
ParticleEmitterContainer.EmitterVelocity <XVector3f>
//    Velocity of the EMITTER
ParticleEmitterContainer.EmitterVelocityRandomise <XVector3f>
//    Velocity of the EMITTER
ParticleEmitterContainer.ParticleAcceleration <XVector3f>
//    Acceleration of the particles. (Set Y to a negative value for gravity)
ParticleEmitterContainer.ParticleAccelerationRandomise <XVector3f>
//    Acceleration of the particles. (Set Y to a negative value for gravity)
ParticleEmitterContainer.ParticleAlpha <XFloat>
//    Initial alpha of the particle ( Between 0 & 1)
ParticleEmitterContainer.ParticleAlphaFadeIn <XUint>
//    Time until the alpha value reaches the value set in the ParticleAlpha files (i.e length of fade in )
ParticleEmitterContainer.ParticleAlphaVelocity <XFloat>
//    How the alpha changes over time. Set to -1 to fade out over lifetime
ParticleEmitterContainer.ParticleAlphaVelocityDelay <XUint>
//    Delay before alpha velocity is applied (in ms)
ParticleEmitterContainer.ParticleAlternateAccelerationN <XFloat>
ParticleEmitterContainer.ParticleAlternateAccelerationS <XFloat>
ParticleEmitterContainer.ParticleAnimationFrame <XUint8>
//    Inital Animation frame of the particle
ParticleEmitterContainer.ParticleAnimationFrameRandomise <XUint8>
//    Inital Animation frame of the particle
ParticleEmitterContainer.ParticleAnimationSpeed <XUint>
//    Speed to animate (in ms)
ParticleEmitterContainer.ParticleAnimationSpeedRandomize <XUint>
//    Speed to animate (in ms)
ParticleEmitterContainer.ParticleAttractor <XVector3f>
//    Position (relative to the emitter origin) that the particles attract towards
ParticleEmitterContainer.ParticleAttractorRandomise <XVector3f>
//    Position (relative to the emitter origin) that the particles attract towards
ParticleEmitterContainer.ParticleAttractorIsActive <XBool>
//    Enable attract to point mode
ParticleEmitterContainer.ParticleCanEnterWater <XBool>
//    If set to false then particles will expire when they hit the water
ParticleEmitterContainer.ParticleCollisionFreq <XUint>
//    Which particles collide with the worms ie Every n particle will do collision detection
ParticleEmitterContainer.ParticleCollisionImmuneTime <XUint>
//    Time (in MS) until the particle can re-collide with a worm.
ParticleEmitterContainer.ParticleCollisionMinAlpha <XFloat>
//    If the alpha of the particles is below this value then don't collide with a worm
ParticleEmitterContainer.ParticleCollisonRadius <XFloat>
//    Size of the collision sphere of the particle
ParticleEmitterContainer.ParticleCollisonRadiusOffset <XVector3f>
ParticleEmitterContainer.ParticleCollisonRadiusVelocity <XFloat>
//    How the collision sphere radius changes over time
ParticleEmitterContainer.ParticleCollisionShowDebug <XBool>
ParticleEmitterContainer.ParticleCollisionWormDamageMagnitude <XUint8>
ParticleEmitterContainer.ParticleCollisionWormImpulseMagnitude <XFloat>
ParticleEmitterContainer.ParticleCollisionWormImpulseYMagnitude <XFloat>
ParticleEmitterContainer.ParticleCollisionWormPoisonMagnitude <XUint8>
ParticleEmitterContainer.ParticleCollisionWormType <XEnum>
// WormCollideEnum
/* enum    kWC_Standard
kWC_Expire
kWC_Lightside
kWC_Darkside
*/
ParticleEmitterContainer.ParticleExpireShake <XBool>
//    Shake the camera when EACH particle dies
ParticleEmitterContainer.ParticleExpireShakeLength <XUint>
//    Length of the camera shake when EACH particle dies (in MS)
ParticleEmitterContainer.ParticleExpireShakeMagnitude <XFloat>
//    Strength of the camera shake when EACH particle dies
ParticleEmitterContainer.ParticleIsAlternateAcceleration <XBool>
//    If set then particles will come out fast & then quickly slow down
ParticleEmitterContainer.ParticleIsEffectedByWind <XBool>
//    If set then particles will be blown by the wind
ParticleEmitterContainer.ParticleIsSpiral <XBool>
//    If set then particles will spiral upwards
ParticleEmitterContainer.ParticleIsUnderWaterEffect <XBool>
//    If set then particles will die when the reach the water level (from under the water
ParticleEmitterContainer.ParticleLandCollideType <XEnum>
// LandCollideEnum
/* enum    kLC_None
kLC_Bounce
kLC_Expire
kLC_StopMoving
kLC_StopMovingAndAttach
*/
//    What to do when the particle collides with the land (NumCollide must be set too)
ParticleEmitterContainer.ParticleLife <XUint>
//    Lifetime of each particle (in ms)
ParticleEmitterContainer.ParticleLifeRandomise <XUint>
//    Lifetime of each particle (in ms)
ParticleEmitterContainer.ParticleMass <XFloat>
//    Mass of the particles
ParticleEmitterContainer.ParticleNumColors <XByte>
//    The number of colours in the particle effect
ParticleEmitterContainer.ParticleNumFrames <XByte>
//    Number of animation frames
ParticleEmitterContainer.ParticleOrientation <XVector3f>
//    Rotation of the particle (in degrees)
ParticleEmitterContainer.ParticleOrientationRandomise <XVector3f>
//    Rotation of the particle (in degrees)
ParticleEmitterContainer.ParticleOrientationVelocity <XVector3f>
//    How the rotation changes over time
ParticleEmitterContainer.ParticleOrientationVelocityRandomise <XVector3f>
//    How the rotation changes over time
ParticleEmitterContainer.ParticleSize <XVector2f>
//    Size of the particles
ParticleEmitterContainer.ParticleSizeOriginIsCenterPoint <XBool>
//    If set then the particle will be sizes around it's center point, rather than the bottom left corner
ParticleEmitterContainer.ParticleSizeRandomise <XFloat>
//    Size of the particles
ParticleEmitterContainer.ParticleSizeVelocity <XVector2f>
//    How the size changes over time
ParticleEmitterContainer.ParticleSizeVelocityRandomise <XVector2f>
//    How the size changes over time
ParticleEmitterContainer.ParticleSizeVelocityDelay <XUint>
//    Delay until the particle starts resizing
ParticleEmitterContainer.ParticleSizeVelocityDelayRandomise <XUint>
ParticleEmitterContainer.ParticleFinalSizeScale <XVector2f>
//    The size of the particle when it's finshed (dies). This value is a scale factor. eg set to (0.25,0.25) to make it shrink to a quater of it's original size when by the time it dies
ParticleEmitterContainer.ParticleFinalSizeScaleRandomise <XFloat>
ParticleEmitterContainer.ParticleSizeFadeIn <XUint>
//    Time taken (in MS) to fade the size of the particles from zero to their actual size
ParticleEmitterContainer.ParticleSizeFadeInRandomize <XUint>
ParticleEmitterContainer.ParticleSizeFadeInDelay <XUint>
//    Don't start fading in the size of the particles until this time
ParticleEmitterContainer.ParticleSizeFadeInDelayRandomize <XUint>
ParticleEmitterContainer.ParticleRenderScene <XEnum>
// ParticleSceneEnum
/* enum    kPS_Default
kPS_Scene1
kPS_Scene2
kPS_Scene3
kPS_Scene4
kPS_Scene5
*/
//    Order in which to render the particles. Scene1 will always be rendered before Scene2 and so on
ParticleEmitterContainer.ParticleSpiralRadius <XFloat>
//    Radius of the spiral effect
ParticleEmitterContainer.ParticleSpiralRadiusRandomise <XFloat>
ParticleEmitterContainer.ParticleSpiralRadiusVelocity <XFloat>
//    How fast the particles move around the spiral radius
ParticleEmitterContainer.ParticleSpiralRadiusVelocityRandomise <XFloat>
ParticleEmitterContainer.ParticleSpiralRadiusSizeVelocity <XFloat>
//    How the spiral radius changes over time
ParticleEmitterContainer.ParticleVelocity <XVector3f>
//    Velocity of the particles
ParticleEmitterContainer.ParticleVelocityRandomise <XVector3f>
ParticleEmitterContainer.ParticleVelocityIsNormalised <XBool>
== Reading XConteiner end ===


P.S. Знаю где-то это на форуме уже было, но тут более детальное описание некоторых Enum типов.


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
После просьбы моего друга фина, известного под ником GX, убрать ошибку в игре на загрузку HD HUD'а при больших картах, я начал копать Worms3D.exe. И добрался до интересной информации в Worms3D.Exe .
Все ограничения на память загружаемых ресурсов являются текстовыми константами!!!
И если поменять эти значения игра расширяет область памяти автоматически!!!

Вот эти константы:

Код

XString.ArenaSize = 1500000
XContainer.ArenaSize = 4000000
MField.ArenaSize = 32000000
XLua.ArenaSize = 196608
ScriptArena.ArenaSize = 131072
AnimArena.ArenaSize = 3000000
ParticleObjects.ArenaSize = 524288
LandArena.ArenaSize = 524288
AiArena.ArenaSize = 270000
ObjectRegArena.ArenaSize = 8192
InputArena.ArenaSize = 24576
CameraArena.ArenaSize = 8192
MessageRelayArena.ArenaSize = 8192
FrontendArena.ArenaSize = 8192
OtherStuffArena.ArenaSize = 16384
XLua.ArenaSize = 262144
ParticleEmmiter.ArenaSize = 12288   

DRM.MaxInstances = 4330   
DRM.MaxHooks = 512
MRS.MaxMessages = 901
MRS.MaxInterests = 4096
GRM.MaxBitmaps = 700
GRM.MaxMeshes = 500
GRM.MaxCustom = 100
GRM.MaxSpriteSets = 200   
GRM.MaxText = 150   
GRM.MaxNulls = 200
XOM.Arena.LogEvents = 0
XOM.EventLog.Enable = 0
XOM.EventLog.BufferSize = 64000000
XOM.EventLog.UseHighMemory = 1
XOM.EventLog.Pipe.MaxSendInterval = 10000
XOM.EventLog.Pipe.MaxPacketSize = 1000
XOM.EventLog.Pipe.BufferSize = 100000   
Core.MaxTasks = 512
Core.MessageBufferSize = 32768
Core.MaxLogicTasks = 128
Core.MaxServiceTasks = 64



По ошибке которая возникала при нехватки видеопамяти я вышел на MField.ArenaSize = 32000000. В среднем это 32 Мегабайта.
Я изменил этот размер до 96мб и о чудо!!! Карта загрузилась без ошибок!

Так же сегодня Woitek ругался на ограничения в Lua, якобы нельзя писать более 128 функций. И после моего совета он увеличил
XLua.ArenaSize = 999999
ScriptArena.ArenaSize = 999999


После чего игра стала воспринимать большее количество функций!!!

Опытным путем я установил так же что большие карты вылетают по ограничению LandArena.ArenaSize. Но когда я увеличивал память игра попросту зависала. поэтому это не выход. Ну что может выход будет найден в будущем. Но то что мы уже можем использовать HD текстуры в W3D не боясь за вылеты это факт!!!


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
WUM constaints
Код
DRM.MaxInstances = 8000
DRM.MaxHooks = 1024
MRS.MaxMessages = 1300
MRS.MaxInterests = 4096
GRM.MaxBitmaps = 900
GRM.MaxMeshes = 550
GRM.MaxCustom = 100
GRM.MaxSpriteSets = 300
GRM.MaxText = 500
GRM.MaxNulls = 400
XOM.EventLog.BufferSize = 1000000
XOM.EventLog.UseHighMemory = 1
XOM.EventLog.Pipe.MaxSendInterval = 10000
XOM.EventLog.Pipe.MaxPacketSize = 1000
XOM.EventLog.Pipe.BufferSize = 100000
Core.MaxTasks = 800
Core.MessageBufferSize = 1048576
Core.MaxLogicTasks = 192
Core.MaxServiceTasks = 80
XOM.XomClass.InstanceIdTag = 0
XOM.XomClass.StacktraceTag = 0
XOM.ExportClasses = 0
XOM.LogFile = 1


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Кто-то играет в WUM??? И хочет новых карт, тогда это для вас, сборка от GX

- Mega Map Pack Version v6.0

- Added (195 New Multi-player) Levels
- Maps is added to Gametypes: *Deathmatch* And *Survivor*

Если кому интересно данное чудо, то ссылки ниже

http://steamcommunity.com/app/70600/discussions/0/540732596477339051/
http://steamcommunity.com/sharedfiles/filedetails/?id=407813444

https://mega.nz/#!NN0w2YSC!fml6p6h2AUNBril_9g3grfpLSplfRcuqLKE26-04YOA
https://drive.google.com/file/d/0B-HMGLCOH7Vncmszb1Nac1NxVTQ/view



 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Zodd из манги Berserk

http://bestiarumart.deviantart.com/art....0603954


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Impossible, sorry bones will not work, only model without bones can be

 
Поиск: