General Barron 0 Posted August 12, 2004 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. Share this post Link to post Share on other sites
@cero 0 Posted August 12, 2004 Lol, I got some ideas 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 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 A bloody script for King of the Hill mission Self explanatory 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
Grizzlie 0 Posted August 12, 2004 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
@cero 0 Posted August 14, 2004 Any of this sugestions taken into consideration yet? @CERO. Share this post Link to post Share on other sites
Major Gripe 0 Posted August 14, 2004 AI landing plane whereverI 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
Sniper_Kyle 0 Posted August 16, 2004 So does anybody have the class name for a single seagull? Share this post Link to post Share on other sites
gandalf the white 0 Posted August 16, 2004 break open a couple of PBO's ? asl col. clink, he got them . Share this post Link to post Share on other sites
General Barron 0 Posted August 16, 2004 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