PDA

View Full Version : Open Sauce Ideas thread



Pages : 1 [2] 3

Dwood
August 5th, 2009, 11:25 PM
Perhaps, but I didn't think it was to the point that we remove a sticky. :/

Scooby Doo
August 9th, 2009, 06:59 PM
has anyone asked korn if we will be able to make the screen on the sniper like h2? it would be nice if we could get that working :)

Advancebo
August 9th, 2009, 09:36 PM
has anyone asked korn if we will be able to make the screen on the sniper like h2? it would be nice if we could get that working :)

or h3 :ohdear:

Dwood
August 9th, 2009, 10:49 PM
Explain what you want it to do a bit more pl0x.

MissingSpartan7
August 10th, 2009, 02:26 AM
perhaps a function which allows ai to use their flashlight?
e.g (ai_set_flashlight_status "encounter\squad" "boolean")
this could lead to (ai_set_camoflage_status "encounter\squad" "boolean")
or even (unit_set_camoflage_status "player#" "boolean")

chrisk123999
August 10th, 2009, 08:30 PM
I thought you could already make AI use their flashlights and have active camo.

Rambo
August 11th, 2009, 08:12 AM
lol

Yes you can. It's called:

unit_set_current_flashlight_state (unit (list_get (ai_actors louis) 0)) true

louis = AI name.

To get a flashlight state, do the following:

if (= (unit_get_current_flashlight_state (unit (list_get (ai_actors louis) 0)))true

true could be false but it needs to be in an if statement.

I find this ammusing how people seem to neglect the basics and overcomplicate things. Then again, I am just as guilty in my own way, so what the hell?

But yes, you can use unit commands with AI. Just reference ai_actors ainame, rather than players and playernumber.

Scooby Doo
August 11th, 2009, 11:45 AM
http://www.geocities.com/adel_bball/sniper.jpg

so how the scope displays like a video camera would. can we do that with OS? possibly set up a camera (marker in max?) and go into guerilla and have a shader that will display whatever the camera sees? or mb there is another way to do it, idk...

FireScythe
August 11th, 2009, 03:21 PM
As far as making camera screens and the like, probably not as that would require full access to the rasterizer code to render the scene for each camera location and I don't think that kind of access is going to be possible without Halo's source.

However, I've been trying out an idea to steal a texture when it's created in DirectX and copying what's on the screen to that texture so that something like the sniper scope could be achieved, but it's not working for some reason.

Dwood
August 30th, 2009, 10:20 AM
Okay so I'm opening this thread up again in the hope that people will come up with new ideas.

bobbysoon
August 30th, 2009, 01:36 PM
An Oni style melee system would be all-pwning
5n7PqqL2MhU

Dwood
August 30th, 2009, 05:37 PM
I don't think you understand what Open Sauce can do bobby.

Cortexian
August 30th, 2009, 10:29 PM
Would it be within the realm of possibility for Open Sauce/Synapse to enable server-client map downloading? I'm pretty sure it's not since OS is mainly for map creation, but it would be awesome if it could.

I'm referring to trying to solve the horrible way that CE hosts custom maps, if a client try's to join a server without the custom map they're denied. If Open Sauce could somehow let the client download the map from the server (or another external download location) I'm sure custom maps would become more popular! This would have to be a server-side application obviously.

klange
August 30th, 2009, 10:36 PM
Would it be within the realm of possibility for Open Sauce/Synapse to enable server-client map downloading? I'm pretty sure it's not since OS is mainly for map creation, but it would be awesome if it could.

I'm referring to trying to solve the horrible way that CE hosts custom maps, if a client try's to join a server without the custom map they're denied. If Open Sauce could somehow let the client download the map from the server (or another external download location) I'm sure custom maps would become more popular! This would have to be a server-side application obviously.
Well, in general, yes, you could theoretically implement an extra network stream to get files between a server and client that are both running Open Sauce, but let's face it: It'd be slow, and then we're still not quite clear on how to get Halo to work with new maps without restarting it. Also, it's way out of the realm of what OS should do.

bobbysoon
August 30th, 2009, 11:02 PM
compression of maps not played in a long time

decompression on-the-fly

a "map not found: [quit] [search]" prompt, that searches for the map (everywhere except halomaps, out of respect for dennis's wishes), verifies it's checksum, and then tries to rejoin the game.


I don't think you understand what Open Sauce can do bobby.
Depends on what it's contributing programmers can do, right?
I know, it's even more far-fetched than synching ai or defining a shader_portal. I just can't get over how cool it'd be :haw:. Sorry :ohdear:

Cortexian
August 30th, 2009, 11:06 PM
Well, in general, yes, you could theoretically implement an extra network stream to get files between a server and client that are both running Open Sauce, but let's face it: It'd be slow, and then we're still not quite clear on how to get Halo to work with new maps without restarting it. Also, it's way out of the realm of what OS should do.
Well, what's wrong with just having the OS client restart after a new map is downloaded?

Either way, I realize that it's still beyond the feasible function of OS.

bobbysoon
August 31st, 2009, 12:31 AM
What's wrong is the load time, a factor of how many megs of maps you have.

how about server queries clients for which maps they have, and skips a map in it's cycle if not all clients have it?

FireScythe
August 31st, 2009, 07:13 AM
Well, a simpler idea might be to have the server send a link to the map to the client, so thats its easier for them to go and get it.

Mainly for games that are in progress, the server could send a text message to the clients telling them the next map name, and a link to where the map can be downloaded from. The client OS could pick up on this and tell the player whether they have the map, with the option of somehow closing the game and opening a webpage to the download link, or at least copy it to the clipboard.

Although, this would have issues with download link size and the text restrictions, and whether the server owner can be trusted to not send you to porn/virus/shock sites.

Pyong Kawaguchi
August 31st, 2009, 11:41 AM
Would it be possible to make the loading time faster when starting up CE?
It's really annoying having to wait about 10 min when you have about 200 maps in your maps folder :S

Dwood
August 31st, 2009, 04:02 PM
Would it be possible to make the loading time faster when starting up CE?
It's really annoying having to wait about 10 min when you have about 200 maps in your maps folder :S

I believe that IS possible. Just be ready for the ultra-long wait when you try to open the map and play it.

I talked with Korn over the Downloading maps with Opensauce thing. According to him it IS possible. He doesn't want to do it because people who don't have Open Sauce/Yelo might crash when either the client or server sends a byte/string that can't be handled by the default Halo netcode.

To make it feasible how about we Allow the option of Making "an OpenSauce only" Server Listing as suggested in the Original Open Sauce threads? Another thing, we should have a Special Map that's made for people who only want to dl maps. I would call it a "Server Distributable Map", or SDM, for short.

One last thing to add to that: If someone wants to code the Map downloading then there's mainly one requirement, and 3 suggestions: You must make it so that it's the clients that send the server and tell the server that they're running Open Sauce. (That is, until we get the Open-Sauce listings, ofc)

Suggestion #1 is that you use the Server Redist Map idea. Just a bare-bones map that if you have you can join the game, Makes coding the netcode for the thing much easier (can't join a game without the map). If you allow the downloading from normal servers, there WILL be immense lag for all the players in-game. Another perk of that is You get to play while you wait for the map to stop downloading. :D

Suggestion #2 Figure out a way to stop Halo from having to restart every time you download a map. That, or initiate a restart of the game from Open Sauce, given user input.

Suggestion #3 - Add to the Open-Sauce/Yelo In-Game interface a way for servers to check who has already downloaded, who is downloading, etc. And easily/auto-kick players that are done.

Dwood
August 31st, 2009, 04:21 PM
I know It's a Double Post but I think that the methods for the impossible might as well be posted.

In order to Sync ai (possible, but NFWOS)

There are going to need to be 2 main things (i believe)

1: Get Clients to stop from creating their own bipeds
****Pulls out chat logs***
2. Has like 4 possibilities.
---a. Get ai to always make the same decisions
---b. Unrandomize ai decisions
---c. Make the clients depend on the server for the ai's actions.

Another idea which might not be very feasible is to code your own ai scripts in Open Sauce

Cortexian
August 31st, 2009, 06:27 PM
Having a listing for OS servers only would hugely defeat the purpose for servers running Synapse.

Dwood
August 31st, 2009, 07:52 PM
Having a listing for OS servers only would hugely defeat the purpose for servers running Synapse.

How so?

Cortexian
August 31st, 2009, 11:37 PM
How so?
We're trying to collect player stats on a global basis. Segregating the game even more than it is would serve to kill it faster.

Dwood
September 1st, 2009, 05:28 AM
We're trying to collect player stats on a global basis. Segregating the game even more than it is would serve to kill it faster.

I don't think of it like that. I think of it as a new way to organize servers so people can find other Open Sauce Servers. It doesn't necessarily have to be 100% separate. Just an easy way to distinguish.

Kornman00
September 1st, 2009, 08:06 AM
I should note that Synapse based servers won't be expandable by Open Sauce, but they'll still be able to run some of the more basic OS related features (MTV and upgraded maps)

MissingSpartan7
September 1st, 2009, 07:24 PM
VIP gametype anyone?
also maybe dual-wielding?
and being able set gravity? (zero-g environments!) or set gravity within trigger_volumes

Dwood
September 1st, 2009, 07:37 PM
Spartan
1. Explain. Not enough details.
2. NFWOS
3. We already did that.

ShadowSpartan
September 1st, 2009, 07:53 PM
1. Explain. Not enough details.
Enlighten yourself. (http://halo.wikia.com/wiki/VIP)

2. NFWOS
Correct (http://www.modacity.net/forums/showpost.php?p=414047&postcount=110), proper dual wielding is not possible.

3. We already did that.
You could at least tell him how to do it. When you use an OS dll it will add a new global that controls gravity, which can then be edited through the console. Just open the console and type "gravity #".

Kornman00
September 1st, 2009, 08:52 PM
Or you can use the new tools to compile a script which sets the "gravity" global. Be sure to pay it with The OS DLL, or else the game will more than likely exception

Dwood
September 2nd, 2009, 09:16 PM
Btw Korn... are you ever going to reply to my pms? Or have you ignored me completely?

<I was retarded in this post>

the1
September 5th, 2009, 08:42 AM
I know It's a Double Post but I think that the methods for the impossible might as well be posted.

In order to Sync ai (possible, but NFWOS)

There are going to need to be 2 main things (i believe)

1: Get Clients to stop from creating their own bipeds
****Pulls out chat logs***
2. Has like 4 possibilities.
---a. Get ai to always make the same decisions
---b. Unrandomize ai decisions
---C. Make the clients depend on the server for the ai's actions.

Another idea which might not be very feasible is to code your own ai scripts in Open Sauce

C = Bingo!... yes I'm back again XD..... uhhhhh
I never did much work on AI encounters... but I do remember 1 thing about them

they do auto create themselves in Sapien but not Ingame. they need a Script to run. this is accomplish able via the object_health = 0 server sided only command that i think... rec0 gave out a few years back... it returned Nil instead of 0 on clients because the vehicle didn't exist on clients. only on the server

so that would stop them being created on clients
and as for the ai Updating. you don't have to continuously update the clients... more so just update every 2 or 3 seconds... or alternate between clients being updated. it dosn't have to be exact. only close and only server sided.
in the end if made by the script properly. all you'd have to do is make the server update the client and blam! done :P

57. attach trigger volumes to objects (MissingSpartan7)

I kinda did this... sort of...

Anyone remember my Pelican that could pick up any vehicle under it?

in the end it was going to be a server sided script. it used 3 bipeds to triangulate. and verify if they could all see a vehicle. and it would attach. if the flashlight of the pelican was turned on

the only flaw with my script was... if vehicle attached = true. both vehicles = unexcessible for some reason :S...
and continuously attaching and detaching = seated object warping... don't know how it was worked out on coldsnap... oh well XD

its good to be back:neckbeard:

MissingSpartan7
September 8th, 2009, 04:04 AM
had semi good idea, imagine being able to switch bsp's in multiplayer!
you could go from a desert map to a snow map of the same shape but with lots of ice tunnels..

the1
September 8th, 2009, 09:36 AM
had semi good idea, imagine being able to switch bsp's in multiplayer!
you could go from a desert map to a snow map of the same shape but with lots of ice tunnels..


uhhhh... its actually possible. server side controlled only BUT! server sided command only...

halomods.org
look for the map called Cold Snap. i think you'll find some of the things in it rather fascinating...

ShadowSpartan
September 8th, 2009, 04:31 PM
uhhhh... its actually possible. server side controlled only BUT! server sided command only...

halomods.org
look for the map called Cold Snap. i think you'll find some of the things in it rather fascinating...
It is halomaps.org, though I'm pretty sure he knows about HaloMaps already, as well as Cold Snap. Simply playing Cold Snap won't help with figuring out how stuff is done in the map. That would require extracting the scripts, which only a handful of people can do.

Dwood
September 8th, 2009, 06:00 PM
It is halomaps.org, though I'm pretty sure he knows about HaloMaps already, as well as Cold Snap. Simply playing Cold Snap won't help with figuring out how stuff is done in the map. That would require extracting the scripts, which only a handful of people can do.

And when you do unless you're in Zteam all you can get generally are the names of the globals.

the1
September 8th, 2009, 08:37 PM
yeah halomaps XD... lol i knew that... and yeah the few that can are...
kornman00 himself. rec0 i believe. and steelix. who have any real ability to get scripts out of a map file because of the way there compiled in

and yeah its a simple script to change bsp. you just have to make sure that you have all the bsp structures you want added to the scenario tag...

you just need to make sure that the script that you use is only initiated on the server.
as i have said in another thread. its the get unit health method.. use it on a vehicle that you have named. just name 1 of the normally spawning warthog's... what else... hmmmm

you want to use an if script unitgethealth()
use it on the warthog
then make it change a global variable from false to true if the condition is true

after that. you can have your day of time script following the if ( is server boolean here (then) (else) )

make it a number of conditions to change the bsp though otherwise itll always change. :P thare easily explained XD


keep in mind i havn't written a script in a bit over 2 years so youll have to structure it a bit better than i just did XD...

Rhydgaled
September 9th, 2009, 08:13 AM
I hear OpenSauce allows for multipule campaigns now, if so could the maps for all campaigns but the default one be put into their own sub-folder of the maps folder which aren't loaded at startup? These maps would then be loaded when the relevent campaign is selected from the menu, a loading screen would appear then a load game/select mission screen would come up when the loading is complete (unless the maps for the selected campaign were not there, in which case a different UI widget would be appear to tell you to get the maps). Also, when you have multipule campaigns how would the continue campaign button work, or would it just not work at all?

Finally, nobody ever went through my list of ideas from way back and explained which were possible, I suppose it doesn't matter now at this late stage when the update2 is nearly done.

Kornman00
September 9th, 2009, 11:11 AM
Stock OpenSauce doesn't allow for multiple campaigns. There is a base for implementing a campaign which is composed of more than 10 scenarios however. Even still, it requires leg work to be done in the mainmenu (errr ui) as there has to be widgets implementing the user interface for the level selection and display.

Really, if a team wants to do any advance work with OpenSauce they require a programmer. A mod team will get no where in terms of adding new things into OS without a programmer. Find a programmer who is half way competent then lay down your ideas. Without one, you're just rattling off unbounded thoughts. With one, at least then you'll have someone to put a sense of direction and boundary on advance engine additions.

nuttyyayap
September 10th, 2009, 12:43 AM
I have a semi-good idea.
How about the ability to have sounds get quieter or go completley in space environmets?

p0lar_bear
September 10th, 2009, 04:10 AM
I have a semi-good idea.
How about the ability to have sounds get quieter or go completley in space environmets?

Turn on sound hardware acceleration and EAX if you hardware supports it.

Then play Boarding Action.

Then mess around with sound_environment tags.

:tags101:

MissingSpartan7
September 10th, 2009, 08:47 PM
hmm...what's CE missing that the other halos have?
Skulls!
perhaps a working skull system/menu so they can be turned on/off through the main menu/pause menu

any thoughts?

W1zard
September 11th, 2009, 12:26 PM
yea skulls works, various people have used the most fun ideas, there is an invisi skull on the silent photographer map for example =P

the1
September 12th, 2009, 07:30 AM
Korn lives from his army endeavors!

hmmmmmmm not to mention that the programmer's going to have to re work the development tools to support any additions to the game and explain how they work...

chances are... it would be far easier if you re made the game from scratch. new engine. better physics support/engine that way you could get it to do exactly what you want it to do.

for instance... a remake of halo with all the feats of halo 2. like duel wielding. uhhhhh can't think of anything else off the top of my head... !!! but yeah... it would be far easier to make your own game engine than it would be to work around the limits of 1 that already exists...

FRain
September 13th, 2009, 01:46 PM
Wow, dude you just pointed out some REALLY obvious shit

the1
September 13th, 2009, 07:58 PM
yeah I worked with ce for 5 years 7 years ago so yeeeeaaaah i do that from time to time... I'm going to stop pointing out the obvious now..

MissingSpartan7
September 13th, 2009, 09:56 PM
^ good idea /opinion
anyway, another bunch of ideas
-in-HUD map (sorta lke crysis has)
-maybe in the radar be able to specify a bitmap for players etc. (instead of the yellow and red dots)

the1
September 14th, 2009, 04:54 AM
^ good idea /opinion
anyway, another bunch of ideas
-in-HUD map (sorta lke crysis has)
-maybe in the radar be able to specify a bitmap for players etc. (instead of the yellow and red dots)

you do realize that isn't a map or a radar right? its a motion tracker... and it just uses a bitmap as it is anyway. so you can change it XD

Cortexian
September 14th, 2009, 05:53 AM
I'm going to stop pointing out the obvious now..

you do realize that isn't a map or a radar right? its a motion tracker...
:allears:

Dwood
September 14th, 2009, 06:44 AM
i lold

the1
September 14th, 2009, 09:01 AM
Ok... i have to point out this obvious observation...

That wasn't just obvious... that was Painfully Obvious!. so painfully obvious that it had to be said because everyone else was thinking it! lol

MissingSpartan7
September 14th, 2009, 06:07 PM
^ i am temped to directly tell you to stop posting because you keep posting obvious stuff that's off-topic anyway /rant

anyway another idea
-being able to define an "environment", e.g. like in halo 3 how objects can be placed on the elefant, maybe be able use a script like (create_environment_from *object*) so that we can place objects upon other objects without having to position them manually

the1
September 14th, 2009, 06:28 PM
hmmmmmm

objects_attach
objects_detach?
and aparently making a deveice machine elevator the same shape of your vehicle. and attaching it on when there's a driver makes anything inside it move like it should :D

MissingSpartan7
September 15th, 2009, 06:05 PM
please,
we are trying to create new ways of doing things, rather than use the old ways

and also maybe pre-game lobby?
-with things like a chat box that everyone can use
-voting?

also-also a new ingame chat function?
e.g. when you press "t" to talk to everyone you can type "name"/ to talk to a specific person

Limited
September 15th, 2009, 06:10 PM
please,
we are trying to create new ways of doing things, rather than use the old ways

and also maybe pre-game lobby?
-with things like a chat box that everyone can use
-voting?

also-also a new ingame chat function?
e.g. when you press "t" to talk to everyone you can type "name"/ to talk to a specific person
Saap has voting, and advanced chat is sorta done.

Dwood
September 15th, 2009, 09:02 PM
It would be nice to create our own Lobby for OS. Perhaps we could have OS contact a 24/7 server and contact that, then while ingame, go to x and x server thru menus?

the1
September 16th, 2009, 12:25 AM
well its a bit of a drag that the physics engine can't be updated or edited or replaced with a better 1 :(..... uhhhhh hmmmm..... how is the physics engine incorporated into the game?

the only reason i ask is...... how hard could it be to add some friction calculations to it?

MissingSpartan7
September 16th, 2009, 02:52 AM
seriously, have you read the first post and what Korn had to say about OS in that little section in the first post?

Dwood
September 18th, 2009, 07:01 AM
Well it might work, but it depends on the object you want to add friction to.

Only because, compared to ragdoll effects, that would be easy. Assuming you're adding it to a player, you would have to get the surface the player is on and set it from there, probably setting it all as custom globals within an os-only script.

L0d3x
September 18th, 2009, 10:02 AM
I didn't read all 31 pages so forgive me if this was suggested, but would it be possible to unlock Sapien's function to make custom recorded animations?

FRain
September 18th, 2009, 10:17 AM
I'm damn sure that the recorded animation code was completely ripped out of Custom edition (except for playing them). Although, I'm not sure where I heard this, but you can make recorded animations, just not with Sapien, and you'll have to place the x,y,z coordinates manually. I'm not even sure that works and thats 100% speculation, not sure.

Masterz1337
September 18th, 2009, 02:31 PM
You can make RAs with the current editing kit, you just cant move the units so theres movement in the RA.

p0lar_bear
September 18th, 2009, 03:09 PM
You can make RAs with the current editing kit, you just cant move the units so theres movement in the RA.

This^

The code to read player input is gone, RA code is still there. I've tried binding keys and gamepad buttons to controls via the (bind) function, but it doesn't do anything when I try to move someone or something.

Choking Victim
September 18th, 2009, 04:31 PM
This^

The code to read player input is gone, RA code is still there. I've tried binding keys and gamepad buttons to controls via the (bind) function, but it doesn't do anything when I try to move someone or something.
I had an idea for this, but it never really took off. I mapped out the majority of the recorded animation format, I believe it's possible to code something to dump the necessary data to a file based on ingame player movements using open sauce. Then you can merge the dumped data with the scenario tag using an externally created program. I don't see any reason why it wouldn't work, it's just a matter of locating the data in memory, most of which is already mapped in the OS source code.

Pyong Kawaguchi
September 20th, 2009, 10:31 PM
Something that would be cool, is a fully functional Novint Falcon plugin.

Dwood
September 20th, 2009, 11:29 PM
I had an idea to play .avi files from Open Sauce a while ago, and then people could create hi-res animations if they desired.

I decided not to do it b/c I didnt think anyone would take advantage of it.

ShadowSpartan
September 20th, 2009, 11:40 PM
I had an idea to play .avi files from Open Sauce a while ago, and then people could create hi-res animations if they desired.

I decided not to do it b/c I didnt think anyone would take advantage of it.
You can play .bik files with a function that is in OS already, so there is no need for .avi playback functionality to be added.

Also, how would you create hi-res animations using an avi file, did you mean cutscenes?

Rhydgaled
September 21st, 2009, 04:44 AM
You can play .bik files with a function that is in OS already, so there is no need for .avi playback functionality to be added.I knew it had been suggested (maybe it was me who suggested it but it may have been somebody else) but I didn't realise Kornman had implemented it. What is the scipt command you need to call it?


Also, how would you create hi-res animations using an avi file, did you mean cutscenes?Well animated .gif files and exported flash animatins are still considered animations by some so I would think any video made using one animation techneque or another (including 3ds Max) could be considered an animation.

ThePlague
September 21st, 2009, 06:43 PM
Don't know if this was ever said, but howabout the ability to dual weild? I'll break down what i'm thinking:


Picking it up with a button (don't know which)
The ability to add left hand animations to each of the weapons. So that when you pick a pistol (per say), it has left hand animations and it's a separate weapon.
Dual trigger shooting instead of just left click. So replace the grenade throw with it.
If you drop one gun you can keep the other still.

All I can think of for now.

Hunter
September 21st, 2009, 07:27 PM
Don't know if this was ever said, but howabout the ability to dual weild? I'll break down what i'm thinking:


Picking it up with a button (don't know which)
The ability to add left hand animations to each of the weapons. So that when you pick a pistol (per say), it has left hand animations and it's a separate weapon.
Dual trigger shooting instead of just left click. So replace the grenade throw with it.
If you drop one gun you can keep the other still.

All I can think of for now.

Duel weilding has been said many times and can NOT be done properly.

ThePlague
September 21st, 2009, 07:55 PM
:C

ShadowSpartan
September 21st, 2009, 08:07 PM
I knew it had been suggested (maybe it was me who suggested it but it may have been somebody else) but I didn't realise Kornman had implemented it. What is the scipt command you need to call it?
It's not a script command, it is a C++ function contained in Game\EngineFunctions.cpp


void PlayVideo(cstring bink)
Well animated .gif files and exported flash animatins are still considered animations by some so I would think any video made using one animation techneque or another (including 3ds Max) could be considered an animation.
If you used that logic then dwood's post would read:


I had an idea to play .avi files from Open Sauce a while ago, and then people could create hi-res videos if they desired.

Doesn't sound correct does it?

Dwood
September 21st, 2009, 08:42 PM
If you used that logic then dwood's post would read:

I meant Videos under your definition. You know, animating in 3ds and rendering it, allowing for mediums other than what we have at the moment because atm we can only play .bik, not make anything with them.

Effectively, it would be a cutscene. Then CMT or any other SP map team could have better quality cutscenes than what the engine could render.

e2: ThePlague, check the first post. My psp ran out of txt room or id elab.

ShadowSpartan
September 21st, 2009, 08:57 PM
I meant Videos under your definition. You know, animating in 3ds and rendering it, allowing for mediums other than what we have at the moment because atm we can only play .bik, not make anything with them.
You could just convert the rendered cutscene from .avi to .bik, there is no need to add .avi playback functionality.

I enjoy the fact that the Halo games use the actual engine for cutscenes and not a prerendered video. Prerendered videos look amazing when done right, but I prefer the in-game ones.

Dwood
September 21st, 2009, 09:49 PM
I'm not familiar with the cutscenes though, but I didn't think that would work right b/c if you drove a hog on the scene, it would still be there for the cuts.

So I assumed conversion wouldnt be possible.

p0lar_bear
September 21st, 2009, 11:25 PM
I'm not familiar with the cutscenes though, but I didn't think that would work right b/c if you drove a hog on the scene, it would still be there for the cuts.

So I assumed conversion wouldnt be possible.

Seriously, I'm confused now, do you know what you're talking about?

.BIK files are prerendered video files encoded with the Bink codec, provided for free by RAD Game Tools (:google: it). Halo only uses four BIK files by default, named bungie.bik, gearbox.bik, mgs.bik, and ending.bik. The first three are the videos that play at the game's initial load, and the last one is 343 guilty spark floating in space, which plays after the credits roll.

The cutscenes that play in game, such as Johnson's speech to the marines which varies based on game difficulty, are units in-game scripted to do and say stuff.

The two are entirely unrelated.

Rhydgaled
September 23rd, 2009, 05:56 PM
It's not a script command, it is a C++ function contained in Game\EngineFunctions.cpp


void PlayVideo(cstring bink)So Kornman implemented the play bik function itself, but didn't actually make a script command to actually allow you to call that function? Or can C++ functions in Open Sauce be run from haloscript / the dev console (which I very much doubt)?

Also I tended to refer to cutscenes/cinematics as videos before I learned the technical terms for such things. I get anoyed when friends call cutscenes (that I still call videos sometimes) something else (adverts I think some of my friends call them, which they most definitlly aren't).

Dwood
September 23rd, 2009, 06:42 PM
Thanks Polar for the news flash, as I said, I am unfamiliar with how Halo plays its vidjas. believe it or not I appreciate the reality check.

If someone wanted they could make a custom script for playing .biks. I'll look into it this weekend.

MissingSpartan7
September 23rd, 2009, 11:27 PM
more idea
what about campaign scoring?
where points are given per unit and things like headshots
this would be better than the current choices we have for things like firefight at the moment (points per encounter which are recorded with the timer)

Moses
September 28th, 2009, 07:52 PM
Ability to set removable waypoints where the player is looking/standing at which in turn temporarily hijacks the pathing of AI. This can be useful for getting around your ai being dumb as hell sometimes/not following or when you simply want to coordinate team movement in campaign or multiplayer. I thought of this prolly 4 - 5 years ago when I got the idea to make a mod very much the same as Halowars but had no idea of how to.

MissingSpartan7
September 30th, 2009, 03:17 AM
on the topic of waypoints, could we have team waypoints that show where your teammates are? and change colour if they're taking fire of just died?

Dwood
October 7th, 2009, 08:09 PM
Does anyone know if more than 2 grenades are possible? I don't think I saw that one.

ShadowSpartan
October 7th, 2009, 08:54 PM
You're not able to change the actual game state object definitions so you can't do things like adding an extra usable weapon (via the left hand), or add more than two grenade types, or allow more than one driver\gunner.
There is your answer.

Dwood
October 7th, 2009, 09:29 PM
There is your answer.

Thanks, it's been a while.

Skarma
October 8th, 2009, 12:26 AM
There is your answer.Actually you can, just not with OS and even though it can happen, this is on a whole other level of reversing and engine modification no one wants to go into currently. Although, claymores would be fun to have. :haw:

Rhydgaled
October 8th, 2009, 07:14 AM
I asked about multipule campaigns, and was told the OS HEK modifications only allowed you to add missions to the campaign, not add campaigns. However I've been thinking, maybe I could use the OS HEK to create a long campaign (say 26 missions) and put a script at the end of one of the maps (let's say the 10th) which runs the credits and ends the game then and there. Then I could run a scipt on UI startup to unlock the next misson anyway (I think there is already an unlock mission script function) so you could start from that misson because it's already unlocked, essentially that would appear to be 2 seperate campaigns. Would that one new script be easier for somebody to add to Open Sauce than an actual multi-campaign feature?

Also, I don't think I have recived a reply to this:

So Kornman implemented the play bik function itself, but didn't actually make a script command to actually allow you to call that function? Or can C++ functions in Open Sauce be run from haloscript / the dev console (which I very much doubt)?
Basiclly, how far are we from being able to play a .bik file from a script in campaign and UI maps (I don't think there's any point in it for mp maps)?

Finally (for now), and I may have already asked this one too, could you put some maps (say the campaign ones) in a sub-folder of the maps folder so they don't make the game take longer to load but then load them on request (for example if you access a certain UI screen) instead?

Skarma
October 8th, 2009, 01:25 PM
I asked about multipule campaigns, and was told the OS HEK modifications only allowed you to add missions to the campaign, not add campaigns. However I've been thinking, maybe I could use the OS HEK to create a long campaign (say 26 missions) and put a script at the end of one of the maps (let's say the 10th) which runs the credits and ends the game then and there. Then I could run a scipt on UI startup to unlock the next misson anyway (I think there is already an unlock mission script function) so you could start from that misson because it's already unlocked, essentially that would appear to be 2 seperate campaigns. Would that one new script be easier for somebody to add to Open Sauce than an actual multi-campaign feature?Don't know about all that, but I just looked in OpenSauce and there is a place to add new campaign levels, not missions. Not sure about HEK.


Basiclly, how far are we from being able to play a .bik file from a script in campaign and UI maps (I don't think there's any point in it for mp maps)?In Game\EngineFunctions.cpp is a function called PlayVideo(cstring bink). When you call this, it will play the video of the name you inputted. I don't think it's setup as a script or console command, but that can be done easily in OS.



Finally (for now), and I may have already asked this one too, could you put some maps (say the campaign ones) in a sub-folder of the maps folder so they don't make the game take longer to load but then load them on request (for example if you access a certain UI screen) instead?Um, what?! Not sure what you mean with this. Only one map file is loaded at a time - the one you are playing. The maps aren't all loaded when you start the game, only UI.

Siliconmaster
October 8th, 2009, 01:27 PM
Um, what?! Not sure what you mean with this. Only one map file is loaded at a time - the one you are playing. The maps aren't all loaded when you start the game, only UI.

I'm pretty sure he's referring to the checksum (I may have the term wrong) before the UI appears, where CE takes forever to load. IIRC, we've already had this conversation and decided that the only way to fix that would be to obtain the source code, which is impossible.

Dwood
October 8th, 2009, 01:29 PM
In Game\EngineFunctions.cpp is a function called PlayVideo(cstring bink). When you call this, it will play the video of the name you inputted. I don't think it's setup as a script or console command, but that can be done easily in OS.


I think that he doesn't understand the problem. Masterz explained it best that the problem isn't that we can't play .bik files or things like that, the problem is that we can't create our own animations from the tools in the hek.

Basically, from what I've gathered from posts and whatnot is that it isn't that the functions to create animations isn't there, it's that there's no way to add User Input at all.

Edit: I mean that the HEK's UI for creating biks is gone completely.

Edit: Or whatever file extension it is that Halo uses to play recorded animations. (ie, every ingame cutscene)

ShadowSpartan
October 8th, 2009, 02:18 PM
I think that he doesn't understand the problem. Masterz explained it best that the problem isn't that we can't play .bik files or things like that, the problem is that we can't create our own animations from the tools in the hek.

Basically, from what I've gathered from posts and whatnot is that it isn't that the functions to create animations isn't there, it's that there's no way to add User Input at all.

Edit: I mean that the HEK's UI for creating biks is gone completely.
What the hell are you talking about? You don't understand what you are talking about. The HEK does not, nor has it ever had the ability to create .bik files. What you described was recorded animations, Bink Video files are not the same as recorded animations in any way whatsoever. Bink Video is a file format created by RAD Game Tools. There are only 3 Bink Video files played by the Halo 1 game, one for the Bungie logo, one for the Gearbox logo, and one for Guilty Spark flying off at the end of the game (I'm pretty sure that last one is right, haven't played the game in a while).

Dwood
October 8th, 2009, 02:28 PM
What the hell are you talking about? You don't understand what you are talking about. The HEK does not, nor has it ever had the ability to create .bik files. What you described was recorded animations, Bink Video files are not the same as recorded animations in any way whatsoever. Bink Video is a file format created by RAD Game Tools. There are only 3 Bink Video files played by the Halo 1 game, one for the Bungie logo, one for the Gearbox logo, and one for Guilty Spark flying off at the end of the game (I'm pretty sure that last one is right, haven't played the game in a while).

Sorry I used the wrong file type name.

ShadowSpartan
October 8th, 2009, 02:50 PM
Sorry I used the wrong file type name.
Recorded animations don't even have their own file type, they are stored in the scenario tag.

Dwood
October 8th, 2009, 03:07 PM
Recorded animations don't even have their own file type, they are stored in the scenario tag.

Oh, interesting. Didn't know that. (Obviously)

MissingSpartan7
October 9th, 2009, 03:23 AM
.....that's it!
we could have load points within campaign levels, so from the menu you can load from a major section of the level
(the equivalent of the "rally point" in halo 3)

Rhydgaled
October 9th, 2009, 08:07 AM
There are only 3 Bink Video files played by the Halo 1 game, one for the Bungie logo, one for the Gearbox logo, and one for Guilty Spark flying off at the end of the game (I'm pretty sure that last one is right, haven't played the game in a while).Yeah, that's right, except I think there are 4 bink files. The 4th .bik is the Microsoft Game Studios logo, it plays along with the Bungie and Gearbox logos at start-up.

Now, if somebody makes a script command that runs that play .bik function in OS we might not have to worry about recorded animations anymore. We could render .avi files from 3ds Max, use a video converter to make them into .bik files, and then use said .bik files as cutscenes. Of course right now we can use animated scenery for cutscenes instead, not sure how difficult that is though because I haven't got around to trying it. I would have a shot at making the script command but I've only been taught very basic Java and very basic Delphi (going to be doing Visual Basic this year, very basic Visual Basic probablly).


Um, what?! Not sure what you mean with this. Only one map file is loaded at a time - the one you are playing. The maps aren't all loaded when you start the game, only UI.
I'm pretty sure he's referring to the checksum (I may have the term wrong) before the UI appears, where CE takes forever to load.Yeah, not sure about the term checksum either but CE does take longer to load the more maps you have, I was suggesting making some maps be ignored by the game until you click certain buttons. Not possible without getting a look at CE's source code you say?

Dwood
October 15th, 2009, 04:13 PM
Here's an idea. Use Open Sauce to do the interfacing for this (probably a stretch) but have OS_Tags that are like 3d ui options.

To explain this best it would be like using a biped, once that biped were "killed" OS would take that certain one and commence commands based on what biped has died.

The player would be put into a fixed position where they cannot move, only shoot, and are viewing the 'biped' menu screen in such a manner that they can see all of the menu options. I would go into more detail but I am struggling to stay awake right now.

From what I've heard, this could possibly be used with the now in development Forge as well.

Rambo
October 15th, 2009, 11:13 PM
There's a problem with the BIK idea. What if your start-up involves someone flying in on a vehicle or you have cutscenes where you get transported somewhere and get out?

Recorded animations FTW! :P

CodeBrain
October 16th, 2009, 09:56 PM
Heres something that everybody would love.

Right now I am in a predicament with one of my Phantom's, an AI-controlled one that drives around. I changed some of the settings around, and everything works in sapien. No crashes, no problems. Used run_game_scripts and it works like a charm. Perfectly avoids walls and whatnot.

The problem is, when the level loads, and I get to the point where the ai-controlled phantom is spawned, the game crashes with Gathering Exception Data...

My suggestion is to copy that exception data, and put it in a .txt file, like how the chat is copied to a txt file with the use of Yelo from Open Sauce. Unless it's not as easy as it sounds, shouldn't it be just looking WHERE the exception data goes, copy it, and put it in a txt file, and place it in the directory where the other Yelo stuff goes? (Your HaloCE profile in Documents)

Dwood
October 27th, 2009, 07:09 AM
How about a script command that allows for arrays to be used?

I'm not sure what it would take to do, myself... but what if we had a new global called 'array' that holds a string which is the name of each global you want to store?

And then there's another idea of doing a more updated version of scripting... here's what it would look like-

(script static "void" variables (var1 var2 var3)
(sleep_until (= var1 1)
(set (= var2 var3)
))

In any case, I hope you get the idea. This way we can seriously cut down on the repetitious coding.

Kornman00
October 27th, 2009, 07:56 AM
Adding support for generic arrays would require reworking of not only the hs runtime, but also the hs parser and compiler. Even then I don't really see how it can be helpful overall for HS's scripting purpose.

You don't need to put quotes on the return type of a script.

Script arguments can be hacked in, but if the tools are to support them the parser would have to be reworked. You'd be better off just writing a higher level language for HS as you can hide some repetitive implementation facts, but you'd still be having to write your own parser and translator which would have to be ran before the tools.


Halo 3 supports script arguments though. You should upgrade to it :downs:

Dwood
October 27th, 2009, 09:04 AM
Oh? I didnt know i could mod halo 3 that way. links or something i can use to look into it?

Kornman00
October 27th, 2009, 09:35 AM
the ':downs:' was suppose to mark the fact that it was a joke/sarcasm ;x

Sadly, no, can't mod h3 that way (without a dev kit). Not until/unless they make a PC port.

They should dub it H3V7: Halo3 Vista/7!

e: the single quote marks make it looks like the downer has downer arms. ha.

Dwood
October 27th, 2009, 11:06 AM
Yeah im posting from my craptacular phone. i cant see emotes on it.

Dwood
October 27th, 2009, 02:42 PM
d-d-d-double post!

I would like to expound on my idea with the adding arrays to halo script..

What if you just did it like this:

(global array bool4a (0, 1, 1, 0))
and would be used, in halo script, like the following:
bool4a(1)?

Then when compiling, or pre-compiling, the interpreter or w/e we call it takes the bool and creates 4 separate globals of type boolean, replacing all occurences of bool4a(#) with the corresponding bool...? oh but that wouldn't be advantageous b/c if you introduce randomness, yeah just forget that idea. Might as well do that with an external script interpreter.

Edit coming up with an idea for the 2nd one... Even though it might work better with a separate interpreter outside of Halo.

ShadowSpartan
October 27th, 2009, 03:16 PM
Script arguments can be hacked in, but if the tools are to support them the parser would have to be reworked. You'd be better off just writing a higher level language for HS as you can hide some repetitive implementation facts, but you'd still be having to write your own parser and translator which would have to be ran before the tools.
I'm curious about something, how close was this feature (http://main.halodev.org/system/files/images/prom-07-01-2007-06.png) to being finished?


Edit coming up with an idea for the 2nd one... Even though it might work better with a separate interpreter outside of Halo.
What's the point? I don't see any reason why arrays need to be added to the Halo scripting language. Unless you change the way the engine handles the scripts, you would have to create a new script compiler to replace the current one, which will put the new "array feature" into a format the engine can understand.

Dwood
October 27th, 2009, 03:33 PM
What's the point? I don't see any reason why arrays need to be added to the Halo scripting language. Unless you change the way the engine handles the scripts, you would have to create a new script compiler to replace the current one, which will put the new "array feature" into a format the engine can understand.

Actually you're misreading what I said.


oh but that wouldn't be advantageous b/c if you introduce randomness, yeah just forget that idea.

Was meant to seal up the array idea.

I was talking about the script arguments, to which Korn suggested I write my own higher-level language for Halo script (lol)

Kornman00
October 27th, 2009, 04:30 PM
I'm curious about something, how close was this feature (http://main.halodev.org/system/files/images/prom-07-01-2007-06.png) to being finished?

That is what I was referring to when I mentioned making a higher level language. I originally made up the rough draft (along with how to translate it into usable HS) of PSL during lunch in high school. However, I diverted from the Prom team before any work went into the actual program itself. Rec0 may have worked on it some before he started gathering exception data, but I believe it (in that picture) may have just been an example script of what could be.

I never gave up on crafting it myself in my own tools, but I never really drifted too far from the design phase. For me, implementing something like that is a 2.0 (if I ever released a all-in-one version of my tool) feature as there are tonnes more things which would have been more useful (must of them tag management related).

Dwood
October 27th, 2009, 06:39 PM
Is that new scripting language to the point where someone just needs to integrate it into a tool or are there still things that need to be designed?

ShadowSpartan
October 27th, 2009, 06:52 PM
Is that new scripting language to the point where someone just needs to integrate it into a tool or are there still things that need to be designed?
I wouldn't call it a new scripting language, because it doesn't add anything to the Halo Script Language, it's just Halo scripts in a different form.


I never gave up on crafting it myself in my own tools, but I never really drifted too far from the design phase.
Sounds to me like he finished the design phase for the most part. But designing it isn't the only hard part, you will need quite a bit of programming experience to do this.

Dwood
October 27th, 2009, 06:55 PM
I wouldn't call it a new scripting language, because it doesn't add anything to the Halo Script Language, it's just Halo scripts in a different form.


Sounds to me like he finished the design phase for the most part. But designing it isn't the only hard part, you will need quite a bit of programming experience to do this.

My question was asking more specifically what needs to be done in order for the language to be considered 'complete'. It probably wasn't that obvious however that was the intent. I don't want to assume that he finished the design phase, and then think that he only needs to implement it.

-> If it were at that stage I would simply request him to send someone the designs for it and let them complete it.

ShadowSpartan
October 27th, 2009, 07:08 PM
My question was asking more specifically what needs to be done in order for the language to be considered 'complete'. It probably wasn't that obvious however that was the intent.
Yeah, it wasn't obvious. At all.


If it were at that stage I would simply request him to send someone the designs for it and let them complete it.
I don't see that happening. And even so, who would be up to that task?

jcap
October 27th, 2009, 07:39 PM
Sadly, no, can't mod h3 that way (without a dev kit). Not until/unless they make a PC port.

They should dub it H3V7: Halo3 Vista/7!

e: the single quote marks make it looks like the downer has downer arms. ha.

But Halo 3 on Windows already exists! Look, this guy even has completely non-sketchy video proof of him installing an Xbox disc to his computer!

Ui-d1E88Skw

Or this video: http://www.youtube.com/watch?v=Yt3CTjZ4nTI
LOOK AT HOW MLG PRO HE IS THAT HE DOESN'T MOVE THE MOUSE!

Dwood
October 27th, 2009, 07:43 PM
Yeah, it wasn't obvious. At all.

I don't see that happening. And even so, who would be up to that task?

You never know.

e: lol jcap >.>

ShadowSpartan
October 27th, 2009, 07:51 PM
You never know.
I'm going to assume that you are wanting to do the project, but I highly doubt you are capable of doing something as complicated as this.

Dwood
October 27th, 2009, 08:01 PM
I'm going to assume that you are wanting to do the project, but I highly doubt you are capable of doing something as complicated as this.

You assume much. I would like to do it myself, however I know that would be a difficult task which in itself would take ages to do. I wouldn't take it upon myself to do it however I am interested in what Korn had/has designed for Prometheus.

ShadowSpartan
October 27th, 2009, 08:07 PM
You assume much. I would like to do it myself, however I know that would be a difficult task which in itself would take ages to do. I wouldn't take it upon myself to do it however I am interested in what Korn had/has designed for Prometheus.
Let's look at this quote by Korn again.


I originally made up the rough draft (along with how to translate it into usable HS) of PSL during lunch in high school.
He designed the language, and documented how to translate it into the binary equivalent that is usable by the game engine. That's as far as he got while on the Prometheus team, and he said he wasn't worked on it much past the design phase since then. Why would you need to know the technical information if you don't plan on attempting it yourself?

Dwood
October 27th, 2009, 08:12 PM
Why would you need to know the technical information if you don't plan on attempting it yourself?

Is it wrong to be curious? You're being pretty hostile when all I'm doing is asking questions that I think that are fairly reasonable. I have not asked Korn for the documentation or technical information or anything like that, and you're attacking me? Jeez.

E: actually, let's back up a second here.


Is that new scripting language to the point where someone just needs to integrate it into a tool or are there still things that need to be designed?

That was what I said originally. That was what I wanted to know, nothing more and nothing less. You're taking it a bit far here, do you have like a personal vendetta against me?

ShadowSpartan
October 27th, 2009, 08:38 PM
Is it wrong to be curious?
No there is nothing wrong with it, but there is no point in getting the information if you can't even use it.


I have not asked Korn for the documentation or technical information or anything like that
*cough*

If it were at that stage I would simply request him to send someone the designs for it and let them complete it.
You did ask if he would give out the information to somebody, and you said yourself that you wanted to know about it, so you pretty much asked him for the documentation.


That was what I said originally. That was what I wanted to know, nothing more and nothing less.
And that was answered in his post about it. "I never gave up on crafting it myself in my own tools, but I never really drifted too far from the design phase." Design phase is pretty much complete, but he has never gotten really deep into the implementation. I don't know how to make it any clearer. If that is all you wanted to know, "nothing more nothing less", then why are you wanting to know about the technical documentation?

Dwood
October 27th, 2009, 09:02 PM
My point was that my original question was there, and that was all that I wanted to know from Korn. I only said those things because you brought them up.

You're taking the original question out of proportion.

And you know what? If you wish to take this conversation further, please take it to Private messages because this little skirmish is seriously detracting from the thread.

ShadowSpartan
October 27th, 2009, 09:13 PM
My point was that my original question was there, and that was all that I wanted to know from Korn.
And my point is that there was no need to even ask that because his post contained the answer to it.

Kornman00
October 28th, 2009, 11:24 AM
Actually, I detailed how to translate it into BSL (HS). There wasn't anything about the proposed language that would have required manipulation of the compiled syntax nodes. Both PSL and BSL were to be supported, so I the best course of action IMO was to just provide a translation unit for the PSL's interpreted syntax tree. This way any optimizations seen fit for BSL could still be applied and such. It was a good separation in my eyes.

I'm sure the documentation I made for "BSL#" (since I no longer associate with Prometheus I'm not referring to it as PSL) will come to light sooner or later.

Rambo
October 31st, 2009, 02:23 PM
OK here's what I've done for a Lightmap extender function.

I have set up the appropriate data for structure_lightmap_index and switch_lightmap in the XML file that comes with Open Sauce (examples.do.not.include) or something like that. I then recompiled. Presto! It works fine in Sapien. However, when I try to load the function in game it won't show up. My question is, why? What am I doing wrong? How do i migrate these functions into the project_yellow_globals or at least make them show up?

Please help, someone. Thanks.

Chaos and I are trying to get the lightmap functions to work and we've made it this far.

Technical specifications:

switch_lightmap returns a boolean and the argument is a short. Is this correct? The name for the argument I gave it is structure_lightmap_index.

structure_lightmap_index retrns a short and the argument is a boolean with the name of structure_lightmap_index for the argument name. is this correct?

I'm new to this so please don't come down hard on me. I'm actually trying to make this work. Thanks.

Kornman00
November 1st, 2009, 04:36 PM
The function doesn't show in-game because it's not programmed into the .DLL HaloCE is using.

You use the CheApe XML definitions (which is later compiled into a memory cache) to make the HEK "OpenSauce Aware". Meaning, any tag group definitions, script definitions, etc. found in your OpenSauce code that you also want to have the HEK interface with must be defined in your CheApe XML.
Also note: Script definitions are just stubbed out HEK, meaning they don't do anything meaningful. They're just there to allow you to properly build "OpenSauce Aware" scenarios.

Why are you defining two functions for this? You would only need one, switch_lightmap (either taking a short to represent the lightmap index or a string which the code will then try to find in the bsp_set blocks).

Dwood
November 1st, 2009, 06:04 PM
I need to count the number of ai the player's killed, in a Single Player map.

There are 2 other things I'll be looking at as well:

I'm also looking at finding the variables for jump so I can modify it. Then, I want to modify jump height per player.

2nd, I want to modify speed of the player as well. I'll report back what I find this week.

I want to make all of those editable via scripting.

ShadowSpartan
November 1st, 2009, 09:26 PM
I need to count the number of ai the player's killed, in a Single Player map.
The statistics code is no longer a part of OS.


I'm also looking at finding the variables for jump so I can modify it. Then, I want to modify jump height per player.
I don't think the jump height is a value in the player table, it would be rather pointless to have it in there. I'm pretty sure the jump height is loaded straight from the biped tag.

MissingSpartan7
November 2nd, 2009, 12:45 AM
adding more ideas,
you know in vehicle tags how you set the vehicle type as "human jeep" "alien fighter" etc
is it possible to combine these traits to create vehicles like the brute chopper

so a "front" field and a "back" field but perhaps also a "movement control" field to allow things like the strafing ability in the ghost to other vehicles

Dwood
November 2nd, 2009, 06:50 AM
The statistics code is no longer a part of OS



Dang. I didn't even know it was a part of OS in the first place lol.



I don't think the jump height is a value in the player table, it would be rather pointless to have it in there. I'm pretty sure the jump height is loaded straight from the biped tag.

Jump Velocity is kept in the scenario tag

ShadowSpartan
November 2nd, 2009, 08:46 AM
Jump Velocity is kept in the scenario tag
Notice how I said jump height, not jump velocity? You are the one that said jump height in your initial post. I just took a look at the scenario tag, there is not even a single instance of "velocity" in any of the field names. Try again.

Edit: Well look at that, "jump velocity" is in the biped tag as well. Makes a lot more sense than the scenario tag doesn't it?

Rambo
November 2nd, 2009, 09:04 AM
The function doesn't show in-game because it's not programmed into the .DLL HaloCE is using.
Then how do we get the DLL to recognize map resources or at best, program it into the DLL as a recompile?


Why are you defining two functions for this? You would only need one, switch_lightmap (either taking a short to represent the lightmap index or a string which the code will then try to find in the bsp_set blocks).
Because, when making a complicated day-night system where the lightmap needs to sync according to the biped killed, you don't want it to just switch Lightmap because then it might get stuck without a check. That's why I incorporated a check function such as structure_lightmap_index to make sure that if someone tries to glitch the lightmaps or BSP switches by selecting a BSP or lightmap other than the one in use to purposefully mess up the time of day to gain an unfair advantage over someone, they cannot. With a complex but robust checking system, the lightmap would be able to be locked to where it is, but that could only be done via a structure_lightmap_index command.

Furthermore, I want to have the ambient sounds change according to what time of day it is (e.g. crickets and owls for night time and birds and cicadas for daytime). One could easily do this in a cluster portal, but I'm using sound scenery to make the experience more "full" sounding, if you know what I mean.

So I should set switch_lightmap as a string argument and the return should be a boolean, correct? What should the structure_lightmap_index be?

FRain
November 2nd, 2009, 09:24 AM
Then how do we get the DLL to recognize map resources or at best, program it into the DLL as a recompile?


Because, when making a complicated day-night system where the lightmap needs to sync according to the biped killed, you don't want it to just switch Lightmap because then it might get stuck without a check. That's why I incorporated a check function such as structure_lightmap_index to make sure that if someone tries to glitch the lightmaps or BSP switches by selecting a BSP or lightmap other than the one in use to purposefully mess up the time of day to gain an unfair advantage over someone, they cannot. With a complex but robust checking system, the lightmap would be able to be locked to where it is, but that could only be done via a structure_lightmap_index command.

Furthermore, I want to have the ambient sounds change according to what time of day it is (e.g. crickets and owls for night time and birds and cicadas for daytime). One could easily do this in a cluster portal, but I'm using sound scenery to make the experience more "full" sounding, if you know what I mean.

So I should set switch_lightmap as a string argument and the return should be a boolean, correct? What should the structure_lightmap_index be?
Common sense says it should return a real for both of those.

ShadowSpartan
November 2nd, 2009, 10:26 AM
Common sense says it should return a real for both of those.
No it doesn't, I don't see why he would want to use a real (float or decimal) number as the return type. Explain your reasoning.

Rambo, how exactly are you going about changing the "lighting"? Are you going to switch the bsp and just have multiple bsps in the map, or try to change the lightmap that is referenced in the bsp tag in real time?

Kornman00
November 2nd, 2009, 10:32 AM
You would have to modify the Halo1_CE project's (part of the OpenSauce SDK) code in order to implement the script functions, then compile the code changes to get a new DLL. C++ programming isn't optional for this kind of stuff.

If you're wanting to be able to get the current index then I would suggest exposing a C++ variable as a hs_global, not a function. Also, for a complex TOD system such as that, a better system would be to have an enum in the tag data which states if the lightmap_set is dawn, midday, dusk, or night then programming a set of boolean hs_functions (since there is no support for defining new hs_types, like a new time_of_day enum) like tod_is_midday which you can then use in a cond block.
You have to set boundries with what you put into HS in Halo 1. It isn't exactly meant to be something like UnrealScript or TorqueScript where you can just program new parts of the engine via scripts. Its meant to drive specific scenario logic.

Thats as far as I'm going to try and explain this as most of this should be apparent with experience in tag definitions, halo script, and C++ programming. You'd probably be best off finding a C++ programmer to help you put this into the codebase. 1234- not it :downs:.


Shadow...calm down :slap: (e: referring to your earlier post)

Rambo
November 2nd, 2009, 10:53 AM
Yeah I was afraid of that. If you have any time at all that's free, could you compile the functions into a new DLL so they at least read properly so we could use them with the tag? Chaos doesn't know much C++. He basically programs in VB.Net when making his Tool # program. I'm just asking nicely if you could make it work for the next updated DLL release on the main page of the OpenSauce RC thread. I'd really like to start using the lightmap function and making custom skies to go with it so we can ditch this old way of doing things.

Also, about client-server syncing, is it psible? I ask because I know why it's not working. Remember way-back-when, when Bungie releasd a 1.07 patch to fix "hackers" sending "false" data? Well, the reason why the game drops you from the server when false packets are sent is because they either are not signed or this stupid protection method gets in the way. We need to find a "backdoor entrance into the game by which we can sync up devices and other data more efficiently than a biped kill.

Kornman00
November 2nd, 2009, 12:51 PM
I told you earlier, I wasn't pursuing this. I added some stub definitions for the scenario's yelo extensions but that's about as far as I'm going with this, I just don't have the time. Even if anyway put stub code into the DLL too, you wouldn't be doing anything with TOD...as the process implies, it's stubbed functionality. I'm pretty sure we've gone over this already.

Custom message deltas could be done if someone figures out why the game appears to send them fine, but yet clients don't appear to receive them at all. I've stated this before, the custom networking in OpenSauce doesn't work.

I'm still trying to piece my development environment back together (in what free time I can find) after Windows crashed on me harder than the twin towers, RIP those at ground zero. However, I won't be able to setup anything which will let me test any further additions to OpenSauce so once I do get my environment going again the only thing I will be doing for OpenSauce is making sure Update 2 is ready for release.

Dwood
November 2nd, 2009, 01:51 PM
Yeah... :shrug: we all have our days.

What's worse, is that I've spent 15 hours in the scenario tag on Guerilla for the past week or so. I've been using guerilla so much I'm hallucinating. Mb it's come to life and learned to hypnotise people?

The Guerilla background is pretty hypnotic.

Korn, I'll send you the pm or try and catch you on AIM about certain things in the Project Yellow tags etc.

Rambo
November 4th, 2009, 10:07 PM
What I have to say is a rather lengthy post but what I feel is a worthwhile one to read, so please, listen up.

I know why the client/server syncing isn't working, guys.

Do you remember way-back-when, when there was a patch to remedy the problem pertaining to "false" data being injected into the data stream causing a server to crash if a malevolent attempt at hacking were to succeed? I believe it was Version 1.07 that addressed this bug, maybe 1.06. Along with that bug also came a slew of other fixes, including the demolishment of the old sightJacker and other programs being broken.

But that isn't the point here.

Anyway, The resulting "solution" involved servers rejecting clients from connecting to the server if they sent a "false" packet or received one. the client would either say, "Network connection lost" or "Unable to join game server."

where I'm going with this is simply this. Kornman00 based his Open Sauce Yellow code off of a patch that was based off of a so-called bugfix patch. He may or may not have been aware of this bug when he designed the d3d9.dll file in the first place, let alone its code. We are this close to a solution to the Server and Client Upgrades. I am aware that Kornman00 tested the functions such as doors syncing and the result was any client that received the data was booted from the server. Why is this? it all goes back to that pesky "security fix" that spawned a slew of "white hat problems", including the device syncing.

It is my wish and desire that somebody out here that knows what they are doing can identify with what I'm saying, look into the issue, and come up with an "unsupported fix" in the form of a new d3d9.dll file that will address this problem.

An easy way to find the problem is to create a PPF file containing the differences between the two versions (source version wihout the problem and destination version with the problem). Another easy solution is to "downgrade" Yellow Open Sauce to support 1.04 or 1.05 Halo CE so that, in the right testing environment, this could be confirmed or disregarded as the problem we've been having. Once it has been determined that the problem does in fact reside in the fix for the hacker problem, we can then create a solution to the problem.

I fully feel that this can be done, guys. I am confident that someone out there will at least consider my thoughts and perhaps investigate them. please, I urge someone to at least look into this issue and help solve a long-standing gripe in the Halo CE community. Thanks.

Sincerely

~Rambo

EDIT: Chaos and I are currently looking into the issue by attempting to downgrade Yellow Battery to a prior version of Halo CE. We are taking it upon ourselves to come up with a test environment for all of you to use to resolve this problem with the device syncing.

EDIT 2: The attempt at modifying the source code failed. We were, however, able to remove the version check; however, we don't know where the DirectX proticols are and how they mask the real DirectX to interface with the Halo CE Executable that is 1.08 so we can make it run on the stock Halo CE framework. Even if we could get a 1.03 or 1.04 build working with d3d9.dll, it would be a blessing. Kornman00, would you please help us, or if not, would someone help us make this work on a early framework? We don't care if it's stable. We just want to test the netcode.

ShadowSpartan
November 4th, 2009, 10:52 PM
Kornman00 based his Open Sauce Yellow code off of a patch that was based off of a so-called bugfix patch. He may or may not have been aware of this bug when he designed the d3d9.dll file in the first place, let alone its code.
It's Yelo. If he wasn't aware of this "bug" then how did he base his code off of that patch? And a better question, how do you know that is what he did? You contradicted yourself, acting like you know more than you actually do.


It is my wish and desire that somebody out here that knows what they are doing can identify with what I'm saying, look into the issue, and come up with an "unsupported fix" in the form of a new d3d9.dll file that will address this problem.
Don't you mean "in the form of an edited version of Open Sauce's source code". Just having a dll file won't help you much if it can't be implemented into another person's OS codebase.


An easy way to find the problem is to create a PPF file containing the differences between the two versions (source version wihout the problem and destination version with the problem).
Wow, I can not believe you just said that. So you want to compare two different versions of the Halo executables, let's say 1.04 and 1.05 as an example, and you think doing a simple hex compare will show you what code was added/removed? Seriously? That won't work because the memory addresses for the same code in the executable will have changed, so the hex will drastically differ.


Another easy solution is to "downgrade" Yellow Open Sauce to support 1.04 or 1.05 Halo CE so that, in the right testing environment, this could be confirmed or disregarded as the problem we've been having.
I doubt anybody will go through the trouble of downgrading OS to a previous version. You would be better off figuring out how to get the client to accept modified packets, and add that into the current version. Downgrading OS will undoubtedly cause a lot of issues and bugs that you will have trouble tracking down and fixing.


Once it has been determined that the problem does in fact reside in the fix for the hacker problem, we can then create a solution to the problem.
It sounded to me like you were pretty confident that is why the server can't send modified packets to the clients, why are you second guessing yourself?


EDIT: Chaos and I are currently looking into the issue by attempting to downgrade Yellow Battery to a prior version of Halo CE. We are taking it upon ourselves to come up with a test environment for all of you to use to resolve this problem with the device syncing.
How are you downgrading Yelo Battery without the source code? Unless you were referring to Open Sauce, which in that case, how do you plan on doing this if you cannot even add a script function to the game using Open Sauce?

formlesstree4
November 4th, 2009, 11:30 PM
From what I've understood about the upgrades, Bungie/Gearbox/Microsoft did a patch-fix to disable packets that were unsigned from working. From what I also understood, most of the updates after 1.06 were security fixes, not changes to the actual engine.

In theory, would it not be logical to argue that Yelo/Open Sauce would work on 1.05?


It's Yelo. If he wasn't aware of this "bug" then how did he base his code off of that patch? And a better question, how do you know that is what he did? You contradicted yourself, acting like you know more than you actually do.

I'm going to say that nobody here besides him and maybe a few others knows exactly where he based his code from.

Now, back to another theory.

Back before 1.06, it was possible to send unsigned packets to the server. Usually, this would be used for malicious intent (obviously why the patch was released to stop this.) What if, and this is a big if, we drop back down to 1.05 just to test the theory that this patch is the source of the device synchronization error that has eluded a fix for ages.

Until recently, this hasn't been a major problem obviously, we just stick to biped syncing across things to make things click. This is no problem until we start having a whole bunch of bipeds. The whole reason for this 'test' is to see if we were right. If we are in fact right, then we can proceed from there. If not, we tried something that (to our knowledge) hasn't been tried before.


It sounded to me like you were pretty confident that is why the server can't send modified packets to the clients, why are you second guessing yourself?

We are pretty confident in this. That's the reason we're trying to go through with this, is to see if this patch that Bungie released is what stopped it from even starting back at 1.05. For all we know, Bungies own solution to a hacker exploited problem could be the curse that's stopping this.

I do have to say, the arguments that are against this is...quite staggering. Why would someone be against something that actually wouldn't cause harm and even further progress the Halo CE community?


Wow, I can not believe you just said that. So you want to compare two different versions of the Halo executables, let's say 1.04 and 1.05 as an example, and you think doing a simple hex compare will show you what code was added/removed? Seriously? That won't work because the memory addresses for the same code in the executable will have changed, so the hex will drastically differ.

I will agree with you there. Here's an even simpler example: I take the MD5 hash of 'a', and the MD5 hash of 'b', and compare them. There is absolutely no chance to know which is which unless you know what they are.


I doubt anybody will go through the trouble of downgrading OS to a previous version. You would be better off figuring out how to get the client to accept modified packets, and add that into the current version. Downgrading OS will undoubtedly cause a lot of issues and bugs that you will have trouble tracking down and fixing.

Don't you think we have already figured this out? The whole point of doing this is to see if we are right to begin with! Why bother modifying a packet to the 'signed' version if it won't work to begin with. Wasted effort brings no results. If we figure out that the patch was the issue to begin with, then we can confirm these results and figure out how they changed the packets.


Don't you mean "in the form of an edited version of Open Sauce's source code". Just having a dll file won't help you much if it can't be implemented into another person's OS codebase.

Well duh.


How are you downgrading Yelo Battery without the source code? Unless you were referring to Open Sauce, which in that case, how do you plan on doing this if you cannot even add a script function to the game using Open Sauce?

I'm just curious as to how this even relates to what we're discussing. Care to elaborate?

I shall now sit back, and try to figure out why someone here would, instead of help us, argue against us in something that might actually change the future of how Halo Script needs to be written on devices.

Kornman00
November 5th, 2009, 02:07 AM
Yelo uses the engine's existing networking framework...there is no "unsigned data". Not only that, but the server reports a success when encoding a message while the client never acknowledges receiving what the server claims to have successfully encoded. The client doesn't drop from the game either when this happens.

Rambo
November 5th, 2009, 02:31 AM
AHEM!!!!!!!

Kornman00, by no means do I mean to bash you by saying this, but I'd like to point out the following regarding your previous post pertaining to Chaos' response. This deals directly with the netcode issue and my hypothesized presumption.

As quoted directly from the User Manual for the Open Sauce Yelo SDK...


· YELO_NO_NETWORK – Applies to all builds. When this is defined, all network based code related to changing the engine's code to support more network message packets isn't called nor compiled under the current build target. Currently the support for new network messages doesn't work. No actual crashes occur however, when one of these new packets are sent to a client it causes said client to think the connection was lost. Obviously there must be some code still only expecting the original game's messages only, thus causing the client to ditch the server thinking it was sent some bad message data.
And there you have it, ladies and gents, exactly quoted from the manual itself. If the 1.04 or 1.06 patch is the culpret, I'd say we have ourselves a possible solution. Now, all we have to do is identify the guilty suspect and passify it.

Kornman00
November 5th, 2009, 05:50 AM
I'm pretty sure I got it to the point where the client doesn't lose the connection in the current codebase (read: newer than the Update 2 RC). I'll try to give a build to two people this weekend to try and verify this, but I'm pretty sure I took a little stab at the networking after the RC was released.

Rambo
November 5th, 2009, 08:00 AM
Did you look into the v1.04 (or possibly v1.06) patch issues that spawned as a direct result of Bungie's attempt to solve a black-hat hacker related issue of malicious code entering and crashing a server?

If you could compare the code for the network packets from, say, a stock build of Halo CE, and that of the current build (stable 1.08), what would you find? Would you not find that the packets need to be somehow signed or at least verified as not being malevolent in nature (according to the patch requirements of that era) so that the doors and other devices would function?

Kornman00, you're probably going to kill me for asking this, but may i please be one of the people that tests this issue? My map is extremely heavily based in syncable objecs -- BSPs, doors, lights (light fixtures), even the controls themselves that govern the syncing of these very objects that themselves must sync according to the toggle switches. I would be, not only more than hapy to, but very interested in having a stab at the DLL file so that I can report ANY issues to you that I might find.

Would you please at least consider me, since I am working on a map that requires the least amount of bipeds for the least amount of lag? I'd be more than appreciative and grateful. Thanks.

BTW: When you also tested the current runs of the newest DLL, did you remember to remove the line mentioned above in the User Manual quote? if not, perhaps this is why the code isn't responding client-side. Just an afterthought, that's all. And yes, I could test the build and issues locally with no need for a friend online by testing via my LAN over two different computers with the same map and same everything.

PS: Not to stray from the bug topic at hand, but one of my ideas (if it's possible to implement) would be to allow Open Sauced game servers to host a maximum of 32 players instead of 16 on a T1/LAN connection. This would be pure pWn4g3 on a Machinima server or a MMORPG server.

Is it possible to implement this with somewhat fair ease, Kornman00?

ShadowSpartan
November 5th, 2009, 10:52 AM
In theory, would it not be logical to argue that Yelo/Open Sauce would work on 1.05?
Yes, but that is only if you don't mess something up while downgrading Open Sauce. I highly doubt you won't run into any major problems.


I do have to say, the arguments that are against this is...quite staggering. Why would someone be against something that actually wouldn't cause harm and even further progress the Halo CE community?
I'm just trying to be realistic here.


Don't you think we have already figured this out? The whole point of doing this is to see if we are right to begin with! Why bother modifying a packet to the 'signed' version if it won't work to begin with. Wasted effort brings no results. If we figure out that the patch was the issue to begin with, then we can confirm these results and figure out how they changed the packets.
Why don't you try to figure out why it won't work, rather than jumping on the idea to downgrade OS.


I'm just curious as to how this even relates to what we're discussing. Care to elaborate?
He said that you were downgrading Yelo Battery. The source code to Yelo Battery, to my knowledge, has not been released. Some of the Yelo Battery code was incorporated into Open Sauce though. So did he mean to say that you guys are downgrading Open Sauce? Because Yelo Battery is technically not the same as OS.


I shall now sit back, and try to figure out why someone here would, instead of help us, argue against us in something that might actually change the future of how Halo Script needs to be written on devices.
As I said above, I'm trying to be realistic. If you cannot even get a new script function working, what makes you think you can downgrade all of OS, as well as reverse engineer the Networking code? Also, this wouldn't really change Halo Scripting in any way, you just wouldn't have to add syncing scripts because they will sync automatically.


PS: Not to stray from the bug topic at hand, but one of my ideas (if it's possible to implement) would be to allow Open Sauced game servers to host a maximum of 32 players instead of 16 on a T1/LAN connection. This would be pure pWn4g3 on a Machinima server or a MMORPG server.
..................Wow. It's not possible, end of story. Do you just post about whatever crazy ideas pop into your head without even thinking about them for 5 seconds?

Rambo
November 5th, 2009, 12:10 PM
Listen. If it weren't for "crazy ideas", we wouldn't have HALF of the stuff that WE, as a planetary society, more than take for granted. Things such as how the world was proven to not rest on a turtle's back, or at best, be flat; or how the earth actually revolves around the sun and not the other way around; or for that matter, the electric Lightbulb invented by Thomas Edisson, or even the telephone that actually was, if I'm not mistaken, an attempt at making the telegraph better, attempted by Alexander Gran Bell... Heck, I'll even throw in radio and television and, for that matter, even the microprocessor that ALL OF US HERE on this forum DEPEND on to communicate with one another... All of these things we take for granted and yet they spawned from seemingly insurmountable odds sprung from "crazy ideas", as you so elequently put it. Proud inventors slaved their ASSES over "crazy ideas", to put it so bluntly. Even though, yes, they had the time, patience, and know-how to make "crazxy ideas" work, tey were STILL "crazy ideas" neverltheless.

For every person in this world that ever said such "crazy ideas" would never, i repeat NEVER come to pass, there were more inventors than roadblocks to prevail and this caused the negative people's tauntings to become no more than stumbling blocks to a mad man's dream come true. I may not have the way-with-all as far as know-how to actually accomplish these idead by myself, but I have friends that at least care. Yes I may consider myself to be a sort of visionary-type person with wild ideas, but look at what I've done with the raw conceptualized ideas when capable and put to the test. I know it isn't much, but take a look at the (and I don't mean to come across as a self-piassed, self-righteous person by saying this) beautiful work put into Blood Creek RC3's betas from which the videos themselves came from. I won't even go into WHY it is that I ask for help with modeling because it's not necessay and is of no importance to this current debate you and I seem to be having over "crazy ideas". However, I will say that if you actually took the time to slow down and think before spouting off diarrheic negativity, perhaps people wouldn't get so frustrated when they respond with messages that should be simple counterpoints. I will not reference any links to my Xfire videos of Blood Creek RC3 progress here; however, I will say that anyone with enough time and patience can find them and see for themselves what we've done.

That said, back to topic.

I asked for switching lightmaps. it's in, albeit rudimentary at best. So what if it's stub code with a project_yellow tag reference? it's there, is it not? I'm now asking for 32-player support on a T1/LAN connection only. It could be possible, just as the 32 BSP limit on a Yelo-based .scenario tag was reached (64 if you count all the BSP sets, not including the 32 in the standard .screnario now).

Dude, stop coming across like you're flaming people and actually slow down and try to at least think of the "mpossibilities" that DID happen before you go exclaiming such a thing. Now you're just irritating me and I'm not afraid to say it like some people. Though my ideas may in fact be crazy ones, I'm at least TRYING to suggest things that just might get into the game's OS code. It wouldn't be hard to... No, let me rephrase that. It wouldn't be so impossible as you claim, to add an override function in the Open Sauce code for the network functions and up the playernumber count from 16 to 32 on a LAN server or, for that matter, a T1 server. Unless the rendering issues plague the system, the engine is MORE THAN CAPABLE of handling at least 24 people, if not 32, even though the limit in the .exe file was set at 16.

After all, didn't someone out there on the internet that I don't know exactly the name of reference to, end up hacking a copy of the EXE or the dedi's EXE to handle more clients (users) and even go so far as to bring down the server with a lagfest just to prove a point? It may be rumors, but one of my friends told me some guy actually did succeed.

Please, at least let other people try to get an idea in before you go and inject your negative two cents worth.

Choking Victim
November 5th, 2009, 12:43 PM
Listen. If it weren't for "crazy ideas", we wouldn't have HALF of the stuff that WE, as a planetary society, more than take for granted.
There's a difference between scientifically tested theories and jumping to conclusions.

Rambo
November 5th, 2009, 12:58 PM
Point taken. However, even so, crazy ideas are still crazy until proven otherwise.

ShadowSpartan
November 5th, 2009, 01:09 PM
I asked for switching Lightmaps. it's in, albeit rudimentary at best. So what if it's stub code with a project_yellow tag reference? it's there, is it not?
While some code is there apparently, it doesn't do anything. I've barely taken a look at OS2, so I don't know how much Korn has or has not added.


I'm now asking for 32-player support on a T1/LAN connection only. It could be possible, just as the 32 BSP limit on a Yelo-based .scenario tag was reached (64 if you count all the BSP sets, not including the 32 in the standard .screnario now).
No, it's not possible without the source code to the game.


It wouldn't be hard to... No, let me rephrase that. It wouldn't be so impossible as you claim, to add an override function in the Open Sauce code for the network functions and up the playernumber count from 16 to 32 on a LAN server or, for that matter, a T1 server.
Ok then, if you know how to go about doing it, then do so. Have fun writing that "override function".


Unless the rendering issues plague the system, the engine is MORE THAN CAPABLE of handling at least 24 people, if not 32, even though the limit in the .exe file was set at 16.
It's not like there is some number in the engine you can change to magically make it switch from a maximum of 16 players to a maximum of 24 or 32. There are player tables in memory that have a fixed size, only allowing for 16 players. It's not possible to do this without the source code to Halo 1.


After all, didn't someone out there on the internet that I don't know exactly the name of reference to, end up hacking a copy of the EXE or the dedi's EXE to handle more clients (users) and even go so far as to bring down the server with a lagfest just to prove a point? It may be rumors, but one of my friends told me some guy actually did succeed.
That was e3po, I don't believe anything that he says. He also claimed to have made his own rendering engine that looked exactly like H1, but then Bungie made him stop working on it.

Rambo
November 5th, 2009, 01:22 PM
So what if you don't believe him, fact is, he claimed it was true. if it is, what difference does that make? Even if it were true, what's to stop Kornman00, here, from going in and upgrading the server liit the same way or similarly thereof, he did for the BSP/Lightmap tag count?

ShadowSpartan
November 5th, 2009, 01:28 PM
So what if you don't believe him, fact is, he claimed it was true. if it is, what difference does that make?
He's an unreliable source.


Even if it were true, what's to stop Kornman00, here, from going in and upgrading the server liit the same way or similarly thereof, he did for the BSP/Lightmap tag count?
It's not the same, AT ALL. Increasing a tag block limit is not a hard thing to do.

Choking Victim
November 5th, 2009, 01:30 PM
...what's to stop Kornman00...
How about time.

He's done his part, Open Sauce is a 3rd party software development kit. It's up to you to use this framework to accomplish these tasks. As for this thread, I recall Kornman stating that he would only be accepting ideas before the release of OS v2.

Dwood
November 5th, 2009, 01:36 PM
Guys just wait until Skarma gets done with his reversing. How about instead we focus on someone doing a *silent* version changer for Open Sauce?

Rambo
November 5th, 2009, 01:46 PM
OK. He could be the one that could do it. He could compare EXE code between stock netcode and where the patched code was inserted, then make a fix for Open Sauce.

p0lar_bear
November 5th, 2009, 04:41 PM
PS: Not to stray from the bug topic at hand, but one of my ideas (if it's possible to implement) would be to allow Open Sauced game servers to host a maximum of 32 players instead of 16 on a T1/LAN connection. This would be pure pWn4g3 on a Machinima server or a MMORPG server.

It's been tried about a million times. The game is not coded to handle more than 16 networked players, and shit happens when the 17th player joins.

Korn has made it clear that there are a lot of things, mostly things such as revamping the game's existing systems, that are simply not feasible without the game's source code. IIRC OS is meant to add to the game's engine, not change anything.

Rambo
November 5th, 2009, 05:01 PM
OK I accept. well put, mate.

Dwood
November 5th, 2009, 05:19 PM
It's been tried about a million times. The game is not coded to handle more than 16 networked players, and happens when the 17th player joins.

Korn has made it clear that there are a lot of things, mostly things such as revamping the game's existing systems, that are simply not feasible without the game's source code. IIRC OS is meant to add to the game's engine, not change anything.

Well imho it is possible but who wants to dissassemble over 10,000 100,000 lines of assembler code just to find out what's going on?

Rambo
November 5th, 2009, 06:08 PM
About the updated Netcode fix Kornan00 made to his Open Sauce 2 build, I have a suggestion.

No offense to kornman00, but regarding the current build he has of the Netcode fixes, I don't fully trust the conditions that this current build for testing purposes would subsequently create. I do, however, believe that it very well could still work; however, there is a part of me that feels the upgrade would act as a hindering factor to bute-force testing. I'd still very much like to see the results of the test. However, it is in my opinion, that in order to flush out this pesky bug, we need an environment that is rigged to kick a client from the server. If we can use that rather than his reroutes or "fixes" or whatever he did, then we could possibly come up with a more "direct" solution.

Kornman00, I am still very much interested in a possible position as a tester. However, I just wanted to point out the preceding as what I feel are more viable testing conditions. By "fixing" one problem and causing the server to send packets and the client to supposedly ignore them, we may have pevented the detection of te real problem at hand.

ShadowSpartan
November 5th, 2009, 06:23 PM
No offense to kornman00, but I don't fully trust the conditions that his current build for testing purposes would create.
I don't think any of the networking code is implemented in the RC release.


I'd still very much like to see the results of the test. However, it is in my opinion, that in order to flush out this pesky bug, we need an environment that is rigged to kick a client from the server.
It's not a bug. A bug is code doing something that is unexpected. It is expected for Halo to not accept modified packets, so it's not a bug, but instead a security feature.

Rambo
November 5th, 2009, 06:45 PM
Dude, for Pete's sake, just be quiet and quit trying to introject your two cents' worth of non-constructive criticism.

and you didn't bother to even research the SDK, did you? The post I quoted from in the Manual said that, by default, it is DISABLED, not unimplemented. Unimplemented, in most cases, means not even structured to function. All one has to do is remove the macro in the build conditions to include the netcode environment, and bingo! Now you have a netcode that will crash clients' connections the instant a foreign packet is introduced into the data stream from the server.

You never saw it coming because you didn't test a build you comiled yourself. You relied on the stock DLL file provided on the release thread's first page.

beore you start spewing diarrheic nonsense, I'd advize you to make sure that the conditions for your statements are fully met on all levels and from all angles. That means, do your so-called "homework" before you post another negative spiel such as this.

skywalker71291
November 5th, 2009, 06:58 PM
Yea ShadowSpartan, Just because you can't do ANYTHING!!!! that anyone else wants to know how to do dosen't mean you can go around and be a BRAT and try to make your self look good.( YOU DON'T KNOW WHAT YOU ARE DOING!!!!) Rambo is one of my good friends and he has researched extensively the differences between the various patches' conditions and what they fixed. Although he is not a programmer himself, he is aware of these problematic issues that were corrected and can thereby logically conclude the resulting consequences of an issue such as the black-hat hacker fix. Now stop acting like you know everything and stop being a troll okay? And go tell someone that cares and will put up with this crap!

FOR EXAMPLE! :
It's not a bug. A bug is code doing something that is unexpected. It is expected for Halo to not accept modified packets, so it's not a bug, but instead a security feature.

Dwood
November 5th, 2009, 07:11 PM
Why is this even an argument when we can all just wait for Skarma and worry about more apparent problems?

ShadowSpartan
November 5th, 2009, 07:12 PM
The post I quoted from in the Manual said that, by default, it is DISABLED, not unimplemented. Unimplemented, in most cases, means not even structured to function.
I said that it was not implemented....so what is your point? I know that it is not implemented, but you acted like it was in your previous post when you said you didn't "trust" OS as a test environment. Just don't touch anything networking related in OS, and it is a fine testing environment.


and you didn't bother to even research the SDK, did you?
See below.


You never saw it coming because you didn't test a build you comiled yourself. You relied on the stock DLL file provided on the release thread's first page.
Shut the fuck up. You have no fucking idea what you are talking about. I may not have messed with OS2, but I have with the original OS release, and I have compiled numerous of my own OS dll's. I fail to see your point with that statement. You sure do love jumping to conclusions without any evidence to back it up don't you?


beore you start spewing diarrheic nonsense, I'd advize you to make sure that the conditions for your statements are fully met on all levels and from all angles. That means, do your so-called "homework" before you post another negative spiel such as this.
I did do my "homework", I said it was not implemented. You were the one who was acting like the networking code was implemented by default, not me.


Yea ShadowSpartan, Just because you can't do ANYTHING!!!!
Lol, really now? I can't do anything? You have no idea what I have done in terms of Halo modding, so do not act like you do. A lot of my work is private, and exclusive to the team it was created for.

formlesstree4
November 5th, 2009, 07:24 PM
This argument is getting us nowhere. Let's just wait until we have some more information from either Kornman about OS, or skarma if he's reading this about reversing some of the netcode [possibly]. Internal corruption was a benefactor to Rome falling, let's not become an example and look like idiots arguing with ourselves, which will only get us nowhere.

Rambo
November 5th, 2009, 07:30 PM
Why is this even an argument when we can all just wait for Skarma and worry about more apparent problems?
I'm terribly sorry for making this seem like an argument and thereby humbly apologize for seeming as such.

Chaos and I care because we have a yearning desire to understand the nature of this beast, not because we want to meddle around is business that may not be our business. That is why we persue this so ambiguously.

skywalker71291
November 5th, 2009, 07:30 PM
Agreed but Spartan needs to clean up his act. And stop doing all this trolling.

teh lag
November 5th, 2009, 07:38 PM
ugh all of you shut up

Rambo
November 5th, 2009, 07:41 PM
OK, here's what I want to do. I intend to prove that this is a network related issue having to do with 1.04's security fixes.

I will work with Chaos on getting the 1.08 build working with network code updates. Then I'll take a video of me opening a door on the client side in Blood Creek and the client crashing the connection as a result. When this happens, and I know it will because Kornman00's manual for the current public build says it will, I'll present the data here for all to see.

EDIT: We have a problem. When compiling the DLL and placing it into the root CE folder, when we run Halo CE, the BSP does not show. In fact, the only video we have is the HUD. Any recommendations on how to fix this? The only change we made to the codebase was removing version check in an attempt to get it to accept <1.08 builds. Could this be what causes the video to not work properly?

All I can think of is that the DLL is "confused" as to what program to hook the wrapper routines into, so it bugs out.

p0lar_bear
November 5th, 2009, 09:10 PM
ugh all of you shut up

This.

Seriously Shadow, chill out man. Your posts make me think you're going to give yourself an ulcer. :ohdear:

And skywalker, for the love of what's good, please don't jump into the community making blind assumptions about our established members.

Dwood
November 5th, 2009, 10:14 PM
EDIT: We have a problem. When compiling the DLL and placing it into the root CE folder, when we run Halo CE, the BSP does not show. In fact, the only video we have is the HUD. Any recommendations on how to fix this? The only change we made to the codebase was removing version check in an attempt to get it to accept <1.08 builds. Could this be what causes the video to not work properly?

All I can think of is that the DLL is "confused" as to what program to hook the wrapper routines into, so it bugs out.

Use 1.08 ? Get Omega's Version changer, set to 1.09 or get an alternate ui that removes autoupdate. Then test. (After replacing the code that checks for version #)

You're better off making Halo think it's v. 1.09 than making it not check versions via OpenSauce.

justin108
November 6th, 2009, 12:53 AM
Use 1.08 ? Get Omega's Version changer, set to 1.09 or get an alternate ui that removes autoupdate. Then test. (After replacing the code that checks for version #)

You're better off making Halo think it's v. 1.09 than making it not check versions via OpenSauce.

I made halo think it is 1.09, but it will not join the majority of 1.09ce servers. To do so I simply hexed Omegas files, I replaced the 1.00ce version string with 1.09ce in both dlls; now i am able to change to 1.09ce no problem, however it only joins certain servers.

I see you mentioning code that checks for a version number, I am half retarded, what are you referring to?

if anyone could help this old moron, I would appreciate it.

Rambo
November 6th, 2009, 07:53 AM
Use 1.08 ? Get Omega's Version changer, set to 1.09 or get an alternate ui that removes autoupdate. Then test. (After replacing the code that checks for version #)

You're better off making Halo think it's v. 1.09 than making it not check versions via OpenSauce.
Nonono, listen. I manually updated to v1.08 with a hotfix and blocked the updates with my own UI (download it here (http://hce.halomaps.org/index.cfm?pg=1&sid=26)). From there, I was able to run the Open Sauce no problem.

What I was saying is we removed the version check on Open Sauce itself so that it wouldn't come up with an error dialog while running on older versions of Halo CE. In doing so, we must have broken something else. Sad-face...

FireScythe
November 6th, 2009, 08:06 AM
EDIT: We have a problem. When compiling the DLL and placing it into the root CE folder, when we run Halo CE, the BSP does not show. In fact, the only video we have is the HUD. Any recommendations on how to fix this? The only change we made to the codebase was removing version check in an attempt to get it to accept <1.08 builds. Could this be what causes the video to not work properly?

This sounds like the FOV bug that was in the original RC. jump into a game (SP or MP) and change your FOV using the Yelo battery menu (F7).

Rambo
November 6th, 2009, 09:46 AM
Thank you, FireScythe. I will surely check it out. I will let you know what happens.

EDIT: I cannot access F7 (Battery). The menu simply will not appear.

Limited
November 6th, 2009, 02:48 PM
Wow, who on earth are these blithering idiots? You prance around here making crazy accusations. Yet you cant even fix simple issues? You cant even think what the issue could be.

I havent put any thought into it, and I'm assuming its an issue with the camera, like fire said it could be FoV, it could also be camera location.

About a version changer in OS, I made working one a while back for v1, I might give it a shot adding 1.09 in, I still dont see it possible connecting to dedicated servers, considering the handshake is different and picky.

Skarma
November 6th, 2009, 04:42 PM
I think the developers around here should get together with me soon to actually update OS, so everyone can stop bitching about updating Halo. The world is not blowing up guys! :saddowns: All that needs to be done is update every single memory address in _EngineLayout.inl, then OS will be completely compatible for 1.09. It is a bit intimidating, there are hundreds of addresses to update, but in a few weeks or less and with a little pattern scanning, this drama can be all over.
Now swallow that chill pill I just gave you.

Rambo
November 6th, 2009, 04:55 PM
Skarma, will you please help me work on the Netcode problem? I know what it is but can't program. I've pointed you guys in the right direction. See Page 39.

Dwood
November 6th, 2009, 06:26 PM
Skarma, will you please help me work on the Netcode problem? I know what it is but can't program. I've pointed you guys in the right direction. See Page 39.

Are you ignoring what Korn said completely?


Yelo uses the engine's existing networking framework...there is no "unsigned data". Not only that, but the server reports a success when encoding a message while the client never acknowledges receiving what the server claims to have successfully encoded. The client doesn't drop from the game either when this happens.

Rambo
November 6th, 2009, 08:03 PM
I was tag about our version of the SDK, not his version. But OK.

In that case, how do we make the client accept the packets?

Limited
November 6th, 2009, 08:07 PM
I think the developers around here should get together with me soon to actually update OS, so everyone can stop bitching about updating Halo. The world is not blowing up guys! :saddowns: All that needs to be done is update every single memory address in _EngineLayout.inl, then OS will be completely compatible for 1.09. It is a bit intimidating, there are hundreds of addresses to update, but in a few weeks or less and with a little pattern scanning, this drama can be all over.
Now swallow that chill pill I just gave you.
I say screw that, people in community are way too demanding, yelling at us to fix shit. Why should they call the shots, I think us devs should either not update stuff, or at least wait a while.

Dwood
November 6th, 2009, 08:28 PM
I say screw that, people in community are way too demanding, yelling at us to fix . Why should they call the shots, I think us devs should either not update stuff, or at least wait a while.

You have to be doing stuff in the first place Limited. :iamafag:

Limited
November 6th, 2009, 08:36 PM
You have to be doing stuff in the first place Limited. :iamafag:
Oh SNAP. Also theres reasons why I stopped doing Halo stuff. Main reason is I'm working on alot of other big projects that are taking up all my time. I just cant disclose what the projects are though.

jcap
November 7th, 2009, 12:39 AM
I think the developers around here should get together with me soon to actually update OS, so everyone can stop bitching about updating Halo. The world is not blowing up guys! :saddowns: All that needs to be done is update every single memory address in _EngineLayout.inl, then OS will be completely compatible for 1.09. It is a bit intimidating, there are hundreds of addresses to update, but in a few weeks or less and with a little pattern scanning, this drama can be all over.
Now swallow that chill pill I just gave you.
Updating OS would require 1,487 offsets to be corrected. Sure, it can be done, but it's pretty unnecessary if you ask me. While it really would be nice to run the newer version, there isn't much of a benefit over using the 1.08 files with OS overriding the version. Maybe we should just start packing the CE exe and strings with OS...

Skarma
November 7th, 2009, 01:16 AM
Well, I'll still keep my high hopes. About half of those (702 to be exact) are script function addresses. They can be knocked out in a few minutes time because there is a nice table of script function pointers in memory that can be iterated through and printed. There is a bunch of these that I can remember looking at from reversing, all the functions can be pattern scanned easily within minutes too. As far as structures, just find references to them in functions and scan. Honestly, I care about this and would like to see it properly done than some other ghetto version changing method. I hope Kornman00 sees that some of us really care and respect his work. Trust me I'm envious of some of this stuff and would like to see him pursue another update if I can help update these addresses. Too bad he won't let me work with him, I got some good stuff here that I haven't posted to site yet

TeeKup
November 7th, 2009, 02:35 AM
Any person that doesn't respect Kornman's work is a complete an utter tool.

Also Skarma you're awesome.

/asskissing.

Dwood
November 7th, 2009, 11:30 AM
For those who have looked at the lights section of Open Sauce, what can be done with it?

Sinow
November 11th, 2009, 08:13 PM
O5sV2l-8hig

Made this 2 months ago. Now, if you guys can find a way to make global booleans that connect to the UI and an SP map, this will be possible in the single player. (And in my maps).
Also, sorry for the sudden intrusion in your... conversation... but I had been expecting some kind of breakthrough to make this possible.

Dwood
November 11th, 2009, 08:42 PM
Yeah someone should find a way to expose variables to Open Sauce that carry over between sessions...

ShadowSpartan
November 11th, 2009, 09:03 PM
Yeah someone should find a way to expose variables to Open Sauce that carry over between sessions...
You can use these globals. (http://www.modacity.net/forums/showpost.php?p=310637&postcount=2) So there is no need to use OS for that.

Sinow
November 11th, 2009, 09:08 PM
Not enough globals. I have, what, six skulls right now? Besides, we might need some for other things... would be VERY useful if we had lots of empty variables to use.

Dwood
November 11th, 2009, 09:08 PM
You can use these globals. (http://www.modacity.net/forums/showpost.php?p=310637&postcount=2) So there is no need to use OS for that.

The problem is if those values still be there when I turn off the game and start it back up again & what sinow said.

ShadowSpartan
November 11th, 2009, 09:17 PM
Not enough globals. I have, what, six skulls right now? Besides, we might need some for other things... would be VERY useful if we had lots of empty variables to use.
You don't need a single global for each skull. You could do, for instance, 2 skulls per float. If f0 = 0 then Skull A and Skull B are not active, if f0 = 1 then Skull A is active, if f0 = 2 then Skull B is active, if f0 = 3 then Skull A and Skull B are active. Those 5 globals are more than enough for you to do the skulls.


The problem is if those values still be there when I turn off the game and start it back up again & what sinow said.
Of course the values won't be there when you close Halo, but why would you even need them to be?

Dwood
November 11th, 2009, 09:26 PM
Of course the values won't be there when you close Halo, but why would you even need them to be?

Certain Single player elements like what weapon you ended with , how much ammo perhaps, et cetera.

There are also a few other things I would find use for them but to explain further why I want the variables to carry over between sessions of Halo is something that I'm not ready to disclose publicly. You have my AIM so you can message me about it but only if you're willing to create a way to expose variables in Open Sauce. :P

Sinow
November 11th, 2009, 09:37 PM
You don't need a single global for each skull. You could do, for instance, 2 skulls per float. If f0 = 0 then Skull A and Skull B are not active, if f0 = 1 then Skull A is active, if f0 = 2 then Skull B is active, if f0 = 3 then Skull A and Skull B are active. Those 5 globals are more than enough for you to do the skulls.


Of course the values won't be there when you close Halo, but why would you even need them to be?

Not true. If one of those variables means that two skulls are inactive, then that would be misleading; I cross-referenced all skulls, with scripts that detected which skulls, specifically, were on or off.
And also, in Halo 2, the same thing happened; turn off the game and the skull effects would be erased until gotten again.
HOWEVER it would be cool if I could make a new part of the main menu to include skulls; that way you can activate skulls which you've already gotten in the campaign from the very beginning, like in Halo 3.

ShadowSpartan
November 11th, 2009, 09:48 PM
Not true. If one of those variables means that two skulls are inactive, then that would be misleading; I cross-referenced all skulls, with scripts that detected which skulls, specifically, were on or off.
And also, in Halo 2, the same thing happened; turn off the game and the skull effects would be erased until gotten again.
Misleading to who, yourself? It is pure laziness to not try and create a compact way of doing something, you should not be wasting "resources" like that. If you have scripts that detect which skulls are active or not...you can just check the globals like I described, and add onto that idea for as many skulls as you want to add. I fail to see how the way I described of doing it is bad.

Dwood
November 11th, 2009, 09:51 PM
I fail to see how the way I described of doing it is bad.

Why do it your way when it is easier to simply have 6 booleans?

ShadowSpartan
November 11th, 2009, 09:53 PM
Why do it your way when it is easier to simply have 6 booleans?
Because you can do the same thing with a single global, use the other four for something else, and ultimately not have to rely on an OS dll for anything.

Sinow
November 11th, 2009, 09:54 PM
It is pure laziness to not try and create a compact way of doing something, you should not be wasting "resources" like that.

You're talking about resources... when it comes to a mod you have no idea about, a computer than runs on simple energy and would take JUST as much energy to do something as it would anything else, and criticizing me for an IDEA I had?
And, also, you contradicted yourself. How is that laziness to make a compact way of doing something? If you want to make something quicker, you want to use LESS effort. In any case, it is not that I am trying to find a quicker way; its that I'm trying to find a way to do that ONE thing first.

ShadowSpartan
November 11th, 2009, 10:18 PM
No, the detection of which skulls are active or not would be misleading. There are 6 of those engine globals. If I were to use 1 for detecting if two or more skulls are active or not, then that would be misleading because it would have to detect 36 different combinations of which skulls are active or not.

And, don't go into a resources rant with me, because its a goddamn computer, and my goddamn mod. If you've got a problem with how I do things, too bad.
Why would you want to have to rely on an OS dll when you have another option of doing it with the game in it's current state? It's not bad doing it this way.


And, also, you contradicted yourself. How is that laziness to make a compact way of doing something? If you want to make something quicker, you want to use LESS effort. In any case, it is not that I am trying to find a quicker way; its that I'm trying to find a way to do that ONE thing first.
Less effort to accomplish something does not make something quicker in terms of computing. I'm not talking about speed anyway, I am talking about using what you have already in the engine without modifying it through an OS dll. Having a single global for each Skull is not a compact way of doing it. You do not need a single global for every skull, and you do not necessarily need to use OS for this.

Sinow
November 11th, 2009, 11:12 PM
Possibly not, but we don't need Kornman for everything, do we? We could export everything from Guerilla and edit it like that; but no, as you said, it is a way of conserving time and energy. But, is it possible without OS to have constant variables? Is it possible to do most of what H2 and H3 does without OS? You're right, we don't need OS to do what I have already done, seeing as I did it already. But some of the things I mentioned would be easier, or simpler, or possible with OS.

FireScythe
November 12th, 2009, 11:09 AM
OS2 has a settings component that you can used to save/load values between sessions. Then there's an InitializeForNewMap function in TagGroups that you can use to update things between maps. The advantage of using OS for something like skulls, is if it was built completely in OS without scripts, then it would be map independent and could be used on any SP map the user decides to play.

I was wondering. From what i've heard, using OS script functions on a non OS installation causes an exception, but does this happen when the function is actually used or when the map is loaded? Because if its only when it is used, would it be possible to have a predetermined script global bool (ie one defined in a halo script) that will be false by default but set to true by OS if the user has it? If so this would let map makers use OS functions only when OS is available.

Limited
November 12th, 2009, 11:19 AM
You're talking about resources... when it comes to a mod you have no idea about, a computer than runs on simple energy and would take JUST as much energy to do something as it would anything else
Um no, computers dont necessary consume the full amount of power. It depends what tasks are running and what devices are running.

Whats the deal with mislead people posting and demanding stuff in his thread?

Kornman00
November 12th, 2009, 11:35 AM
From what i've heard, using OS script functions on a non OS installation causes an exception
It would exception anytime the engine ran into the script function/global that wasn't native.

One thing you could do is set developer_mode to a specific value (ie, 88) and this would represent that OS is in fact running.

I had put forth some code which checked the script imports in the loaded map and compared it with the script functions/globals in the current game state (the script exports). Pretty sure the final version of it wasn't in the RC though. Anyway, the hope was to use this to try and gracefully put the player back at the mainmenu when they didn't have the required scripting implementations in their OS that the map said it imported. Using this built in system plus a hard coded change of a known script global would be a sufficient setup considering this is just an external game extension and not a source modification.

The only problem then lies within the scripter to actually have the brains to remember to encase their OS script usage inside a check of "(= developer_mode 88)" or what have you.


Also, the skulls system shouldn't be handled by scripts at all. If anything, they should employ their own settings group like Fire was saying. Since this would be OS specific, you shouldn't put too much dependency in the map's design on OS specific data which doesn't have anything to do with its scenario (which is why the netcode enhancements aren't part of the scenario settings anymore, it's a setting for the user not the map maker). OS has its own mechanisms for editing settings while in-game.

Dwood
November 12th, 2009, 02:44 PM
If I can get this together right then my goal will provide an excellent mod via OS.

MissingSpartan7
November 13th, 2009, 02:16 AM
needs creative crit on my suggestion from a few pages back

you know in vehicle tags how you set the vehicle type as "human jeep" "alien fighter" etc
is it possible to combine these traits to create vehicles like the brute chopper

so a "front" field and a "back" field but perhaps also a "movement control" field to allow things like the strafing ability in the ghost to other vehicles
or just a "can strafe" flag

Dwood
November 14th, 2009, 02:22 PM
I added 12 custom globals to Open Sauce. Half are booleans and the rest are Floats. Probably should add some ints but I don't feel like it right now lol.

Trying to add Custom function where it'll save the value of those globals whenever you invoke it.

Rhydgaled
November 26th, 2009, 08:12 AM
the skulls system shouldn't be handled by scripts at all. If anything, they should employ their own settings group like Fire was saying. So there is a way to save settings that will not be lost when the game is shut-down then? If there wasn't I was going to ask why you couldn't just put some code in to save a text file, elements of which could then be loaded into varibles by OS next time you play the game.

Dwood
December 13th, 2009, 10:37 AM
I haven't tried this but is it possible to get the coords of a specific projectile when it is destroyed, and then move a (specific) command list point to that (now destroyed) projectile?

Dwood
December 13th, 2009, 09:08 PM
I know this is a double post, but what if we had a way to define our own in-game hud so we don't have to depend on the map itself?

MissingSpartan7
December 14th, 2009, 12:32 AM
something on the killcam, playing odst made me think: if the player could still rotate the camera after their dead it would make dying so much more interesting
or even being able to activate a flying camera which is not attached to the players dead body

Limited
December 16th, 2009, 08:58 AM
something on the killcam, playing odst made me think: if the player could still rotate the camera after their dead it would make dying so much more interesting
or even being able to activate a flying camera which is not attached to the players dead body
Both have been accomplished before by Skyline and I. The first one is working in 1.09 (non OS).

CrAsHOvErRide
December 16th, 2009, 09:04 AM
Both have been accomplished before by Skyline and I. The first one is working in 1.09 (non OS).
and I have it :realsmug:

Limited
December 16th, 2009, 09:06 AM
and I have it :realsmug:
He gave you STL?

CrAsHOvErRide
December 16th, 2009, 09:37 AM
and Syphilis :O

Dwood
December 16th, 2009, 07:35 PM
I would like to add an idea, where instead of referencing our custom SCRIPT globals in XML and compiling it with cheApe, we have a single scripting globals TAG that lets us define them... would that be too hard to add to OS Sapien (korn)?

ShadowSpartan
December 16th, 2009, 08:00 PM
I would like to add an idea, where instead of referencing our custom SCRIPT globals in XML and compiling it with cheApe, we have a single scripting globals TAG that lets us define them... would that be too hard to add to OS Sapien (korn)?
What's wrong with how it's set up right now?

Dwood
December 16th, 2009, 08:37 PM
What's wrong with how it's set up right now?

Nothing, but being able to just have a tag type for defining hs globals would make it easier to add new ones.

Kornman00
December 17th, 2009, 07:33 AM
For one, it is far easier to copy/cut/paste XML definitions than using the HEK to try such things. Second, I'm not redesigning the internals of the HEK extensions to depend on a tag file instead of a lower level implementation file (thus, I don't have to wait for the tag system to be initialized before I setup the scripting additions). The pros outweighed the cons for this setup.

The only reason I include them in any tag definition to begin with so anything which loads the compiled map knows how to process the custom script data.

Just make a program which acts as a frontend (GUI provider) to the backing XML definitions if it is that much of a factor.

Gravemind
January 20th, 2010, 06:58 AM
Would you be able to make it so when you pick up a flamethrower or chaingun it autmatically changes to third person like in halo 3? (with the camera close to the player and to the right a bit).
Or make it so it goes to 3P when you pick up a weapon with "3p" or something in the tag name (for custom tags)

Dwood
January 21st, 2010, 12:46 PM
Would you be able to make it so when you pick up a flamethrower or chaingun it autmatically changes to third person like in halo 3? (with the camera close to the player and to the right a bit).
Or make it so it goes to 3P when you pick up a weapon with "3p" or something in the tag name (for custom tags)

That shouldnt be too hard but i cant remember if 3p was working or not.

CodeBrain
January 21st, 2010, 01:10 PM
IIRC Choking Victim got a 3p system working, but it involved using a script to make your player enter a biped that had a seat. The colors did not sync, and their might have been more problems.

Dwood
January 21st, 2010, 01:23 PM
IIRC Choking Victim got a 3p system working, but it involved using a script to make your player enter a biped that had a seat. The colors did not sync, and their might have been more problems.

This is Open Sauce, this wouldn't need any fancy tagging :P

ShadowSpartan
January 21st, 2010, 06:11 PM
Would you be able to make it so when you pick up a flamethrower or chaingun it autmatically changes to third person like in halo 3? (with the camera close to the player and to the right a bit).
Or make it so it goes to 3P when you pick up a weapon with "3p" or something in the tag name (for custom tags)
Yes it is possible. I did it months ago, though it wasn't complete and not the best way to implement it.


This is Open Sauce, this wouldn't need any fancy tagging :P
However, you do need to be a competent programmer in order to do anything useful with Open Sauce.

Heathen
January 21st, 2010, 06:32 PM
his user title is "Programmer"

Gravemind
January 22nd, 2010, 09:33 PM
his user title is "Programmer"

You mean me? Yea I am a programmer but im new to open sauce... And C++. I usually do VB and C# but im still familiar with some C++ stuff, although im having problems getting the OS v2 to open with the express edition of visual C++

ShadowSpartan
January 22nd, 2010, 10:05 PM
You mean me? Yea I am a programmer but im new to open sauce... And C++. I usually do VB and C# but im still familiar with some C++ stuff, although im having problems getting the OS v2 to open with the express edition of visual C++
Just a little heads up, if you are trying to compile OS with Visual Studio 2010, it won't work. OS and VS2010 don't get along, I tried for quite a while to get it to compile with no luck. Once I switched back to VS2008, everything worked fine. If this isn't your problem, I suggest you post in this thread (http://www.modacity.net/forums/showthread.php?t=17758), and give details about the problem you are having.

Gravemind
January 23rd, 2010, 12:35 AM
No that not the problem, i have the full VS2008 Express with visual basic, visual C#, visual C++ and web stuff, the problem is that when i open the .sln file and the .vcproj file, it says

Solution folders are not supported in this version of the application.
Solution folder '<folder name>' will be displayed as unavailable.

and it does this for each folder. Then it complains that the projects in the YeloDebug folder are .csproj files and wont work with visual c++... (if i open it with C# it says complains about the C++ parts...) then it says "Some of the properties associated with the solution could not be read".

I dont know what to do about the solution folders part because i cant afford to buy the non expreass version of VS (if its not supporting solution folders because its the express version)

Kornman00
January 23rd, 2010, 12:55 AM
I separated the projects into solution folders based on their categorization since OS isn't just for one specific game or really even platform. Like Express says, it isn't supported. I use VS2008 Team System so I have a lot more over the free editions of VS. I wasn't aware of the solution folder issue though. It's not a real issue as long as you can open the actual project files (eg, Halo1_CE.vcproj)

I'm pretty sure you're using Express editions of specific products (IE, Visual C# Express). I don't think there is an Visual Studio Express. If there was, you wouldn't be getting complaints from the system as far as the csproj or vcproj files.

Gravemind
January 23rd, 2010, 01:02 AM
What i have came from microsoft.com as an iso and calls itself "Visual Studio 2008 Express edition", it has all the express editions in one. (VB express, VC express etc). I tried opening only the Halo1_CE.vcproj file rather than the solution file, but it still says the same errors...

Kornman00
January 23rd, 2010, 02:04 AM
While the ISO may have had all of them in one package, unless the actual editor itself is Visual Studio (and not just single executables like Visual C#) then you'll get those errors.

I don't remember anyone having problems opening Halo1_CE.vcproj in Visual C++ Express so I'm not sure what you could be doing different. Either way, I don't support the Express editions since I don't use them.

Gravemind
January 23rd, 2010, 02:18 AM
I managed to fix it by deleting the solution file... Is Halo1_CE the main project file i need? Or do i also need the YeloDebug?

Edit: (to avoid a double post)
Would you also be able to make the OS tool allow compilation of sound tags where the .wav file is more than 12mb? (or 14, whichever it was)

Dwood
January 23rd, 2010, 09:19 AM
Just re dl vc++ express and install that.

ShadowSpartan
January 23rd, 2010, 12:04 PM
Just re dl vc++ express and install that.
He already has Visual C++ Express installed...why would he reinstall it? Those errors are normal when you open the OS project files using the Express edition. It will compile file, once you have the boost libraries of course.

Dwood
January 23rd, 2010, 08:39 PM
I never had those problems with vc++ Express Edition ... create a new project with ee and add the files?

ShadowSpartan
January 23rd, 2010, 09:26 PM
I never had those problems with vc++ Express Edition...
I highly doubt that. Visual C++ express does not support solution folders, so when you open the OpenSauce solution, there will be 4 error messages relating to solution folders. After that two more errors shows up about "YeloDebug" and "Xbox Controller Emulator". Those projects cannot be opened because they are C# projects, not C++.

I merged all of the errors that C++ Express gives when you open the OpenSauce solution into a single image below. You had to have edited the project in some way, disable warnings in C++ Express, or just forgot about seeing these errors. My C++ installation has not been edited in any way, and that is a clean OS build.

http://shadow.modacity.net/misc/opensauce_errors.png

Dwood
January 23rd, 2010, 10:31 PM
I dont remember those errors but then again i havent used vc++ ee for at least 3 months. i do remember the grey folders though so yea you most likely are right.

Gravemind
January 24th, 2010, 05:45 AM
I highly doubt that. Visual C++ express does not support solution folders, so when you open the OpenSauce solution, there will be 4 error messages relating to solution folders. After that two more errors shows up about "YeloDebug" and "Xbox Controller Emulator". Those projects cannot be opened because they are C# projects, not C++.

I merged all of the errors that C++ Express gives when you open the OpenSauce solution into a single image below. You had to have edited the project in some way, disable warnings in C++ Express, or just forgot about seeing these errors. My C++ installation has not been edited in any way, and that is a clean OS build.

http://shadow.modacity.net/misc/opensauce_errors.png

Those are exactly the errors I was getting, although I fixed it by making a new solution with only the halo1_ce folder. Now it when I compile it, it says it cant find "afxres.h", which im guessing is supposed to be in the same folder as "resource.h" (in the project folder) because it is right after it in the #include parts. I looked around in and near all the extra include folders but I couldnt find the file... I have installed the three things Korman had links to in the OSv2 RC thread. (DX9 SDK, Boost libraries, and DX runtime)

Dwood
January 24th, 2010, 09:09 AM
Have you added them properly to vc++?

Gravemind
January 24th, 2010, 09:16 AM
I put the boost libraries in the program files folder and added it to the extra include folders in the settings, and none of the boost parts have had errors so far. The DX SDK integrated itself into VC++ and the runtime installed normally... I also made sure the boost version I got was the same as the one that was first in the include folders settings, the DX SDK i downloaded was dated at March09, if that helps, although it was the only one on the linked page

FireScythe
January 24th, 2010, 10:32 AM
You can happily remove the greyed out project folders from the solution without any problems. The only error you will get then is the properties could not be read error. Just a minor annoyance.

For the afxres error see here:
http://www.modacity.net/forums/showthread.php?p=466787#post466787

Gravemind
January 24th, 2010, 08:09 PM
+rep ^

Thanks, it compiles fine now

Edit: In the list in the first post, making moveable objects (without calling them "vehicles") is #3, but its crossed out. Is this because its done or is not possible? -->

What you can't do:


Create new object types

You could create a tag type similar to the "crate" tag type in halo2 but that would probably mean creating a new object type as well, and the OS sapien would need to be updated to be able to place the objects...

Edit2: Would it be possible to use open sauce to increase the grenade limit? If you just increase the block limit in the grenades part of the gobals it might work but it might also conflict with something and maybe need hud fixes

Edit3: Would it be possible to make a new console command to test if two objects are within a certain distance of each other? eg: (test_object_distance <object1> <object2> <distance>) and it would return true if they are within that distance of each other

Dwood
January 26th, 2010, 11:14 PM
Thanks, it compiles fine now

Edit: In the list in the first post, making moveable objects (without calling them "vehicles") is #3, but its crossed out. Is this because its done or is not possible? -->
You could create a tag type similar to the "crate" tag type in halo2 but that would probably mean creating a new object type as well, and the OS sapien would need to be updated to be able to place the objects...

If someone could grab the collision tree we could (theoretically) manually add the physics by doing all the calculations within open sauce however I have yet to see someone who's been able to root out the collision trees and make any use of them. I highly doubt someone would be able to find the tree unless their name is skarma, Korn, or ShadowSpartan.

Thus, it has been marked not feasible without source.


Edit2: Would it be possible to use open sauce to increase the grenade limit? If you just increase the block limit in the grenades part of the gobals it might work but it might also conflict with something and maybe need hud fixes

What do you mean? Increase it so the player can hold 8 grenades of 1 type or 3 different types of grenades? If the latter, It's not feasible without the source

Edit3: Would it be possible to make a new console command to test if two objects are within a certain distance of each other? eg: (test_object_distance <object1> <object2> <distance>) and it would return true if they are within that distance of each other

Yes. You'd have to be able to grab objects from ram, get their position, and then do the math to find the distance and then compare the two distances. I don't know how to work with tags while they're loaded in ram so I wouldn't be of use :P

The only problem with this is that Korn needs to be able to get script functions with parameters to work properly. Which probably won't happen until he comes back to the usa.


Also, on your third idea, it's possible to use variables to call functions so that could work too. Someone needs to be able to get the positions (x, y, z) based on strings someone inputs.

(Answers in bold)

Gravemind
January 27th, 2010, 02:54 AM
With the grenades, i meant adding more types, like how halo 3 has four types, what i meant about the globals is that in the grenades section (above rasterizer data) it only allows you to add 2 types.

With the 3rd part, im pretty sure its possible to get an objects XYZ positions, if i knew how to get the positions and add the console command i could do a function to get the distance between them, although like you said, the script functions with parametres need to work properly

Dwood
January 27th, 2010, 05:53 AM
With the grenades, i meant adding more types, like how halo 3 has four types, what i meant about the globals is that in the grenades section (above rasterizer data) it only allows you to add 2 types.

Yeah more than 2 types of nades has been classified as NFWOS (not feasible without source) so that's probably not happening unless some kind of magical thing happens :P

With the 3rd part, im pretty sure its possible to get an objects XYZ positions, if i knew how to get the positions and add the console command i could do a function to get the distance between them, although like you said, the script functions with parametres need to work properly

Oh it's possible, I just don't know how.

Gravemind
January 27th, 2010, 06:05 AM
If the position testing console comand did get get done, would sapien have to be updated to compile game scripts with the new functions? Or would it be easier to attach a trigger volume to one or both of the objects?

Dwood
January 27th, 2010, 06:08 AM
If the position testing console comand did get get done, would sapien have to be updated to compile game scripts with the new functions? Or would it be easier to attach a trigger volume to one or both of the objects?

Korn's included, inside of Open Sauce, a way to define our own functions in Sapien. Sapien won't run the commands, per se, but it will happily compile them so that you may use them ingame.

Gravemind
January 27th, 2010, 06:11 AM
Oh ok, i knew you could make script functions but i didnt know you could define them in sapien, although i dont really know terribly much about open sauce, but im learning

Dwood
January 27th, 2010, 06:40 AM
Oh ok, i knew you could make script functions but i didnt know you could define them in sapien, although i dont really know terribly much about open sauce, but im learning

Go into the Open Sauce folder and get the Open Sauce toolkit. (all the Sapienbeta, Guerillabeta, etc as well as the Open Sauce folder and the Open Sauce ide. In the Open Sauce folder I'm talking about should be a che Ape folder. Look at the xml that's included inside that folder.

Gravemind
January 27th, 2010, 06:48 AM
Oh I see, i thought they were examples for guerilla tags, i didnt notice the script functions/globals parts. Thx, that will help with some things i thought might become problems
+rep on that post ^

Dwood
January 30th, 2010, 12:08 PM
I have an idea... dynamic maps...

I'll detail it a bit more in a picture and doublepost.

FireScythe
February 9th, 2010, 11:02 AM
Proof of concept of giving Halo soft particles:
http://i362.photobucket.com/albums/oo66/TheFieryScythe/softparticles1.jpg
http://i362.photobucket.com/albums/oo66/TheFieryScythe/softparticles2.jpg

Just takes a couple of extra lines in my GBuffer code to put the depth texture into a texture sampler, with a small addition to the effect vertex shaders to get the particle depth. However, it requires re-writing the effect pixel shaders to use the two depths to get a fade value, but I can't be bothered to do that :v:.

Dwood
February 9th, 2010, 12:01 PM
Epic.