Posted May 08, 2013
not completely sure what are you asking there, but gamesys.dml can be used to modify (some, not all) gamesys settings and values without modifying the gamesys itself. this can be very useful for testing (if you break something, you just delete the dml) or for trying out experimental features. do note that dml is basically a programming language, so if you do not have experience in that area it will probably be quite difficult for you to actually create working fixes.
let me give you an example - the Thief1 Maw portal fix.
- first, we need to fix the borked creature positions on the cocoons that already exist in the level (the code goes to miss14.mis.dml):
DML1
ObjProp 33 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 1.00
"Model scale" 1.00
"Ballistic" true
}
ObjProp 40 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 1.00
"Model scale" 1.00
"Ballistic" true
}
ObjProp 102 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 1.00
"Model scale" 1.00
"Ballistic" true
}
ObjProp 104 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 1.00
"Model scale" 1.00
"Ballistic" true
}
ObjProp 127 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 1.00
"Model scale" 1.00
"Ballistic" true
}
ObjProp 136 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 1.00
"Model scale" 1.00
"Ballistic" true
}
ObjProp 146 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 1.00
"Model scale" 1.00
"Ballistic" true
}
ObjProp 214 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 1.00
"Model scale" 1.00
"Ballistic" true
}
this will screw up the size of some cocoons, so we need to fix that as well:
+ObjProp 118 "Scale" = 1.30, 1.30, 1.30
+ObjProp 35 "Scale" = 1.30, 1.30, 1.30
+ObjProp 103 "Scale" = 1.30, 1.30, 1.30
+ObjProp 145 "Scale" = 1.30, 1.30, 1.30
+ObjProp 219 "Scale" = 1.30, 1.30, 1.30
some waypoints also need to be moved so the creatures won't get stuck:
ObjProp 41 "Position"
{
"Location" 12, 6, 24
}
ObjProp 42 "Position"
{
"Location" 7, 6, 24
}
ObjProp 43 "Position"
{
"Location" 3, 6, 24
}
ObjProp 116 "Position"
{
"Location" 12.5, -7.5, 24.25
}
ObjProp 117 "Position"
{
"Location" 12, 6, 24.75
}
now, we need to do the same for all the creatures that are going to be spawned from the moment the level starts until it ends. this is controlled by the gamesys (gamesys.dml).
DML1
+ObjProp -4452 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 0.00
"Model scale" 1.00
"Ballistic" true
}
+ObjProp -4453 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 0.00
"Model scale" 1.00
"Ballistic" true
}
+ObjProp -4454 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 0.00
"Model scale" 1.00
"Ballistic" true
}
+ObjProp -4447 "Scale" = 1.30, 1.30, 1.30
+ObjProp -4448 "Scale" = 1.30, 1.30, 1.30
and you are done. and this is a very simple, basic fix - basically, it just tells the game to move a bunch of objects around and adjust their size.
there is no such thing as free lunch in the Dark Engine.
let me give you an example - the Thief1 Maw portal fix.
- first, we need to fix the borked creature positions on the cocoons that already exist in the level (the code goes to miss14.mis.dml):
DML1
ObjProp 33 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 1.00
"Model scale" 1.00
"Ballistic" true
}
ObjProp 40 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 1.00
"Model scale" 1.00
"Ballistic" true
}
ObjProp 102 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 1.00
"Model scale" 1.00
"Ballistic" true
}
ObjProp 104 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 1.00
"Model scale" 1.00
"Ballistic" true
}
ObjProp 127 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 1.00
"Model scale" 1.00
"Ballistic" true
}
ObjProp 136 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 1.00
"Model scale" 1.00
"Ballistic" true
}
ObjProp 146 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 1.00
"Model scale" 1.00
"Ballistic" true
}
ObjProp 214 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 1.00
"Model scale" 1.00
"Ballistic" true
}
+ObjProp 118 "Scale" = 1.30, 1.30, 1.30
+ObjProp 35 "Scale" = 1.30, 1.30, 1.30
+ObjProp 103 "Scale" = 1.30, 1.30, 1.30
+ObjProp 145 "Scale" = 1.30, 1.30, 1.30
+ObjProp 219 "Scale" = 1.30, 1.30, 1.30
ObjProp 41 "Position"
{
"Location" 12, 6, 24
}
ObjProp 42 "Position"
{
"Location" 7, 6, 24
}
ObjProp 43 "Position"
{
"Location" 3, 6, 24
}
ObjProp 116 "Position"
{
"Location" 12.5, -7.5, 24.25
}
ObjProp 117 "Position"
{
"Location" 12, 6, 24.75
}
DML1
+ObjProp -4452 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 0.00
"Model scale" 1.00
"Ballistic" true
}
+ObjProp -4453 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 0.00
"Model scale" 1.00
"Ballistic" true
}
+ObjProp -4454 "CretPose"
{
"Type" Tags
"Motion" IdleGesture
"Frac" 0.00
"Model scale" 1.00
"Ballistic" true
}
+ObjProp -4447 "Scale" = 1.30, 1.30, 1.30
+ObjProp -4448 "Scale" = 1.30, 1.30, 1.30
there is no such thing as free lunch in the Dark Engine.
Post edited May 08, 2013 by voodoo47