GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: iPod_Touch le 24 Décembre 2008, 14:14:08
-
Bonjour, voilà j'ai un petit problème, j'ai créer une commande pour reparer la carrosserie d'une voiture, en fait, sa prend la voiture, sa la teleporte avec le joueur au Pay n Spray et ensuite sa le remet à sa position. J'ai testé en tant que ID 0 mais dès qu'un autre joueur veut la faire, c'est la cata. En effet, des fois sa ne le teleporte pas, des fois c'est moi que sa teleporte!!! Je pense qu'il y a un conflit d'id, je ne sais pas quoi faire.
Voici la commande en question
OnPlayerCommandText:
if(strcmp("/carrosserie",cmdtext, true) == 0)
{
if(IsPlayerInAnyVehicle(idjoueur))
{
GetVehiclePos(GetPlayerVehicleID(idjoueur), X, Y, Z);
SetVehiclePos(GetPlayerVehicleID(idjoueur), -1420.4519,2585.2080,55.5465);
SetTimer("paynspray", 5000, false);
}
else
{
SendClientMessage(playerid, COLOR_RED, "Tu n'es pas dans une voiture !");
}
return 1;
}
public paynspray(playerid)
{
SendClientMessage(idjoueur, COLOR_LIGHTBLUE, "Et voila, une voiture comme neuf !");
SetVehiclePos(GetPlayerVehicleID(idjoueur), X, Y, Z);
idjoueur = 0;
return 1;
}
Merci
-
tu te sert de la mauvaise variable,
emploi uniquement la variable du joueur: playerid
if(strcmp("/carrosserie",cmdtext, true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
GetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z);
SetVehiclePos(GetPlayerVehicleID(playerid), -1420.4519,2585.2080,55.5465);
SetTimerEx("paynspray", 5000, false,"i",playerid);
}
else
{
SendClientMessage(playerid, COLOR_RED, "Tu n'es pas dans une voiture !");
}
return 1;
}public paynspray(playerid)
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Et voila, une voiture comme neuf !");
SetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z);
return 1;
}
la façon dont tu avais l'air de vouloir t'en servir ( je met une variable à la bonne valeur et espère qu'elle le sera toujours lorsque je sortirai le joueur de là ^^) avait deux problèmes:
- la variable dont tu te sert n'était pas initialisée, du moins pas dans le code que tu as donné,
- Si un second joueur veut réparer sont véhicule au même moment, seul l'un des deux sera sorti du pay'n'sray
++Sim++
-
J'avais déjà mit avec playerid, c'etait pareil, c'est pour cela que j'avais essayer idjoueur