Page 1 of 2

Feature map

Posted: 10 Jul 2014, 18:22
by daryl
hola..
i need help:

- I'm working on a map and i'm adding some animated feature... so.. these features appear in map as icons... how can I hide these icons from map???

Image


- these feature are loading only when game start. There is a way to load features before game start?

Re: Feature map

Posted: 10 Jul 2014, 18:37
by knorke
1) The "animated feature" are units, I assume.
http://springrts.com/wiki/Gamedev:UnitDefs#General
set iconType to something transparent
or:
http://springrts.com/wiki/Lua_UnsyncedC ... CNoMinimap
Spring.SetUnitNoMinimap

2) Seems you currently spawn stuff in callin GameStart(), instead try Initialize()

Re: Feature map

Posted: 10 Jul 2014, 18:47
by smoth
Nope. Don't do it in either game start or initialize.

I am not sure how you are placing units.

Code: Select all

function gadget:GetInfo()
	return {
		name      = "feature placer",
		desc      = "Spawns Features and Units",
		author    = "Gnome, Smoth",
		date      = "August 2008",
		license   = "PD",
		layer     = 0,
		enabled   = true  --  loaded by default?
	}
end

if (not gadgetHandler:IsSyncedCode()) then
  return false
end

local	SetUnitNeutral			= Spring.SetUnitNeutral
local	SetUnitBlocking			= Spring.SetUnitBlocking
local   SetUnitRotation 		= Spring.SetUnitRotation
local	SetUnitAlwaysVisible	= Spring.SetUnitAlwaysVisible
local	CreateUnit				= Spring.CreateUnit
local	CreateFeature			= Spring.CreateFeature

local	featurecfg 
local	featureslist	= {}
local	buildinglist	= {}
local	unitlist		= {}	


if VFS.FileExists("config/gamename_config.lua") then
	featurecfg = VFS.Include("config/gamename_config.lua")

	featureslist	= featurecfg.objectlist
	buildinglist	= featurecfg.buildinglist
	unitlist		= featurecfg.unitlist
else
	Spring.Echo("No gamename specific features loaded")
end
		

if ( featurecfg ~= nil ) then
	gaiaID = Spring.GetGaiaTeamID()
		
	if ( featureslist )	then
		for i,fDef in pairs(featureslist) do
			local flagID = CreateFeature(fDef.name, fDef.x, Spring.GetGroundHeight(fDef.x,fDef.z)+5, fDef.z, fDef.rot)
		end
	end
				
	if ( buildinglist )	then	
		for i,uDef in pairs(unitlist) do
			local flagID = CreateUnit(uDef.name, uDef.x, 0, uDef.z, 0, gaiaID)
			SetUnitRotation(flagID, 0, -uDef.rot * math.pi / 32768, 0)
			SetUnitNeutral(flagID,true)
			Spring.SetUnitLosState(flagID,0,{los=true, prevLos=true, contRadar=true, radar=true})
			SetUnitAlwaysVisible(flagID,true)
			SetUnitBlocking(flagID,true)
		end
	end
				
	if ( buildinglist )	then
		for i,bDef in pairs(buildinglist) do
			local flagID = CreateUnit(bDef.name, bDef.x, 0, bDef.z, bDef.rot, gaiaID)
			SetUnitNeutral(flagID,true)
			Spring.SetUnitLosState(flagID,0,{los=true, prevLos=true, contRadar=true, radar=true})
			SetUnitAlwaysVisible(flagID,true)
			SetUnitBlocking(flagID,true)
		end
	end	

end	
that is how you can place a unit or feature before gamestart.

Re: Feature map

Posted: 10 Jul 2014, 18:52
by daryl
knorke wrote:1) The "animated feature" are units, I assume.
http://springrts.com/wiki/Gamedev:UnitDefs#General
set iconType to something transparent
or:
http://springrts.com/wiki/Lua_UnsyncedC ... CNoMinimap
Spring.SetUnitNoMinimap

2) Seems you currently spawn stuff in callin GameStart(), instead try Initialize()

thx knorke I solved first point!

Re: Feature map

Posted: 10 Jul 2014, 18:53
by daryl
smoth wrote:Nope. Don't do it in either game start or initialize.

I am not sure how you are placing units.

Code: Select all

function gadget:GetInfo()
	return {
		name      = "feature placer",
		desc      = "Spawns Features and Units",
		author    = "Gnome, Smoth",
		date      = "August 2008",
		license   = "PD",
		layer     = 0,
		enabled   = true  --  loaded by default?
	}
end

if (not gadgetHandler:IsSyncedCode()) then
  return false
end

local	SetUnitNeutral			= Spring.SetUnitNeutral
local	SetUnitBlocking			= Spring.SetUnitBlocking
local   SetUnitRotation 		= Spring.SetUnitRotation
local	SetUnitAlwaysVisible	= Spring.SetUnitAlwaysVisible
local	CreateUnit				= Spring.CreateUnit
local	CreateFeature			= Spring.CreateFeature

local	featurecfg 
local	featureslist	= {}
local	buildinglist	= {}
local	unitlist		= {}	


if VFS.FileExists("config/gamename_config.lua") then
	featurecfg = VFS.Include("config/gamename_config.lua")

	featureslist	= featurecfg.objectlist
	buildinglist	= featurecfg.buildinglist
	unitlist		= featurecfg.unitlist
else
	Spring.Echo("No gamename specific features loaded")
end
		

if ( featurecfg ~= nil ) then
	gaiaID = Spring.GetGaiaTeamID()
		
	if ( featureslist )	then
		for i,fDef in pairs(featureslist) do
			local flagID = CreateFeature(fDef.name, fDef.x, Spring.GetGroundHeight(fDef.x,fDef.z)+5, fDef.z, fDef.rot)
		end
	end
				
	if ( buildinglist )	then	
		for i,uDef in pairs(unitlist) do
			local flagID = CreateUnit(uDef.name, uDef.x, 0, uDef.z, 0, gaiaID)
			SetUnitRotation(flagID, 0, -uDef.rot * math.pi / 32768, 0)
			SetUnitNeutral(flagID,true)
			Spring.SetUnitLosState(flagID,0,{los=true, prevLos=true, contRadar=true, radar=true})
			SetUnitAlwaysVisible(flagID,true)
			SetUnitBlocking(flagID,true)
		end
	end
				
	if ( buildinglist )	then
		for i,bDef in pairs(buildinglist) do
			local flagID = CreateUnit(bDef.name, bDef.x, 0, bDef.z, bDef.rot, gaiaID)
			SetUnitNeutral(flagID,true)
			Spring.SetUnitLosState(flagID,0,{los=true, prevLos=true, contRadar=true, radar=true})
			SetUnitAlwaysVisible(flagID,true)
			SetUnitBlocking(flagID,true)
		end
	end	

end	
that is how you can place a unit or feature before gamestart.

thx smoth, so it is a little difficult for me..
at the moment I used this code:

Code: Select all

function gadget:GetInfo()
	return {
		name = "unita_iniziali",
		desc = "Aggiunge unità all'inizio del gioco.",
		author = "daryl - www.totalannihilation.it", -- thx to http://springrts.com community, knorke, smoth, Beherith, jK .
		date = "September 19st, 2010",
		license = "GPL, v.2, 2008",
		layer = 1,
		enabled = true,
	}
end


local u
local CreateUnit = Spring.CreateUnit
local GetGaiaTeamID = Spring.GetGaiaTeamID
local GiveOrderToUnit = Spring.GiveOrderToUnit
local AddBuildOrders = Spring.AddBuildOrders
local CreateFeature = Spring.CreateFeature

function Initialize() 

u = CreateUnit("palmforest006",7321,0,8349,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest007",7321,0,8461,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest008",7321,0,8562,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest009",7321,0,8665,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)




u = CreateUnit("palmforest007",7446,0,8349,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest009",7446,0,8461,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest006",7446,0,8562,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest009",7446,0,8665,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest009",7548,0,8349,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)



u = CreateUnit("palmforest009",9097,0,7861,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest008",9097,0,7963,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest007",9097,0,8065,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("armspazioporto",9550,0,7350,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("eridlon_antenna",8238,0,10361,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("eridlon_gate",7080,0,10071,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("eridlon_gate_wall",7300,0,10071,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)





u = CreateUnit("palmforest006",9694,0,8116,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest007",9638,0,8160,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest008",9589,0,8185,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest009",9423,0,8370,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest010",9344,0,8327,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest011",9832,0,7765,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest009",8760,0,7671,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest007",8860,0,7539,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)




u = CreateUnit("pala001",8799,0,8310,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala002",8799,0,8110,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala003",8799,0,8010,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala004",8799,0,7910,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala005",8799,0,7810,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)





u = CreateUnit("pala004",8899,0,7710,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala002",8899,0,8310,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala005",8899,0,8110,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala001",8899,0,8010,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala003",8899,0,7910,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala005",8899,0,7810,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)









u = CreateUnit("pala005",8999,0,7710,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)



u = CreateUnit("pala003",8999,0,8110,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala004",8999,0,8010,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala002",8999,0,7910,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala001",8999,0,7810,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("eridlon_semaforo_60",7675,0,8327,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("eridlon_semaforo_60",7720,0,8364,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("eridlon_semaforo_sx",7324,0,8324,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)


u = CreateUnit("eridlon_semaforo",7346,0,8340,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("eridlon_semaforo",7421,0,8340,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("eridlon_semaforo_dx",7438,0,8250,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)


u = CreateUnit("pala001",9199,0,7710,180,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala005",9199,0,7610,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala007",9199,0,8110,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala004",9199,0,8010,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala002",9199,0,7910,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala002",9199,0,7810,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)







u = CreateUnit("pala001",9299,0,7710,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala005",9299,0,7610,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala003",9299,0,8110,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala001",9299,0,8010,270,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala002",9299,0,7910,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala004",9299,0,7810,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)












u = CreateUnit("pala001_d",5585,0,7910,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala004_d",5685,0,7910,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala002_d",5785,0,7910,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala005_d",5785,0,8010,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala001_d",5785,0,8310,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala002_d",5785,0,8410,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala004_d",5685,0,8410,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala005_d",5585,0,8410,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala003_d",5585,0,8510,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala003_d",5685,0,8510,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala003_d",5785,0,8510,180,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)


u = CreateUnit("pala003",5885,0,8510,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala004",5985,0,8510,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)


u = CreateUnit("pala002",5885,0,8410,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("pala001",5985,0,8410,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)








u = CreateUnit("palmforest006",7798,0,8152,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest007",7683,0,8178,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest008",7784,0,8202,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest009",7397,0,10379,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest010",7382,0,10450,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)




u = CreateUnit("rock010",7348,0,9708,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("rock011",7364,0,9753,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest011",7369,0,9564,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)



u = CreateUnit("rock010",7583,0,8814,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("rock011",7597,0,8767,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("rock012",7526,0,8835,90,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)












u = CreateUnit("palmforest011",6803,0,8150,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("palmforest009",6941,0,8290,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)



u = CreateUnit("palmforest010",6867,0,8105,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)


u = CreateUnit("eridlon_antenna",5966,0,7938,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)







u = CreateUnit("eridlon_fence",7070,0,11615,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("eridlon_fence",7070,0,11215,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("eridlon_fence",7070,0,11015,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)


u = CreateUnit("eridlon_fence",7070,0,10815,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("eridlon_fence",7070,0,10615,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("eridlon_fence",7070,0,10415,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)









u = CreateUnit("eridlon_fence_dx",7255,0,11615,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("eridlon_fence_dx",7255,0,11415,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("eridlon_fence_dx",7255,0,11215,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)




u = CreateUnit("eridlon_fence_dx",7255,0,10815,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("eridlon_fence_dx",7255,0,10615,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("eridlon_fence_dx",7255,0,10415,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)


u = CreateUnit("car001",9019,0,8166,45,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)









u = CreateUnit("bridge_destroy",4468,0,6005,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

u = CreateUnit("bridge_destroy2",4468,0,4636,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)

end







can you help me with a salmple please???
thx!

Re: Feature map

Posted: 10 Jul 2014, 19:07
by Beherith
Use parts of this widget, so that the units not only dont show dots on the minimap, they will also stay visible when zoomed far out:

Code: Select all

--------------------------------------------------------------------------------

function widget:GetInfo()
  return {
    name      = "Wall CustomIcons",
    desc      = "Sets custom unit blank icons for walls",
    author    = "trepan,BD,TheFatController,beherith",
    date      = "Jan 8, 2007",
    license   = "GNU GPL, v2 or later",
    layer     = 0,
    enabled   = true  --  loaded by default?
  }
end

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------


local wasLuaModUIEnabled = 0

--------------------------------------------------------------------------------


function widget:Shutdown()
	-- revert our changes
	for udid,ud in pairs(UnitDefs) do
		if ((ud ~= nil) and (ud.origIconType ~= nil)) then
			Spring.SetUnitDefIcon(udid, ud.origIconType)
		end
	end
end


--------------------------------------------------------------------------------

function widget:Initialize()
	Spring.AddUnitIcon('wall_blank', 'icons/wall_blank.tga', 1, 100)
	-- Setup the unitdef icons
	for udid,ud in pairs(UnitDefs) do

		if (ud ~= nil) then
			if (ud.origIconType == nil) then
				ud.origIconType = ud.iconType
			end
			if (ud.tooltip=="Wall") then
				Spring.SetUnitDefIcon(udid, "wall_blank")
			end
		end
	end
end

Re: Feature map

Posted: 10 Jul 2014, 19:16
by smoth
No problem, This is code from my feature placer tool. I didn't think anyone was going to do features/units on maps so I stopped working on it.. POO.

Your code is not great but it isn't a big deal. this should fix you right up:

http://pastebin.com/1BqeF1Eu

I am shooting in the dark as I don't have your map to test it against but this should work. if it doesn't give me the errors and I will fix for you.

*Edit*
Whoops saw a few things. link is to the updated lua.

Re: Feature map

Posted: 10 Jul 2014, 21:03
by PicassoCT
I know you epect advice, but i wanted to add a looks promising..

so i did.

Re: Feature map

Posted: 10 Jul 2014, 21:22
by smoth
Image
(click image to go to thread)

These are available for you if you can utilize them daryl.

Re: Feature map

Posted: 10 Jul 2014, 21:36
by daryl
smoth wrote:Image
(click image to go to thread)

These are available for you if you can utilize them daryl.
oh yes...i would like look them... :)
I Promise to publish my objects and the map when i will finish them :)
if you are interested naturally..

so I got other problem..
your script doesn't start :(
probably I need some part of your feature placer??

Re: Feature map

Posted: 10 Jul 2014, 23:23
by smoth
Nope it is stand alone code. Can you paste your infolog so I can see the error.

Re: Feature map

Posted: 11 Jul 2014, 16:04
by knorke
http://pastebin.com/1BqeF1Eu is missing a letter, f:
unction gadget:GetInfo()
Putting code "outside any function" is bad practice.
For example you lose the ability to turn off your script via the enabled=false switch, because all outside-function-code is always run, no matter that switch, which can lead to annoyance.
If you want something to be executed as soon as the gadget is loaded ("=before game starts") then put it in Initialize()

The code http://springrts.com/phpbb/viewtopic.ph ... 47#p559601 has some problems that make it bad for learning, like being useless without details about the "config/gamename_config.lua" file that it reads or this etc:
if ( buildinglist ) then
for i,uDef in pairs(unitlist) do
at the moment I used this code:
What you have there works. (assuming there are no spelling mistakes or anything)


Each "CreateUnit" call is followed by the same three lines, every time, which is not nice:

Code: Select all

u = CreateUnit("palmforest006",7321,0,8349,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)
1) Read some tutorial on functions to see a nicer way (or on tables & loops, but that is more complicated)
2) check the return-value of CreateUnit to see if the unit was really created:
If no unit was created (for example you misspelled unit name) then the following functions, trying to do stuff with it, will fail.

Re: Feature map

Posted: 12 Jul 2014, 00:52
by smoth
knorke wrote:http://pastebin.com/1BqeF1Eu is missing a letter, f:
unction gadget:GetInfo()
Thanks.
knorke wrote:Putting code "outside any function" is bad practice.
There is not function for that. You have to put it outside of a function if you want it to run before gamestart. Unless there is a prestart() but I have not seen it and being that you HAVE NOT suggested a better alternative.
knorke wrote:The code http://springrts.com/phpbb/viewtopic.ph ... 47#p559601 has some problems that make it bad for learning, like being useless without details about the "config/gamename_config.lua" file that it reads or this etc:
You are right, I should have given more explanation showing that you can do it OUTSIDE OF A FUNCTION.
knorke wrote:

Code: Select all

if ( [color=#FF0000]buildinglist[/color] )   then   
      for i,uDef in pairs([color=#FF0000]unitlist[/color]) do
been there for years in feature placer, want to raise issue with it being less than perfect NOW?
knorke wrote:
at the moment I used this code:

What you have there works. (assuming there are no spelling mistakes or anything)
- these feature are loading only when game start. There is a way to load features before game start?
nope, not for his desired functionality.
knorke wrote:Each "CreateUnit" call is followed by the same three lines, every time, which is not nice:

Code: Select all

u = CreateUnit("palmforest006",7321,0,8349,0,GetGaiaTeamID())
Spring.SetUnitNeutral (u, true)
Spring.SetUnitAlwaysVisible(u, true)
Spring.SetUnitNoMinimap(u, true)
It is better than what he had and a quick cleanup.
knorke wrote:1) Read some tutorial on functions to see a nicer way (or on tables & loops, but that is more complicated)
2) check the return-value of CreateUnit to see if the unit was really created:
If no unit was created (for example you misspelled unit name) then the following functions, trying to do stuff with it, will fail.
[/quote]
Who is this directed to?

Re: Feature map

Posted: 12 Jul 2014, 01:50
by smoth
updated version as per most of knorke's suggestions: here

If you see any other issues Knorke, I leave privilege the to updating the code and putting it on pastebin to you this back and forth is a waste of time when you could just update the code.

Re: Feature map

Posted: 12 Jul 2014, 04:39
by KingRaptor
smoth wrote:There is not function for that. You have to put it outside of a function if you want it to run before gamestart. Unless there is a prestart()
gadget:GamePreload()

Re: Feature map

Posted: 12 Jul 2014, 07:26
by knorke
I did not notice relevant difference between gadget:GamePreload() and gadget:Initialize() (?), both are called before the game has started.
When looking at the replay it is visible that units (spawned via Spring.CreateUnit inside either of these functions) are indeed already there before the game has started.
The trickquestion is why those units are not visible before the game has started?
Appearently the player has no line-of-sight on them before the game has started.
In contrast, allied units are always visible even before the game has started.
Perhaps surprisingly Spring.SetUnitAlwaysVisible does not seem to have any effect before the game has started.
One trick is to trick the LOS-system to update (or whatever-reason-why-this-works) before the game has started:

Code: Select all

unitID = SpringCreateUnit (...)
for _,allyTeam in ipairs(Spring.GetAllyTeamList()) do
  Spring.SetUnitLosMask(unitID, allyTeam, {prevLos=true,})
end

Re: Feature map

Posted: 12 Jul 2014, 19:09
by smoth
The trickquestion is why those units are not visible before the game has started?
Appearently the player has no line-of-sight on them before the game has started.
As best I can tell this is correct knorke. I was talking to KR about it earlier. He said he believes LOS isn't updated until game start.

This was NOT the case in earlier versions of spring(I keep a copy of gundam 1.26).

knorke wrote:One trick is to trick the LOS-system to update (or whatever-reason-why-this-works) before the game has started:

Code: Select all

unitID = SpringCreateUnit (...)
for _,allyTeam in ipairs(Spring.GetAllyTeamList()) do
  Spring.SetUnitLosMask(unitID, allyTeam, {prevLos=true,})
end
it doesn't seem to work for me, have you tested this yourself?

Re: Feature map

Posted: 12 Jul 2014, 23:55
by knorke
have you tested this yourself?
yes, in spring v96.0, it worked.

Re: Feature map

Posted: 13 Jul 2014, 01:16
by smoth
odd..
any idea on what I did wrong?
the file

Re: Feature map

Posted: 13 Jul 2014, 04:01
by knorke
the units are under the ground.