GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: ApocKalipsS le 18 Mai 2009, 21:28:25
-
Bonjour,
J'aimerais savoir comment faire pour qu'une variable puisse être égal à des chiffres et des lettres, exemple :
Variable(playerid] = ABC123;
Et aussi comment faire si :
Truc = ABC123;
SendClientmessage(playerid, COLOR, "Voici la varible : %???"truc);
Je remplace quoi par les points d'interogation ?
Merci de me répondre !
-
Salut,
tu dois savoir qu'une lettre, dans les array en pawn, correspond à un chiffre, de plus la ligne que tu as écrite truc = ABC123 correspond a un nombre en hexadécimal, il ne contiendra pas les caractères ABC123
donc si tu veut un texte:
new truc[] = "ABC123";
NB. Tu n'as pas besoin d'écrire la taille de l'array si tu en déclare la valeur ainsi, par contre si tu n'en détermine pas le contenu dès sa création, tu seras obligé d'y inscrire une taille (taille générale conseillé dans sa-mp : 128)
pour formater un string , tu devras utiliser la lettre s donc %s mais ta variable se doit d'être un string sinon d'étrange résultats apparaitront (peut-être un crash du serveur)
je suppose que tu aimerais savoir toutes les expressions de formatage:ICI (http://wiki.sa-mp.com/wiki/Format)
++Sim++
-
Beh comme te l as expliquer sim tu declare t as variable
mais toi tu veut faire avec playerid donc
Truc[][MAX_PLAYERS] = "Salut";
ensuite si tu veut le modif c' est tout simple
soit tu passe par un format
format(Truc[playerid],sizeof(Truc[playerid]),"Salut mon ami ca va ??? tu a quel age, ah ! tu as %d",Var dage ici);
en esperant que je ne me suis pas tromper ici =D
ou bien comme ca
Truc[playerid] = "Yo Yo tire toujours la chasse d' eau ";
-
Ok d'accord, donc Sasuke je peux faire comme ceci :
Truc[][MAX_PLAYERS] = "70 ans";
format(Truc[playerid],sizeof(Truc[playerid]),"Salut mon ami ca va ??? tu a quel age, ah ! tu as %d",truc);
Donc interger le 70 et le ans ?
Mon autre problème est que j'ai déjà une variable en lettre dans un fichier .ini, quand je le save c'ets comme ca :
strmid(truclettre[idx][truclettre1], arrCoords[1], 0, strlen(arrCoords[1]), 255);
Si je veux mettre une variable en chiffre et en lettre je fais pareil ?
-
new Truc[][MAX_PLAYERS] = "70 ans"; // tu declare la variable au debut tout les joueur on 70 ans
Truc[][playerid] = "30 ans";// ici le joueur playerid a 30
new string[128];
format(string,sizeof(string),"Salut mon ami ca va ??? tu a quel age, ah ! tu as %d",truc[playerid]);// ici on dit que le string string portera ce msg
SendClientmessage(player,couleur en hexa,string);// ici on envoye le msg precedement formater =D
en esperant que tu es compris pck j explique tréééééés mal
-
Ok, si si, j'ai compris, mais moi, mes
new Truc[][MAX_PLAYERS] = "70 ans";
sont dans un fichier .ini, donc ca me met par exemple quand je l'ouvre : "18, 52, Hello, 70 ans"
et pour que j'affiche le message "18", je fais comme ceci, les autre scripts sont dans le GF.
SendMessage("%d", TrucInfo[truc][truc1]);
Je dois faire pareil pour le 70 ans ?
Et comment faire pour changer le 70 ans de Truc dans une commande ?
Double post
( Désolé double post )
Voilà mon script :
new Truc[MAX_PLAYERS] = "V05350W";
et
format(string,sizeof(string),"* Vous avez changé la plaque d'immatriculation en : %d",Truc[playerid]);
SendClientMessage(playerid,COLOR_WHITE,string);
Mais il me dise que je l'ai changé en 86 !
Et aussi, voilà mon SetVehicleNumberPlate :
SetVehicleNumberPlate(carid1,Truc[playerid]);
Il ne marche pas, comment ca se fait ?
-
Ok, si si, j'ai compris, mais moi, mes
new Truc[][MAX_PLAYERS] = "70 ans";
sont dans un fichier .ini, donc ca me met par exemple quand je l'ouvre : "18, 52, Hello, 70 ans"
et pour que j'affiche le message "18", je fais comme ceci, les autre scripts sont dans le GF.
SendMessage("%d", TrucInfo[truc][truc1]);
Je dois faire pareil pour le 70 ans ?
Et comment faire pour changer le 70 ans de Truc dans une commande ?
Double post
( Désolé double post )
Voilà mon script :
new Truc[MAX_PLAYERS] = "V05350W";
et
format(string,sizeof(string),"* Vous avez changé la plaque d'immatriculation en : %d",Truc[playerid]);
SendClientMessage(playerid,COLOR_WHITE,string);
Mais il me dise que je l'ai changé en 86 !
Et aussi, voilà mon SetVehicleNumberPlate :
SetVehicleNumberPlate(carid1,Truc[playerid]);
Il ne marche pas, comment ca se fait ?
En relisant le post ce n'est pas " %d " car ce n'est pas un nombre mais des lettres et des nombre considérer comme un test on utiliser > "%s"
( a non c'est une erreur de sasuke ^^ )
(Mais il y a écdrit plus haut qu'il faut utiliser "%s" )
Aprés, le SetVehicleNumberPlate devrait normalement marcher :/
Non en faite sur le wiki il y a :
Set the vehicle's licence plate. You need to respawn the vehicle afterwards for the changes to take effect.
Donc sa donne ( d'aprés ce que je comprend )
>
Il doit respawn pour prendre effet !
^^
-
-_- je vous avez dit que j ai du faire une erreur, mais je savais pas ou xD merci =D