Jump to content

Mist "plugin" spawning/cloning/teleporting


Grimes

Recommended Posts

Yep, still taking suggestions and such. However what will likely be happening is that Speed and I will directly implement this into Mist. Thus functions would be renamed to something like: mist.teleportToZone(). So I don't know if I'll release another sct before it gets added to mist. Accepting a group table is a good idea, and I'll probably add that in there sooner or later. There are a few more spawn/clone/teleport related features I'd like to add, but again those might be in mist 2.x and not sct3.

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

Link to comment
Share on other sites

Hello!

Could someone please provide an example of the sct. respawnGroup script?

I would like to respawn a F-15C group when it get's destroyed if possible.

If this is not the correct type of script is it possible by some other one?

 

I am a total noob in scripting and can't make it out :helpsmilie:

Thanks in advance!

"ARGO" DCS UH-1H DLC SP Campaign

373vFS DCS World squadron (Greece) - www.buddyspike.net

"ARGO 2.0 Project Phoenix" UH-1H DLC Campaign - WIP

Link to comment
Share on other sites

Yep that script can do it, but for the most part you must rely on scripting with dynamically added groups. So even though a group name might be the same, triggers will not recognize it. But you can make a trigger that does scripting, so its all good.

 

The following should work.

Switched Condition> Expression> Do Script

 

Expression

if Group.getByName('insertgroupNamehere') then
return false
else
return true
end

 

Do Script

sct.respawnGroup('insertgroupNamehere', true)

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

Link to comment
Share on other sites

I don't know HiJack if scripts can break track replay-ability. I wouldn't be shocked if script commands aren't recorded on tracks. What sort of problems were you having?

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

Link to comment
Share on other sites

Yep that script can do it, but for the most part you must rely on scripting with dynamically added groups. So even though a group name might be the same, triggers will not recognize it. But you can make a trigger that does scripting, so its all good.

 

The following should work.

Switched Condition> Expression> Do Script

 

Expression

if Group.getByName('insertgroupNamehere') then
return false
else
return true
end

 

Do Script

sct.respawnGroup('insertgroupNamehere', true)

 

I get this error :blush:

scripterror_zpsab501af2.png

 

The F-15C's name is TEST and the expression works when it's destroyed. But the script gets an error.

"ARGO" DCS UH-1H DLC SP Campaign

373vFS DCS World squadron (Greece) - www.buddyspike.net

"ARGO 2.0 Project Phoenix" UH-1H DLC Campaign - WIP

Link to comment
Share on other sites

Did you load the sct script from my first post via a trigger first?

 

Generally a good idea is to use:

Mission Start>Time Less than 10>Do Script File(sctv2.lua)

This loads the script for future scripts to be able to utilize it.

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

Link to comment
Share on other sites

Yes I load both Mist and the first's post script with a ''Time more than 1'' trigger.

I will try again loading them separate with the time less than 10 :thumbup:

 

EDIT : It worked now!!! Thanks a lot! I had both Mist and sctv2 in the same trigger.That should be the problem :doh:


Edited by gregzagk

"ARGO" DCS UH-1H DLC SP Campaign

373vFS DCS World squadron (Greece) - www.buddyspike.net

"ARGO 2.0 Project Phoenix" UH-1H DLC Campaign - WIP

Link to comment
Share on other sites

Mist MUST load before sct does as sct requires mist. You should be able to put em on the same trigger as long as mist is above sct in the actions list. Either way you set it up, I'm glad you got it working. Have fun with endless Eagles to try and kill :)

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

Link to comment
Share on other sites

I don't know HiJack if scripts can break track replay-ability. I wouldn't be shocked if script commands aren't recorded on tracks. What sort of problems were you having?

No problems Grimes, but I know that tracks easely can break if mods is used on the server. But this is not tested with this, it was just a question.

Link to comment
Share on other sites

Have been playing with this one to re-spawn tankers in a mission.

Basically working fine, but 2 things showed up:

 

- I have 2 tankers, Shell and Texaco, if I let them re-spawn, they'll end up with the same name in the tanker radio menu . Looks like the re-spawning object always takes the same namein the radio menu as an object that is currently active.

 

-The altitude of the the res-pawning object is not the altitude as set on the original unit. It takes a "default" of around 6500 feet.

dUJOta.jpg

 

Windows 11 | i9 12900KF | 64GB DDR4 | RTX 3090 | TM Warthog HOTAS | Saitek Combat Rudder Pedals | TM MFDs + Lilliput 8" | TIR5 Pro

Link to comment
Share on other sites

Aircraft respawning needs a little bit of work. Including adding in callsign support and properly implementing their waypoint on spawn.

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

Link to comment
Share on other sites

EDIT: Sorry, I just discovered that what I want is fully supported in the SCT2 plugin for MIST.

 

Thanks again Grimes!


Edited by chromium

ChromiumDis.png

Author of DSMC, mod to enable scenario persistency and save updated miz file

Stable version & site: https://dsmcfordcs.wordpress.com/

Openbeta: https://github.com/Chromium18/DSMC

 

The thing is, helicopters are different from planes. An airplane by it's nature wants to fly, and if not interfered with too strongly by unusual events or by a deliberately incompetent pilot, it will fly. A helicopter does not want to fly. It is maintained in the air by a variety of forces in opposition to each other, and if there is any disturbance in this delicate balance the helicopter stops flying; immediately and disastrously.

Link to comment
Share on other sites

Obvious suggestions that obviously you already thought at, for sct.cloneInZone:

 

1. make the "cloned group" a table, and randomly choose by the table entry the group to be cloned (as for zones table for spawning positions);

 

2. make landclass restriction for valid position of spawning (land or shallow waters, and inside/outside towns and forest);

 

3. make terrain slope restriction for valid position of spawning (es. less than 20°, or similar).

 

Thanks for your work, it is impressive!

ChromiumDis.png

Author of DSMC, mod to enable scenario persistency and save updated miz file

Stable version & site: https://dsmcfordcs.wordpress.com/

Openbeta: https://github.com/Chromium18/DSMC

 

The thing is, helicopters are different from planes. An airplane by it's nature wants to fly, and if not interfered with too strongly by unusual events or by a deliberately incompetent pilot, it will fly. A helicopter does not want to fly. It is maintained in the air by a variety of forces in opposition to each other, and if there is any disturbance in this delicate balance the helicopter stops flying; immediately and disastrously.

Link to comment
Share on other sites

1. "Spawn random group", thats a good idea! Also might do something to randomize the units position within a group so that a strella won't always be in the same spot.

 

2. Terrain types will work, and it is obviously something that should be part of the script but it isn't yet I don't think. Towns is possible but might be tricky. Forests is impossible as the scripting engine doesn't have access to where trees are.

 

3. Also possible.

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

Link to comment
Share on other sites

Forests is impossible as the scripting engine doesn't have access to where trees are

 

Towns should be less important that forest. About forest, isn't possibile to get info about the "forest" overlay in the mission editor? if you could get it, than it shouldn't be impossibile :)

ChromiumDis.png

Author of DSMC, mod to enable scenario persistency and save updated miz file

Stable version & site: https://dsmcfordcs.wordpress.com/

Openbeta: https://github.com/Chromium18/DSMC

 

The thing is, helicopters are different from planes. An airplane by it's nature wants to fly, and if not interfered with too strongly by unusual events or by a deliberately incompetent pilot, it will fly. A helicopter does not want to fly. It is maintained in the air by a variety of forces in opposition to each other, and if there is any disturbance in this delicate balance the helicopter stops flying; immediately and disastrously.

Link to comment
Share on other sites

The forest overlay in the editor is not 100% accurate, and I don't know if it is even possible to get that data. Thus we must rely on smaller zones + customized polygon zones to define random locations.

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

Link to comment
Share on other sites

understood, It's not that bad to rely on multiple zones or group/polygon zones :). Slope and table-group will do their work anyway in randomizing a fast scenery.

ChromiumDis.png

Author of DSMC, mod to enable scenario persistency and save updated miz file

Stable version & site: https://dsmcfordcs.wordpress.com/

Openbeta: https://github.com/Chromium18/DSMC

 

The thing is, helicopters are different from planes. An airplane by it's nature wants to fly, and if not interfered with too strongly by unusual events or by a deliberately incompetent pilot, it will fly. A helicopter does not want to fly. It is maintained in the air by a variety of forces in opposition to each other, and if there is any disturbance in this delicate balance the helicopter stops flying; immediately and disastrously.

Link to comment
Share on other sites

I've got an idea for next sct or mist functions...

 

Two things occured to me when thinking about an ongoing campaign -

1. At the moment we have a problem running continues campaigns, the current option of doing several preplannes mission with preplanned objects is not completely accurate with how the previous mission has ended to aay the least.

2. There is no dedicated server that can hold continues missions for more than around 10 hours and be stabe enough.

 

Therefore, would it be possible to add a function that would export to a table the complete aituation of all the objects and reimport them after the next mission loads?

This way we can have an on going campaign dynamically progressive as the last mission.

Link to comment
Share on other sites

the export you call has to rely at least on:

 

- Vehicles & ship position and alive/dead state;

- Airplanes and helicopter alive/dead state (if alive, placed in the airport where they start or land);

- Vehicles properties such as triggered actions. Routes could be canceled IMHO;

- Warehouses fillings and dead/alive situation;

 

But I already ear of those things quiet often: maybe there is no way to get the possibility to save a mission state in a particoular moment, or maybe will be possible in the future.

 

Surely would be fantastic...

ChromiumDis.png

Author of DSMC, mod to enable scenario persistency and save updated miz file

Stable version & site: https://dsmcfordcs.wordpress.com/

Openbeta: https://github.com/Chromium18/DSMC

 

The thing is, helicopters are different from planes. An airplane by it's nature wants to fly, and if not interfered with too strongly by unusual events or by a deliberately incompetent pilot, it will fly. A helicopter does not want to fly. It is maintained in the air by a variety of forces in opposition to each other, and if there is any disturbance in this delicate balance the helicopter stops flying; immediately and disastrously.

Link to comment
Share on other sites

Right now there is none.

 

The way I would think of is Pausing the mission just before reloading the next mission and at that point start running positional scripts for each group, maybe even route if possible? and exporting to a table file, afterwrads the next mission would be loaded (an empty mission) and it would be paused untill all the objects would be spawned back.

 

I'm wondering how much info is it possible to export for a unit/group, if it is possible to export position, route, unit life line & task, then I think it would be possible to do this.

But then again I'm no scripting guru, need answers from someone who knows the scripting engine better.

Link to comment
Share on other sites

It is mostly technically possible, and I've thought a little bit about it, but I'm not 100% sure of the best way to go about doing it. Yes you can get stuff like current position and life, but life doesn't matter as we can only spawn units at 100% life anyways. Besides it would be a sizable undertaking to code and it would be something VERY different from mist. I get that you want such a feature, and I want such a feature, its just not that practical to make. It certainly wouldn't be the same sort of "open and useful" format that Mist and SCT are in. Suffice to say the only context I thought of such script would be built specifically for a mission where the mission itself would be capable of generating all of the needed content with or without an existing "save" file.Think of Domination, Patrol Ops, or Evolution from Arma, but for DCS... (On Station 2: Station Harder) :) But alas that idea is on hold for me as there are more important stuff to finish in the near term. Such as SCTv3+, an Integrated Air Defense System script, and a few other ideas I've been wanting to make.


Edited by Grimes

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

Link to comment
Share on other sites

  • 4 weeks later...

Ok, starting to get some work done with "v3" This will either still be an "addon" to mist or all of sct will get put into the next Mist release. Merging it into mist will likely require a simple find/replace on "sct" with "mist". Of course there is option C where I end up doing both... Aside from it being the original intention, one of the reasons this will probably merged with mist is that this version will modify the mist.DBs and how they are organized. Current train of thought is to dynamically update all of the mist.DBs based on what is added/changed. There will also be "static" DBs created of all of the mission editor added groups.

 

The main focus of this update is to improve existing code and add some new features. In terms of new stuff I am getting into some fun utilities for randomization and group modification. For instance I have functions which will join two or more groups together and split a given group apart. The idea is to have a little more flexibility of a group at runtime. It is VERY important to note that there is a significant drawback to (the only way) I have scripted it. Basically it spawns an entirely new group, thus all health and ammunition will be resupplied to each alive unit.

 

I am also playing around with some functions to randomize a groups composition by switching the order of units around, randomly switching spawn positions and tasks with other groups, and a group composition builder tool. I'm still debating on the best way to implement that last one, but right now the idea is to send a table of valid unit types in multiple entries and it will randomly create the group. For example:

 

sct.buildGroupTypes({{T-72, T-55}, {BMP-1, T-55}}, 4)

 

Basically it would randomly pick between a T-72 or T-55 4 times, and then it will randomly pick between a BMP-1 or T-55 4 times. Thus you will get a group of 8. I may implement multiple ways to build a random unit table.

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...