Domination - Vétérans

Les scripts et les missions des [V]Vétérans

Vous pouvez poser vos questions et poster vos scripts, le forum est ouvert à tous.
gagi
Messages : 297
Inscription : 08 juil. 2013, 13:19

Re: Domination - Vétérans

Message par gagi » 27 nov. 2013, 16:54

Salut !

Question :

je vois qu'il y a une fonction fn_isHC.sqf : pas sur quelle fonctionne !!!

Ce script vient de XENO ou de la MSO ???

merci pour l'info

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4134
Inscription : 14 oct. 2012, 22:47

Re: Domination - Vétérans

Message par Tyrghen » 27 nov. 2013, 17:05

Ben si elle est dans le répertoire tmf, c'est le MSO :)
Et je te confirme, elle ne fonctionne probablement plus depuis longtemps, mais vu que je n'ai jamais du l'utiliser....

Par contre si les tests du weekend se passent bien, il est plus que probablement que je mette le répertoire TMF à jour avec le support du HC.
Image

gagi
Messages : 297
Inscription : 08 juil. 2013, 13:19

Re: Domination - Vétérans

Message par gagi » 27 nov. 2013, 17:10

pas de soucis : j'ai bien vu que tu voulais tester HC.

J'essaye de faire avancer le schmilblick.

On dirait que ce sont les marqueurs qui ne sont pas créé sur le HC : il doit pas manquer grand chose pour faire fonctionner.

Le test ppEffectCreate n'est pour moi plus valide.

Il me semble que je fais ce test la :

https://dev-heaven.net/issues/67648

isHC = (!(isServer) && !(hasInterface))

En tout cas c'est ce que j'ai fais pour le script de vie civile : et ça spawn sur le HC.

Donc reste plus qu'à trouver où est le ptit bug ... Xeno ne l'a pas fait car il n'avait pas de HC (il attendait que BIS débloque le fait de ne pas avoir à utiliser un client avec une licence ...).

En gros remplacer :

if (!isDedicated) then {
private["_hc","_lock"];
_hc = ppEffectCreate ["filmGrain", 2005];
if (_hc == -1) then {
isHC = true;
// Random delay
for [{_x=1},{_x<=random 10000},{_x=_x+1}] do {};
if(!(player in headlessClients)) then {
headlessClients set [count headlessClients, player];
publicVariable "headlessClients";
};
} else {
ppEffectDestroy _hc;
};
};
isHC;

par if (!(isServer) && !(hasInterface)) then isHC = true;

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4134
Inscription : 14 oct. 2012, 22:47

Re: Domination - Vétérans

Message par Tyrghen » 27 nov. 2013, 17:56

Cette fonction isHC n'est pas du tout utilisée dans la Dom, Xeno a son propre code pour le client HC.
x_common\x_f\fn_checkSHC.sqf
Mais ça ne fait que vérifier si on est sur le serveur ou le HC (et qu'on peut donc spawner des unités)

Mais pour ce qui ne doit s'exécuter QUE sur le HC, il fait le test suivant:
!isNil QGVAR(HC_CLIENT_OBJ)

Pour le moment, aucun script n'utilise vraiment la fonction fn_HC du MSO.
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4134
Inscription : 14 oct. 2012, 22:47

Re: Domination - Vétérans

Message par Tyrghen » 27 nov. 2013, 20:47

J'ai fais quelques modifs et le client HC se connecte parfaitement à l'unité HC sans devoir se connecter en admin avant.
Ce qui veut dire qu'on peut automatiser le redémarrage des serveurs avec HC. Même s'il y aura probablement des questions de timing à régler ici et là.
Image

gagi
Messages : 297
Inscription : 08 juil. 2013, 13:19

Re: Domination - Vétérans

Message par gagi » 27 nov. 2013, 22:09

faut que je retest

question :

tu sais quel script créé le marqueur de la tour radio ???

On dirait que c'est ce code qui n'est pas exécuté quand un HC est connecté !!!

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4134
Inscription : 14 oct. 2012, 22:47

Re: Domination - Vétérans

Message par Tyrghen » 27 nov. 2013, 22:46

Aha, je regarde ça demain et je te dirai quoi, parce que là de mémoire je ne sais pas :)
Image

gagi
Messages : 297
Inscription : 08 juil. 2013, 13:19

Re: Domination - Vétérans

Message par gagi » 28 nov. 2013, 11:16

Bon apparemment j'ai réussi à contourner le soucis :

Tu as ajouté des tests au niveau des 2 marqueurs tower et camp.

Ça déconne en mode HC.

Sinon pour le démarrage auto de la mission : le hc lance la mission si tu es en rotation de mission.

Donc j'ai retesté la domi avec hc et civiles : entre 45 et 50 sfps avec asrai et tpwcas.

Code : Tout sélectionner

preinit.sqf :
GVAR(strongpointmarker) = "";
GVAR(towerpointmarker) = "";
if (GVAR(with_target_markers) != 1) then {
	GVAR(strongpointmarker) = "mil_dot";
	GVAR(towerpointmarker) = "mil_box";

createsecondary.sqf :
//if (GVAR(towerpointmarker) != "") then {
	[QGVAR(main_target_radiotower), _poss,"ICON","ColorBlack",[0.5,0.5],(localize "STR_DOM_MISSIONSTRING_521"),0,GVAR(towerpointmarker)] call FUNC(CreateMarkerGlobal);
//};

//if (GVAR(strongpointmarker) != "") then {
	[_maname, _poss,"ICON","ColorBlack",[0.5,0.5],"",0,GVAR(strongpointmarker)] call FUNC(CreateMarkerGlobal);
//};
en commentant ces lignes : ça fonctionne sur HC : si c'est pas commenté : pas de marqueurs sur HC.

Si je lance la mission sans HC : j'ai les marqueurs.

ya un truc qui doit mal être initialisé sur le HC mais je ne sais pas pourquoi !!!

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4134
Inscription : 14 oct. 2012, 22:47

Re: Domination - Vétérans

Message par Tyrghen » 28 nov. 2013, 11:58

Bizarre, cette variable est créée dans le preinit. Donc ça ne peut pas poser de problème. En plus elle est utilisée dans la fonction elle-même, donc si elle n'est pas remplie, tu ne verrais pas de marqueur.
Il faudrait ajouter un diag_log pour voir son contenu au moment où tu arrives là.

Maintenant par contre je me rends compte que je dois bouger l'initialisation dans paramshelper.sqf par sécurité.
Image

gagi
Messages : 297
Inscription : 08 juil. 2013, 13:19

Re: Domination - Vétérans

Message par gagi » 28 nov. 2013, 12:13

comme si le test with_target_markers était différent de 0 quand tu es avec un HC présent mais pas sans HC.

j'ai l'impression que le with_target_markers n'est prit en compte que sans le HC connecté ... trop bizarre.

Un autre truc :

pour moi ça ne fonctionne pas :

Code : Tout sélectionner

//#define __DEBUG__
// by Xeno
#define THIS_FILE "fn_checkshc.sqf"
#include "x_setup.sqf"

if (GVAR(IS_HC_CLIENT)) exitWith {true};
if (isServer) exitWith {true};
false
J'ai changé en ça :

Code : Tout sélectionner

//#define __DEBUG__
// by Xeno
#define THIS_FILE "fn_checkshc.sqf"
#include "x_setup.sqf"

if (GVAR(IS_HC_CLIENT)) exitWith {false};
if (isServer) exitWith {true};
false
Et ensuite le test

Code : Tout sélectionner

if !(call FUNC(checkSHC)) exitWith {};
se passe mieux

Répondre