[Problema] Con comando
#1

Bueno, estoy creando un comando para crear hqs ingame y me salto estos problemas

Код:
Buenarp.pwn(941) : warning 213: tag mismatch
Buenarp.pwn(941) : error 032: array index out of bounds (variable "PickupHQ")
Buenarp.pwn(941) : error 006: must be assigned to an array
Buenarp.pwn(1872) : warning 213: tag mismatch
Buenarp.pwn(1872) : error 032: array index out of bounds (variable "PickupHQ")
Codigos

Код:
941 : PickupHQ[playerid][Faccion] = Nombrehq;
Код:
1872 : INI_WriteString(Arch,"Faccion",PickupHQ[playerid][Faccion]);
Saludos y espero una soluciуn
Reply
#2

Supongo que lo tenes en un enum, a la variable 'Faccion' agregale esto [51]
osea serнa
Faccion[51]
Serбn 51 caracteres que podrбs usar para el nombre de la facciуn.
Reply
#3

en los enum tengo Faccion[128]
Reply
#4

їCуmo asignas el nombre a la facciуn? osea ahн veo una variable pero tipo їusas un format? їo le metes el nombre directamente? porque osea para asignar el nombre de la variable directamente usarнas
PickupHQ[playerid][Faccion] = "Nombrehq";
Ya que usandolo asн
PickupHQ[playerid][Faccion] = Nombrehq;
PAWN toma como que asignaste un valor, en ves de un mensaje.
Reply
#5

Si "Faccion" es un string, tenes que usar format para llenarla. El "variable = varString" no se puede en Pawn.

pawn Код:
format(tustring, 128, "%s", Nombrehq);
Reply
#6

Entonces como quedaria el codigo ? nombrehq es donde se asigna el parametro , es una variable donde se asigna el texto que despues se inserta en un Text3Dlabel

te dejo todo el codigo que hice hasta ahora, si hay un error corregilo por que nose como solucionarlo ya

Comando /crearhq

Код:
CMD:crearhq(playerid, params[])
{
	if(PlayerInfo[playerid][Admin] != 2013) return SendClientMessage(playerid, -1, "{00CED1}[ERROR]{FFFFFF} Tu no eres administrador!");
	new Float:eX,Float:eY,Float:eZ;
	new pInt, Nombrehq[128], pVw;
	if(sscanf(params, "s[128]ifff",Nombrehq,pInt,pInt,eX,eY,eZ)) return SendClientMessage(playerid,-1,"{FF8C00}Uso:{FFFFFF}/crearhq [Nombre de HQ] [interior] [cordenada x interior] [cordenada y interior] [cordenada z interior]");
	GetPlayerPos(playerid, PickupHQ[playerid][Entrada_x],PickupHQ[playerid][Entrada_y],PickupHQ[playerid][Entrada_z]);
	PickupHQ[playerid][Salida_x] = eX;//almacenamos las cordenadas de los paremetros
   	PickupHQ[playerid][Salida_y] = eY;
   	PickupHQ[playerid][Salida_z] = eZ;
   	PickupHQ[playerid][Faccion] = nombrehq;
   	PickupHQ[playerid][Int] = pInt;
   	PickupHQ[playerid][VW] = pVw+100;
   	pHQ[playerid] = CreatePickup(1239, 1, PickupHQ[playerid][Entrada_x],PickupHQ[playerid][Entrada_y],PickupHQ[playerid][Entrada_z]);
	new str[128];
	format(str, sizeof(str), "{32BF32}%s\nUtiliza /entrar", Nombrehq);
	LabelHq[playerid] = Create3DTextLabel(str,0xFFFFFFFF,PickupHQ[playerid][Entrada_x],PickupHQ[playerid][Entrada_y],PickupHQ[playerid][Entrada_z],20,0);
	ActualizarHQ(playerid);
	return 1;
}
stock para actualizarlas HQ que nose si sirve :

Код:
stock ActualizarHQ(playerid)
{
	new CArch[19];
   format(CArch,sizeof(CArch),"hqs/%d.ini",playerid);//el destino para guardar
   new INI:Arch = INI_Open(CArch);

   INI_SetTag(Arch,"Creadas HQ");//el TAg con el que lo leeremos al archivo (en el ini saldrб [data])

   INI_WriteFloat(Arch,"Entrada_x",PickupHQ[playerid][Entrada_x]);
   INI_WriteFloat(Arch,"Entrada_y",PickupHQ[playerid][Entrada_y]);
   INI_WriteFloat(Arch,"Entrada_z",PickupHQ[playerid][Entrada_z]);

   INI_WriteFloat(Arch,"Salida_x",PickupHQ[playerid][Salida_x]);
   INI_WriteFloat(Arch,"Salida_y",PickupHQ[playerid][Salida_y]);
   INI_WriteFloat(Arch,"Salida_z",PickupHQ[playerid][Salida_z]);

   INI_WriteInt(Arch,"Interior",PickupHQ[playerid][Int]);
   INI_WriteInt(Arch,"VirtualWorld",PickupHQ[playerid][VW]);
   INI_WriteString(Arch,"Faccion",PickupHQ[playerid][Faccion]);
   INI_Close(Arch);//cerramos el archivo
}
Reply
#7

Cambia este:

pawn Код:
PickupHQ[playerid][Faccion] = nombrehq;
Por Este:
pawn Код:
format(PickupHQ[playerid][Faccion], 128, "%s", Nombrehq);
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)