Outerra forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

Download Outerra Tech Demo. Unofficial Outerra Discord server, MicroProse Discord server for OWS.

Pages: 1 [2] 3 4

Author Topic: can we create, place or throw custom made objects that have physics in outerra ?  (Read 27524 times)

cameni

  • Brano Kemen
  • Outerra Administrator
  • Hero Member
  • *****
  • Posts: 6721
  • No sense of urgency.
    • outerra.com

Try calling .get_geomob(0).get_eid() on the created object.
Logged

fly77

  • Outerra Master Modder
  • Hero Member
  • *****
  • Posts: 1761

Got it working ! The missile gets shot with the tracer. Also the missile gets stuck very nicely in the ground on impact !  :) However I had to shoot a tracer first in init_vehicle using $explosions.launch_combo. Strangely even if I destroy the tracer it still works but if I never create the tracer before it won't work. Don't undertsand it but its fine. Quite nice and it makes a crater and smoke on impact!   :D :D :D
Only thing it makes no splash when hitting water.



Code: [Select]
function init_vehicle(){
  tracer = $explosions.launch_combo( ecef, {x:45*plasmaquat.x, y:45*plasmaquat.y, z:45*plasmaquat.z}, 3, {x:1,y:1, z:0},  {x:0.3,y:0.3, z:0.3}, 1, 0.1, 0.1, 20, true, true, true );
  $explosions.destroy_tracer( tracer );
}


function update_frame(dt, engine, brake, steering) {

  $throw = world.create_instance("outerra/missile/missile", ecef, cannonQuat, false);

  var ent_id = $throw.get_geomob(0).get_eid();

// $explosions.destroy_tracer( tracer );

 $explosions.launch_tracer( ecef, {x:45*plasmaquat.x, y:45*plasmaquat.y, z:45*plasmaquat.z}, 5, {x:1,y:1, z:0},      0.5, 0.2, 0,    0,  tracer , ent_id , 0 );

 $explosions.launch_combo( ecef, {x:45*plasmaquat.x, y:45*plasmaquat.y, z:45*plasmaquat.z}, 3, {x:1,y:1, z:0},  {x:0.3,y:0.3, z:0.3}, 1, 0.1, 0.1, 20, true, true, true );

}

« Last Edit: February 17, 2019, 10:49:27 am by fly77 »
Logged

fly77

  • Outerra Master Modder
  • Hero Member
  • *****
  • Posts: 1761

Strange "flying house bullet" appearing from time to time. My "outerra/tank-ammunition/tank-ammunition" of course looks differently. By the way, while my bullet is removed from the scene after impact, not so the "flying house" that remains stuck in the impact crater. Also the type of "flying house" is not allways the same. Seems to occur only (but not allways) when the tracer is looked at against the backdrop of the sky, especially if zooming in.


Code: [Select]
function update_frame(dt, engine, brake, steering, parking){
.......
$throw = world.create_instance("outerra/tank-ammunition/tank-ammunition", ecef,  bulletquat, false);   
       
entid = $throw.get_geomob(0).get_eid();
           
mdc = {x:0,y:2,z:0};

ecef = this.geometry.get_world_pos_offset(mdc,this.muzzle_id);
           
$explosions.launch_tracer( ecef, {x:450*plasmaquat.x, y:450*plasmaquat.y, z:450*plasmaquat.z}, 1, {x:1,y:1, z:0},      0.5, 0.2, 0,    0,  tracer , entid , 0 );

tracer = $explosions.launch_combo( ecef, {x:450*plasmaquat.x, y:450*plasmaquat.y, z:450*plasmaquat.z}, 1 , {x:1,y:1, z:0},  {x:0.3,y:0.3, z:0.3}, 7, 0.1, 0.1, 20, true, true, true );       
$throw.remove_from_scene();
....
}
« Last Edit: March 04, 2019, 02:54:20 pm by fly77 »
Logged

fly77

  • Outerra Master Modder
  • Hero Member
  • *****
  • Posts: 1761

Hope this "flying building" bug will be solved in the next version 😁
Logged

fly77

  • Outerra Master Modder
  • Hero Member
  • *****
  • Posts: 1761

I am trying to dynamically create a "programmatically configurable missile" (modelled as a vehicle script )
launched from a plane's script when a "fire" key is pressed.
To spawn the missile I use

Code: [Select]
world.create_instance("outerra/missile/missile", this.geom.get_world_pos_offset({x:-15, y:0, z:4}), this.geom.get_rot(), false);        
Everything works fine and I can create as many of these dynamic missile objects as I want,
however to make the missile configurable so that from the plane script I can choose missile speed, explosive power etc.
I am trying to use my global variables plugin.
So to make the missile configurable it calls this plugin and everything works fine up to a certain point.
For instance I can spawn the plane and set the missile speed to the desired value by repeated key presses.
Then I exit the plane and from the F3 menu spawn the missile. It starts flying at the speed set in the plane script
delivered to the missile script via the plugin. I can repeat this as often as I want and for as many missiles I want.
However when I instead try to spawn the same missile from the plane scripts world.create_instance command
I can just create 2 instances of the missile..at the third outerra crashes even if the missile script has nothing inside
 besides a void update_frame(){}


Code: [Select]
function init_vehicle(){
...
plugin = this.$query_interface('xt::js::global_variables.get');
...
}


The same happens when I declare the missile as watercraft instead of vehicle.
On the other hand if I declare it as JSBSIM aircraft ..for instance  "jsbsim/c172r",
adding the corresponding FDM folder I can dynamically create as many missiles as I want
(still with the missile calling the plugin interface) without crashing.

I'd like however to declare the missile as vehicle or watercraft .
So why can I spawn 2 but not more of these objects  when its declared as vehicle or how could I spawn programmatically more of these "configurable" vehicles ?
« Last Edit: February 22, 2020, 06:12:35 pm by fly77 »
Logged

cameni

  • Brano Kemen
  • Outerra Administrator
  • Hero Member
  • *****
  • Posts: 6721
  • No sense of urgency.
    • outerra.com

Can you submit the crash report?
Logged

fly77

  • Outerra Master Modder
  • Hero Member
  • *****
  • Posts: 1761

yes I submitted it.
by the way here is the simplugin.hpp. Note that from the missile javascript I don't call anything of the plugin at the moment except getting its interface as described above  - and I am not going to call anything vehicle/geomobj etc.. related...I will use it just to send and retrieving my global variable's values. I could cancel the vehicle , geomob etc.. related stuff from the plugin if this helps. Note that if I create the missile without the missile getting the plugin interface I can create as many as I want without problem even from the script.


Code: [Select]
#pragma once

#include <comm/intergen/ifc.h>

//wrap in special comments to inject into the generated interface header too
// can also use /*ifc{ ... }ifc*/ to include only in the client header

//ifc{
#include <ot/vehicle_physics.h>
#include "ot/explosions.h"
#include "ot/environment.h"
#include "ot/canvas.h"

//}ifc

///Plugin's base implementation class, exposing a xt::engine interface
class simplugin
: public policy_intrusive_base
{
public:
simplugin();
~simplugin() {};

///Interface declaration: [namespace::]name, path
ifc_class(xt::global_variables, "ifc/");

///Interface creator
ifc_fnx(get) static iref<simplugin> get()
{
return new simplugin;
}

//interface function examples

ifc_fn double readDat(int index);
ifc_fn bool writeDat(int index, double data);



ifc_fn void writeEcef(int index, double x, double y, double z, int id);
ifc_fn double readEcefx(int index);
ifc_fn double readEcefy(int index);
ifc_fn double readEcefz(int index);
ifc_fn int readEcefId(int index);

ifc_fn void writeQuat(int index, double x, double y, double z, double w, int id);
ifc_fn double readQuatx(int index);
ifc_fn double readQuaty(int index);
ifc_fn double readQuatz(int index);
ifc_fn double readQuatw(int index);
ifc_fn int readQuatId(int index);



ifc_fn void init_chassis(iref<ot::vehicle_physics> obj);
ifc_fn void init_vehicle(iref<ot::vehicle_physics> obj);
ifc_fn void update_vehicle(float dt, float throttle, float brake, float steer);
ifc_fn void firething();
ifc_fn void turretthing(float v, float dt);
ifc_fn void mantletthing(float v, float dt);

private:
iref<ot::geomob> m_geomob;
iref<ot::sndgrp> m_sndgrp;
iref<ot::explosions> m_explosion;
iref<ot::environment> m_environment;
iref<ot::canvas> m_canvas;

int _counter;

iref<ot::vehicle_physics> _vehicle;
};
« Last Edit: February 24, 2020, 03:47:55 am by fly77 »
Logged

cameni

  • Brano Kemen
  • Outerra Administrator
  • Hero Member
  • *****
  • Posts: 6721
  • No sense of urgency.
    • outerra.com

The crash happens somewhere in c4e (chromium, in Javascript), but the last caller above it is the global_variables_plugin.dll.
You can attach your debugger to outerra.exe and get a better info what the plugin was doing when it crashed.
Logged

fly77

  • Outerra Master Modder
  • Hero Member
  • *****
  • Posts: 1761

do you mean inside visual studio I need to under debug/connect to process choose outerra.exe ..and then recompile the plugin ? I have done the debug/connect to outerra.exe in VS then fired the 3 missiles an outerra ...outerra crashes and I sent you once more the crahs-report. Is this what you meant ?
« Last Edit: February 24, 2020, 04:27:57 am by fly77 »
Logged

cameni

  • Brano Kemen
  • Outerra Administrator
  • Hero Member
  • *****
  • Posts: 6721
  • No sense of urgency.
    • outerra.com

You do not need to recompile if your dll already has debug info.
Simply attach to outerra.exe in visual studio debug, then do what you need to do to cause the crash, which will break in the visual studio where you can see the call stack.
Logged

fly77

  • Outerra Master Modder
  • Hero Member
  • *****
  • Posts: 1761

OK in visual studio first thing I see after crash is this message




AFTER trying again I get another one




OK I'll try again doing what the messages suggest. (loading symbols from...)
« Last Edit: February 24, 2020, 04:43:41 am by fly77 »
Logged

fly77

  • Outerra Master Modder
  • Hero Member
  • *****
  • Posts: 1761

OK now I got something in call stack but it seems that i still have not loaded symbols  even though after ending debug I get this in the VS output window..but I have the impression I am doing something wrong with this debug. Anyway the strange thing is that I am not calling any action fro the plugin...just getting its interface.

Code: [Select]
'outerra.exe' (Win32): caricamento di 'C:\Program Files (x86)\Outerra\Anteworld\outerra.exe' completato.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\ntdll.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\kernel32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\KernelBase.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\ws2_32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\msvcrt.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\rpcrt4.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\sspicli.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\cryptbase.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\sechost.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\nsi.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\advapi32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\crypt32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\msasn1.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\Wldap32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\normaliz.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Program Files (x86)\Outerra\Anteworld\luajit.dll' completato. Modulo compilato senza simboli.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\opengl32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\gdi32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\user32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\lpk.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\usp10.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\glu32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\ddraw.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\dciman32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\setupapi.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\cfgmgr32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\oleaut32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\ole32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\devobj.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\dwmapi.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Program Files (x86)\Outerra\Anteworld\openal-mob.dll' completato.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\shell32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\shlwapi.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\winmm.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\version.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\dnsapi.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Program Files (x86)\Outerra\Anteworld\crashrpt.dll' completato.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\userenv.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\profapi.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\wsock32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\IPHLPAPI.DLL' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\winnsi.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\api-ms-win-core-synch-l1-2-0.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\imm32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\msctf.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Program Files (x86)\Outerra\Anteworld\c4e\c4e.dll' completato.
'outerra.exe' (Win32): caricamento di 'C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18837_none_ec86b8d6858ec0bc\comctl32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\psapi.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\secur32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\winhttp.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\webio.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\nvapi.dll' completato.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\dxgi.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\uxtheme.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\nvoglv32.dll' completato.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\wtsapi32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\wintrust.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\ntmarta.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\winsta.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\mscms.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\icm32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\clbcatq.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\dsound.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\powrprof.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\MMDevAPI.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\propsys.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\AudioSes.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\wdmaud.drv' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\ksuser.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\avrt.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\msacm32.drv' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\msacm32.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\midimap.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Program Files (x86)\Outerra\Anteworld\c4e\ffmpegsumo.dll' completato.
'outerra.exe' (Win32): caricamento di 'C:\Program Files (x86)\Outerra\Anteworld\c4e\icudt.dll' completato. Modulo compilato senza simboli.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\dhcpcsvc.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\hid.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\mswsock.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\WSHTCPIP.DLL' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\wship6.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Program Files (x86)\Common Files\microsoft shared\Windows Live\WLIDNSP.DLL' completato.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\rasadhlp.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\FWPUCLNT.DLL' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\gpapi.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\cryptsp.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\rsaenh.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\ncrypt.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\bcrypt.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\bcryptprimitives.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Windows\SysWOW64\cryptnet.dll' completato. Simboli caricati.
'outerra.exe' (Win32): caricamento di 'C:\Program Files (x86)\Outerra\Anteworld\plugins\charctrl\charctrl_plugin.dll' completato.
'outerra.exe' (Win32): caricamento di 'C:\Program Files (x86)\Outerra\Anteworld\plugins\COPY-global_variables_plugin.dll' completato.
'outerra.exe' (Win32): caricamento di 'C:\Program Files (x86)\Outerra\Anteworld\plugins\global_variables_plugin.dll' completato.
'outerra.exe' (Win32): caricamento di 'C:\Program Files (x86)\Outerra\Anteworld\plugins\grid_overlay_plugin.dll' completato.
'outerra.exe' (Win32): caricamento di 'C:\Program Files (x86)\Outerra\Anteworld\plugins\screencapture_plugin.dll' completato.
'outerra.exe' (Win32): caricamento di 'C:\Program Files (x86)\Outerra\Anteworld\plugins\tir-trackir-plugin.dll' completato.
'outerra.exe' (Win32): caricamento di 'C:\Program Files (x86)\Outerra\Anteworld\plugins\vehicle_plugin.dll' completato.
'outerra.exe' (Win32): caricamento di 'C:\Program Files (x86)\Outerra\Anteworld\otbullet.dll' completato.
'outerra.exe' (Win32): caricamento di 'C:\Program Files (x86)\NaturalPoint\TrackIR5\NPClient.dll' completato.
'outerra.exe' (Win32): caricamento di 'C:\Program Files (x86)\Outerra\Anteworld\jsbsim_wrapper.dll' completato.
'outerra.exe' (Win32): caricamento di 'C:\Program Files (x86)\Outerra\Anteworld\JSBSim.dll' completato.
Il thread 0x1664 è terminato con il codice 0 (0x0).
Il thread 0x183c è terminato con il codice 0 (0x0).
Il thread 0x454 è terminato con il codice 0 (0x0).
Il thread 0x152c è terminato con il codice 0 (0x0).
Eccezione generata in corrispondenza di 0x0FE2B731 (c4e.dll) in outerra.exe: 0xC0000005: violazione di accesso durante la lettura del percorso 0x00000024.

Il programma '[7972] outerra.exe' è terminato con il codice 0 (0x0).

« Last Edit: February 24, 2020, 08:09:53 am by fly77 »
Logged

cameni

  • Brano Kemen
  • Outerra Administrator
  • Hero Member
  • *****
  • Posts: 6721
  • No sense of urgency.
    • outerra.com

You won't have pdbs from the exe or c4e, but you should have a pdb for your own dll plugin.
Logged

andfly

  • Sr. Member
  • ****
  • Posts: 347

However when I instead try to spawn the same missile from the plane scripts world.create_instance command
I can just create 2 instances of the missile..at the third outerra crashes even if the missile script has nothing inside
 besides a void update_frame(){}


Code: [Select]
function init_vehicle(){
...
plugin = this.$query_interface('xt::js::global_variables.get');
...
}

Perhaps the problem you have presented could derive from the global management of variables in the instances of models that use the physics of vehicles (and boats) and from which the models that use Jsbsim are immune.

When you create your missile as a "vehicle" the variable "plugin" with which you get the interface of your plugin, is shared by all the other successive instances of the same missile that you try to create.

plugin = this. $ query_interface ('xt :: js :: global_variables.get');

It could create such confusion as to crash the whole program ...

Maybe (I'm not sure but it would be an attempt) you can solve it by calling the interface with: "this.plugin".

this.plugin = this. $ query_interface ('xt :: js :: global_variables.get');

The variable would no longer be global but would be unique and different for each missile instance created.

I hope I have been of help.  :)
Logged
I do not know the English language. I use Google Translate. I hope it's all understandable.

fly77

  • Outerra Master Modder
  • Hero Member
  • *****
  • Posts: 1761

Hi andfly. Thanks for the interest. I tried that also but it doesn't change anything. Still crashing in the same way.

Logged
Pages: 1 [2] 3 4