Jump to content
Sign in to follow this  
A-SUICIDAL

Need JIP Help

Recommended Posts

Need JIP Help

How many times has this been asked?

I created a simple 3 task example mission:

create_tasks.Desert_E.zip

I don't know how to make this sample mission JIP compatible. I made this sample mission just so I could post it here and ask for JIP help. It's actually pretty cool how I have my tasks scripted. The example mission contains 3 objectives, each one is an object that needs to be destroyed. The first object is created at the location of an invisible H landing pad along with its markers etc. When the first object is destroyed, the markers turn from red to green, some other stuff happens representing the task is completed, then a new task is created along with a new object and markers at the location of second invisible H landing pad. Then when the second task is completed, a third task, object and markers are created at a third invisible H landing pad - and when the third object is destroyed the mission completes. There is an option to radio Alpha, Bravo and Charlie to destroy each task object. If somebody can figure out how to make the example mission JIP compatible, I could then fix several missions that I've made in the past and also finally finish the mission that I am working on now. And it would be a great tutorial mission for other guys like me that have trouble understanding how to make their missions JIP compatible.

If somebody could please take a look at the mission and add the correct variables and call functions where needed to make it JIP compatible, it would be greatly appreciated. I know this is asking a lot, but I don't know what else to do at this point. I've tried using Taskmaster and other methods of adding JIP to my mission and I simply could not understand the example missions or the instructions. I've had other people tell me that they could not understand how to do it either.

Thanks in advance and props to anybody that can fix it.

Share this post


Link to post
Share on other sites

Hi dude,

your problem here is not just JIP, but your mission/structure is entirely wrong when it comes to multiplayer.

It's not easy to understand locality at the beginning. I know this from myself.

You really need to split server and client at first. It's important that you execute commands with global effects only on the server, or only at ONE client.

You may not encountered this yet, but your current structure will create 1 uav terminal and 1 marker per client + 1 at the server. So you have a big mess with 6 uav terminals if there are 5 players connected.

createVehicle and createMarker for example do have global effects and are therefore server only commands.

If you click those links you will notice the effects_global.gif on the top left. This tells you whenever a command has local or global effects. You you gotta look at the wiki page for every command to make sure you get it right.

Then you should separate the tasks from the other files. This makes it easier to handle.

So this is how your structure should look like.

Share this post


Link to post
Share on other sites

Yeah, I knew the tasks were being created for each player, but wasn't sure how to fix it. I have another example mission where it doesn't do that, but it still never worked for JIP. I'm going to apply your tasks example to the mission I am working on and then test with friends and hopefully it will finally be working correctly. The mission has 8 objectives and an extract at the end, so it's a little bit of work. 5:20 am and I'm dead tired, yet I just want to work on it now, lol, but I guess it would be smarter to get some sleep now and be bright eyed later when I work on it. Thanks so much for your help. I come back and let you know how it worked out.

Share this post


Link to post
Share on other sites

After applying it to my mission, I finally had the chance to test it with friends yesterday. The tasks still wouldn't appear for JIP players. I then tested your sample mission online and the same thing happened. I completed task1 and task2 started and then a friend joined and he had no tasks at all. I'm starting to understand how this stuff works a bit better, but I'm still unsure of a few things. I've been busy, so I'm just now getting back to work on it.

Share this post


Link to post
Share on other sites

place in init.sqf preferably at the top:

if (isNil "AllOurTasks") then {AllOurTasks = []};
if (isNull player) then {
player spawn {
	if (_this != player) exitWith {};  // exit all other clients.
	waitUntil {sleep 1; !isNull player};  // waituntil player is ingame.

	_tasks = [];
	if ((count AllOurTasks) != 0) then {
		{
			_task = player createSimpleTask (_x select 1);
			_task setSimpleTaskDescription (_x select 2);
			_task setSimpleTaskDestination (_x select 3);
			_task setTaskState (_x select 4);
			_tasks = _tasks + [_task];
		} foreach AllOurTasks;
	};
};
};

here we create the tasks, in some script, at some time.

// task 1.
task1 = player createSimpleTask ["NewTask"];
task1 setSimpleTaskDescription ["Today you have to kill Spongebob.", "Kill Spongebob", "Here he is !"];
task1 setSimpleTaskDestination (getMarkerPos "obj1");
task1 setTaskState "Assigned";

// here we collect all info, top to bottom, left to right in the AllOurTasks array.
AllOurTasks = AllOurTasks + [["task1", ["NewTask"], ["Today you have to kill Spongebob.", "Kill Spongebob", "Here he is !"], (getMarkerPos "obj1"), "Assigned"]];

// when we are finnished we broadcast the array to all clients, including JIP´s so they can create them in the init.sqf code.
publicVariable "AllOurTasks";

when you update your task, use set command, you see in the init part that taskstate is select 4, so we now adjust that variable.

task1 setTaskState "Succeeded";
{
if (str(task1) in _x) then {
	_x set [4, "Succeeded"];
};
} foreach AllOurTasks;
publicVariable "AllOurTasks";

now any JIP will create their task with the same taskstate as others already playing, in this case its now "Succeeded".

you can adjust any part of the tasks with the set command, like for example adjusting setSimpleTaskDestination, we use select 3 etc.

you can add and adjust how many times you like at any point in the mission, just remember to use the same order for all tasks info.

then collect info as above, publicvariable it and all players that join will recreate the tasks for themselves when they join.

NOTE: in theory its all good, untested, also if someone knows how to just use the MP framework for this all would be easier, but it isnt to much work once you got it down.

Edited by Demonized
changed the top line of the init.sqf code.

Share this post


Link to post
Share on other sites

At the start of my mission, there is one task currently active and visible on the map. Once that task is completed, a new task appears on the map along with markers etc, kind of like in domi when an AO is completed and a few moments goes by and then a new AO appears on the map.

Will your method work for that? Or is what you explained above designed to work if all tasks are shown on map at mission start?

Share this post


Link to post
Share on other sites

no, i intended it to work throughout the mission create tasks at start, create more task during mission etc.

you just update the array, whenever you create a new task...

though markers and such you also need to account for but that can also be incorporated.

Share this post


Link to post
Share on other sites

just an fyi after some thought, i changed the top line of the init.sqf code.

from:

AllOurTasks = [];

to:

if (isNil "AllOurTasks") then {AllOurTasks = []};

also if you decide to delete a task during the mission i thought of just adding a special string in the array using set, with "deleteThisTask", and then just deleteTask for all those that had this in them after all of them were created outside the foreach code in the init.sqf code so the numbers on the task handles were same and correct for all players.. before and after JIP.

but i didnt add that just yet, need to see if it actually works first.

if it does, ill see if i can compile it into a simple short function to be used throughout the mission instead of all the code.

Edited by Demonized

Share this post


Link to post
Share on other sites

I'm still not able to see tasks when I reconnect. I'm doing something wrong but I can't quite figure out what. Anyway, here's my sample mission so far. It has a mix of both of your suggestions. I appreciate the tremendous help you have given me so far.

create_tasks_MP_2.Desert_E.zip

Share this post


Link to post
Share on other sites

if (isNull player) then {
player spawn {
	if (_this != player) exitWith {};  // exit all other clients.

This *might* be why you are not seeing the new tasks when you join.

If player is not null (player is initialized) it never creates the tasks.

If the player is null, it most likely won't do it either:

It spawn the script using the objNull (player) as the argument. Then it basically checks whether objNull == objNull, which it strangely never is and thus quits the script.

You might be extemely lucky that the player is not initialized in the first if, and that he is in the second. However, that's a very small chance.

This might be a better init.sqf script:

//Initialize task list on server side
if (isServer && isNil "AllOurTasks") then {
   AllOurTasks = []; 
   publicVariable "AllOurTasks";
};

//We are not server and just joined
if (!isServer) then {
   //Spawn script to handle clientside task creation
   [] spawn {
       //Wait until we have the data, don't default it to something. We need the player too.
       waitUntil {!isNil "AllOurTasks" && !isNull player};
       _tasks = [];
       {
           _task = player createSimpleTask (_x select 1);
           _task setSimpleTaskDescription (_x select 2);
           _task setSimpleTaskDestination (_x select 3);
           _task setTaskState (_x select 4);
           _tasks = _tasks + [_task];
       } foreach AllOurTasks;
   };
};

However, this doesn't solve the problem with updating the task list if it changes while the player is ingame. And sure about respawn either.

You might be better off using a task script someone already created instead, which have solved the MP and JIP issues. I've seen quite a couple on in this part of the forum.

Share this post


Link to post
Share on other sites

with muzzleflash adjustment i think maybe we get a duplicate of the tasks on the ones already playing when someone JIP´s...

i know Shuko has a task master script wich is fully tested afaik.

downside on that is that it is not the easiest of scripts..

never looked more closely into it before..

Share this post


Link to post
Share on other sites

ive taken a look into the MP scripts regarding MP framework and the createSimpleTask etc commands that can be used, but its very confusing.

i did however find a way to get the JIP´s to run my script with my previous code, though untested on dedicated, using functions module and a script named initJIPcompatible.sqf

but everything i posted on this matter is simply theoretical mumbo jumbo at this point.

then i decided to look into Shuko´s Taskmaster 2 and look at how he did it, and i came up with the following:

just use TaskMaster 2 as he has covered all the bases, it is tested and it is verified that it works.

It uses something along the lines of what i was thinking about, and it looks like what i would have wished my own script to be like when it was completed and tested and updated over and over and over and ...

It looks discouraging at first, but start in the top, read throug part by part and youll get it after awhile.

there is also example mission included.

It will be while worth for you to learn to use this, as it can do everything you need.

Share this post


Link to post
Share on other sites

I started out in this thread explaining that I had tried to use Taskmaster, but I couldn't understand any of it. The example mission has no markers in it at all. I'm sure it's a great instructional reference for advanced scripters, but I really had a tough time with it. I still have the example mission, I also have like 10 other sample missions where I tried to use it and all attempts failed. But, I will take your advice and keep at it and see if I can somehow figure it out and get it to work in my mission. In his example mission, there are a bunch of shk_taskmaster_##.sqf files that seem to be unused, I don't know what they are for or if they are being used in some way. I also downloaded the updated shk_taskmaster.sqf file and put it in his example mission folder overwriting the older one.

Shuko helped me a long time ago with a double trigger method of updating jips, but that was for a mission where I had all of my 8 tasks showing on the map at mission start, and his method worked great, but then 1 day it stopped working out of nowhere, and I don't know why. My guess was that some new patch might have caused it to stop working. But even if it still were to work, I don't think it would work for the mission I am working on now, because my tasks are created throughout the mission instead of all being shown at mission start.

This is the page where he posted a link to his double trigger example mission:

http://forums.bistudio.com/showthread.php?t=106494&page=2

There is also another example mission by deadfast here:

http://forums.bistudio.com/showthread.php?t=105918&highlight=multitask

I'll first try what muzzleflash suggested and if I can't get that working, I'll get back to trying to figure out the taskmaster stuff.

Thanks again.

---------- Post added at 02:50 AM ---------- Previous post was at 01:17 AM ----------

I was just poking at taskmasters some more, and it kind of makes more sense to me now. I even managed to get a task to work, woohoo, lol.

["Task 2","Destroy Radar Tower","Destroy Radar Tower",true,["marker2",getmarkerpos "T2","mil_dot","ColorRed","Destroy Radar Tower"],"assigned"] call SHK_Taskmaster_add;

But Taskmasters method of adding markers is limited to 1 marker per task, so I can't put a big red AO Ellipse covering the area and size it. But then I thought... since the only thing in my mission that seems to be working great for JIPs is my "created" markers objects that need to be destroyed, I figured I could just keep all that stuff and simply add the very basic taskmaster "task" functionality to my mission.

Like for task 1 I could just use...

["Task1","Title","Desc"] call SHK_Taskmaster_add;

And to set it as succeeded and start task 2 use...

["Task1","succeeded",["Task2","Title","Desc"]] call SHK_Taskmaster_upd;

Something like that, I'll get it figured out. This could be fun actually - and easy. I think the reason why I had so much trouble understanding it before was because there were so many examples and so many radio triggers. This time I just ignored all that stuff and did what you said and just read through it more carefully, then I removed everything in his example init.sqf and started adding my own stuff, and it worked. Very cool. I wish there was a way to to add to the array - player setCurrentTask someTask, so it would give the little yellow waypoint arrow. And I also didn't have the option "set as current task". I hope there is a way to get that working.

Edited by A-SUICIDAL

Share this post


Link to post
Share on other sites

-- Task Data ---------------------------------------------------------------------------------
   ["TaskName","Title","Description",Condition,[Marker],"State"]

   Required parameters:
     TaskName      string     Name used to refer to the task
     Title         string     Task name shown in the in/game task list
     Description   string     Task description, the actual text body

   Optional parameters:
     Condition     boolean/side/faction/unit/group/string   Units the task is added to. Default is everyone
     Marker        array     Marker related to the task. It will be created only for the units who have the
                             task. Marker will be hidden after task is completed. Can be an array of marker
                             arrays, if you want to create multiple markers.
       Name        string    Name of the marker to create.
       Position    string    Position of the marker.
       Type        string    Marker type. Optional, default is "selector_selectedMission".
       Color       string    Marker color. Optional, default is red.
       Text        string    Marker text.
     State         string    Task state of the newly created task. Default is "created".
     [b]Destination   object/position/marker   Place to create task destination (game's built-in waypoint/marker). If an object is given, setSimpleTaskTarget command is used, attaching the destination to it.[/b]

edit, thats just for the destination, the setCurrentTask part i have not found yet, maybe ask in Shukos thread.

but i saw this, so it may not be present in the script.

 0.31  Fixed: Change in v0.29 broke task state update for JIPs. States were being overwritten by setcurrenttask command.

also maybe experiment with assigned:

  Task states are updated by calling a function. Possible states are: succeeded/failed/canceled/[b]assigned[/b]/created.
 Example: ["Task1","succeeded"] call SHK_Taskmaster_upd;

Edited by Demonized

Share this post


Link to post
Share on other sites

"assigned" didn't give me the little yellow waypoint arrow, but it shows the box shaded in grey as if it is set as the current task, so it didn't make sense to me why it didn't give my the waypoint thingy. I did have a marker location when I tested it, but no waypoint.

One part I am confused about is the "condition". I wasn't sure what to put there, so I tried "west" and got an error. It says...

Condition     boolean/side/faction/unit/group/string   Units the task is added to. Default is everyone

so what do I put there? In one of his samples it says...

["TaskName","Title","Description",Condition,[Marker],"State"]

so what do I replace the word "Condition" with?

Also, I assume I need to add at least 1 task to the init.sqf in order to activate the "shk_taskmaster.sqf" file. At the end of his init.sqf it says:

 call compile preprocessfilelinenumbers "shk_taskmaster.sqf";

and I have no idea what "compile preprocessfilelinenumbers" is, but I guess I don't need to know as long as it's working. I had my mission setup so the first task gets created a few moments after the mission starts, but I have no problem with changing it so the first task is started immediately from the init.sqf.

The last thing I wanted to know is... to add this to my own mission, I just need the 1 "shk_taskmaster.sqf" file right? Or do I need all of those other files? I have no idea what those other files are for.

init_localize.sqf

shk_taskmaster_012.sqf

shk_taskmaster_020.sqf

shk_taskmaster_021.sqf

shk_taskmaster_022.sqf

shk_taskmaster_024.sqf

shk_taskmaster_025.sqf

shk_taskmaster_27.sqf

shk_taskmaster_28.sqf

shk_taskmaster_29.sqf

stringtable.xml

My guess was that they were older versions of the same script, and the xml is there to support other languages. The "init_localize.sqf" file has me stumped. Again, do I need these files?

He also mentioned something about multiple markers, but I'm not sure how to do that. Like if I wanted 2 markers for 1 task, I wouldn't know how to do that.

---------- Post added at 05:12 AM ---------- Previous post was at 04:35 AM ----------

I added the destination on the very end and it gave me the in-game waypoint. I didn't read that far before I guess. So Lets say I have an invisible H landing pad called "H1" that I want to use as my location

  ["Task1","Destroy Weapons Cache","Find and destroy the weapons cache.",true,["Marker1",getpos H1],"assigned", H1],

Share this post


Link to post
Share on other sites

JIP will create their task with the same taskstate as others already playing, in this case its now "Succeeded".

you can adjust any part of the tasks with the set command, like for example adjusting setSimpleTaskDestination, we use select 3 etc.

I curious as to how exactly the this select works. Is that because setSimpleTaskDestination is placed third am I way off?

thanks.

Share this post


Link to post
Share on other sites
I curious as to how exactly the this select works. Is that because setSimpleTaskDestination is placed third am I way off?

thanks.

youre not totally off.

_this refers to an array..

[] is an array.

["apples","oranges","rambo"] array has stuff in it.

array content are listed from 0 to last, in this case 0,1,2.

_this select 0 is the first in the array, aka "apples".

_this select 2 is in this case last, aka "rambo".

in my posted code (note not confirmed its working) this select 3 refers to the fourth object in the array. (4th object addded)

Share this post


Link to post
Share on other sites

Well, I got it working, but then I found out that taskmaster doesn't work if AI are disabled and you abort to lobby and pick another player slot and rejoin the battle. You will lose all of the tasks. In fact, if you test taskmasters sample mission online and disable the AI, you immediately get an error regarding group b "gb". In my mission, players can deploy static weapons, for instance the US machine gunner can deploy and M2 every 10 minutes, the BAF AT soldier can deploy a static TOW launcher every 10 minutes, and etc. So players are constantly aborting to lobby to change to a different player role and then they rejoin the battle - and using taskmaster will not work for them at all when they reconnect, unless I have AI enable at all times, which I absolutely do not want AI on my team in my missions ever since they are completely useless and retarded. So I guess no matter what, I just can't seem to make any of this work - unless this only happens to the host, I don't know yet. I haven't tested with friends yet to find out. But I am assuming that this will happen to everybody. I wish I could understand this stuff better.

So what I've been able to gather so far is... players that join late will be updated with all tasks, but if with AI are disabled and the late joining player then aborts to lobby and chooses a different player role/slot and rejoins the battle, he then loses all tasks.

Is there any possible way to update all tasks for a player that switches to a different player slot in lobby and rejoins the battle?

Share this post


Link to post
Share on other sites
youre not totally off.

_this refers to an array..

[] is an array.

["apples","oranges","rambo"] array has stuff in it.

array content are listed from 0 to last, in this case 0,1,2.

_this select 0 is the first in the array, aka "apples".

_this select 2 is in this case last, aka "rambo".

in my posted code (note not confirmed its working) this select 3 refers to the fourth object in the array. (4th object addded)

Ah ok simple enough. That clears some things up. Thnx

Share this post


Link to post
Share on other sites

In taskmasters it says...

0.32 Added: Now it's possible to define multiple markers for a task.

I haven't found any examples of this. I'm trying to create a red ellipse marker 1000x1000 with 3 selector markers inside it at 0.5x0.5. I have 4 invisible H pads in the mission at the position where I want the 4 markers to appear, but I do not know exactly how to add 4 markers for a task. I know how to do it with 1 marker like I explained above when I used...

["Task1","Destroy Weapons Cache","Find and destroy the weapons cache.",true,["Marker1",getpos H1],"assigned", H1]

but i don't know how to do it with 4 markers or set their size. Does anybody know how to do this?

---------- Post added at 02:25 PM ---------- Previous post was at 01:37 PM ----------

This is all the info I can find on it...

Marker - array - Marker related to the task.

It will be created only for the units who have the task. Marker will be hidden after task is completed. Can be an array of marker arrays, if you want to create multiple markers.

Share this post


Link to post
Share on other sites

Yeah, I've been reading through every page of the Taskmaster thread - and just found out how to do it for 3 selector target markers...

[["Marker1",getpos H1],["Marker2",getpos H2],["Marker3",getpos H3]]

But I think for the Large AO ellipse marker I need to place it in the mission and show/hide it using alpha stuff.

---------- Post added at 03:52 PM ---------- Previous post was at 03:27 PM ----------

I already had markers set up in the mission that I thought were jip compatible, but in testing last night a friend joined late just after task 1 started and he couldn't see the markers at all, but he could see the task location. I really wanted to keep the markers I had, and I thought they were jip compatible, but apparently they are not. And trying to get the markers to work with taskmasters might not be possible.

My task1 consists of 1 large AO marker and 3 small target markers marking where 3 objects are that need to be destroyed with C4. As each of the targets are destroyed, the target marker turns from red to green, and when all 3 targets are destroyed the large AO marker turns green and all completed green markers remain in the mission to the end.

This is in my init.sqf to get task 1 rolling:

["Task 1","Objective 1","Destroy all enemy targets marked in the AO using satchel charges.",true,[],"assigned", H1]

and this is part of the server_tasks.sqf file covering task 1:

waitUntil {(isDedicated) || !(isNull player)};



// Execute stuff with global effect only on the server
// createMarker, createVehicle do have global effects
if (!isServer) exitWith {};



// Launch task 1

A1 = createMarker ["AO1", position H1];
"AO1" setMarkerShape "ellipse";
"AO1" setMarkerType "empty";
"AO1" setMarkerSize [500, 500];
"AO1" setMarkerColor "ColorRedAlpha";

targ_M1a = createMarker ["targM1a", position H1a];
"targM1a" setMarkerShape "ICON";
"targM1a" setMarkerType "selector_selectedEnemy";
"targM1a" setMarkerSize [0.5, 0.5];
"targM1a" setMarkerColor "ColorRed";

targ_M1b = createMarker ["targM1b", position H1b];
"targM1b" setMarkerShape "ICON";
"targM1b" setMarkerType "selector_selectedEnemy";
"targM1b" setMarkerSize [0.5, 0.5];
"targM1b" setMarkerColor "ColorRed";

targ_M1c = createMarker ["targM1c", position H1c];
"targM1c" setMarkerShape "ICON";
"targM1c" setMarkerType "selector_selectedEnemy";
"targM1c" setMarkerSize [0.5, 0.5];
"targM1c" setMarkerColor "ColorRed";

targ1a = "TK_WarfareBAircraftFactory_Base_EP1" createVehicle [0,0,0];
targ1a setpos position H1a;
targ1a setDir direction H1a;
targ1a setVehicleInit "null = [this] execVM 'scripts\c4only.sqf';";
processInitCommands;

targ1b = "TK_WarfareBUAVterminal_Base_EP1" createVehicle [0,0,0];
targ1b setpos position H1b;
targ1b setDir direction H1b;
targ1b setVehicleInit "null = [this] execVM 'scripts\c4only.sqf';";
processInitCommands;

targ1c = "TK_WarfareBArtilleryRadar_Base_EP1" createVehicle [0,0,0];
targ1c setpos position H1c;
targ1c setDir direction H1a;
targ1c setVehicleInit "null = [this] execVM 'scripts\c4only.sqf';";
processInitCommands;



// Broadcast to clients, so they know the task is running
Task1Started = true; publicVariable "Task1Started";



_trg1=createTrigger["EmptyDetector", getPos H1c];
_trg1 setTriggerArea[1200,1200,0,false];
_trg1 setTriggerActivation["WEST","PRESENT",false];
_trg1 setTriggerStatements["this", "catch_trigger = 'trigger1'; publicVariable 'catch_trigger';", ""];

_trg1a=createTrigger["EmptyDetector", getPos H1c];
_trg1a setTriggerArea[150,150,0,false];
_trg1a setTriggerActivation["WEST","PRESENT",false];
_trg1a setTriggerStatements["this && {((getPosATL _x) select 2) < 5} count thislist > 0", "catch_trigger = 'trigger1A'; publicVariable 'catch_trigger';", ""];

_trg1b=createTrigger["EmptyDetector", getPos H1c];
_trg1b setTriggerArea[80,80,0,false];
_trg1b setTriggerActivation["WEST","PRESENT",false];
_trg1b setTriggerStatements["this && {((getPosATL _x) select 2) < 5} count thislist > 0", "catch_trigger = 'trigger1B'; publicVariable 'catch_trigger';", ""];

_targT1a=createTrigger["EmptyDetector",getPos player];
_targT1a setTriggerActivation["NONE","PRESENT",false];
_targT1a setTriggerStatements["!alive targ1a", "'targM1a' setMarkerColor 'ColorGreen';", ""];

_targT1b=createTrigger["EmptyDetector",getPos player];
_targT1b setTriggerActivation["NONE","PRESENT",false];
_targT1b setTriggerStatements["!alive targ1b", "'targM1b' setMarkerColor 'ColorGreen';", ""];

_targT1c=createTrigger["EmptyDetector",getPos player];
_targT1c setTriggerActivation["NONE","PRESENT",false];
_targT1c setTriggerStatements["!alive targ1c", "'targM1c' setMarkerColor 'ColorGreen';", ""];

missilestart setPos [getPos missileStart1 select 0, getPos missileStart1 select 1, 2000];



// Task1 finished condition
waitUntil {!alive targ1a and !alive targ1b and !alive targ1c};

taskTarg1 setDamage 1;

// Update markers, again, server side only, setMarkerColor is global

"AO1" setMarkerColor "colorGreenAlpha";

MT1 = createMarker ["MarkerT1", getMarkerPos "T1"];
"MarkerT1" setMarkerShape "ICON";
"MarkerT1" setMarkerType "flag1";
"MarkerT1" setMarkerSize [0.5, 0.5];
"MarkerT1" setMarkerColor "ColorYellow";
"MarkerT1" setMarkerText " Teleport";

FlagT1 = "FlagPole_EP1" createVehicle [0,0,0];
FlagT1 setFlagTexture "pictures\yellowFlag.paa";
FlagT1 setPos (getMarkerPos "T1");

SphereT1 = "Sign_sphere25cm_EP1" createVehicle [0,0,0];
SphereT1 setPos (getMarkerPos "T1");

FlagT1 setpos [(getpos FlagT1) select 0, (getpos FlagT1) select 1, -0.1];
SphereT1 setpos [(getPos SphereT1) select 0, (getPos SphereT1) select 1, +0.04];

FlagT1 setVehicleInit "this allowDamage false; this addaction ['Teleport to Base', 'teleport\teleport_base.sqf'];";
SphereT1 setVehicleInit "this allowDamage false";

processInitCommands;

// Broadcast to clients, so they update
Task1Solved = true; publicVariable "Task1Solved";

---------- Post added at 04:11 PM ---------- Previous post was at 03:52 PM ----------

I also created triggers in the script that use murk_spawn.sqf to spawn enemy, but I'm guessing that all those triggers that get created will not appear for jip players. Same goes for the missilestart location that uses a call missile script that is available for 2 snipers of the 14 players in the mission.

I have an ammo crate hidden 2 meters under the ground far away in the corner of the map called task1Targ. I use the ammo crate and a "!alive" check as my task completed condition. I do this for each of my tasks. So if all 3 targets are destroyed for task 1, it will then "taskTarg1 setDamage 1;" to the ammo crate and the task is then completed. I do this because when I test the mission, I can simply make a radio trigger for each of my tasks that sets the damage to each crate to 1 to complete each of the tasks. Plus, all of my target objects are created throughout the mission, so I thought it would be smart to have all of the taskTarg1, taskTarg2, taskTarg3 etc ammo crates placed in the mission from mission start.

---------- Post added at 04:32 PM ---------- Previous post was at 04:11 PM ----------

I feel like a big pain in this forums ass when I come here posting all this stuff and asking for help. I'd devoted a lot of time trying to learn how to make a good mission that I can host from my pc and play with friends and allow public players to join and have everything run smoothly for jip players. If I could take a class and learn this scripting faster I would. Now I have a mission design completed and it plays great except for the jip problems that I'm killing myself to get fixed. If I had the money I would offer to pm the mission to somebody and pay them to fix my mission for me, then study everything they fixed, then use the mission as a guide when I make future missions.

I'm slowly getting the mission to the point where it is jip compatible. The task stuff is working, but the created markers and triggers are my new problem.

Share this post


Link to post
Share on other sites

Your by far best bet, is to ask the creator himself in the taskmaster thread.

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  

×