#Maniuplate Selected Unit Positions #By Vertu $HEIGHT:100.0 #Float or Integer $RAND_MAX:8 #Integer $RAND_MIN:-8 #Integer if(GetKey("RightArrow" false)) GetSelectedUnits ->units do(GetListCount(<-units) 0) GetUnitPosition(<-units[I]) ->unitPosPre SetUnitPosition(<-units[I] V3(<-unitPosPre.x 1 + <-unitPosPre.y <-unitPosPre.z)) GetTerrain(GetUnitCell(<-units[I])) ->terrainH GetUnitPosition(<-units[I]) ->unitPos if(approximately(<-unitPos.y <-terrainH)) SetUnitOccupiesLand(<-units[I] true) else if(<-unitPos.y lt(<-terrainH)) SetUnitOccupiesLand(<-units[I] false) endif endif loop endif if(GetKey("LeftArrow" false)) GetSelectedUnits ->units do(GetListCount(<-units) 0) GetUnitPosition(<-units[I]) ->unitPosPre SetUnitPosition(<-units[I] V3(<-unitPosPre.x 1 - <-unitPosPre.y <-unitPosPre.z)) GetTerrain(GetUnitCell(<-units[I])) ->terrainH GetUnitPosition(<-units[I]) ->unitPos if(approximately(<-unitPos.y <-terrainH)) SetUnitOccupiesLand(<-units[I] true) else if(<-unitPos.y lt(<-terrainH)) SetUnitOccupiesLand(<-units[I] false) endif endif loop endif if(GetKey("UpArrow" false)) GetSelectedUnits ->units do(GetListCount(<-units) 0) GetUnitPosition(<-units[I]) ->unitPosPre SetUnitPosition(<-units[I] V3(<-unitPosPre.x <-unitPosPre.y <-unitPosPre.z 1 +)) GetTerrain(GetUnitCell(<-units[I])) ->terrainH GetUnitPosition(<-units[I]) ->unitPos if(approximately(<-unitPos.y <-terrainH)) SetUnitOccupiesLand(<-units[I] true) else if(<-unitPos.y lt(<-terrainH)) SetUnitOccupiesLand(<-units[I] false) endif endif loop endif if(GetKey("DownArrow" false)) GetSelectedUnits ->units do(GetListCount(<-units) 0) GetUnitPosition(<-units[I]) ->unitPosPre SetUnitPosition(<-units[I] V3(<-unitPosPre.x <-unitPosPre.y <-unitPosPre.z 1 -)) GetTerrain(GetUnitCell(<-units[I])) ->terrainH GetUnitPosition(<-units[I]) ->unitPos if(approximately(<-unitPos.y <-terrainH)) SetUnitOccupiesLand(<-units[I] true) else if(<-unitPos.y lt(<-terrainH)) SetUnitOccupiesLand(<-units[I] false) endif endif loop endif if(GetKey("PageUp" false)) GetSelectedUnits ->units do(GetListCount(<-units) 0) GetUnitPosition(<-units[I]) ->unitPosPre SetUnitPosition(<-units[I] V3(<-unitPosPre.x <-unitPosPre.y 1 + <-unitPosPre.z)) GetTerrain(GetUnitCell(<-units[I])) ->terrainH GetUnitPosition(<-units[I]) ->unitPos if(approximately(<-unitPos.y <-terrainH)) SetUnitOccupiesLand(<-units[I] true) else if(<-unitPos.y lt(<-terrainH)) SetUnitOccupiesLand(<-units[I] false) endif endif loop endif if(GetKey("PageDown" false)) GetSelectedUnits ->units do(GetListCount(<-units) 0) GetUnitPosition(<-units[I]) ->unitPosPre SetUnitPosition(<-units[I] V3(<-unitPosPre.x <-unitPosPre.y 1 - <-unitPosPre.z)) GetTerrain(GetUnitCell(<-units[I])) ->terrainH GetUnitPosition(<-units[I]) ->unitPos if(approximately(<-unitPos.y <-terrainH)) SetUnitOccupiesLand(<-units[I] true) else if(<-unitPos.y lt(<-terrainH)) SetUnitOccupiesLand(<-units[I] false) endif endif loop endif if(GetKey("Backspace" false)) GetSelectedUnits ->units do(GetListCount(<-units) 0) GetUnitPosition(<-units[I]) ->unitPosPre SetUnitPosition(<-units[I] V3(<-unitPosPre.x <-HEIGHT <-unitPosPre.z)) GetTerrain(GetUnitCell(<-units[I])) ->terrainH GetUnitPosition(<-units[I]) ->unitPos if(approximately(<-unitPos.y <-terrainH)) SetUnitOccupiesLand(<-units[I] true) else if(<-unitPos.y lt(<-terrainH)) SetUnitOccupiesLand(<-units[I] false) endif endif loop endif if(GetKey("Slash" false)) GetSelectedUnits ->units do(GetListCount(<-units) 0) RandInt(<-RAND_MIN <-RAND_MAX 1 +) RandFloat + ->randHeight GetUnitPosition(<-units[I]) ->unitPosPre SetUnitPosition(<-units[I] V3(<-unitPosPre.x <-randHeight <-unitPosPre.z)) loop endif :Once Trace("Left/Right Arrow = Left/Right by 1 cell.") Trace("Up/Down Arrow = North/South by 1 cell.") Trace("Page Up = Up by 1 terrain unit.") Trace("Page Down = Down by 1 terrain unit.") Trace2("Backspace = Set to height defined within this console script which is" <-HEIGHT) Trace5("'/' = disperse selected with random height from " <-RAND_MIN ":" <-RAND_MAX " with RandFloat too.")