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

Titre: [Resolu]Ereur Commande Crever peneu
Posté 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
Code: (pawn) [Sélectionner]
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
Citer
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
Titre: Re : Ereur Commande Crever peneu
Posté par: Watash le 04 Mai 2010, 07:47:50
Je ne m'y connais plus trop en script, mais a mon avis, on dit pneus, pas peneus. C'est peut-être ton erreur ;)
Titre: Re : Ereur Commande Crever peneu
Posté par: Ssk le 04 Mai 2010, 07:53:40
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 ^^
Titre: Re : Ereur Commande Crever peneu
Posté par: Street le 04 Mai 2010, 08:04:46
Merci mais c pas mon probléme la

le probléme c sa

Citer
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.
Titre: Re : Ereur Commande Crever peneu
Posté par: Hip-hop le 04 Mai 2010, 08:45:38
Ta pas les derniere Include 0.3a R7
Titre: Re : Ereur Commande Crever peneu
Posté par: Syg le 04 Mai 2010, 10:02:26
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





Titre: Re : Ereur Commande Crever peneu
Posté par: Ssk le 04 Mai 2010, 12:46:10
Je préfère avec les | ^^


((0) | (0) << 2 | (0) << 4 || (0) << 8) // enfin si je m'en souviens bien ^^
Titre: Re : Ereur Commande Crever peneu
Posté par: scott1 le 04 Mai 2010, 13:51:56
Il faut que tu télécharge les include de la V0.3R7
Titre: Re : Ereur Commande Crever peneu
Posté par: Street le 05 Mai 2010, 04:46:48
Merci beaucoup

Jessaye tout sa et je vous tien au courant

Double post
Sa marche comme sur des roulette merci beaucoup!