• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Need Help Scaling the game's particles

Myth

Freebooter
Good evening. Can you tell me if it is possible to change the size of a particular party for the game? You need to change its settings, that is, without scriptfunctions. Thank you.
 
The particle system for COAS was likely done using Maya, but the source files, and the export plugin, was never supplied like the model export; I suspect that there was a mel export, similar to the model export, that the original developers used when creating those .xps files.

Since we do have the particle file format available in the form of C++ source, I did write an XML export inside the engine, using the variable names used during the game's particle loading feature, that then wrote out a human readable XML file for them so we can see the data. After writing those files, that converts the .xps to .xml, I then wrote a feature (if a start.ini config option is set) that would instead read the data from the .xml files, instead of the .xps files and it works to create the particles from those .xml files instead of the .xps files and they work exactly the same. What this would allow someone to do, is to manually edit the .xml files to alter the effects. I don't know what all the data means, but through trial and error, you could theoretically change the data, try it in game.

If using Maelstrom, download a copy of ERAS 2, check the file directory: RESOURCE\Particles
You should see all the .xps files also have a corresponding .xml file. You can open those in a text editor. Within the Particles node, there is a Size node that contains several MinGraphItems/MaxGraphItems values you want to try changing; I don't know the effect, but it is the only Size value I see in the files. Once you change some values that you want to try, change the start.ini to include or uncomment: useXMLParticles = 1

That will tell Maelstrom to use the .xml files, instead of the .xps and you can test your particle file changes.
 
The particle system for COAS was likely done using Maya, but the source files, and the export plugin, was never supplied like the model export; I suspect that there was a mel export, similar to the model export, that the original developers used when creating those .xps files.
That explains a lot. Thanks for confirming!

Having them XML-based makes so much more sense. :onya
 
I wanted to move the alcoves with balloons of teleports from "Pirates of the Caribbean". I've only been moved, but there are no particlus called "stars", so the balls don't look the way they should. See the pictures.
On Potc this look like


8LWe0I0POcM.jpg
 

Attachments

  • bOEtAQ5G_FM.jpg
    bOEtAQ5G_FM.jpg
    437.8 KB · Views: 216
  • LbfZVHn_GxI.jpg
    LbfZVHn_GxI.jpg
    411.4 KB · Views: 202
PotC has a completely different particle system.
So unfortunately nothing can be exchanged with AoP/CoAS there. :(
 
In TEHO this location looks fine. But I didn't understand how they fixed these wonderful spheres. In resources like everything is the same, but the code I did not find a difference.
 
In TEHO this location looks fine. But I didn't understand how they fixed these wonderful spheres. In resources like everything is the same, but the code I did not find a difference.

Probably because they use the "signstar" particle instead; there is a signstar.xps file in COAS particles. In locations_loader.c file, function LoadLocation, they added this:

if (loc.id == "Treasure_Alcove")
{
CreateLocationParticles("signstar", "teleport", "teleport6", 0.3, 0, 0, "");
CreateLocationParticles("signstar", "teleport", "teleport6", 0.6, 0, 0, "");
CreateLocationParticles("signstar", "teleport", "teleport6", 0.9, 0, 0, "");
CreateLocationParticles("signstar", "teleport", "teleport6", 1.2, 0, 0, "");
CreateLocationParticles("signstar", "teleport", "teleport6", 1.5, 0, 0, "");
CreateLocationParticles("signstar", "teleport", "teleport6", 1.8, 0, 0, "");
CreateLocationParticles("signstar", "teleport", "teleport6", 2.1, 0, 0, "");
}

In Locations\particles.c, they added the function CreateLocationParticles:

bool CreateLocationParticles(string sParticle, string sGroup, string sLocator, float up, float ax, float az, string sSound)
{
ref rLoc = &locations[FindLocation(PChar.location)];

float x = stf(rLoc.locators.(sGroup).(sLocator).x);
float y = stf(rLoc.locators.(sGroup).(sLocator).y);
float z = stf(rLoc.locators.(sGroup).(sLocator).z);

CreateParticleSystemX(sParticle, x, y+up, z, x+ax, y+up, z+az, 0);
Play3DSound(sSound, x, y, z);
return true;
}
 
Probably because they use the "signstar" particle instead; there is a signstar.xps file in COAS particles. In locations_loader.c file, function LoadLocation, they added this:

if (loc.id == "Treasure_Alcove")
{
CreateLocationParticles("signstar", "teleport", "teleport6", 0.3, 0, 0, "");
CreateLocationParticles("signstar", "teleport", "teleport6", 0.6, 0, 0, "");
CreateLocationParticles("signstar", "teleport", "teleport6", 0.9, 0, 0, "");
CreateLocationParticles("signstar", "teleport", "teleport6", 1.2, 0, 0, "");
CreateLocationParticles("signstar", "teleport", "teleport6", 1.5, 0, 0, "");
CreateLocationParticles("signstar", "teleport", "teleport6", 1.8, 0, 0, "");
CreateLocationParticles("signstar", "teleport", "teleport6", 2.1, 0, 0, "");
}

In Locations\particles.c, they added the function CreateLocationParticles:

bool CreateLocationParticles(string sParticle, string sGroup, string sLocator, float up, float ax, float az, string sSound)
{
ref rLoc = &locations[FindLocation(PChar.location)];

float x = stf(rLoc.locators.(sGroup).(sLocator).x);
float y = stf(rLoc.locators.(sGroup).(sLocator).y);
float z = stf(rLoc.locators.(sGroup).(sLocator).z);

CreateParticleSystemX(sParticle, x, y+up, z, x+ax, y+up, z+az, 0);
Play3DSound(sSound, x, y, z);
return true;
}

Yes! It work! I just copy "signstar" and rename it. No add scripts! See image.

Buccaneer's_0000.jpg

(Please also check your email. I left you some letters.)
 
Back
Top