Page 1 of 1

How to increase Space Assault maximum points?

Posted: Thu Dec 23, 2010 9:04 pm
by Redline
I would like to increase the maximum points in space assault, but I don't find the option to adjust it.
Hidden/Spoiler:
Image
Does anybody know a solution?

Re: How to increase Space Assault maxium points?

Posted: Thu Dec 23, 2010 9:25 pm
by sim-al2
I'm relying on memory here but there should be a space assult LUA that can be modified somewhere in the scripts folder. You should be able to edit values there.

Re: How to increase Space Assault maxium points?

Posted: Thu Dec 23, 2010 9:39 pm
by Redline
Do you remember which script it was?

Re: How to increase Space Assault maxium points?

Posted: Thu Dec 23, 2010 10:03 pm
by ryukaji
it seems points are set in the common script "ObjectiveSpaceAssault" but there is no line that defines the limit so it appears it may not be changeable.

Re: How to increase Space Assault maxium points?

Posted: Fri Dec 24, 2010 1:02 am
by SAMofBIA2
not to be a smart @$$ here, but why not just change the values ingame?

also could this be it? the 100 representing 100%
Hidden/Spoiler:
AddAIGoal(REP, "Deathmatch", 100)
AddAIGoal(CIS, "Deathmatch", 100)
these are found in the ***c_Diet Dr. Pepper lua of your space map, for reference.

Re: How to increase Space Assault maxium points?

Posted: Fri Dec 24, 2010 1:39 am
by Eggman
SAMofBIA2 wrote:not to be a smart @$$ here, but why not just change the values ingame?

also could this be it? the 100 representing 100%
Hidden/Spoiler:
AddAIGoal(REP, "Deathmatch", 100)
AddAIGoal(CIS, "Deathmatch", 100)
these are found in the ***c_Diet Dr. Pepper lua of your space map, for reference.
Those values have absolutely nothing to do with what Redline is talking about. They control exactly what the label implies - AI goals.

Re: How to increase Space Assault maxium points?

Posted: Fri Dec 24, 2010 8:11 am
by martin105038
Try this

http://www.gametoast.com/forums/viewtop ... 27&t=22907

This works for hero assault mode, maybe it works the same way for space assault.

Space Assault mode with more ScoreLimit points!

Posted: Sun Oct 02, 2011 8:37 am
by Redline
thx for your answer but it doesn't work for space assault. I tested it a few days before.


EDIT
Hey guys what's up? I know I've asked this before but I'm still searching for a possibility to change the maxium ScoreLimited points in a Space Assault mode.
Normally you can only have a maxium of 300 ScoreLimit points but I still believe that there is a solution to increase this.
The key for this should be the LUA ObjectiveSpaceAssault
Let's have a look into the script:
Hidden/Spoiler:
[code]--
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--

ScriptCB_DoFile("Objective")

--NOTE: ObjectiveSpaceAssault is a special case objective that is designed for multiplayer only
ObjectiveSpaceAssault = Objective:New
{
--external values that must be supplied when creating a new objective
shipBitmapATT = nil,
shipBitmapDEF = nil,
shieldBitmapATT = nil,
shieldBitmapDEF = nil,
criticalSystemBitmapATT = nil,
criticalSystemBitmapDEF = nil,
SetUberMode = true,
systemsList = {},
}

function ObjectiveSpaceAssault:OnCriticalSystemDestroyed(name, pointValue)
--designers, override me as necessary!
print("TEST - critical system destroyd:", name, "pointValue:", pointValue) --TODO: remove this line
end

-- name: the name of the object in the level (duh)
-- pointValue: how many points the object is worth when it's destroyed
-- hudPosX, hudPosY: texture coordinates for placing the hud health indicator for the critical system
-- (should be in the range of 0.0 to 1.0)
function ObjectiveSpaceAssault:AddCriticalSystem(name, pointValue, hudPosX, hudPosY)
if hudPosX and hudPosY then
--add the critical system as normal
SpaceAssaultAddCriticalSystem(name, pointValue, hudPosX, hudPosY)
else
--add the critical system, but tell C++ not to display a HUD marker
SpaceAssaultAddCriticalSystem(name, pointValue, -1.0, -1.0, false)
end

OnObjectKillName(
function (objectPtr, killer)
self:OnCriticalSystemDestroyed(name, pointValue)
AddSpaceAssaultDestroyPoints(killer, GetEntityName(objectPtr))
SetProperty(objectPtr, "MaxHealth", 99999999999.0) --effectively makes the object un-repairable
self:UpdateObjectiveMessage(name)
end,
name
)
end



--=============================
-- CommandPost
-- Class representing a specific CP, allowing some measure of customization
-- of what happens at each post when it is captured
--=============================
CommandPost =
{
-- fields that need to be specified when calling New()
name = "noname", --name of the CP

-- Overridable functions
OnCapture = function()
--override me to customize behavior when the command post is captured
end,
}

function CommandPost:New(o)
o = o or {}
setmetatable(o, self)
self.__index = self
return o
end

function ObjectiveSpaceAssault:Start()
--=======================================
-- Initialization logic
--=======================================
assert(self.multiplayerRules == true, "ObjectiveSpaceAssault is intended for multiplayer gametypes only! (i.e. set multiplayerRules = true)")
self.showTeamPoints = true

--initialize the base objective data
Objective.Start(self)


--notify C++ that we're running space assault now
--(so it can do team scoring with critical systems and whatnot)
SpaceAssaultEnable(true)
SpaceAssaultGetScoreLimit(600) !*added by me but it still doesn't change anything

SpaceAssaultSetupBitmaps(self.shipBitmapATT, self.shipBitmapDEF,
self.shieldBitmapATT, self.shieldBitmapDEF,
self.criticalSystemBitmapATT, self.criticalSystemBitmapDEF)

SetReinforcementCount(self.teamATT, -1)
SetReinforcementCount(self.teamDEF, -1)

--=======================================
-- Event responses
--=======================================

self.teamPointsChangeResponse = OnTeamPointsChange(
function (team, points)
if self.isComplete or self.spaceVOTimer then return end

if points >= SpaceAssaultGetScoreLimit() then
local loseTeam = GetOppositeTeam( team )

BroadcastVoiceOver( self.systemsList[team]["winVO"], team )
BroadcastVoiceOver( self.systemsList[loseTeam]["loseVO"], loseTeam )

self.spaceVOTimer = CreateTimer("spaceVOTimer")
SetTimerValue(self.spaceVOTimer, 4.0)
StartTimer(self.spaceVOTimer)
self.victoryDelayTimerResponse = OnTimerElapse(
function(timer)
self:Complete(team)
ReleaseTeamPointsChange(self.teamPointsChangeResponse)
end,
self.spaceVOTimer
)
end
end
)


-- HACK! wsh 20052307
-- #1, this system shouldn't really know about game specific data
-- #2, this assumes that the templates will not be needed any more (i.e. only one ObjectiveSpaceAssault running at a time)
gSpaceAssaultSystems_template = nil

end


---------------------------------------------------------------------------
-- The code below is specific to BF2
-- Among its assumptions:
-- * there are five critical systems
-- * frigates

---------------------------------------------------------------------------
function ObjectiveSpaceAssault:SetupAllCriticalSystems( aSide, atSystems, aAttacking )
local kInternSysValue = 18
-- check the validity of aSide
local tTemplate = gSpaceAssaultSystems_template[ aSide ]
if not tTemplate then return end

-- set up hud state indicator data
local shipIcon = aSide .. "_icon_Diet Dr. Pepper"
local shieldIcon = shipIcon .. "_shield"
local markerIcon = "spa_icon_critsys"
if aAttacking then
self.shipBitmapATT = shipIcon
self.shieldBitmapATT = shieldIcon
self.criticalSystemBitmapATT = markerIcon
else
self.shipBitmapDEF = shipIcon
self.shieldBitmapDEF = shieldIcon
self.criticalSystemBitmapDEF = markerIcon
end

-- add main objective
-- (ugh, hack)
local myTeam = 1
if not aAttacking then myTeam = 2 end
AddMissionObjective( myTeam, tTemplate.objTxt )
ActivateObjective( tTemplate.objTxt )

-- link up win / lose vo
local voList = {}
voList.winVO = tTemplate.winVO
voList.loseVO = tTemplate.loseVO
self.systemsList[ myTeam ] = voList

-- set up internal systems
-- (hacky--this needs to happen before we process normal systems)
local internalSys = atSystems.internalSys
if internalSys then
for i, sys in pairs( internalSys ) do
self:AddCriticalSystem( sys, kInternSysValue )
end

atSystems.internalSys = nil
end

-----------------------------
-- process remaining systems
-----------------------------
-- need to specify an order
local tOrder = { "engines", "lifesupport", "bridge", "comm", "sensors", "frigates" }

for i, sysType in ipairs( tOrder ) do
local obj = atSystems[ sysType ]

if obj then
-- this is a not a deep copy, though it should be
local sysData = tTemplate[ sysType ]
sysData.sysType = sysType

local objName
if type(obj) ~= "table" then
objName = obj

self:SetupOneCriticalSystem( objName, sysData )
else
-- objs is a table of names
-- we will track all the objects as one marker
objName = obj[1]

sysData.maxItems = table.getn( obj )
sysData.curItems = 0

-- add each member to the internal list
for i, name in pairs( obj ) do
self:SetupOneCriticalSystem( name, sysData )
end

SpaceAssaultLinkCriticalSystems( obj )
end

-- add the objective text
if ScriptCB_GetNumCameras() == 1 or sysData.bShowInSplitscreen then
local defender = GetObjectTeam( objName )
local attacker = GetOppositeTeam( defender )
AddMissionObjective( attacker, sysData.objTxt )
ActivateObjective( sysData.objTxt )
end
end
end

-- add fighter text at end
AddMissionObjective( myTeam, tTemplate.fighterTxt )
ActivateObjective( tTemplate.fighterTxt )

end


---------------------------------------------------------------------------
-- Helpers
---------------------------------------------------------------------------
-- handle bookkeeping when adding a system
function ObjectiveSpaceAssault:SetupOneCriticalSystem( name, data )
self.systemsList[ name ] = data
self:AddCriticalSystem( name, data.pts, data.u, data.v )
EnableBuildingLockOn( name, true )
end

-- on destruction
-- clear objective text, update status messages
function ObjectiveSpaceAssault:UpdateObjectiveMessage( aName )
local data = self.systemsList[ aName ]
if not data then
return
end

-- if this system is linked, update the count
if data.maxItems then
data.curItems = data.curItems + 1

-- if we have not destroyed all linked objects, don't update the message
if data.curItems < data.maxItems then
return
end
end

----------------------
-- Send state change info to clients
----------------------
-- update the message
CompleteObjective( data.objTxt )

-- figure out teams
local defTeam = GetObjectTeam( aName )
local attTeam = GetOppositeTeam( defTeam )

-- display status message
ShowMessageText( "level.spa.hangar." .. data.sysType .. ".atk.down", attTeam )
ShowMessageText( "level.spa.hangar." .. data.sysType .. ".def.down", defTeam )

-- play VO cues
BroadcastVoiceOver( data.attVO, attTeam )
BroadcastVoiceOver( data.defVO, defTeam )
end

-- somewhat hacky, as I can't use predefeind ATT and DEF here
function GetOppositeTeam( team )
if team == 1 then
return 2
else
return 1
end
end

---------------------------------------------------------------------------
function ObjectiveSpaceAssault:OnComplete( aWinTeam )

end

---------------------------------------------------------------------------
-- gSpaceAssaultSystems_template
-- Common data for all the systems
-- Assumes only IMP v ALL and REP v CIS
-- I'm not happy with the way this is implemented, but it seems like the simplest.
-- Ideally, we send out an "engines destroyed" event, and each side interprets as needed
-- instead of encoding the vo's and objectives with the object.
---------------------------------------------------------------------------
gSpaceAssaultSystems_template = {
imp = {
objTxt = "level.spa.objectives.imp.0",
fighterTxt = "level.spa.fighters.atk",
winVO = "IOSMP_obj_24",
loseVO = "IOSMP_obj_25",
engines = {
pts = 3, u = 0.5, v = 0.95,
objTxt = "level.spa.objectives.imp.3", attVO = "IOSMP_obj_05", defVO = "AOSMP_obj_06",
},
lifesupport = {
pts = 18, u = 0.5, v = 0.11,
objTxt = "level.spa.objectives.imp.2", attVO = "IOSMP_obj_08", defVO = "AOSMP_obj_09",
},
bridge = {
pts = 18, u = 0.5, v = 0.23,
objTxt = "level.spa.objectives.imp.4", attVO = "IOSMP_obj_10", defVO = "AOSMP_obj_11",
},
comm = {
pts = 18, u = 0.5, v = 0.5,
objTxt = "level.spa.objectives.imp.5", attVO = "IOSMP_obj_12", defVO = "AOSMP_obj_13",
},
sensors = {
pts = 18, u = 0.5, v = 0.85,
objTxt = "level.spa.objectives.imp.6", attVO = "IOSMP_obj_14", defVO = "AOSMP_obj_15",
},
frigates = {
pts = 18,
objTxt = "level.spa.objectives.imp.7", attVO = "IOSMP_obj_03", defVO = "AOSMP_obj_04",
bShowInSplitscreen = true
}
},
all = {
objTxt = "level.spa.objectives.all.0",
fighterTxt = "level.spa.fighters.def",
winVO = "AOSMP_obj_24",
loseVO = "AOSMP_obj_25",
engines = {
pts = 6, u = 0.5, v = 0.92,
objTxt = "level.spa.objectives.all.3", defVO = "IOSMP_obj_06", attVO = "AOSMP_obj_05",
},
lifesupport = {
pts = 18, u = 0.5, v = 0.65,
objTxt = "level.spa.objectives.all.2", defVO = "IOSMP_obj_09", attVO = "AOSMP_obj_08",
},
bridge = {
pts = 18, u = 0.5, v = 0.85,
objTxt = "level.spa.objectives.all.4", defVO = "IOSMP_obj_11", attVO = "AOSMP_obj_10",
},
comm = {
pts = 18, u = 0.5, v = 0.75,
objTxt = "level.spa.objectives.all.5", defVO = "IOSMP_obj_13", attVO = "AOSMP_obj_12",
},
sensors = {
pts = 18, u = 0.5, v = 0.32,
objTxt = "level.spa.objectives.all.6", defVO = "IOSMP_obj_15", attVO = "AOSMP_obj_14",
},
frigates = {
pts = 18,
objTxt = "level.spa.objectives.all.7", defVO = "IOSMP_obj_04", attVO = "AOSMP_obj_03",
bShowInSplitscreen = true,
}
},

rep = {
objTxt = "level.spa.objectives.rep.0",
fighterTxt = "level.spa.fighters.atk",
winVO = "ROSMP_obj_24",
loseVO = "ROSMP_obj_25",
engines = {
pts = 9, u = 0.5, v = 0.92,
objTxt = "level.spa.objectives.rep.3", defVO = "COSMP_obj_06", attVO = "ROSMP_obj_05",
},
lifesupport = {
pts = 18, u = 0.5, v = 0.16,
objTxt = "level.spa.objectives.rep.2", defVO = "COSMP_obj_09", attVO = "ROSMP_obj_08",
},
bridge = {
pts = 18, u = 0.5, v = 0.54,
objTxt = "level.spa.objectives.rep.4", defVO = "COSMP_obj_11", attVO = "ROSMP_obj_10",
},
comm = {
pts = 18, u = 0.5, v = 0.40,
objTxt = "level.spa.objectives.rep.5", defVO = "COSMP_obj_13", attVO = "ROSMP_obj_12",
},
sensors = {
pts = 18, u = 0.5, v = 0.78,
objTxt = "level.spa.objectives.rep.6", defVO = "COSMP_obj_15", attVO = "ROSMP_obj_14",
},
frigates = {
pts = 18,
objTxt = "level.spa.objectives.rep.7", defVO = "COSMP_obj_04", attVO = "ROSMP_obj_03",
bShowInSplitscreen = true,
}
},
cis = {
objTxt = "level.spa.objectives.cis.0",
fighterTxt = "level.spa.fighters.def",
winVO = "COSMP_obj_24",
loseVO = "COSMP_obj_25",
engines = {
pts = 18, u = 0.5, v = 0.92,
objTxt = "level.spa.objectives.cis.3", defVO = "ROSMP_obj_06", attVO = "COSMP_obj_05",
},
lifesupport = {
pts = 18, u = 0.5, v = 0.20,
objTxt = "level.spa.objectives.cis.2", defVO = "ROSMP_obj_09", attVO = "COSMP_obj_08",
},
bridge = {
pts = 18, u = 0.5, v = 0.66,
objTxt = "level.spa.objectives.cis.4", defVO = "ROSMP_obj_11", attVO = "COSMP_obj_10",
},
comm = {
pts = 18, u = 0.5, v = 0.52,
objTxt = "level.spa.objectives.cis.5", defVO = "ROSMP_obj_13", attVO = "COSMP_obj_12",
},
sensors = {
pts = 18, u = 0.5, v = 0.78,
objTxt = "level.spa.objectives.cis.6", defVO = "ROSMP_obj_15", attVO = "COSMP_obj_14",
},
frigates = {
pts = 18,
objTxt = "level.spa.objectives.cis.7", defVO = "ROSMP_obj_04", attVO = "COSMP_obj_03",
bShowInSplitscreen = true,
}
},
}
[/code]
The only thing that I could change for now are the team points. So if this is possible then it should be possible to change the ScoreLimit of a team too.
There is one command which could change the ScoreLimit and the command is SpaceAssaultGetScoreLimit.
So we have a command to change the ScoreLimit. The only question which is left is how to program it that the space assault mode change from 300 to 600 to exsample.
I've already tried to use the command but it doesn't change everything. I used the command like this: SpaceAssaultGetScoreLimit(600)
You can also see where I've added the command in my ObjectiveSpaceAssault.lua.
Furthermore today I've tried many different ways like if() and so on but that all didn't worked as well.
Any suggestions?


Threads merged -Staff

Re: Space Assault mode with more ScoreLimit points!

Posted: Sun Oct 02, 2011 8:57 am
by Locutus
You could try:

Code: Select all

SetUberMode(1);

Re: Space Assault mode with more ScoreLimit points!

Posted: Sun Oct 02, 2011 9:33 am
by ARCTroopaNate
Set Ubermode only changes the AI count, I tried it in one of my space maps. I'm still not sure how to change the Scorelimit.

Re: Space Assault mode with more ScoreLimit points!

Posted: Sun Oct 02, 2011 9:35 am
by Redline
Locutus wrote:You could try:

Code: Select all

SetUberMode(1);
Yea and I have done it but still nothing.
This was my last try:
Hidden/Spoiler:
function ObjectiveSpaceAssault:Start()
--=======================================
-- Initialization logic
--=======================================
assert(self.multiplayerRules == true, "ObjectiveSpaceAssault is intended for multiplayer gametypes only! (i.e. set multiplayerRules = true)")
self.showTeamPoints = true


--initialize the base objective data
Objective.Start(self)


--notify C++ that we're running space assault now
--(so it can do team scoring with critical systems and whatnot)
SpaceAssaultEnable(true)
SetUberMode(1)

SpaceAssaultSetupBitmaps(self.shipBitmapATT, self.shipBitmapDEF,
self.shieldBitmapATT, self.shieldBitmapDEF,
self.criticalSystemBitmapATT, self.criticalSystemBitmapDEF)

if (self.isUberMode) then
ScriptCB_SetUberScoreLimit(self.uberScoreLimit)
end


SetReinforcementCount(self.teamATT, -1)
SetReinforcementCount(self.teamDEF, -1)

--=======================================
-- Event responses
--=======================================

self.teamPointsChangeResponse = OnTeamPointsChange(
function (team, points)
if ( self.isUberMode ) then
scorelimit = ScriptCB_GetUberScoreLimit()
end

if self.isComplete or self.spaceVOTimer then return end

if points >= SpaceAssaultGetScoreLimit() then
local loseTeam = GetOppositeTeam( team )

BroadcastVoiceOver( self.systemsList[team]["winVO"], team )
BroadcastVoiceOver( self.systemsList[loseTeam]["loseVO"], loseTeam )

self.spaceVOTimer = CreateTimer("spaceVOTimer")
SetTimerValue(self.spaceVOTimer, 4.0)
StartTimer(self.spaceVOTimer)
self.victoryDelayTimerResponse = OnTimerElapse(
function(timer)
self:Complete(team)
ReleaseTeamPointsChange(self.teamPointsChangeResponse)
end,
self.spaceVOTimer
)
end
end
)


-- HACK! wsh 20052307
-- #1, this system shouldn't really know about game specific data
-- #2, this assumes that the templates will not be needed any more (i.e. only one ObjectiveSpaceAssault running at a time)
gSpaceAssaultSystems_template = nil

end

Re: Space Assault mode with more ScoreLimit points!

Posted: Sun Oct 02, 2011 10:54 am
by Locutus
I suggested the UberMode because you can increase the number of reinforcements higher than 150 when enabling it in conquest mode.
I don't know what else you could try, sry.

Re: Space Assault mode with more ScoreLimit points!

Posted: Sun Oct 02, 2011 11:31 am
by Dakota
hmm if you host assault on a dedicated server the maximum score is 500 instead of 300...

that doesn't really have anything to do with lua modding but it has the effect that you want.

theres an FC command to increase reinforcement but i don't have the code translation of that command. :|

Re: Space Assault mode with more ScoreLimit points!

Posted: Sun Oct 02, 2011 12:40 pm
by Redline
Dakota wrote:hmm if you host assault on a dedicated server the maximum score is 500 instead of 300...

that doesn't really have anything to do with lua modding but it has the effect that you want.

theres an FC command to increase reinforcement but i don't have the code translation of that command. :|
Thx you and all the other guys for help but do we have anyone who knows the code translation of that command? It would be helpful. I would just put it into the ABC_Diet Dr. Pepper.lua.

Re: How to increase Space Assault maximum points?

Posted: Sun Oct 02, 2011 4:38 pm
by Locutus
Did you try something like:
assault = ObjectiveSpaceAssault:New{
teamATT = IMP, teamDEF = ALL,
multiplayerRules = true,
isUberMode = true,
uberScoreLimit = 900
--whatever number you want
}
?

Re: How to increase Space Assault maximum points?

Posted: Sun Oct 02, 2011 5:34 pm
by Redline
Locutus wrote:Did you try something like:
assault = ObjectiveSpaceAssault:New{
teamATT = IMP, teamDEF = ALL,
multiplayerRules = true,
isUberMode = true,
uberScoreLimit = 900
--whatever number you want
}
?
Yes and it does not work. D:

Ps: Any other suggestions?