You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Active objective could still be stored in global entity (beause there can only be one), but secondary objectives could instead be stored in a network var in object (eg IsSecondaryObjectiveActive).
This way you there could be infinite amount of secondary objectives active at any given time, and toggling them is fairly easy (no need to deal with indexing problems that would happen if we used global entities with names like , SecObjective2, SecObjective3 etc)
This would require a library for objectives to make it easy to do stuff.
It should be possible to divide the map into multiple objectives (similar to tf2 stages, like in cp_goldrush). There are a couple of ways to implement this:
one bd_mapsetup per stage
Each stage has their own bd_mapsetup that points to the initial objective in that stage. There could be two inputs in bd_mapsetup: EndMission and StartMissionStage. EndMission can be called from the objective_escape to completely stop the mission (at which point we change map?). StartMissionStage can be called on another stage's bd_mapsetup from objective_escape to continue the mission.
Pros:
Each stage can have their own map settings (like what weapons are allowed etc)
Pretty logical sequence
Cons:
Some bd_mapsetup variables are bound to be the same throughout the whole map, which results in code or rather data duplication.
one bd_mapsetup per map
A single bd_mapsetup containing all the settings etc. The objective_escape at the end of each stage can simply call SetAsMainObjective on the initial objective of the next stage, and each bd_objective would have a hammer variable boolean that determines if they start a new stage. If they do, we do game.CleanupMap() and respawn all players at that initial objective.
Pros:
Maybe a bit more simple to the mapper because you dont need to start replicating bd_mapsetups
Cons:
Unable to have stage specific bd_mapsetup settings
The separation of stages is less clear. Having bd_mapsetup per stage separates stages from each other more clearly
If we hop into a bd_objective in another stage that is not the initial objective in that stage, or the mapper forgot to flag it as the initial objective, the game will glitch pretty badly because players can not even get into that objective. Then again this is a problem in the option 1 as well
Objective stage problems
Having bunch of nextbots roam around on stages that are not active causes lag. This is pretty easy to solve, but need to figure out a reliable way to determine to what stage does an entity belong. Is geometrical boundary check or something like that enough?
The text was updated successfully, but these errors were encountered:
What if game.CleanupMap() is not called between stages at all? This allows things like sabotaging a weapon storage in the previous stage to make it so next stage's guards have no weapons
Storing active objective statuses
Active objective could still be stored in global entity (beause there can only be one), but secondary objectives could instead be stored in a network var in object (eg IsSecondaryObjectiveActive).
This way you there could be infinite amount of secondary objectives active at any given time, and toggling them is fairly easy (no need to deal with indexing problems that would happen if we used global entities with names like , SecObjective2, SecObjective3 etc)
This would require a library for objectives to make it easy to do stuff.
objectives.GetMainObjective()
objectives.GetSecondaryObjectives()
objectives.GetSecondaryObjective(quest_name)
objectives.SetMainObjective(obj)
objectives.SetSecondaryObjective(obj, quest_name)
Different objective stages
It should be possible to divide the map into multiple objectives (similar to tf2 stages, like in cp_goldrush). There are a couple of ways to implement this:
one bd_mapsetup per stage
Each stage has their own bd_mapsetup that points to the initial objective in that stage. There could be two inputs in bd_mapsetup: EndMission and StartMissionStage. EndMission can be called from the objective_escape to completely stop the mission (at which point we change map?). StartMissionStage can be called on another stage's bd_mapsetup from objective_escape to continue the mission.
Pros:
Cons:
one bd_mapsetup per map
A single bd_mapsetup containing all the settings etc. The objective_escape at the end of each stage can simply call SetAsMainObjective on the initial objective of the next stage, and each bd_objective would have a hammer variable boolean that determines if they start a new stage. If they do, we do game.CleanupMap() and respawn all players at that initial objective.
Pros:
Cons:
Objective stage problems
The text was updated successfully, but these errors were encountered: