04.10.2014, 21:15
Quote:
Si se crea, sуlo que estбs indicando que se pege al jugador ID 0, y al posiblemente ser tu ID, se te pega a la cabeza. Borra el ultimo 0 de CreateDynamic3DTextLabel.
|
Ahora surgiу un nuevo problema, todas las casas que creo, se van sustituyendo una a una, en el ID 0.
Es decir, se crea solamente un archivo con el ID 0, y a medida que voy creando una casa nueva, sustituyo la informaciуn actual por la de la nueva casa, no me deja crear mбs de una casa, їalguna ayuda?
pawn Код:
#define MAX_CASAS 500
new PickupCasa[MAX_CASAS];
new Text3D:LabelCasa[MAX_CASAS];
new Iterator:aCasas<MAX_CASAS>;
CMD:crearcasa(playerid, params[])
{
new precio, nivel, text[128];
new Float:x, Float:y, Float:z;
new i = SlotCasaLibre();
if(Informacion[playerid][pAdmin] < 5) return SendClientMessage(playerid, -1, "No eres administrador");
if(sscanf(params,"ii",precio,nivel)) return SendClientMessage(playerid, -1, "/crearcasa (Precio) (Nivel)");
if(i == -1) return SendClientMessage(playerid, -1, "No se pueden crear mбs casas");
if(IsPlayerConnected(playerid))
{
GetPlayerPos(playerid, x, y, z);
Iter_Add(aCasas,i);
InformacionC[i][cID] = i;
InformacionC[i][cPrecio] = precio;
InformacionC[i][cNivel] = nivel;
InformacionC[i][cX] = x;
InformacionC[i][cY] = y;
InformacionC[i][cZ] = z;
InformacionC[i][cIX] = 0.0;
InformacionC[i][cIY] = 0.0;
InformacionC[i][cIZ] = 0.0;
InformacionC[i][cInterior] = 0;
InformacionC[i][cVW] = 0;
InformacionC[i][cComprada] = false;
ActualizarCasa(i);
format(text, sizeof(text), "{01DF01}[Casa en venta]\n\n{FFFFFF}Nivel: {FFFF00}%i\n{FFFFFF}Precio: {FFFF00}%i\n{04B4AE}/comprar casa",InformacionC[i][cNivel],InformacionC[i][cPrecio]);
LabelCasa[i] = CreateDynamic3DTextLabel(text,0xFFFFFFFF,InformacionC[i][cX],InformacionC[i][cY],InformacionC[i][cZ]+1.0,20);
PickupCasa[i] = CreateDynamicPickup(1273, 1, InformacionC[i][cX],InformacionC[i][cY],InformacionC[i][cZ], -1, 0, -1, 100.0);
}
else SendClientMessage(playerid, -1, "Necesitas estar conectado para crear una casa");
return 1;
}
stock CargarCasas()
{
new BArch[22],i;
print("\n\nCargando casas...\n");
while(i < MAX_CASAS)
{
format(BArch,sizeof(BArch),"Casas/%d.ini",i);
if(fexist(BArch))
{
INI_ParseFile(BArch,"CargarCasas_data",.bExtra = true, .extra = i);
Iter_Add(aCasas, i);
printf("Casa ID: %i",InformacionC[i][cID]);
if(InformacionC[i][cComprada])
{
new asd[128];
format(asd, sizeof(asd), "{01DF01}[Propiedad]\n{FFFFFF}Propietario: {FFFF00}%s\n\n{FFFFFF}Preciona '{FFFF00}Y{FFFFFF}' para ingresar",InformacionC[i][cPropietario]);
LabelCasa[i] = CreateDynamic3DTextLabel(asd,0xFFFFFFFF,InformacionC[i][cX],InformacionC[i][cY],InformacionC[i][cZ]+1.0,20,0);
PickupCasa[i] = CreateDynamicPickup(1272, 1, InformacionC[i][cX],InformacionC[i][cY],InformacionC[i][cZ], -1, 0, -1, 100.0);
}
else
{
new text[128];
format(text, sizeof(text), "{01DF01}[Casa en venta]\n\n{FFFFFF}Nivel: {FFFF00}%i\n{FFFFFF}Precio: {FFFF00}%i\n{04B4AE}/comprar casa",InformacionC[i][cNivel],InformacionC[i][cPrecio]);
LabelCasa[i] = CreateDynamic3DTextLabel(text,0xFFFFFFFF,InformacionC[i][cX],InformacionC[i][cY],InformacionC[i][cZ]+1.0,20);
PickupCasa[i] = CreateDynamicPickup(1273, 1, InformacionC[i][cX],InformacionC[i][cY],InformacionC[i][cZ], -1, 0, -1, 100.0);
}
}
i++;
}
return 1;
}
stock ActualizarCasa(i)
{
new BArch[19];
format(BArch,sizeof(BArch),"Casas/%d.ini",i);
new INI:Arch = INI_Open(BArch);
INI_SetTag(Arch,"data");
INI_WriteInt(Arch,"ID",InformacionC[i][cID]);
INI_WriteInt(Arch,"Precio",InformacionC[i][cPrecio]);
INI_WriteInt(Arch,"Nivel",InformacionC[i][cNivel]);
INI_WriteFloat(Arch,"PosX",InformacionC[i][cX]);
INI_WriteFloat(Arch,"PosY",InformacionC[i][cY]);
INI_WriteFloat(Arch,"PosZ",InformacionC[i][cZ]);
INI_WriteFloat(Arch,"IntX",InformacionC[i][cIX]);
INI_WriteFloat(Arch,"IntY",InformacionC[i][cIY]);
INI_WriteFloat(Arch,"IntZ",InformacionC[i][cIZ]);
INI_WriteInt(Arch,"Interior",InformacionC[i][cInterior]);
INI_WriteInt(Arch,"VW",InformacionC[i][cVW]);
INI_WriteBool(Arch,"Comprada",InformacionC[i][cComprada]);
INI_WriteString(Arch,"Propietario",InformacionC[i][cPropietario]);
INI_Close(Arch);
return 1;
}
stock SlotCasaLibre()
{
for(new i; i < MAX_CASAS; i++)
{
if(!strlen(InformacionC[i][cID]))
{
return i;
}
}
return -1;
}