Bienvenue !

TTK, la team type des teams top

en quelque sorte


L'Antizone

Là où ça bricole

L'Antizone

Messagede =[TTK]= Camille Caz » Sam 11 Déc 2010, 18:16

L'Antizone est un précieux médicament pouvant détruire les champignons qui poussent dans les poumons quand on respire l'air de LA zone contaminée.
Tant qu'on est dedans, notre santé diminue et notre "damage" partant de 0 tend vers 1, la mort. Si on trouve une ampoule d'Antizone, hop la santé remonte.
Et là, il me faudrait la bonne volonté des scripteurs de la team. Y'en a des bons.
Il faudrait écrire un script, en sqf si possible, qui commande ceci.

toutes les 10 secondes
Si, [pour chaque player du group]  un player est présent dans la zone, alors
damage de -x = damage de _x +0.01
Ceci jusqu'à ce que tous les _x soient sortis de la zone foreach units group player.


zone étant le nom du déclencheur au périmètre mortel, j'ai essayé ça mais ça marche pas ce serait du sqs
_zone=zone
#boucle1
~10
if -x in _zone then {
_maladie = getdammage _x;
_maladie = _maladie+0.01;
_x setdamage _maladie;} foreach units group player
goto boucle1

Par ailleurs, s'il trouve une ampoule d'Antizone, le joueur verra son damage =0 mais ça c'est l'avenir radieux.
Merci de m'aider les trankilous.
C'est wiki le dit qui l'est.

Image
Avatar de l’utilisateur
=[TTK]= Camille Caz
Grand Gourou
Grand Gourou
 
Age: 71
Messages: 1585
Localisation: La Rochelle, centre du milieu
Humeur: paléolithique mais presque
Inscription: 25 Jan 2010

Cash: 296.30 Chaislongs

Publicité

Re: L'Antizone

Messagede =[TTK]= MoreBack » Dim 12 Déc 2010, 13:56

_maladie est une variable local non ? avec le _ devant.
enfin je crois.
ah ben non j'ai dit une connerie puisqu'il sert pour le setdamage uniquement.

autant pour moi.
Le jour où on ne travaillera plus le lendemain des jours de repos, la fatigue sera vaincue.
État : Ivre mort pour la patrie.
Image
Avatar de l’utilisateur
=[TTK]= MoreBack
Grand Adminou
Grand Adminou
 
Age: 50
Messages: 607
Inscription: 25 Jan 2010

Cash: 82.10 Chaislongs

Re: L'Antizone

Messagede =[TTK]= Camille Caz » Dim 12 Déc 2010, 14:28

=[TTK]= MoreBack a écrit:_maladie est une variable local non ? avec le _ devant.

OUi. Elle sert à saisir la valeur "damage" de l'objet considéré (_x), de l'incrémenter et de transmettre cette nouvelle valeur "damage" à l'objet.
C'est wiki le dit qui l'est.

Image
Avatar de l’utilisateur
=[TTK]= Camille Caz
Grand Gourou
Grand Gourou
 
Age: 71
Messages: 1585
Localisation: La Rochelle, centre du milieu
Humeur: paléolithique mais presque
Inscription: 25 Jan 2010

Cash: 296.30 Chaislongs

Re: L'Antizone

Messagede =[TTK]= Frog » Dim 12 Déc 2010, 15:00

'tain, vous avez donc tous fait l'université pour pouvoir scripter ou quoi ?
Image

Qué fadag, ce gary !!

citation: Yoda 2010 all right reserved.
Avatar de l’utilisateur
=[TTK]= Frog
TranKilou
TranKilou
 
Age: 38
Messages: 817
Localisation: Pas loin d'un asile
Humeur: Bonne, Sans gastro
Inscription: 27 Fév 2010

Cash: 176.80 Chaislongs

Re: L'Antizone

Messagede =[TTK]= Freshmeat » Dim 12 Déc 2010, 15:13

Code: Tout sélectionner
while {true} do {
sleep 10;
_zone = +(list zone);
{
if (alive _x) then {
_maladie = getdamage _ x;
_maladie = _maladie + 0.01;
_x setdamage _maladie;
} foreach _zone;
};


A essayer, parce que je ne vais pas tout faire non plus.
Dernière édition par =[TTK]= Freshmeat le Lun 13 Déc 2010, 09:56, édité 1 fois.
Les gens n'accordent guère d'importance à la vie, la preuve : quand ils la perdent, ils ne la réclament jamais.
[Jean Deluca]

Image
Avatar de l’utilisateur
=[TTK]= Freshmeat
Grand Manitou
Grand Manitou
 
Messages: 497
Inscription: 01 Mar 2010

Cash: 92.00 Chaislongs

Re: L'Antizone

Messagede adam prime » Dim 12 Déc 2010, 15:57

Je vois que mes concept agitent vos neurones, ça fait plaisir!

Par contre je suis étudiant en fac littéraire du coup le script ce sera trop difficile pour moi. Au vue du haut niveau de technique dévoilé ici je ne me fait pas de souci!!  :ugeek:
Avatar de l’utilisateur
adam prime
Tout fou
Tout fou
 
Messages: 38
Inscription: 05 Déc 2010

Cash: Fermé

Re: L'Antizone

Messagede =[TTK]= Yourry » Dim 12 Déc 2010, 21:33

Je regarde mais cela me semble une bonne base ce que Freash nous à fait.
Je vais essayé de le compléter pour inclure la zone dedans (avec "nearestObject") et voir pour stopper la maladie qaund on a pris le médoc.

Pour moi le seul hic va être les problèmes de localité entre le serveur et le joueur. Je pense mettre dans mon script un:

Code: Tout sélectionner
if (!isserveur) then {le script)


Et le script serrait lancé dans chaque init de joueur...


Y a bon, à partir du script de Freash:

Mettre dans l'init de chaque joueur:

Code: Tout sélectionner
nul=["this"] execVM "lapeste.sqf"


Et un H invisible (qui sert de point d'origine de la zone de contamination) nommé "contamination" sur la carte

Code: Tout sélectionner

//Fait par la team TTK
//script "lapeste.sqf"


_x = _this select 0;
conta = 0;


if (!isserver) then {

   while {conta == 0} do {

      if (alive _x && contamination distance _x<100) then {
      hint"ok";
      _maladie = getdammage _x;
      _maladie = _maladie + 0.01;
      _x setdamage _maladie;
      
      hint format ["votre contamination est de %1 sur 1", _maladie];

   sleep 5;

   };
   };
   
};   
   



J'ai testé en solo cela fonctionne.
Pour ce qui est des réglages j'ai mis :

  • des dégâts à 0.01 toutes les 5 secs
  • une zone de contamination de 100m
  • la possibilité de stopper la maladie en passant la variable "conta" à 1

Bien-sûr tous est paramétrable à votre guise !
Dernière édition par =[TTK]= Yourry le Mer 15 Déc 2010, 20:47, édité 1 fois.
"Les Boches faisaient "Kamarad". Il aurait fallu commencer par ça des deux côtés, pour éviter les massacres organisés par ceux d'en haut, mais le fusil qu'ils nous avaient collé entre les mains, forcément, il a bien fallu qu'il serve et tout le reste à suivit." dixit Tardi et Verney


Image


L'autre jour, en tirant le rouleau de papier cul, toute la cloison est venue avec. dixit Camille Caz
Avatar de l’utilisateur
=[TTK]= Yourry
Grand Scriptou
Grand Scriptou
 
Age: 24
Messages: 731
Localisation: Parmis les Quenelles.
Inscription: 17 Mar 2010

Cash: 160.00 Chaislongs

Re: L'Antizone

Messagede =[TTK]= Camille Caz » Dim 12 Déc 2010, 23:38

Avec une mission-test en plus, je l'aurais même pas rêvé. Bravo Youri et merci.
C'est wiki le dit qui l'est.

Image
Avatar de l’utilisateur
=[TTK]= Camille Caz
Grand Gourou
Grand Gourou
 
Age: 71
Messages: 1585
Localisation: La Rochelle, centre du milieu
Humeur: paléolithique mais presque
Inscription: 25 Jan 2010

Cash: 296.30 Chaislongs

Re: L'Antizone

Messagede =[TTK]= Freshmeat » Lun 13 Déc 2010, 10:26

Je dirais bien  : bien oui mais non il faudrait vérifier : Est-ce que l'init est lancé sur tous les clients ?

Si oui, et il me semble que c'est le cas, ton script sera lancé une fois par unité et par joueur connecté.
Donc plus il y aura de joueurs connectés, plus il y aura de dégénération.
Cela peut-être résolu en testant la localité de l'unité.

Le second souci que je vois à la lecture du script est le fait que tu utilises une variable globale "conta".
Cela signifie que dès que le joueur trouve de quoi se soigner définitivement, s'il respawn dans une autre unité, cette unité sera aussi immunisée.
Pour pallier à cela, je préconiserais l'utilisation d'un setvariable.

Dans l'init.sqf :
Code: Tout sélectionner
if (isserver) then {_contamination = execVM["FievreJaune.sqf"];};


Dans FievreJaune.sqf :
Code: Tout sélectionner
//Fait par la team TTK
//script "FievreJaune.sqf"

// Mettre à jour les deux variables suivantes selon la mission
// _zones : tableau contenant la liste des déclencheurs correspondants aux zones de contamination
// _lnnbzones : nombre de zones de contamination déclarées dans le tableau _zones
_zones = [dzone1,dzone2];
_lnnbzones = 2;

while {true} do {
   {
      sleep 10;

      if (isnil (_x getvariable "immunise")) then {_x setvariable ["immunise",0,true];};
      if (isnil (_x getvariable "contamine")) then {_x setvariable ["contamine",0,true];};

      _lnzone = 0;
      while {alive _x && _x getvariable "contamine" != 1 && _lnzone <= _lnnbzones - 1} do {
         if (_x in list (_zones select _lnzone) ) then {
            _x setvariable ["contamine",1,true];
         } else {
            _lnzone = _lnzone + 1;
         };
      };

      if (alive _x && _x getvariable "contamine" != 0) then {
         _maladie = getdammage _x;
         _maladie = _maladie + 0.01;
         _x setdamage _maladie;
     };
   };
} foreach units groupe_des_joueurs;


Ecrit comme cela, il devient aussi possible de gérer :
- plusieurs zones de contamination de formes diverses grâce au tableau _zones
- une immunité temporaire en faisant varier la variable "immunise" : quand le joueur 'active' l'immunité, cela lance le script "immunisation.sqf"
Code: Tout sélectionner
_uniteimmunisee = _this select LaBonneValeur;
_uniteimmunisee setvariable ["immunise",1,true];
_louniteimmunisee = uniteimmunisee ;
while {alive _uniteimmunisee && _uniteimmunisee getvariable "immunise" >0 && _uniteimmunisee == _louniteimmunisee} do {
   sleep 10;
   if (_louniteimmunisee == _uniteimmunisee && alive uniteimmunisee) then {
       _immunise = (_uniteimmunisee getvariable "immunise") - 0.1;
      _uniteimmunisee setvariable ["immunise",_immunise,true];
   };
};


Comme d'hab c'est pas testé.... donc ne soyez pas surpris si cela nécessite quelques arrangements.
Les gens n'accordent guère d'importance à la vie, la preuve : quand ils la perdent, ils ne la réclament jamais.
[Jean Deluca]

Image
Avatar de l’utilisateur
=[TTK]= Freshmeat
Grand Manitou
Grand Manitou
 
Messages: 497
Inscription: 01 Mar 2010

Cash: 92.00 Chaislongs

Re: L'Antizone

Messagede =[TTK]= Yoda » Lun 13 Déc 2010, 10:45

Vi, c'est bien tout ça.
c'est beau.
c'est propre.
tous ces chiffres,
toutes ces accolades,
ces "underscores".

Bravo.

Mais qu'est-ce qu'on fait si les spores du dit champignon venaient à se déplacer au gré du vent chaud du Takistan ?
Hein ? je vous le demande ...  :mrgreen:
C’est parce que la vitesse de la lumière est supérieure à celle du son que certains ont l’air brillant avant d’avoir l’air con.

Image
-
Ôôôô la vache !!Froggytto el Loco 2011
Avatar de l’utilisateur
=[TTK]= Yoda
Grand Mérou
Grand Mérou
 
Age: 46
Messages: 1486
Localisation: Marseille, Capitale du monde vraiment libre
Humeur: Hop là boum !
Inscription: 11 Fév 2010

Cash: 104.60 Chaislongs

Re: L'Antizone

Messagede =[TTK]= Freshmeat » Lun 13 Déc 2010, 11:18

Mais qu'est-ce qu'on fait si les spores du dit champignon venaient à se déplacer au gré du vent chaud du Takistan ?
Hein ? je vous le demande ...


On déplace et on modifie les paramètres les déclencheurs en temps réel via un autre script mon bon monsieur.
Les gens n'accordent guère d'importance à la vie, la preuve : quand ils la perdent, ils ne la réclament jamais.
[Jean Deluca]

Image
Avatar de l’utilisateur
=[TTK]= Freshmeat
Grand Manitou
Grand Manitou
 
Messages: 497
Inscription: 01 Mar 2010

Cash: 92.00 Chaislongs

Re: L'Antizone

Messagede =[TTK]= Yourry » Lun 13 Déc 2010, 18:28

On déplace et on modifie les paramètres les déclencheurs en temps réel via un autre script mon bon monsieur.


OH OH OH !

STOP !!!

C'est pas le même tarifs en chaislong !

Vous ne voudriez pas que l'on fasse un script qui prenne en compte le temps, l'humidité, la saison, le soleil, le type de sol, la faune, pour faire pousser ou non les champignons, non plus ?

:mrgreen:
"Les Boches faisaient "Kamarad". Il aurait fallu commencer par ça des deux côtés, pour éviter les massacres organisés par ceux d'en haut, mais le fusil qu'ils nous avaient collé entre les mains, forcément, il a bien fallu qu'il serve et tout le reste à suivit." dixit Tardi et Verney


Image


L'autre jour, en tirant le rouleau de papier cul, toute la cloison est venue avec. dixit Camille Caz
Avatar de l’utilisateur
=[TTK]= Yourry
Grand Scriptou
Grand Scriptou
 
Age: 24
Messages: 731
Localisation: Parmis les Quenelles.
Inscription: 17 Mar 2010

Cash: 160.00 Chaislongs

Re: L'Antizone

Messagede =[TTK]= Memphis007 » Lun 13 Déc 2010, 18:40

bah si.
Pour halloween, un vrai g33k met un masque de sous réseau.
Le g33k ne sort pas du métro, il libère de la ram.

Image

C.Caz : Combien de chaislongs à celui qui arrive le premier ?
Avatar de l’utilisateur
=[TTK]= Memphis007
Gripsou
Gripsou
 
Age: 31
Messages: 1368
Localisation: /dev/null
Humeur: Born to be wild
Inscription: 13 Jan 2010

Cash: 127.10 Chaislongs

Re: L'Antizone

Messagede =[TTK]= Camille Caz » Lun 13 Déc 2010, 20:12

Arrêtez de causer les mecs, j'ai mal à la tête.
C'est wiki le dit qui l'est.

Image
Avatar de l’utilisateur
=[TTK]= Camille Caz
Grand Gourou
Grand Gourou
 
Age: 71
Messages: 1585
Localisation: La Rochelle, centre du milieu
Humeur: paléolithique mais presque
Inscription: 25 Jan 2010

Cash: 296.30 Chaislongs

Re: L'Antizone

Messagede =[TTK]= Memphis007 » Lun 13 Déc 2010, 20:48

Soigne toi à l'aide des plantes, c'est ce qui fonctionne le mieux
Pour halloween, un vrai g33k met un masque de sous réseau.
Le g33k ne sort pas du métro, il libère de la ram.

Image

C.Caz : Combien de chaislongs à celui qui arrive le premier ?
Avatar de l’utilisateur
=[TTK]= Memphis007
Gripsou
Gripsou
 
Age: 31
Messages: 1368
Localisation: /dev/null
Humeur: Born to be wild
Inscription: 13 Jan 2010

Cash: 127.10 Chaislongs

Suivante


  • Publicité

Retourner vers En chantier

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


cron