GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Jens84 le 12 Novembre 2007, 18:45:59

Titre: Respawn des vehicules
Posté par: Jens84 le 12 Novembre 2007, 18:45:59
Bonjour, j'aimerais connaitre le moyen pour que les vehicules (placés dans AddStaticVehicle) soient respawnés à leur emplacement d'origine après un certain temps d'innocupation (que l'on puisse modifier).
Merci d'avance
Titre: Re : Respawn des vehicules
Posté par: R@f le 12 Novembre 2007, 18:54:17
salut,
tu peux le faire avec un timer et avec SetVehicleToRespawn();

++
R@f
Titre: Re : Respawn des vehicules
Posté par: Jens84 le 12 Novembre 2007, 19:10:26
C'est à dire je fais quelles commandes precises, parce que je débute en PAWNO, donc je sais pas encore tout.
Je dois faire quelle commande et la placer ou s'il vous plait ?
Titre: Re : Respawn des vehicules
Posté par: R@f le 12 Novembre 2007, 19:12:43
je vais faire ce bout de code demain pour toi  ;) vers 14h30 tu l'aura ;)

++
R@f
Titre: Re : Respawn des vehicules
Posté par: Jens84 le 12 Novembre 2007, 19:14:01
OK merci beaucoup parce que c'est très enervant de voir des vehicules partout sur la carte sans qu'il soient replacés
Titre: Re : Respawn des vehicules
Posté par: Sismix84 le 12 Novembre 2007, 19:21:19
Y a plus simple, on utilise un AddStaticVehicleEx, exemple :

public OnGameModeInit( )
{
    AddStaticVehicleEx (ID, X, Y, Z, R_X, R_Y, R_Z, /*temps de respawn*/);
 
    return 1;
}
Titre: Re : Respawn des vehicules
Posté par: Jens84 le 12 Novembre 2007, 19:26:37
C'est quoi les   R_X,    R_Y,    R_Z ? et est-ce que je dois prendre en compte les / et *
Titre: Re : Respawn des vehicules
Posté par: Sismix84 le 12 Novembre 2007, 19:31:40
les R_X,    R_Y,    R_Z sont les rotations, non tu ne doit pas mettre les /* et */, tu met le temps que tu veut à la place, par exemple 1000 veut dire 1 seconde.
Titre: Re : Respawn des vehicules
Posté par: Jens84 le 12 Novembre 2007, 19:39:28
Et les rotations, sont-elles integrées dans les coordonées des vehicules AddStaticVehicle ?
Si j'ai bien compris ca serait par exemple :
Si j'ai AddStaticVehicle(451,-2107.2075,892.3208,76.3690,180.0604,36,36)
Je dois remplacer par : AddStaticVehicleEX (451,-2107.2075,892.3208,76.3690 mais après j'ai l'angle Z et les couleurs mais pas toutes les rotations.
Donc comment dois-je faire sur cet exemple ?
Titre: Re : Respawn des vehicules
Posté par: Sismix84 le 12 Novembre 2007, 20:52:57
Désolé, je me suis trompé, en fait il n'y a pas les  R_X, R_Y,  ces chiffre sont remplacé pas les couleur 1 et 2, donc ça fait :

public OnGameModeInit( )
{
    AddStaticVehicleEx (ID, X, Y, Z, R_X, couleur 1, couleur 2, /*temps de respawn*/);
 
    return 1;
}

et pour les coordonnées de ton code ça fait :

public OnGameModeInit( )
{
    AddStaticVehicleEx (451, -2107.2075, 892.3208, 76.3690, 180.0604, 36, 36, 60000);
 
    return 1;
}

le dernier chiffre est le temps, 60000 est en fait 10 minutes.


++
Titre: Re : Respawn des vehicules
Posté par: Syg le 12 Novembre 2007, 22:14:33
Juste une petite correction :
60000 ça fait 1 minute, pas 10 (mais ce n'était peut-être qu'une erreur de frappe).

Cette valeur (comme toutes celles de SA-MP) est donnée en millisecondes (ms)
Soit 60000 ms = 60 s = 1 min.

++
Syg
Titre: Re : Respawn des vehicules
Posté par: Jens84 le 13 Novembre 2007, 17:20:39
Ok merci beaucoup pour votre aide !!!
Titre: Re : Respawn des vehicules
Posté par: Jens84 le 14 Novembre 2007, 15:24:27
Re-bonjour.
J'ai modifié mon script en transformant tous les AddStaticVehicle en AddStaticVehicleEx avec la valeur 60000 (1 minute) mais quand je n'utilise plus un vehicule (j'en descend et attend 1 minute), il ne se passe rien et le vehicule reste a sa place.
J'aimerais en connaitre la raison.
Est-ce la commande qui ne fonctionne pas ? Ou n'a-t'elle pas cette fonction précise de respawner les vehicules à leur emplacement d'origine après abandon ?
Merci d'avance pour votre future reponse.
Titre: Re : Respawn des vehicules
Posté par: Sismix84 le 14 Novembre 2007, 15:47:32
Est ce que tu est aller voir a l'emplacement d'origine de la voiture s'il y en avais une autre ?
Titre: Re : Respawn des vehicules
Posté par: Jens84 le 14 Novembre 2007, 15:53:31
Ben oui par exemple au skate park j'ai placé des nrg-500 j'en prends une puis je la laisse ailleurs dans le skate park et elle retourne pas a l'endroit où je l'ai placé au skate, puisqu'elle reste devant moi et puisqu'il n'y en a pas de nouvelle
Titre: Re : Respawn des vehicules
Posté par: Syg le 14 Novembre 2007, 23:00:28
Ce paramètre ne correspond pas au temps qu'il faut pour que le véhicule respawn quand il est inoccupé mais quand il est détruit.
Voir : http://wiki.sa-mp.com/index.php/AddStaticVehicleEx

++
Syg
Titre: Re : Respawn des vehicules
Posté par: Sismix84 le 15 Novembre 2007, 11:32:41
Ah mince, j'y avait pas fait attention. Alors comment faut-il faire ?
Titre: Re : Respawn des vehicules
Posté par: R@f le 15 Novembre 2007, 14:29:30
je t'ai fais le code, le voici :
Vehicle respawn par R@f (http://pastebin.gtaonline.fr/pastebin.php?show=200)
j'ai fais ce code à l'arache et je ne l'ai pas tester, si quelque chose ne marche pas dit le moi et je corrige sa ;)

++
R@f
Titre: Re : Respawn des vehicules
Posté par: Syg le 15 Novembre 2007, 23:03:04
R@f, il faut arreter le timer que le joueur remonte dans le véhicule sinon le véhicule va respawner quand même.
Et là, ça se complique un peu puisque pour arreter un timer, il faut conserver son ID.

Allez, je me repose, je vous laisse faire.

++
Syg
Titre: Re : Respawn des vehicules
Posté par: R@f le 16 Novembre 2007, 12:31:45
il me semblait que j'avais oublier quelque chose ....
Comme sa c'est juste ? : http://pastebin.gtaonline.fr/pastebin.php?show=204

++
R@f
Titre: Re : Respawn des vehicules
Posté par: UrbanGhetto le 16 Novembre 2007, 13:18:49
Non, Ca ça l'est :

http://pastebin.gtaonline.fr/pastebin.php?show=203 (http://pastebin.gtaonline.fr/pastebin.php?show=203)

Tu as fais un KillTimer("CarRespawn") ce qui est faux...

Il faut définir un Timer qui sera détruit, Comme ceci :

new Timer = SetTimer("Truc",1000,1);
KillTimer(Timer);

Mais pour le cas de 2 CallBack différentes il faut mettre le new en haut...

EDIT: Et 240000 ms ne font pas 4 minutes  ???
Titre: Re : Respawn des vehicules
Posté par: Sismix84 le 16 Novembre 2007, 16:06:53
Ce que j'ai pas compris c'est pourquoi il y a ce forward :

forward TimerTuning (vehicle);
c'est pas plutôt :

forward CarRespawn (vehicle);
?
Titre: Re : Re : Respawn des vehicules
Posté par: R@f le 16 Novembre 2007, 16:29:39
Non, Ca ça l'est :

http://pastebin.gtaonline.fr/pastebin.php?show=203 (http://pastebin.gtaonline.fr/pastebin.php?show=203)

Tu as fais un KillTimer("CarRespawn") ce qui est faux...

Il faut définir un Timer qui sera détruit, Comme ceci :

new Timer = SetTimer("Truc",1000,1);
KillTimer(Timer);

Mais pour le cas de 2 CallBack différentes il faut mettre le new en haut...

EDIT: Et 240000 ms ne font pas 4 minutes  ???


pour le kill timer j'avais pas le compileur, c est pour sa que c'est faux

je pense bien que sa fait 4min,  240000 / 1000 = 240 / 60 = 4

ah aussi, sismix, comme je l'avais dit plus haut, j'avais pas mon compileur, donc j ai pris exemple d'un code fait par syg (pour eviter les erreurs)

++
R@f

Titre: Re : Respawn des vehicules
Posté par: Syg le 16 Novembre 2007, 16:46:30
Voici la vraie version qui marche (bien que pas testée mais je suis assez confiant).

C'est une modification de celle de R@f qui était presque juste, au détail près qu'il ne faut pas 1 seul timer mais un timer par véhicule sinon, dès que quelqu'un rentre ou sort d'un véhicule, ça va mettre le bazard.

http://pastebin.gtaonline.fr/pastebin.php?show=206

Et sinon, 240000 ms = 240 s = 240/60 min = 24/6 min = 4 minutes. Tu avais raison R@f.

++
Syg
Titre: Re : Respawn des vehicules
Posté par: Jens84 le 18 Novembre 2007, 11:37:58
J'ai bien compri le but de tout ça, mais en ajoutant les fonctions, pawno me trouve des erreurs, alors je vous ai copié la partie où j'ai tout integré avec un repère en haut (pour me dire si j'ai placé les commandes au bon endroit)

http://pastebin.gtaonline.fr/pastebin.php?show=210
Titre: Re : Respawn des vehicules
Posté par: Syg le 18 Novembre 2007, 22:43:23
On avait fait pas mal d'erreur et rien ne vaut un bon test en réel.

Voici une version qui fonctionne :
http://pastebin.gtaonline.fr/pastebin.php?show=215

NB : Pour les besoins de mon test, j'ai mis le temps avant respawn à 2 secondes (2000 ms). Il serait bien de le changer, je pense que 30000ms=30s est parfait.

++
Syg

Titre: Re : Respawn des vehicules
Posté par: Jens84 le 19 Novembre 2007, 19:04:18
Merci beaucoup beaucoup beaucoup, ca fonctionne parfaitement, je vous remercie enormement de votre aide !!!!
Titre: Re : Respawn des vehicules
Posté par: Nip le 19 Novembre 2007, 20:20:06
lu

de passage voila un ptit lien pour les duréé

[urlhttp://www.convertworld.com/fr/temps/]Lien IcI[/url]

Edit: Merci ArseniK
Titre: Re : Re : Respawn des vehicules
Posté par: NatiVe™ le 19 Novembre 2007, 20:26:32
[urlhttp://www.convertworld.com/fr/temps/]Lien IcI[/url]

On ce la refait ;)

Click Here (http://www.convertworld.com/fr/temps/) :)

AK NV.