[Ajuda] Sistema de casa (venda)
#1

Quando й feito o comando, a casa vendida continua comprada e cria outro нcone de compra, assim quando compra denovo a casa, o servidor cai...
Alguйm (se entender o cуdigo, rs.) pode me ajudar ?

Stock de Criar casa:
pawn Code:
stock CreateHouse(casaid, Float:Pickupx, Float:Pickupy, Float:Pickupz, Float:interiorX, Float:interiorY, Float:interiorZ, Interior, cVenda, cPreco, virtualworld, mapicon)
{
    new casas[256];
    format(casas, sizeof(casas), CASAS, casaid);
    if(!dini_Exists(casas))
    {
        dini_Create(casas);
        CasaInfo[casaid][Numero] = casaid;
        format(CasaInfo[casaid][Proprietario], 64, "Ninguem");
        dini_Set(casas, "Proprietario", "Ninguem");
        format(CasaInfo[casaid][Morador], 64, "Ninguem");
        dini_Set(casas, "Morador", "Ninguem");
        format(CasaInfo[casaid][Login], 80, "(00/00/0000)");
        dini_Set(casas, "Login", "(00/00/0000)");
        format(CasaInfo[casaid][Mensagem], 64, "Nada");
        dini_Set(casas, "Horario", "00:00:00");
        format(CasaInfo[casaid][Horario], 64, "00:00:00");
        dini_Set(casas, "Mensagem", "Nada");
        CasaInfo[casaid][PickupX] = Pickupx;
        CasaInfo[casaid][PickupY] = Pickupy;
        CasaInfo[casaid][PickupZ] = Pickupz;
        CasaInfo[casaid][InteriorX] = interiorX;
        CasaInfo[casaid][InteriorY] = interiorY;
        CasaInfo[casaid][InteriorZ] = interiorZ;
        CasaInfo[casaid][InteriorID] = Interior;
        CasaInfo[casaid][Venda] = cVenda;
        CasaInfo[casaid][Preco] = cPreco;
        CasaInfo[casaid][VirtualWorld] = virtualworld;
        CasaInfo[casaid][Status] = 0;
        CasaInfo[casaid][MapIcon] = mapicon;
        dini_IntSet(casas, "Numero", casaid);
        dini_FloatSet(casas, "InteriorX", interiorX);
        dini_FloatSet(casas, "InteriorY", interiorY);
        dini_FloatSet(casas, "InteriorZ", interiorZ);
        dini_IntSet(casas, "Interior", Interior);
        dini_IntSet(casas, "Venda", cVenda);
        dini_IntSet(casas, "Valor", cPreco);
        dini_IntSet(casas, "VirtualWorld", virtualworld);
        dini_IntSet(casas, "Dono", 0);
        dini_IntSet(casas, "Status", 0);
        dini_IntSet(casas, "MapIcon", mapicon);
        dini_FloatSet(casas, "X", Pickupx);
        dini_FloatSet(casas, "Y", Pickupy);
        dini_FloatSet(casas, "Z", Pickupz);
    }
    else
    {
        format(CasaInfo[casaid][Proprietario], 64, dini_Get(casas, "Proprietario"));
        format(CasaInfo[casaid][Morador], 64, dini_Get(casas, "Morador"));
        format(CasaInfo[casaid][Mensagem], 64, dini_Get(casas, "Mensagem"));
        format(CasaInfo[casaid][Horario], 64, dini_Get(casas, "Horario"));
        format(CasaInfo[casaid][Login], 80, dini_Get(casas, "Login"));
        CasaInfo[casaid][Numero] = dini_Int(casas, "Numero");
        CasaInfo[casaid][Venda] = dini_Int(casas, "Venda");
        CasaInfo[casaid][Preco] = dini_Int(casas, "Valor");
        CasaInfo[casaid][Status] = dini_Int(casas, "Status");
        CasaInfo[casaid][InteriorID] = dini_Int(casas, "Interior");
        CasaInfo[casaid][InteriorX] = dini_Float(casas, "InteriorX");
        CasaInfo[casaid][InteriorY] = dini_Float(casas, "InteriorY");
        CasaInfo[casaid][InteriorZ] = dini_Float(casas, "InteriorZ");
        CasaInfo[casaid][VirtualWorld] = dini_Int(casas, "VirtualWorld");
        CasaInfo[casaid][MapIcon] = dini_Int(casas, "MapIcon");
        dini_FloatSet(casas, "X", Pickupx);
        dini_FloatSet(casas, "Y", Pickupy);
        dini_FloatSet(casas, "Z", Pickupz);
    }
    new str[128];
    CasaInfo[casaid][PickupX] = Pickupx;
    CasaInfo[casaid][PickupY] = Pickupy;
    CasaInfo[casaid][PickupZ] = Pickupz;
    if(dini_Int(casas, "Dono") == 0)
    {
        CasaPickup[casaid] = CreatePickup(1273, 23, Pickupx, Pickupy, Pickupz);
        format(str, sizeof(str), "Casa nъmero %d", dini_Int(casas, "Numero"));
        Create3DTextLabel(str, COR_BRANCO, Pickupx, Pickupy, Pickupz+0.75, 20.0, 0, 1);
    }
    if(dini_Int(casas, "Dono") == 1)
    {
        CasaPickup[casaid] = CreatePickup(1272, 23, Pickupx, Pickupy, Pickupz);
        format(str, sizeof(str), "Casa nъmero %d", dini_Int(casas, "Numero"));
        Create3DTextLabel(str, COR_BRANCO, Pickupx, Pickupy, Pickupz+0.75, 20.0, 0, 1);
    }
}
Нcones existentes:
pawn Code:
// Sistema de casas
    CreateHouse(0, 2495.3457, -1690.2333, 14.7656, 2496.0549, -1695.1749, 1014.7422, 3, 100000, 100000, 0, 100);
    CreateHouse(1, -684.6587, 939.5399, 13.6328, 83.0864, 1324.3145, 1083.8594, 9, 200000, 200000, 1, 101);
    CreateHouse(2, 1496.9918,-689.0601,95.1433, 24.0932, 1341.7411, 1084.3750, 10, 220000, 220000, 2, 102);
    CreateHouse(3, 1331.7549,-632.3055,109.1349, 2237.4912, -1080.2360, 1049.0234, 2, 200000, 200000, 3, 103);
    CreateHouse(4, 2522.3486,-1679.3895,15.4970, -68.5478, 1353.0201, 1080.2109, 6, 70000, 70000, 4, 104);
    CreateHouse(5, 2523.7576,-1658.6222,15.4935, 245.2656, 305.0070, 999.1484, 1, 65000, 65000, 5, 105);
    CreateHouse(6, 2513.2834,-1650.7628,14.3557, 224.3667, 1240.1123, 1082.1406, 2, 63000, 63000, 6, 106);
    CreateHouse(7, 2498.4519,-1643.6329,13.7826, 224.4046, 1239.8674, 1082.1406, 2, 60000, 60000, 7, 107);
    CreateHouse(8, 2486.4622,-1645.8593,14.0703, -42.5853, 1406.8448, 1084.4297, 8, 52000, 52000, 8, 108);
    CreateHouse(9, 2451.9099,-1642.5935,13.7357, -68.5145, 1353.8485, 1080.2109, 6, 61000, 61000, 9, 109);
    CreateHouse(10, 2066.1677,-1703.4937,14.1484, 261.2870, 1284.3062, 1080.2578, 4, 70000, 70000, 10, 110);
    CreateHouse(11, 2166.6616,-1671.9874,15.0746, 294.9558, 1472.2637, 1080.2578, 15, 72000, 72000, 11, 111);
    CreateHouse(12, 1981.5452,-1718.9211,17.0303, 261.2870, 1284.3062, 1080.2578, 4, 100000, 100000, 12, 112);
    CreateHouse(13, 1410.9694,-921.5505,38.4219, 294.9558, 1472.2637, 1080.2578, 15, 130000, 130000, 13, 113);
    CreateHouse(14, 1534.4147, -800.1628, 72.8495, -68.5478, 1353.0201, 1080.2109, 6, 110000, 110000, 14, 114);
    CreateHouse(15, 1526.9944,-773.4356,80.5474, -42.5196, 1405.5847, 1084.4297, 8, 110000, 110000, 15, 115);
    CreateHouse(16, 1442.6061, -629.5621, 95.7186, 221.7965, 1142.2682, 1082.6094, 4, 140000, 140000, 16, 116);
    CreateHouse(17, 1093.8215, -806.4712, 107.4194, 82.9644, 1323.7074, 1083.8594, 9, 160000, 160000, 17, 117);
    CreateHouse(18, 1111.5037,-742.0931,100.1329, 22.6554, 1405.0906, 1084.4297, 5, 150000, 150000, 18, 118);
    CreateHouse(19, 1094.8571,-646.5363,113.6484, 140.3679, 1367.8837, 1083.8621, 5, 200000, 200000, 19, 119);
    CreateHouse(20, 1045.0305, -642.0552, 120.1172, 2317.8652, -1025.5160, 1050.2109, 9, 190000, 190000, 20, 120);
    CreateHouse(21, 979.8599,-676.2302,121.9763, 234.0908,1065.5974, 1084.2095, 6, 230000, 230000, 21, 121);
    CreateHouse(22, 945.7899,-709.7903,122.2109, 260.7421, 1238.2261, 1084.2578, 9, 100000, 100000, 22, 122);
    CreateHouse(23, 899.1617,-677.9343,116.8904, 2237.4912, -1080.2360, 1049.0234, 2, 140000, 140000, 23, 123);
    CreateHouse(24, 849.1844,-744.4493,94.9693, -262.5375, 1456.7291, 1084.3672, 4, 100000, 100000, 24, 124);
    CreateHouse(25, 890.5619,-781.4048,101.2954, 446.9973, 1398.4043, 1084.3120, 2, 115000, 115000, 25, 125);
    CreateHouse(26, 497.5117,-1093.6302,82.3592, 2365.0583, -1134.3385, 1050.8750, 8, 140000, 140000, 26, 126);
    CreateHouse(27, 299.9188,-1154.8226,81.1709, 228.9857, 1114.1838, 1080.9922, 5, 250000, 250000, 27, 127);
    CreateHouse(28, 252.1526,-1221.1609,75.6725, 82.9644, 1323.7074, 1083.8594, 9, 240000, 240000, 28, 128);
    CreateHouse(29, 252.7280,-1269.3767,74.0825, 235.3623, 1188.6174, 1080.2578, 3, 230000, 230000, 29, 129);
    CreateHouse(30, 255.1223, -1366.6436, 53.1094, 294.9558, 1472.2637, 1080.2578, 15, 150000, 150000, 30, 130);
    CreateHouse(31, 298.3224, -1337.7108, 53.4415, 2194.9250, -1204.2581, 1049.0234, 6, 130000, 130000, 31, 131);
    CreateHouse(32, 190.2035, -1308.1805, 70.2614, 226.2988, 1114.4376, 1080.9929, 5, 100000, 100000, 32, 132);
    CreateHouse(33, 726.9389, -1276.2460, 13.6484, 140.3546, 1365.9296, 1083.8594, 5, 500000, 500000, 33, 133);
    CreateHouse(34, 739.0493, -1417.6359, 13.5234, 759.3586, 1442.5961, 1102.7, 6, 100000, 100000, 34, 134);
    CreateHouse(35, 2459.4136,-1690.1783,13.5453, 2466.0623, -1698.2185, 1013.5078, 2, 100000, 100000, 35, 135);
    CreateHouse(36, 1298.5170,-799.4630,84.1406, 1262.4103, -785.4581, 1091.9063, 5, 1000000, 1000000, 36, 136); // Maddog
    CreateHouse(37, -81.1509, 83.0017, 3.1172, -68.5478, 1353.0201, 1080.2109, 6, 120000, 120000, 37, 137);
    CreateHouse(38, -902.7215, 2681.5513, 42.3703, 513.882507, -11.269994, 1001.565307, 3, 350000, 350000, 38, 138);
    CreateHouse(39, 1854.0656, -1914.9202, 15.2568, -68.5478, 1353.0201, 1080.2109, 6, 15000, 15000, 39, 139);
    CreateHouse(40, 1872.2916, -1912.5028, 15.2568, -68.5478, 1353.0201, 1080.2109, 6, 15000, 15000, 40, 140);
    CreateHouse(41, 1891.9188, -1915.1726, 15.2568, -68.5478, 1353.0201, 1080.2109, 6, 15000, 15000, 41, 141);
    CreateHouse(42, 1938.1080, -1911.3516, 15.2568, -68.5478, 1353.0201, 1080.2109, 6, 10000, 10000, 42, 142);
    CreateHouse(43, 1913.5016, -1912.3480, 15.2568, -68.5478, 1353.0201, 1080.2109, 6, 15000, 15000, 43, 143);
    CreateHouse(44, 1123.9729, -2036.9758, 69.8855, 140.3546, 1365.9296, 1083.8594, 5, 1000000, 1000000, 44, 144);
    CreateHouse(45, 1851.8610,-2135.4043,15.3882, -68.5478, 1353.0201, 1080.2109, 6, 30000, 30000, 45, 145);
    CreateHouse(46, 1872.4960,-2133.5771,15.4820, -68.5478, 1353.0201, 1080.2109, 6, 30000, 30000, 46, 146);
    CreateHouse(47, 1894.2294,-2133.6287,15.4663, -68.5478, 1353.0201, 1080.2109, 6, 30000, 30000, 47, 147);
    CreateHouse(48, 693.5538,-1705.8082,3.8195, 83.0864, 1324.3145, 1083.8594, 9, 180000, 180000, 48, 148);
    CreateHouse(49, 1804.1057,-2124.2520,13.9424, -42.3619,1406.2201,1084.4297, 8, 40000, 40000, 49, 149);
    CreateHouse(50, 1457.0040,2773.4961,10.8203, -42.3619,1406.2201,1084.4297, 8, 1000000, 1000000, 50, 149); //
Comando de Venda:
pawn Code:
else if(strcmp(tmp, "vender", true) == 0)
        {
            for(new c; c < MAX_CASAS; c++)
            {
                if(IsPlayerInRangeOfPoint(playerid, 3, CasaInfo[c][PickupX], CasaInfo[c][PickupY], CasaInfo[c][PickupZ]))
                {
                    new str[128], conta[128], casas[128], casauser[128], proprietario[64], morador[256], mrd[128], exmorador[128];
                    format(conta, sizeof(conta), DIRETORIO, nome(playerid));
                    format(casas, sizeof(casas), CASAS, CasaInfo[c][Numero]);
                    morador = dini_Get(casas, "Morador");
                    format(casauser, sizeof(casauser), "contas/casas/usuarios/%s.ini", nome(playerid));
                    format(exmorador, sizeof(exmorador), "contas/casas/usuarios/%s.ini", morador);
                    format(mrd, sizeof(mrd), "contas/usuarios/%s.ini", morador);
                    GetPlayerName(playerid, proprietario, 64);
                    if(strcmp(CasaInfo[c][Proprietario], proprietario, false)) return SendClientMessage(playerid, COR_VERMELHO, "(ERRO) Vocк nгo й dono dessa casa.");
                    format(str, sizeof(str), "(CASAS) O jogador %s vendeu a casa nъmero '%d'.", nome(playerid), CasaInfo[c][Numero]);
                    SendClientMessageToAll(0xE0EEEEAA, str);
                    GivePlayerMoneyEx(playerid, CasaInfo[c][Preco]);
                    CasaInfo[c][Status] = 1;
                    CasaPickup[c] = CreatePickup(1273, 23, CasaInfo[c][PickupX], CasaInfo[c][PickupY], CasaInfo[c][PickupZ]);
                    dini_Set(conta, "Casa", "0");
                    dini_Set(mrd, "Morando", "0");
                    dini_Set(casas, "Dono", "0");
                    dini_Set(casas, "Morando", "0");
                    dini_Unset(conta, "CasaID");
                    dini_Unset(casas, "Shadow");
                    dini_Unset(casas, "Mega");
                    dini_Unset(casas, "Rimshine");
                    dini_Unset(casas, "Wires");
                    dini_Unset(casas, "Classic");
                    dini_Unset(casas, "Twist");
                    dini_Unset(casas, "Cutter");
                    dini_Unset(casas, "Switch");
                    dini_Unset(casas, "Import");
                    dini_Unset(casas, "Dollar");
                    dini_Unset(casas, "Atomic");
                    dini_Unset(casas, "Nitro");
                    dini_Unset(casas, "Hydraulics");
                    format(CasaInfo[c][Proprietario], 64, "Ninguem");
                    dini_Set(casas, "Proprietario", "Ninguem");
                    format(CasaInfo[c][Morador], 64, "Ninguem");
                    dini_Set(casas, "Morador", "Ninguem");
                    format(CasaInfo[c][Login], 80, "(00/00/0000)");
                    dini_Set(casas, "Login", "(00/00/0000)");
                    format(CasaInfo[c][Mensagem], 64, "Nada");
                    dini_Set(casas, "Horario", "00:00:00");
                    format(CasaInfo[c][Horario], 64, "00:00:00");
                    dini_Set(casas, "Mensagem", "Nada");
                    CasaInfo[c][Status] = 0;
                    dini_Set(casas, "Status", "0");
                    dini_Remove(casauser);
                    if(dini_Exists(exmorador)) dini_Remove(exmorador);
                    return 1;
                }
            }
            return 1;
        }
Obs: Tem que reiniciar o servidor para os нcones desbugarem...
Reply
#2

voce nao colocou um id para poder apagar depois os Textos 3D, sobre o servidor cair veja se voce tem a pasta onde salva as casas em scriptfiles.
Reply
#3

Nгo entendi Axll, pode me mostrar como faz, ou explicar melhor ? Obrigado.
Reply
#4

Alguйm pode me ajudar a bloquer o vender para somente o dono da casa ?
Ou, se ela tiver a venda, vocк nгo consegue vender...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)