Jump to content
Sign in to follow this  
padarom

Time skip screen

Recommended Posts

Hey there,

the mission "DEFEND 10 Defend Kamino" has a time skip screen after each attack wave. The helicopter showcase has a similar one (you can see it in this picture).

My question is: How to create a screen like this one for a co-op mission in the scenario editor?

Thanks in advance

Padarom

Share this post


Link to post
Share on other sites

Okay I have no clue whether the first sentence is sarcasm, or not.

But nevertheless, thanks for the link :D

Share this post


Link to post
Share on other sites

Not sarcasm. :) People kept asking "how to do the fast time thing" in that mission. Player missions from ArmA2 had really neat "time passing" effects where the world would go greyscale and clouds sped up and the clock ticked by, but there was nothing like that in that mission when I went looking for such effects so I had no idea what people were talking about. heh

Share this post


Link to post
Share on other sites

Hehe okay. The effect you're talking about really sounds neat. Would be nice to see something like this ported to ArmA 3.

edit:

Hopefully you're still reading this. Your code from the other thread works for writing text on the screen. However it would be good to also have that black background- Which it does not have right now. It would be great if you could provide me some additional code for that. Thanks!

Edited by Padarom

Share this post


Link to post
Share on other sites

Change the function to this:

Bis_printSampleText =
{
titleCut ["", "BLACK FADED", 999];

   _msg = [
       ["CAMP ROGAIN, RESSUPLY POINT","<t align = 'center' shadow = '1' size = '0.7'>%1</t><br/>"],
       ["10 MINUTES LATER ...","<t align = 'center' shadow = '1' size = '1.0'>%1</t><br/>"]

   ] spawn Bis_printText;

   waitUntil{scriptDone _msg};

"dynamicBlur" ppEffectEnable true;   
"dynamicBlur" ppEffectAdjust [6];   
"dynamicBlur" ppEffectCommit 0;     
"dynamicBlur" ppEffectAdjust [0.0];  
"dynamicBlur" ppEffectCommit 5;  

titleCut ["", "BLACK IN", 5];
}; 

Then call it with spawn instead of call:

0 = [] spawn BIS_printSampleText;  

Share this post


Link to post
Share on other sites

Thank you very much, that worked perfect for me :)

Share this post


Link to post
Share on other sites

Hey guys, sorry to "reopen" this thread but i've got a question.

Can we build a sleep into this code, so that when the message fully appeared it should stay there a while, let's say for 5 seconds and then disappear?

Maybe:

Bis_printSampleText =
{
   titleCut ["", "BLACK FADED", 999];

   _msg = [
       ["CAMP ROGAIN, RESSUPLY POINT","<t align = 'center' shadow = '1' size = '0.7'>%1</t><br/>"],
       ["10 MINUTES LATER ...","<t align = 'center' shadow = '1' size = '1.0'>%1</t><br/>"]

   ] spawn Bis_printText;

   //sleep here?

   waitUntil{scriptDone _msg};

   // or here?

   "dynamicBlur" ppEffectEnable true;   
   "dynamicBlur" ppEffectAdjust [6];   
   "dynamicBlur" ppEffectCommit 0;     
   "dynamicBlur" ppEffectAdjust [0.0];  
   "dynamicBlur" ppEffectCommit 5;  

   titleCut ["", "BLACK IN", 5];
};

Cheers,

Valixx

Share this post


Link to post
Share on other sites

In the //or here part. Well, actually the length it stays is probably part of main script.

Edited by kylania

Share this post


Link to post
Share on other sites

Hello,

thank you for the posts, but i think something went wrong for me.

I´ve copied all into my init.sqf but i get a failure notice and my screen keeps black.

Error Undefined Variable in expression: _msg

Can anyone tell me where the problem is?

Greetings

Share this post


Link to post
Share on other sites

Bis_printText =
{
   private["_blocks","_block","_blockCount","_blockNr","_blockArray","_blockText","_blockTextF","_blockTextF_","_blockFormat","_formats","_inputData","_processedTextF","_char","_cursorBlinks","_cursorInvis"];

   _blockCount = count _this;

   _invisCursor = "<t color ='#00000000' shadow = '0'>_</t>";

   //process the input data
   _blocks = [];
   _formats = [];

   {
       _inputData = _x;

       _block     = [_inputData, 0, "", [""]] call BIS_fnc_param;
       _format = [_inputData, 1, "<t align = 'center' shadow = '1' size = '0.7'>%1</t><br/>", [""]] call BIS_fnc_param;

       //convert strings into array of chars
       _blockArray = toArray _block;
       {_blockArray set [_forEachIndex, toString [_x]]} forEach _blockArray;

       _blocks  = _blocks + [_blockArray];
       _formats = _formats + [_format];
   }
   forEach _this;

   //do the printing
   _processedTextF  = "";

   {
       _blockArray  = _x;
       _blockNr      = _forEachIndex;
       _blockFormat = _formats select _blockNr;
       _blockText   = "";
       _blockTextF  = "";
       _blockTextF_ = "";

       {
           _char = _x;

           _blockText = _blockText + _char;

           _blockTextF  = format[_blockFormat, _blockText + _invisCursor];
           _blockTextF_ = format[_blockFormat, _blockText + "_"];

           //print the output
           [(_processedTextF + _blockTextF_), 0, 0.15, 5, 0, 0, 90] spawn BIS_fnc_dynamicText;
           playSound "click";
           sleep 0.08;
           [(_processedTextF + _blockTextF), 0, 0.15, 5, 0, 0, 90] spawn BIS_fnc_dynamicText;
           sleep 0.02;
       }
       forEach _blockArray;

       if (_blockNr + 1 < _blockCount) then
       {
           _cursorBlinks = 5;
       }
       else
       {
           _cursorBlinks = 15;
       };

       for "_i" from 1 to _cursorBlinks do
       {
           [_processedTextF + _blockTextF_, 0, 0.15, 5, 0, 0, 90] spawn BIS_fnc_dynamicText;
           sleep 0.08;
           [_processedTextF + _blockTextF, 0, 0.15, 5, 0, 0, 90] spawn BIS_fnc_dynamicText;
           sleep 0.02;
       };

       //store finished block
       _processedTextF  = _processedTextF + _blockTextF;
   }
   forEach _blocks;

   //clean the screen
   ["", 0, 0.15, 5, 0, 0, 90] spawn BIS_fnc_dynamicText;
};

Bis_printSampleText =
{
   titleCut ["", "BLACK FADED", 999];

   _msg = [
       ["CAMP ROGAIN, RESSUPLY POINT","<t align = 'center' shadow = '1' size = '0.7'>%1</t><br/>"],
       ["10 MINUTES LATER ...","<t align = 'center' shadow = '1' size = '1.0'>%1</t><br/>"]

   ] spawn Bis_printText;

   waitUntil{scriptDone _msg};

   "dynamicBlur" ppEffectEnable true;   
   "dynamicBlur" ppEffectAdjust [6];   
   "dynamicBlur" ppEffectCommit 0;     
   "dynamicBlur" ppEffectAdjust [0.0];  
   "dynamicBlur" ppEffectCommit 5;  

   titleCut ["", "BLACK IN", 5];
};

0 = [] spawn BIS_printSampleText;

Test this one. Maybe you forgot something to copy/paste or ....

  • Like 1

Share this post


Link to post
Share on other sites

@Valixx: Man you are my hero!! Works perfect now!

I´ll try to find my fault, i need to understand this :)

Meanwhile i use the code out of your post :)

€dit: one problem left, i want to run this script with a trigger not on start... the trigger fires -> Script run

but when i put this

0 = [] call BIS_printSampleText;  

into the "onact" field i get failures, the Text works but the blackscreen shows up only a bit of a second.

ArmA III say there´s a problem in line 97, it says:

waitUntil{scriptDone _msg};

€dit2: problem solved, the OnAct command need to be:

0 = [] spawn BIS_printSampleText;

Greetings

and thanks a lot!

Edited by Bastirip

Share this post


Link to post
Share on other sites

To clarify (because I remember how frustrated I used to be when I couldn't get cool things like this to work), to fix the problem where the text screen occurs as soon as the mission starts, just go the the init.sqf where you pasted the above scripts, and delete the line that says

0 = [] spawn BIS_printSampleText;

this is what tells the whole script to execute. If you want the screen to be activated by a trigger, just take the

0 = [] spawn BIS_printSampleText;

line and paste that into the onAct field.

ave,

the_Demongod

Share this post


Link to post
Share on other sites

the mission "DEFEND 10 Defend Kamino" has a time skip screen after each attack wave.

Just for anyone who might find this thread in a search for time skips and such, what Padarom was referring to here was bis_fnc_showTime. It displays an animated counter to show the change between two times (or dates), much like in the A2 Harvest Red campaign. It can be used like this:

[] spawn {

_date = date;
_date set [3,18]; [color="#FF8C00"]//--- new hour (18)[/color]
_date set [4,35]; [color="#FF8C00"]//--- new minute (35)[/color]

cuttext ["","black out"];
1 fadesound 0;
sleep 1;

_showtime = [
	date,  [color="#FF8C00"]//--- Start time[/color]
	_date,  [color="#FF8C00"] //--- End time[/color]
	95     [color="#FF8C00"]//--- Counter speed[/color]
] call bis_fnc_showTime;

setdate _date;
2 fadesound 1;
sleep 2;

_showtime cuttext ["","black in"];
cuttext ["","black in"];

};

  • Like 1

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  

×