[Tuto] Patch du bug du Death screen 5.0


#1

Bonsoir, le fn_deathScreen.sqf est le menu quand on meurt avec le menu respawn le menu besoin d’aide et le timer mais depuis longtemps il y a une erreur qui n’a pas été réglé c’est le problème des médecins en ligne et si le médecin est proche ou pas, alors j’ai modifié le fichier (pas très compliqué) et je vais vous l’expliquer.

  1. Dirigez vous dans votre Altis_Life.Altis (ou Malden, ect…) .
  2. Ensuite allez dans \core\medical
  3. Ouvrez fn_deathScreen.sqf, il devrait ressembler a ça :
/*
    File: fn_deathScreen.sqf
    Author: Bryan "Tonic" Boardwine
    Description:
    Handles stuff being displayed on the death screen while
    it is currently active.
*/
private ["_medicsOnline","_medicsNear"];
disableSerialization;

_medicsOnline = ((findDisplay 7300) displayCtrl 7304);
_medicsNear = ((findDisplay 7300) displayCtrl 7305);

waitUntil {
    _nearby = if (([independent,getPosATL player,120] call life_fnc_nearUnits)) then {"Yes"} else {"No"};
    _medicsOnline ctrlSetText format [localize "STR_Medic_Online",independent countSide playableUnits];
    _medicsNear ctrlSetText format [localize "STR_Medic_Near",_nearby];
    sleep 1;
    (isNull (findDisplay 7300))
};

4.1 Modifier la valeur 120 dans la ligne de code (c’est la distance) :

nearby = if (([independent,getPosATL player,120] call life_fnc_nearUnits))

Cette valeur correspond a la distance a laquelle on cherche des medic par rapport a votre position soit 120 mètres de base.
En mettant 5000 on cherche a 5000 mètres.

  1. Remplacer votre fichier intégralement par (si vous le voulez en 5000m) :
/*
    File: fn_deathScreen.sqf
    Author: Bryan "Tonic" Boardwine
    Description:
    Handles stuff being displayed on the death screen while
    it is currently active.
*/
private ["_medicsOnline","_medicsNear"];
disableSerialization;

_medicsOnline = ((findDisplay 7300) displayCtrl 7304);
_medicsNear = ((findDisplay 7300) displayCtrl 7305);

waitUntil {
    _nearby = if (([independent,getPosATL player,5000] call life_fnc_nearUnits)) then {"Yes"} else {"No"};
    _medicsOnline ctrlSetText format [localize "STR_Medic_Online",independent countSide playableUnits];
    _medicsNear ctrlSetText format [localize "STR_Medic_Near",_nearby];
    sleep 1;
    (isNull (findDisplay 7300))
};
  1. Voila tutoriel finis vous avez plus qu’a vérifier en ayant un pompier de connecter et le tour est joué !

  2. N’hésitez pas a me dire si il y a un soucis je suis la pour vous répondre.


#2

C est quoi le bug exactement …
Là, tu rend inutile une fonction sans la “nettoyer” dans les fichiers .

Ca corrige peut etre un truc mais c est pire que mieux pour l optimisation …
Explique un peu, je coorigerai si tu veux


#3
[independent,getPosATL player,120] call life_fnc_nearUnits

===

faction = [_this,0,sideUnknown,[sideUnknown]] call BIS_fnc_param;
_position = [_this,1,(getPos player),[[]]] call BIS_fnc_param;
_radius = [_this,2,30,[0]] call BIS_fnc_param;

Apres c’est sur qu’on ne sait pas tous lire …


#4

oui est ce qui est “refait” mais sans private, sans opti, … et j aimerai aussi comprendre quel est le probleme car a mon avis y a juste un paramettre a corriger et pas la fonction complete a refaire.


#5

Ils ne savent juste pas lire … C’est sure qu’avec un radius de 120 c’est sure que sa n’affichera pratiquement jamais rien …


#6

C est ce qu il me semblais
Et 30 par defaut !!!


#7

En gros :

  1. Dirigez vous dans votre Altis_Life.Altis (ou Malden, ect…) .
  2. Ensuite allez dans \core\medical
  3. Ouvrez fn_deathScreen.sqf, il devrait ressembler a ça :
/*
    File: fn_deathScreen.sqf
    Author: Bryan "Tonic" Boardwine
    Description:
    Handles stuff being displayed on the death screen while
    it is currently active.
*/
private ["_medicsOnline","_medicsNear"];
disableSerialization;

_medicsOnline = ((findDisplay 7300) displayCtrl 7304);
_medicsNear = ((findDisplay 7300) displayCtrl 7305);

waitUntil {
    _nearby = if (([independent,getPosATL player,120] call life_fnc_nearUnits)) then {"Yes"} else {"No"};
    _medicsOnline ctrlSetText format [localize "STR_Medic_Online",independent countSide playableUnits];
    _medicsNear ctrlSetText format [localize "STR_Medic_Near",_nearby];
    sleep 1;
    (isNull (findDisplay 7300))
};

modifier la valeur 120 dans la ligne de code :

nearby = if (([independent,getPosATL player,120] call life_fnc_nearUnits))

genre :

nearby = if (([independent,getPosATL player,1200] call life_fnc_nearUnits))

Cette valeur correspond a la distance a laquelle on cherche des medique par raport a votre position soit 120 metres de base.
En mettant 1200 on cherche a 1200 metres.

Si 1200 metres vous parrait trop petit, exprime la valeur de votre choix en metres.
exemple 5 Km:

/*
    File: fn_deathScreen.sqf
    Author: Bryan "Tonic" Boardwine
    Description:
    Handles stuff being displayed on the death screen while
    it is currently active.
*/
private ["_medicsOnline","_medicsNear"];
disableSerialization;

_medicsOnline = ((findDisplay 7300) displayCtrl 7304);
_medicsNear = ((findDisplay 7300) displayCtrl 7305);

waitUntil {
    _nearby = if (([independent,getPosATL player,5000] call life_fnc_nearUnits)) then {"Yes"} else {"No"};
    _medicsOnline ctrlSetText format [localize "STR_Medic_Online",independent countSide playableUnits];
    _medicsNear ctrlSetText format [localize "STR_Medic_Near",_nearby];
    sleep 1;
    (isNull (findDisplay 7300))
};

#8

ou sinon bas les couilles totale : worldSize


#9

Y a 500 solutions !
Bonne initiative @Amen_Zenon2, mais c est vraiement pas la bonne solution que tu utilises.

Une reedition de post serai cool afin d eviter ce correctif.
Merci


#10

Bonjour, je vais effectuer la réédition du poste samedi car là je ne suis pas chez moi mais merci de l’aide je corrigerai ça dès que je pourrais, bonne journée