A Community discussion forum for Halo Custom Edition, Halo 2 Vista, Portal and Halo Machinima

Home  Search Register  Login Member ListRecent Posts
  
 
Viewing User Profile for: MosesofEgypt
About Contact
Joined: Apr 3, 2013 04:12 PM
Last Post: Yesterday @ 04:28 PM
Last Visit: Today @ 08:15 AM
Website:  
Location:
Occupation:
Interests:
Your Age:
What Games do you play:
Avatar:


Send Private Message
Post Statistics
MosesofEgypt has contributed to 377 posts out of 464602 total posts (.08%) in 1,693 days (.22 posts per day).

20 Most recent posts:
Halo CE General Discussion » hek + installer says i need .net framework Yesterday @ 04:28 PM (Total replies: 3)

HEK+ breaks lots of tags when it extracts them and cant handle open sauce maps. That's why I wrote Refinery:
http://forum.halomaps.org/index.cfm?page=topic&topicID=50247


It requries python 3.5 or higher, but it's a perfect tag ripper and more. Everything hek+ can do, Refinery can do better.


EDIT: Lol at Matt beating me by ~2 minutes
Edited by MosesofEgypt on Nov 19, 2017 at 04:55 PM

Halo CE General Discussion » [BETA RELEASE] Refinery 0.7 Nov 18, 2017 10:35 AM (Total replies: 80)

This is a bug caused by SOMEONE extracting that tag with HEK+ before compiling it into that map, which caused some open sauce reflexive headers to exist without their struct arrays. Since Refinery can read open sauce tags, it tries to read the reflexive in that shader, but it cant because it didn't actually get extracted. It's trying to read 16777216 structs in that shaders os_shader_model_extension reflexive.

I have checks in place to detect corrupt reflexives for this exact reason when parsing a tag from a map, but apparently it wasn't enough. I've added another check which fixes the issue. Go ahead and run the updater to get the fix.


Nope, no html for me, just that bbcode for the image. Also, maybe try making a hexadecahedron and see if that works for occluding weather. Would certainly prove my theory and make your tutorial more complete.


Interesting. From looking at the tag it appears that each polyhedra is defined by a sphere which the polyhedra planes jut off of based on their plane vector's angle and distance from center. From looking at it, it appears that they can be more complex than boxes, but unless I have some proof I'm not going to guarantee this.

EDIT: After taking a good look at it I believe the way it stores the polyhedra is by fitting a sphere around each one, and calculating planes that make up each face.

This is actually pretty efficient since they can could use this to quickly check if a point is definitely NOT inside the polyhedra, meaning a particle CAN spawn(just check if the distance from the point to the sphere's center is greater than the radius). If it IS inside the sphere, they just need to test if the point is behind each of the planes inside the polyhedra.

I'm not 100% certain, but this SHOULD mean that weather polyhedra MUST be convex objects. According to guerilla they can have up to 16 coplaner faces, just as long as the object is convex.

Edited by MosesofEgypt on Nov 17, 2017 at 04:23 PM
Edited by MosesofEgypt on Nov 17, 2017 at 11:57 PM

Halo CE General Discussion » Help With Sapien Editing! Nov 9, 2017 04:23 PM (Total replies: 16)

You're going to need to be more verbatim with your explanations of what you're doing. What do you mean "press the mek". Fully form your responses before you respond. You aren't the first person to talk like this and you wont be the last, but without usable information I cannot help you.

What is the current state of your machine? Do you have python installed? What version? If you cant run mek_installer.pyw then you don't have python installed.

Halo CE General Discussion » Help With Sapien Editing! Nov 9, 2017 04:13 PM (Total replies: 16)

Run the mek's installer again and hit install, but this time check "show detailed information" and show me what the installer spits out.

Halo CE General Discussion » Help With Sapien Editing! Nov 9, 2017 01:38 PM (Total replies: 16)

I linked you to the installer which contains the mek's setup file, a readme on how to install the mek, and 2 python installers. Do what the readme says. Texource is an entirely different program than mozzarilla, but they are both in the MEK.


EDIT: You didn't properly install the MEK. It can't find mozzarilla. If you chose the portable install then don't move the files it created out of the MEK. They have to be in there with the mek_lib folder. I recommend you dont do a portable install if you plan to move the files around.
Edited by MosesofEgypt on Nov 9, 2017 at 02:15 PM

Halo CE General Discussion » Help With Sapien Editing! Nov 9, 2017 08:14 AM (Total replies: 16)

LITERALLY DO WHAT I SAID. The scenario file is not all a map is. A map consists of thousands of individual files that link together. The scenario references the sentinel.biped tag, which references a sentinel.gbxmodel tag, which references shaders which reference bitmaps. You can think of this as a "tree" of dependencies. You NEED EVERY SINGLE ONE of the tags in this tree to be in your tags directory. If even one is missing it wont load in sapien.



I have written a tool that will literally scan through every tag in a tags directory and tell you which tags point to a tag that is missing. It will tell you which tag is missing, which tag needs it, and the name of the field in the tag that needs it.



If you do what I said earlier you will have this tool to use.

Halo CE General Discussion » Help With Sapien Editing! Nov 8, 2017 09:25 PM (Total replies: 16)

Install the MEK, run Mozzarilla, set your tags directory to your halo custom edition one, go into its tools section, run the tags directory scanner, hit "select all" and hit run. When it finally finishes it'll tell you which tags in that folder are trying to reference another tag that is missing.

http://forum.halomaps.org/index.cfm?page=topic&topicID=50424
Edited by MosesofEgypt on Nov 8, 2017 at 09:36 PM

Halo CE General Discussion » Final update to the MEK Nov 4, 2017 01:25 AM (Total replies: 13)

So as it turns out, the visual studio 2017 build tools(the ones the MEK's installer tells you need to be installed) are actually broken when used for 2015 stuff because of microsoft:
https://developercommunity.visualstudio.com/content/problem/22031/unusable-vc-build-tools-2015-installed-with-vs2017.html

I have modified the installer in a few ways, and one of those ways is that it now points you to the 2015 build tools(which do work), though they require around 120MB of space to install(you will need to uninstall any VS2017 related build tools to get the 2015 ones to work). You can get the new installer by just running the old one and letting it update the mek's programs. The new installer will also now tell you if an installer different than the one you currently have was downloaded, and stop the installation and tell you to run the new one instead.

In case anyone is confused, these build tools are required for the bitmap processing accelerator modules to work. Without them, viewing bitmaps will be really slow unless you have a high end machine.





Fricken microsoft.


Also, Gir, I don't know what large sound issues you're talking about, and you aren't giving anywhere near enough information when you say "broken bsp's" for me to give a meaningful response. Care to elaborate?
Edited by MosesofEgypt on Nov 5, 2017 at 06:30 PM

Halo CE General Discussion » Final update to the MEK Oct 27, 2017 11:33 PM (Total replies: 13)

I'll start off by saying that this is likely going to be the last major update the MEK will receive since I'm leaving the HCE modding community after this. I might still lurk and respond to and fix bugs, but don't expect to see me adding features to Mozzarilla/Refinery or making new tools.

My leaving isn't due to spite or me thinking the community is dying or anything, but rather I believe I've done what I set out to do by making these tools. The only other tool I might've wanted to make would have been a supplement to Arsenic, where it would optimize a tags directory so they would work better on Xbox by converting tag types, downrezzing certain bitmaps, changing bitmap formats, fixing hud and widget tags, etc.

I don't have the motivation or time to make that though, and HBOC will allow you to easily do most of the bitmap conversion you'll need. I have included in the MEK my old list of tips for converting PC maps to xbox. These were things I discovered years ago when getting Maridia to work on Xbox. These tips were collected while working with Arsenic 2.0.0.9 though, so some of them might not apply to the newest version.



Anyway, on to what's new:

The MEK's installer has been revamped to be able to download changes to the MEK without you having to actually download the repository yourself. All you need to install the MEK is the python installer and the MEK installer. When the installer downloads updates from the MEK it will also replace the installer with any newer version of itself that it finds, so the installer will always be up to date.

The MEK installer will also now give better/more information on what was installed and any issues that need to be addressed. I have also cleaned up some aspects of the readme's and removed unnecessary files from the MEK download, so it's a bit more organized and much smaller.

Mozzarilla and Refinery can now display bitmaps like Guerilla, however they have more options with how they do it.

  • You can display cubemaps as a "t" shape now instead of a strip of cube faces

  • 3d textures can now be viewed as vertical slices rather than a single long strip

  • You can now have it display a dashed box around sprites so you can easily see where that sprite is in the bitmap.

  • You can export the selected bitmap to dds, tga, and png files(png wont have transparency exported though due to most editing programs not allowing you to separate the transparency from the color)

  • All places in tags that reference bitmap tags(and can ONLY reference bitmap tags) now have a "preview" button next to them so you can preview a bitmap without having to open the bitmap tag(does NOT apply to Refinery).

  • You can now view bitmaps with RGB channels shown, or the individual A, R, G, or B channels shown, OR have it mask the RGB with the alpha and show ARGB. This will allow you to see individual channels in a multipurpose map as greyscale images.

  • Swizzled and padded xbox textures will display correctly.



In order for the bitmap preview to work though, I had to write C extensions that must be compiled(more or less) for each machine. Once you install the MEK, the installer will give you additional instructions for how to get the C extensions compiled. If you don't want to go through the trouble you don't have to. All the programs will work just fine, but anything involving bitmap processing will be as much as 100x slower than it would be with the extensions.



Here is a copy+paste of most of the readme.txt
The MEK(Mo's Editing Kit) is my collection of tools I've made for editing Halo.
This will be updated whenever I commit changes, which means you guys can check in
whenever to see if something is new.

Here's a quick rundown of what each thing is as of the time of me writing this:


Halo_Bitmap_Optimizer_&_Converter:
A program for optimizing entire directories of bitmap tags and converting them to/from
different formats and to/from xbox. Read hboc readme.txt for more details.


Halo_TeXource:
Capable of ripping the uncompressed source textures from a directory of tags to tga files.


Mozzarilla:
A tag editor that almost entirely replaces and surpasses Guerilla(can't preview sounds).
Read mozzarilla readme.txt for more details.


Mozzarilla(console):
Same as the above, except it runs with a console window so you get a printout of errors if
it crashes when starting up.


Refinery:
A new tag extractor that works for all types of Halo 1 maps and can extract open sauce tags
and MUCH more. Read the refinery_readme.txt for more information.


The Map Editor:
Decided to get in on this stupid meme. This is literally just Refinery with a different title.




The MEK also contains a scripts folder with any Maxscripts that I've made or modified.
Currently there are Gbxmodel Importer and an Animation Importer scripts, which are
both modified variants of TheGhost's scripts.

The model importer is now also capable of importing xbox models, and shader bugs found
in previous versions as well as various crash related bugs have been fixed.

The animation importer can now import model_animiation_yelo tags, can use xbox models
when prompted for a model, and has been fixed to work with tags containing more than
255 reflexives. This means you can finally open tags that have 256 or more animations.




Installation:

1. Install python 3.5 or higher(newest version is recommended)
When installing, make sure to check "Add python to PATH"
2. Run MEK_Installer.pyw
3. Choose whether or not to install it in a portable fashion(to
a local directory) or to the machine you are running.
4. Click "Install"

Mozzarilla and all the programs in the MEK should be ready to run now by double clicking.

Troubleshooting:

* If programs wont run at all, add the version of python you installed to your PATH
environment variable. Google how to do that.

* If programs wont load or save tags then you have a permissions issue where python isnt
being allowed to modify/make files in the directory you are in.

One potential way to fix this is to locate your python installation, right click python.exe,
and set it to run with administrator privileges. Do the same for pythonw.exe.

Some users claim that this fix prevents their python programs from running at all, so if it
does then undo that administrator change and change the folder permissions on the folder
you are trying to edit tags in. It turns out that this is caused by certain versions of
windows due to some of their security measures, like UAC.

* If you changed config settings and now it wont load or stuff is too screwed up to use,
delete the config. You can find it at PYTHON\Lib\site-packages\mozzarilla\mozzarilla.cfg
where PYTHON is the location of your python installation. If you don't know where this is,
you can find it in your PATH variable. If not, then go looking lol.


Updating:

1. Run MEK_Installer.pyw
2. Click Update



MEK Installer and Python 3.5.4 Installer download:
http://haloce3.com/downloads/applications/mos-editing-kit-installer/


tl;dr
I'm leaving HCE modding, there is one final update to the MEK with a self-updating installer, mozz and refinery can now display bitmaps, and to allow them to display bitmaps you may need to follow the some instructions that pop up after the installer finishes.
Edited by MosesofEgypt on Nov 9, 2017 at 08:19 AM

Halo CE General Discussion » [BETA RELEASE] Refinery 0.7 Oct 18, 2017 08:33 PM (Total replies: 80)

Uninstall your current version of python3 and install the 64 bit version of it. 32 bit python on 64 bit systems is limited to 2GB of addressable memory. Python is asking the system to reserve space for the entire length of each mapfile refinery is loading(at least that's what I'm assuming is going on, even if it doesnt show up as using that much), which can cause it to run out of memory. 64 bit python doesnt have this limitation.

Halo CE General Discussion » Update: I might quit modding Halo CE PC soon Oct 17, 2017 02:47 PM (Total replies: 14)

Dead Hamster is right, and come on MEGA, this guy has actually been trying even though he's been hitting tons of walls(SPV3's buggyness and my tools not being completely perfect being two of them).

Gir, I promise you that you won't have anywhere near the flexibility and control you might be expecting with newer Halo games. We just don't have the intimate knowledge of their systems and file structures that we do with Halo CE. I mean, I literally wrote an entirely new editor for Halo CE mostly using information gleamed from using the current editors to make files, then inspect the files in a hex editor. If I were to do this with Halo 3+ files I'd only be able to find maybe, 20% of the information I need to actually need to make an editor(and that would be entirely information learned from more hardcore reverse engineers like kornman00 and all the other pioneers I'm forgetting).

I guess what I'm saying is that you should get to know the limitations of what you're planning to work with before deciding to jump ship. You might be able to change AI placement and commands(idk, just assuming), but you will probably have a hell of a time making custom models and sounds in any capacity. Also, keep in mind that any mods you make will either have to be shared with other jtag'd users, or will stay limited to your console.



Just to show you what I mean, here is the AI pathfinding data structures(used to help ai navigate the level) as you'd find in the program Assembly.

<reflexive name="AI Pathfinding Data" offset="0x3C8" visible="false" entrySize="0x6C">
<reflexive name="Unknown" offset="0x0" visible="false" entrySize="0x24">
<undefined name="Unknown" offset="0x0" visible="false" />
<float32 name="Unknown" offset="0x4" visible="false" />
<float32 name="Unknown" offset="0x8" visible="false" />
<float32 name="Unknown" offset="0xC" visible="false" />
<int16 name="Unknown" offset="0x10" visible="false" />
<int16 name="Unknown" offset="0x12" visible="false" />
<float32 name="Unknown" offset="0x14" visible="false" />
<float32 name="Unknown" offset="0x18" visible="false" />
<float32 name="Unknown" offset="0x1C" visible="false" />
<int16 name="Unknown" offset="0x20" visible="false" />
<int16 name="Unknown" offset="0x22" visible="false" />
</reflexive>
<reflexive name="Unknown" offset="0xC" visible="false" entrySize="0x48">
<undefined name="Unknown" offset="0x0" visible="false" />
<float32 name="Unknown" offset="0x4" visible="false" />
<float32 name="Unknown" offset="0x8" visible="false" />
<float32 name="Unknown" offset="0xC" visible="false" />
<int16 name="Unknown" offset="0x10" visible="false" />
<int16 name="Unknown" offset="0x12" visible="false" />
<float32 name="Unknown" offset="0x14" visible="false" />
<float32 name="Unknown" offset="0x18" visible="false" />
<float32 name="Unknown" offset="0x1C" visible="false" />
<int16 name="Unknown" offset="0x20" visible="false" />
<int16 name="Unknown" offset="0x22" visible="false" />
<float32 name="Unknown" offset="0x24" visible="false" />
<float32 name="Unknown" offset="0x28" visible="false" />
<float32 name="Unknown" offset="0x2C" visible="false" />
<int16 name="Unknown" offset="0x30" visible="false" />
<int16 name="Unknown" offset="0x32" visible="false" />
<float32 name="Unknown" offset="0x34" visible="false" />
<float32 name="Unknown" offset="0x38" visible="false" />
<float32 name="Unknown" offset="0x3C" visible="false" />
<int16 name="Unknown" offset="0x40" visible="false" />
<int16 name="Unknown" offset="0x42" visible="false" />
<undefined name="Unknown" offset="0x44" visible="false" />
</reflexive>
<reflexive name="Unknown" offset="0x18" visible="false" entrySize="0x8">
<int16 name="Unknown" offset="0x0" visible="false" />
<int16 name="Unknown" offset="0x2" visible="false" />
<int16 name="Unknown" offset="0x4" visible="false" />
<int16 name="Unknown" offset="0x6" visible="false" />
</reflexive>
<reflexive name="Unknown" offset="0x24" visible="false" entrySize="0x8">
<int32 name="Unknown" offset="0x0" visible="false" />
<undefined name="Unknown" offset="0x4" visible="false" />
</reflexive>
<reflexive name="Unknown" offset="0x30" visible="false" entrySize="0x10" align="0x8">
<undefined name="Unknown" offset="0x0" visible="false" />
<reflexive name="Unknown" offset="0x4" visible="false" entrySize="0x1C">
<undefined name="Unknown" offset="0x0" visible="false" />
<undefined name="Unknown" offset="0x4" visible="false" />
<undefined name="Unknown" offset="0x8" visible="false" />
<undefined name="Unknown" offset="0xC" visible="false" />
<undefined name="Unknown" offset="0x10" visible="false" />
<undefined name="Unknown" offset="0x14" visible="false" />
<undefined name="Unknown" offset="0x18" visible="false" />
</reflexive>
</reflexive>
<reflexive name="Unknown" offset="0x3C" visible="false" entrySize="0xC">
<reflexive name="Unknown" offset="0x0" visible="false" entrySize="0xC">
<float32 name="Unknown" offset="0x0" visible="false" />
<float32 name="Unknown" offset="0x4" visible="false" />
<float32 name="Unknown" offset="0x8" visible="false" />
</reflexive>
</reflexive>
<reflexive name="Unknown" offset="0x48" visible="false" entrySize="0x44">
<stringid name="Unknown" offset="0x0" visible="false" />
<int16 name="Unknown" offset="0x4" visible="false" />
<int16 name="Unknown" offset="0x6" visible="false" />
<float32 name="Unknown" offset="0x8" visible="false" />
<float32 name="Unknown" offset="0xC" visible="false" />
<float32 name="Unknown" offset="0x10" visible="false" />
<float32 name="Unknown" offset="0x14" visible="false" />
<float32 name="Unknown" offset="0x18" visible="false" />
<float32 name="Unknown" offset="0x1C" visible="false" />
<float32 name="Unknown" offset="0x20" visible="false" />
<float32 name="Unknown" offset="0x24" visible="false" />
<float32 name="Unknown" offset="0x28" visible="false" />
<float32 name="Unknown" offset="0x2C" visible="false" />
<float32 name="Unknown" offset="0x30" visible="false" />
<float32 name="Unknown" offset="0x34" visible="false" />
<float32 name="Unknown" offset="0x38" visible="false" />
<float32 name="Unknown" offset="0x3C" visible="false" />
<int32 name="Unknown" offset="0x40" visible="false" />
</reflexive>
<reflexive name="Unknown" offset="0x54" visible="false" entrySize="0x8">
<reflexive name="Unknown" offset="0x0" visible="false" entrySize="0xC">
<reflexive name="Unknown" offset="0x0" visible="false" entrySize="0x18">
<float32 name="Unknown" offset="0x0" visible="false" />
<float32 name="Unknown" offset="0x4" visible="false" />
<float32 name="Unknown" offset="0x8" visible="false" />
<int16 name="Unknown" offset="0xC" visible="false" />
<int16 name="Unknown" offset="0xE" visible="false" />
<degree name="Unknown" offset="0x10" visible="false" />
<degree name="Unknown" offset="0x14" visible="false" />
</reflexive>
</reflexive>
</reflexive>
<reflexive name="Unknown" offset="0x60" visible="false" entrySize="0x2">
<int16 name="Unknown" offset="0x0" visible="false" />
</reflexive>
</reflexive>

See how it's all unknown? Yeah, that's the kinda thing you'll be dealing with. LOOOOOTTTSSS of unknown things that you can't edit because the tool's designers don't know HOW to edit them without breaking the map.
Edited by MosesofEgypt on Oct 17, 2017 at 02:55 PM

Halo CE General Discussion » Wierd problem with scripting Oct 12, 2017 10:28 PM (Total replies: 4)

Not my area of expertise, but I DO know that the "thingy" is an byte order marker. It's purpose is to specify to anything opening the text file that the file is utf16 little endian.
https://en.wikipedia.org/wiki/Byte_order_mark#UTF-16
What you should take away from my explanation, is to not save your hsc files with anything other than ANSI, latin-1, or ascii.
Edited by MosesofEgypt on Oct 12, 2017 at 10:28 PM


While that codec is indeed important for compiling xbox adpcm sounds, we're specifically talking about ogg here sparky. Don't want to confuse him when this is his first experience with compiling sounds, so thought I'd clarify that.


It's not very simple. First you'll need to understand how sounds work, and get a crash course in compiling them. There are 3 main "sections" to a sound tag: pitch ranges, permutations, and samples.

Pitch ranges aren't too important since they are only used for a couple things, but they're basically pre-recorded variants of a sound that the game uses in certain instances where the sound changes based on some variable. Like, the warthog has 4 pitch ranges for how hard the engine is working: idling, low rpm, medium rpm, and high rpm. I don't think any of these sounds you'll need to fix will use anything other than the default pitch range though, but it's nice to know about this.

Permutations are different versions of a sound that get chosen to play randomly. Like, the sound of glass breaking has around 10 permutations, this way it usually sounds different each time a piece of glass breaks.

Samples are the actual audio data that's read when a permutation is chosen to play. Sometimes the size of the permutation is too large to fit in one chunk of samples, so tool splits it across multiple chunks of samples and then chains them together.

When Refinery exports a permutation it tries to put together all of the pieces of each permutation into a single audio file, but the only format it cant do it for is ogg. Instead it'll export each piece as a separate ogg file with "__X" on the end, where X is the piece's number. So like, if a permutation named "test" had 3 pieces, they'd export as test__0.ogg, test__1.ogg, and test__2.ogg.

You'll have to load maps containing each messed up sound into Refinery and extract their data(the ogg files) to your data folder. For each tag whose ogg sound you extracted, navigate to the folder they extracted to and open up an audio editing program(I recommend Audacity).

You'll need to piece these ogg samples together yourself in the audio editing program. After you do, save the permutation as a 16bit PCM WAV file to the same folder with the same name as the permutation. So like, after piecing together those test__X.ogg you'd save it as test.wav

After you've done this for all the permutations of one of the sounds, you'll need to remove all the ogg files from the folders(probably move them just in case you need them later). The reason for this is tool will try to import ALL files in the sound folder, even if they're not wav.

After you've done this, open a cmd prompt, cd into the directory with tool.exe, and type:

tool sounds "ENTER_PATH_TO_SOUND_FOLDER_HERE" ogg 1


and it should compile the fixed sound. as an example, if you were trying to fix:
cmt\sounds\sfx\weapons\covenant\focus_carbine\animations\ready.sound

you would type in:
tool sounds "cmt\sounds\sfx\weapons\covenant\focus_carbine\animations\ready" ogg 1


Also, before you compile any sounds, replace the vorbisenc.dll, vorbis.dll, vorbisfile.dll, and ogg.dll in your Halo Custom Edition directory with these ones(in case you never did):
hce.halomaps.org/index.cfm?fid=1632

The reason being the ones that shipped with CE are out of date, buggy, and frequently cause tool to crash. If anyone here knows something I forgot to mention, feel free to join in.
Edited by MosesofEgypt on Oct 8, 2017 at 02:11 AM


Here, I added a feature to the tag scanner that allows it to locate bad collision materials and bad sound tags. I haven't pushed the changes, but I did run it over all of cmt's tagset. Here are the results:

coll specific errors:

cmt\characters\spv3\flood\flood_brute\flood_brute.model_collision_geometry:
Bad collision material numbers.
Change the material numbers of these surfaces to be <= 1 or add 4 materials.
bip01 spine1(node #8)
bsp #0
surfaces = [9, 10, 11, 15]
bsp #1
surfaces = [9, 10, 12, 16]

bip01 l forearm(node #25)
bsp #0
surfaces = [0, 1, 4, 6, 8, 9]

cmt\vehicles\spv3\covenant\shadow\shadow.model_collision_geometry:
Bad collision material numbers.
Change the material numbers of these surfaces to be <= 1 or add 3 materials.
frame hull(node #0)
bsp #0
surfaces = [14, 140]


snd! specific errors:

cmt\sounds\dialog\characters\covenant\brute\h2_bloodthirsty_gibberish\exclamations\berserk.sound:
Bad OGG sample count. Fix by recompiling this sound.

cmt\sounds\dialog\characters\covenant\brute\h2_bloodthirsty_gibberish\involuntary\death_quiet.sound:
Bad OGG sample count. Fix by recompiling this sound.

cmt\sounds\dialog\characters\covenant\hunter\h2_deeper\exclamations\berserk.sound:
Bad OGG sample count. Fix by recompiling this sound.

cmt\sounds\sfx\weapons\covenant\anti_matter_grenade\vortex_detonation.sound:
Bad OGG sample count. Fix by recompiling this sound.

cmt\sounds\sfx\weapons\covenant\focus_carbine\animations\fire-1.sound:
Bad OGG sample count. Fix by recompiling this sound.

cmt\sounds\sfx\weapons\covenant\focus_carbine\animations\ready.sound:
Bad OGG sample count. Fix by recompiling this sound.

cmt\sounds\sfx\weapons\covenant\plasma_pistol\animations\first-person overheated.sound:
Bad OGG sample count. Fix by recompiling this sound.

cmt\sounds\sfx\weapons\covenant\plasma_rifle\fx\plasma_rifle_new_overheat.sound:
Bad OGG sample count. Fix by recompiling this sound.

cmt\sounds\sfx\weapons\covenant\shredder\animations\first-person melee.sound:
Bad OGG sample count. Fix by recompiling this sound.

cmt\sounds\sfx\weapons\covenant\shredder\animations\first-person posing.sound:
Bad OGG sample count. Fix by recompiling this sound.

cmt\sounds\sfx\weapons\covenant\shredder\animations\first-person ready.sound:
Bad OGG sample count. Fix by recompiling this sound.

cmt\sounds\sfx\weapons\covenant\shredder\animations\first-person reload.sound:
Bad OGG sample count. Fix by recompiling this sound.

cmt\sounds\sfx\weapons\covenant\shredder\fx\shredder_needle_fire.sound:
Bad OGG sample count. Fix by recompiling this sound.

Edited by MosesofEgypt on Oct 7, 2017 at 01:51 PM


All I know is that cmt's tags are buggy when used in sapien. Sapien checks for certain things that the game doesn't, and when those things aren't right it freaks out and crashes, whereas the game just chugs along with any potential errors it could cause down the road. I know some of the weapons have broken "ready" animation sfx, and placing them in sapien in any way crashes it. I also know some of their characters(brutes included) have screwed up collision materials and will also crash the editor. I dont know how masterz actually placed the ai, but I do know even he said some of the things he'd place would crash sapien.

If you want to temporarily remove the ai so you can open the scenario you can open the scenario in mozzarilla, scroll to the encounters section, hit "export all" to export the encounters to a file, then delete the encounters from the scenario and save. When you want to put them back, just hit "import all" to import that file back

Sorry you're having so much trouble. Thing is, cmt's tagset is full of bugs that only the creators will really be used to dealing with/know how to deal with. I'll ask FTDSpartan to chime in here since I was helping him with these same things. He's probably figured out some stuff you need to know.

Halo CE General Discussion » [BETA RELEASE] Refinery 0.7 Oct 3, 2017 02:24 AM (Total replies: 80)

That err.yelo is just an extra map. Also, CMT used special tools to build their scenarios and such. You'll not be able to load their scenarios in sapien. I dont have their tools, so dont ask me. Also, I don't have much experience in sapien, but I do know it's very finicky. Others here with more experience might be able to help you.

Best you can hope for is to throw the ai into a different scenario and work with that. Be warned though, CMT's tags aren't masterpieces of craftsmanship, and are likely broken in subtle ways. Trust me, I've had to fix some of them before. If they crash sapien when throwing them into a scenario, it might be an extraction issue, but it might also be something on CMT's end.
Edited by MosesofEgypt on Oct 3, 2017 at 02:27 AM

Halo CE General Discussion » [BETA RELEASE] Refinery 0.7 Oct 1, 2017 03:13 PM (Total replies: 80)

Refinery v1.5.1 is out with bug fixes and new features. Run the mek installer's update feature to get it.

New in v1.5.1:

* Ability to perfectly rip scripts with automatic indentation.
Yes, seriously. I ripped a10's scripts and recompiled. Played flawlessly.
I might be exaggerating on the "perfectly" bit, but only time will tell.
* Ability to rip hud_message_text tags back to the .hmt text files they were compiled from.
* Fixes to a decent chunk of bugs that cropped up when I moved modules around during the last big refactor.


EDIT: Actually, it seems one of my optimizations broke something. Dont bother with script extraction till i fix this.....
EDIT2: Fixed the bug. Go ahead and update the mek again. Refinery's version number shouldn't change, but reclaimer's will(you wont see it).

To actually rip scripts and hud_message_text to their source files, load Refinery, change it to data extraction mode(click the button), and add the scenario and hud_message_text files to the queue to be extracted. They'll go into the data folder in the appropriate directory for them to be recompiled with tool.

Mozzarilla v1.0.6 is also out with the ability to load multiple dds images as bitmaps all at once(rather than one at a time). Idky I didn't do this in the first place.

Here is an example of ripping a10's mission hud_message_text:

tutorial_introduction_1=Self-Diagnostic Software Enabled
tutorial_looking_1=Look around
tutorial_looking_2=Look around
tutorial_looking_1l=Look around
tutorial_looking_2l=Look around
tutorial_action_1=Use %action to exit the cryo-tube
tutorial_moving_1=
tutorial_moving_1l=
tutorial_looking_targeted_1=Stand on the red square
tutorial_looking_targeted_2=Target each of the flashing lights
tutorial_looking_targeted_3=Vertical looking is now inverted|nTarget each of the flashing lights
tutorial_looking_choose_1=Vertical looking is now inverted|nLook up and down
tutorial_looking_choose_2=Vertical looking is now inverted|n|nPress %b-button to try it the other way|n|nPress %a-button to leave it like it is
tutorial_looking_choose_3=Vertical looking is now normal|nLook up and down
tutorial_looking_choose_4=Vertical looking is now normal|n|nPress %b-button to try it the other way|n|nPress %a-button to leave it like it is
tutorial_grenade=Use %throw-grenade to throw grenades
hud_shield_1=Energy Shields Charging
hud_shield_2=Energy Shields Charged|n|nPress %a-button to continue
hud_shield_3=Energy Shields Recharging
moving_jump_1=Use %jump to jump over obstacles
moving_crouch_1=Click %crouch to crouch under obstacles
firing_1=Use %primary-trigger to fire your weapon
light_1=Use %integrated-light to use your flashlight
melee_1=Use %use-equipment to break down the door
ladder_1=Look up and move forward to climb ladders
obj_training= Complete training diagnostic
obj_bridge= Find Captain Keyes on the Bridge
obj_escape= Get off the Pillar of Autumn
dia_training= Complete training diagnostic
dia_bridge= Find Captain Keyes on the Bridge
dia_escape= Get off the Pillar of Autumn



Example of ripping a few scripts from svp3_a10:

(script static void fr_regen_update
(begin
(set fr_regen_shield (* (unit_get_shield player0_global) 75))
(set fr_regen_health (+ (* (unit_get_health player0_global) 75) 1))
(if (and (>= (unit_get_shield player0_global) 1) (< (unit_get_health player0_global) 0.59))
(begin
(unit_set_current_vitality player0_global fr_regen_health fr_regen_shield)
(print "visr turned off")
(pp_set_effect_instance_active mission_pp_index_visr_flare false)
(if fr_battery_depletion_on
(sound_impulse_start "cmt\sounds\sfx\powerups\armor_module\fx\armor_module_visr_off" "none" 1)
(pp_set_effect_instance_active mission_pp_index_visr false)
)
(if fr_battery_depletion_on
(pp_set_effect_instance_fade mission_pp_index_visr 1 0 0.5)
)
(set fr_battery_depletion_on false)
(set fr_battery_power_fraction (- fr_battery_power_fraction 0.00000015873))
(set fr_battery_power_fraction (max 0 fr_battery_power_fraction))
(unit_data_set_real player0_global "integrated_light_toggle_power" fr_battery_power_fraction)
)
)
(if fr_flashlight_should_be_on
(unit_data_set_real player0_global "driver_power" 1)
(unit_data_set_real player0_global "driver_power" 0)
)
(unit_data_set_real player0_global "integrated_light_toggle_power" 1)
)
)


(script continuous save_1
(begin
(if (volume_test_objects "bsp2,1" (players))
(game_save)
)
(if (volume_test_objects "airlock_1_trigger_2" (players))
(game_save)
)
(if (volume_test_objects "flank_trigger_1" (players))
(hacky_save)
)
(if (volume_test_objects "airlock_1_trigger_2" (players))
(hacky_save)
)
(if (volume_test_objects "bsp3,2" (players))
(hacky_save)
)
(if (volume_test_objects "airlock_2_trigger_1" (players))
(hacky_save)
)
(if (volume_test_objects "knot_trigger_2" (players))
(if (>= (unit_get_shield (player0)) 1)
(begin
(sleep 30)
(if (>= (unit_get_shield (player0)) 1)
(game_save_totally_unsafe)
)
)
)
)
(if (volume_test_objects "bsp3,4" (players))
(hacky_save)
)
(if (volume_test_objects "lifepod_1_trigger_1" (players))
(hacky_save)
)
(if (volume_test_objects "motiontracker_1" (players))
(hacky_save)
)
(if (volume_test_objects "cryo_search_trigger_1" (players))
(game_save_no_timeout)
)
(sleep 900)
)
)


(script dormant grav_egg
(begin
(sleep 300)
(if (= "easy" (game_difficulty_get_real))
(object_create "gravity_skull")
)
(if (= "impossible" (game_difficulty_get_real))
(object_create "gravity_skull")
)
(sleep_until (and (unit_has_weapon_readied (player0) "cmt\weapons\spv3\multiplayer\ball\gravity_skull") (< (objects_distance_to_object (player0) "gravity_skull") 2)) 60)
(sleep -1 gravity_engineers)
(device_set_position_immediate "keys" 1)
(sleep 10)
(physics_set_gravity 0.05)
)
)


(script static void hacky_save
(if (>= (unit_get_shield (player0)) 1)
(begin
(sleep 15)
(if (>= (unit_get_shield (player0)) 1)
(game_save_totally_unsafe)
)
)
)
)


I plan to eventually incorporate these ripping abilities into Mozzarilla so you can rip scripts and hud_message_text from the tags themselves rather than whole maps.
Edited by MosesofEgypt on Oct 1, 2017 at 04:25 PM


Time: Mon November 20, 2017 12:22 PM 344 ms.
A Halo Maps Website