How to edit halo:Pc scripts
Posted: Sat Jan 12, 2008 3:27 pm
Tools needed
http://i43.photobucket.com/albums/e381/ ... cture1.jpg
2. Once you are done with that open up a10.map, expand the scripts and select "x20_post". You will notice that the decompiled code looks like this
http://i43.photobucket.com/albums/e381/ ... cture2.jpg
Now what that tells us is what part of the script is affected by what syntax chunk. For instance the "print" command is -7021/-7020. You may be confused by what i just said, what i means is that every command has 2 parts to it. It has a 8 and a 9, the -7021 is the 8 part and the -7020 is the 9 part. For decompilation purposes i use the 9 as it holds the string, but its engine identity is the same as the 8 so to change a command you need to change both the 9 and the 8.
That is probably confusing if you have never done this before so dont get caught up on it and just follow the tutorial and you will probably come to understand what i mean.
3. In the "script type" drop down select continuous.
http://i43.photobucket.com/albums/e381/ ... cture3.jpg
4. Expand the "x20_post" script bit.
Now what we want to do here is change the x20_post script from
to
As you can see we only need to change a handful of syntax parts, specifically -7021, -7020, and -7019.
5. First we need to find the engine value of "game_speed", to do this open up the "ComDat.xml" in the folder hps is in. If you do a search for "game_speed" you find this xml node
from this we know that its engine identity is 255. Now select -7021 and changes its engine identity from 28 (print) to 255 (game_speed), and hit enter to save. Now go to -7020 and do the same thing.
6.Now we have to edit the value of -7019 so that it is a float equal to 0.5, and not a string. Now bear with me because as i was doing this i found out something new bout syntaxs so you will have do something weird in a minute.
In the syntax change the engine identity to 6 (in a 0 based index the type "Real" is #6), value type to "real", and the script value to 1073741824.
Now we made it 1073741824 because that is the value of a integer that would be the value of a "real" that is 2. If you are using a version above 0.5 you wont need to do this because i plan to fix the code right after i post this.
That is all there is to doing a simple script edit. If you have any questions please post them and i will do my best to answer them, and i do realize this script didnt cover much but its hard to explain without specific questions regarding it.
- - HPS 0.5+ http://forums.halomods.com/viewtopic.ph ... 115#703115
- Reading comprehension
http://i43.photobucket.com/albums/e381/ ... cture1.jpg
2. Once you are done with that open up a10.map, expand the scripts and select "x20_post". You will notice that the decompiled code looks like this
Code: Select all
(script stub void x20_post
<-7018> ( </-7018>
<-7017> begin </-7017>
<-7021> ( </-7021>
<-7020> print </-7020>
<-7019> joe's cool ass cinematic </-7019>
)
Now what that tells us is what part of the script is affected by what syntax chunk. For instance the "print" command is -7021/-7020. You may be confused by what i just said, what i means is that every command has 2 parts to it. It has a 8 and a 9, the -7021 is the 8 part and the -7020 is the 9 part. For decompilation purposes i use the 9 as it holds the string, but its engine identity is the same as the 8 so to change a command you need to change both the 9 and the 8.
That is probably confusing if you have never done this before so dont get caught up on it and just follow the tutorial and you will probably come to understand what i mean.
3. In the "script type" drop down select continuous.
http://i43.photobucket.com/albums/e381/ ... cture3.jpg
4. Expand the "x20_post" script bit.
Now what we want to do here is change the x20_post script from
Code: Select all
(script stub void x20_post
(begin
(print " joe's cool ass cinematic")
)
)
Code: Select all
(script continuous void x20_post
(begin
(game_speed 2)
)
)
5. First we need to find the engine value of "game_speed", to do this open up the "ComDat.xml" in the folder hps is in. If you do a search for "game_speed" you find this xml node
Code: Select all
<ScriptCommand>
<EngineId>255</EngineId>
<EngineCommand>game_speed</EngineCommand>
</ScriptCommand>
from this we know that its engine identity is 255. Now select -7021 and changes its engine identity from 28 (print) to 255 (game_speed), and hit enter to save. Now go to -7020 and do the same thing.
6.Now we have to edit the value of -7019 so that it is a float equal to 0.5, and not a string. Now bear with me because as i was doing this i found out something new bout syntaxs so you will have do something weird in a minute.
In the syntax change the engine identity to 6 (in a 0 based index the type "Real" is #6), value type to "real", and the script value to 1073741824.
Now we made it 1073741824 because that is the value of a integer that would be the value of a "real" that is 2. If you are using a version above 0.5 you wont need to do this because i plan to fix the code right after i post this.
That is all there is to doing a simple script edit. If you have any questions please post them and i will do my best to answer them, and i do realize this script didnt cover much but its hard to explain without specific questions regarding it.