GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Street le 04 Mai 2010, 07:16:03
-
Bonjour Je cherche a faire un commande pour crever les peneus Le probléme C que je croise une erreur
Au Quel je ne trouve pas de solution
voici la commande
if(strcmp(cmdtext, "/peneu", true) == 0)
{
GetVehicleDamageStatus(GetPlayerVehicleID(playerid), panels, doors, lights, tires);
UpdateVehicleDamageStatus(vehicleid, panels, doors, lights, 15); //Setting tires to 15 will pop them all
return 1;
}
Et Voici l'erreur
C:\Users\sof203\Desktop\recupe\gamemodes\LSTDM.pwn(4151) : error 017: undefined symbol "GetVehicleDamageStatus"
C:\Users\sof203\Desktop\recupe\gamemodes\LSTDM.pwn(4152) : error 017: undefined symbol "UpdateVehicleDamageStatus"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
2 Errors.
En Esperant Vous avoir Fournis Le maximum Dinformation merci Bonne Journeé a vous
-
Je ne m'y connais plus trop en script, mais a mon avis, on dit pneus, pas peneus. C'est peut-être ton erreur ;)
-
UpdateVehicleDamageStatus(vehicleid, panels, doors, lights, 15); //Setting tires to 15 will pop them all
met le 15 à 0
Vu que si la valeur est à 1 la roue est bonne, si à 0 la roue est crevée ^^
-
Merci mais c pas mon probléme la
le probléme c sa
C:\Users\sof203\Desktop\recupe\gamemodes\LSTDM.pwn(4151) : error 017: undefined symbol "GetVehicleDamageStatus"
C:\Users\sof203\Desktop\recupe\gamemodes\LSTDM.pwn(4152) : error 017: undefined symbol "UpdateVehicleDamageStatus"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
2 Errors.
-
Ta pas les derniere Include 0.3a R7
-
Effectivement, ce sont de nouvelles fonctions de la version 0.3 donc tes includes ne sont pas à jour.
Maintenant, petite leçon sur les pneus (puisque je vois que sazuke n'a pas compris comment ça marche) :
Le dernier paramètre de la fonction UpdateVehicleDamageStatus est un champ de 4 bits.
Octet = 8 bits = 00000000
0 = pneu arrière droit
0 = pneu avant droit
0 = pneu arrière gauche
0 = pneu avant gauche
Avant du véhicule
0-0
| |
0-0
Arrière du véhicule
Lorsqu'un des bits correpondant à un pneu est à 1, le pneu est crevé, si le bit est à 0, le pneu est normal.
Comme il n'est pas facile d'accéder directement aux bits d'un octet, voici une façon de faire :
#define PNEU_ARR_DROIT 1
#define PNEU_AV_DROIT 2
#define PNEU_ARR_GAUCHE 4
#define PNEU_AV_GAUCHE 8
Ensuite, il suffit d'additionner les defines ci dessus pour crever les pneus désirés.
Ex : Je veux crever le pneu avant droit et le pneu arrière gauche :
UpdateVehicleDamageStatus(vehicleid, panels, doors, lights, PNEU_AV_DROIT+PNEU_ARR_GAUCHE);
On remarquera aussi que PNEU_ARR_DROIT+PNEU_AV_DROIT+PNEU_ARR_GAUCHE+PNEU_AV_GAUCHE = 15.
Donc 15 est bien la valeur qu'il faut mettre pour crever tous les pneus.
NB : Dans l'absolu, il faudrait utiliser l'opérateur | plutôt que l'addition mais si on fait attention ça revient au même.
++
Syg
-
Je préfère avec les | ^^
((0) | (0) << 2 | (0) << 4 || (0) << 8) // enfin si je m'en souviens bien ^^
-
Il faut que tu télécharge les include de la V0.3R7
-
Merci beaucoup
Jessaye tout sa et je vous tien au courant
Double post
Sa marche comme sur des roulette merci beaucoup!