говорите встреча эксклюзивна для красной зоны? да как бы не так... во первых у меня суперсолдаты ориона спавнятся не по одному а пачками, как первой так и второй фазы... продырявил бочку с белым светом в жёлтой зоне и тут же часть гражданских обратилась в развитых.. в желтой мать её зоне, не знаю как это вышло, но это гениально...
I translated your comment to english. Well super soldiers and evolved spawn from whitelight are in all zone. Only spawning infected is red zone exclusive
FOR THOSE WHO ARE FACING THE ISSUE OF TOO MANY SUPER SOLDIER SPAWNS, here is the potential fix
for Google Studio coz i cant code s#*! lol but it fixed the issue
NAVIGATE TO SUPER SOLDIER SQUAD SECTION OF THE SCRIPT "disguiseencounter.lua"
1. script is divided into two sections, first is random encounter and the other half is super soldier. 2. head to super soldier, its commented as -- super soldier squad -- super soldier squad use ctrl + F to find it. 3. once you have found it replace the entire section from what you have with this 👇.
-- super soldier squad -- super soldier squad if Sencountertime == nil and go_VariableIntGetGOH(PLAYER, "SEncount") == 0 then Sencountertime = 0.0 end if disguise_IsInAlert(PLAYER) and go_VariableIntGetGOH(PLAYER, "SEncount") == 0 then -- Immediately set SEncount to 1 to prevent re-triggering go_VariableIntSetGOH(PLAYER, "SEncount", 1) Sencountertime = Sencountertime + math.random(10,15) local Super = 4 local OrionS = 1 schedule(Sencountertime, function() if #go_GetAllTagged("SO") <= 4 then for i = 1, Super, 1 do local SS = ai_NonManaged_Spawn_CPP("supersquad", "SuperSoldier", go_GetPosition(PLAYER) + Vector(math.random(1,100), 0, math.random(1,100)), go_GetOrientation(PLAYER), "") go_AddTag(SS, "SO") go_AddTag(SS, "supersoldiersquad") -- Reset SEncount after spawning go_VariableIntSetGOH(PLAYER, "SEncount", 0) end end if #go_GetAllTagged("SOrion") <= 0 then for i = 1, OrionS, 1 do local SS = ai_NonManaged_Spawn_CPP("supersquadO", "OrionSuperSoldier", go_GetPosition(PLAYER) + Vector(math.random(1,100), 0, math.random(1,100)), go_GetOrientation(PLAYER), "") go_AddTag(SS, "SOrion") go_AddTag(SS, "supersoldiersquad") -- Reset SEncount after spawning go_VariableIntSetGOH(PLAYER, "SEncount", 0) end end end) end if #go_GetAllTagged("supersoldiersquad") > 0 then for i = 1, #go_GetAllTagged("supersoldiersquad") do local Supe = go_GetAllTagged("supersoldiersquad")[i] if go_IsValid(Supe) then if mms_IsEventMissionActive() == true or mms_IsStoryMissionActive() == true or mms_IsNonBackgroundMissionActive() == true then go_KillCharacter(Supe) elseif not disguise_IsInAlert(PLAYER) and vector.VectorDistance(go_GetPosition(PLAYER), go_GetPosition(Supe)) > 80 then go_KillCharacter(Supe) end end end end
FOR THOSE WHO WANT TO KNOW HOW THIS WORKS. here is the explaination by Google studio 👇
The Fix We Made: The main problem was that the go_VariableIntSetGOH(PLAYER, "SEncount", 0) was inside the loop that spawned individual Super Soldiers. This was incorrect. Here's the corrected section: if disguise_IsInAlert(PLAYER) and go_VariableIntGetGOH(PLAYER, "SEncount") == 0 then -- Immediately set SEncount to 1 to prevent re-triggeringgo_VariableIntSetGOH(PLAYER, "SEncount", 1)Sencountertime = Sencountertime + math.random(10,15)local Super = 4local OrionS = 1schedule(Sencountertime, function()if #go_GetAllTagged("SO") <= 4 thenfor i = 1, Super, 1 dolocal SS = ai_NonManaged_Spawn_CPP("supersquad", "SuperSoldier", go_GetPosition(PLAYER) + Vector(math.random(1,100), 0, math.random(1,100)), go_GetOrientation(PLAYER), "")go_AddTag(SS, "SO")go_AddTag(SS, "supersoldiersquad")-- Reset SEncount after spawningendgo_VariableIntSetGOH(PLAYER, "SEncount", 0)endif #go_GetAllTagged("SOrion") <= 0 thenfor i = 1, OrionS, 1 dolocal SS = ai_NonManaged_Spawn_CPP("supersquadO", "OrionSuperSoldier", go_GetPosition(PLAYER) + Vector(math.random(1,100), 0, math.random(1,100)), go_GetOrientation(PLAYER), "")go_AddTag(SS, "SOrion")go_AddTag(SS, "supersoldiersquad")-- Reset SEncount after spawningendgo_VariableIntSetGOH(PLAYER, "SEncount", 0)endend)end
go_VariableIntSetGOH(PLAYER, "SEncount", 1) was moved before the schedule function. This ensures that the "SEncount" switch is turned ON as soon as the trigger conditions are met, preventing the script from immediately re-triggering.
go_VariableIntSetGOH(PLAYER, "SEncount", 0) was moved inside the schedule function, but after both loops for spawning regular and Orion Super Soldiers are finished. This means the "SEncount" switch is only turned OFF after the entire squad has been spawned, allowing time for the alert to potentially end or for the player to move away before another squad can spawn.
Essentially, the fix ensures that the script waits until a whole squad is spawned before allowing another spawn to be considered.
BIT EXTRAA
after killing the super soldiers, they will no longer spawn beoz their is hard budget set to them. which is 20 for everything. you can see it and change it in the first part of the script
this is what it looks like in the script.
ai_SetCategoryCharacterBudget( 20, CharacterBudgetType.Flyer, true )ai_SetCategoryCharacterBudget( 20, CharacterBudgetType.Brawler, true )ai_SetCategoryCharacterBudget( 20, CharacterBudgetType.Infected3, true )ai_SetCategoryCharacterBudget( 20, CharacterBudgetType.Evolved, true )ai_SetCategoryCharacterBudget( 20, CharacterBudgetType.SuperSoldier, true ) you can change the super soldier character budget to 100, so you can keep fighting them a bit longer
consuming orion soldier will always cause you kneel down like in mission but im sure my script already has a fix for that unless something conflict with it! If my script doesnt have this line, then patse it at the end of script if go_IsPlayingBranchByPath(PLAYER, "//supersoldier/scripted/story_b3/devastator_acquisition", true) and mms_IsStoryMissionActive() ~= true then go_ClearMotionTree(PLAYER) end
hmmm you shouldnt encounter orion soldier in mission. Probably orion soldiers still use same tag as super soldier so it created the problem. Please check the line " go_AddTag(OS, "SOrion") " if its the tag SS instead of OS then rename it to OS. the line below should be OS too " go_AddTag(OS, "supesquad") ". I have no intend to add them into missions
I deleted "and mms_IsStoryMissionActive() ~= true" after "if go_IsPlayingBranchByPath(PLAYER, "//supersoldier/scripted/story_b3/devastator_acquisition", true)". This worked!
I got the mod working but the game seems laggy like when theres a few evolved spersoldiers and other infcted ighting at the same time the game kinda goes into slow motion every couple seconds.
this intermitent slow motion seems to happen when the strike team spawns, and it persists until i restart the game
28 comments
no longer exists
only option is epic melee combat
Discord link works
for Google Studio coz i cant code s#*! lol but it fixed the issue
NAVIGATE TO SUPER SOLDIER SQUAD SECTION OF THE SCRIPT "disguiseencounter.lua"
1. script is divided into two sections, first is random encounter and the other half is super soldier.
2. head to super soldier, its commented as
-- super soldier squad
-- super soldier squad
use ctrl + F to find it.
3. once you have found it replace the entire section from what you have with this 👇.
-- super soldier squad
-- super soldier squad
if Sencountertime == nil and go_VariableIntGetGOH(PLAYER, "SEncount") == 0 then
Sencountertime = 0.0
end
if disguise_IsInAlert(PLAYER) and go_VariableIntGetGOH(PLAYER, "SEncount") == 0 then
-- Immediately set SEncount to 1 to prevent re-triggering
go_VariableIntSetGOH(PLAYER, "SEncount", 1)
Sencountertime = Sencountertime + math.random(10,15)
local Super = 4
local OrionS = 1
schedule(Sencountertime, function()
if #go_GetAllTagged("SO") <= 4 then
for i = 1, Super, 1 do
local SS = ai_NonManaged_Spawn_CPP("supersquad", "SuperSoldier", go_GetPosition(PLAYER) + Vector(math.random(1,100), 0, math.random(1,100)), go_GetOrientation(PLAYER), "")
go_AddTag(SS, "SO")
go_AddTag(SS, "supersoldiersquad")
-- Reset SEncount after spawning
go_VariableIntSetGOH(PLAYER, "SEncount", 0)
end
end
if #go_GetAllTagged("SOrion") <= 0 then
for i = 1, OrionS, 1 do
local SS = ai_NonManaged_Spawn_CPP("supersquadO", "OrionSuperSoldier", go_GetPosition(PLAYER) + Vector(math.random(1,100), 0, math.random(1,100)), go_GetOrientation(PLAYER), "")
go_AddTag(SS, "SOrion")
go_AddTag(SS, "supersoldiersquad")
-- Reset SEncount after spawning
go_VariableIntSetGOH(PLAYER, "SEncount", 0)
end
end
end)
end
if #go_GetAllTagged("supersoldiersquad") > 0 then
for i = 1, #go_GetAllTagged("supersoldiersquad") do
local Supe = go_GetAllTagged("supersoldiersquad")[i]
if go_IsValid(Supe) then
if mms_IsEventMissionActive() == true or mms_IsStoryMissionActive() == true or mms_IsNonBackgroundMissionActive() == true then
go_KillCharacter(Supe)
elseif not disguise_IsInAlert(PLAYER) and vector.VectorDistance(go_GetPosition(PLAYER), go_GetPosition(Supe)) > 80 then
go_KillCharacter(Supe)
end
end
end
end
FOR THOSE WHO WANT TO KNOW HOW THIS WORKS. here is the explaination by Google studio 👇
The Fix We Made:
The main problem was that the go_VariableIntSetGOH(PLAYER, "SEncount", 0) was inside the loop that spawned individual Super Soldiers. This was incorrect.
Here's the corrected section:
if disguise_IsInAlert(PLAYER) and go_VariableIntGetGOH(PLAYER, "SEncount") == 0 then -- Immediately set SEncount to 1 to prevent re-triggeringgo_VariableIntSetGOH(PLAYER, "SEncount", 1)Sencountertime = Sencountertime + math.random(10,15)local Super = 4local OrionS = 1schedule(Sencountertime, function()if #go_GetAllTagged("SO") <= 4 thenfor i = 1, Super, 1 dolocal SS = ai_NonManaged_Spawn_CPP("supersquad", "SuperSoldier", go_GetPosition(PLAYER) + Vector(math.random(1,100), 0, math.random(1,100)), go_GetOrientation(PLAYER), "")go_AddTag(SS, "SO")go_AddTag(SS, "supersoldiersquad")-- Reset SEncount after spawningendgo_VariableIntSetGOH(PLAYER, "SEncount", 0)endif #go_GetAllTagged("SOrion") <= 0 thenfor i = 1, OrionS, 1 dolocal SS = ai_NonManaged_Spawn_CPP("supersquadO", "OrionSuperSoldier", go_GetPosition(PLAYER) + Vector(math.random(1,100), 0, math.random(1,100)), go_GetOrientation(PLAYER), "")go_AddTag(SS, "SOrion")go_AddTag(SS, "supersoldiersquad")-- Reset SEncount after spawningendgo_VariableIntSetGOH(PLAYER, "SEncount", 0)endend)end
Use code with caution.Lua
Explanation of the Fix:
- go_VariableIntSetGOH(PLAYER, "SEncount", 1) was moved before the schedule function. This ensures that the "SEncount" switch is turned ON as soon as the
- go_VariableIntSetGOH(PLAYER, "SEncount", 0) was moved inside the schedule function, but after both loops for spawning regular and Orion Super Soldiers are finished. This means the "SEncount" switch is only turned OFF after the entire
Essentially, the fix ensures that the script waits until a whole squad is spawnedtrigger conditions are met, preventing the script from immediately re-triggering.
squad has been spawned, allowing time for the alert to potentially end or for the player to move away before another squad can spawn.
before allowing another spawn to be considered.
BIT EXTRAA
after killing the super soldiers, they will no longer spawn beoz their is hard budget set to them. which is 20 for everything. you can see it and change it in the first part of the script
this is what it looks like in the script.
ai_SetCategoryCharacterBudget( 20, CharacterBudgetType.Flyer, true )ai_SetCategoryCharacterBudget( 20, CharacterBudgetType.Brawler, true )ai_SetCategoryCharacterBudget( 20, CharacterBudgetType.Infected3, true )ai_SetCategoryCharacterBudget( 20, CharacterBudgetType.Evolved, true )ai_SetCategoryCharacterBudget( 20, CharacterBudgetType.SuperSoldier, true )
you can change the super soldier character budget to 100, so you can keep fighting them a bit longer
Is this a bug?
If my script doesnt have this line, then patse it at the end of script
if go_IsPlayingBranchByPath(PLAYER, "//supersoldier/scripted/story_b3/devastator_acquisition", true) and mms_IsStoryMissionActive() ~= true then
go_ClearMotionTree(PLAYER)
end
this intermitent slow motion seems to happen when the strike team spawns, and it persists until i restart the game
Thanks alot for your work
it's whole new level for the game