Bonjour ! Je vais une fois de plus vous importuner avec mes problèmes !
Donc je suis en train de faire un système de vêtements avec les objets ajoutés lors des précédentes versions de sa-mp, et pour ça, je fais un magasin !
Lors de l'achat d'un article je sauvegarde l'id de l'objet voulu, et le nom que j'ai attribué à l'article (Pour pouvoir le proposer dans un menu plus tard)
Alors le problème réside dans le nom de l'objet.
Tout d'abord j'ai créé l'énumération et la variable qui va avec pour stocker les informations sur les 5 différents types d'habits.
enum habits
{
teteid,
tetenom[30],
visageid,
visagenom[30],
montreid,
montrenom[30],
dosid,
dosnom[30],
mainid,
mainnom[30]
}
new vetements[MAX_PLAYERS][habits];
Comme vous pouvez le constater, le nom d'un article est de 29 caractères plus la case vide, le plus long nom est de 26 caractères, mais j'ai élargi ! (Faut voir grand dans la vie ! Quitte à voyager dans le temps, autant le faire dans une voiture qui ait de la gueule !)
Donc, quand on achète tel ou tel article, le nom était directement mis dans la variable correspondante.
Au début j'ai fais ça de cette manière :
vetements[playerid][tetenom] = "Beret rouge";
J'ai eu l'agréable surprise d'avoir 236 987 546 erreurs (environ).
Mais réalistement, 26 fois
error 047: array sizes do not match, or destination array is too small
Alors oui, j'ai directement pensé à utiliser le sizeof pour plus avoir ça.
format(vetements[playerid][tetenom], sizeof(vetements[playerid][tetenom]),"Beret noir");
BIM !
error 001: expected token: "]", but found "-identifier-"
warning 215: expression has no effect
error 001: expected token: ";", but found "]"
error 029: invalid expression, assumed zero
fatal error 107: too many error messages on one line
Alors j'ai tenté une dernière approche...
new string[30];
vetements[playerid][teteid] = 18921;
format(string, sizeof(string), "Beret noir");
vetements[playerid][tetenom] = string;
Là, ça a marché, plus d'erreurs à cette ligne là, mais alors, j'ai remplacé toutes les lignes par cela, BIM le compilateur crash ! Et là, je sais pas !
J'ai pensé à la fameuse accolade manquante, mais j'ai même vérifié avec Missing Bracket Finder, et rien !
Vous avez des idées ? :s
Merci d'avance aux monsieurs qui répondront !