Jump to content

DCS-SimpleSlotBlock - Multiplayer Slot Blocking Script


Recommended Posts

  • 1 month later...
  • Replies 110
  • Created
  • Last Reply

Top Posters In This Topic

@Ciribob,

 

When would the next iteration of SimpleSlotBlocker be released? I, like others, lost the ability to block slots after all the recent OpenBeta updates. This is an excellent script and would like to continue using it on my squadron's multiplayer map. Thank you for all the work put into making this script!

Link to comment
Share on other sites

On 5/13/2021 at 6:16 AM, gunterlund21 said:

will this script dynamic block slots for aircraft that have been shot down?

 

Possibly check out Ciribob's CSAR (or moreso - I think it's part of MOOSE now). I think it contained the functionality with SSB to block units that had been shot down until after they were rescued again.


Edited by Dangerzone
Link to comment
Share on other sites

  • 4 months later...

Trying to use slot blocker to block the slot when a plane is dead. i tried using the on Dead event. The problem is if you have multiple aircraft to choose from and you go into it. Then exit out of it to choose a different plane.  It thinks you're dead and blocks the slot of the plane you just left. Any way to prevent that?


Edited by gunterlund21

I was in Art of the Kill D#@ it!!!!

Link to comment
Share on other sites

1 hour ago, cfrag said:

Although not a perfect solution, try using the 'crash' event instead - as that probably is closer to what you want: block planes that have been destroyed.

Thanks Cfrag... I dont see that as a trigger condition. How would I do that in the editor

I was in Art of the Kill D#@ it!!!!

Link to comment
Share on other sites

19 minutes ago, gunterlund21 said:

Thanks Cfrag... I dont see that as a trigger condition. How would I do that in the editor

My apologies - 'dead event' suggested to me that you were using Lua. ME does not offer a Unit Crashed condition. You'll have to use a script and subscribe to the crash event, then filter for the planes that you are looking for and then set the SSB flag accordingly.

Link to comment
Share on other sites

21 hours ago, gunterlund21 said:

Thanks Cfrag... I dont see that as a trigger condition. How would I do that in the editor

OK, here's a script that does this for you. Simply create a MISSION START trigger and add a DOSCRIPT action with below code. It's bare-bones, and when the player plane crashes, the slot is blocked. 

IMPORTANT:
Due to the way SSB works, the player is immediately kicked. If you did not disable ssb.kickReset, then the slot will immediately be re-opened. So be sure to set

ssb.kickReset = false

in ssb, or the script will not work!

 

@Ciribob - perhaps it would be a good idea to read those config details like kickPlayers and kickReset from named userFlags as well? That way missions can change this with no need to restart the server. I've forked SSB's code to regularly read those values from the mission if userFlag "useSSBMissionConfig" is <> 0.

 

Ok, here's the script

cfxSSBSingleUse = {}
cfxSSBSingleUse.version = "1.0.0"

--[[--
Version History
	1.0.0 - Initial version
	
WHAT IT IS
SSB Single Use is a script that blocks a player slot
after that plane crashes. 

--]]--

cfxSSBSingleUse.enabledFlagValue = 0 -- DO NOT CHANGE, MUST MATCH SSB 
cfxSSBSingleUse.disabledFlagValue = cfxSSBSingleUse.enabledFlagValue + 100 -- DO NOT CHANGE

function cfxSSBSingleUse:onEvent(event)
	if not event then return end 
	if not event.id then return end 
	if not event.initiator then return end 
	-- if we get here, initiator is set
	if event.id == 5 then -- S_EVENT_CRASH
		local theUnit = event.initiator -- we know this exists
		local theGroup = theUnit:getGroup()
		if not theGroup then return end 
		local gName = theGroup:getName()
		if not gName then return end 
		-- block this slot. Will kick. Disable kickReset in SSB!!!
		trigger.action.setUserFlag(gName, cfxSSBSingleUse.disabledFlagValue)
		trigger.action.outText("+++singleUse: blocked <" .. gName .. ">", 30)
	end
end

function cfxSSBSingleUse.start()
	-- install event monitor 
	world.addEventHandler(cfxSSBSingleUse)
	-- turn on ssb 
	trigger.action.setUserFlag("SSB",100)
	trigger.action.outText("SSB Single use v" .. cfxSSBSingleUse.version .. " running", 30)
end

-- let's go!
cfxSSBSingleUse.start()

Here's a demo mission with three frogger-T that each get blocked after a crash. remember to turn off kick-reset in SSB before you start DCS.

ssbSingleUnseDemo.miz

 


Edited by cfrag
Link to comment
Share on other sites

  • 4 months later...
  • 2 weeks later...
On 4/27/2022 at 6:35 PM, Killg0re NL said:

i recon the slot blocker is still broken?

Definitely not broken - its in use on multiple servers without issue

 

Make sure you have the latest version

Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD

CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup

Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script

 

Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :)

DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord

Link to comment
Share on other sites

On 5/7/2022 at 10:57 AM, Ciribob said:

Definitely not broken - its in use on multiple servers without issue

 

Make sure you have the latest version

Yeah got it working, even got it starting when not enabled in the mission.
Is there a way the UCID's can be exported to i.e. to a separated file SSB_UCID.log?

Link to comment
Share on other sites

  • 10 months later...

I am not able to get the SlotBlock to work. I have copied the newest available file and put into the scripts/hooks folder. I have configured the loading of the SlotBlock with setting the SSB flag to 100, as described in the tutorials. When I disable the slot, I can see that there's a message that the slot is no longer available, however, if I move to spectators, and back to the slot, the slot is still available. 

What am I doing wrong?

 

I am also testing using Multi Player server.


Edited by Hotshot 338th
Link to comment
Share on other sites

6 hours ago, Hotshot 338th said:

What am I doing wrong?

Maybe it's merely a mis-interpretation of what SSB does. All slots, even the disabled ones, will still show up, and you can select them. But you can't enter the game. 

Are you still able to enter the game, or are you merely wondering why the slot is still available?

Also - and I see that you do this on MP, so you are doing it correctly - I want to mention again that SSB only works in MP, and SSB must be in the hooks folder of the server, not client.

Finally, if you kick a player, that slot automatically gets re-opened when kickReset is set to true, maybe worth remembering when you test SSB by kicking yourself.

 

Link to comment
Share on other sites

I am new to ME. Just curious to know if this could some how be used to stop a person from getting into an air frame that is at a base NOT owned by their coalition. I have done a lot of searching for this info, but not finding anything. Any help much appreciated!

Link to comment
Share on other sites

  • 3 weeks later...

Ok, i have a mission with a large number of roadbases, the issue im having is that every roadbase has 2 spawn positions and every type of aircraft can spawn at either of the two. im sure you can see where im going with this, im wondering if i disable a slot with this script will it kick the player currently in that slot?

 

Link to comment
Share on other sites

@commiccannon,

Slot blocker should be able to handle multiple road bases.

For example, I define this group of slots as a fail safe point in one of my slot blocker tables:

--Blue Special Slots
blueSlotUnlockerTable.FARP_Dublin_Spare1 = {"AH-64D FARP DUBLIN-1 *SPARE*"}

Then, I have a ME trigger that turns on that spawn point after specific conditions are met. In this instance, a group called AH-64D FARP Dublin-1 flies into a trigger zone. Afterwards, Apache spare slots become available in case of accidents.

Based on my experience, it is wise to automatically lock all unnecessary slots at mission start. Then you can control which slots can be unlocked as a mission progresses. This can be done through ME triggers.

Does that help?

Link to comment
Share on other sites

What are the 2 spawn points you mentioned - one for Blue and second for Red slots?

I believe that is a function of the Slot Blocker. For example, my base capture map has a bunch of Red Client slots. When a Red base is captured, the slot blocker script will shut off Red slots & turn on Blue slots. If a Red client is airborne then that aircraft is deactivated. That is to say, a player is flying along then suddenly will see the F2 (next plane) view.

Link to comment
Share on other sites

So to more explain the situation, each road base can handle 2 aircraft, however because i wish to have many different aircraft i have F14-1 and F14-2 spawning in slot 1 and slot 2 respectfully, i also have Av8b-1 and Av8b-2 also spawning in slots 1 and 2 respectfully, what im trying to do is if someone is in the location of spawn 1, (whether its a client meant to spawn there or someone landing there) i need to stop anyone else spawning in a slot 1 aircraft otherwise they spawn in the same location and the result is explosive

Link to comment
Share on other sites

1 hour ago, commiccannon said:

So to more explain the situation, each road base can handle 2 aircraft, however because i wish to have many different aircraft i have F14-1 and F14-2 spawning in slot 1 and slot 2 respectfully, i also have Av8b-1 and Av8b-2 also spawning in slots 1 and 2 respectfully, what im trying to do is if someone is in the location of spawn 1, (whether its a client meant to spawn there or someone landing there) i need to stop anyone else spawning in a slot 1 aircraft otherwise they spawn in the same location and the result is explosive

Slot blocker is what you want. If used for blocking slots (which is what you are saying you want to do) it will block the slot from being accessed at the time it is selected. If the player already has that slot - it will not kick them from the aircraft.

I have used slotblocker in missions where the airfield can be captured by the opposition. This doesn't immediately kick players out of their slot that spawned in an aircraft there - but it will stop them from selecting another slot, or from respawning back if they happen to die, forcing them to choose another slot.


Edited by Dangerzone
Link to comment
Share on other sites

Hey, just did some testing and when i trigger a slot blocking it kicks whoever is in that slot, is this a config option or am i missing something? Attached is the test mission, Always blocked is well always blocked, works as expected, the sometimes blocked should be blocked when the someone is in the never blocked aircrafts spawn location

Test3.miz

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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