Jump to content

SilentEagle

Members
  • Posts

    651
  • Joined

  • Last visited

  • Days Won

    3

Personal Information

  • Location
    Orlando, FL
  • Occupation
    Aeronautical & Software Engineer
  • Website
    http://www.patriotsjetteam.com

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. @I_Gamer All of your perceptions are correct and there does not appear to be a way add new external sounds or replace the filename for existing external sounds without using the Sounder API, which is not publicly available. (Yes, even after this many years) Internal cockpit sounds are very much under our control to do as we please. I created this short how-to on the subject a few years ago. It looks like a couple others' mods have used this format.
  2. Everything should still work, but you'll probably need more logic than what I showed in my example. Here is how I do it using params. Sound lua cockpit system: https://pastebin.com/1e9WEW2A Another lua system setting sound triggers: https://pastebin.com/1Zmx5Z8D
  3. I would have to see your logic to know exactly what you mean, but what might be happening is that the sound is being told to play once every iteration, which restarts the sound audio at the beginning over and over, so you will never actually hear it play through the whole sound. That is the purpose of checking the is_playing function to avoid telling a sound to play when it is already playing. The play_continue function, on the other hand, will internally loop through the entire sound audio before restarting, so you will hear it, even if you run that function every iteration. Don't forget to tell the sound to stop when it should, even when it is only being told to play once. The sound will not automatically update its internal state after it is finished playing the audio. That is why the data structures I wrote for handling sounds included the sound length that I measured in a sound editing program.
  4. You could undo the command like you are proposing, but I prefer to have wrapper-like functionality around built-in commands (SFM in this case). To do this, you would create a new custom key command that would dispatch the native engine start command only when your internal logic determines it is ready to do so. The original key command ID would be changed to the new custom one, so it is not possible to directly start the engone without going through your logic. Obviously, someone could go back into the default.lua and add it back in.
  5. I wrote a how-to about this over a year ago for the A-4 devs, but I guess I should share it here. https://pastebin.com/uKzbkhnA Still no idea about how to do custom external sounds. Supposedly a sound API was released by ED devs, but nobody I know has ever figured out how to use it.
  6. As far as I know, a smoke pod can only have one statically defined color, so multiple smoke pods would need to be loaded to the exact same position, meaning a modified pylon definition in the aircraft lua file to have many smoke pods capable pylons inthe same position. You will also need to define and add a custom lua system (avSimpleWeaponSystem) to be able to switch colors by turning on and off each differently colored smoke pod. You may also want to define your own smoke pods with modified weight so as not to have a heavy stores load with so many smoke pods. I have never done this myself, but I think that should work.
  7. I think I remember you telling me that before, but I have just never seen that behavior. I have used set/get functions from lua systems and the C++ API for discrete and floating values and never had a problem with the value not being what I expect. Now, if you are talking about using the gauge controllers in the mainpanel_init to grab parameter data, maybe that is having an effect, but pure parameters should just store the value you set.
  8. You can pass information back and forth between lua and the EFM by using the get/set parameter API functions. It is a major pain however and creates an iteration of lag into the system if that is important. That's why I do almost all logic with systems that run in the EFM simulation loop. I still need some lua systems to interface with the sim for several things, but it makes life simpler to run it on the dll. The downside to that is no possibility for active pause, that is, running systems simulation while the EFM is frozen, since the EFM is not called while the sim is paused. Another downside is that all your systems must run at a multiple of the EFM rate (0.006 s) only. I created a subsystem manager to run my systems automatically at rates of 0.006 s (fastest), 0.012 s, 0.024 s, etc. depending on the system.
  9. I really think this misconception will persist to the end of time. :). Check out the API folder in every install folder for the EFM template. The list of things that only 3rd parties can do is actually pretty small.
  10. If you're interested in calling dll functions from C++, I often use dependency walker as well to see exported functions and their prototypes. As far as I know, only static functions, usually utility functions, without obscure/unique data struct parameters will be directly callable by address in this manner. Another way to see exported data if you're familiar with unix systems or have cygwin installed is to use the "strings" and "grep" or "less" commands like this: strings "CockpitBase.dll" | less or strings "CockpitBase.dll" | grep "<search_term>"
  11. Lots of modders would be much happier with a system like that (still not ideal), but at least the talent of casual modders who don't want to make this their career could be unleashed. Don't see it happening though.
  12. Yea, for an initial understanding, but for aerospace purposes you should really use a more accurate integrator. JSBSim is great for understanding how to translate the more complex integrators, like Adams-Bashforth, into discrete code iterations. For my personal sim project, I use Adams Bashforth 2nd order integrator for rotational rate and translational rate, Adams Bashforth 3rd order for translational position, and Buss 2nd order Quaternion exponential for rotational position.
  13. When it comes to pure dynamics, the only hardcoded things in an EFM are gravity, ground reaction (but tuneable), and collision reaction forces.
  14. I've never seen that first error. Is it looking for it in the correct directory? Make sure the model_path is properly mounted in the entry.lua. The second error is just due to a lua syntax error in your indication_page.lua. You have too many "end"s in your code. If you can't spot where the error is originating, you might use a lua syntax checker to find the problem more specifically. I usually use LuaEdit2010.
  15. Actually, I found that the aircraft rolling speeds are dead on with the real aircraft without adding differential elevon affects. There is no PID in the roll axis, so you won't get any instability by adding additional rolling power, but I don't think it is really necessary. I'm thinking the NASA data just accounted for the affect in the aileron rolling moments, but did so with the current flaperon to elevon ratio at the subsonic speed they chose. Anyway, the thing already has such a quick roll rate acceleration and deceleration that it almost always looks horrible over multiplayer. When viewing the aircraft from external view (not over multiplayer), it looks very crisp like the real thing. Yes, this would be a good step in organization.
×
×
  • Create New...