=[TTK]= Team TranKilou
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.



 
PortailAccueilRechercherDernières imagesTrombinoscopeS'enregistrerConnexion
Le Deal du moment :
ETB Pokémon Fable Nébuleuse : où ...
Voir le deal

 

 Course d'étape => Compter les points

Aller en bas 
4 participants
AuteurMessage
=[TTK]= Camille Caz
TranKilou
TranKilou
=[TTK]= Camille Caz


Nombre de messages : 937
Age : 83
Localisation : La Rochelle
Humeur : libertaire
Date d'inscription : 27/11/2008

Course d'étape => Compter les points Empty
MessageSujet: Course d'étape => Compter les points   Course d'étape => Compter les points Icon_minitimeJeu 12 Nov - 13:04

C'est une vieille idée que je n'ai jamais mis à éxécution faute de pouvoir écrire le .sqf nécesssaire.
Une course à étapes. Avec des véhicules différents à chaque étape.
Chaque joueur, à l'arrivée de chaque étape, marque des points proportionnellement à sa place.

Voilà comment je vois ça :
soit
les 6 joueurs JA, JB, ..., JF
les variables publiques A, B, ..., F
la variable locale _rang
le marqueur "étape1"

Tant que _rang<6
Pour chaque joueur, si 1 joueur présent dans "étape" =>_rang = _rang+1
Si ce joueur est JA => A = A + (6 - _rang)
Hint "JA vient de franchir la ligne d'arrivée à la _rangième place"
...
Si ce joueur est JF => F = F + (6 - _rang)
Hint "JF vient de franchir la ligne d'arrivée à la _rangième place"

Ce serait le même script pour chaque étape au marqueur près. Qu'en pensez-vous ?

et à la fin, un superbe récapitulatif des points et places par nom ! cheers
Revenir en haut Aller en bas
=[TTK]= FreshMeat
Manitou
Manitou
=[TTK]= FreshMeat


Nombre de messages : 153
Date d'inscription : 20/07/2009

Course d'étape => Compter les points Empty
MessageSujet: Re: Course d'étape => Compter les points   Course d'étape => Compter les points Icon_minitimeJeu 12 Nov - 13:34

Hé ! ! ! Attention ! ! C'est quoi c'est-ce que je voulais faire après ma mission que je suis entrain de finaliser !! !

Code:


point_check1 = 6;
point_check2 = 6;

joueur1_check1 = false
joueur2_check1 = false

joueur1_check2 = false
joueur2_check2 = false

joueur1_point = 0
joueur2_point = 0

tant que joueur1_check2 = false || joueur2_check2 = false

   // controle du check1

   si joueur1_check1 = false   // le joueur n'est pas encore passé par ici
      si joueur1 ditance mcheck1 < 1 alors joueur1_check1 = true,joueur1_point = joueur1_point + point_check1,point_check1 = point_check1-1
   si joueur2_check1 = false   // le joueur n'est pas encore passé par ici
      si joueur2 ditance mcheck1 < 1 alors joueur2_check1 = true,joueur1_point = joueur2_point + point_check1,point_check1 = point_check1-1

   // controle du check2

   si joueur1_check1 = false && joueur1_check2 = false   // le joueur n'est pas encore passé par ici et il est déjà passé par là
      si joueur1 ditance mcheck2 < 1 alors joueur1_check2 = true,joueur1_point = joueur1_point + point_check2,point_check2 = point_check2-1
   si joueur2_check1 = false && joueur2_check2 = false   // le joueur n'est pas encore passé par ici et il est déjà passé par là
      si joueur2 ditance mcheck2 < 1 alors joueur2_check2 = true,joueur2_point = joueur2_point + point_check2,point_check2 = point_check2-1
fin tant que


Après je te laisse faire une jolie fonction au lieu de retaper le code pour chaque joueur et chaque check-point.


Dernière édition par =[TTK]= FreshMeat le Jeu 12 Nov - 13:59, édité 1 fois
Revenir en haut Aller en bas
=[TTK]= Camille Caz
TranKilou
TranKilou
=[TTK]= Camille Caz


Nombre de messages : 937
Age : 83
Localisation : La Rochelle
Humeur : libertaire
Date d'inscription : 27/11/2008

Course d'étape => Compter les points Empty
MessageSujet: Re: Course d'étape => Compter les points   Course d'étape => Compter les points Icon_minitimeJeu 12 Nov - 13:58

Soit.
On dirait que c'est toi qu'a l'idée et que c'est toi qui donne le script génial.
Revenir en haut Aller en bas
=[TTK]= FreshMeat
Manitou
Manitou
=[TTK]= FreshMeat


Nombre de messages : 153
Date d'inscription : 20/07/2009

Course d'étape => Compter les points Empty
MessageSujet: Re: Course d'étape => Compter les points   Course d'étape => Compter les points Icon_minitimeJeu 12 Nov - 14:00

J'éditais pendant que tu répondais.

C'est pas du sqf, mais c'est un bon début je pense.
Revenir en haut Aller en bas
=[TTK]= Camille Caz
TranKilou
TranKilou
=[TTK]= Camille Caz


Nombre de messages : 937
Age : 83
Localisation : La Rochelle
Humeur : libertaire
Date d'inscription : 27/11/2008

Course d'étape => Compter les points Empty
MessageSujet: Re: Course d'étape => Compter les points   Course d'étape => Compter les points Icon_minitimeVen 4 Déc - 12:18

D'autres amateurs éditeurs ont étudié le raisonnement proposé.
Parmi ceux-là , un génie, ou quelque chose d'approchant, a écrit LE script qui fonctionne. D'une concision éblouissante, ce script est carrément un chef-dœuvre.

Je sais que je heurte sa modestie mais je le prie néanmoins d'en faire l'exposé à la TTK qui alors va pouvoir s'imposer comme leader en conception de rallye et produire ses champions à l'échelle internationale. Course d'étape => Compter les points 0143
Revenir en haut Aller en bas
=[TTK]= FreshMeat
Manitou
Manitou
=[TTK]= FreshMeat


Nombre de messages : 153
Date d'inscription : 20/07/2009

Course d'étape => Compter les points Empty
MessageSujet: Re: Course d'étape => Compter les points   Course d'étape => Compter les points Icon_minitimeVen 4 Déc - 16:35

Il manque pas un lien ou quelque chose ?
On reste sur notre faim là...
Revenir en haut Aller en bas
=[TTK]= Camille Caz
TranKilou
TranKilou
=[TTK]= Camille Caz


Nombre de messages : 937
Age : 83
Localisation : La Rochelle
Humeur : libertaire
Date d'inscription : 27/11/2008

Course d'étape => Compter les points Empty
MessageSujet: Re: Course d'étape => Compter les points   Course d'étape => Compter les points Icon_minitimeVen 4 Déc - 17:33

Non, il ne manque pas de lien. Le génie en question n'est probablement pas encore réveillé est n'a pas lu mon appel aussi vibrant soit-il.
Il faut attendre.
Revenir en haut Aller en bas
=[TTK]= MoreBack
Manitou
Manitou
=[TTK]= MoreBack


Nombre de messages : 444
Age : 62
Localisation : à coté de chez Camille
Date d'inscription : 29/11/2008

Course d'étape => Compter les points Empty
MessageSujet: Re: Course d'étape => Compter les points   Course d'étape => Compter les points Icon_minitimeVen 4 Déc - 19:51

Sleep

Hein ?

Embarassed


Le pire c'est que ça fonctionne !


le init parce qu'il le faut bien :

Code:

/* execVM "briefing.sqf"; */

C1=0; publicVariable "C1";
C2=0; publicVariable "C2";
C3=0; publicVariable "C3";
C4=0; publicVariable "C4";
C5=0; publicVariable "C5";
C6=0; publicVariable "C6";
rangPoint=0; publicVariable "rangPoint";
nbr=6; publicVariable "nbr";


et le script :

Code:

/* Script sqf de comptage Baille MoreBack on dze TTK compagny */

_p = player;
_ran = rangPoint;
_offset=nbr;

switch (_p) Do
{
   case J1 :
      { C1 = C1 + _offset - _ran; hint format["%1 Score %2", _p, C1]; };
   case J2 :
      { C2 = C2 + _offset - _ran; hint format["%1 Score %2", _p, C2]; };
   case J3 :
      { C3 = C3 + _offset - _ran; hint format["%1 Score %2", _p, C3]; };
   case J4 :
      { C4 = C4 + _offset - _ran; hint format["%1 Score %2", _p, C4]; };
   case J5 :
      { C5 = C5 + _offset - _ran; hint format["%1 Score %2", _p, C5]; };
   case J6 :
      { C6 = C6 + _offset - _ran; hint format["%1 Score %2", _p, C6]; };
};

rangPoint = rangPoint + 1;

if FinEtape then {
   _Ligne1 = formatText["Joueur J1 score: %1" , C1];
   _Ligne2 = formatText["Joueur J2 score: %1" , C2];
   _Ligne3 = formatText["Joueur J3 score: %1" , C3];
   _Ligne4 = formatText["Joueur J4 score: %1" , C4];
   _Ligne5 = formatText["Joueur J5 score: %1" , C5];
   _Ligne6 = formatText["Joueur J6 score: %1" , C6];
   "Scores" hintC [_Ligne1,_Ligne2,_Ligne3,_Ligne4,_Ligne5,_Ligne6]
};



simple non ?

c'est le même script utilisé par tous les joueurs et tous les déclencheurs.

j'ai testé avec Camille et ça marche.

Il ne me reste plus qu'a tester la dernière étape.
(savoir que tout les joueurs ont franchi la dernière étape.)
Revenir en haut Aller en bas
=[TTK]= Camille Caz
TranKilou
TranKilou
=[TTK]= Camille Caz


Nombre de messages : 937
Age : 83
Localisation : La Rochelle
Humeur : libertaire
Date d'inscription : 27/11/2008

Course d'étape => Compter les points Empty
MessageSujet: Re: Course d'étape => Compter les points   Course d'étape => Compter les points Icon_minitimeLun 7 Déc - 13:55

Il faut que rangPoint = 0 avant chaque étape pour indiquer la place des joueurs dans l'étape.

Je l'ai fait en plaçant un marqueur avant l'étape suivante dans lequel passent les coureurs qui met rangPoint à 0.

Et ce qui serait suprèmement élégant, c'est d'indiquer la place des joueurs en fin de course, autrement dit que le tableau des résultats soit donné dans l'ordre des scores.
Revenir en haut Aller en bas
=[TTK]= Memphis007
Grand Manitou
Grand Manitou
=[TTK]= Memphis007


Nombre de messages : 738
Age : 43
Localisation : /dev/null
Humeur : Frak !
Date d'inscription : 13/04/2009

Course d'étape => Compter les points Empty
MessageSujet: Re: Course d'étape => Compter les points   Course d'étape => Compter les points Icon_minitimeLun 7 Déc - 15:16

je comprend pas trop comment ça marche (la flemme) une âme charitable pour détailler le fonctionnement ?
Revenir en haut Aller en bas
=[TTK]= Camille Caz
TranKilou
TranKilou
=[TTK]= Camille Caz


Nombre de messages : 937
Age : 83
Localisation : La Rochelle
Humeur : libertaire
Date d'inscription : 27/11/2008

Course d'étape => Compter les points Empty
MessageSujet: Re: Course d'étape => Compter les points   Course d'étape => Compter les points Icon_minitimeLun 7 Déc - 16:06

J'essaie de répondre :

Quand un des joueurs (J1 à J6) passe sur le marqueur d'étape, il déclenche le script grâce à l'instruction
nul=[] execVM "scores.sqf";

switch (_p) Do
{
case J1 :
{ C1 = C1 + _offset - _ran; hint format["%1 Score %2", _p, C1]; };
case J2 :
{ C2 = C2 + _offset - _ran; hint format["%1 Score %2", _p, C2]; };


Ces lignes peuvent se lire somme suit

Selon quel est le joueur _p qui entre dans le marqueur,

Si c'est le joueur J1 => à son compte C1 s'ajoute le nbre de joueurs (_offset) moins son rang (_ran)
Si c'est le joueur J2 => à son compte C2 s'ajoute le nbre de joueurs (_offset) moins son rang

A la fin, rangPoint est incrémenté de 1 . Le suivant aura un point de moins.
rangPoint = rangPoint + 1;


Autant d'étapes que de marqueurs.
C1, C2,... augmentent au fur et à mesure des étapes Mais il faut remettre rangPoint à zéro avant l'étape suivante.
Revenir en haut Aller en bas
=[TTK]= Memphis007
Grand Manitou
Grand Manitou
=[TTK]= Memphis007


Nombre de messages : 738
Age : 43
Localisation : /dev/null
Humeur : Frak !
Date d'inscription : 13/04/2009

Course d'étape => Compter les points Empty
MessageSujet: Re: Course d'étape => Compter les points   Course d'étape => Compter les points Icon_minitimeLun 7 Déc - 16:17

donc si j'ai bien compris à la fin de la première étape C1=6 pour J1 et C2=5 pour J2 donc le rang de classement est donné à l'envers ?

j'espère que ton déclencheur qui exécute le script fonctionnera mieux que le mien qui compte les tours sinon on à pas fini...
Revenir en haut Aller en bas
=[TTK]= Camille Caz
TranKilou
TranKilou
=[TTK]= Camille Caz


Nombre de messages : 937
Age : 83
Localisation : La Rochelle
Humeur : libertaire
Date d'inscription : 27/11/2008

Course d'étape => Compter les points Empty
MessageSujet: Re: Course d'étape => Compter les points   Course d'étape => Compter les points Icon_minitimeLun 7 Déc - 16:24

Mais non.

Si le premier est J1, _rang = 0 et C1=6-0 =6
Et le suivant J4 , _rang = 1 et C4=6-1 =5
le 3e J3 , _rang = 2 et C3=6-2 =4

C'est à l'envers ça ?
Revenir en haut Aller en bas
=[TTK]= Memphis007
Grand Manitou
Grand Manitou
=[TTK]= Memphis007


Nombre de messages : 738
Age : 43
Localisation : /dev/null
Humeur : Frak !
Date d'inscription : 13/04/2009

Course d'étape => Compter les points Empty
MessageSujet: Re: Course d'étape => Compter les points   Course d'étape => Compter les points Icon_minitimeLun 7 Déc - 19:34

ok la variable _rang ça te donne le rang de classement j'ai tout bien pigé
Revenir en haut Aller en bas
=[TTK]= MoreBack
Manitou
Manitou
=[TTK]= MoreBack


Nombre de messages : 444
Age : 62
Localisation : à coté de chez Camille
Date d'inscription : 29/11/2008

Course d'étape => Compter les points Empty
MessageSujet: Re: Course d'étape => Compter les points   Course d'étape => Compter les points Icon_minitimeLun 7 Déc - 21:13

bon j'ai père fait qu'scionné le bazar !

l'init :

Code:

/* execVM "briefing.sqf"; */

// Compteurs des joueurs.
C1=0; publicVariable "C1";
C2=0; publicVariable "C2";
C3=0; publicVariable "C3";
C4=0; publicVariable "C4";
C5=0; publicVariable "C5";
C6=0; publicVariable "C6";
// drapeaux des joueurs pour la dernière étape.
le1=false; publicVariable "le1";
le2=false; publicVariable "le2";
le3=false; publicVariable "le3";
le4=false; publicVariable "le4";
le5=false; publicVariable "le5";
le6=false; publicVariable "le6";
// compteur du rang et coef nombre de joueurs x étape.
rangPoint=0; publicVariable "rangPoint";
nbr=12; publicVariable "nbr";

Le script de comptage :

Code:
/* Script sqf de comptage Baille MoreBack on dze TTK compagny */

_p = player;
_ran = rangPoint;
_offset=nbr;

switch (_p) Do
{
   case J1 :
      { C1 = C1 + _offset - _ran; hint format["%1 Score %2 lastE %3", _p, C1, le1]; };
   case J2 :
      { C2 = C2 + _offset - _ran; hint format["%1 Score %2 lastE %3", _p, C2, le2]; };
   case J3 :
      { C3 = C3 + _offset - _ran; hint format["%1 Score %2 lastE %3", _p, C3, le3]; };
   case J4 :
      { C4 = C4 + _offset - _ran; hint format["%1 Score %2 lastE %3", _p, C4, le4]; };
   case J5 :
      { C5 = C5 + _offset - _ran; hint format["%1 Score %2 lastE %3", _p, C5, le5]; };
   case J6 :
      { C6 = C6 + _offset - _ran; hint format["%1 Score %2 lastE %3", _p, C6, le6]; };
};

rangPoint = rangPoint + 1;
sleep 0.5;

extrêmement simple !

puis le script pour la dernière étape (pour savoir si tout le monde est passé)
ça fonctionne mais j'ai été obligé de scinder une condition !
le or ne fonctionne pas avec isNil {} (peut être les crochets ?)

Code:

/* Script sqf de comptage Baille MoreBack on dze TTK compagny */

_p = player;
// on active les drapeaux personnels des joueurs pour la dernère étape.
switch (_p) Do
{
   case J1 :
      { le1 = true; };
   case J2 :
      { le2 = true; };
   case J3 :
      { le3 = true; };
   case J4 :
      { le4 = true; };
   case J5 :
      { le5 = true; };
   case J6 :
      { le6 = true; };
};
// Comme c'est la dernère étape on compte les derniers points.
execVM "scores.sqf";
sleep 2;
// si un joueur meurt ou n'existe pas on active son lastetape
if (!alive J1) then { le1 = true; };
if (!alive J2) then { le2 = true; };
if (!alive J3) then { le3 = true; };
if (!alive J4) then { le4 = true; };
if (!alive J5) then { le5 = true; };
if (!alive J6) then { le6 = true; };
if (isNil {J1}) then { le1 = true; };
if (isNil {J2}) then { le2 = true; };
if (isNil {J3}) then { le3 = true; };
if (isNil {J4}) then { le4 = true; };
if (isNil {J5}) then { le5 = true; };
if (isNil {J6}) then { le6 = true; };
hint format["%1 %2 %3 %4 %5 %6", isNil {J1}, isNil {J2}, isNil {J3}, isNil {J4}, isNil {J5}, isNil {J6}];
sleep 2;
hint format["%1 %2 %3 %4 %5 %6", le1, le2, le3, le4, le5, le6];
sleep 2;
// On verifie que tous joueurs vivants ont franchis la dernière étape.
if (le1 && le2 && le3 && le4 && le5 && le6) then {
   _Ligne1 = formatText["Joueur J1 score: %1" , C1];
   _Ligne2 = formatText["Joueur J2 score: %1" , C2];
   _Ligne3 = formatText["Joueur J3 score: %1" , C3];
   _Ligne4 = formatText["Joueur J4 score: %1" , C4];
   _Ligne5 = formatText["Joueur J5 score: %1" , C5];
   _Ligne6 = formatText["Joueur J6 score: %1" , C6];
   "Scores" hintC [_Ligne1,_Ligne2,_Ligne3,_Ligne4,_Ligne5,_Ligne6];
};

les slips c'est pour le debug hein. faut pas déconner.
et cerise sur la porte ouverte n'amasse pas mousse !
le tableau des scores à la fin.

d'ailleurs le score final faudra que je le mette dans le débriefing sinon y'a que le dernier joueur qui le verra Very Happy !


seti pablo ?
Revenir en haut Aller en bas
=[TTK]= Camille Caz
TranKilou
TranKilou
=[TTK]= Camille Caz


Nombre de messages : 937
Age : 83
Localisation : La Rochelle
Humeur : libertaire
Date d'inscription : 27/11/2008

Course d'étape => Compter les points Empty
MessageSujet: Re: Course d'étape => Compter les points   Course d'étape => Compter les points Icon_minitimeMar 8 Déc - 13:58

C'était trop d'enthousiasme.
Tout compte fait, ça marche pas. Course d'étape => Compter les points H_12SH%7E1
Revenir en haut Aller en bas
=[TTK]= MoreBack
Manitou
Manitou
=[TTK]= MoreBack


Nombre de messages : 444
Age : 62
Localisation : à coté de chez Camille
Date d'inscription : 29/11/2008

Course d'étape => Compter les points Empty
MessageSujet: Re: Course d'étape => Compter les points   Course d'étape => Compter les points Icon_minitimeMar 8 Déc - 20:37

En fait je pensais que le script était déclenché uniquement par le joueur qui active le déclencheur.
et ce n'est visiblement pas le cas.
il est exécuté chez tous les joueurs.
et si je veut que du coté serveur,
quand j'entoure le script d'un if (isServer) then { .... }
rien ne se passe !
même un hint ne fonctionne pas.
Freshmeat si tu peut m'expliquer les nuances du bazar Very Happy
Revenir en haut Aller en bas
Contenu sponsorisé





Course d'étape => Compter les points Empty
MessageSujet: Re: Course d'étape => Compter les points   Course d'étape => Compter les points Icon_minitime

Revenir en haut Aller en bas
 
Course d'étape => Compter les points
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
=[TTK]= Team TranKilou  :: Le Quartier Précis :: Edition :: Edition ArmA 2-
Sauter vers: