23.02.2015, 00:49
Hola, estuve haciendo un sistema de casas pero tengo un problemilla, carga solo las 3 primeras casas, luego ya no las crea.
Aquн les dejo el cуdigo para que puedan verlo:
Desde ya, muchas gracias, hace mбs de una semana que vengo con el mismo problema.
Aquн les dejo el cуdigo para que puedan verlo:
PHP код:
#define MAX_CASAS 200
new PickupCasa[MAX_CASAS];
new Text3D:LabelCasa[MAX_CASAS];
new Iterator:aCasas<MAX_CASAS>;
enum InfoCasas
{
C_DUENO[MAX_PLAYER_NAME],
C_PRECIO,
C_ID,
C_NIVEL,
Float:C_EXT[3],
Float:C_INT[3],
C_INTT,
C_VW,
bool:C_COMPRADA
};
new InformacionC[MAX_CASAS][InfoCasas];
CMD:crearcasa(playerid, params[])
{
if(Informacion[playerid][pAdmin] < 4) return 0;
if(sscanf(params,"ii",params[0],params[1])) return SendClientMessage(playerid, -1, "/CrearCasa [Precio] [Nivel]");
new i = SlotCasaLibre();
new asd[128];
if(i == -1) return SendClientMessage(playerid, COLOR_ROJO,"ЎNo se pueden crear mбs casas!");
GetPlayerPos(playerid, InformacionC[i][C_EXT][0],InformacionC[i][C_EXT][1],InformacionC[i][C_EXT][2]);
InformacionC[i][C_PRECIO] = params[0];
InformacionC[i][C_NIVEL] = params[1];
InformacionC[i][C_ID] = i;
PickupCasa[i] = CreateDynamicPickup(1273, 1, InformacionC[i][C_EXT][0],InformacionC[i][C_EXT][1],InformacionC[i][C_EXT][2], -1, -1, -1, 50.0);
format(asd, sizeof(asd), "{007AF6}[Casa en venta]\n\n{FFFFFF}ID: {007AF6}%i\n{FFFFFF}Precio: {007AF6}%i\n{FFFFFF}Nivel: {007AF6}%i\n{FFFF00}/comprar casa",InformacionC[i][C_ID],InformacionC[i][C_PRECIO],InformacionC[i][C_NIVEL]);
LabelCasa[i] = CreateDynamic3DTextLabel(asd, -1, InformacionC[i][C_EXT][0], InformacionC[i][C_EXT][1], InformacionC[i][C_EXT][2], 20.0);
Iter_Add(aCasas,i);
ActualizarCasa(i);
return 1;
}
stock SlotCasaLibre()
{
for(new i; i < MAX_CASAS; i++)
{
if(!strlen(InformacionC[i][C_DUENO]) && !InformacionC[i][C_EXT][0] && !InformacionC[i][C_EXT][2])
{
return i;
}
}
return -1;
}
stock CargarCasas()
{
new BArch[22],b;
print("\n\t\t Cargando casas...\n");
while(b < MAX_CASAS)
{
format(BArch,sizeof(BArch),"Casas/%d.ini",b);
if(fexist(BArch))
{
INI_ParseFile(BArch,"CargarCasa_%s",.bExtra = true, .extra = b);
printf("Dueсo: %s | Precio: $%d",InformacionC[b][C_DUENO],InformacionC[b][C_PRECIO]);
Iter_Add(aCasas, b);
if(InformacionC[b][C_COMPRADA])
{
new asd[128];
PickupCasa[b] = CreateDynamicPickup(1272, 1, InformacionC[b][C_EXT][0],InformacionC[b][C_EXT][1],InformacionC[b][C_EXT][2], -1, -1, -1, 50.0);
format(asd,sizeof(asd),"{007AF6}[Propiedad]\n\n{FFFFFF}Propietario: {007AF6}%s\n{FFFFFF}ID: {007AF6}%i",InformacionC[b][C_DUENO],InformacionC[b][C_ID]);
LabelCasa[b] = CreateDynamic3DTextLabel(asd, -1, InformacionC[b][C_EXT][0], InformacionC[b][C_EXT][1], InformacionC[b][C_EXT][2], 20.0);
}
else
{
new asd[128];
PickupCasa[b] = CreateDynamicPickup(1273, 1, InformacionC[b][C_EXT][0],InformacionC[b][C_EXT][b],InformacionC[b][C_EXT][2], -1, -1, -1, 50.0);
format(asd, sizeof(asd), "{007AF6}[Casa en venta]\n\n{FFFFFF}ID: {007AF6}%i\n{FFFFFF}Precio: {007AF6}%i\n{FFFFFF}Nivel: {007AF6}%i\n{FFFF00}/comprar casa",InformacionC[b][C_ID],InformacionC[b][C_PRECIO],InformacionC[b][C_NIVEL]);
LabelCasa[b] = CreateDynamic3DTextLabel(asd, -1, InformacionC[b][C_EXT][0], InformacionC[b][C_EXT][1], InformacionC[b][C_EXT][2], 20.0);
}
}
b++;
}
return 1;
}
public CargarCasa_data(i,name[],value[])
{
INI_String("Dueсo",InformacionC[i][C_DUENO],MAX_PLAYER_NAME);
INI_Int("Precio",InformacionC[i][C_PRECIO]);
INI_Int("ID",InformacionC[i][C_ID]);
INI_Int("Nivel",InformacionC[i][C_NIVEL]);
INI_Float("Entrada_x",InformacionC[i][C_EXT][0]);
INI_Float("Entrada_y",InformacionC[i][C_EXT][1]);
INI_Float("Entrada_z",InformacionC[i][C_EXT][2]);
INI_Float("Salida_x",InformacionC[i][C_INT][0]);
INI_Float("Salida_y",InformacionC[i][C_INT][1]);
INI_Float("Salida_z",InformacionC[i][C_INT][2]);
INI_Int("Interior",InformacionC[i][C_INTT]);
INI_Int("VirtualWorld",InformacionC[i][C_VW]);
INI_Bool("Comprada",InformacionC[i][C_COMPRADA]);
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_WriteString(Arch,"Dueсo",InformacionC[i][C_DUENO]);
INI_WriteInt(Arch,"Precio",InformacionC[i][C_PRECIO]);
INI_WriteInt(Arch,"ID",InformacionC[i][C_ID]);
INI_WriteInt(Arch,"Nivel",InformacionC[i][C_NIVEL]);
INI_WriteFloat(Arch,"Entrada_x",InformacionC[i][C_EXT][0]);
INI_WriteFloat(Arch,"Entrada_y",InformacionC[i][C_EXT][1]);
INI_WriteFloat(Arch,"Entrada_z",InformacionC[i][C_EXT][2]);
INI_WriteFloat(Arch,"Salida_x",InformacionC[i][C_INT][0]);
INI_WriteFloat(Arch,"Salida_y",InformacionC[i][C_INT][1]);
INI_WriteFloat(Arch,"Salida_z",InformacionC[i][C_INT][2]);
INI_WriteInt(Arch,"Interior",InformacionC[i][C_INTT]);
INI_WriteInt(Arch,"VirtualWorld",InformacionC[i][C_VW]);
INI_WriteBool(Arch,"Comprada",InformacionC[i][C_COMPRADA]);
INI_Close(Arch);
return 1;
}