Vegard Aune Posted August 30, 2006 Share Posted August 30, 2006 I have tried to make a minor mod that would add M4-78 and Malachor to the KotOR 2 galaxy map. I saw tha tutourial and downloaded the script and all that, but there is one problem: The map is gone! I mean, I can still select it and travel to planets, but the interface is completely black, so I can't tell where I'm going. Does anyone know how to fix this? Link to comment Share on other sites More sharing options...
Pavlos Posted August 30, 2006 Share Posted August 30, 2006 Ok, so the easiest thing to do now is for you to post your script, so we can see where you are going wrong. Do you want M4-78 and Malachor V to always be on the galaxy map, or do you want them to appear after Telos? Link to comment Share on other sites More sharing options...
Darth Dragoon Posted August 30, 2006 Share Posted August 30, 2006 i di the same tutorial but i can select the galaxy map but i cant go into the selection screen. Link to comment Share on other sites More sharing options...
Pavlos Posted August 30, 2006 Share Posted August 30, 2006 I don't see why the galaxy map GUI would appear to be black. I haven't read stoffe's new tutorial, I figured the business out on my own (Which is surprising considering we are talking about the master of mistakes here...) so I didn't see any need. The only thing I can think of is that you have a corrupted galaxymap_p.gui in your override. As to not appearing at all. You should have a call at the bottom of your a_galaxymap script for: ShowGalaxyMap(nPlanet); Edit: Oh, and make sure your galaxy map placeable triggers a_galaxymap - that could be the reason why it isn't showing. Link to comment Share on other sites More sharing options...
Vegard Aune Posted August 31, 2006 Author Share Posted August 31, 2006 I don't see why the galaxy map GUI would appear to be black. I haven't read stoffe's new tutorial, I figured the business out on my own (Which is surprising considering we are talking about the master of mistakes here...) so I didn't see any need. The only thing I can think of is that you have a corrupted galaxymap_p.gui in your override. As to not appearing at all. You should have a call at the bottom of your a_galaxymap script for: ShowGalaxyMap(nPlanet); Edit: Oh, and make sure your galaxy map placeable triggers a_galaxymap - that could be the reason why it isn't showing. Actually, I only did a small change to the galaxy map script. All the other stuff was not necessary, as M4-78 and Malachor already had locations on the map, you just couldn't reach them. So the .gui explaination can't be the reason. Oh, and I wanted them (At least M4-78) to be available all the time. Link to comment Share on other sites More sharing options...
goldberry Posted August 31, 2006 Share Posted August 31, 2006 Can you just post the decompiled script so that we can pinpoint the problem? Just post the scripts that you have edited. Link to comment Share on other sites More sharing options...
DarthStoney Posted August 31, 2006 Share Posted August 31, 2006 if you use the original a_galaxymap script decompiled you have these lines at the bottom SetPlanetAvailable(9, 0); SetPlanetSelectable(9, 0); SetPlanetAvailable(4, 0); SetPlanetSelectable(4, 0); SetPlanetAvailable(2, 0); SetPlanetSelectable(2, 0); planet 4 is m4-78 just change the 0's to 1's makes it selectable right after peragus or delete the lines makes them selectable after telos. planet 9 should be malachor v. Link to comment Share on other sites More sharing options...
Pavlos Posted August 31, 2006 Share Posted August 31, 2006 if you use the original a_galaxymap script decompiled you have these lines at the bottom SetPlanetAvailable(9, 0); SetPlanetSelectable(9, 0); SetPlanetAvailable(4, 0); SetPlanetSelectable(4, 0); SetPlanetAvailable(2, 0); SetPlanetSelectable(2, 0); planet 4 is m4-78 just change the 0's to 1's makes it selectable right after peragus or delete the lines makes them selectable after telos. planet 9 should be malachor v. Malachor is actually planet number 5. The constants listed in NWScript are in alphabetical and not chronological order. Telos is 9. Link to comment Share on other sites More sharing options...
Vegard Aune Posted August 31, 2006 Author Share Posted August 31, 2006 Actually, it turned out that the problem WAS a corrupted .gui-file. I had extracted it while trying to follow the tutourial, it was corrupted, and I didn't remove it afterwards. But there is another problem: Although I've set all the planets to true in the script, Malachor doesn't show up on the map. What should I do to fix that? Link to comment Share on other sites More sharing options...
DarthStoney Posted August 31, 2006 Share Posted August 31, 2006 I got a little ahead of myself earlier as I had never tried to get to malachor.But if you use the original a_galaxy map file just modify this section. SetPlanetAvailable(9, 0); SetPlanetSelectable(9, 0); SetPlanetAvailable(4, 0); SetPlanetSelectable(4, 0); SetPlanetAvailable(2, 0); SetPlanetSelectable(2, 0); to this SetPlanetAvailable(9, 0); SetPlanetSelectable(9, 0); SetPlanetAvailable(4, 1); SetPlanetSelectable(4, 1); SetPlanetAvailable(5, 1); SetPlanetSelectable(5, 1); SetPlanetAvailable(2, 0); SetPlanetSelectable(2, 0); malachor is planet 5 note:if you exit the ebonhawk at malachor there is no way to re-enter. Link to comment Share on other sites More sharing options...
Pavlos Posted August 31, 2006 Share Posted August 31, 2006 Edit: DSTONEY642000's way is fine as a hack to allow constant access, by the way. I didn't mean to seem as though I was correcting you, DSTONEY642000, because your method is fine. Just to clear that up... Here is what your a_galaxymap.nss original should look like. I have commented it for ease of use. Ignore the little novel at the top... I have a habit of telling the life history of my scripts in the headers. // a_galaxymap.nss /* Kindly decompiled/recreated by stoffe -mkb-, found thanks to the handy search function on LucasForums Runs when the galaxy map placeable is selected. Sets which planets are visitable and which are not. */ // Created By: Obsidian Entertainment // Decompiled By: stoffe // Commented By: Pavlos #include "k_inc_hawk" void main() { // We are supposed to check how Kreia is before setting a course for Telos if (GetGlobalNumber("003EBO_Atton_Talk") <= 4) { object oPC = GetFirstPC(); AssignCommand(oPC, ClearAllActions()); AssignCommand(OBJECT_SELF, ActionStartConversation(oPC, "galaxy", FALSE, CONVERSATION_TYPE_CINEMATIC, TRUE)); return; } // We're stuck on Dxun, oh no! else if (GetGlobalNumber("003EBO_RETURN_DEST") == 4) { if (GetGlobalNumber("502OND_End_First") == 0) { object oPC = GetFirstPC(); AssignCommand(oPC, ClearAllActions()); AssignCommand(OBJECT_SELF, ActionStartConversation(oPC, "galaxy2", FALSE, CONVERSATION_TYPE_CINEMATIC, TRUE)); return; } } // The Ebon Hawk has been boarded! else if (GetGlobalNumber("003_IN_COMBAT") == 1) { object oPC = GetFirstPC(); AssignCommand(oPC, ClearAllActions()); AssignCommand(OBJECT_SELF, ActionStartConversation(oPC, "galaxy", FALSE, CONVERSATION_TYPE_CINEMATIC, TRUE)); return; } // Set all the worlds to off int nWorld = 0; for (nWorld = PLANET_DANTOOINE; nWorld < PLANET_LIVE_01; ++nWorld) { SetPlanetAvailable(nWorld, FALSE); SetPlanetSelectable(nWorld, FALSE); } // Malachor is open on the galaxy map - you have defeated Nihilus // I believe you are immediately transfered to 901MAL, after Nihilus // That is why you never receive this option in the game if (GetGlobalNumber("900MAL_Open") == 1) { for (nWorld = PLANET_DANTOOINE; nWorld < PLANET_LIVE_01; nWorld++) { int nPlanet = nWorld; SetPlanetAvailable(nPlanet, TRUE); if (nWorld == PLANET_MALACHOR_V) SetPlanetSelectable(nPlanet, TRUE); } } // Standard, after-Telos galaxy map else if (GetGlobalNumber("262TEL_Escape_Telos") == 1) { for (nWorld = PLANET_DANTOOINE; nWorld < PLANET_LIVE_01; nWorld++) { int nPlanet = nWorld; // If nWorld is not equal to 5 then set it to available. if (nWorld != PLANET_MALACHOR_V) { SetPlanetAvailable(nPlanet, TRUE); // If nWorld is not equal to 8 then allow the player to select it if (nWorld != PLANET_PERAGUS) SetPlanetSelectable(nPlanet, TRUE); } } // We don't know of Dxun yet... we cannot select it if (GetGlobalNumber("401DXN_Visited") == 0) { SetPlanetAvailable(PLANET_DXUN, FALSE); SetPlanetSelectable(PLANET_DXUN, FALSE); } // Civil War strikes at Onderon's heart - we cannot go back else { SetPlanetSelectable(PLANET_ONDERON, FALSE); } } // For some strange reason... the Harbinger constant is // used for Citadel Station. // Which is... confusing. // Used for the flight from Peragus to Telos else { SetPlanetAvailable(PLANET_HARBINGER, TRUE); SetPlanetSelectable(PLANET_HARBINGER, TRUE); SetPlanetAvailable(PLANET_PERAGUS, TRUE); SetPlanetSelectable(PLANET_PERAGUS, FALSE); } // We cannot go to the polar region again. SetPlanetAvailable(PLANET_TELOS, FALSE); SetPlanetSelectable(PLANET_TELOS, FALSE); // M4-78 was cut - much simpler just to add this in than edit the rest of the script SetPlanetAvailable(PLANET_M4_78, FALSE); SetPlanetSelectable(PLANET_M4_78, FALSE); // Standard, no Ebon Hawk on map SetPlanetAvailable(PLANET_EBON_HAWK, FALSE); SetPlanetSelectable(PLANET_EBON_HAWK, FALSE); int nPlanet = GetCurrentPlanet(); // If we are in hyperspace, or in space then the Ebon Hawk is on the map. if ((GetGlobalNumber("003EBO_BACKGROUND") == 8) || (GetGlobalNumber("003EBO_BACKGROUND") == 10)) { nPlanet = PLANET_EBON_HAWK; SetPlanetAvailable(PLANET_EBON_HAWK, TRUE); } SetPlanetSelectable(nPlanet, FALSE); ShowGalaxyMap(nPlanet); } To make M4-78 selectable after Telos - delete, or comment out: SetPlanetAvailable(PLANET_M4_78, FALSE); SetPlanetSelectable(PLANET_M4_78, FALSE); As for Malachor: You want to remove, or comment out, the check to see if the planet is Malachor V. if (nWorld != PLANET_MALACHOR_V) { SetPlanetAvailable(nPlanet, TRUE); This should allow you to visit it after Telos - as you did with M4-78. So your script should look something like this: #include "k_inc_hawk" void main() { // We are supposed to check how Kreia is before setting a course for Telos if (GetGlobalNumber("003EBO_Atton_Talk") <= 4) { object oPC = GetFirstPC(); AssignCommand(oPC, ClearAllActions()); AssignCommand(OBJECT_SELF, ActionStartConversation(oPC, "galaxy", FALSE, CONVERSATION_TYPE_CINEMATIC, TRUE)); return; } // We're stuck on Dxun, oh no! else if (GetGlobalNumber("003EBO_RETURN_DEST") == 4) { if (GetGlobalNumber("502OND_End_First") == 0) { object oPC = GetFirstPC(); AssignCommand(oPC, ClearAllActions()); AssignCommand(OBJECT_SELF, ActionStartConversation(oPC, "galaxy2", FALSE, CONVERSATION_TYPE_CINEMATIC, TRUE)); return; } } // The Ebon Hawk has been boarded! else if (GetGlobalNumber("003_IN_COMBAT") == 1) { object oPC = GetFirstPC(); AssignCommand(oPC, ClearAllActions()); AssignCommand(OBJECT_SELF, ActionStartConversation(oPC, "galaxy", FALSE, CONVERSATION_TYPE_CINEMATIC, TRUE)); return; } // Set all the worlds to off int nWorld = 0; for (nWorld = PLANET_DANTOOINE; nWorld < PLANET_LIVE_01; ++nWorld) { SetPlanetAvailable(nWorld, FALSE); SetPlanetSelectable(nWorld, FALSE); } // Malachor is open on the galaxy map - you have defeated Nihilus // I believe you are immediately transfered to 901MAL, after Nihilus // That is why you never receive this option in the game if (GetGlobalNumber("900MAL_Open") == 1) { for (nWorld = PLANET_DANTOOINE; nWorld < PLANET_LIVE_01; nWorld++) { int nPlanet = nWorld; SetPlanetAvailable(nPlanet, TRUE); if (nWorld == PLANET_MALACHOR_V) SetPlanetSelectable(nPlanet, TRUE); } } // Standard, after-Telos galaxy map else if (GetGlobalNumber("262TEL_Escape_Telos") == 1) { for (nWorld = PLANET_DANTOOINE; nWorld < PLANET_LIVE_01; nWorld++) { int nPlanet = nWorld; // If nWorld is not equal to 8 then allow the player to select it if (nWorld != PLANET_PERAGUS) SetPlanetSelectable(nPlanet, TRUE); } // We don't know of Dxun yet... we cannot select it if (GetGlobalNumber("401DXN_Visited") == 0) { SetPlanetAvailable(PLANET_DXUN, FALSE); SetPlanetSelectable(PLANET_DXUN, FALSE); } // Civil War strikes at Onderon's heart - we cannot go back else { SetPlanetSelectable(PLANET_ONDERON, FALSE); } } // For some strange reason... the Harbinger constant is // used for Citadel Station. // Which is... confusing. // Used for the flight from Peragus to Telos else { SetPlanetAvailable(PLANET_HARBINGER, TRUE); SetPlanetSelectable(PLANET_HARBINGER, TRUE); SetPlanetAvailable(PLANET_PERAGUS, TRUE); SetPlanetSelectable(PLANET_PERAGUS, FALSE); } // We cannot go to the polar region again. SetPlanetAvailable(PLANET_TELOS, FALSE); SetPlanetSelectable(PLANET_TELOS, FALSE); // Standard, no Ebon Hawk on map SetPlanetAvailable(PLANET_EBON_HAWK, FALSE); SetPlanetSelectable(PLANET_EBON_HAWK, FALSE); int nPlanet = GetCurrentPlanet(); // If we are in hyperspace, or in space then the Ebon Hawk is on the map. if ((GetGlobalNumber("003EBO_BACKGROUND") == 8) || (GetGlobalNumber("003EBO_BACKGROUND") == 10)) { nPlanet = PLANET_EBON_HAWK; SetPlanetAvailable(PLANET_EBON_HAWK, TRUE); } SetPlanetSelectable(nPlanet, FALSE); ShowGalaxyMap(nPlanet); } Compile it, and both worlds should be available for use after Telos - like any other world. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.