Jump to content
Sign in to follow this  
galzohar

Need help finishing this MP mission

Recommended Posts

This is basically an assault mission. Attacking team needs to signal their attack helicopter to attack a grad launcher within 5 minutes, but in order for it to reach its target alive they have to destroy static AA defended by enemy infantry that are also overwatching the way to the grad launcher preventing an effective ground attack. If either team is eliminated, they lose automatically. No respawns.

Things I want to add but have no idea how to (starting with the important stuff):

- It's not allowing me to select a unit for the next round if it had died in the current round, even though AI can control it. Swapping to it is also not possible, but it is alive and kicking and can be ordered if you are the squad leader. I used respawn=5 so that when played with AI dead players can take over AI.

- Weapon selection for OpFor - currently only works for BlueFor. Having different OpFor/BlueFor weapon choice would also be nice but not critical.

- Any other bugs/exploits that would need fixing.

Less important:

- A way to reset the mission without re-loading it so score can be kept and delays of slot selection, gear selection and after-round delays are avoided as much as possible. Though without the briefing screen I don't know how gear selection could be made to work.

- Server option for "big gun" scale - the higher this is set to the more and the heavier vehicles each side will have to its disposal. Currently only 1 MG jeep is available for each side. That way the mission can have APCs/tanks as a server option rather than making a separate version.

- If needed, something to prevent the attackers from charging the grad launcher directly. A well-played enemy squad combined with the long distance should make it difficult to reach the grad alive within 5 minutes, but I'm not sure if it's enough. I may want to either add mines or more AI squads defending the grad, but since this isn't the mission's main focus I'd rather do as little as possible here while keeping it as a squad vs squad battle.

Uploaded file here:

http://www.filefactory.com/file/ahd59a8/n/assault_grad_1_utes_pbo

---------- Post added at 11:25 PM ---------- Previous post was at 10:20 PM ----------

[/color]Great, just realized the description.ext file disappeared somehow and that's why I couldn't choose weapons. Any idea what caused that file to disappear before I re-write it, and how to properly attach it to the mission pbo?

I'd also appreciate it if anyone already has a nice pre-made description.ext with all weapons. The only one I found was for Arma 1 which made it so I have to pretty much rewrite it myself anyway.

Edited by galzohar

Share this post


Link to post
Share on other sites

Not sure the weapon selection for both side during briefing is doable, I remember it being a problem even in OFP

You'd probably better go with a custom GUI launched just at mission start with the possible weapon selection for each role. Otherwise....

Custom GUI which could permit your no-reloading of mission wish

Apart from that, mission needs a death spectator script, bird mode can be abused, it's designed for coop missions. Kegetys has a very good one, not sure about the adaptation under A2

I'd also add some features between the 2 opponents to add a few obstacles and cover. Vehicle wrecks, perhaps a caban, things like that. The assault is a bit full head-on as is.

I don't think your respawn=5 is working, I couldn't respawn in available AI (not too sure I wasn't the last one alive :P )

If your mission is meant to be played without AI, there's an option in description.ext to make unoccupied slots not taken over by AI (disableAI = 1)

OFC, briefing, but that's the finishing touch :)

Next step is proper testing with clans/squads, for balancing. Unfortunately I'm alone :(

Share this post


Link to post
Share on other sites

Yeah the respawn is probably not working because it's in the description.ext which for some reason did not get linked.

I'll look into what objects I can add in that will still look realistic, Arma 2 maps in general are a bit "open" anyway compared to RL terrain. EDIT: Everything I try to add looks either bugged (clipping/floating issues), the only thing that somehow worked in certain positions are dirt mounds but they still don't look like they "belong" in the middle of the grass. I wish there were "rock" objects I could place (or find where those objects are! none found in the ArmAII_library.pdf from armaholic).

How exactly do you add the spectator scripts?

Edited by galzohar

Share this post


Link to post
Share on other sites

You need to download it from... well, not sure where unfortunately, and have a lil bit of scripting (and description.ext modification) to make it work and limiting to dead player's side

EDIT : the "little bit" unfortunately means getting your hands into not-pretty matters and may take time. Getting how the description.ext works for custom GUI, how scripting works, what init.sqf is, etc...

The editor is ultra easy for designing simple coop missions (which are something also very much lacking in A2 public play btw, but much more played in clans), rather easy for simple PvP missions but you get pretty fast into dirty things like scripting anytime you want to do something not "the BI's way".

Typical is your weapon selection example. BI made it for coop with 1 side chosing available equipement. Once you need to go further and permit 2 sides to do it, here comes scripting and custom GUI....

Edited by whisper

Share this post


Link to post
Share on other sites

Not being able to add rocks to a map is also pretty annoying :( best I could find was in the "buildings" section which don't show up as addable in the editor.

BIS imo really messed up on this one... "The BIS way" should be a way that works...

Share this post


Link to post
Share on other sites

It's doable ;)

There's an addon (was for A1, I'm sure the same exists for A2) that unlocks every object as placeable in the editor (look for "EditorUpgrade" or "EditorUpdate")

You might also try the 3D editor, perhaps it has everything already unlocked, not sure (Alt-E from main menu, new tool, very beta atm)

Sorry for not being more precise in the research and such, but I'm also misson-making for once atm before bed, I use all spare seconds ;) (+ I'm on the thing I hate the most : GUI design)

EDIT : your mission is on test on my server btw

Share this post


Link to post
Share on other sites

Not only the only objects that seemed to work were having clipping issues, I could also shoot through them which makes them pretty pointless. Maybe it can be just kept as is, use lots of smoke and suppressive fire ;) its' not like defenders can cross the skyline easily without getting pwned, and they'd need to expose themselves the the hill from which attackers suppress before they can even see the people running down/up the hill.

Share this post


Link to post
Share on other sites

Fixed the description.ext not binding and reuploaded (also updated original post):

http://www.filefactory.com/file/ahd59a8/n/assault_grad_1_utes_pbo

Now both sides can select all weapons in list, but I still can't make each side have its own list.

I think I'll leave the seagull issue unhanded, hopefully BIS or ACE2 will come up with a fix someday.

As for objects, if everyone on your team throw some smoke and a few stay back to provide MG/sniper cover, it should be far from impossible to make it up the hill. I do wish smoke would make a bigger screen though, currently it seems like when I stand in the middle of the smoke my head is still visible above it.

Share this post


Link to post
Share on other sites

Still looking for a way to make separate weapon pools for OpFor and BluFor, as well as markers that are only visible to one of the sides.

Share this post


Link to post
Share on other sites
Server option for "big gun" scale - the higher this is set to the more and the heavier vehicles each side will have to its disposal. Currently only 1 MG jeep is available for each side. That way the mission can have APCs/tanks as a server option rather than making a separate version.

For this, you probably want to use Param1 or Param2 in Description.ext. Here's some doco, it may be a shade out-of-date but I know the general principle works in ArmA 2.

As an example, say you want tanks to be available when Param2 > 3. Put an empty tank in each enemy base. In its "condition of presence" field put "Param2 > 3".

Sorry if I've not got specifics exactly right, I don't have access to the editor ATM and I'm working from memory.

Share this post


Link to post
Share on other sites

init.sqf:

timelimit = param1 * 60
trigTimer setTriggerTimeout [timelimit, timelimit, timelimit, false];

Didn't work, trigger still kept its original timer...

timelimit = param1 * 60
trigTimer setTriggerCountdown [timelimit, timelimit, timelimit, false];

Didn't work either.

The name of the trigger is obviously trigTimer.

The most annoying thing is that no error is given, it simply doesn't do anything.

And yes, I re-packed the pbo, the weapon selection at the start does work so the .ext is definitely a part of the mission...

EDIT: setTriggerText doesn't work either.

Does init.sqf run BEFORE objects are placed in the mission? If yes, how do I run it after? Can it create objects by itself?

Edited by galzohar

Share this post


Link to post
Share on other sites

Not sure you can modify 2D editor placed triggers (beware, I may very well be wrong here, it's just memory telling me so), only triggers created with createTrigger can be changed.

(which, in case you go for a createTrigger technique, will lead you to insane locality issues most probably, as script manipulation of triggers only have local effects)

Share this post


Link to post
Share on other sites

Wait, so init.sqf is run by everyone and not only by the server?... This is getting more and more weird the more I try to figure it out... Makes me wonder what tools the devs made to make the game that gave them those "awesome" ideas...

I just don't understand all these locality stuff... Even if I use some kind of "if server" condition I'm not sure how it's going to behave.

Share this post


Link to post
Share on other sites

Funny, the one command they show as an example of locality making a difference has unknown behavior in multiplayer...

At least I now know the order of initialization (or at least how to figure it out and/or change it).

Init lines of editor units run only once, though, right? Otherwise it would be a mess, but for some reason I wouldn't be too surprised.

Basically anything in the init.sqf that's mission related needs to be in a "if server" kind of block?

I don't understand how triggers are supposed to work if they are created for everyone... It could be that my init.sqf only changed the trigger's properties somewhere but kept default somewhere else, resulting in it activating after 0 seconds due to one instance getting activated? This doesn't make sense, though, as my init.sqf is supposed to run for everyone and change that trigger for everyone anyway, the way I understand it, so it could still be simply the script not affecting the trigger(s).

If a unit isn't local to me, will it still be able activate a trigger that is local (only) to me?

I find it interesting that you can actually spawn a separate script thread, might ease processor load on script-heavy missions, not that I intend to make any anytime soon ;)

Speculations and Basic findings! Must be updated with the facts along the way...

TeamSwitch in Multiplayer seems to be problematic when trying to switch to units that are not local to your machine. So if you are teamleader, the AI in your squad can be used for teamSwitching, but not the AI in another player's squad, or the AI on the server

More soon...

Wait, so I can swap to my subordinate but then what happens to my player? Damn this is messed up!

The more you know about Arma 2 mission making, the more you realize how many things that your mission needs you actually don't know how to make, even if they're extremely simple :(

Share this post


Link to post
Share on other sites

- init lines run only once, yes :) (on every PC, even on PC of players connecting after mission started)

- depends of how you want to handle situations, but it's usually a better system to make everything handled by server. Personnaly, from the init.sqf, I launch a init script dedicated to the server, and another dedicated to the clients

- I honestly don't know for your trigger issues, I just gave you some possibilities for debugging :(

- the non-local unit will send updates about its state to the server, which will in turn broadcast it to the clients. So the clients know the basic informations about this unit (position, movement, animation, action), so that they can update on screen ;) Meaning these non local unit can trigger local triggers by simply being in the activation radius, for example

- teamSwitch : Your original unit will be taken over by AI. It's not messed up :) In fact, I heavily rely on this feature for the mission I'm working on atm

- Beware being led into thinking you need tons of complicated stuff to make simple things, like multiple locality checks, etc... when in fact it works without it. Keep it simple, and if it fails, then, go into "complex mode".

Share this post


Link to post
Share on other sites

I mean when your player gets taken over by the AI, your squad is now localized on the server or the client? As it's lead by an AI it should now be localized on the server and that means you can't swap into it... Not to mention non-squad-leaders can't team switch into anything? Or am I/the wiki totally off here?

I still don't see how to make the time limit work from the parameters so that the server can set it. Trigger is the only way I can think of that will have a time limit that wouldn't require actually knowing how to make a real script that will end the mission when time runs out...

Share this post


Link to post
Share on other sites

timelimit = param1 * 60;
waitUntil {time > timelimit};
//Stuff to end the mission here

Imho it's way more difficult to change your trigger parameters dynamically then wait long enough by using a script

Share this post


Link to post
Share on other sites

And I'm assuming I need to call this script with a trigger? Or can it simply be done with init.sqf to spawn a myscript.sqf? Can a client end the mission?

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  

×