GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: samiyasami le 11 Septembre 2011, 03:36:00
-
Premièrement je tien a vous féliciter pour votre très bon site puis vos excellent tutoriaux puis voila comme suite un problème que vous en pouvez me donner la solution en me expliquant, merci.
[1]Vehicule
Proprement parlent des system de véhicule se qui me dérange le plus ses l'exécution des "SendClientMessage" Avant même que en se soit installer dans notre véhicule.
Voila, comme en peux voir dans ce exemple:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if (vehicleid == 1)
{
if (gTeam[playerid] == TEAM_MILITAIRE)
{
SendClientMessage(playerid, COLOR_INFO,"Bienvenue dans votre vehicule.");
}
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_INFO,"Vous n'avez pas les clés de ce vehicule.");
TogglePlayerControllable(playerid, 1);
}
}
return 1;
}
Donc, le message dans la 1ère condition s’affiche avant même que le conducteur soit dans le véhicule, puis pour la condition "else" Sa peux être en vrai source de flood si le joueur se acharne sur la touche utilisable pour rentrée dans un véhicule .
-
Salut, alors pour éviter ce problème là, tu dois utiliser la callback OnPlayerStateChange et, vérifié si le oldstate n'est pas égal à PLAYER_STATE_DRIVER et de tester si le newstate vaut PLAYER_STATE_DRIVER.
^^
-
Waaaa :lmao Aller par pitié je suis qu'un débutant , des explication bien claire avec quelque code pour l'exemple serait la bienvenue son vouloir te foncée bien sûr.
-
Un peu de recherche aussi ;)
http://wiki.sa-mp.com/wiki/OnPlayerStateChange (http://wiki.sa-mp.com/wiki/OnPlayerStateChange)
-
Ah voila j'ai trouver, merci.