Jump to content

mindstorm

Member
  • Content Count

    247
  • Joined

  • Last visited

  • Medals

Posts posted by mindstorm


  1. Description

    Made a Christmas themed mission for our mil-sim community. Though it would be nice to share.

    Can be played with 5 or more people.

    Not 100% necessary but a Zeus game master makes it more fun (spawning more units/remote controlling them).

    There are no in game objectives, however the mission requires a lead to give orders. So read the mission goals (only if you will fill this role, else it will spoil the mission).

     

    Story

    Your part of the Santa Security Detail: Elf Team 1. Your team just headed out for a routine patrol when you suddenly receive a distress call from Santa.

     

     

    Mission goals

    Spoiler

    As you can hear in the intro scene, protocol SC1 (Save Christmas 1) is in place. This protocol means your team's primary objective is to get all presents from all the production facilities to the North Pole airfield and transport them away from the island.

     

    Objectives:

    1. Acquire all presents from Present production facilities over the map
      There 4 present production facilities with enemies surround them: #1, #2, #3 and the main production facility. 
    2. Load them into the cargo plane at the North Pole airfield and escape with said presents
      As soon as you get to the cargo plane you notice it's locked. Objective 3 is then added to the list
    3. Retrieve the transport plane key from Santa. Santa will be at the south of the island near his house.
      Santa is a super zombie, he can take a lot of fire. Santa can be revived by a magic elf (not required for mission success) 

     

    How our leads did objectives:

    1. Get to the docks and arm up
    2. Go to customs and acquire means of transportation
    3. Go to Present production #1, load up all presents you find
    4. Go to Present production #2, load up all presents you find
    5. Bring acquired presents to North Pole airfield and unload 
    6. Go to Main Production facility, acquire presents
    7. Go to Santa, acquire Key
    8. Skip #3 due to time
    9. Go to transport plane and get out

    Zeus tips

    Spoiler
    • Zombie amount is for approx 5-8 players. Spawn in more groups if your group is bigger. Only non-military zombies have elf vests.
    • When all zombies in mission area's die a magic ammo box wil spawn
    • I kept present production #3 as a optional objective for when you have enough time

    Zeus playtrough

     

     

    Features

    • Zombie elves (Ryan zombies and Demons)
    • Transportable presents (zeus name: 'present')
    • Big presents with ammo (zeus name: "present ammobox')
    • Magic elves with magic ace heal interaction (fully heals unit, cooldown 180 seconds)
    • Themed map

     

    Required mods

    A lot of mods are needed. Mainly because we use them with out unit and I'm using Christmas stuff found all over the place.

    I get that it's a big list. We use our own distribution client for mods so for us it's no problem. I know this might scare some people into not using this mission. Just wanted to share for those that wanted to take the time :).

     

    And either this list of mods:

     

    These mods will give some config errors, which can be ignored.

     

    Download

    Mission file

    Editable mission

     

    Credits

    I wanna thank all above mod creators for their awesome mods. Without this I could not have made this mission for our unit. 

    • Like 2

  2. 4 hours ago, haleks said:

    @mindstorm : I could use your modset.

    Also 15 people is quite a lot : how did you configure the ambient zed spawner? I never had the occasion to test the mod with so many players, so any detail or clue on the current bottleneck would help a lot.

     

    I skimmed the code real quick, correct me if I'm wrong but I believe your modules run on all clients. So spawners execute on all clients? Not 100% sure, like I said I had a quick glance at it. But if so that would mean the spawners would have triggerd 15 times instead of only 1 once on the server. If so just add some isServer checks, but again I could be wrong on this.

     

    The mods we use are custom and the list is rather large. The bigger once in there are cup, ace, acre, cba, rhs. Other then that it's some small mods containing planes/vehicles/gear and custom stuff.

     


  3. We tried playing this yesterday with about 15 people. Only using ambient, wrecks and zombie spawning. After about a minute or 2 the frames started to drop bad. After like 10 minutes frames where under 10 for everyone. 

    Anyone else had this experience with a group of 10 or more? Might have been a combination of our mods though, just checking if more had this.

     

     


  4. Hey guys,

     

    I've got 2 separate issues with a model of mine. I made a ball and I basically want it to roll down a hill with Physx. This all works, partly. This is the p3d with textures:

    https://puu.sh/sPkxb/a71ff2427e.zip

     

    config:

    	class ref_ball_big : Land_DuctTape_F
    	{
    		author = "";
    		simulation="thing";
    		scope = 2;
    		displayName = "Big ball";
    		vehicleClass = "r_ent";
    		hiddenSelections[] = {""};
    		hiddenSelectionsTextures[] = {"\ref_losttemple\ballbig\ballbig_co.paa"};
    		model = "ref_losttemple\ballbig\ballbig";
    		armor = 100;
    		destrType = "DestructMan";
    		mass = 500;
    	};

     

     

    I'm new at this, and I've been reading up a lot and making progress. 

     

    First issue:

    Only after I enabled the physx (setVelocity) the ball collides with players/objects. As soon as it comes to a stop it doesn't have any form of collision. 

    I have a Geometry with Component01 and mass. It's fully closed. What am I missing? 

    Fixed this issue. Apparently I didn't build the last pbo with the component. 

     

    Second issue:

    I'm completely new to texturing. Somethings wrong with the texture of the ball, some parts aren't colored correctly and appear to 'shine through'. This is probably because I messed up either the rvmat or the ballbig_nohq.paa. The mapping and everything is correct (done with blender), it's just that somehow the colors are a bit off.Image of the ball.

     

    What I did now is just save the ballbig_co.paa and nohq.paa, and I'm guessing that is wrong. I don't really need the ball to look fancy so I don't mind the ball having no structure at all (from my understand that's what the nohq does.

    What would be the best approach to this? I've tried looking up what the different stages mean, but I'm having a hard time finding any good documentation on it. The arma wiki is a bit vague on this.

    Rvmat (also in the zip):

    Spoiler
    
    ambient[]={1,1,1,1};
    diffuse[]={1,1,1,1};
    forcedDiffuse[]={0,0,0,0};
    emmisive[]={0,0,0,1};
    specular[]={1,1,1,1};
    specularPower=100;
    PixelShaderID="Super";
    VertexShaderID="Super";
    class Stage1
    {
    	texture="ref_losttemple\ballbig\ballbig_nohq.paa";
    	uvSource="tex";
    	class uvTransform
    	{
    		aside[]={1,0,0};
    		up[]={0,1,0};
    		dir[]={0,0,0};
    		pos[]={0,0,0};
    	};
    };
    class Stage2
    {
    	texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
    	uvSource="tex";
    	class uvTransform
    	{
    		aside[]={1,0,0};
    		up[]={0,1,0};
    		dir[]={0,0,0};
    		pos[]={0,0,0};
    	};
    };
    class Stage3
    {
    	texture="#(argb,8,8,3)color(0,0,0,0,MC)";
    	uvSource="tex";
    	class uvTransform
    	{
    		aside[]={1,0,0};
    		up[]={0,1,0};
    		dir[]={0,0,0};
    		pos[]={0,0,0};
    	};
    };
    class Stage4
    {
    	texture = "#(argb,8,8,3)color(1,1,1,1,AS)";
    	uvSource = "tex";
    	class uvTransform
    	{
    		aside[] = {1,0,0};
    		up[] = {0,1,0};
    		dir[] = {0,0,0};
    		pos[] = {0,0,0};
    	};
    };
    class Stage5
    {
    	texture="ref_losttemple\ballbig\ballbig_smdi.paa";
    	uvSource="tex";
    	class uvTransform
    	{
    		aside[]={1,0,0};
    		up[]={0,1,0};
    		dir[]={0,0,0};
    		pos[]={0,0,0};
    	};
    };
    class Stage6
    {
    	texture="#(ai,64,64,1)fresnel(1,0.7)";
    	uvSource="none";
    };
    class Stage7
    {
    	texture="a3\data_f\env_co.paa";
    	uvSource="tex";
    	class uvTransform
    	{
    		aside[]={1,0,0};
    		up[]={0,1,0};
    		dir[]={0,0,0};
    		pos[]={0,0,0};
    	};
    };

     

     

    Any help would be greatly appreciated! 


  5. There's a new eventhandler on dev branch that could help out: PlayerViewChanged

     

    No documentation yet but it's a lot better then while loops. So you just have to test the parameters.

    KEY_MAX_TIMES = 3;
    KEY_MESSAGES = [
    "%1 has tried to enter third person, stop now or you will be kicked!", 
    "%1 has tried to enter third person, last chance, stop now!",
    "%1 has tried to enter third person, for the last time, and will now be kicked!"
    ];
    
    player addEventHandler ["PlayerViewChanged", 
    	_viewName = _this select 0; //Entirly speculation did not test yet
    	if(_viewName == "EXTERNAL") then
    	{
    		_keyTimes = _player getVariable ["keyTimesVar", 0];
    		_keyTimes = _keyTimes + 1;
    
    		[[west,"HQ"], format [KEY_MESSAGES select (_keyTimes-1), name player]] remoteExec ["sideChat"];
    		
    		if(_keyTimes >= KEY_MAX_TIMES) then
    		{
    			["",false,5] spawn BIS_fnc_endMission;
    		};	
    		player setVariable ["keyTimesVar",_keyTimes];
    		player switchCamera "INTERNAL";
    	};
    ];
    
    
    • Like 1

  6. This versions crashes Arma with the map 'Angel Island'. Old stable did not have this issue.

    arma ppt:

    8:42:06 ACRE2 Library Loaded
    8:42:10 [4733,103.402,0,"XEH: PreInit finished."]
    8:42:10 [4735,103.679,0,"XEH: PostInit started. MISSIONINIT: missionName=tempMissionSP, missionVersion=52, worldName=Angel, isMultiplayer=false, isServer=true, isDedicated=false, CBA_isHeadlessClient=false, hasInterface=true, didJIP=false isLinux=false"]
    8:42:11 [4735,103.703,0,"CBA_VERSIONING: cba=3.0.0.160713, "]
    8:42:11 Unable to get file version size: C:\Program Files (x86)\Steam\steamapps\common\Arma 3\@rmp_acre2_V6\acre.dll
    8:42:14 Warning: 3600 ms spent in callExtension calling name: "acre", function: "init:"
    8:42:14 ACRE: Loading Map: \veterans\angel\angel.wrp
    8:42:14 [ACRE]: AI Detection Activated!
    -crash here
    

    acre_dll.log:

    2016-08-26 08:42:11,074-{INFO }- ACRE Loaded
    2016-08-26 08:42:11,084-{INFO }- Generating PBO List
    2016-08-26 08:42:14,655-{INFO }- PBO Index complete
    
    

  7. As far as I know the only way to do this is by means of memory positions with configs that give animations which translate over axis. 

     

    In short the model from the video has several memory positions along each edge. Then each of these memory positions has animation with a skeleton assigned to them which allow them to animate over x,y,z. Then when you want to change a point's position you use the animation of the point, and the mesh will then change as in the video.

    • Like 1

  8. Do I really need to go to all the trouble to make the player Hide Object True,  spawn a dog in, set it's texture to nothing (because you can), attach it to the Predator, Group it to the Predator, annd when the dog dies the predator goes down with it all over again? ;P  The work arounds are real...

     

    Yes you do. There's no other way unless you want to model your own player model which you can hide with setObjectTexture.


  9. I attached an eventhandler to all units to track bullets and then decloack the unit when bullet get near:

    var_bullets = [];
    {
    	if(side _x == west) then
    	{
    		_firedId = _x addEventHandler ["fired", {
    			_this spawn {
    				//_this [obj:unit, str:weapon, str:muzzle, str:mode, str:ammo, str:magazine, obj:projectile]
    				_bullet = _this select 6;
    				var_bullets pushBack _bullet;
    				while {alive _bullet} do {sleep 0.1;};
    				var_bullets = var_bullets - [_bullet];
    			};
    		}];
    	};
    } foreach allUnits;
    
    

    And then check via the Draw3D if any get close, decloack if they do. 

    addMissionEventHandler ["Draw3D", {
        if(isObjectHidden player) then
    	{
    		{
    			if(_x distance player < 2 && _x distance2D player < 0.2) then
    			{
    				palyer hideObjectGlobal false;
    			};	
    		} forEach var_bullets ;
    	};
    }];
    

    I know it's not super fancy and accurate but it's something :). 

     

    Ofcourse this does decloack the unit, so I suggest also changing his collor a bit like this for example:

    player setObjectTextureGlobal [0,'#(argb,1,1,1)color(0,0,0,0.1,ca)']; 

    This requires to remove gear to look fancy though, which again requires a custom damage handler to not mare your 'predator' die within 1 hit.


  10. Change this:

    animLoop = {_unit = _this select 0; _anim = _this select 1; while{alive _unit}do{_unit playMove _anim; waitUntil{animationState _unit != _anim}}}
    

    To:

    canDoAnimLoop = true; animLoop = {_unit = _this select 0; _anim = _this select 1; while{alive _unit && canDoAnimLoop}do{_unit playMove _anim; waitUntil{animationState _unit != _anim}}}
    

    And in a trigger, or whenever you want to make the unit to stop:

    canDoAnimLoop = false;
    
    • Like 1

  11. That's basically the same version I'm using (changed it to worldToModel

      for testing) . But for some reason the rotation is off by a bit. And with some rotations it completely messes things up (when I rotate objects >90 degree mainly). 

     

    For now It seems to happen when rotations are >90 degrees and especially with some objects. I'm just going to avoid using those I suppose.

     

    Thx for the reply!


  12. Late reply, been sick.

     

    What I want to achieve is that the objects I place in the editor are attached to a vehicle in the way I place them in the editor.

    This is the editor view for example:

    d228b8c53b.jpg

     

    And here is how it looks now, as you can see the vectordirup is slightly off. Also the position of some object is also off (which seems to be at random).

    7535da9de9.jpg

     

    The _v = _attachToObject worldToModel [0,0,0]; part is something I found in the Get Wrecked code. They use it to attach stuff to vehicles as well. They don't use vectorUp so I guess that's why it works for them?


  13. I'm trying to write a script that attaches an object to another object based on the position in the 3den editor (object to a vehicle). Basically a-team style pimp my vehicle without having to sort out all the specific attachment offsets.

     

    So far I have come up with the following script, which works but it has a two issues;

     

    1. The vectorDir and up aren't super accurate. The objects are slightly rotated and titles

    2. Sometimes, at random, some objects are way off on the z-axis, while the same object on a different spot is where it should be. The change is only on the z-axes and can be minus or plus what it should be.

     

    This is the script:

    object init: [this, vehicle] call fnc_edenAttachTo;

    if!(isServer) exitWith {};
    params ["_object","_attachToObject"];
    _object disableCollisionWith _attachToObject;
    _this spawn
    {
    	private ["_attachToObject", "_object", "_originalPos", "_offset", "_attachOffset", "_truckheight", "_objheight", "_v", "_vectorDirUp", "_vectorUp", "_dirOffset", "_timeout", "_attached", "_offsetAfterAttach", "_offsetDiff", "_offsetToOriginal"];
    	params ["_object","_attachToObject",["_offset",[]],["_attachOffset",[]]];
    	
    	waitUntil {time > 5};
    	waitUntil {_attachToObject getVariable ["canStartAttach", true]};
    	_attachToObject setVariable ["canStartAttach", false];
    	
    	//Without delays vectorDirUp only works half of the time
    	sleep 0.2;
    	_attachToObject enableSimulation false;
    	_object enableSimulation false;
    	_originalPos = position _object;
    	_object setVariable ["originalPos", _originalPos];
    	
    	if(count _offset == 0) then
    	{
    		_offset = _attachToObject worldToModel (position _object);
    	};
    	
    	if(count _attachOffset > 0) then
    	{
    		_offset = _offset vectorAdd _attachOffset;
    	};
    
    	_truckheight = (getPos _attachToObject) select 2;
    	_objheight = (getPos _object) select 2;
    
    	_v = _attachToObject worldToModel [0,0,0]; 
    	_vectorDirUp = [
    		_attachToObject worldToModel vectorDir _object vectorDiff _v,
    		_attachToObject worldToModel vectorUp _object vectorDiff _v 
    	];
    	
    	_object attachTo [_attachToObject, _offset];
    
    	//diag_log format ["%1: Setting to %2", _object,  _vectorDirUp];
    	_timeout = time + 3;
    	sleep 0.1;
    	waitUntil {
    		_attached = if (!isNull attachedTo _object) then { if ((attachedTo _object) isEqualTo _attachToObject) exitWith { true }; false } else { false };
    		(_attached || (time > _timeout))
    	};
    	_object setVectorDirAndUp [[0,0,1],[0,0,1]];
    	sleep 0.05;
    	_object setVectorDirAndUp _vectorDirUp;
    
    	//Do a check if the new offset is what we predicted, if not there's an issue with the central attachmentposition of the attachObject, calculate offset and save for future attachments
    	if(count _attachOffset == 0) then
    	{
    		_attachToObject enableSimulation true;
    		_object enableSimulation true;
    		_offsetAfterAttach = _attachToObject worldToModel (position _object);
    		_offsetDiff = _offsetAfterAttach vectorDiff _offset;
    		_offsetToOriginal = _originalPos vectorDiff (position _object);
    		//diag_log format ["Obj: %5 Offset: %1 After attach: %2. Diff: %3. Vs original: %4", _offset, _offsetAfterAttach, _offsetDiff, _offsetToOriginal, _object];
    		//_attachToObject setVariable [format ["attachOffset%1", typeOf _object],_offsetDiff vectorMultiply -1];
    		if(vectorMagnitude _offsetDiff > 0.1) then
    		{	
    			[_object, _attachToObject, _offset, _offsetDiff vectorMultiply -1] spawn fnc_edenAttachTo;
    		};
    	};
    	_attachToObject enableSimulation true;
    	_object enableSimulation true;
    	_attachToObject setDamage 0;
    	_attachToObject setVariable ["canStartAttach", true];
    };
    

    I'm hoping someone can point me in the right direction on how to fix the issues i'm having. I've been trying several things but not successful so far.


  14. All else being equal, less threads = less performance burden of your code.

     

    Also there is the fact that each thread which takes to long to execute (for example because it uses a while with sleep 1 inside) get's called eah frame, and suspended if it takes more then x amount of time.

    Therefor for example 300 threads require more engine work to be done then 1 main thread which loops everything.


  15. I'm an experienced scripted who makes missions for a large community. 

    Some of my creations:

    • Generators which toggle lights, they also require refueling and repairs
    • Geiger counter
    • Snow & engine pre-heating
    • Doors with keycodes
    • Door breaching
    • Alien units with tons of cool actions (emp, high-jump, cloack, attach, sound scares. Perfect for horror missions).

    Some of my older work

     

    Basically, you name it, I make it (provided it can be done in Arma).

     

    I am offering my experience and help to anyone who is willing to help me out with modelling. I've started to familiarize myself with the basics but there's just some things that require to much time to get into. Things I need help with:

    • Converting and porting existing models to Arma 
    • Creating textures for existing models
    • Creating models with textures (geiger counter)

    Contact me through PM if you are interested. 

     

     

    • Like 1

  16. IIRC in order for alphas render correctly on models with setobjecttexture you need a _ca alpha texture somewhere in your .p3d model to begin with.

     

    So you could just make a small cube somewhere in the model and apply #(argb,8,8,3)color(0,0,0,0,CA) to make that cube invisible and keep the opaque _CO procedurals that you have now. Or you can make the default textures applied to the the model #(argb,1,1,1)color(0.6,1,1,0,ca) and use hiddenselectionstexture in the config to apply the opaque _CO texture you currently want to appear when the object spawns, before you script them to change back to the _CA alpha textures again.

     

    At least 25 re-packs of my mod later and it is as simple as starting out with #(argb,8,8,3)color(0,0,0,0,CA) in the model.

     

    Thank you very much!


  17. Hey,

     

    I'm trying to get my droppod to become transpartent, like the helper objects. The general thing I want to achieve is to be able to use the following code to hide (and then fade-in by increasing alpha) my droppod object:

    object setTexture [0,"#(argb,1,1,1)color(0.6,1,1,0,ca)"]
    

    I made the selection and I'm able to re texture it, but the closer I set the alpha channel to 0 the more black the object becomes. So the transparency isn't working.

     

    Here's the p3d & configs:

    http://puu.sh/kBSBT/509a81faa4.zip

     

    Does anyone have an idea as to why this isn't working? I shouldn't have to use a rvmat since the helper objects don't use any as well. I've tried to change lighting & shadows under face properties but that doesn't change anything.

     

    As far as I can tell the helper objects start out with normal procedural texture colors as well, so I'm not really sure what I'm missing here.

     

     


  18. house1 setVariable ['bis_disabled_Door_1',1,true];

     

    The laste part, "True" says the variable is broadcasted over the network. So you can just place a trigger with normal conditions and onact:

    //If statement makes sure it's only executed where on the machine of the required players
    if(player == player32 || player == player3) then
    {
      house1 setVariable ['bis_disabled_Door_1',0];
    };

  19.  

    You also need a model.cfg file with the name of your hiddenselections ('pod') written in the sections[] array of the CfgModels class.

     

    At its most basic, I think this would work:

    class CfgModels
    {
    	class Default
    	{
    		sectionsInherit="";
    		sections[] = {};
    		skeletonName = "";
    	};
    
    	class droppod: Default
    	{
    		sections[] =
    		{
    			"pod"
    		};
    	};
    };
    

     

    You are my hero! Thank you so much man. So happy right now :D.

     

    One more question, any idea on how to get the material to shine through, like the spheres? It seems like the original spheres don't use an rvmat so I suppose I need to change something in the object builder, but I have no clue what that would be.


  20. So with the help of a realy nice guy called Alduric (from http://arma3coop.pl) I was able to finally get some of the models I have into Arma. 

     

    I made my self familiar with blender and also managed to port a model myself (the same as Alduric did), also giving the model some colors. 

     

    Now I would like to be able to change the object's color with setObjectTexutre.

    Thus far I have been unable to achieve this. The model has the orignal colors I've set with blender, but they wont change when I use setObjectTexture.

     

    This is my model

    I made a selection called "pod", which I thought would make me able to change the colors.

     

    This is my models config:

    class CfgPatches
    {
    	class ref_entity
    	{
    		units[] = {"ref_droppod"};
    		weapons[] = {};
    		requiredVersion = 0.1;
    		requiredAddons[] = {"A3_Characters_F"};
    	};
    };
    class CfgVehicleClasses
    {
    	class r_ent
    	{
    		displayName = "Entity";
    	};
    };
    class CfgVehicles
    {
    	class Land_DuctTape_F;
    	class Helper_Base_F;
    	class ref_droppod: Helper_Base_F
    	{
    		mapSize = 1;
    		author = "";
    		scope = 2;
    		displayName = "DropPod";
    		//simulation="thing";
    		destrType = "destructNo";
    		vehicleClass = "r_ent";
    		hiddenSelections[] = {"pod"};
    		hiddenSelectionsTextures[] = {"#(argb,1,1,1)color(0,0,0,0.1,ca)"};
    		model = "ref_entity\droppod\droppod";
    		accuracy = 1000;
    	};	
    };
    

    At first I inherrited from Land_DuctTape_F, but after inspecting the spheres from A3_Misc_F_helpers I thought Helper_Base_F would do the trick. Without luck.

     

    Could anyone point me in the right direction as to what I'm doing wrong, and why I am unable to apply different colors the the whole pod?

     

    I'm fairly new at this, kind of proud I actually managed to get objects from blender in Arma myself. Now I'm only stuck at this part and I would really appreciate the help!

     

     

     

×