• 07 Juin 2026, 08:22:19


Auteur Sujet: Voitures tunnée  (Lu 4390 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Sismix84

  • *
  • Tueur en série
  • Messages: 247
    • Voir le profil
Voitures tunnée
« le: 08 Novembre 2007, 12:06:29 »
Bonjour à tous, j'ai vu sur un serveur qu'on peut trouver des voitures tunnée aléatoirement dans le serveur :



est ce que quelqu'un sais comment faire ?

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Voitures tunnée
« Réponse #1 le: 08 Novembre 2007, 13:02:15 »
Ou, on sait mais c'est assez compliqué de gérer le respawn de la voiture.
Recherche sur le forum, il existe déjà un topic qui en parle.

Edit Syg : Tiens, j'ai retrouvé le lien : http://www.gtaonline.fr/forums/index.php?msg=9532;topic=1332
Mais le lien vers le bout de script est cassé (le script à disparu) .... je vais essayer de le refaire si j'ai le temps. Poste une réponse pour m'y faire penser.

++
Syg
« Modifié: 08 Novembre 2007, 13:19:50 par Syg »
Courtesy of GtaManiac

Hors ligne Sismix84

  • *
  • Tueur en série
  • Messages: 247
    • Voir le profil
Re : Voitures tunnée
« Réponse #2 le: 08 Novembre 2007, 13:50:08 »
Ok, merci beaucoup Syg.

Hors ligne Sismix84

  • *
  • Tueur en série
  • Messages: 247
    • Voir le profil
Re : Voitures tunnée
« Réponse #3 le: 10 Novembre 2007, 17:06:31 »
UP pour Syg  :D

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Voitures tunnée
« Réponse #4 le: 11 Novembre 2007, 23:47:41 »
Le pastebin ne fionctionne pas pour moi, je sais pas si ça vient du fait que j'ai réinstallé ma machine ou si c'est le pastebin qui déconne.
Je poste donc ici parce que je veux pas avoir à le refaire (et puis, ça pas 500 lignes non plus) :

/* Timer pour le déport des appels a AddVehicleComponent */
forward TimerTuning (vehicle, component);

/* Identifiant du véhicule tuné */
new IDTunedVehicle;

/***************************/
/* FONCTION D'INIT DU MODE */
/***************************/
public OnGameModeInit ()
{
/* LES LIGNES SUIVANTES SONT A AJOUTEES AUX LIGNES DEJA PRESENTE DANS LA CALLBACK  */

/* Vehicule tuné à Los Santos (skate park) */
IDTunedVehicle = AddStaticVehicle (411, 1952.8768, -1401.5701, 13.2974, 74.6119, 100, 49);

/* On colle de la nitro a notre vehicule tuné (avec un timer pour éviter les plantages au redémarrage du mode) */
SetTimerEx ("TimerTuning", 500, 0, "ii", IDTunedVehicle, 1008);
}

/****************************/
/* APPARITION D'UN VEHICULE */
/****************************/
public OnVehicleSpawn (vehicleid)
{
/* Si le vehicule qui est détruit est le vehicule tuné */
if (vehicleid == IDTunedVehicle)
{
/* On passe par un timer sinon ça marche pas */
SetTimerEx ("TimerTuning", 500, 0, "ii", IDTunedVehicle, 1008);
}

/* NE PAS OUBLIER CE RETURN, SINON LA FONCTION N'A AUCUN EFFET */
return 1;
}

/************************/
/* TIMER POUR LE TUNING */
/************************/
public TimerTuning (vehicle, component)
{
/* On ajoute le composant au vehicule */
AddVehicleComponent (vehicle, component);
}

++
Syg
Courtesy of GtaManiac

Hors ligne Sismix84

  • *
  • Tueur en série
  • Messages: 247
    • Voir le profil
Re : Voitures tunnée
« Réponse #5 le: 12 Novembre 2007, 07:42:40 »
Merci Syg, mais dans ton code il y a une erreur dans le OnVehicleSpawn sur le return 1; , je ai effacé le return et ça marche. Merci encore

Pour rajouté une autre voiture ou un autre composant, j'ai juste à rajouté une deuxième ligne et c'est bon ?

IDTunedVehicle = AddStaticVehicle (411, 1952.8768, -1401.5701, 13.2974, 74.6119, 100, 49);
IDTunedVehicle = AddStaticVehicle(411,-990.0296,1080.7462,1342.4668,145.9320,6,0);

SetTimerEx ("TimerTuning", 500, 0, "ii", IDTunedVehicle, 1008);
SetTimerEx ("TimerTuning", 500, 0, "ii", IDTunedVehicle, 1087);

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Voitures tunnée
« Réponse #6 le: 12 Novembre 2007, 09:44:23 »
C'est étonnant ce que tu me dis sur le return 1, plusieurs personnes avaient justement des problèmes parce qu'ils ne l'avaient pas mis (moi le premier).
Tu es vraiment sûr que ça marche sans le return 1 ?

Sinon, pour mettre plusieurs voitures tunée, il faut mettre plusieurs ID :
IDTunedVehicle = AddStaticVehicle (411, 1952.8768, -1401.5701, 13.2974, 74.6119, 100, 49);
IDTunedVehicle2 = AddStaticVehicle(411,-990.0296,1080.7462,1342.4668,145.9320,6,0);

SetTimerEx ("TimerTuning", 500, 0, "ii", IDTunedVehicle, 1008);
SetTimerEx ("TimerTuning", 500, 0, "ii", IDTunedVehicle2, 1087);

public OnVehicleSpawn (vehicleid)
{
/* Si le vehicule qui est détruit est le premier véhicule tuné */
if (vehicleid == IDTunedVehicle)
{
/* On passe par un timer sinon ça marche pas */
SetTimerEx ("TimerTuning", 500, 0, "ii", IDTunedVehicle, 1008);
}

/* Si le vehicule qui est détruit est le deuxième véhicule tuné */
else if (vehicleid == IDTunedVehicle2)
{
/* On passe par un timer sinon ça marche pas */
SetTimerEx ("TimerTuning", 500, 0, "ii", IDTunedVehicle2, 1087);
}

/* NE PAS OUBLIER CE RETURN, SINON LA FONCTION N'A AUCUN EFFET */
/* SI CA NE MARCHE PAS, SUPPRIMER LE RETURN */
return 1;
}

Si tu ne différencies pas les ID de tes deux véhicules, seul le deuxième sera tuné.
Si tu veux beaucoup de véhicules tunés, je te conseille de passer pas un tableau pour stocker le ID des véhicules.

++
Syg
Courtesy of GtaManiac

Hors ligne Sismix84

  • *
  • Tueur en série
  • Messages: 247
    • Voir le profil
Re : Voitures tunnée
« Réponse #7 le: 12 Novembre 2007, 12:32:26 »
Oui, je suis certain que ça marche sans le return 1, vu que j'ai testé le code, et la voiture a bien le composant et si je met le return 1 ça me met une erreur.

Tu n'aurais pas un exemple de tableau ?

Hors ligne UrbanGhetto

  • *
  • Grand Banditisme
  • I PWN You !
  • Messages: 948
    • Voir le profil
    • http://h2oteam.roxorgamers.com/
Re : Voitures tunnée
« Réponse #8 le: 12 Novembre 2007, 13:23:50 »
Sismix c'est normal que ça marche sans le return vus que tu as déjà un return dans la CallBack OnGameModeInit... lol

˙·٠•● Je dis, mieux vaut toucher à un clavier qu'a de la drogue | Le meilleur topic du forum | Ce que j'ai fait a fait de moi ce que je suis ●•٠·˙

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Voitures tunnée
« Réponse #9 le: 12 Novembre 2007, 13:52:39 »
Urban : On parle du return de la callback OnVehicleSpawn.

Sismix : Quelle version de serveur SA-MP utilises-tu ?
La callback OnVehicleSpawn sert quand le véhicule réapparaît après avoir été détruit. (au démarrage, c'est dans OnGameModeInit qu'on met le composant).
Essaie de détruire le vehicule pour qu'il re-spawn et vérifie que le composant y est toujours.
Sinon, pour l'exemple avec un tableau, je vais essayer de faire ça ce soir.

Et je confirme ce que j'ai dit, sur ma machine avec la version 0.2.2 du serveur et du client, ça ne marche pas sans le return 1;

++
Syg
Courtesy of GtaManiac

Hors ligne UrbanGhetto

  • *
  • Grand Banditisme
  • I PWN You !
  • Messages: 948
    • Voir le profil
    • http://h2oteam.roxorgamers.com/
Re : Re : Voitures tunnée
« Réponse #10 le: 12 Novembre 2007, 15:08:54 »
Urban : On parle du return de la callback OnVehicleSpawn.

C'est peut-être aussi le cas de cellà :)

˙·٠•● Je dis, mieux vaut toucher à un clavier qu'a de la drogue | Le meilleur topic du forum | Ce que j'ai fait a fait de moi ce que je suis ●•٠·˙

Hors ligne Sismix84

  • *
  • Tueur en série
  • Messages: 247
    • Voir le profil
Re : Voitures tunnée
« Réponse #11 le: 12 Novembre 2007, 19:16:32 »
Ma callback OnVehicleSpawn est comme ceci :

public OnVehicleSpawn (vehicleid)
if (vehicleid == IDTunedVehicle)
{
SetTimerEx ("TimerTuning", 500, 0, "ii", IDTunedVehicle, 1008);
}

et rien d'autre

Pour la version de serveur, j'ai la 0.2.2.

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Voitures tunnée
« Réponse #12 le: 12 Novembre 2007, 22:25:36 »
Houla, c'est quoi ce truc que tu nous a fait ????
En plus, je viens de tester, le compilo l'accepte.
Et pas étonnant qu'il t'aie mis une erreur quand tu avais le return 1;.

Ta fonction n'a pas d'accolade pour la délimiter (ligne 2 et 12 du code suivant).
Dans ton cas, le compilo les rajoute pour toi mais si tu veux faire une fonction plus compliquée, tu ne pourras pas.

Voici comment devrait être ta fonction :
Code: (cpp) [Sélectionner]
public OnVehicleSpawn (vehicleid)
{ // Accolade ouvrante de la fonction
/* Si le vehicule qui est détruit est le vehicule tuné */
if (vehicleid == IDTunedVehicle)
{
/* On passe par un timer sinon ça marche pas */
SetTimerEx ("TimerTuning", 500, 0, "ii", IDTunedVehicle, 1008);
}

/* NE PAS OUBLIER CE RETURN, SINON LA FONCTION N'A AUCUN EFFET */
return 1;
} //Accolade fermante de la fonction


++
Syg
Courtesy of GtaManiac

Hors ligne Sismix84

  • *
  • Tueur en série
  • Messages: 247
    • Voir le profil
Re : Voitures tunnée
« Réponse #13 le: 13 Novembre 2007, 07:04:48 »
Ah ben voila pourquoi, je n'avais pas fait attention a l'accolade. Merci pour ta grande aide.

EDIT : J'ai fait le code pour les voiture que je voullais mais je voudrais mettre aussi les paintjobs. Comment faire ?
« Modifié: 13 Novembre 2007, 11:26:52 par Sismix84 »

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Voitures tunnée
« Réponse #14 le: 14 Novembre 2007, 02:46:16 »
Je pense que le paintjobs sont des composants comme les autres, suffit juste de trouver leurs IDs.

Sinon, voici pour l'exemple de plusieurs vehicule en passant par un tableau : http://pastebin.com/f63b487f2
Je n'ai pas testé donc il se peut que ça ne marche pas mais c'est surtout pour te montrer le principe.

++
Syg
Courtesy of GtaManiac