GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Jewels le 31 Octobre 2008, 20:31:23

Titre: Spawn de véhicules
Posté par: Jewels le 31 Octobre 2008, 20:31:23
Salut.

J'aimerais créer une commande /nrg par exemple qui spawn une nrg et met le joueur directement dessus.
Je ne sais pas et n'ai pas le niveau pour la coder, quelqu'un pourrait-il donc m'aider ? ^^

J'aimerais que ça fonctionne en ID, pour que je puisse la copier et changer l'ID.

Merci d'avance,
Onoez. :)
Titre: Re : Spawn de véhicules
Posté par: angelrider le 31 Octobre 2008, 20:36:13
Tu peut prendre la commande /veh qui spawn un vehicule (/veh (id) (idcouleur) (idcouleur)) voila ensuite c'est à toi de la modifier.
Titre: Re : Spawn de véhicules
Posté par: ghettoman94 le 31 Octobre 2008, 20:49:50
Salut
Je vais te donner le code tout en expliquant avec les commentaire :


if(strcmp(cmdtext, "/nrg", true) == 0)
{
new Float:x, Float:y, Float:z, Float:a; /*Définition des variable pour stocker la position du joueur*/
GetPlayerPos(playerid, x, y, z);/*Stockage de la position du joueur*/
GetPlayerFacingAngle(playerid, a);

new idnrg = CreateVehicle(522, x, y, z, a, COULEUR_1, COULEUR_2, Temps de respawn après inactiviter);/*Création de la nrg*/
PutPlayerInVehicle(playerid, idnrg, 0);/*On place le joueur dessus*/

return 1;
}

Voila faut juste que tu change dans le CreateVehicule les couleur et le temps de respawn après inactivité.

++ gm94
Titre: Re : Spawn de véhicules
Posté par: ThePlaymobile le 31 Octobre 2008, 21:05:44
Moi s'est des AddStaticVehicle ??? sa marche pareil
Titre: Re : Spawn de véhicules
Posté par: Jewels le 31 Octobre 2008, 21:10:07
Merci beaucoup je vais essayer tout ça bien merci. :)
Titre: Re : Spawn de véhicules
Posté par: Jewels le 31 Octobre 2008, 21:23:49
Voilà ça marche mais ça respawn la nrg moi je veux la détruire pour pas qu'un gars qui fait pleins de fois /nrg ça fasse pas planter donc comment mettre qu'au bout de x secondes elle soit détruite ?

Merci,
Onoez. :)
Titre: Re : Re : Spawn de véhicules
Posté par: ghettoman94 le 31 Octobre 2008, 23:41:29
Moi s'est des AddStaticVehicle ??? sa marche pareil

La difference entre les 2 c'est que le CreateVehicule permet de créer un vehicule pendant le jeux alors que le AddStaticVehicule non.


Voilà ça marche mais ça respawn la nrg moi je veux la détruire pour pas qu'un gars qui fait pleins de fois /nrg ça fasse pas planter donc comment mettre qu'au bout de x secondes elle soit détruite ?

Merci,
Onoez. :)

Tu veut que quand tu fasse /nrg sa fait spawner la même nrg devant toi ?
Titre: Re : Spawn de véhicules
Posté par: Jewels le 31 Octobre 2008, 23:56:06
pour le moment ça me va je veux juste qu'au bout de x secondes après inutilisation au lieu de se respawner elle soit détruite.
Titre: Re : Spawn de véhicules
Posté par: S!m le 01 Novembre 2008, 00:58:12
salut,

tu va dans la callback OnPlayerExitVehicle

 et tu vérifie si la moto a été crée avec la commande, si oui, tu lance un timer dans lequel tu la détruira, n'oublie pas de sortir les joueurs qui s'y trouvent avant....
et dans OnPlayerEnterVehicle, si c'est le même véhicule, tu arrête le timer

ou encore dans OnPlayerStateChange si  le oldstate est driver ou passenger, eh bien tu lance le même timer
tu peut faire l'équivalent du OnPlayerEnterVehicle si le newstate est driver ou passenger, à toi de voir

++Sim++
Titre: Re : Spawn de véhicules
Posté par: Dark_revan le 02 Novembre 2008, 11:06:21
je te conseil d'utiliser une variable pour verifier la creation de la moto  :D
Titre: Re : Spawn de véhicules
Posté par: S!m le 02 Novembre 2008, 15:17:00
Salut,

et puis si le joueur veut se spawner une seconde moto, on peut aussi bien supprimer la première...

en haut:
new NrgIDForPlayer[MAX_PLAYERS];
puis ta commande:
if(strcmp(cmdtext, "/nrg", true) == 0)
{
if(NrgIDForPlayer[playerid] != 0)DestroyVehicle(NrgIDForPlayer[playerid]);//faudrait vérifier, la r3 est supposé avoir corrigé le bug avec le DestroyVehicle
//tu peut également mettre -1 comme valeur par defaut, enfin, comme valeur si le joueur n'a pas de Véhicule...
new Float:x, Float:y, Float:z, Float:a; /*Définition des variable pour stocker la position du joueur*/
GetPlayerPos(playerid, x, y, z);/*Stockage de la position du joueur*/
GetPlayerFacingAngle(playerid, a);
NrgIDForPlayer[playerid] = CreateVehicle(522, x, y, z, a, COULEUR_1, COULEUR_2, Temps de respawn après inactiviter);/*Création de la nrg*/
PutPlayerInVehicle(playerid,NrgIDForPlayer[playerid], 0);/*On place le joueur dessus*/

return 1;
}

et tu remet la variable à 0 à chaque fois que tu détruit une moto..

++Sim++