No crea la casa.
#1

Buenas, estuve haciendo un sistema de casas, pero al momento de crearlas no aparece el 3DTextLabel.
pawn Код:
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))
    {
        Iter_Add(aCasas,i);
        GetPlayerPos(playerid, x, y, z);
        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;
        format(text, sizeof(text), "{01DF01}[Casa en venta]\n\n{FFFFFF}Nivel: {FFFF00}%i\n{FFFFFF}Precio: {FFFF00}%i\n{04B4AE}/Comprar Casa");
        LabelCasa[i] = CreateDynamic3DTextLabel(text,0xFFFFFFFF,InformacionC[i][cX],InformacionC[i][cY],InformacionC[i][cZ]+1.0,20,0);
        PickupCasa[i] = CreateDynamicPickup(1273, 1, InformacionC[i][cX],InformacionC[i][cY],InformacionC[i][cZ], -1, 0, -1, 100.0);
        ActualizarCasa(i);
    }
    else SendClientMessage(playerid, -1, "Necesitas estar conectado para crear una casa");
    return 1;
}
Gracias de antemano.
Reply
#2

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.
Reply
#3

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
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.
Me sirviу muchas gracias.

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;
}
Reply
#4

Proba asн:

pawn Код:
stock SlotCasaLibre()
{
    for(new i; i < MAX_CASAS; i++)
    {
        if(!InformacionC[i][cID])
        {
            return i;
        }
    }
    return -1;
}
Reply
#5

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
Proba asн:

pawn Код:
stock SlotCasaLibre()
{
    for(new i; i < MAX_CASAS; i++)
    {
        if(!InformacionC[i][cID])
        {
            return i;
        }
    }
    return -1;
}
Sigue igual :/
їAlguna otra soluciуn?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)