Michael Marsh 0 Posted November 5, 2019 Hi, Is it possible to use remote exec to display dynamic text on a target PC initiated from the server? What would be the correct syntax? [parseText format ["<t align='CENTER' font='PuristaBold' size='4'><img size='6' color='000000' image='%1' shadow='2'/> + 2</t>",mymoneyimage ], true, nil, 2, 0.5, 0] remoteExec ["BIS_fnc_textTiles", _killer]; The above code only shows to the host on a player hosted game. On dedicated it does not show at all. the target PC variable "is _killer" is taken from entitykilled event handler. Share this post Link to post Share on other sites
pierremgi 4906 Posted November 5, 2019 Yes, it's possible (your code should work as far as _killer is defined, and myMoneyImage also... say common to all PC), but not advisable. Your mission event handler (MEH) "entityKilled" must run on every PC (init.sqf, or initPlayer.sqf if you don't need it on dedi server). So, you don't need to remote exec this kind of function. As rule of thumb, it's preferable to run something locally instead of remote execute it. (net is a bottleneck) Usually, there is already MEH "entityKilled" for whatever reason in the scenario (or think about it instead of EH "killed" or even MPEH "MPKilled") . To keep some code local, just write something like: if (local _killer) then {...}; Think about _instigator , (see MEH) It's more reliable. Don't forget myMoneyImage for everyone. Share this post Link to post Share on other sites
thesnypr 38 Posted April 7, 2021 hi guys i have same small problem to solve // on trigger init called names: trig_1 trig_2 trig_3 trig_4 // _trgactvted=[thisTrigger] execVM "scripts\SPAWN_TASKactivated.sqf"; if (!isServer) exitWith {}; _trigractivated = _this select 0; /// this part working great only on my pc // Find the nearest marker(generaly an objectif marker) to delete him & replace by a new one for everybody _nearestMarker = [allMapMarkers, _trigractivated] call BIS_fnc_nearestPosition; deletemarker _nearestMarker; // this marker part working great on all pc _m3 = createMarker [format ["mrk%1",random 100000],getpos _trigractivated]; _m3 setMarkerShape "ICON"; _m3 setMarkerType "mil_triangle"; _m3 setMarkerColor "Colorblack"; _m3 setMarkerText "CLEAR"; _typeMusic = [ "LeadTrack04_F","LeadTrack06_F","LeadTrack03_F_EPB"] call BIS_fnc_selectRandom; /// this working great but only on my pc { //set music playMusic _typeMusic; ext = format ["<t size='0.6'>" + "GREAT" + "</t>" + "<br />" + "<t size='1'>" + "ONE MORE" ]; [_text,0.01,0.01,15,-1,0,90]spawn bis_fnc_dynamicText; } forEach allPlayers; it a small work im doing for lan with my son, the problem are: * i cannot delete nearest marker on all machine. the new marker created is ok for all (to show ex task done) but old one present on map at mission start is not deleted?? * the second is the Bis_fnc_dynamicText can anybody tell me a nice way for exemple to show proper text or play a song to all players when triger is activated? i know a bit how to script but more in sp if someone can help it will be nice.. Share this post Link to post Share on other sites
pierremgi 4906 Posted April 7, 2021 // Find the nearest marker(generaly an objectif marker) to delete him & replace by a new one for everybody It seems your marker is local (even if on all PCs). How was it created? Really, you take a wrong way with a server only sqf if you intend to broadcast most of the code! Let your triggers NOT server only! This way, as you want the same result on each PC, the sqf runs on each PC. Simple as that. If something must be run on server only... you can add the condition: if (isServer) then {...} 1 1 Share this post Link to post Share on other sites
major-stiffy 280 Posted April 7, 2021 6 hours ago, pierremgi said: Let your triggers NOT server only! This way, as you want the same result on each PC, the sqf runs on each PC. Simple as that. If something must be run on server only... you can add the condition: if (isServer) then {...} I always wondered what that meant exactly in a trigger. Share this post Link to post Share on other sites
thesnypr 38 Posted April 8, 2021 thanks all for the reply, then if i hunderstand with the trigger (NOT SERVER) the SQF runs on all machine , ok then no need remote exec for showing messages to all players { playMusic _typeMusic; ext = format ["<t size='0.6'>" + "GREAT" + "</t>" + "<br />" + "<t size='1'>" + "ONE MORE" ]; [_text,0.01,0.01,15,-1,0,90]spawn bis_fnc_dynamicText; } forEach allPlayers; // no need the forEach allPlayers? correct no need the forEach allPlayers? correct? and for the markers they are placed from editor as 4 zones to reach to win the mission.. by this way i can chose in editor where to place it and normaly the script does the job... but if you have smplest way to do ex .. in the trigger init its super fun to play with Vandeanson & ravage and that make you travel across the map a bit waitUntil { sleep 3; ( (triggeractivated trig_1) && (triggeractivated trig_2)&& (triggeractivated trig_3)&& (triggeractivated trig_4) ) }; _text = format ["<t size='1.4'>" + "OBJECTIF COMPLETED" + "</t>" + "<br />" + "<t size='1'>" + "GOOD JOB SOLDIER!" ]; [_text,0.01,0.01,15,-1,0,90]spawn bis_fnc_dynamicText; sleep 10; _text = format ["<t size='0.8'>" + "hope you enjoy" + "</t>" + "<br />" + "<t size='1'>" + "see next operation.." ]; [_text,0.01,0.01,15,-1,0,90]spawn bis_fnc_dynamicText; ["end1", true, true] call BIS_fnc_endMission; still wip 😉 Share this post Link to post Share on other sites
pierremgi 4906 Posted April 8, 2021 2 hours ago, thesnypr said: { playMusic _typeMusic; ext = format ["<t size='0.6'>" + "GREAT" + "</t>" + "<br />" + "<t size='1'>" + "ONE MORE" ]; [_text,0.01,0.01,15,-1,0,90]spawn bis_fnc_dynamicText; } forEach allPlayers; // no need the forEach allPlayers? correct no need the forEach allPlayers? correct? no need: { } forEach allPlayers; 2 hours ago, thesnypr said: and for the markers they are placed from editor as 4 zones to reach to win the mission.. by this way i can chose in editor where to place it and normaly the script does the job... but if you have smplest way to do ex .. in the trigger init its super fun to play with Vandeanson & ravage and that make you travel across the map a bit So, _nearestMarker = [allMapMarkers, _trigractivated] call BIS_fnc_nearestPosition; deletemarker _nearestMarker; should work. You can also decide to change this marker (shape, type, color, text) instead of creating one/deleting one. 1 Share this post Link to post Share on other sites
thesnypr 38 Posted April 26, 2021 thanks a lot pierremgi..but still the problem is... i test this mission in lan with my son.. i declare in init.sqf for exemple " playerwaypointcount = 0; " and in my script each time any player cross the trigger it does " playerwaypointcount = playerwaypointcount+1;" in the script i ve got // playerwaypoint_COUNTING // // declare first in init.sqf _MAXplayerwaypointcount = 0; // // this script is executed by triggers exec placed in eden editor // // _null = [] execVM "scripts\playerwaypoint_COUNTING.sqf"; _delay =60; _MAXplayerwaypointcount = 3; // declaring hom many trigger must be activated playerwaypointcount = playerwaypointcount+1; // this info must be shown to all player!! but not??? hint parseText (format["founded boxes<br/><br/> %1", playerwaypointcount]); if (playerwaypointcount > _MAXplayerwaypointcount )then { // exec outro script to end mission _null = [] execVM "scripts\OUTRO_win.sqf"; }; // delay to loop the script sleep _delay; _null = [] execVM "scripts\playerwaypoint_COUNTING.sqf"; i know parse text maybe not best way to show infos to all players? but how can i do, even for my outro script in case of victory wich is the best way to hend the mission corectly for all player? Share this post Link to post Share on other sites
pierremgi 4906 Posted April 26, 2021 To be sure that your sqf is not the problem, start testing with a simple hint "ok here" and check where it fires. If it's ok everywhere, then the issue comes from sqf. If not, you have a problem with trigger(s) and/or their count. As you are in MP local hosted, your method can work if players start at the same time. for joining players (on bigger server), each time a player joins, he runs the init.sqf and resets the counter.... It's possible to avoid that but it's not your biggest issue here. 1 Share this post Link to post Share on other sites
thesnypr 38 Posted April 26, 2021 yes for now it s ok for a smal lan with no jip, but we ve got a team and we would like to try it with more friends, anyway thanks for your help i will work more on that Share this post Link to post Share on other sites