Results 1 to 4 of 4

Thread: Working with Sahrani Seize the Base City (Coop 20)

  1. #1

    Exclamation Working with Sahrani Seize the Base City (Coop 20)

    I've been trying to figure out how to edit the stock Sahrani Island Mission 06: Seize the Base (Coop 20) for the past 3 years. I have been unsucessful in finding a pbo extracter that works with this particular mission.

    When I had tried to find editing tips for this mission back in the day, it seems no "hardcore" players liked it, but in our gaming center, is was the easiest start-up, drop-in, tactical combat mission ever made (yet it seemed so simple).

    The way you start out marching up to the frontline, yet have a handful of vehicles, and several cratefuls of weaponry to use, it was easy to setup the bots, or other players to begin combat and for people to learn how to play the game and still fun. In the past 3 years I have only been able to beat the mission twice with only myself and 9 other bots (the other 10 get slaughtered with or without my help), but I always ended up with me being the only survivor.

    I'm rambling a little bit, so basically I want to know if any one has extracted the pbo of this mission "mp01seizethecity.sara.pbo" the 177kb file?
    "I want you to remember that no bastard ever won a war by dying for his country. He won it by making the other poor dumb bastard die for his country."

  2. #2
    Corporal Crimson_Raptor's Avatar
    Join Date
    May 16 2006
    Location
    Oklahoma
    Posts
    80
    Author of the Thread
    I tired to even put a copy of the "mp01seizethecity.sara.pbo" file in the mpmission saved and mpmissions in the my documents arma folders to no avail.

    I've tried Kegetys's ArmaTools Version: 7.7.2010 http://www.armaholic.com/page.php?id=411 and his pbo extracter doesn't seem to work even when associating it with windows explorer. By default Arma2:OA seems to like those files for some reason. Course when you open it says can not find content "Sara" as in the Sara map in Arma.

    Maybe all I need is a link to a pbo extractor that works! I've had no luck searching.

    ---------- Post added at 08:42 PM ---------- Previous post was at 07:07 PM ----------

    I got it! Thank the matrix for Armaholic.com!

    Voyager & Flea's PBO View dated June 7th, 2007! To think I had to go that far back to find one that worked with the stock files, that's almost ridiculous.

    http://www.armaholic.com/page.php?id=1434


    Unfortunately there are a lot more files in this pbo then a simple mission.sqm. I udnerstand all the different language briefings but there a few I don't get what they do for the mission:


    MP01.paa (I think this is a misson/level selection picture that shows up ingame but not for sure)

    $PREFIX$ (Doesn't have an extension so I couldn't open it, don't really know if it's needed then.)

    init.sqs (all it contains is the following code but isn't this a stock game action to fade into the next player?)
    Code:
    titleCut ["","BLACK IN", 3]
    outro.sqs (a little more in grossed, here's a code box)
    Code:
    _camera = "camera" camCreate [8388.39,4348.80,0.74] 
    _camera cameraEffect ["internal","back"]
    
    enableRadio false
    
    ;=== 15:42:01
    _camera camPrepareTarget [-24022.59,99148.51,-9349.68]
    _camera camPreparePos [9469.71,5397.70,31.56]
    _camera camPrepareFOV 0.486
    _camera camCommitPrepared 0
    @camCommitted _camera
    
    ;=== 15:42:53
    _camera camPrepareTarget [-49753.71,84931.73,-13721.95]
    _camera camPreparePos [9625.73,5664.28,60.66]
    _camera camPrepareFOV 0.312
    _camera camCommitPrepared 12
    @camCommitted _camera
    
    player cameraEffect ["terminate","back"]
    camDestroy _camera
    
    over = true
    publicVariable "over"
    handsUp.sqs (an animation text file? Very odd, yet looks like it sets all the "Zbrane" or enemies to careless, yet why was that not just down in the editor? Very strange reason to have this file.)
    Code:
    _zbrane = weapons _this
    _zbraneMax = count _zbrane
    
    _this setBehaviour "Careless"
    _this setUnitPos "Up"
    _this setCaptive true
    
    _i = 0;
    #LOOP
    ? _i >= _zbraneMax : goto "ANIMATION"
    
    _this action ["DropWeapon", _this,_zbrane select _i]
    @count weapons _this ==  count _zbrane - _i
    
    _i = _i + 1
    goto "LOOP"
    
    #ANIMATION
    _this playMove "AmovPercMstpSsurWnonDnon"
    _x = random 30
    ? _x < 10 : _x = 10
    ~_x
    description.ext (something to do with multiplayer maybe?)
    Code:
    respawn="group";
    
    onLoadMission=$STR_MP_M01n01;
    
    class Header
    {
      gameType = Coop;
      minPlayers = 1;
      maxPlayers = 20;
    };
    
    
    statsColumn=9;
    
    coefLoser=0;
    coefEnd1=3;
    coefEnd2=0;
    coefEnd3=0;
    coefEnd4=0;
    coefEnd5=0;
    coefEnd6=0;
    bombing.sqf (these two "bombing" files have something to do with the ags30 grenade launcher soldier that has him maybe "randomly" fire over where we thinks the enemy is at rather than accurately fire when in sight?)
    Code:
    _x = Random 30;
    if (_x < 15) then {_x = 15};
    sleep _x;
    
    while {count magazines ag1 > 1} do {
    	_targets = count list wstList;
    	if (_targets > 0 and _targets < 5) then {
    		h1 setpos getpos (list wstList select 0);
    		_oldPosH1 = getPos H1;
    		ag1 doTarget h1;
    		while {(ag1 ammo "ags30" < 1) or (tady < 8)} do {
    			h1 setpos [50 + (_oldPosH1 select 0) - (random 100), 50 + (_oldPosH1 select 1) - (random 100), _oldPosH1 select 2];
    			sleep 0.5;
    			ag1 fire "ags30";
    			sleep Random 4;
    		};
    	};
    	if (_targets > 5 and _targets < 12) then {
    		h1 setpos getpos (list wstList select 1);
    		h2 setpos getpos (list wstList select 8);
    		_oldPosH1 = getPos H1;
    		_oldPosH2 = getPos H2;
    		ag1 doTarget h1;
    		ag2 doTarget h2;
    		while {(ag1 ammo "ags30" < 1) or (tady < 8)} do {
    			h1 setpos [50 + (_oldPosH1 select 0) - (random 100), 50 + (_oldPosH1 select 1) - (random 100), _oldPosH1 select 2];
    			sleep 0.5;
    			ag1 fire "ags30";
    			sleep Random 3;
    			h2 setpos [50 + (_oldPosH2 select 0) - (random 100), 50 + (_oldPosH2 select 1) - (random 100), _oldPosH2 select 2];
    			sleep 0.5;
    			ag2 fire "ags30";
    			sleep Random 3;
    		};
    	};
    	if (_targets >= 12) then {
    		h1 setpos getpos (list wstList select 2);
    		h2 setpos getpos (list wstList select 8);
    		h2 setpos getpos (list wstList select 14);
    		_oldPosH1 = getPos H1;
    		_oldPosH2 = getPos H2;
    		_oldPosH3 = getPos H3;
    		ag1 doTarget h1;
    		ag2 doTarget h2;
    		ag2 doTarget h3;
    		while {(ag1 ammo "ags30" < 1) or (tady < 8)} do {
    			h1 setpos [50 + (_oldPosH1 select 0) - (random 100), 50 + (_oldPosH1 select 1) - (random 100), _oldPosH1 select 2];
    			sleep 0.5;
    			ag1 fire "ags30";
    			sleep Random 3;
    			h2 setpos [50 + (_oldPosH2 select 0) - (random 100), 50 + (_oldPosH2 select 1) - (random 100), _oldPosH2 select 2];
    			sleep 0.5;
    			ag2 fire "ags30";
    			sleep Random 3;
    			h3 setpos [50 + (_oldPosH3 select 0) - (random 100), 50 + (_oldPosH3 select 1) - (random 100), _oldPosH3 select 2];
    			sleep 0.5;
    			ag3 fire "ags30";
    			sleep Random 3;
    		};
    	};
    	sleep 4
    };
    bombing.sqs
    Code:
    _x = Random 30
    ? _x < 15 : _x = 15
    ~_x
    
    _targets = count list wstList
    
    
    
    ? _targets >= 1 : h1 setpos getpos (list wstList select 0)
    ? _targets >= 2 : h2 setpos getpos (list wstList select 1)
    ? _targets >= 3 : h3 setpos getpos (list wstList select 2)
    
    _oldPosH1 = getPos H1
    _oldPosH2 = getPos H2
    _oldPosH3 = getPos H3
    
    ag1 doTarget h1
    ag2 doTarget h2
    ag3 doTarget h3
    
    #LOOP
    
    ? (ag1 ammo "ags30" < 1) or (tady == 8) : goto "SKIP"
    
    h1 setpos [50 + (_oldPosH1 select 0) - (random 100), 50 + (_oldPosH1 select 1) - (random 100), _oldPosH1 select 2]
    ~0.5
    ag1 fire "ags30"
    
    ~Random 2
    
    h2 setpos [50 + (_oldPosH2 select 0) - (random 100), 50 + (_oldPosH2 select 1) - (random 100), _oldPosH2 select 2]
    ~0.5
    ag2 fire "ags30"
    
    ~Random 2
    
    h3 setpos [50 + (_oldPosH3 select 0) - (random 100), 50 + (_oldPosH3 select 1) - (random 100), _oldPosH3 select 2]
    ~0.5
    ag3 fire "ags30"
    
    
    goto "LOOP"
    
    #SKIP
    Any help is greatly appreciated!
    Last edited by Crimson_Raptor; Nov 15 2010 at 00:45.

  3. #3
    - the paa file should be the title image.

    - im not sure what the prefix thing means.

    - the init.sqs is a script that automatically activates when the mission starts, and in this case it seems that they used it to create a sort of mini-intro.

    - the outro.sqs is a script that most likely activates when you finish the mission and most likely will activate the outro video-thingy.

    - the handsup.sqs seems to be used to make a unit drop his gun and put his hands up, so i would check how this script is activated in the mission (probably using a trigger).

    -the description.ext file is another one of those default files (like the init.sqs), only this one isnt a script,and it is used to define some stuff and it is used mostly for multiplayer missions i think.

    the respawn thing means that if you are killed you will take control of any remaining ai unit and if there is no remaining ai you will be taking control of a seagull.

    the onloadmission thing defines the name of the mission (in this case this might be some code of BIS to make the mission show up differently from user created missions).

    Those next three things define the mission as a coop (which helps with filtering the mission online), and the minimum and maximum amount of players.

    And about all the other things in it i am not sure what they mean.

    - the bombing.sqf file is another script (function actually, its a different programming language then the sqs files) , the bombing.sqs file seems to do the same as the bombing.sqf file, they are just written in different programming languages.
    Your guess that they have something to do with the targetting of an ags-30 might be correct, again i would recommend you checking out how they rae activated.

    And here's some further reading,

    http://community.bistudio.com/wiki/Description.ext

    and taken from the bohemia interactive wiki (too small a text to post the entire link)

    The init.sqs file is loaded automatically by the Operation FlashPoint engine when the mission begins. The file resides in the root of the mission directory.
    The init.sqs file is a good place to load scripts, and variables before the mission begins.
    Note: you can also use a init.sqf instead of init.sqs

  4. #4
    Corporal Crimson_Raptor's Avatar
    Join Date
    May 16 2006
    Location
    Oklahoma
    Posts
    80
    Author of the Thread
    Awesome! Thank you so much, that really helped me understand what everything meant.

    Looks like a description.ext is needed to be able to respawn within a defined group. You can change the max players up and down so it shows right in the multiplayer screen within the file.

    Also I added the following into each init file of the playable units: OurG2 = group this;

    That told the game that you can spawn within those selected units as a group.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •