--script to generate ground units on F-10 menu request --8 red or blue ground vehicle groups act as templates, which can be cloned on the original location or in one of the corresponding triggerzones --these template groups must have the following format: --1st Unit in the group must be named "__bluetemplategroup1" to "..8" or "__redtemplategroup1" to "..8" depending on the side --the groupname of the template group, should have a name which reflects the purpose of the group, since this name will also be displayed in the F-10 options --different compositions of ground vehicle groups can be generated in one of the corresponding trigger zones do --define names of units, which player can occupy for training local BlueGroundcommanderUnitName = "Blue General" local RedGroundcommanderUnitName = "Red General" local BlueGroundTemplateUnitname = "__1stUnitBlueTemplateGroup" -- This must be the name of the FIRST UNIT in the template group on blue side local RedGroundTemplateUnitname = "__1stUnitRedTemplateGroup" -- This must be the name of the FIRST UNIT in the template group on red side local Bluesupplyzonename1 = "Blue 1" --must be the name of the triggerzone in which the groups can spawn on blue side local Bluesupplyzonename2 = "Blue 2" local Bluesupplyzonename3 = "Blue 3" local Redsupplyzonename1 = "Red 1"--must be the name of the triggerzone in which the groups can spawn on red side local Redsupplyzonename2 = "Red 2" local Redsupplyzonename3 = "Red 3" local maxnumberoftemplategroup1 = 2 --defines limit of groups, which can be generated local maxnumberoftemplategroup2 = 2 local maxnumberoftemplategroup3 = 2 local maxnumberoftemplategroup4 = 2 local maxnumberoftemplategroup5 = 2 local maxnumberoftemplategroup6 = 2 local maxnumberoftemplategroup7 = 2 local maxnumberoftemplategroup8 = 2 local maxnumberofrecongroups = 4 local maxnumberofarmorgroups = 1 local maxnumberofIFVgroups = 2 local maxnumberofSupportgroups = 1 local maxnumberofMInfgroups = 2 local maxnumberofSHORADgroups = 1 --------------------------------DO NOT EDIT BELOW-------------------------------------------------- --xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx bluetemplategroupcounter1 = 0 bluetemplategroupcounter2 = 0 bluetemplategroupcounter3 = 0 bluetemplategroupcounter4 = 0 bluetemplategroupcounter5 = 0 bluetemplategroupcounter6 = 0 bluetemplategroupcounter7 = 0 bluetemplategroupcounter8 = 0 redtemplategroupcounter1 = 0 redtemplategroupcounter2 = 0 redtemplategroupcounter3 = 0 redtemplategroupcounter4 = 0 redtemplategroupcounter5 = 0 redtemplategroupcounter6 = 0 redtemplategroupcounter7 = 0 redtemplategroupcounter8 = 0 local bluetemplategroupname1 = Group.getName(Unit.getGroup(Unit.getByName(BlueGroundTemplateUnitname..string.format(1)))) local bluetemplategroupname2 = Group.getName(Unit.getGroup(Unit.getByName(BlueGroundTemplateUnitname..string.format(2)))) local bluetemplategroupname3 = Group.getName(Unit.getGroup(Unit.getByName(BlueGroundTemplateUnitname..string.format(3)))) local bluetemplategroupname4 = Group.getName(Unit.getGroup(Unit.getByName(BlueGroundTemplateUnitname..string.format(4)))) local bluetemplategroupname5 = Group.getName(Unit.getGroup(Unit.getByName(BlueGroundTemplateUnitname..string.format(5)))) local bluetemplategroupname6 = Group.getName(Unit.getGroup(Unit.getByName(BlueGroundTemplateUnitname..string.format(6)))) local bluetemplategroupname7 = Group.getName(Unit.getGroup(Unit.getByName(BlueGroundTemplateUnitname..string.format(7)))) local bluetemplategroupname8 = Group.getName(Unit.getGroup(Unit.getByName(BlueGroundTemplateUnitname..string.format(8)))) local redtemplategroupname1 = Group.getName(Unit.getGroup(Unit.getByName(RedGroundTemplateUnitname..string.format(1)))) local redtemplategroupname2 = Group.getName(Unit.getGroup(Unit.getByName(RedGroundTemplateUnitname..string.format(2)))) local redtemplategroupname3 = Group.getName(Unit.getGroup(Unit.getByName(RedGroundTemplateUnitname..string.format(3)))) local redtemplategroupname4 = Group.getName(Unit.getGroup(Unit.getByName(RedGroundTemplateUnitname..string.format(4)))) local redtemplategroupname5 = Group.getName(Unit.getGroup(Unit.getByName(RedGroundTemplateUnitname..string.format(5)))) local redtemplategroupname6 = Group.getName(Unit.getGroup(Unit.getByName(RedGroundTemplateUnitname..string.format(6)))) local redtemplategroupname7 = Group.getName(Unit.getGroup(Unit.getByName(RedGroundTemplateUnitname..string.format(7)))) local redtemplategroupname8 = Group.getName(Unit.getGroup(Unit.getByName(RedGroundTemplateUnitname..string.format(8)))) recontable = {} recontable["Russian"] = {} recontable["USA"] = {} armortable = {} armortable["Russian"] = {} armortable["USA"] = {} IFVtable = {} IFVtable["Russian"] = {} IFVtable["USA"] = {} Supporttable = {} Supporttable["Russian"] = {} Supporttable["USA"] = {} MInftable = {} MInftable["Russian"] = {} MInftable["USA"] = {} SHORADtable = {} SHORADtable["Russian"] = {} SHORADtable["USA"] = {} local getallgroundcommandervehicle = {} world.addEventHandler(getallgroundcommandervehicle) function getallgroundcommandervehicle:onEvent(event) if event.id == world.event.S_EVENT_BIRTH--_ENGINE_STARTUP--S_EVENT_PLAYER_ENTER_UNIT then local eventinitiatorunit = event.initiator local eventinitiatorunitname = eventinitiatorunit:getName() if Unit.getByName(eventinitiatorunitname) ~=nil and Unit.getPlayerName(eventinitiatorunit) ~= nil then local actualunitname = eventinitiatorunitname local actualunit = Unit.getByName(actualunitname) local actualunittypename = actualunit:getTypeName() local actualunitcoalition = actualunit:getCoalition() if actualunitcoalition == 2 and actualunitname == BlueGroundcommanderUnitName then local actualGroup = actualunit:getGroup() local _actualGroupidOfGeneral = actualGroup:getID() --xxxxxxxxxxxxxxxxxxxx at original position missionCommands.removeItemForGroup(_actualGroupidOfGeneral, {"Activate a Template Group"}) missionCommands.addSubMenuForGroup(_actualGroupidOfGeneral, "Activate a Template Group", nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname1, {"Activate a Template Group"}, BlueTemplateGroup1, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname2, {"Activate a Template Group"}, BlueTemplateGroup2, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname3, {"Activate a Template Group"}, BlueTemplateGroup3, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname4, {"Activate a Template Group"}, BlueTemplateGroup4, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname5, {"Activate a Template Group"}, BlueTemplateGroup5, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname6, {"Activate a Template Group"}, BlueTemplateGroup6, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname7, {"Activate a Template Group"}, BlueTemplateGroup7, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname8, {"Activate a Template Group"}, BlueTemplateGroup8, nil) --xxxxxxxxxxxxxxxxxxxxxx at triggerzone 1 missionCommands.removeItemForGroup(_actualGroupidOfGeneral, {"Generate Template group in "..Bluesupplyzonename1}) missionCommands.addSubMenuForGroup(_actualGroupidOfGeneral, "Generate Template group in "..Bluesupplyzonename1, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname1, {"Generate Template group in "..Bluesupplyzonename1}, BlueTemplateGroup1, Bluesupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname2, {"Generate Template group in "..Bluesupplyzonename1}, BlueTemplateGroup2, Bluesupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname3, {"Generate Template group in "..Bluesupplyzonename1}, BlueTemplateGroup3, Bluesupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname4, {"Generate Template group in "..Bluesupplyzonename1}, BlueTemplateGroup4, Bluesupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname5, {"Generate Template group in "..Bluesupplyzonename1}, BlueTemplateGroup5, Bluesupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname6, {"Generate Template group in "..Bluesupplyzonename1}, BlueTemplateGroup6, Bluesupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname7, {"Generate Template group in "..Bluesupplyzonename1}, BlueTemplateGroup7, Bluesupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname8, {"Generate Template group in "..Bluesupplyzonename1}, BlueTemplateGroup8, Bluesupplyzonename1) missionCommands.removeItemForGroup(_actualGroupidOfGeneral, {"Generate random group in "..Bluesupplyzonename1}) missionCommands.addSubMenuForGroup(_actualGroupidOfGeneral, "Generate random group in "..Bluesupplyzonename1, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random RECON group", {"Generate random group in "..Bluesupplyzonename1}, BlueReconGroup, Bluesupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random ARMOR group", {"Generate random group in "..Bluesupplyzonename1}, BlueArmorGroup, Bluesupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random IFV group", {"Generate random group in "..Bluesupplyzonename1}, BlueIFVGroup, Bluesupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random SUPPORT group", {"Generate random group in "..Bluesupplyzonename1}, BlueSupportGroup, Bluesupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random INFANTRY group", {"Generate random group in "..Bluesupplyzonename1}, BlueInfGroup, Bluesupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random SHORAD group", {"Generate random group in "..Bluesupplyzonename1}, BlueSHORADGroup, Bluesupplyzonename1) --xxxxxxxxxxxxxxxxxxxxxx at triggerzone 2 missionCommands.removeItemForGroup(_actualGroupidOfGeneral, {"Generate Template group in "..Bluesupplyzonename2}) missionCommands.addSubMenuForGroup(_actualGroupidOfGeneral, "Generate Template group in "..Bluesupplyzonename2, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname1, {"Generate Template group in "..Bluesupplyzonename2}, BlueTemplateGroup1, Bluesupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname2, {"Generate Template group in "..Bluesupplyzonename2}, BlueTemplateGroup2, Bluesupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname3, {"Generate Template group in "..Bluesupplyzonename2}, BlueTemplateGroup3, Bluesupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname4, {"Generate Template group in "..Bluesupplyzonename2}, BlueTemplateGroup4, Bluesupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname5, {"Generate Template group in "..Bluesupplyzonename2}, BlueTemplateGroup5, Bluesupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname6, {"Generate Template group in "..Bluesupplyzonename2}, BlueTemplateGroup6, Bluesupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname7, {"Generate Template group in "..Bluesupplyzonename2}, BlueTemplateGroup7, Bluesupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname8, {"Generate Template group in "..Bluesupplyzonename2}, BlueTemplateGroup8, Bluesupplyzonename2) missionCommands.removeItemForGroup(_actualGroupidOfGeneral, {"Generate random group in "..Bluesupplyzonename2}) missionCommands.addSubMenuForGroup(_actualGroupidOfGeneral, "Generate random group in "..Bluesupplyzonename2, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random RECON group", {"Generate random group in "..Bluesupplyzonename2}, BlueReconGroup, Bluesupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random ARMOR group", {"Generate random group in "..Bluesupplyzonename2}, BlueArmorGroup, Bluesupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random IFV group", {"Generate random group in "..Bluesupplyzonename2}, BlueIFVGroup, Bluesupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random SUPPORT group", {"Generate random group in "..Bluesupplyzonename2}, BlueSupportGroup, Bluesupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random INFANTRY group", {"Generate random group in "..Bluesupplyzonename2}, BlueInfGroup, Bluesupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random SHORAD group", {"Generate random group in "..Bluesupplyzonename2}, BlueSHORADGroup, Bluesupplyzonename2) --xxxxxxxxxxxxxxxxxxxxxx at triggerzone 3 missionCommands.removeItemForGroup(_actualGroupidOfGeneral, {"Generate Template group in "..Bluesupplyzonename3}) missionCommands.addSubMenuForGroup(_actualGroupidOfGeneral, "Generate Template group in "..Bluesupplyzonename3, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname1, {"Generate Template group in "..Bluesupplyzonename3}, BlueTemplateGroup1, Bluesupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname2, {"Generate Template group in "..Bluesupplyzonename3}, BlueTemplateGroup2, Bluesupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname3, {"Generate Template group in "..Bluesupplyzonename3}, BlueTemplateGroup3, Bluesupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname4, {"Generate Template group in "..Bluesupplyzonename3}, BlueTemplateGroup4, Bluesupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname5, {"Generate Template group in "..Bluesupplyzonename3}, BlueTemplateGroup5, Bluesupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname6, {"Generate Template group in "..Bluesupplyzonename3}, BlueTemplateGroup6, Bluesupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname7, {"Generate Template group in "..Bluesupplyzonename3}, BlueTemplateGroup7, Bluesupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..bluetemplategroupname8, {"Generate Template group in "..Bluesupplyzonename3}, BlueTemplateGroup8, Bluesupplyzonename3) missionCommands.removeItemForGroup(_actualGroupidOfGeneral, {"Generate random group in "..Bluesupplyzonename3}) missionCommands.addSubMenuForGroup(_actualGroupidOfGeneral, "Generate random group in "..Bluesupplyzonename3, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random RECON group", {"Generate random group in "..Bluesupplyzonename3}, BlueReconGroup, Bluesupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random ARMOR group", {"Generate random group in "..Bluesupplyzonename3}, BlueArmorGroup, Bluesupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random IFV group", {"Generate random group in "..Bluesupplyzonename3}, BlueIFVGroup, Bluesupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random SUPPORT group", {"Generate random group in "..Bluesupplyzonename3}, BlueSupportGroup, Bluesupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random INFANTRY group", {"Generate random group in "..Bluesupplyzonename3}, BlueInfGroup, Bluesupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random SHORAD group", {"Generate random group in "..Bluesupplyzonename3}, BlueSHORADGroup, Bluesupplyzonename3) end if actualunitcoalition == 1 and actualunitname == RedGroundcommanderUnitName then local actualGroup = actualunit:getGroup() local _actualGroupidOfGeneral = actualGroup:getID() --xxxxxxxxxxxxxxxxxxxx at original position missionCommands.removeItemForGroup(_actualGroupidOfGeneral, {"Activate a Template Group"}) missionCommands.addSubMenuForGroup(_actualGroupidOfGeneral, "Activate a Template Group", nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname1, {"Activate a Template Group"}, RedTemplateGroup1, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname2, {"Activate a Template Group"}, RedTemplateGroup2, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname3, {"Activate a Template Group"}, RedTemplateGroup3, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname4, {"Activate a Template Group"}, RedTemplateGroup4, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname5, {"Activate a Template Group"}, RedTemplateGroup5, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname6, {"Activate a Template Group"}, RedTemplateGroup6, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname7, {"Activate a Template Group"}, RedTemplateGroup7, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname8, {"Activate a Template Group"}, RedTemplateGroup8, nil) --xxxxxxxxxxxxxxxxxxxxxx at triggerzone 1 missionCommands.removeItemForGroup(_actualGroupidOfGeneral, {"Generate Template group in "..Redsupplyzonename1}) missionCommands.addSubMenuForGroup(_actualGroupidOfGeneral, "Generate Template group in "..Redsupplyzonename1, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname1, {"Generate Template group in "..Redsupplyzonename1}, RedTemplateGroup1, Redsupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname2, {"Generate Template group in "..Redsupplyzonename1}, RedTemplateGroup2, Redsupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname3, {"Generate Template group in "..Redsupplyzonename1}, RedTemplateGroup3, Redsupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname4, {"Generate Template group in "..Redsupplyzonename1}, RedTemplateGroup4, Redsupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname5, {"Generate Template group in "..Redsupplyzonename1}, RedTemplateGroup5, Redsupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname6, {"Generate Template group in "..Redsupplyzonename1}, RedTemplateGroup6, Redsupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname7, {"Generate Template group in "..Redsupplyzonename1}, RedTemplateGroup7, Redsupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname8, {"Generate Template group in "..Redsupplyzonename1}, RedTemplateGroup8, Redsupplyzonename1) missionCommands.removeItemForGroup(_actualGroupidOfGeneral, {"Generate random group in "..Redsupplyzonename1}) missionCommands.addSubMenuForGroup(_actualGroupidOfGeneral, "Generate random group in "..Redsupplyzonename1, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random RECON group", {"Generate random group in "..Redsupplyzonename1}, RedReconGroup, Redsupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random ARMOR group", {"Generate random group in "..Redsupplyzonename1}, RedArmorGroup, Redsupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random IFV group", {"Generate random group in "..Redsupplyzonename1}, RedIFVGroup, Redsupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random SUPPORT group", {"Generate random group in "..Redsupplyzonename1}, RedSupportGroup, Redsupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random INFANTRY group", {"Generate random group in "..Redsupplyzonename1}, RedInfGroup, Redsupplyzonename1) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random SHORAD group", {"Generate random group in "..Redsupplyzonename1}, RedSHORADGroup, Redsupplyzonename1) --xxxxxxxxxxxxxxxxxxxxxx at triggerzone 2 missionCommands.removeItemForGroup(_actualGroupidOfGeneral, {"Generate Template group in "..Redsupplyzonename2}) missionCommands.addSubMenuForGroup(_actualGroupidOfGeneral, "Generate Template group in "..Redsupplyzonename2, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname1, {"Generate Template group in "..Redsupplyzonename2}, RedTemplateGroup1, Redsupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname2, {"Generate Template group in "..Redsupplyzonename2}, RedTemplateGroup2, Redsupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname3, {"Generate Template group in "..Redsupplyzonename2}, RedTemplateGroup3, Redsupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname4, {"Generate Template group in "..Redsupplyzonename2}, RedTemplateGroup4, Redsupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname5, {"Generate Template group in "..Redsupplyzonename2}, RedTemplateGroup5, Redsupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname6, {"Generate Template group in "..Redsupplyzonename2}, RedTemplateGroup6, Redsupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname7, {"Generate Template group in "..Redsupplyzonename2}, RedTemplateGroup7, Redsupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname8, {"Generate Template group in "..Redsupplyzonename2}, RedTemplateGroup8, Redsupplyzonename2) missionCommands.removeItemForGroup(_actualGroupidOfGeneral, {"Generate random group in "..Redsupplyzonename2}) missionCommands.addSubMenuForGroup(_actualGroupidOfGeneral, "Generate random group in "..Redsupplyzonename2, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random RECON group", {"Generate random group in "..Redsupplyzonename2}, RedReconGroup, Redsupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random ARMOR group", {"Generate random group in "..Redsupplyzonename2}, RedArmorGroup, Redsupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random IFV group", {"Generate random group in "..Redsupplyzonename2}, RedIFVGroup, Redsupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random SUPPORT group", {"Generate random group in "..Redsupplyzonename2}, RedSupportGroup, Redsupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random INFANTRY group", {"Generate random group in "..Redsupplyzonename2}, RedInfGroup, Redsupplyzonename2) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random SHORAD group", {"Generate random group in "..Redsupplyzonename2}, RedSHORADGroup, Redsupplyzonename2) --xxxxxxxxxxxxxxxxxxxxxx at triggerzone 3 missionCommands.removeItemForGroup(_actualGroupidOfGeneral, {"Generate Template group in "..Redsupplyzonename3}) missionCommands.addSubMenuForGroup(_actualGroupidOfGeneral, "Generate Template group in "..Redsupplyzonename3, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname1, {"Generate Template group in "..Redsupplyzonename3}, RedTemplateGroup1, Redsupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname2, {"Generate Template group in "..Redsupplyzonename3}, RedTemplateGroup2, Redsupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname3, {"Generate Template group in "..Redsupplyzonename3}, RedTemplateGroup3, Redsupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname4, {"Generate Template group in "..Redsupplyzonename3}, RedTemplateGroup4, Redsupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname5, {"Generate Template group in "..Redsupplyzonename3}, RedTemplateGroup5, Redsupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname6, {"Generate Template group in "..Redsupplyzonename3}, RedTemplateGroup6, Redsupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname7, {"Generate Template group in "..Redsupplyzonename3}, RedTemplateGroup7, Redsupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn "..redtemplategroupname8, {"Generate Template group in "..Redsupplyzonename3}, RedTemplateGroup8, Redsupplyzonename3) missionCommands.removeItemForGroup(_actualGroupidOfGeneral, {"Generate random group in "..Redsupplyzonename3}) missionCommands.addSubMenuForGroup(_actualGroupidOfGeneral, "Generate random group in "..Redsupplyzonename3, nil) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random RECON group", {"Generate random group in "..Redsupplyzonename3}, RedReconGroup, Redsupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random ARMOR group", {"Generate random group in "..Redsupplyzonename3}, RedArmorGroup, Redsupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random IFV group", {"Generate random group in "..Redsupplyzonename3}, RedIFVGroup, Redsupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random SUPPORT group", {"Generate random group in "..Redsupplyzonename3}, RedSupportGroup, Redsupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random INFANTRY group", {"Generate random group in "..Redsupplyzonename3}, RedInfGroup, Redsupplyzonename3) missionCommands.addCommandForGroup(_actualGroupidOfGeneral, "Spawn random SHORAD group", {"Generate random group in "..Redsupplyzonename3}, RedSHORADGroup, Redsupplyzonename3) end end end end --XXXXXXXXXXXXXX BLUE function BlueTemplateGroup1(zonename) if bluetemplategroupcounter1 < maxnumberoftemplategroup1 then local actualspawnzonename = zonename local actualunitname = BlueGroundTemplateUnitname..string.format(1) local actualgroupname = Group.getName(Unit.getGroup(Unit.getByName(actualunitname))) if actualspawnzonename == nil then mist.cloneGroup(actualgroupname, true) else mist.cloneInZone(actualgroupname, actualspawnzonename, true, 300) end bluetemplategroupcounter1 = bluetemplategroupcounter1 + 1 trigger.action.outTextForCoalition(2, actualgroupname.." was generated at inital position.\nGenerated: "..string.format(bluetemplategroupcounter1).." of "..string.format(maxnumberoftemplategroup1), 10) else trigger.action.outTextForCoalition(2, "No more ressources available. Try another group!", 10) end end function BlueTemplateGroup2(zonename) if bluetemplategroupcounter2 < maxnumberoftemplategroup2 then local actualspawnzonename = zonename local actualunitname = BlueGroundTemplateUnitname..string.format(2) local actualgroupname = Group.getName(Unit.getGroup(Unit.getByName(actualunitname))) if actualspawnzonename == nil then mist.cloneGroup(actualgroupname, true) else mist.cloneInZone(actualgroupname, actualspawnzonename, true, 300) end bluetemplategroupcounter2 = bluetemplategroupcounter2 + 1 trigger.action.outTextForCoalition(2, actualgroupname.." was generated at inital position.\nGenerated: "..string.format(bluetemplategroupcounter2).." of "..string.format(maxnumberoftemplategroup2), 10) else trigger.action.outTextForCoalition(2, "No more ressources available. Try another group!", 10) end end function BlueTemplateGroup3(zonename) if bluetemplategroupcounter3 < maxnumberoftemplategroup3 then local actualspawnzonename = zonename local actualunitname = BlueGroundTemplateUnitname..string.format(3) local actualgroupname = Group.getName(Unit.getGroup(Unit.getByName(actualunitname))) if actualspawnzonename == nil then mist.cloneGroup(actualgroupname, true) else mist.cloneInZone(actualgroupname, actualspawnzonename, true, 300) end bluetemplategroupcounter3 = bluetemplategroupcounter3 + 1 trigger.action.outTextForCoalition(2, actualgroupname.." was generated at inital position.\nGenerated: "..string.format(bluetemplategroupcounter3).." of "..string.format(maxnumberoftemplategroup3), 10) else trigger.action.outTextForCoalition(2, "No more ressources available. Try another group!", 10) end end function BlueTemplateGroup4(zonename) if bluetemplategroupcounter4 < maxnumberoftemplategroup4 then local actualspawnzonename = zonename local actualunitname = BlueGroundTemplateUnitname..string.format(4) local actualgroupname = Group.getName(Unit.getGroup(Unit.getByName(actualunitname))) if actualspawnzonename == nil then mist.cloneGroup(actualgroupname, true) else mist.cloneInZone(actualgroupname, actualspawnzonename, true, 300) end bluetemplategroupcounter4 = bluetemplategroupcounter4 + 1 trigger.action.outTextForCoalition(2, actualgroupname.." was generated at inital position.\nGenerated: "..string.format(bluetemplategroupcounter4).." of "..string.format(maxnumberoftemplategroup4), 10) else trigger.action.outTextForCoalition(2, "No more ressources available. Try another group!", 10) end end function BlueTemplateGroup5(zonename) if bluetemplategroupcounter5 < maxnumberoftemplategroup5 then local actualspawnzonename = zonename local actualunitname = BlueGroundTemplateUnitname..string.format(5) local actualgroupname = Group.getName(Unit.getGroup(Unit.getByName(actualunitname))) if actualspawnzonename == nil then mist.cloneGroup(actualgroupname, true) else mist.cloneInZone(actualgroupname, actualspawnzonename, true, 300) end bluetemplategroupcounter5 = bluetemplategroupcounter5 + 1 trigger.action.outTextForCoalition(2, actualgroupname.." was generated at inital position.\nGenerated: "..string.format(bluetemplategroupcounter5).." of "..string.format(maxnumberoftemplategroup5), 10) else trigger.action.outTextForCoalition(2, "No more ressources available. Try another group!", 10) end end function BlueTemplateGroup6(zonename) if bluetemplategroupcounter6 < maxnumberoftemplategroup6 then local actualspawnzonename = zonename local actualunitname = BlueGroundTemplateUnitname..string.format(6) local actualgroupname = Group.getName(Unit.getGroup(Unit.getByName(actualunitname))) if actualspawnzonename == nil then mist.cloneGroup(actualgroupname, true) else mist.cloneInZone(actualgroupname, actualspawnzonename, true, 300) end bluetemplategroupcounter6 = bluetemplategroupcounter6 + 1 trigger.action.outTextForCoalition(2, actualgroupname.." was generated at inital position.\nGenerated: "..string.format(bluetemplategroupcounter6).." of "..string.format(maxnumberoftemplategroup6), 10) else trigger.action.outTextForCoalition(2, "No more ressources available. Try another group!", 10) end end function BlueTemplateGroup7(zonename) if bluetemplategroupcounter7 < maxnumberoftemplategroup7 then local actualspawnzonename = zonename local actualunitname = BlueGroundTemplateUnitname..string.format(7) local actualgroupname = Group.getName(Unit.getGroup(Unit.getByName(actualunitname))) if actualspawnzonename == nil then mist.cloneGroup(actualgroupname, true) else mist.cloneInZone(actualgroupname, actualspawnzonename, true, 300) end bluetemplategroupcounter7 = bluetemplategroupcounter7 + 1 trigger.action.outTextForCoalition(2, actualgroupname.." was generated at inital position.\nGenerated: "..string.format(bluetemplategroupcounter7).." of "..string.format(maxnumberoftemplategroup7), 10) else trigger.action.outTextForCoalition(2, "No more ressources available. Try another group!", 10) end end function BlueTemplateGroup8(zonename) if bluetemplategroupcounter8 < maxnumberoftemplategroup8 then local actualspawnzonename = zonename local actualunitname = BlueGroundTemplateUnitname..string.format(8) local actualgroupname = Group.getName(Unit.getGroup(Unit.getByName(actualunitname))) if actualspawnzonename == nil then mist.cloneGroup(actualgroupname, true) else mist.cloneInZone(actualgroupname, actualspawnzonename, true, 300) end bluetemplategroupcounter8 = bluetemplategroupcounter8 + 1 trigger.action.outTextForCoalition(2, actualgroupname.." was generated at inital position.\nGenerated: "..string.format(bluetemplategroupcounter8).." of "..string.format(maxnumberoftemplategroup8), 10) else trigger.action.outTextForCoalition(2, "No more ressources available. Try another group!", 10) end end function BlueReconGroup(zonename) local actualspawnzonename = zonename local zonereconcountry = country.id.USA local side = 'blue' local zonereconname = "US Recon " local nation = "USA" local actualspawnzone = trigger.misc.getZone(actualspawnzonename) actualspawnzonepos = {} local actualspawnzonex = actualspawnzone.point.x local actualspawnzonez = actualspawnzone.point.z zonereconheading = math.random(-20,20)/10*math.pi local zonereconGroupX = actualspawnzonex + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) local zonereconGroupY = actualspawnzonez + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) --trigger.action.outText("spawnrandomIFV 03", 10) zonereconunitcounter = #recontable[nation] --trigger.action.outText(nation.."spawnrandomrecon 1", 10) local nrofReconsingroup = math.random(2,4) local nrofIFVsingroup = math.random(1,2) reconunitstable= {} --trigger.action.outText(nation.."spawnrandomrecon 2a", 10) for i =1, nrofReconsingroup do reconunitstable[i] = { ["y"] = zonereconGroupY + math.random(10,100), ["type"] = rScout(side), ["name"] = zonereconname..string.format(zonereconunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zonereconheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zonereconGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomrecon 3", 10) for i = nrofReconsingroup + 1, nrofReconsingroup + nrofIFVsingroup do reconunitstable[i] = { ["y"] = zonereconGroupY + math.random(10,100), ["type"] = rIFV(side), ["name"] = zonereconname..string.format(zonereconunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zonereconheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zonereconGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomrecon 4", 10) --trigger.action.outText(nation.."spawnrandomrecon 6", 10) local zonerecondata = { ["visible"] = false, ["groupId"] = math.random(10000,100000), ["taskSelected"] = true, ["hidden"] = false, ["units"] = reconunitstable, ["name"] = zonereconname..string.format(zonereconunitcounter), ["task"] = "Ground Nothing", } zonerecongroupstrength = {} zonerecongroupstrength[nation] = {} zonerecongroupstrength[nation][1] = {number = 0} zonerecongroupstrengthnumber = 0 --trigger.action.outText(nation.."spawnrandomrecon 6a", 10) for i = 1, #recontable[nation] do if Group.getByName(recontable[nation][i].groupname) == nil then --trigger.action.outText(nation.."spawnrandomrecon 6b", 10) recontable[nation][i] = {groupname = 'dead'} elseif Group.getByName(recontable[nation][i].groupname) ~= nil then --trigger.action.outText(nation.." recontable.remove 6d",20) zonerecongroupstrengthnumber = zonerecongroupstrengthnumber + 1 zonerecongroupstrength[nation][1] = {number = zonerecongroupstrengthnumber} --trigger.action.outText(nation.." recontable.remove 6e",20) end end if zonerecongroupstrength[nation][1].number < maxnumberofrecongroups then --trigger.action.outText(nation.."spawnrandomrecon 6f", 10) coalition.addGroup(zonereconcountry, Group.Category.GROUND, zonerecondata) --MBots Dismount Skript implementation: "MANPADS", "Mortar", "Rifle", "ZU-23" for i = nrofReconsingroup + 1, nrofReconsingroup + nrofIFVsingroup do AddDismounts(zonereconname..string.format(zonereconunitcounter)..string.format(i), "Rifle") end recontable[nation][#recontable[nation]+1] = { groupname = zonereconname..string.format(zonereconunitcounter), group = Group.getByName(zonereconname..string.format(zonereconunitcounter)), spawnzone = actualspawnzone, number = #recontable[nation] } trigger.action.outTextForCoalition(2, "Random RECON group generated.\nGenerated: "..string.format(zonerecongroupstrength[nation][1].number + 1).." of "..string.format(maxnumberofrecongroups), 10) else trigger.action.outTextForCoalition(2, "No more ressources available. Try another group!", 10) end end function BlueArmorGroup(zonename) local actualspawnzonename = zonename local nation = "USA" local side = 'blue' local zonearmorcountry = country.id.USA local zonearmorname = "US Armor " local actualspawnzone = trigger.misc.getZone(actualspawnzonename) actualspawnzonepos = {} local actualspawnzonex = actualspawnzone.point.x local actualspawnzonez = actualspawnzone.point.z zonearmorheading = math.random(-20,20)/10*math.pi local zonearmorGroupX = actualspawnzonex + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) local zonearmorGroupY = actualspawnzonez + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) zonearmorunitcounter = #armortable[nation] local nrofMBTsingroup = math.random(4,8) local nrofIFVsingroup = math.random(2,4) local nrofLOGsingroup = math.random(2,4) local nrofSHORADingroup = math.random(1,2) local nrofSPAAAgroup = math.random(1,2) --trigger.action.outText(nation.."spawnrandomarmor 2", 10) armorunitstable= {} for i =1, nrofMBTsingroup do armorunitstable[i] = { ["y"] = zonearmorGroupY + math.random(10,100), ["type"] = rMBT(side), ["name"] = zonearmorname..string.format(zonearmorunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zonearmorheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zonearmorGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomarmor 3", 10) for i = nrofMBTsingroup + 1, nrofMBTsingroup + nrofIFVsingroup do armorunitstable[i] = { ["y"] = zonearmorGroupY + math.random(10,100), ["type"] = rIFV(side), ["name"] = zonearmorname..string.format(zonearmorunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zonearmorheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zonearmorGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomarmor 4", 10) for i = nrofMBTsingroup + nrofIFVsingroup + 1, nrofLOGsingroup + nrofMBTsingroup + nrofIFVsingroup do armorunitstable[i] = { ["y"] = zonearmorGroupY + math.random(10,100), ["type"] = rLogvehicle(side), ["name"] = zonearmorname..string.format(zonearmorunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zonearmorheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zonearmorGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomarmor 5", 10) for i = nrofLOGsingroup + nrofMBTsingroup + nrofIFVsingroup + 1, nrofLOGsingroup + nrofMBTsingroup + nrofIFVsingroup + nrofSHORADingroup do armorunitstable[i] = { ["y"] = zonearmorGroupY + math.random(10,100), ["type"] = rSHORAD(side), ["name"] = zonearmorname..string.format(zonearmorunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zonearmorheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zonearmorGroupX + math.random(10,100), } end for i = nrofLOGsingroup + nrofMBTsingroup + nrofIFVsingroup + nrofSHORADingroup + 1, nrofMBTsingroup + nrofIFVsingroup + nrofSHORADingroup + nrofSPAAAgroup do armorunitstable[i] = { ["y"] = zonearmorGroupY + math.random(10,100), ["type"] = rAAA(side), ["name"] = zonearmorname..string.format(zonearmorunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zonearmorheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zonearmorGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomarmor 6", 10) local zonearmordata = { ["visible"] = false, ["groupId"] = math.random(10000,100000), ["taskSelected"] = true, ["hidden"] = false, ["units"] = armorunitstable, ["name"] = zonearmorname..string.format(zonearmorunitcounter), ["task"] = "Ground Nothing", } zonearmorgroupstrength = {} zonearmorgroupstrength[nation] = {} zonearmorgroupstrength[nation][1] = {number = 0} zonearmorgroupstrengthnumber = 0 --trigger.action.outText(nation.."spawnrandomarmor 6a", 10) for i = 1, #armortable[nation] do if Group.getByName(armortable[nation][i].groupname) == nil then --trigger.action.outText(nation.."spawnrandomarmor 6b", 10) armortable[nation][i] = {groupname = 'dead'} elseif Group.getByName(armortable[nation][i].groupname) ~= nil then --trigger.action.outText(nation.." armortable.remove 6d",20) zonearmorgroupstrengthnumber = zonearmorgroupstrengthnumber + 1 zonearmorgroupstrength[nation][1] = {number = zonearmorgroupstrengthnumber} --trigger.action.outText(nation.." armortable.remove 6e",20) end end if zonearmorgroupstrength[nation][1].number < maxnumberofarmorgroups then --trigger.action.outText(nation.."spawnrandomarmor 6f", 10)--stop coalition.addGroup(zonearmorcountry, Group.Category.GROUND, zonearmordata) --MBots Dismount Skript implementation: "MANPADS", "Mortar", "Rifle", "ZU-23" for i = nrofMBTsingroup + 1, nrofMBTsingroup + nrofIFVsingroup do AddDismounts(zonearmorname..string.format(zonearmorunitcounter)..string.format(i), "Rifle") end --trigger.action.outText(nation.." armortable 9",20) for i = nrofMBTsingroup + nrofIFVsingroup + 1, nrofMBTsingroup + nrofIFVsingroup + nrofLOGsingroup do AddDismounts(zonearmorname..string.format(zonearmorunitcounter)..string.format(i), "Rifle") end armortable[nation][#armortable[nation]+1] = { groupname = zonearmorname..string.format(zonearmorunitcounter), group = Group.getByName(zonearmorname..string.format(zonearmorunitcounter)), spawnzone = actualspawnzone, number = #armortable[nation] } trigger.action.outTextForCoalition(2, "Random ARMOR group generated.\nGenerated: "..string.format(zonearmorgroupstrength[nation][1].number + 1).." of "..string.format(maxnumberofarmorgroups), 10) else trigger.action.outTextForCoalition(2, "No more ressources available. Try another group!", 10) end end function BlueIFVGroup(zonename) local actualspawnzonename = zonename local zoneIFVcountry = country.id.USA local side = 'blue' local zoneIFVname = "US IFV " local nation = "USA" local actualspawnzone = trigger.misc.getZone(actualspawnzonename) actualspawnzonepos = {} local actualspawnzonex = actualspawnzone.point.x local actualspawnzonez = actualspawnzone.point.z zoneIFVheading = math.random(-20,20)/10*math.pi local zoneIFVGroupX = actualspawnzonex + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) local zoneIFVGroupY = actualspawnzonez + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) zoneIFVunitcounter = #IFVtable[nation] local nrofscoutsingroup = math.random(1,2) local nrofIFVsingroup = math.random(4,8) local nrofLOGsingroup = math.random(2,6) local nrofSHORADingroup = math.random(1,2) local nrofSPAAAingroup = math.random(1,2) --trigger.action.outText(nation.."spawnrandomIFV 2", 10) IFVunitstable= {} for i =1, nrofscoutsingroup do IFVunitstable[i] = { ["y"] = zoneIFVGroupY + math.random(10,100), ["type"] = rScout(side), ["name"] = zoneIFVname..string.format(zoneIFVunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneIFVheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneIFVGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomIFV 3", 10) for i = nrofscoutsingroup + 1, nrofscoutsingroup + nrofIFVsingroup do IFVunitstable[i] = { ["y"] = zoneIFVGroupY + math.random(10,100), ["type"] = rIFV(side), ["name"] = zoneIFVname..string.format(zoneIFVunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneIFVheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneIFVGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomIFV 4", 10) for i = nrofscoutsingroup + nrofIFVsingroup + 1, nrofLOGsingroup + nrofscoutsingroup + nrofIFVsingroup do IFVunitstable[i] = { ["y"] = zoneIFVGroupY + math.random(10,100), ["type"] = rLogvehicle(side), ["name"] = zoneIFVname..string.format(zoneIFVunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneIFVheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneIFVGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomIFV 5", 10) for i = nrofLOGsingroup + nrofscoutsingroup + nrofIFVsingroup + 1, nrofLOGsingroup + nrofscoutsingroup + nrofIFVsingroup + nrofSHORADingroup do IFVunitstable[i] = { ["y"] = zoneIFVGroupY + math.random(10,100), ["type"] = rSHORAD(side), ["name"] = zoneIFVname..string.format(zoneIFVunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneIFVheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneIFVGroupX + math.random(10,100), } end for i = nrofLOGsingroup + nrofscoutsingroup + nrofIFVsingroup + nrofSHORADingroup + 1, nrofLOGsingroup + nrofscoutsingroup + nrofIFVsingroup + nrofSHORADingroup + nrofSPAAAingroup do IFVunitstable[i] = { ["y"] = zoneIFVGroupY + math.random(10,100), ["type"] = rAAA(side), ["name"] = zoneIFVname..string.format(zoneIFVunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneIFVheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneIFVGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomIFV 6", 10) local zoneIFVdata = { ["visible"] = false, ["groupId"] = math.random(10000,100000), ["taskSelected"] = true, ["hidden"] = false, ["units"] = IFVunitstable, ["name"] = zoneIFVname..string.format(zoneIFVunitcounter), ["task"] = "Ground Nothing", } --trigger.action.outText(nation.."spawnrandomIFV 7", 10) zoneIFVgroupstrength = {} zoneIFVgroupstrength[nation] = {} zoneIFVgroupstrength[nation][1] = {number = 0} zoneIFVgroupstrengthnumber = 0 for i = 1, #IFVtable[nation] do if Group.getByName(IFVtable[nation][i].groupname) == nil then IFVtable[nation][i] = {groupname = 'dead'} elseif Group.getByName(IFVtable[nation][i].groupname) ~= nil then zoneIFVgroupstrengthnumber = zoneIFVgroupstrengthnumber + 1 zoneIFVgroupstrength[nation][1] = {number = zoneIFVgroupstrengthnumber} end end --trigger.action.outText(nation.."spawnrandomIFV 8", 10) if zoneIFVgroupstrength[nation][1].number < maxnumberofIFVgroups then coalition.addGroup(zoneIFVcountry, Group.Category.GROUND, zoneIFVdata) --trigger.action.outText(nation.."spawnrandomIFV 9", 10) --MBots Dismount Skript implementation: "MANPADS", "Mortar", "Rifle", "ZU-23" for i = 1, nrofIFVsingroup + nrofscoutsingroup do --trigger.action.outText(nation.."spawnrandomIFV 10", 10)--stop if i == 1 then AddDismounts(zoneIFVname..string.format(zoneIFVunitcounter)..string.format(i), "MANPADS") end if i == 2 then AddDismounts(zoneIFVname..string.format(zoneIFVunitcounter)..string.format(i), "Mortar") end if i == 3 or i == 4 then AddDismounts(zoneIFVname..string.format(zoneIFVunitcounter)..string.format(i), "ZU-23") end if i > 4 then AddDismounts(zoneIFVname..string.format(zoneIFVunitcounter)..string.format(i), "Rifle") end end --trigger.action.outText(nation.."spawnrandomIFV 11", 10) IFVtable[nation][#IFVtable[nation]+1] = { groupname = zoneIFVname..string.format(zoneIFVunitcounter), group = Group.getByName(zoneIFVname..string.format(zoneIFVunitcounter)), spawnzone = actualspawnzone, number = #IFVtable[nation] } trigger.action.outTextForCoalition(2, "Random IFV group generated.\nGenerated: "..string.format(zoneIFVgroupstrength[nation][1].number + 1).." of "..string.format(maxnumberofIFVgroups), 10) else trigger.action.outTextForCoalition(2, "No more ressources available. Try another group!", 10) end end function BlueSupportGroup(zonename) local actualspawnzonename = zonename local zoneSupportcountry = country.id.USA local side = 'blue' local zoneSupportname = "US Support " local nation = "USA" local actualspawnzone = trigger.misc.getZone(actualspawnzonename) actualspawnzonepos = {} local actualspawnzonex = actualspawnzone.point.x local actualspawnzonez = actualspawnzone.point.z zoneSupportheading = math.random(-20,20)/10*math.pi local zoneSupportGroupX = actualspawnzonex + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) local zoneSupportGroupY = actualspawnzonez + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) zoneSupportunitcounter = #Supporttable[nation] local nrofscoutsingroup = math.random(1,2) local nrofInfTranssingroup = math.random(4,8) local nrofLOGsingroup = math.random(6,8) local nrofARTingroup = math.random(4,6) local nrofSPAAAingroup = math.random(1,2) --trigger.action.outText(nation.."spawnrandomSupport 2", 10) Supportunitstable= {} for i =1, nrofscoutsingroup do Supportunitstable[i] = { ["y"] = zoneSupportGroupY + math.random(10,100), ["type"] = rScout(side), ["name"] = zoneSupportname..string.format(zoneSupportunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneSupportheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneSupportGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomSupport 3", 10) for i = nrofscoutsingroup + 1, nrofscoutsingroup + nrofInfTranssingroup do Supportunitstable[i] = { ["y"] = zoneSupportGroupY + math.random(10,100), ["type"] = rInfTrans(side), ["name"] = zoneSupportname..string.format(zoneSupportunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneSupportheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneSupportGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomSupport 4", 10) for i = nrofscoutsingroup + nrofInfTranssingroup + 1, nrofLOGsingroup + nrofscoutsingroup + nrofInfTranssingroup do Supportunitstable[i] = { ["y"] = zoneSupportGroupY + math.random(10,100), ["type"] = rLogvehicle(side), ["name"] = zoneSupportname..string.format(zoneSupportunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneSupportheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneSupportGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomSupport 5", 10) for i = nrofLOGsingroup + nrofscoutsingroup + nrofInfTranssingroup + 1, nrofLOGsingroup + nrofscoutsingroup + nrofInfTranssingroup + nrofARTingroup do Supportunitstable[i] = { ["y"] = zoneSupportGroupY + math.random(10,100), ["type"] = rArt(side), ["name"] = zoneSupportname..string.format(zoneSupportunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneSupportheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneSupportGroupX + math.random(10,100), } end for i = nrofLOGsingroup + nrofscoutsingroup + nrofInfTranssingroup + nrofARTingroup + 1, nrofLOGsingroup + nrofscoutsingroup + nrofInfTranssingroup + nrofARTingroup + nrofSPAAAingroup do Supportunitstable[i] = { ["y"] = zoneSupportGroupY + math.random(10,100), ["type"] = rAAA(side), ["name"] = zoneSupportname..string.format(zoneSupportunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneSupportheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneSupportGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomSupport 6", 10) local zoneSupportdata = { ["visible"] = false, ["groupId"] = math.random(10000,100000), ["taskSelected"] = true, ["hidden"] = false, ["units"] = Supportunitstable, ["name"] = zoneSupportname..string.format(zoneSupportunitcounter), ["task"] = "Ground Nothing", } --trigger.action.outText(nation.."spawnrandomSupport 7", 10) zoneSupportgroupstrength = {} zoneSupportgroupstrength[nation] = {} zoneSupportgroupstrength[nation][1] = {number = 0} zoneSupportgroupstrengthnumber = 0 for i = 1, #Supporttable[nation] do if Group.getByName(Supporttable[nation][i].groupname) == nil then Supporttable[nation][i] = {groupname = 'dead'} elseif Group.getByName(Supporttable[nation][i].groupname) ~= nil then zoneSupportgroupstrengthnumber = zoneSupportgroupstrengthnumber + 1 zoneSupportgroupstrength[nation][1] = {number = zoneSupportgroupstrengthnumber} end end --trigger.action.outText(nation.."spawnrandomSupport 8", 10) if zoneSupportgroupstrength[nation][1].number < maxnumberofSupportgroups then coalition.addGroup(zoneSupportcountry, Group.Category.GROUND, zoneSupportdata) --trigger.action.outText(nation.."spawnrandomSupport 9", 10) --MBots Dismount Skript implementation: "MANPADS", "Mortar", "Rifle", "ZU-23" for i = nrofInfTranssingroup + 1, nrofscoutsingroup + nrofInfTranssingroup do --trigger.action.outText(nation.."spawnrandomSupport 10", 10)--stop AddDismounts(zoneSupportname..string.format(zoneSupportunitcounter)..string.format(i), "Rifle") end --trigger.action.outText(nation.."spawnrandomSupport 11", 10) Supporttable[nation][#Supporttable[nation]+1] = { groupname = zoneSupportname..string.format(zoneSupportunitcounter), group = Group.getByName(zoneSupportname..string.format(zoneSupportunitcounter)), spawnzone = actualspawnzone, number = #Supporttable[nation] } trigger.action.outTextForCoalition(2, "Random Support group generated.\nGenerated: "..string.format(zoneSupportgroupstrength[nation][1].number + 1).." of "..string.format(maxnumberofSupportgroups), 10) else trigger.action.outTextForCoalition(2, "No more ressources available. Try another group!", 10) end end function BlueInfGroup(zonename) local actualspawnzonename = zonename local zoneMInfcountry = country.id.USA local side = 'blue' local zoneMInfname = "US MInf " local nation = "USA" local actualspawnzone = trigger.misc.getZone(actualspawnzonename) actualspawnzonepos = {} local actualspawnzonex = actualspawnzone.point.x local actualspawnzonez = actualspawnzone.point.z zoneMInfheading = math.random(-20,20)/10*math.pi local zoneMInfGroupX = actualspawnzonex + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) local zoneMInfGroupY = actualspawnzonez + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) zoneMInfunitcounter = #MInftable[nation] local nrofscoutsingroup = math.random(1,2) local nrofInfTranssingroup = math.random(6,8) local nrofLOGsingroup = math.random(2,4) --trigger.action.outText(nation.."spawnrandomMInf 2", 10) MInfunitstable= {} for i =1, nrofscoutsingroup do MInfunitstable[i] = { ["y"] = zoneMInfGroupY + math.random(10,100), ["type"] = rScout(side), ["name"] = zoneMInfname..string.format(zoneMInfunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneMInfheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneMInfGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomMInf 3", 10) for i = nrofscoutsingroup + 1, nrofscoutsingroup + nrofInfTranssingroup do MInfunitstable[i] = { ["y"] = zoneMInfGroupY + math.random(10,100), ["type"] = rInfTrans(side), ["name"] = zoneMInfname..string.format(zoneMInfunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneMInfheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneMInfGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomMInf 4", 10) for i = nrofscoutsingroup + nrofInfTranssingroup + 1, nrofLOGsingroup + nrofscoutsingroup + nrofInfTranssingroup do MInfunitstable[i] = { ["y"] = zoneMInfGroupY + math.random(10,100), ["type"] = rLogvehicle(side), ["name"] = zoneMInfname..string.format(zoneMInfunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneMInfheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneMInfGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomMInf 5", 10) --trigger.action.outText(nation.."spawnrandomMInf 6", 10) local zoneMInfdata = { ["visible"] = false, ["groupId"] = math.random(10000,100000), ["taskSelected"] = true, ["hidden"] = false, ["units"] = MInfunitstable, ["name"] = zoneMInfname..string.format(zoneMInfunitcounter), ["task"] = "Ground Nothing", } --trigger.action.outText(nation.."spawnrandomMInf 7", 10) zoneMInfgroupstrength = {} zoneMInfgroupstrength[nation] = {} zoneMInfgroupstrength[nation][1] = {number = 0} zoneMInfgroupstrengthnumber = 0 for i = 1, #MInftable[nation] do if Group.getByName(MInftable[nation][i].groupname) == nil then MInftable[nation][i] = {groupname = 'dead'} elseif Group.getByName(MInftable[nation][i].groupname) ~= nil then zoneMInfgroupstrengthnumber = zoneMInfgroupstrengthnumber + 1 zoneMInfgroupstrength[nation][1] = {number = zoneMInfgroupstrengthnumber} end end --trigger.action.outText(nation.."spawnrandomMInf 8", 10) if zoneMInfgroupstrength[nation][1].number < maxnumberofMInfgroups then coalition.addGroup(zoneMInfcountry, Group.Category.GROUND, zoneMInfdata) --trigger.action.outText(nation.."spawnrandomMInf 9", 10) --MBots Dismount Skript implementation: "MANPADS", "Mortar", "Rifle", "ZU-23" for i = 1, nrofscoutsingroup do --trigger.action.outText(nation.."spawnrandomMInf 10", 10)--stop AddDismounts(zoneMInfname..string.format(zoneMInfunitcounter)..string.format(i), "MANPADS") end for i = nrofscoutsingroup + 1, nrofscoutsingroup + nrofInfTranssingroup - 2 do --trigger.action.outText(nation.."spawnrandomMInf 10", 10)--stop AddDismounts(zoneMInfname..string.format(zoneMInfunitcounter)..string.format(i), "Rifle") end for i = nrofscoutsingroup + nrofInfTranssingroup - 2, nrofscoutsingroup + nrofInfTranssingroup - 1 do --trigger.action.outText(nation.."spawnrandomMInf 10", 10)--stop AddDismounts(zoneMInfname..string.format(zoneMInfunitcounter)..string.format(i), "Mortar") end for i = nrofscoutsingroup + nrofInfTranssingroup - 1, nrofscoutsingroup + nrofInfTranssingroup do --trigger.action.outText(nation.."spawnrandomMInf 10", 10)--stop AddDismounts(zoneMInfname..string.format(zoneMInfunitcounter)..string.format(i), "ZU-23") end --trigger.action.outText(nation.."spawnrandomMInf 11", 10) MInftable[nation][#MInftable[nation]+1] = { groupname = zoneMInfname..string.format(zoneMInfunitcounter), group = Group.getByName(zoneMInfname..string.format(zoneMInfunitcounter)), spawnzone = actualspawnzone, number = #MInftable[nation] } trigger.action.outTextForCoalition(2, "Random Mot.Inf group generated.\nGenerated: "..string.format(zoneMInfgroupstrength[nation][1].number + 1).." of "..string.format(maxnumberofMInfgroups), 10) else trigger.action.outTextForCoalition(2, "No more ressources available. Try another group!", 10) end end function BlueSHORADGroup(zonename) local actualspawnzonename = zonename local zoneSHORADcountry = country.id.USA local side = 'blue' local zoneSHORADname = "US SHORAD " local nation = "USA" local actualspawnzone = trigger.misc.getZone(actualspawnzonename) actualspawnzonepos = {} local actualspawnzonex = actualspawnzone.point.x local actualspawnzonez = actualspawnzone.point.z zoneSHORADheading = math.random(-20,20)/10*math.pi local zoneSHORADGroupX = actualspawnzonex + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) local zoneSHORADGroupY = actualspawnzonez + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) zoneSHORADunitcounter = #SHORADtable[nation] local nrofscoutsingroup = math.random(1,2) local nrofSHORADsingroup = math.random(4,6) local nrofLOGsingroup = math.random(1,2) local nrofSPAAAingroup = math.random(1,2) --trigger.action.outText(nation.."spawnrandomSHORAD 2", 10) SHORADunitstable= {} for i =1, nrofscoutsingroup do SHORADunitstable[i] = { ["y"] = zoneSHORADGroupY + math.random(10,100), ["type"] = rScout(side), ["name"] = zoneSHORADname..string.format(zoneSHORADunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneSHORADheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneSHORADGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomSHORAD 3", 10) for i = nrofscoutsingroup + 1, nrofscoutsingroup + nrofSHORADsingroup do SHORADunitstable[i] = { ["y"] = zoneSHORADGroupY + math.random(10,100), ["type"] = rSHORAD(side), ["name"] = zoneSHORADname..string.format(zoneSHORADunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneSHORADheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneSHORADGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomSHORAD 4", 10) for i = nrofscoutsingroup + nrofSHORADsingroup + 1, nrofLOGsingroup + nrofscoutsingroup + nrofSHORADsingroup do SHORADunitstable[i] = { ["y"] = zoneSHORADGroupY + math.random(10,100), ["type"] = rLogvehicle(side), ["name"] = zoneSHORADname..string.format(zoneSHORADunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneSHORADheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneSHORADGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomSHORAD 5", 10)--stop for i = nrofLOGsingroup + nrofscoutsingroup + nrofSHORADsingroup + 1, nrofLOGsingroup + nrofscoutsingroup + nrofSHORADsingroup + nrofSPAAAingroup do SHORADunitstable[i] = { ["y"] = zoneSHORADGroupY + math.random(10,100), ["type"] = rAAA(side), ["name"] = zoneSHORADname..string.format(zoneSHORADunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneSHORADheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneSHORADGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomSHORAD 6", 10) local zoneSHORADdata = { ["visible"] = false, ["groupId"] = math.random(10000,100000), ["taskSelected"] = true, ["hidden"] = false, ["units"] = SHORADunitstable, ["name"] = zoneSHORADname..string.format(zoneSHORADunitcounter), ["task"] = "Ground Nothing", } --trigger.action.outText(nation.."spawnrandomSHORAD 7", 10) zoneSHORADgroupstrength = {} zoneSHORADgroupstrength[nation] = {} zoneSHORADgroupstrength[nation][1] = {number = 0} zoneSHORADgroupstrengthnumber = 0 for i = 1, #SHORADtable[nation] do if Group.getByName(SHORADtable[nation][i].groupname) == nil then SHORADtable[nation][i] = {groupname = 'dead'} elseif Group.getByName(SHORADtable[nation][i].groupname) ~= nil then zoneSHORADgroupstrengthnumber = zoneSHORADgroupstrengthnumber + 1 zoneSHORADgroupstrength[nation][1] = {number = zoneSHORADgroupstrengthnumber} end end --trigger.action.outText(nation.."spawnrandomSHORAD 8", 10) if zoneSHORADgroupstrength[nation][1].number < maxnumberofSHORADgroups then coalition.addGroup(zoneSHORADcountry, Group.Category.GROUND, zoneSHORADdata) --trigger.action.outText(nation.."spawnrandomSHORAD 9", 10) --MBots Dismount Skript implementation: "MANPADS", "Mortar", "Rifle", "ZU-23" for i = 1,nrofscoutsingroup do --trigger.action.outText(nation.."spawnrandomSHORAD 10", 10)--stop AddDismounts(zoneSHORADname..string.format(zoneSHORADunitcounter)..string.format(i), "Rifle") end --trigger.action.outText(nation.."spawnrandomSHORAD 11", 10) SHORADtable[nation][#SHORADtable[nation]+1] = { groupname = zoneSHORADname..string.format(zoneSHORADunitcounter), group = Group.getByName(zoneSHORADname..string.format(zoneSHORADunitcounter)), spawnzone = actualspawnzone, number = #SHORADtable[nation] } trigger.action.outTextForCoalition(2, "Random SHORAD group generated.\nGenerated: "..string.format(zoneSHORADgroupstrength[nation][1].number + 1).." of "..string.format(maxnumberofSHORADgroups), 10) else trigger.action.outTextForCoalition(2, "No more ressources available. Try another group!", 10) end end --XXXXXXXXXXXXXX RED function RedTemplateGroup1(zonename) if redtemplategroupcounter1 < maxnumberoftemplategroup1 then local actualspawnzonename = zonename local actualunitname = RedGroundTemplateUnitname..string.format(1) local actualgroupname = Group.getName(Unit.getGroup(Unit.getByName(actualunitname))) if actualspawnzonename == nil then mist.cloneGroup(actualgroupname, true) else mist.cloneInZone(actualgroupname, actualspawnzonename, true, 300) end redtemplategroupcounter1 = redtemplategroupcounter1 + 1 trigger.action.outTextForCoalition(1, actualgroupname.." was generated at inital position.\nGenerated: "..string.format(redtemplategroupcounter1).." of "..string.format(maxnumberoftemplategroup1), 10) else trigger.action.outTextForCoalition(1, "No more ressources available. Try another group!", 10) end end function RedTemplateGroup2(zonename) if redtemplategroupcounter2 < maxnumberoftemplategroup2 then local actualspawnzonename = zonename local actualunitname = RedGroundTemplateUnitname..string.format(2) local actualgroupname = Group.getName(Unit.getGroup(Unit.getByName(actualunitname))) if actualspawnzonename == nil then mist.cloneGroup(actualgroupname, true) else mist.cloneInZone(actualgroupname, actualspawnzonename, true, 300) end redtemplategroupcounter2 = redtemplategroupcounter2 + 1 trigger.action.outTextForCoalition(1, actualgroupname.." was generated at inital position.\nGenerated: "..string.format(redtemplategroupcounter2).." of "..string.format(maxnumberoftemplategroup2), 10) else trigger.action.outTextForCoalition(1, "No more ressources available. Try another group!", 10) end end function RedTemplateGroup3(zonename) if redtemplategroupcounter3 < maxnumberoftemplategroup3 then local actualspawnzonename = zonename local actualunitname = RedGroundTemplateUnitname..string.format(3) local actualgroupname = Group.getName(Unit.getGroup(Unit.getByName(actualunitname))) if actualspawnzonename == nil then mist.cloneGroup(actualgroupname, true) else mist.cloneInZone(actualgroupname, actualspawnzonename, true, 300) end redtemplategroupcounter3 = redtemplategroupcounter3 + 1 trigger.action.outTextForCoalition(1, actualgroupname.." was generated at inital position.\nGenerated: "..string.format(redtemplategroupcounter3).." of "..string.format(maxnumberoftemplategroup3), 10) else trigger.action.outTextForCoalition(1, "No more ressources available. Try another group!", 10) end end function RedTemplateGroup4(zonename) if redtemplategroupcounter4 < maxnumberoftemplategroup4 then local actualspawnzonename = zonename local actualunitname = RedGroundTemplateUnitname..string.format(4) local actualgroupname = Group.getName(Unit.getGroup(Unit.getByName(actualunitname))) if actualspawnzonename == nil then mist.cloneGroup(actualgroupname, true) else mist.cloneInZone(actualgroupname, actualspawnzonename, true, 300) end redtemplategroupcounter4 = redtemplategroupcounter4 + 1 trigger.action.outTextForCoalition(1, actualgroupname.." was generated at inital position.\nGenerated: "..string.format(redtemplategroupcounter4).." of "..string.format(maxnumberoftemplategroup4), 10) else trigger.action.outTextForCoalition(1, "No more ressources available. Try another group!", 10) end end function RedTemplateGroup5(zonename) if redtemplategroupcounter5 < maxnumberoftemplategroup5 then local actualspawnzonename = zonename local actualunitname = RedGroundTemplateUnitname..string.format(5) local actualgroupname = Group.getName(Unit.getGroup(Unit.getByName(actualunitname))) if actualspawnzonename == nil then mist.cloneGroup(actualgroupname, true) else mist.cloneInZone(actualgroupname, actualspawnzonename, true, 300) end redtemplategroupcounter5 = redtemplategroupcounter5 + 1 trigger.action.outTextForCoalition(1, actualgroupname.." was generated at inital position.\nGenerated: "..string.format(redtemplategroupcounter5).." of "..string.format(maxnumberoftemplategroup5), 10) else trigger.action.outTextForCoalition(1, "No more ressources available. Try another group!", 10) end end function RedTemplateGroup6(zonename) if redtemplategroupcounter6 < maxnumberoftemplategroup6 then local actualspawnzonename = zonename local actualunitname = RedGroundTemplateUnitname..string.format(6) local actualgroupname = Group.getName(Unit.getGroup(Unit.getByName(actualunitname))) if actualspawnzonename == nil then mist.cloneGroup(actualgroupname, true) else mist.cloneInZone(actualgroupname, actualspawnzonename, true, 300) end redtemplategroupcounter6 = redtemplategroupcounter6 + 1 trigger.action.outTextForCoalition(1, actualgroupname.." was generated at inital position.\nGenerated: "..string.format(redtemplategroupcounter6).." of "..string.format(maxnumberoftemplategroup6), 10) else trigger.action.outTextForCoalition(1, "No more ressources available. Try another group!", 10) end end function RedTemplateGroup7(zonename) if redtemplategroupcounter7 < maxnumberoftemplategroup7 then local actualspawnzonename = zonename local actualunitname = RedGroundTemplateUnitname..string.format(7) local actualgroupname = Group.getName(Unit.getGroup(Unit.getByName(actualunitname))) if actualspawnzonename == nil then mist.cloneGroup(actualgroupname, true) else mist.cloneInZone(actualgroupname, actualspawnzonename, true, 300) end redtemplategroupcounter7 = redtemplategroupcounter7 + 1 trigger.action.outTextForCoalition(1, actualgroupname.." was generated at inital position.\nGenerated: "..string.format(redtemplategroupcounter7).." of "..string.format(maxnumberoftemplategroup7), 10) else trigger.action.outTextForCoalition(1, "No more ressources available. Try another group!", 10) end end function RedTemplateGroup8(zonename) if redtemplategroupcounter8 < maxnumberoftemplategroup8 then local actualspawnzonename = zonename local actualunitname = RedGroundTemplateUnitname..string.format(8) local actualgroupname = Group.getName(Unit.getGroup(Unit.getByName(actualunitname))) if actualspawnzonename == nil then mist.cloneGroup(actualgroupname, true) else mist.cloneInZone(actualgroupname, actualspawnzonename, true, 300) end redtemplategroupcounter8 = redtemplategroupcounter8 + 1 trigger.action.outTextForCoalition(1, actualgroupname.." was generated at inital position.\nGenerated: "..string.format(redtemplategroupcounter8).." of "..string.format(maxnumberoftemplategroup8), 10) else trigger.action.outTextForCoalition(1, "No more ressources available. Try another group!", 10) end end function RedReconGroup(zonename) local actualspawnzonename = zonename local nation = "Russian" local zonereconcountry = country.id.RUSSIA local side = 'red' local zonereconname = "RU Recon " local actualspawnzone = trigger.misc.getZone(actualspawnzonename) actualspawnzonepos = {} local actualspawnzonex = actualspawnzone.point.x local actualspawnzonez = actualspawnzone.point.z zonereconheading = math.random(-20,20)/10*math.pi local zonereconGroupX = actualspawnzonex + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) local zonereconGroupY = actualspawnzonez + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) zonereconunitcounter = #recontable[nation] local nrofReconsingroup = math.random(2,4) local nrofIFVsingroup = math.random(1,2) reconunitstable= {} for i =1, nrofReconsingroup do reconunitstable[i] = { ["y"] = zonereconGroupY + math.random(10,100), ["type"] = rScout(side), ["name"] = zonereconname..string.format(zonereconunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zonereconheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zonereconGroupX + math.random(10,100), } end for i = nrofReconsingroup + 1, nrofReconsingroup + nrofIFVsingroup do reconunitstable[i] = { ["y"] = zonereconGroupY + math.random(10,100), ["type"] = rIFV(side), ["name"] = zonereconname..string.format(zonereconunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zonereconheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zonereconGroupX + math.random(10,100), } end local zonerecondata = { ["visible"] = false, ["groupId"] = math.random(10000,100000), ["taskSelected"] = true, ["hidden"] = false, ["units"] = reconunitstable, ["name"] = zonereconname..string.format(zonereconunitcounter), ["task"] = "Ground Nothing", } zonerecongroupstrength = {} zonerecongroupstrength[nation] = {} zonerecongroupstrength[nation][1] = {number = 0} zonerecongroupstrengthnumber = 0 for i = 1, #recontable[nation] do if Group.getByName(recontable[nation][i].groupname) == nil then recontable[nation][i] = {groupname = 'dead'} elseif Group.getByName(recontable[nation][i].groupname) ~= nil then zonerecongroupstrengthnumber = zonerecongroupstrengthnumber + 1 zonerecongroupstrength[nation][1] = {number = zonerecongroupstrengthnumber} end end if zonerecongroupstrength[nation][1].number < maxnumberofrecongroups then coalition.addGroup(zonereconcountry, Group.Category.GROUND, zonerecondata) --MBots Dismount Skript implementation: "MANPADS", "Mortar", "Rifle", "ZU-23" for i = nrofReconsingroup + 1, nrofReconsingroup + nrofIFVsingroup do AddDismounts(zonereconname..string.format(zonereconunitcounter)..string.format(i), "Rifle") end recontable[nation][#recontable[nation]+1] = { groupname = zonereconname..string.format(zonereconunitcounter), group = Group.getByName(zonereconname..string.format(zonereconunitcounter)), spawnzone = actualspawnzone, number = #recontable[nation] } trigger.action.outTextForCoalition(1, "Random RECON group generated.\nGenerated: "..string.format(zonerecongroupstrength[nation][1].number + 1).." of "..string.format(maxnumberofrecongroups), 10) else trigger.action.outTextForCoalition(1, "No more ressources available. Try another group!", 10) end end function RedArmorGroup(zonename) local actualspawnzonename = zonename local nation = "Russian" local zonearmorcountry = country.id.RUSSIA local side = 'red' local zonearmorname = "RU Armor " local actualspawnzone = trigger.misc.getZone(actualspawnzonename) actualspawnzonepos = {} local actualspawnzonex = actualspawnzone.point.x local actualspawnzonez = actualspawnzone.point.z zonearmorheading = math.random(-20,20)/10*math.pi local zonearmorGroupX = actualspawnzonex + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) local zonearmorGroupY = actualspawnzonez + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) zonearmorunitcounter = #armortable[nation] local nrofMBTsingroup = math.random(4,8) local nrofIFVsingroup = math.random(2,4) local nrofLOGsingroup = math.random(2,4) local nrofSHORADingroup = math.random(1,2) local nrofSPAAAgroup = math.random(1,2) armorunitstable= {} for i =1, nrofMBTsingroup do armorunitstable[i] = { ["y"] = zonearmorGroupY + math.random(10,100), ["type"] = rMBT(side), ["name"] = zonearmorname..string.format(zonearmorunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zonearmorheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zonearmorGroupX + math.random(10,100), } end for i = nrofMBTsingroup + 1, nrofMBTsingroup + nrofIFVsingroup do armorunitstable[i] = { ["y"] = zonearmorGroupY + math.random(10,100), ["type"] = rIFV(side), ["name"] = zonearmorname..string.format(zonearmorunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zonearmorheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zonearmorGroupX + math.random(10,100), } end for i = nrofMBTsingroup + nrofIFVsingroup + 1, nrofLOGsingroup + nrofMBTsingroup + nrofIFVsingroup do armorunitstable[i] = { ["y"] = zonearmorGroupY + math.random(10,100), ["type"] = rLogvehicle(side), ["name"] = zonearmorname..string.format(zonearmorunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zonearmorheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zonearmorGroupX + math.random(10,100), } end for i = nrofLOGsingroup + nrofMBTsingroup + nrofIFVsingroup + 1, nrofLOGsingroup + nrofMBTsingroup + nrofIFVsingroup + nrofSHORADingroup do armorunitstable[i] = { ["y"] = zonearmorGroupY + math.random(10,100), ["type"] = rSHORAD(side), ["name"] = zonearmorname..string.format(zonearmorunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zonearmorheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zonearmorGroupX + math.random(10,100), } end for i = nrofLOGsingroup + nrofMBTsingroup + nrofIFVsingroup + nrofSHORADingroup + 1, nrofMBTsingroup + nrofIFVsingroup + nrofSHORADingroup + nrofSPAAAgroup do armorunitstable[i] = { ["y"] = zonearmorGroupY + math.random(10,100), ["type"] = rAAA(side), ["name"] = zonearmorname..string.format(zonearmorunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zonearmorheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zonearmorGroupX + math.random(10,100), } end local zonearmordata = { ["visible"] = false, ["groupId"] = math.random(10000,100000), ["taskSelected"] = true, ["hidden"] = false, ["units"] = armorunitstable, ["name"] = zonearmorname..string.format(zonearmorunitcounter), ["task"] = "Ground Nothing", } zonearmorgroupstrength = {} zonearmorgroupstrength[nation] = {} zonearmorgroupstrength[nation][1] = {number = 0} zonearmorgroupstrengthnumber = 0 for i = 1, #armortable[nation] do if Group.getByName(armortable[nation][i].groupname) == nil then armortable[nation][i] = {groupname = 'dead'} elseif Group.getByName(armortable[nation][i].groupname) ~= nil then --trigger.action.outText(nation.." armortable.remove 6d",20) zonearmorgroupstrengthnumber = zonearmorgroupstrengthnumber + 1 zonearmorgroupstrength[nation][1] = {number = zonearmorgroupstrengthnumber} --trigger.action.outText(nation.." armortable.remove 6e",20) end end if zonearmorgroupstrength[nation][1].number < maxnumberofarmorgroups then --trigger.action.outText(nation.."spawnrandomarmor 6f", 10) coalition.addGroup(zonearmorcountry, Group.Category.GROUND, zonearmordata) --MBots Dismount Skript implementation: "MANPADS", "Mortar", "Rifle", "ZU-23" for i = nrofMBTsingroup + 1, nrofMBTsingroup + nrofIFVsingroup do AddDismounts(zonearmorname..string.format(zonearmorunitcounter)..string.format(i), "Rifle") end --trigger.action.outText(nation.." armortable 9",20) for i = nrofMBTsingroup + nrofIFVsingroup + 1, nrofMBTsingroup + nrofIFVsingroup + nrofLOGsingroup do AddDismounts(zonearmorname..string.format(zonearmorunitcounter)..string.format(i), "Rifle") end armortable[nation][#armortable[nation]+1] = { groupname = zonearmorname..string.format(zonearmorunitcounter), group = Group.getByName(zonearmorname..string.format(zonearmorunitcounter)), spawnzone = actualspawnzone, number = #armortable[nation] } trigger.action.outTextForCoalition(1, "Random ARMOR group generated.\nGenerated: "..string.format(zonearmorgroupstrength[nation][1].number + 1).." of "..string.format(maxnumberofarmorgroups), 10) else trigger.action.outTextForCoalition(1, "No more ressources available. Try another group!", 10) end end function RedIFVGroup(zonename) local actualspawnzonename = zonename local nation = "Russian" local zoneIFVcountry = country.id.RUSSIA local side = 'red' local zoneIFVname = "RU IFV" local actualspawnzone = trigger.misc.getZone(actualspawnzonename) actualspawnzonepos = {} local actualspawnzonex = actualspawnzone.point.x local actualspawnzonez = actualspawnzone.point.z zoneIFVheading = math.random(-20,20)/10*math.pi local zoneIFVGroupX = actualspawnzonex + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) local zoneIFVGroupY = actualspawnzonez + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) zoneIFVunitcounter = #IFVtable[nation] local nrofscoutsingroup = math.random(1,2) local nrofIFVsingroup = math.random(4,8) local nrofLOGsingroup = math.random(2,6) local nrofSHORADingroup = math.random(1,2) local nrofSPAAAingroup = math.random(1,2) IFVunitstable= {} for i =1, nrofscoutsingroup do IFVunitstable[i] = { ["y"] = zoneIFVGroupY + math.random(10,100), ["type"] = rScout(side), ["name"] = zoneIFVname..string.format(zoneIFVunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneIFVheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneIFVGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomIFV 3", 10) for i = nrofscoutsingroup + 1, nrofscoutsingroup + nrofIFVsingroup do IFVunitstable[i] = { ["y"] = zoneIFVGroupY + math.random(10,100), ["type"] = rIFV(side), ["name"] = zoneIFVname..string.format(zoneIFVunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneIFVheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneIFVGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomIFV 4", 10) for i = nrofscoutsingroup + nrofIFVsingroup + 1, nrofLOGsingroup + nrofscoutsingroup + nrofIFVsingroup do IFVunitstable[i] = { ["y"] = zoneIFVGroupY + math.random(10,100), ["type"] = rLogvehicle(side), ["name"] = zoneIFVname..string.format(zoneIFVunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneIFVheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneIFVGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomIFV 5", 10) for i = nrofLOGsingroup + nrofscoutsingroup + nrofIFVsingroup + 1, nrofLOGsingroup + nrofscoutsingroup + nrofIFVsingroup + nrofSHORADingroup do IFVunitstable[i] = { ["y"] = zoneIFVGroupY + math.random(10,100), ["type"] = rSHORAD(side), ["name"] = zoneIFVname..string.format(zoneIFVunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneIFVheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneIFVGroupX + math.random(10,100), } end for i = nrofLOGsingroup + nrofscoutsingroup + nrofIFVsingroup + nrofSHORADingroup + 1, nrofLOGsingroup + nrofscoutsingroup + nrofIFVsingroup + nrofSHORADingroup + nrofSPAAAingroup do IFVunitstable[i] = { ["y"] = zoneIFVGroupY + math.random(10,100), ["type"] = rAAA(side), ["name"] = zoneIFVname..string.format(zoneIFVunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneIFVheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneIFVGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomIFV 6", 10) local zoneIFVdata = { ["visible"] = false, ["groupId"] = math.random(10000,100000), ["taskSelected"] = true, ["hidden"] = false, ["units"] = IFVunitstable, ["name"] = zoneIFVname..string.format(zoneIFVunitcounter), ["task"] = "Ground Nothing", } --trigger.action.outText(nation.."spawnrandomIFV 7", 10) zoneIFVgroupstrength = {} zoneIFVgroupstrength[nation] = {} zoneIFVgroupstrength[nation][1] = {number = 0} zoneIFVgroupstrengthnumber = 0 for i = 1, #IFVtable[nation] do if Group.getByName(IFVtable[nation][i].groupname) == nil then IFVtable[nation][i] = {groupname = 'dead'} elseif Group.getByName(IFVtable[nation][i].groupname) ~= nil then zoneIFVgroupstrengthnumber = zoneIFVgroupstrengthnumber + 1 zoneIFVgroupstrength[nation][1] = {number = zoneIFVgroupstrengthnumber} end end --trigger.action.outText(nation.."spawnrandomIFV 8", 10) if zoneIFVgroupstrength[nation][1].number < maxnumberofIFVgroups then coalition.addGroup(zoneIFVcountry, Group.Category.GROUND, zoneIFVdata) --trigger.action.outText(nation.."spawnrandomIFV 9", 10) --MBots Dismount Skript implementation: "MANPADS", "Mortar", "Rifle", "ZU-23" for i = 1, nrofIFVsingroup + nrofscoutsingroup do --trigger.action.outText(nation.."spawnrandomIFV 10", 10)--stop if i == 1 then AddDismounts(zoneIFVname..string.format(zoneIFVunitcounter)..string.format(i), "MANPADS") end if i == 2 then AddDismounts(zoneIFVname..string.format(zoneIFVunitcounter)..string.format(i), "Mortar") end if i == 3 or i == 4 then AddDismounts(zoneIFVname..string.format(zoneIFVunitcounter)..string.format(i), "ZU-23") end if i > 4 then AddDismounts(zoneIFVname..string.format(zoneIFVunitcounter)..string.format(i), "Rifle") end end --trigger.action.outText(nation.."spawnrandomIFV 11", 10) IFVtable[nation][#IFVtable[nation]+1] = { groupname = zoneIFVname..string.format(zoneIFVunitcounter), group = Group.getByName(zoneIFVname..string.format(zoneIFVunitcounter)), spawnzone = actualspawnzone, number = #IFVtable[nation] } trigger.action.outTextForCoalition(1, "Random IFV group generated.\nGenerated: "..string.format(zoneIFVgroupstrength[nation][1].number + 1).." of "..string.format(maxnumberofIFVgroups), 10) else trigger.action.outTextForCoalition(1, "No more ressources available. Try another group!", 10) end end function RedSupportGroup(zonename) local actualspawnzonename = zonename local nation = "Russian" local zoneSupportcountry = country.id.RUSSIA local side = 'red' local zoneSupportname = "RU Support " local actualspawnzone = trigger.misc.getZone(actualspawnzonename) actualspawnzonepos = {} local actualspawnzonex = actualspawnzone.point.x local actualspawnzonez = actualspawnzone.point.z zoneSupportheading = math.random(-20,20)/10*math.pi local zoneSupportGroupX = actualspawnzonex + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) local zoneSupportGroupY = actualspawnzonez + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) zoneSupportunitcounter = #Supporttable[nation] local nrofscoutsingroup = math.random(1,2) local nrofInfTranssingroup = math.random(4,8) local nrofLOGsingroup = math.random(6,8) local nrofARTingroup = math.random(4,6) local nrofSPAAAingroup = math.random(1,2) --trigger.action.outText(nation.."spawnrandomSupport 2", 10) Supportunitstable= {} for i =1, nrofscoutsingroup do Supportunitstable[i] = { ["y"] = zoneSupportGroupY + math.random(10,100), ["type"] = rScout(side), ["name"] = zoneSupportname..string.format(zoneSupportunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneSupportheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneSupportGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomSupport 3", 10) for i = nrofscoutsingroup + 1, nrofscoutsingroup + nrofInfTranssingroup do Supportunitstable[i] = { ["y"] = zoneSupportGroupY + math.random(10,100), ["type"] = rInfTrans(side), ["name"] = zoneSupportname..string.format(zoneSupportunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneSupportheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneSupportGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomSupport 4", 10) for i = nrofscoutsingroup + nrofInfTranssingroup + 1, nrofLOGsingroup + nrofscoutsingroup + nrofInfTranssingroup do Supportunitstable[i] = { ["y"] = zoneSupportGroupY + math.random(10,100), ["type"] = rLogvehicle(side), ["name"] = zoneSupportname..string.format(zoneSupportunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneSupportheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneSupportGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomSupport 5", 10) for i = nrofLOGsingroup + nrofscoutsingroup + nrofInfTranssingroup + 1, nrofLOGsingroup + nrofscoutsingroup + nrofInfTranssingroup + nrofARTingroup do Supportunitstable[i] = { ["y"] = zoneSupportGroupY + math.random(10,100), ["type"] = rArt(side), ["name"] = zoneSupportname..string.format(zoneSupportunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneSupportheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneSupportGroupX + math.random(10,100), } end for i = nrofLOGsingroup + nrofscoutsingroup + nrofInfTranssingroup + nrofARTingroup + 1, nrofLOGsingroup + nrofscoutsingroup + nrofInfTranssingroup + nrofARTingroup + nrofSPAAAingroup do Supportunitstable[i] = { ["y"] = zoneSupportGroupY + math.random(10,100), ["type"] = rAAA(side), ["name"] = zoneSupportname..string.format(zoneSupportunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneSupportheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneSupportGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomSupport 6", 10) local zoneSupportdata = { ["visible"] = false, ["groupId"] = math.random(10000,100000), ["taskSelected"] = true, ["hidden"] = false, ["units"] = Supportunitstable, ["name"] = zoneSupportname..string.format(zoneSupportunitcounter), ["task"] = "Ground Nothing", } --trigger.action.outText(nation.."spawnrandomSupport 7", 10) zoneSupportgroupstrength = {} zoneSupportgroupstrength[nation] = {} zoneSupportgroupstrength[nation][1] = {number = 0} zoneSupportgroupstrengthnumber = 0 for i = 1, #Supporttable[nation] do if Group.getByName(Supporttable[nation][i].groupname) == nil then Supporttable[nation][i] = {groupname = 'dead'} elseif Group.getByName(Supporttable[nation][i].groupname) ~= nil then zoneSupportgroupstrengthnumber = zoneSupportgroupstrengthnumber + 1 zoneSupportgroupstrength[nation][1] = {number = zoneSupportgroupstrengthnumber} end end --trigger.action.outText(nation.."spawnrandomSupport 8", 10) if zoneSupportgroupstrength[nation][1].number < maxnumberofSupportgroups then coalition.addGroup(zoneSupportcountry, Group.Category.GROUND, zoneSupportdata) --trigger.action.outText(nation.."spawnrandomSupport 9", 10) --MBots Dismount Skript implementation: "MANPADS", "Mortar", "Rifle", "ZU-23" for i = nrofInfTranssingroup + 1, nrofscoutsingroup + nrofInfTranssingroup do --trigger.action.outText(nation.."spawnrandomSupport 10", 10)--stop AddDismounts(zoneSupportname..string.format(zoneSupportunitcounter)..string.format(i), "Rifle") end --trigger.action.outText(nation.."spawnrandomSupport 11", 10) Supporttable[nation][#Supporttable[nation]+1] = { groupname = zoneSupportname..string.format(zoneSupportunitcounter), group = Group.getByName(zoneSupportname..string.format(zoneSupportunitcounter)), spawnzone = actualspawnzone, number = #Supporttable[nation] } trigger.action.outTextForCoalition(1, "Random Support group generated.\nGenerated: "..string.format(zoneSupportgroupstrength[nation][1].number + 1).." of "..string.format(maxnumberofSupportgroups), 10) else trigger.action.outTextForCoalition(1, "No more ressources available. Try another group!", 10) end end function RedInfGroup(zonename) local actualspawnzonename = zonename local nation = "Russian" local zoneMInfcountry = country.id.RUSSIA local side = 'red' local zoneMInfname = "RU MInf " local actualspawnzone = trigger.misc.getZone(actualspawnzonename) actualspawnzonepos = {} local actualspawnzonex = actualspawnzone.point.x local actualspawnzonez = actualspawnzone.point.z zoneMInfheading = math.random(-20,20)/10*math.pi local zoneMInfGroupX = actualspawnzonex + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) local zoneMInfGroupY = actualspawnzonez + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) zoneMInfunitcounter = #MInftable[nation] local nrofscoutsingroup = math.random(1,2) local nrofInfTranssingroup = math.random(6,8) local nrofLOGsingroup = math.random(2,4) --trigger.action.outText(nation.."spawnrandomMInf 2", 10) MInfunitstable= {} for i =1, nrofscoutsingroup do MInfunitstable[i] = { ["y"] = zoneMInfGroupY + math.random(10,100), ["type"] = rScout(side), ["name"] = zoneMInfname..string.format(zoneMInfunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneMInfheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneMInfGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomMInf 3", 10) for i = nrofscoutsingroup + 1, nrofscoutsingroup + nrofInfTranssingroup do MInfunitstable[i] = { ["y"] = zoneMInfGroupY + math.random(10,100), ["type"] = rInfTrans(side), ["name"] = zoneMInfname..string.format(zoneMInfunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneMInfheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneMInfGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomMInf 4", 10) for i = nrofscoutsingroup + nrofInfTranssingroup + 1, nrofLOGsingroup + nrofscoutsingroup + nrofInfTranssingroup do MInfunitstable[i] = { ["y"] = zoneMInfGroupY + math.random(10,100), ["type"] = rLogvehicle(side), ["name"] = zoneMInfname..string.format(zoneMInfunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneMInfheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneMInfGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomMInf 5", 10) --trigger.action.outText(nation.."spawnrandomMInf 6", 10) local zoneMInfdata = { ["visible"] = false, ["groupId"] = math.random(10000,100000), ["taskSelected"] = true, ["hidden"] = false, ["units"] = MInfunitstable, ["name"] = zoneMInfname..string.format(zoneMInfunitcounter), ["task"] = "Ground Nothing", } --trigger.action.outText(nation.."spawnrandomMInf 7", 10) zoneMInfgroupstrength = {} zoneMInfgroupstrength[nation] = {} zoneMInfgroupstrength[nation][1] = {number = 0} zoneMInfgroupstrengthnumber = 0 for i = 1, #MInftable[nation] do if Group.getByName(MInftable[nation][i].groupname) == nil then MInftable[nation][i] = {groupname = 'dead'} elseif Group.getByName(MInftable[nation][i].groupname) ~= nil then zoneMInfgroupstrengthnumber = zoneMInfgroupstrengthnumber + 1 zoneMInfgroupstrength[nation][1] = {number = zoneMInfgroupstrengthnumber} end end --trigger.action.outText(nation.."spawnrandomMInf 8", 10) if zoneMInfgroupstrength[nation][1].number < maxnumberofMInfgroups then coalition.addGroup(zoneMInfcountry, Group.Category.GROUND, zoneMInfdata) --trigger.action.outText(nation.."spawnrandomMInf 9", 10) --MBots Dismount Skript implementation: "MANPADS", "Mortar", "Rifle", "ZU-23" for i = 1, nrofscoutsingroup do --trigger.action.outText(nation.."spawnrandomMInf 10", 10)--stop AddDismounts(zoneMInfname..string.format(zoneMInfunitcounter)..string.format(i), "MANPADS") end for i = nrofscoutsingroup + 1, nrofscoutsingroup + nrofInfTranssingroup - 2 do --trigger.action.outText(nation.."spawnrandomMInf 10", 10)--stop AddDismounts(zoneMInfname..string.format(zoneMInfunitcounter)..string.format(i), "Rifle") end for i = nrofscoutsingroup + nrofInfTranssingroup - 2, nrofscoutsingroup + nrofInfTranssingroup - 1 do --trigger.action.outText(nation.."spawnrandomMInf 10", 10)--stop AddDismounts(zoneMInfname..string.format(zoneMInfunitcounter)..string.format(i), "Mortar") end for i = nrofscoutsingroup + nrofInfTranssingroup - 1, nrofscoutsingroup + nrofInfTranssingroup do --trigger.action.outText(nation.."spawnrandomMInf 10", 10)--stop AddDismounts(zoneMInfname..string.format(zoneMInfunitcounter)..string.format(i), "ZU-23") end --trigger.action.outText(nation.."spawnrandomMInf 11", 10) MInftable[nation][#MInftable[nation]+1] = { groupname = zoneMInfname..string.format(zoneMInfunitcounter), group = Group.getByName(zoneMInfname..string.format(zoneMInfunitcounter)), spawnzone = actualspawnzone, number = #MInftable[nation] } trigger.action.outTextForCoalition(1, "Random Mot.Inf group generated.\nGenerated: "..string.format(zoneMInfgroupstrength[nation][1].number + 1).." of "..string.format(maxnumberofMInfgroups), 10) else trigger.action.outTextForCoalition(1, "No more ressources available. Try another group!", 10) end end function RedSHORADGroup(zonename) local actualspawnzonename = zonename local nation = "Russian" local zoneSHORADcountry = country.id.RUSSIA local side = 'red' local zoneSHORADname = "RU SHORAD " local actualspawnzone = trigger.misc.getZone(actualspawnzonename) actualspawnzonepos = {} local actualspawnzonex = actualspawnzone.point.x local actualspawnzonez = actualspawnzone.point.z zoneSHORADheading = math.random(-20,20)/10*math.pi local zoneSHORADGroupX = actualspawnzonex + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) local zoneSHORADGroupY = actualspawnzonez + math.random(actualspawnzone.radius * -1, actualspawnzone.radius) zoneSHORADunitcounter = #SHORADtable[nation] local nrofscoutsingroup = math.random(1,2) local nrofSHORADsingroup = math.random(4,6) local nrofLOGsingroup = math.random(1,2) local nrofSPAAAingroup = math.random(1,2) --trigger.action.outText(nation.."spawnrandomSHORAD 2", 10) SHORADunitstable= {} for i =1, nrofscoutsingroup do SHORADunitstable[i] = { ["y"] = zoneSHORADGroupY + math.random(10,100), ["type"] = rScout(side), ["name"] = zoneSHORADname..string.format(zoneSHORADunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneSHORADheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneSHORADGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomSHORAD 3", 10) for i = nrofscoutsingroup + 1, nrofscoutsingroup + nrofSHORADsingroup do SHORADunitstable[i] = { ["y"] = zoneSHORADGroupY + math.random(10,100), ["type"] = rSHORAD(side), ["name"] = zoneSHORADname..string.format(zoneSHORADunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneSHORADheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneSHORADGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomSHORAD 4", 10) for i = nrofscoutsingroup + nrofSHORADsingroup + 1, nrofLOGsingroup + nrofscoutsingroup + nrofSHORADsingroup do SHORADunitstable[i] = { ["y"] = zoneSHORADGroupY + math.random(10,100), ["type"] = rLogvehicle(side), ["name"] = zoneSHORADname..string.format(zoneSHORADunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneSHORADheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneSHORADGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomSHORAD 5", 10)--stop for i = nrofLOGsingroup + nrofscoutsingroup + nrofSHORADsingroup + 1, nrofLOGsingroup + nrofscoutsingroup + nrofSHORADsingroup + nrofSPAAAingroup do SHORADunitstable[i] = { ["y"] = zoneSHORADGroupY + math.random(10,100), ["type"] = rAAA(side), ["name"] = zoneSHORADname..string.format(zoneSHORADunitcounter)..string.format(i), ["unitId"] = math.random(10000,100000), ["heading"] = zoneSHORADheading, ["playerCanDrive"] = true, ["skill"] = "Random", ["x"] = zoneSHORADGroupX + math.random(10,100), } end --trigger.action.outText(nation.."spawnrandomSHORAD 6", 10) local zoneSHORADdata = { ["visible"] = false, ["groupId"] = math.random(10000,100000), ["taskSelected"] = true, ["hidden"] = false, ["units"] = SHORADunitstable, ["name"] = zoneSHORADname..string.format(zoneSHORADunitcounter), ["task"] = "Ground Nothing", } --trigger.action.outText(nation.."spawnrandomSHORAD 7", 10) zoneSHORADgroupstrength = {} zoneSHORADgroupstrength[nation] = {} zoneSHORADgroupstrength[nation][1] = {number = 0} zoneSHORADgroupstrengthnumber = 0 for i = 1, #SHORADtable[nation] do if Group.getByName(SHORADtable[nation][i].groupname) == nil then SHORADtable[nation][i] = {groupname = 'dead'} elseif Group.getByName(SHORADtable[nation][i].groupname) ~= nil then zoneSHORADgroupstrengthnumber = zoneSHORADgroupstrengthnumber + 1 zoneSHORADgroupstrength[nation][1] = {number = zoneSHORADgroupstrengthnumber} end end --trigger.action.outText(nation.."spawnrandomSHORAD 8", 10) if zoneSHORADgroupstrength[nation][1].number < maxnumberofSHORADgroups then coalition.addGroup(zoneSHORADcountry, Group.Category.GROUND, zoneSHORADdata) --trigger.action.outText(nation.."spawnrandomSHORAD 9", 10) --MBots Dismount Skript implementation: "MANPADS", "Mortar", "Rifle", "ZU-23" for i = 1,nrofscoutsingroup do --trigger.action.outText(nation.."spawnrandomSHORAD 10", 10)--stop AddDismounts(zoneSHORADname..string.format(zoneSHORADunitcounter)..string.format(i), "Rifle") end --trigger.action.outText(nation.."spawnrandomSHORAD 11", 10) SHORADtable[nation][#SHORADtable[nation]+1] = { groupname = zoneSHORADname..string.format(zoneSHORADunitcounter), group = Group.getByName(zoneSHORADname..string.format(zoneSHORADunitcounter)), spawnzone = actualspawnzone, number = #SHORADtable[nation] } trigger.action.outTextForCoalition(1, "Random SHORAD group generated.\nGenerated: "..string.format(zoneSHORADgroupstrength[nation][1].number + 1).." of "..string.format(maxnumberofSHORADgroups), 10) else trigger.action.outTextForCoalition(1, "No more ressources available. Try another group!", 10) end end --xxxxxxxxxxxxxxxxxxxxxxxxxxx randomized units function rScout(side) local coalition = side scoutvehilce = {} scoutvehilce["USA"] = { [1] = {unittype = "Hummer"}, [2] = {unittype = "Hummer"}, [3] = {unittype = "Hummer"}, [4] = {unittype = "Hummer"}, [5] = {unittype = "Hummer"}, [6] = {unittype = "Hummer"}, [7] = {unittype = "M1043 HMMWV Armament"}, [8] = {unittype = "M1043 HMMWV Armament"}, [9] = {unittype = "M1043 HMMWV Armament"}, [10] = {unittype = "M1043 HMMWV Armament"}, [11] = {unittype = "M1045 HMMWV TOW"}, [12] = {unittype = "M1045 HMMWV TOW"}, [13] = {unittype = "M1126 Stryker ICV"}, [14] = {unittype = "M1126 Stryker ICV"}, [15] = {unittype = "M1134 Stryker ATGM"}, [16] = {unittype = "M1043 HMMWV Armament"}, [17] = {unittype = "LAV-25"}, [18] = {unittype = "M1126 Stryker ICV"}, [19] = {unittype = "M1043 HMMWV Armament"}, [20] = {unittype = "LAV-25"}, } scoutvehilce["Russia"] = { [1] = {unittype = "UAZ-469"}, [2] = {unittype = "UAZ-469"}, [3] = {unittype = "BRDM-2"}, [4] = {unittype = "BTR-80"}, [5] = {unittype = "BTR-80"}, [6] = {unittype = "UAZ-469"}, [7] = {unittype = "UAZ-469"}, [8] = {unittype = "UAZ-469"}, [9] = {unittype = "UAZ-469"}, [10] = {unittype = "BRDM-2"}, [11] = {unittype = "BRDM-2"}, [12] = {unittype = "BTR-80"}, } if coalition == 'blue' then rscoutype = scoutvehilce["USA"][math.random(1,#scoutvehilce["USA"])].unittype elseif coalition == 'red' then rscoutype = scoutvehilce["Russia"][math.random(1,#scoutvehilce["Russia"])].unittype end return rscoutype end function rLogvehicle(side)--ok local coalition = side Logisticsvehilce = {} Logisticsvehilce["USA"] = { [1] = {unittype = "M978 HEMTT Tanker"}, [2] = {unittype = "M 818"}, [3] = {unittype = "M 818"}, [4] = {unittype = "M 818"}, [5] = {unittype = "M 818"}, [6] = {unittype = "HEMTT TFFT"}, } Logisticsvehilce["Russia"] = { [1] = {unittype = "Ural-375 APA-50"}, [2] = {unittype = "Ural-4320T"}, [3] = {unittype = "Ural-375"}, [4] = {unittype = "ATMZ-5"}, [5] = {unittype = "ATZ-10"}, [6] = {unittype = "SKP-11"}, [7] = {unittype = "GAZ-66"}, [8] = {unittype = "Ural-4320-31"}, [9] = {unittype = "Ural-375"}, [10] = {unittype = "Ural-375"}, [11] = {unittype = "Ural-375"}, [12] = {unittype = "Ural-375"}, [13] = {unittype = "Ural-4320-31"}, [14] = {unittype = "Ural-4320-31"}, [15] = {unittype = "Ural-4320-31"}, [16] = {unittype = "Ural-4320T"}, [17] = {unittype = "Ural-4320T"}, } if coalition == 'blue' then rlogtype = Logisticsvehilce["USA"][math.random(1,#Logisticsvehilce["USA"])].unittype elseif coalition == 'red' then rlogtype = Logisticsvehilce["Russia"][math.random(1,#Logisticsvehilce["Russia"])].unittype end return rlogtype end --ok function rIFV(side)--ok local coalition = side IFVehicle = {} IFVehicle["USA"] = { [1] = {unittype = "M1126 Stryker ICV"}, [2] = {unittype = "M1134 Stryker ATGM"}, [3] = {unittype = "M-2 Bradley"}, [4] = {unittype = "M1128 Stryker MGS"}, [5] = {unittype = "LAV-25"}, [6] = {unittype = "AAV7"}, [7] = {unittype = "M-113"}, [8] = {unittype = "LVTP-7"}, [9] = {unittype = "M-2 Bradley"}, [10] = {unittype = "M-2 Bradley"}, [11] = {unittype = "M1126 Stryker ICV"}, [12] = {unittype = "M1126 Stryker ICV"}, [13] = {unittype = "M1126 Stryker ICV"}, [14] = {unittype = "M1134 Stryker ATGM"}, [15] = {unittype = "AAV7"}, [16] = {unittype = "LAV-25"}, [17] = {unittype = "LVTP-7"}, } IFVehicle["Russia"] = { [1] = {unittype = "BMP-1"}, [2] = {unittype = "BMD-1"}, [3] = {unittype = "BMP-2"}, [4] = {unittype = "BRDM-2"}, [5] = {unittype = "MTLB"}, [6] = {unittype = "BTR_D"}, [7] = {unittype = "BMP-3"}, [8] = {unittype = "BTR-80"}, [9] = {unittype = "BMP-1"}, [10] = {unittype = "BMP-1"}, [11] = {unittype = "BMP-2"}, [12] = {unittype = "BMP-2"}, [13] = {unittype = "MTLB"}, [14] = {unittype = "MTLB"}, [15] = {unittype = "BRDM-2"}, [16] = {unittype = "BTR_D"}, [17] = {unittype = "BRDM-2"}, } if coalition == 'blue' then rIFVtype = IFVehicle["USA"][math.random(1,#IFVehicle["USA"])].unittype elseif coalition == 'red' then rIFVtype = IFVehicle["Russia"][math.random(1,#IFVehicle["Russia"])].unittype end return rIFVtype end --ok function rMInf(side)--ok local coalition = side MobileInfantry = {} MobileInfantry["USA"] = { [1] = {unittype = "Soldier M4"}, [2] = {unittype = "Soldier M249"}, [3] = {unittype = "Soldier M4"}, [4] = {unittype = "Soldier M4"}, } MobileInfantry["Russia"] = { [1] = {unittype = "Paratrooper RPG-16"}, [2] = {unittype = "Paratrooper AKS-74"}, [3] = {unittype = "Infantry AK"}, [4] = {unittype = "Infantry AK"}, [5] = {unittype = "Infantry AK"}, [6] = {unittype = "Infantry AK"}, [7] = {unittype = "Infantry AK"}, } if coalition == 'blue' then rMInftype = MobileInfantry["USA"][math.random(1,#MobileInfantry["USA"])].unittype elseif coalition == 'red' then rMInftype = MobileInfantry["Russia"][math.random(1,#MobileInfantry["Russia"])].unittype end return rMInftype end --ok function rSInf(side) local coalition = side StaticInfantry = {} StaticInfantry["USA"] = { [1] = {unittype = "Stinger manpad"}, [2] = {unittype = "Stinger comm"}, [3] = {unittype = "2B11 mortar"}, [4] = {unittype = "Stinger manpad"}, [5] = {unittype = "2B11 mortar"}, [6] = {unittype = "2B11 mortar"}, [7] = {unittype = "2B11 mortar"}, } StaticInfantry["Russia"] = { [1] = {unittype = "SA-18 Igla-S manpad"}, [2] = {unittype = "SA-18 Igla-S comm"}, [3] = {unittype = "2B11 mortar"}, [4] = {unittype = "ZU-23 Emplacement Closed"}, [5] = {unittype = "SA-18 Igla-S manpad"}, [6] = {unittype = "ZU-23 Emplacement Closed"}, [7] = {unittype = "ZU-23 Emplacement Closed"}, } if coalition == 'blue' then rSInftype = StaticInfantry["USA"][math.random(1,#StaticInfantry["USA"])].unittype elseif coalition == 'red' then rSInftype = StaticInfantry["Russia"][math.random(1,#StaticInfantry["Russia"])].unittype end return rSInftype end function rInfTrans(side) local coalition = side InfantryTransport = {} InfantryTransport["USA"] = { [1] = {unittype = "Hummer"}, [2] = {unittype = "M 818"}, [3] = {unittype = "M1043 HMMWV Armament"}, [4] = {unittype = "M1045 HMMWV TOW"}, [5] = {unittype = "M 818"}, [6] = {unittype = "M 818"}, [7] = {unittype = "M 818"}, } InfantryTransport["Russia"] = { [1] = {unittype = "UAZ-469"}, [2] = {unittype = "Ural-4320T"}, [3] = {unittype = "Ural-4320-31"}, [4] = {unittype = "Ural-4320T"}, [5] = {unittype = "Ural-4320T"}, [6] = {unittype = "Ural-4320T"}, [7] = {unittype = "Ural-4320T"}, } if coalition == 'blue' then rInfTrtype = InfantryTransport["USA"][math.random(1,#InfantryTransport["USA"])].unittype elseif coalition == 'red' then rInfTrtype = InfantryTransport["Russia"][math.random(1,#InfantryTransport["Russia"])].unittype end return rInfTrtype end function rMBT(side)--ok local coalition = side MBTanks = {} MBTanks["USA"] = { [1] = {unittype = "M-1 Abrams"}, [2] = {unittype = "Leopard 2"}, [3] = {unittype = "Leopard 1A3"}, [4] = {unittype = "M-1 Abrams"}, [5] = {unittype = "M-1 Abrams"}, [6] = {unittype = "M-1 Abrams"}, [7] = {unittype = "M-1 Abrams"}, } MBTanks["Russia"] = { [1] = {unittype = "T-55"}, [2] = {unittype = "T-80UD"}, [3] = {unittype = "T-80UD"}, [4] = {unittype = "T-72B"}, [5] = {unittype = "T-90"}, [6] = {unittype = "T-72B"}, [7] = {unittype = "T-72B"}, [8] = {unittype = "T-72B"}, [9] = {unittype = "T-72B"}, [10] = {unittype = "T-72B"}, } if coalition == 'blue' then rMBTanktype = MBTanks["USA"][math.random(1,#MBTanks["USA"])].unittype elseif coalition == 'red' then rMBTanktype = MBTanks["Russia"][math.random(1,#MBTanks["Russia"])].unittype end return rMBTanktype end --ok function rSHORAD(side)--ok local coalition = side MobileSHORAD = {} MobileSHORAD["USA"] = { [1] = {unittype = "M48 Chaparral"}, [2] = {unittype = "M6 Linebacker"}, [3] = {unittype = "M1097 Avenger"}, [4] = {unittype = "Roland ADS"}, [5] = {unittype = "Roland Radar"}, [6] = {unittype = "M6 Linebacker"}, [7] = {unittype = "M6 Linebacker"}, [8] = {unittype = "Roland ADS"}, [9] = {unittype = "Roland ADS"}, [10] = {unittype = "M6 Linebacker"}, } MobileSHORAD["Russia"] = { [1] = {unittype = "Strela-1 9P31"}, [2] = {unittype = "Strela-10M3"}, [3] = {unittype = "2S6 Tunguska"}, [4] = {unittype = "Tor 9A331"}, [5] = {unittype = "Osa 9A33 ln"}, [6] = {unittype = "2S6 Tunguska"}, [7] = {unittype = "2S6 Tunguska"}, [8] = {unittype = "Strela-10M3"}, [9] = {unittype = "Strela-1 9P31"}, [10] = {unittype = "2S6 Tunguska"}, } if coalition == 'blue' then rMSHORADtype = MobileSHORAD["USA"][math.random(1,#MobileSHORAD["USA"])].unittype elseif coalition == 'red' then rMSHORADtype = MobileSHORAD["Russia"][math.random(1,#MobileSHORAD["Russia"])].unittype end return rMSHORADtype end --ok function rAAA(side) local coalition = side MobileAAA = {} MobileAAA["USA"] = { [1] = {unittype = "Vulcan"}, [2] = {unittype = "Gepard"}, [3] = {unittype = "Vulcan"}, [4] = {unittype = "Vulcan"}, } MobileAAA["Russia"] = { [1] = {unittype = "ZSU-23-4 Shilka"}, [2] = {unittype = "Ural-375 ZU-23"}, [3] = {unittype = "ZSU-23-4 Shilka"}, [4] = {unittype = "ZSU-23-4 Shilka"}, } if coalition == 'blue' then rAAAtype = MobileAAA["USA"][math.random(1,#MobileAAA["USA"])].unittype elseif coalition == 'red' then rAAAtype = MobileAAA["Russia"][math.random(1,#MobileAAA["Russia"])].unittype end return rAAAtype end function rArt(side) local coalition = side Artillery = {} Artillery["USA"] = { [1] = {unittype = "M-109"}, [2] = {unittype = "MLRS" }, [3] = {unittype = "M-109"}, [4] = {unittype = "M-109"}, } Artillery["Russia"] = { [1] = {unittype = "SAU Msta"}, [2] = {unittype = "SAU Akatsia"}, [3] = {unittype = "SAU Msta"}, } if coalition == 'blue' then rArttype = Artillery["USA"][math.random(1,#Artillery["USA"])].unittype elseif coalition == 'red' then rArttype = Artillery["Russia"][math.random(1,#Artillery["Russia"])].unittype end return rArttype end end--of script