Jump to content
Sign in to follow this  
Sniper_Kyle

Running Out Of Ideas

Recommended Posts

I dont know if it is possible but it would be neat to comand more than 12 people.

So it would be cool to comand like 12 groups of 4 or something.

It certainly is possible, and it certainly has been done before. One popular script is the Chain of Command's Command Engine. Another good script (which is also simpler) is Ronald Speirs' Two player Simple multiple squad control.

I also found these other scripts at OFPEC. I haven't tried them out, but they may be worth a shot:

Multi-squad MP by uiox

Multiple Platoon Script by Emef

Simple Multiple Squad control my moph (Ronald Speirs' script is based on this one)

Also, ThruYerStErNuM's mission Unscripted War features a system for commanding multiple squads. However, you would have to depbo the mission to find the script he wrote.

Shoot, I even made a mission where you get to control multiple squads (although in a very limited way). Check out Platoon Commander.

So yes, it is possible to command more than 12 people.

unclesam.gif

Share this post


Link to post
Share on other sites

Lol, I got some ideas biggrin_o.gif

Allready mentioned, well, similar.

Birds and nature simulation

Like its been said, birds fliying on a escape rush after a weapon is been fired, but it should be the first shot after tranquility.

More birds

In certain areas, like in the woods, or tree populated valleis, etc, if a unit is walking or runing it should make some nature disturbance.

In real life, if you decide to wallk in the fields and you get noticed by small animals, chances are that they going to do a runer, so if you can create a script that gets activated by a triger, that its activated by somebody passing throught the trigger, then you could get a sound like if you estep in a branch( Ideally in woods) and using particles( drop comand) you can create a little cloud of birds that flight away making some noise like wings flapping, movement of branches and leafs, bird calls, etc.

Imagine that in multiplayer wow_o.gif stealth would have another meaning.

Binocular animation

If you could make a script that when certain weapon is selected would activate the binocular animation it would be great for somebody to finally make a binocular addon using the handgun class.

All you would need its a model for the binoculars(Llauma have one I think) and whoever make the addon should give the binocular(hand gun) no amunition or whatever, give the binocular a scope that its only vissible when the view trhought the scope its on, script the animation and it will be done, ideal for a tank comanders set of binocular biggrin_o.gif

A bloody script for King of the Hill mission

Self explanatory biggrin_o.gif

AI landing plane wherever

I was thinking about improvised landing strips, like if you get a team of ingeeniers in the middle of nowhere and build a landing site for an C 130 or something. The problem is that the AI wouldn't land in it, so a script or a set of scripts for that would be great.

That's all for now.

Thanks for reading my crazy ideas.

Regards.

@CERO.

Share this post


Link to post
Share on other sites

More realistic choppers attacking APC and tanks - hover on given altitude, firing hellfires and than behave as now they do.

Share this post


Link to post
Share on other sites

Any of this sugestions taken into consideration yet? biggrin_o.gif

@CERO.

Share this post


Link to post
Share on other sites
AI landing plane wherever

I was thinking about improvised landing strips, like if you get a team of ingeeniers in the middle of nowhere and build a landing site for an C 130 or something. The problem is that the AI wouldn't land in it, so a script or a set of scripts for that would be great.

Someone is working on that atm and afaik they managed to get it working pretty well most of the time, can't remember for the life of me who it is!!

Share this post


Link to post
Share on other sites
So does anybody have the class name for a single seagull?

"seagull"

You have to camcreate them, and then you move them around as if they were cameras. Also, there is very good, old script out there that makes a flock of seagulls fly around... could be the one Col. Klink used in his fishing boats addon. It could be useful to you. Lets see.... here it is:

seagulls140

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">; Seagull v.1.40

; Author: Petroizki.

; E-Mail: petroizki@suomi24.fi

; Requires OFP version: 1.40

;

; PARAMETERS: [TRIGGER_NAME, OBJECT, NUMBER_OF_BIRDS, AREA_WIDTH, SPECIAL_FEATURE, SPECIAL_VARIABLE]

; EXAMPLE: [seagulls, player, 20, 500, ""] exec "seagulls140.sqs"

; EXAMPLE: [seagulls, player, 20, 500, "FLYING"] exec "seagulls140.sqs"

; EXAMPLE: [seagulls, player, 20, 500, "LANDED", 30] exec "seagulls140.sqs"

; NOTE. SPECIAL_VARIABLE is only needed with "LANDED" special feature

; When you want seagulls to die, give value 'true' for global variable g_bExit (g_bExit = true).

; NOTE: This script changes g_bExit variable automatically to 'false' in beginning.

;

; TRIGGER_NAME: Make sure you use triggers name instead of 'this'.

;

; OBJECT: Object for middle point on rectangle. If you want invisible middle point, use 'Game Logic' which initialization is 'this SetDammage 1'

; player   = DEFAULT

;

; NUMBER_OF_BIRDS: ...Well put at least 1...

; 1        = DEFAULT

;

; AREA_WIDTH: Width and height of the area, which in the seagulls are flying.

; 500      = DEFAULT

;

; SPECIAL_FEATURE strings:

; ""           = DEFAULT

; "FLYING"     = Bird just fly, doesn't ever land

; "GROUP_FLY"  = Birds fly around in group, won't land

; "LANDED"     = Bird is landed, takes off only if human approaches and lands again if human is far enough, birds start randomly around

;                uses SPECIAL_VARIABLE, to define the area were seagulls want always land.

; "SEA"        = Bird doesn't land, flyis often very low

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;DEBUGGER    = false

requiredVersion "1.40"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Global variables

g_oTrigger   = _this select 0

g_oObject    = _this select 1

g_nSeagull   = _this select 2

g_nArea      = _this select 3

g_nArea      = abs(g_nArea)

g_strSpecial = _this select 4

g_nAltitude  = 8

?g_strSpecial == "SEA" : g_nAltitude = 0

g_nAreaDiv2  = g_nArea / 2

g_nAreaMax   = g_nArea * 2

g_bChaseMe   = false

g_nChaseMe   = 0

g_oChaseMe   = player

g_bExit      = false

g_nExitReport = 0

g_bGroupLand = false

g_oGroupLand = player

g_bHuman     = false

g_nHumanTime = 0

g_xPosition  = (getPos g_oObject) select 0

g_yPosition  = (getPos g_oObject) select 1

g_aSeagull   = []

g_nAreaSpecial = 0

g_nAreaSpecialDiv2 = 0

g_posSpecial = (getPos g_oObject)

; Check limits

?g_nArea < 0.1    : g_nArea = 500; hint format ["The area for seagulls can't be less than 0.1\nDEFAULT 500 set."

?isNull g_oObject : g_oObject = player; hint "The object for seagulls can't be NULL\nDEFAULT player set."

?g_nSeagull < 1   : g_nSeagull = 1; hint "0 seagulls can't be created\nDEFAULT 1 set."

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Seagull creation loop

_oNewSeagull  = objNull

_xPosition    = 0

_nAreaSpecialDiv2 = _nAreaSpecial / 2

?g_strSpecial == "LANDED" : g_nAreaSpecial = _this select 5; g_nAreaSpecial = abs(g_nAreaSpecial); g_nAreaSpecialDiv2 = g_nAreaSpecial / 2

_i = g_nSeagull

#Creation

; Get seagulls starting position

?_i % 2 == 0 : _xPosition = g_xPosition + g_nAreaDiv2; goto "Creation1"

_xPosition = g_xPosition - g_nAreaDiv2

#Creation1

; Create seagull

?g_strSpecial != "LANDED" : _oNewSeagull = "SeaGull" camCreate [_xPosition, g_yPosition, 0]; goto "Creation2"

; We want to start landed, so let's put seagulls randomly around

_xPosition = g_xPosition + (random g_nAreaSpecial) - g_nAreaSpecialDiv2

_yPosition = g_yPosition + (random g_nAreaSpecial) - g_nAreaSpecialDiv2

_oNewSeagull = "SeaGull" camCreate [_xPosition, _yPosition, 0]

_oNewSeagull setDir (random 360)

_oNewSeagull camCommand "landed"

#Creation2

; Save seagull's array

g_aSeagull = g_aSeagull + [_oNewSeagull]

; Give brains for seagull

[_oNewSeagull] exec "seagull140.sqs"

_i = _i - 1

~.02

?_i > 0 : goto "Creation"

; We wanna fly in group!

?g_strSpecial == "GROUP_FLY" : g_oChaseMe = _oNewSeagull; g_bChaseMe = true

_i            = nil

_xPosition    = nil

_nAreaSpecialDiv2 = nil

?g_strSpecial != "LANDED" : goto "MainLoop"

~2

goto "MainLoop"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Main loop

#MainLoop

~3

?g_bExit : goto "Destruction"

; Timeout for human alarm

?g_nHumanTime < time : g_bHuman = false

; Timeout for chasing

?g_nChaseMe < time && g_strSpecial != "GROUP_FLY": g_bChaseMe = false

; Human present, stop group landing

?g_bHuman : g_bGroupLand = false

; Update object and triggers position

g_xPosition = (getPos g_oObject) select 0

g_yPosition = (getPos g_oObject) select 1

g_oTrigger setPos (getPos g_oObject)

goto "MainLoop"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Destruction

#Destruction

; Games over

g_bChase = false

; Wait for seagulls to report

@(g_nExitReport == g_nSeagull)

; Destroy seagulls

_i = g_nSeagull - 1

#DestructionLoop

camDestroy (g_aSeagull select _i)

_i = _i - 1

?_i > -1 : goto "DestructionLoop"

goto "Terminate"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

#Terminate

exit

seagull140

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">; Seagull v.1.40

; Author: Petroizki.

; E-Mail: petroizki@suomi24.fi

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Local variables

_bChase    = false

_nCounter  = (random 6) + 1

_bHuman    = false

_xPosition = 0

_yPosition = 0

_retReturn = ""

_oSeagull  = _this select 0

_nState    = 0

_nTimeout  = 0

_xWaypoint = 0

_yWaypoint = 0

_zWaypoint = 0

; STATES, in _nState

;  0 = NONE

;  1 = Wanna land

;  2 = Wanna stay landed

goto "SeagullBrain"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Chase other seagull, seagull stored in g_oChaseMe

#Chase

; Hope it's not me how is being chasen, if is,then let's fly

?g_oChaseMe == _oSeagull : goto "Fly"

_bChase = true

; Get random position around chasen seagull, and fly there

_xWaypoint = (random 2) - 1

_yWaypoint = (random 2) - 1

_xWaypoint = _xWaypoint + ((getPos g_oChaseMe) select 0)

_yWaypoint = _yWaypoint + ((getPos g_oChaseMe) select 1)

goto "FlyTo"

; Returns to #FlyTo, or if been chasen returns to #Fly

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Check human presence

#CheckHumanPresence

; amount of units able to fire the trigger

_aList = list g_oTrigger

_i     = (count _aList) - 1

?_i < 0 : goto _retReturn

;?DEBUGGER : hint format ["Seagull:\nThere are %1 units in world", _i]

#HumanCheckLoop

?(_oSeagull distance (_aList select _i)) < 20 : g_bHuman = true; g_nHumanTime = time + 5; _bHuman = true; goto "Fly"

_i = _i - 1

~.001

?_i < 0 : goto _retReturn

goto "HumanCheckLoop"

; Returns to _retReturn

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Generate random position, and then fly there

#Fly

_xWaypoint = (random g_nArea) - g_nAreaDiv2

_yWaypoint = (random g_nArea) - g_nAreaDiv2

_xWaypoint = _xWaypoint + ((getPos g_oObject) select 0)

_yWaypoint = _yWaypoint + ((getPos g_oObject) select 1)

goto "FlyTo"

; Returns to #FlyTo

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Fly to certain position which is stored in _xWaypoint, _yWaypoint

#FlyTo

_nState = 0

~.1

; Get waypoint's vector, to calculate the length of trip

_xWPVector = (getPos _oSeagull) select 0

_yWPVector = (getPos _oSeagull) select 1

_xWPVector = _xWPVector - _xWaypoint

_yWPVector = _yWPVector - _yWaypoint

; Calculate the vector lenght, so we know the distance of seagull from the waypoint, and the time taken to trip

_nTripLength = sqrt(_xWPVector*_xWPVector + _yWPVector*_yWPVector)

;?DEBUGGER : hint format ["Seagull:\nFlying to position:\n%1, %2, %3\nTrip length: %4", _xWaypoint, _yWaypoint, g_nAltitude, _nTripLength]

; Fly there

_oSeagull camSetPos [_xWaypoint, _yWaypoint, g_nAltitude + (random 6) - 3]

; I assume that the seagull doesn't fly faster than 47km/h (= ~13m/s).

_nTimeToTrip = _nTripLength / 13

; If we are chasing someone, we need shorter trips

?_bChase : _nTimeToTrip = _nTimeToTrip / 5

~_nTimeToTrip

; If bird want's to land, group landing maybe, then set state to 0 and land

?_nState == 1 : _nState = 0; goto "Landing"

goto "SeagullBrain"

; Returns to #SeagullBrain, if want's to land returns to #Landing

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Land in special variable place

#LandSpecial

; Get random position

_xWaypoint = (random g_nAreaSpecial) - g_nAreaSpecialDiv2

_yWaypoint = (random g_nAreaSpecial) - g_nAreaSpecialDiv2

_xWaypoint = _xWaypoint + (g_posSpecial select 0)

_yWaypoint = _yWaypoint + (g_posSpecial select 1)

goto "FlyTo"

; Returns to #FlyTo, or if been chasen returns to #Fly

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Land

#Landing

; Timeout for landing

_nTimeout = ((random 50) + 10) + time

; If bird want's to stay landed

?_nState == 2 : _nTimeout = 10000

_retReturn = "TimeoutLoop"

#TimeoutLoop

~2

?g_bExit : g_nExitReport = g_nExitReport + 1; exit

; Stay in ground, don't hover over land.

_xPosition = (getPos _oSeagull) select 0

_yPosition = (getPos _oSeagull) select 1

_oSeagull camSetPos [_xPosition, _yPosition, 0]

; Timeout?

_nTime = time

?_nTime > _nTimeout : goto "Fly"

; If human not presence already, let's check presence

; return back to #TimeoutLoop

?!g_bHuman : goto "CheckHumanPresence"

_bHuman = true

goto "Fly"

; Returns to #Fly

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Group land

#LandGroup

_xWaypoint = (random 20) - 10

_yWaypoint = (random 20) - 10

_xWaypoint = _xWaypoint + ((getPos g_oGroupLand) select 0)

_yWaypoint = _yWaypoint + ((getPos g_oGroupLand) select 1)

; We wanna land

_nState    = 1

goto "FlyTo"

; Returns to #FlyTo

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Seagull's brain

#SeagullBrain

~1

; Check if it's time to exit?

?g_bExit : g_nExitReport = g_nExitReport + 1; exit

; If we wanna stay landed

?g_strSpecial == "LANDED" && _bHuman : _bHuman = false; goto "LandSpecial"

?g_strSpecial == "LANDED" : goto "Landing"

; If we wanna fly in group (= chase the 'leader')

?g_strSpecial == "GROUP_FLY" : goto "Chase"

?g_bChaseMe && (g_oChaseMe distance _oSeagull) < 50 : goto "Chase"

?_oSeagull distance g_oObject > g_nArea_max : _oSeagull setPos [(getPos g_oObject) select 0 + g_nAreaDiv2, (getPos g_oObject) select 1 + g_nAreaDiv2, g_nAltitude]

; Bird doesn't ever wanna land?

?g_strSpecial == "FLYING" || g_strSpecial == "SEA" : goto "Fly"

?_nCounter > 0 : _nCounter = _nCounter - 1; goto "Fly"

_nCounter = (random 6) + 2

?!g_bChaseMe && (random 10) < 1 : g_oChaseMe = _oSeagull; g_bChaseMe = true; g_nChaseMe = time + (random 40) + 20

?!g_bGroupLand && (random 5) < 1 : g_bGroupLand = true; g_oGroupLand = _oSeagull; goto "Landing"

?g_bGroupLand && (g_oGroupLand distance _oSeagull) < 100 : _nTimeout = (random 120) + 60; goto "LandGroup"

goto "Landing"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×