[WIP] Zeus: Pre-alpha 1 release

Everything about HD, MD, and their mods.

Moderator: Halo Moderators

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus

Post by Sparky » Wed Oct 03, 2012 11:25 pm

Either you are groping for answers, or you are asking God and listening to Jesus.

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus

Post by Sparky » Sat Oct 06, 2012 8:25 pm

I've got all the next steps written down for how to apply displaying the metadata.
What I'm doing is parsing Sparky's Plugins as XML files using SimpleXML. SimpleXML converts the XML fields into objects. Then I reference the objects within their own tag-type-specific functions so that these functions can use the actual tag values and associate them with keys into an array of values. This array therefore contains all of that tag's values and is displayed on the page when the user clicks the "edit" link in one of those tag rows.

Version 0.5 will be just a display of tag metadata, where you click on a tag's "edit" link and the area below the tag expands to reveal the metadata. That will work with every tag type that I've recorded in Sparky's Plugins for Eschaton.

So Zeus 0.5 will let you READ map metadata. A subversion like 0.5x will bring bitmap image and sound playback. Luigi is helping me with the Xbox sound tag decoding; either he'll write his own PHP function for it or I'll write it based upon his assistance.

At some point, I'll add some options where you can use Radio Buttons to indicate if you want the tag metadata to be displayed beneath the tag or rather in a separate popup window.

That's all for now.

I'd like to point out that what is cool with this is that rebuilding map files is done properly and on-the-fly. No need to wait extended periods of time or depend upon your own computer's processing speed.
Either you are groping for answers, or you are asking God and listening to Jesus.

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus

Post by Sparky » Mon Oct 08, 2012 10:04 am

What's the longest tag name in a default Halo Demo bloodgulch map?

ui\shell\main_menu\settings_select\player_setup\player_profile_edit\controls_setup\advanced\horizontal_sensitivity_spinner
122 characters

Maximum string length of a tag name is 128 characters. Maximum string length in the map files is 1024 characters, right?
Either you are groping for answers, or you are asking God and listening to Jesus.

rEsTnPeAcEz
Veteran
Posts: 291
Joined: Sat Sep 01, 2012 12:34 pm
Location: Canada EHH

Re: Zeus

Post by rEsTnPeAcEz » Mon Oct 08, 2012 5:02 pm

What does this have to do with Zeus.

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus

Post by Sparky » Tue Oct 09, 2012 1:09 am

rEsTnPeAcEz wrote:What does this have to do with Zeus.
All the tags are displayed on the page.

--

I'm figuring out some JavaScript code which lets you click on a tag and display its metadata. I used to be more fluent in AJAX things several years ago, but it's not so simple this time since I'm using a PHP loop to display rows from an array and I'm looking to have variable CSS class or ID names. The actual metadata parsing is simple, so I might be able to get this to version 0.5 today or tomorrow.
Either you are groping for answers, or you are asking God and listening to Jesus.

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus

Post by Sparky » Tue Oct 09, 2012 1:23 pm

0.5 is coming along well. Displaying information on the page is finished, now I'm just parsing the metadata. I figure another couple days and 0.5 should be ready, where you can click on a tag name row and see the metadata.
After this, I'm going to work on the scenario viewer which for the moment will be embedded in the page at the top.

Unfortunately, it seems like you will need a 1920 x 1080 screen resolution to view all the information without scrolling horizontally. I could fix this, I guess, by having the tag name fields scrollable.
In order to do this, I will need to change the table layout to a div-based layout.
Either you are groping for answers, or you are asking God and listening to Jesus.

rEsTnPeAcEz
Veteran
Posts: 291
Joined: Sat Sep 01, 2012 12:34 pm
Location: Canada EHH

Re: Zeus

Post by rEsTnPeAcEz » Tue Oct 09, 2012 2:50 pm

Sparky Plugins are good, just maybe you can add other plugins that were in Eschaton already like HMT Plugins, Fuel's Plugins and more. Just I don't only want Sparky's Plugins because like HMT plugings are like easier to read and just good for begginer modders. So this will be good in general.
Also are you sure that when rebuilding maps will come there will also be a script compiler because I really want for cool stuff like that how to PWN a banshee noob! ;)

User avatar
zapconquest
Ranger
Posts: 1336
Joined: Sat Dec 09, 2006 11:31 am
Location: on a secret mission in uncharted space
Contact:

Re: Zeus

Post by zapconquest » Tue Oct 09, 2012 7:30 pm

rEsTnPeAcEz wrote:Also are you sure that when rebuilding maps will come there will also be a script compiler because I really want for cool stuff like that how to PWN a banshee noob! ;)
lol you don't need scripts for that all you need is a shotgun

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus

Post by Sparky » Wed Oct 10, 2012 3:24 am

Don't worry about the plugins.
You won't need to rebuild maps.
You won't need to save changes.

All you do is upload your map file, make any changes to it, and download the new map file, and it works in the game.
If you want to revert changes to default, you have to upload the map again by revisiting the second page to submit the form information again. There should also be undo support based upon the log of changes made to the file.
Either you are groping for answers, or you are asking God and listening to Jesus.

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus

Post by Sparky » Thu Oct 11, 2012 11:48 pm

I'm having some issues with Bitmask parsing (just the displaying of the values) -- the approaches I tried should have all worked in theory but they did not in practice because of lame stuff like datatype differences (arrays and strings not wanting to work together).

Maybe I'll have better luck another day.

It's really a simple concept, though. You just read the data from the file in little endian as an integer and you convert it to a binary string using base_convert, then use strrev() to reverse the order of the string. Then you pad the string with extra 0's to match the length that is the number of bitmask options at hand (so that each bitmask option gets a value) and then you parse the values into an array one at a time using array_walk (lol, I was using a for() loop.... I should use array_walk later on) to set the keys as the bitmask option names and the values as the binary strings (one character at a time). Then you just display it by converting the 0's and 1's to false's and true's for the HTML5 boolean options for the checkboxes.

Here's a part of it:

Code: Select all

$chunk_array_convert = unpack("V*", (file_get_contents($mod_file_path, NULL, NULL, $new_offset, 4)));
			$chunk_bit_string_convert = strrev(base_convert($chunk_array_convert['1'], 10, 2));	// this gives a string of bits matching the flag values. next is to parse this string as an array, assign each value to the plugin's parsed names as their keys, and output it all in a nice checkbox format in html. we'll do this shizzle inside a function
Thus, you get a bit vector (a bit mask) with 1 meaning a checked flag and 0 meaning an unchecked flag. This was all dandy, but I ran into issues associating the keys with the values in an array... just didn't want to work right.

EDIT: Ah, I think I figured out what to do now. I almost had it, just that I needed to not use the simplexml data converted to an array.

Here's part of the check I am having during the development phase:

Image
Image
Either you are groping for answers, or you are asking God and listening to Jesus.

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus

Post by Sparky » Sat Oct 13, 2012 9:41 am

I'm having problems with the online version, which means server issues. I'll have to contact the host again.

Sorry. Works locally, anyway.
Either you are groping for answers, or you are asking God and listening to Jesus.

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus

Post by Sparky » Sat Oct 13, 2012 3:18 pm

The problems have been resolved. Due to the addition of binary types in PHP 5.4, which I have in the local testing environment (5.4.4 using MAMP), the server version had to be "downgraded", or adapted to work for PHP 5.3.15 which does not include binary type support. (sadface) :(

Anyway, it's fixed. You can view bitmask32 flag values now. Checking and unchecking them will do nothing.

If you would like to see some bitmask32 flags in action, search for "bipd" on the page, then click the blue number on the right side of the cyborg biped tag entry. This is using the default bloodgulch map as found through the link "skip to the editor" at the bottom-left corner of the main Zeus page.
Either you are groping for answers, or you are asking God and listening to Jesus.

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus 0.5.a

Post by Sparky » Sat Oct 13, 2012 9:01 pm

Zeus 0.5.b works properly now in Safari and Chrome and Opera, but not Firefox for some reason. You can view most bitmask flag and color values.
Either you are groping for answers, or you are asking God and listening to Jesus.

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus 0.5.a

Post by Sparky » Wed Oct 17, 2012 5:01 pm

For dependencies, Zeus does a "smart" dependency reference chooser, like Guerilla (not like Eschaton), where you can only select tag types that won't inherently make the game crash.

As I said in the php file comments:

Code: Select all

// to get this properly working, add an attribute called "types" to the Entity Plugins' dependencies and give a space-delimited list of acceptable reference types for that entry, then parse it here
			// explode the types string into an array, then use a foreach on the types array to iterate the formatted selection list into a SINGLE list (to avoid more work) that looks something like this:
			// (using another foreach loop to run through a comparison of the types list with the tag_list['primary class'] values)
				// actr: characters\elite\elite commander\elite commander
				// actr: ...
				// actr: ...
				// etc., each one displayed as an HTML <select> menu option
				// this is in lieu of doing what Eschaton does by first selecting a type and then selecting a tag, which would mean more effort or some javascript to determine which values to display in the second menu
					// the way this should work is to check for equality between the types array and tag_list['primary class'], but display as entries the tag_list['primary class'] : tag_list['name offset']
Either you are groping for answers, or you are asking God and listening to Jesus.

Modzy
Green Beret
Posts: 3058
Joined: Fri Feb 22, 2008 11:06 pm
Location: Portland, OR

Re: Zeus 0.5.a

Post by Modzy » Wed Oct 17, 2012 5:33 pm

Not all non-traditional reference changes will crash the game, and sometimes produces neat results.

Locked

Who is online

Users browsing this forum: No registered users and 46 guests