GTAOnline.net

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

Titre: Problème commande réparation totale
Posté par: Jens84 le 23 Octobre 2008, 19:58:38
Bonjour, en voulant créer une commande permettant de réparer entièrement un véhicule plutôt que de ne réparer que son moteur, j'ai fais cette commande qui detruit le véhicule du joueur puis qui en recréé un :

if (strcmp("/rept", cmdtext, true) == 0){
    if (IsPlayerInAnyVehicle(playerid)){
new Float:X, Float:Y, Float:Z, Float:Z_angle;
new vehiculeid;
vehiculeid = GetPlayerVehicleID(playerid);
GetPlayerPos(playerid, X, Y, Z);
GetVehicleZAngle(vehiculeid, Z_angle);
RemovePlayerFromVehicle(playerid);
DestroyVehicle(vehiculeid);
carid = CreateVehicle(vehiculeid,X,Y,Z,Z_angle,-1,-1,60000);
PutPlayerInVehicle(playerid,carid,0);
TogglePlayerControllable(playerid,1);
SetVehicleZAngle(carid, Z_angle);
if(GetPlayerInterior(playerid)) LinkVehicleToInterior(carid,GetPlayerInterior(playerid));
SetVehicleVirtualWorld(carid,GetPlayerVirtualWorld(playerid));
}
else
{
SendClientMessage(playerid, COLOR_RED,"Tu n'es pas dans un véhicule !");
}
return 1;
    }

J'ai compilé mon gamemode et Pawno ne me détecte aucune erreur, cependant lorsque j'utilise ma commande sur le serveur, mon jeu plante (rapport d'erreur windows).
D'où peut venir le problème ? Peut-être est-il lié à la destruction du véhicule, même en ayant éjecté le joueur auparavant ?

PS : Je n'ai pas définis "carid" dans ma commande mais en haut de mon script car je l'utilise pour plusieurs commandes et car j'y ai lié un timer qui detruit les vehicules spawnés par des commandes lorsqu'on les abandonne...
Titre: Re : Problème commande réparation totale
Posté par: MrFredo le 23 Octobre 2008, 20:28:42
Perso j'te conseille de passé par des timer deja avant de detruire le vehicule faut un timer car sinon le joueur n'aura aps le temps de sortir que le vehciule sera detruit (se qui peux par moment rendre le joueur invisible au autre), puis avant de le recree aussi moi j'utilise un timer (plus particulierment des SetTimerEx)
Titre: Re : Problème commande réparation totale
Posté par: S!m le 23 Octobre 2008, 21:11:52
salut,

si tu veut faire la même chose mais de façon toute simple, téléporte le joueur dans un pay n' spray, peut être que le temps sera un peu plus long... mais tu évite le problème du joueur invisible.... et si tu veut, aussi le timer, le joueur appuie sur une touche où fait une commande lorsqu'il veut retourner a sa position.... où un truc du genre..

bonne chance :D

++sim++