Table of Contents
Converting ICARUS scripts to work with MP
Basically, what we're doing here is changing the format for the camera
calls so that the MP ICARUS scripting can read it. Unfortunately,
the ability to fix the issue without doing this would require the full
engine code, which we are not going to get.
Tools Required
- JKA SDK (specifically the source ICARUS files and the BehaveED)
- A simple text editor
What To Do
What we're doing is converting the camera function calls from
camera () to
set (). This is very easy. All you gotta do is copy the first part of a set () onto the first part of a camera ().
For example, this...
camera ( /*@CAMERA_COMMANDS*/ MOVE, $tag( "endcam1", ORIGIN)$, 0 );
Becomes this...
set ( /*@SET_TYPES*/ "MOVE, $tag( "endcam1", ORIGIN)$, 0 );
NOTE: For you
non-programmers out there, the stuff inside /**/ (like
/*@CAMERA_COMMANDS*/ or /*@SET_TYPES*/) are just code comments.
They don't matter to the scripting.
The second step is to add quotes to the camera action type (PAN/MOVE/FADE/etc).
set ( /*@SET_TYPES*/ "MOVE", $tag( "endcam1", ORIGIN)$, 0 );
The third step is to add quotes around all of the camera settings
data. What this is doing is converting all of it into a single
data string to be processed by the game.
set ( /*@SET_TYPES*/ "MOVE", "$tag( "endcam1", ORIGIN)$, 0" );
The final step is to remove any internal quotes that are inside your
single data string [i]for the camera sets only[/i]. If you don't,
you'll have the ICARUS compiler erroring about too many
parameters. In this case, we're removing the quotes about the
entity name in the tag.
set ( /*@SET_TYPES*/ "MOVE", "$tag( endcam1, ORIGIN)$, 0" );
NOTE: Do not alter the
tags on sets that aren't camera functions that you converted.
You'll totally break the tag system for everything other than cameras.
NOTE: The
ENABLE and
DISABLE camera commands do require a value. I normally just use "1" but it doesn't matter what you use.
set ( /*@SET_TYPES*/ "ENABLE", "1" );
That's all you gotta do in terms of editing. From there, you need
to save the file into .txt format and then use BehavED to compile the
script. If you get compile errors, you screwed something
up. Feel free to post questions if you have troubles but please
be sure to include the exact compiler error.
CoOp Cvars
ojp_skipcutscenes
CoOp Map Compatibility
Jedi Knight Academy Singleplayer Maps
Map Name |
Completable |
Mission Name |
World |
Training |
|
|
|
yavin1b |
X |
Starting Level |
Yavin |
t1_inter |
|
Intermission Cutscene - Yavin |
Yavin |
Tier 1 |
|
|
|
t1_danger |
X |
Merchant Rescue (Sand Creature) |
Blenjeer |
t1_fatal |
X |
Emergency Assistance (Bomb Disarm) |
Bakura |
t1_rail |
X |
Cult Investigation (Rail Train) |
Corellia |
t1_sour |
X |
Mercenary Activity (Chewbacca) |
Tatooine |
t1_surprise |
|
Droid Recovery |
Tatooine |
Hoth Mission |
|
|
|
hoth2 |
X |
Luke Skywalker's vision |
Hoth |
hoth3 |
X |
Luke Skywalker's vision continued |
Hoth |
Tier 2 |
|
|
|
t2_dpred |
|
Cult Investigation |
Dossun |
t2_rancor |
|
Rescue Mission |
Nar Kreeta |
t2_rogue |
X |
Capture Crime Lord |
Coruscant |
t2_trip |
|
Meet Contact (Swoop) |
Zonju V |
t2_wedge |
|
Covert Operation |
Kril'dor |
Vjun Mission |
|
|
|
vjun1 |
X |
Enter Darth Vader's Castle - Part 1 |
Vjun |
vjun2 |
|
Enter Darth Vader's Castle - Part 2 |
Vjun |
vjun3 |
|
Enter Darth Vader's Castle - Part 3 |
Vjun |
Tier 3 |
|
|
|
t3_bounty |
|
Weapon Destruction |
Ord Mantell |
t3_byss |
X |
Force Theft Investigation |
Byss |
t3_hevil |
|
Dismantle Device |
Yalara |
t3_rift |
X |
Cult Sighting |
Chandrila |
t3_stamp |
|
Cult Investigation |
Tanaab |
Taspir Mission |
|
|
|
taspir1 |
X |
Search for Rosh Penn - Part 1 |
Taspir |
taspir2 |
|
Search for Rosh Penn - Part 2 |
Taspir |
Korriban Mission |
|
|
|
kor1 |
|
Final Mission - Part 1 |
Korriban |
kor2 |
|
Final Mission - Part 2 |
Korriban |
Jedi Knight Outcast Singleplayer Maps
Map Name |
Completable |
Mission Name |
World |
kejim_post |
|
Starting Level |
Kejim |
kejim_base |
|
|
Kejim |
artus_mine |
|
|
Artus |
artus_detention |
|
Rescue the Miners |
Artus |
artus_topside |
|
Save the Miners |
Artus |
valley |
|
Valley of the Jedi cutscene |
Unknown |
yavin_temple |
|
Temple explore |
Yavin |
yavin_trial |
|
Jedi Training/Trial |
Yavin |
ns_streets |
|
First Jedi level |
Nar Shadda |
ns_hideout |
|
Reelo's Hideout |
Nar Shadda |
ns_starpad |
|
|
Nar Shadda |
bespin_under-city |
|
|
Bespin |
bespin_streets |
|
|
Bespin |
bespin_platform |
|
|
Bespin |
cairn_bay |
|
|
|
cairn_assembly |
|
|
|
cairn_reactor |
|
|
|
cairn_dock1 |
|
|
|
doom_comm |
|
|
|
doom_detention |
|
|
|
doom_shields |
|
|
|
yavin_swamp |
|
|
|
yavin_canyon |
|
|
|
yavin_courtyard |
|
|
|
yavin_final |
|
|
|
Map-Specific Issues:
t1_fatal
- Door back to ship doesn't always open after all the bombs have been disarmed. (Razor Ace)
- Dead bodies at start of the map are playing the gun ready stance animation (Razor Ace)
- Camera view cutscene doesn't play cutscene sounds and you can't see the actors either. (Razor Ace)
t1_rail
- Falling off the map makes the screen go back.
t1_sour
- Needs more autosave points to prevent players from getting trapped behind.
t1_surprise
- Stops when deactivating the flamethrower inside the sandcrawler. (Greg Williams)
- Some tuskens are unarmed (tusken staff missing). (Greg Williams)
t2_rogue
- If you die in Racto's room, you can't go up there again because of the lift. (Greg Williams)
t2_trip
- Enemies don't use swoops.
t2_wedge
- The map takes long to find the spawn point for you to start, but
actually does. There are no points to place the Charges. I don't think
the level can be finished without the bombs. (Greg Williams)
vjun1
- Something is currupting the Spawn Force Powers slightly after the
first checkpoint. Need more information about what's causing this
to happen. (Razor Ace)
- Kyle attacks his friends when playing with multiple players?! (Razor Ace)
- Kyle falls behind very easily. (Razor Ace)
- Tie Bombers don't explode with chunks. (Razor Ace)
- Tie Bombers don't drop bombs. (Razor Ace)
- Hazard Trooper AI isn't fully implimented. (Razor Ace)
- Invisible imperial officer in the first control room?! (Razor Ace)
- Hazard Troopers don't visibly have guns. (Razor Ace)
- Rain effect plays inside of buildings. (Razor Ace)
- Respawning caused player's force abilities to be completely disabled (Razor Ace)
- Acid rain damage doesn't happen. (Razor Ace)
vjun2
- The map works, but crashes to desktop when you reach the first checkpoint. (Greg Williams)
t3_byss
- The sentry kills the Imperials. (Greg Williams)
- No support for the turrets to take out some TIEs. (Greg Williams)
t3_hevil
- The Noghris are unarmed (their gas weapon is missing). (Greg Williams)
t3_stamp
- No Mutant Rancor in there. (Greg Williams)
kor1
- The very first statue-push puzzle isn't working. The statues
don't move and there's no way out except with noclip on. (Greg Williams)
- Map ramdomly crashes to desktop with a Windows message: "AppName:
jamp.exe"/ "AppVer: 1.0.1.0"/ "ModName: cgamex86.dll" / "ModVer:
1.0.1.0" / "Offset: 00036850" (Greg Williams)
kor2
- Tavion can't be defeated? (Greg Williams)
- If you die during the fight you can't go inside the room, same as Lannik Racto's. (Greg Williams)
- "Bad spawnpoint in Use_Autosave()" just before we entered the final tavion fight sequence. (MaxState)
AutoSave/Spawnpoint CoOp Editor
To resolve some issues with preexisting maps and the multiplayer CoOp
enviroment, we're created a handy ingame editor that allows you to
create additional spawnpoints and autosave locations.
To activate the editor, simply start up the map with the bot waypoint editor activated (bot_wp_edit 1).
While in the editor, manually created spawnpoints look like small
vertical tick marks and manually created autosave points look like
large diangle lines.
CoOp Editor Commands
/autosave_add [t] <size>
Description:
Adds an autosave point at the player's current position. The 't'
flag sets the autosave point to be a teleporting autosave. IE,
this makes all players to be transported to the autosave, like in
Halo. <size> overrides the default size of the autosave
area (the default value is 30). In terms of game scale, 10 game
units = 1 foot.
Giving a size of -1 will create a spawnpoint at the current location
instead of an autosave point. Additional spawnpoints are useful
for maps that don't have enough space for multiple players spawning at
the beginning of the level.
Examples:
- /autosave_add t 70 - This command would create a teleporting autosave that is 7 foot across.
- /autosave_add -1 - This command would create a spawnpoint.
/autosave_delete
Description:
This command will delete all the manually added spawnpoints and autosave positions that the player is currently touching.
/autosave_save
Description:
This command saves all the current custom autosave/spawnpoint data to
an .autosp file for this map. This file will be automatically
loaded the next time this map is run.