GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: LePtitClown le 02 Juillet 2011, 15:45:40
-
Slt
Existe il une fonction pour détecter si un joueur est tomber d'une moto
Merci d'avance
A+ ;)
-
salut plus cout on meurt ^^
Malheureusement non mais tu peu creer une fonction avec un timer qui te permet de verifier si le joueur est sur une moto et si entre deux timer il est toujours dessus et meme si c'est toujour la meme moto
-
Cristab a pas tord tu vérifies toute les 1 seconde avec un Timer et tu prend l'ID du véhicule tu vois la suite ?
-
J'avais pensé au timer mais j'espérais qu'il y avait une vraie technique car les timer, c'est un peu la solution à tout :lmfao et je pense que ça fait ramer :dry
Je vais devoir m'y résoudre
Merci pour les réponses
A+ ;)
-
C'est bien de vérifier s'il est toujours sur le véhicule, mais il est descendu, ou tombé, tel est la question !
-
ben c'est simple si il est tomber la callback OnPlayerExitVehicle n'est pas appeler si il est descendut cette callback est appeler rien de plus simple le soucis avec les nofall sont juste du au timer trop long par rapport au execution des callback
-
perso j'ai pas tester et je pense que je vais tester et je met le test ici mais par la logique meme non elle n'est pas prise en compte l'ors de la chute
test concluant
public OnPlayerExitVehicle(playerid, vehicleid)
{
SendClientMessage(playerid,0xAFAFAFAA,"tu es descendu de la moto");
return 1;
}
[22:39:55] {FFFFFF}SA-MP {EE5555}0.3c-R3 {FFFFFF}Started
[22:39:58] Connecting to 127.0.0.1:7777...
[22:39:58] Connected. Joining the game...
[22:39:58] [LZR]rambo rejoind le serveur.
[22:39:58] Bienvenue sur le serveur Conquette ville nouvelle v.1.1
[22:39:58] Visitez notre site www*****.fr
[22:39:58] Si vous arrivez a 6 kills sans mourir alors votre vie et armure sera restituée à 100 pour 100
[22:40:00] Connected to {EE5555}SA-MP 0.3 Server
[22:40:02] Pour avoir de l'aide tape /aide
[22:40:11] [SUCCESS]: Spawned a "NRG-500" (MODELID: 522, VEHICLEID: 30)//je spawn la moto
je monte dessus
[22:40:14] tu es descendu de la moto//je descend
//je remonte dessus
//j'accelere
//je tombe
//rien ne se passe ;)
-
Salut,
OnPlayerExitVehicle / OnPlayerEnterVehicle sont des callback qui sont appelées seulement lorsque le joueur appuie sur la touche pour entrer/sortir du véhicule.
La valeur de retour valide d’ailleurs l'action à effectuer (sortir ou entrer).
Par contre, OnPlayerStateChange est appelée quand le joueur sort vraiment du véhicule, lorsque son statut passe de conducteur à piéton (ou autre statut).
++Sim++
-
je peu vous creer un petit script qui vous montre comment agissent les callback si vous trouver cela utile
-
Ca serais marrent Cristab et utile.
-
ben marrant je sais pas mais sa peu etre prix comme educatif enfaite il y aurais des Info etant IG est plus d'info dans le log
-
Il faudrait peut être que je creuse l'idée de Sim alors :
OnPlayerStateChange
-
Tu fait une bool tu lui donne 1 quand il monte dans un véhicule dans une moto en bref et dans.
OnPlayerStateChange
Si il change de Driver a Ped tu fait ce que tu veut...
Et quand il sort tu lui met la valeur a 0.
Je pense que ça devrais être bon ?
-
Pour la valeur c'est dans la callback OnPlayerEnterVehicle.
-
Je dis peut-être une bêtise mais.. je me lance :p
Déjà avec le "OnPlayerStateChange" avec en plus un timer qui vérifie sa vie. Et si il est passé de véhicule à pied et qu'il a perdu de la vie.. :)
Après je ne sais pas trop sinon :p
-
Bon bah il y a aucune solution :p
-
Salut, alors s'est codé sur le forum, excusez moi
new oldveh[MAX_PLAYERS];
forward EstUneMoto(carid);
public EstUneMoto(carid)
{
new veh = GetVehicleModel(carid);
if(veh == 448 || veh == 461 || veh == 462 || veh == 463 || veh == 468 || veh == 471 || veh == 521 || veh == 522 || veh == 523 || veh == 581 || veh == 586) { return 1; }
return 0;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_PASSENGER || newstate == PLAYER_STATE_DRIVER)
{
oldveh[playerid]=GetPlayerVehicleID(playerid);
}
else if(newstate == PLAYER_STATE_ONFOOT)
{
if(EstUneMoto(oldveh[playerid])
{
tu met ce que tu veux la
}
}
return 1;
}
++ Max ++