Aleksei_Kowalski

Erreur script

13 messages dans ce sujet

Bonjour quand je compile un gamemode anglais que je voudrais tester mais j'ai sa comme erreur..

(30182) : error 047: array sizes do not match, or destination array is too small    (30224) : error 047: array sizes do not match, or destination array is too small

(30279) : error 047: array sizes do not match, or destination array is too small    (30636) : error 047: array sizes do not match, or destination array is too small
(31028) : error 047: array sizes do not match, or destination array is too small    (32087) : error 047: array sizes do not match, or destination array is too small
(32283) : error 047: array sizes do not match, or destination array is too small    (34233) : error 047: array sizes do not match, or destination array is too small
(47677) : error 047: array sizes do not match, or destination array is too small    (62008) : error 047: array sizes do not match, or destination array is too small
(62110) : error 047: array sizes do not match, or destination array is too small    (62280) : error 047: array sizes do not match, or destination array is too small
(62516) : error 047: array sizes do not match, or destination array is too small    (62718) : error 047: array sizes do not match, or destination array is too small
(63334) : error 047: array sizes do not match, or destination array is too small    (64091) : error 047: array sizes do not match, or destination array is too small
(64292) : error 047: array sizes do not match, or destination array is too small    (64547) : error 047: array sizes do not match, or destination array is too small
(64765) : error 047: array sizes do not match, or destination array is too small    (64911) : error 047: array sizes do not match, or destination array is too small
(65176) : error 047: array sizes do not match, or destination array is too small    (65218) : error 047: array sizes do not match, or destination array is too small
(65450) : error 047: array sizes do not match, or destination array is too small    (66675) : error 047: array sizes do not match, or destination array is too small
(67959) : error 047: array sizes do not match, or destination array is too small    (68060) : error 047: array sizes do not match, or destination array is too small

 

A toutes les lignes c'est ça:

 

 x_nr = strtok(cmdtext, idx);

 

En sachant que j'ai du supprimer :

strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
        index++;
    }

    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
        result[index - offset] = string[index];
        index++;
    }
    result[index - offset] = EOS;
    return result;
}

 

Car j'avais cette erreur la et on ma conseillé de supprimer cette fonction:

 

error 021: symbol already defined: "strtok"

 

Si une personne pourrais me dire comment retirer les erreurs '' array sizes do not match, or destination array is too small ''

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

La taille de x_nr est probablement trop petite à (par défaut il me semble que ça doit être 256 minimum). ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Et comment je pourrais faire pour le régler mec ?

Partager ce message


Lien à poster
Partager sur d’autres sites

À chaque déclaration de cette variable :

new x_nr[64]; // Changer 64 en 256 par exemple

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 11 heures, Jhonny a dit :

La taille de x_nr est probablement trop petite à (par défaut il me semble que ça doit être 256 minimum). ;)

 

256 est bien trop grand, il suffit de regarder la fonction et plus particulièrement sa valeur de renvoie qui est result, un tableau de 20 cells :

Il y a 13 heures, Aleksei_Kowalski a dit :

new result[20];

 

Donc ceci fera l'affaire :

new x_nr[20];

 

Mais j'vais quand même le répéter, favorisez sscanf2 :risihonte:

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai essayé de changer les new x_nr[24] en new x_nr[20] ensuite les [64] en [20] , les [64] en [254] et rien n'y fais..

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 2 heures, Aleksei_Kowalski a dit :

J'ai essayé de changer les new x_nr[24] en new x_nr[20] ensuite les [64] en [20] , les [64] en [254] et rien n'y fais..

Si la fonction est comme tu nous l'as montrée, il est impossible que tu aies cette erreur dans le cas où tu déclares ton tableau à 20 cells.

 

Montre-nous plus de codes.

Partager ce message


Lien à poster
Partager sur d’autres sites

A tu verifier que ton strock suivant soit bin complet ?? 

Partager ce message


Lien à poster
Partager sur d’autres sites
	if(strcmp(cmd, "/use", true) == 0) // by Cuervo
	{
		if(IsPlayerConnected(playerid))
		{
			new x_nr[20];
			x_nr = strtok(cmdtext, idx);
			if(!strlen(x_nr))
			{
			    SendClientMessage(playerid, COLOR_GREY, "USAGE: /use [backpack, briefcase, nothing]");
			    SendClientMessage(playerid, COLOR_GREY, "TIP: \"nothing\" will remove the item from your body!");
				return 1;
			}
			if(strcmp(x_nr,"backpack",true) == 0)
			{


				new x_nr[20];
				x_nr = strtok(cmdtext, idx);
				if(!strlen(x_nr))
				{
				    SendClientMessage(playerid, COLOR_GREY, "USAGE: /atcradio <on/off>");
					return 1;
				}
				if(strcmp(x_nr,"on",true) == 0)
				{
				    PlayerInfo[playerid][pAtcRadio] = 1;
				    SendClientMessage(playerid, COLOR_GREY, "* ATC Radio is now ON");
				    for(new i = 0; i < MAX_PLAYERS; i++)
					{
                                                   
                                                   
	if(strcmp(cmd, "/give", true) == 0) // by Cuervo
	{
	    if(IsPlayerConnected(playerid))
	    {
			new x_nr[20];
			x_nr = strtok(cmdtext, idx);
			if(!strlen(x_nr))
			{
			    SendClientMessage(playerid, COLOR_WHITE, "USAGE: /give [name] [playerid/PartOfName] ([ammount])");
				SendClientMessage(playerid, COLOR_WHITE, "Available names: drugs, gun, vehkey, hirekey, rope");
				return 1;
			}
			if(strcmp(x_nr,"drugs",true) == 0)
			{
			    tmp = strtok(cmdtext, idx);
			    if(!strlen(tmp))
				{
                                                   
                                                  
 
			new x_nr[20];
			x_nr = strtok(cmdtext, idx);
			if(!strlen(x_nr))
			{
			    SendClientMessage(playerid, COLOR_WHITE, "USAGE: /load [name] [ammount]");
				SendClientMessage(playerid, COLOR_WHITE, "Available names: drugs, materials, weapon, weapon2, weapon3, weapon4, weapon5, weapon6");
				return 1;
			}
			if(strcmp(x_nr,"drugs",true) == 0)
			{
                                                   
                                                   
                                                  
 	new x_nr[20];
			x_nr = strtok(cmdtext, idx);
			if(!strlen(x_nr))
			{
			    SendClientMessage(playerid, COLOR_WHITE, "USAGE: /store [name] [amount/ammo]");
				SendClientMessage(playerid, COLOR_WHITE, "Available names: drugs, materials, weapon, weapon2, weapon3, weapon4, weapon5, weapon6");
				return 1;
			}
			if(strcmp(x_nr,"drugs",true) == 0)
			{
                                                   

                                                   
                                                   
  new x_nr[20];
            x_nr = strtok(cmdtext, idx);
			if(!strlen(x_nr))
			{
				SendClientMessage(playerid, COLOR_WHITE, "USAGE: /deletenote [slot(1-5)]");
				return 1;
			}
                                                   
                                                   
                                                
                                                   

Voilà quelque code..

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 2 heures, Aleksei_Kowalski a dit :

if(strcmp(x_nr,"backpack",true) == 0) 

{

    new x_nr[20];

 

Déjà là il y a un soucis, juste avant ce code tu déclares x_nr, tu l'utilises dans strcmp et tu le re-déclares.

En PAWN, tu ne peux pas déclarer un élément qui existe déjà.

Partager ce message


Lien à poster
Partager sur d’autres sites
	if(strcmp(cmd, "/use", true) == 0) // by Cuervo
	{
		if(IsPlayerConnected(playerid))
		{

Eeey, c'est bien connu que les joueurs déconnectés d'un serveur peuvent écrire des commandes dans le tchat comme les joueurs connectés.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Remplace ta fonction strock par celle ci

Citation
strtok(const string[], &index)
{
	new length = strlen(string);
	while ((index < length) && (string[index] <= ' '))
	{
		index++;
	}
 
	new offset = index;
	new result[20];
	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
	{
		result[index - offset] = string[index];
		index++;
	}
	result[index - offset] = EOS;
	return result;
}

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant