• Problème de script


    ET le remoteExec ? tu y a pense ??
    De plus il faut directement faire spawn tes pnj au lancement de la mission, seul des pnj spawn peuvent etre despawn

  • Les PNJ sont déjà sur la map au lancement de la mission, ils sont despawn avec le script. Et à quel moment pour le remoteExec ?

  • Bon, j’ai réussi à faire spawn le pnj avec le script, le problème c’est qu’il y en a 2 qui spawn en même temps sur le même marker …

  • Ah … en fait c est pas vrai tu peux delete tout … mais comme ca t as trouve une astuce
    Apres tu doit executer ton script uniquement cote server ou mieux cote client !

    C est le systeme que j ai fait sur mon server ! Spawn et despawn des pnj pour gagner en performance. Perso je le fait en local client

    Utilise une commande createvehicleLocal ! mais que sur le client et pas sur le server.

  • Désolé mais je comprends pas

  • Tu peux créer les pnj (dans ce cas ci on peut parler plutôt d’objets vu qu’il est créé en tant que véhicule ) localement au client avec la commande createVehicleLocal , c’est à dire que c’est ton PC qui prend en charge le PNJ et non le serveur (le serveur et les autres clients n’ont pas conscience que le pnj existe dans ce cas-ci) , ça consomme moins de bande passante et ça fatigue moins le serveur.

  • en beaucoup plus simple: tu lui change sa position avec un setpos

  • @vincent-imètre a dit dans Problème de script :

    en beaucoup plus simple: tu lui change sa position avec un setpos

    Pas bon pour l optimisation …

  • Tout a fait d’accord mais c est comme le laisser en place, ca ajoute pas de complexité.
    Et en revanche ca se fait en 2 lignes

    if (daytime<5 || daytime>22) then {
    {
    _x setpos [(getpos _x select 0, _x getpos select 1, (_x getpos select 2) -100]
    }foreach _PNJ}
    else{
    {
    _x setpos [(getpos _x select 0, _x getpos select 1, (_x getpos select 2) +100]
    }foreach _PNJ}
    }
    @Morbakos j’espere que ca te va, tu liste tes pnj dans la variable _PNJ

  • Pas de complexite mais ca bouffe de la ressource quand mm.
    C est minime mais au cumule ca fait beaucoup !

  • Bonsoir,

    Malgré toutes les recherches que j’ai faites durant ces quelques jours, je ne parviens toujours pas à faire réapparaître le pnj sur un marker, y compris avec le remoteExec.

    Si vous avez des exemples concret de comment utiliser cette fonction je suis preneur ;)

  • montre ce que tu as fait, on corrigera !

  • J’ai fais ça au début :

    if (daytime > 8.0) and (daytime < 20.0) 
    {
    	[] spawn life_fnc_vehicleShopMenu,["civ_sport",civilian,"civ_car_1","civ",""];
    } else {
    	hint "tu t'es cru où ? C'est pas l'heure !" ; 
    }
    

    et comme ça ne fonctionnais pas et que je suis pas parvenu à comprendre le fonctionnement du remoteExec, j’ai réessayer de faire despawn-respawn, il despawn bien la nuit mais ne respawn pas le jour. Le code :

    if (daytime > 8.0) and (daytime < 20.0) 
    {
    	deleteVehicle sportive_1;
    } else {
    	sportive_1  = "C_man_polo_2_F" createVehicle getMarkerPos marker_sportive_1 ; 
            sportive_1 addAction ["Voiture de sport", {["Open",true] [] call life_fnc_vehicleShopMenu,["civ_sport",civilian,"civ_car_1","civ",""]}];
    }
    
  • Ok … maintenant prend 2 secondes et reflechies:
    Au moment ou tu lances ton script, le code s execute d apres ta condition … mais apres qu est ce qui fait que ta condition est toujours surveiller ??
    Regarde:
    https://community.bistudio.com/wiki/while

    https://community.bistudio.com/wiki/waitUntil

    https://community.bistudio.com/wiki/Control_Structures

  • @brutalzic a dit dans Problème de script :

    Pas de complexite mais ca bouffe de la ressource quand mm.
    C est minime mais au cumule ca fait beaucoup !

    entre déplacer des pnj ou les supprimer pour ensuite les recrées, je suis pas sur le quel des deux bouffe le moins de ressource

  • Tout depend comment tu fais ton script et ce qu il contient !

  • Bon, @Vincent-Imètre m’a proposé une solution qui a l’air de marcher, en tout vas merci à vous ;)

  • La solution est la suivante:

    [] spawn {
        while {true} do{
            if (daytime>23) then {
                     //Bouger le PNJ de 5 metres sous le sol
                }
            else{
                    //Remonter le PNJ
                sleep 3600;
            };
            sleep 1;
        };
    };```
  • @morbakos Je déplace en résolu.

  • C est une solution …

Messages 28Vues 720