[AJUDA]aHouse
#1

No aHouse eu to querendo bota a casa do cj mas naum consigo de geito ninhum eu vo lah coloco certin as localizaзхes mas no jogo num aparece nada.
Reply
#2

uй posta o codigo '-'
Reply
#3

Problemas:
*Eu nгo comsigo comprar as casas a venda
*Nгo consigo colocar mais casas(nгo da erro, mas as casas nгo aparecem)

Код:
#include <a_samp>
#include <dudb>
#include <dini>
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
//----------------------------
//----------------------------
//  Full house script by Antironix!
//  Just don't remove the credits!
//----------------------------
//----------------------------
#define MAX_DISTANCE_TO_PROP 1.5
#define MAX_HOUSES 100
#define MAX_RENTCOST 1000
#define MIN_RENTCOST 500
#define MAX_BUY_CARS 8
#define CAR_DELIVER_TIME 1 //The time that it takes that your car will be delivered. In hours.

//buyable cars
enum CarInfo {CarModel,CarName[24],CarCost};
new Buyable_Cars[MAX_BUY_CARS][CarInfo] =
{  //Modelid, Buy Name, Price
    {411,"Infernus",0},
    {522,"NRG-500",50000},
    {451,"Turismo",50000},
    {541,"Bullet",50000},
    {415,"Cheetah",50000},
    {429,"Banshee",50000},
    {494,"Hotring",50000},
    {556,"Monster",50000}
};
//----------------------------
//----------------------------
#define c_y 0xFFFF00AA
#define c_r 0xAA3333AA
new HousePickup[MAX_HOUSES];
new playerinterior[MAX_PLAYERS]=-1;
new Float:housex, Float:housey, Float:housez;
new housemapicon[MAX_PLAYERS];
new playerworld[MAX_PLAYERS];
new bool:KillVeh[MAX_VEHICLES] = false;
forward rentfee();
forward newcar();
forward KillVehicle(carid);

enum HouseInfo
{
    Name[24],
    Renter[24],
    Rentable,
    Rentcost,
    Cost,
    Sell,
    Interior,
    Virtualworld,
    Locked,
    Float:InteriorX,
    Float:InteriorY,
    Float:InteriorZ,
    Float:iconx,
    Float:icony,
    Float:iconz,
    Rentfee
}
new hInfo[MAX_HOUSES][HouseInfo];

enum HouseCarInfo
{
    HouseCar,
    GotCar,
    Houseid,
    CarModel,
    Float:CarX,
    Float:CarY,
    Float:CarZ,
    Float:CarRotation,
    CarColor1,
    CarColor2,
    Respawn_Delay,
    NewCar
}
new cInfo[MAX_HOUSES][HouseCarInfo];

#define FILTERSCRIPT
#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
    AddHouse(0, 1442.9769,-629.5287,95.7186, 2317.8201,-1024.7500,1050.2109, 0, 0, 9, 0);
    AddHouse(1, 1980.9896,-1719.0171,17.0304, 328.1465, 1478.4457,1084.4375, 0, 0, 15, 0);
    AddHouseCar(1, 429, 1975.3328,-1709.8126,15.9688, 0, 0, 5*60*1000);//5 min respawn delay
    SetTimer("rentfee", 1*60*60*1000, 1);//1 hour
    SetTimer("newcar", CAR_DELIVER_TIME*60*10*1000,1);//1 hour
    return 0;
}

public OnFilterScriptExit()
{
    for(new i=0;i<MAX_HOUSES;i++)
    {
        DestroyPickup(HousePickup[i]);
        DestroyVehicle(cInfo[i][HouseCar]);
    }
    return 0;
}

#else
#endif

public OnPlayerCommandText(playerid, cmdtext[])
{
    dcmd(comprarcasa,3,cmdtext);
    dcmd(vendercasa,4,cmdtext);
    dcmd(entrar,5,cmdtext);
    dcmd(sair,4,cmdtext);
    dcmd(fecharcasa,4,cmdtext);
    dcmd(abrircasa,6,cmdtext);
    dcmd(casackeck,4,cmdtext);
    dcmd(setaluguel,7,cmdtext);
    dcmd(alugar,4,cmdtext);
    dcmd(desalugar,6,cmdtext);
    dcmd(infocasa,5,cmdtext);
    dcmd(casastatus,10,cmdtext);
    dcmd(pegarrendas,7,cmdtext);
    dcmd(pagaraluguel,7,cmdtext);
    dcmd(comprarcarro,8,cmdtext);
    return 0;
}

AddHouse(houseid, Float:iconX, Float:iconY, Float:iconZ, Float:interiorX, Float:interiorY, Float:interiorZ, Costa, Sella, Interiora, virtualworld)
{
    new house[256];
    format(house, sizeof(house), "Houses/houseid%d",houseid);
    if(!dini_Exists(house))
    {
        dini_Create(house);
        format(hInfo[houseid][Name], 24, "ForSale");
        dini_Set(house, "Name", "ForSale");
        format(hInfo[houseid][Renter], 24, "Ninguem");
        dini_Set(house, "Renter", "Ninguem");
        hInfo[houseid][Rentable] = 0;
        dini_IntSet(house, "Rentable", 0);
        hInfo[houseid][Rentcost] = 0;
        dini_IntSet(house, "Rentcost", 0);
        hInfo[houseid][Cost] = Costa;
        dini_IntSet(house, "Cost", Costa);
        hInfo[houseid][Sell] = Sella;
        dini_IntSet(house, "Sell", Sella);
        hInfo[houseid][Interior] = Interiora;
        dini_IntSet(house, "Interior", Interiora);
        dini_IntSet(house, "Virtualworld", virtualworld);
        hInfo[houseid][Virtualworld] = virtualworld;
        hInfo[houseid][Locked] = 1;
        dini_IntSet(house, "Locked", 1);
        hInfo[houseid][InteriorX] = interiorX;
        hInfo[houseid][InteriorY] = interiorY;
        hInfo[houseid][InteriorZ] = interiorZ;
        dini_FloatSet(house, "X", interiorX);
        dini_FloatSet(house, "Y", interiorY);
        dini_FloatSet(house, "Z", interiorZ);
        dini_IntSet(house, "RentPay", 0);
        dini_IntSet(house, "RentGet", 0);
        cInfo[houseid][HouseCar] = 429;
        dini_IntSet(house, "HouseCar", 0);
        cInfo[houseid][CarModel] = 429;
        dini_IntSet(house, "CarModel", 0);
        cInfo[houseid][CarX] = 0;
        cInfo[houseid][CarY] = 0;
        cInfo[houseid][CarZ] = 0;
        cInfo[houseid][CarRotation]=0;
        dini_FloatSet(house, "CarX", 0);
        dini_FloatSet(house, "CarY", 0);
        dini_FloatSet(house, "CarZ", 0);
        dini_FloatSet(house,"CarRotation",0);
        cInfo[houseid][CarColor1] = 0;
        cInfo[houseid][CarColor2] = 0;
        dini_IntSet(house, "CarColor1", 0);
        dini_IntSet(house, "CarColor2", 0);
        cInfo[houseid][GotCar] = 0;
        print("-");
        print("--------------House Created--------------");
        printf("- Houseid: %d", houseid);
        printf("- Buy Cost: %d", Costa);
        printf("- Sell Cost: %d", Sella);
        printf("- Interior: %d", Interiora);
        printf("- VirtualWorld: %d", virtualworld);
        print("-----------------------------------------");
        print("-");
    }
    else
    {
        format(hInfo[houseid][Name], 24, dini_Get(house, "Name"));
        format(hInfo[houseid][Renter], 24, dini_Get(house, "Renter"));
        hInfo[houseid][Rentable] = dini_Int(house, "Rentable");
        hInfo[houseid][Rentcost] = dini_Int(house, "Rentcost");
        hInfo[houseid][Cost] = dini_Int(house, "Cost");
        hInfo[houseid][Sell] = dini_Int(house, "Sell");
        hInfo[houseid][Interior] = dini_Int(house, "Interior");
        hInfo[houseid][Locked] = dini_Int(house, "Locked");
        hInfo[houseid][InteriorX] = dini_Float(house, "X");
        hInfo[houseid][InteriorY] = dini_Float(house, "Y");
        hInfo[houseid][InteriorZ] = dini_Float(house, "Z");
        hInfo[houseid][Virtualworld] = dini_Int(house, "Virtualworld");
    }
    hInfo[houseid][iconx]=iconX;
    hInfo[houseid][icony]=iconY;
    hInfo[houseid][iconz]=iconZ;
    format(house, sizeof(house), "Houses/houseid%d",houseid);
    if(strcmp(hInfo[houseid][Name],"ForSale",true)==0)
    {
        HousePickup[houseid] = CreatePickup(1273, 23, iconX, iconY, iconZ);//not bought
    }
    else
    {
        HousePickup[houseid] = CreatePickup(1272,23, iconX, iconY, iconZ);//bought
    }
}

AddHouseCar(houseid, modelid, Float:Carx, Float:Cary, Float:Carz, CarRot, color1, color2, respawn_delay)
{
    new house[256];
    format(house, sizeof(house), "Houses/houseid%d",houseid);
    if(dini_Exists(house))
    {
        cInfo[houseid][GotCar] = 1;
        if(dini_Int(house, "CarModel")==0)
        {
            dini_IntSet(house, "CarModel", modelid);
            cInfo[houseid][CarModel] = modelid;
            cInfo[houseid][CarX] = Carx;
            cInfo[houseid][CarY] = Cary;
            cInfo[houseid][CarZ] = Carz;
            cInfo[houseid][CarRotation] = CarRot;
            dini_FloatSet(house, "CarX", Carx);
            dini_FloatSet(house, "CarY", Cary);
            dini_FloatSet(house, "CarZ", Carz);
            dini_FloatSet(house, "CarRotation", CarRot);
            cInfo[houseid][CarColor1] = color1;
            cInfo[houseid][CarColor2] = color2;
            dini_IntSet(house, "CarColor1", color1);
            dini_IntSet(house, "CarColor2", color2);
            dini_IntSet(house, "Respawn_Delay", respawn_delay);
            cInfo[houseid][Respawn_Delay] = respawn_delay;
            cInfo[houseid][HouseCar] = CreateVehicle(cInfo[houseid][CarModel], Carx, Cary, Carz, CarRot, color1, color2, respawn_delay);
            print("-");
            print("--------------Car Created--------------");
            printf("- Car Houseid: %d", houseid);
            printf("- Modelid: %d", modelid);
            printf("- Color 1: %d", color1);
            printf("- Color 2: %d", color2);
            printf("- Respawn Delay: %d", respawn_delay);
            print("---------------------------------------");
            print("-");
        }
        else
        {
            cInfo[houseid][CarModel] = dini_Int(house, "CarModel");
        }
        cInfo[houseid][CarX] = dini_Int(house, "CarX");
        cInfo[houseid][CarY] = dini_Int(house, "CarY");
        cInfo[houseid][CarZ] = dini_Int(house, "CarZ");
        cInfo[houseid][CarRotation] = dini_Int(house, "CarRotation");
        cInfo[houseid][CarColor1] = dini_Int(house, "CarColor1");
        cInfo[houseid][CarColor2] = dini_Int(house, "CarColor2");
        cInfo[houseid][Respawn_Delay] = dini_Int(house, "Respawn_Delay");
        cInfo[houseid][HouseCar] = CreateVehicle(cInfo[houseid][CarModel], Carx, Cary, Carz, CarRot, color1, color2, respawn_delay);
    }
}

stock SpawnPlayerAtHouse(playerid)
{
    new str1[256],pname[24],str[256];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname));
    if (dini_Exists(str1))
    {
        if(dini_Int(str1,"Houseid")!=-255)
        {
            new Float:x,Float:y,Float:z;
            str = dini_Get(str1,"SpawnInt");
            SetPlayerInterior(playerid, strval(str));
            playerinterior[playerid] = strval(str);
            x = dini_Float(str1,"SpawnX");
            y = dini_Float(str1,"SpawnY");
            z = dini_Float(str1,"SpawnZ");
            SetPlayerPos(playerid, x, y, z);
        }
    }
    return 1;
}

public OnPlayerSpawn(playerid)
{
    SpawnPlayerAtHouse(playerid);
}

stock GetHouseStats(playerid, hid)
{
    new str2[256];
    format(str2, sizeof(str2), "Dono : %s", hInfo[hid][Name]);
    SendClientMessage(playerid, c_y, str2);
    if(strcmp(hInfo[hid][Renter],"Ninguem",true))
    {
        format(str2, sizeof(str2), "Alugante : %s", hInfo[hid][Renter]);
        SendClientMessage(playerid, c_y, str2);
    }
    format(str2,sizeof(str2),"Cost: %i",hInfo[hid][Cost]);
    SendClientMessage(playerid, c_y, str2);
}

dcmd_vendercasa(playerid,params[])
{
    #pragma unused params
    new str[255],str1[256],pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerName(playerid, pname, 24);
    format(str1, sizeof(str1), "Houses/houseid%d", housenumber);
    if (strcmp(hInfo[housenumber][Name],pname,false)) return SendClientMessage(playerid, c_r, "Esta casa nгo й sua!");
    SendClientMessage(playerid, c_y, "Vocк vendeu sua casa!");
    format(str, sizeof(str), "%s Vendeu a casa",pname);
    print(str);
    GivePlayerMoney(playerid, hInfo[housenumber][Sell]);
    dini_Set(str1, "Name", "ForSale");
    hInfo[housenumber][Locked] = dini_IntSet(str1,"Locked",1);
    format(hInfo[housenumber][Name],255,"ForSale");
    format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname));
    if (!dini_Exists(str1)) dini_Create(str1);
    dini_IntSet(str1, "Houseid", -255);
    DestroyPickup(HousePickup[housenumber]);
    HousePickup[housenumber] = CreatePickup(1273, 23, hInfo[housenumber][iconx], hInfo[housenumber][icony], hInfo[housenumber][iconz]);
    RemovePlayerMapIcon(playerid, housemapicon[playerid]);
    return 1;
}

dcmd_comprarcasa(playerid,params[])
{
    #pragma unused params
    new str[255],str1[255],pname[24], housenumber;
    housenumber = GetHouseID(playerid);
    if(housenumber == -1) return SendClientMessage(playerid, c_r, "Vocк nгo estб em um нcone de casa!");

    GetPlayerName(playerid, pname, 24);
    format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname));
    if(dini_Exists(str1))
    {
        if (dini_Int(str1, "Houseid")!=-255) return SendClientMessage(playerid, c_r, "Vocк sу pode comprar uma casa!");
    }
    format(str1, sizeof(str1), "Houses/houseid%d", housenumber);
    if (strcmp(hInfo[housenumber][Name],"ForSale",true)) return SendClientMessage(playerid, c_r, "Esta casa nгo estб а venda!");
    if(GetPlayerMoney(playerid)<hInfo[housenumber][Cost]) return SendClientMessage(playerid, c_r, "Vocк nгo tem dinheiro suficiente!");
    SendClientMessage(playerid, c_y, "Vocк comprou a casa!");
    format(str, sizeof(str), "%s comprou a acsa",pname);
    print(str);
    GivePlayerMoney(playerid, -hInfo[housenumber][Cost]);
    dini_Set(str1, "Name", pname);
    hInfo[housenumber][Name]=pname;
    hInfo[housenumber][Locked] = dini_IntSet(str1,"Locked",0);

    format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname));
    if (!dini_Exists(str1)) dini_Create(str1);
    new Float:sy, Float:sx, Float:sz;
    dini_IntSet(str1, "Houseid", housenumber);
    if(!dini_Isset(str1,"Rentid"))
    {
        dini_IntSet(str1, "Rentid", -255);
    }
    GetPlayerPos(playerid, sx,sy,sz);
    dini_FloatSet(str1, "SpawnX", sx);
    dini_FloatSet(str1, "SpawnY", sy);
    dini_FloatSet(str1, "SpawnZ", sz);
    dini_IntSet(str1, "SpawnInt", GetPlayerInterior(playerid));
    DestroyPickup(HousePickup[housenumber]);
    HousePickup[housenumber] = CreatePickup(1272, 23, hInfo[housenumber][iconx], hInfo[housenumber][icony], hInfo[housenumber][iconz]);
    return 1;
}

dcmd_fecharcasa(playerid,params[])
{
    #pragma unused params
    new str1[256],pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerName(playerid, pname, 24);
    format(str1, sizeof(str1), "Houses/houseid%d", housenumber);
    if(strcmp(hInfo[housenumber][Name],pname,true)==0)
    {
        SendClientMessage(playerid, c_y, "Vocк Fechou sua casa!");
        dini_IntSet(str1,"Locked",1);
        hInfo[housenumber][Locked] = 1;
    }
    else if(strcmp(hInfo[housenumber][Renter],pname,true)==0)
    {
        SendClientMessage(playerid, c_y, "Vocк Abriu sua casa!");
        dini_IntSet(str1,"Locked",1);
        hInfo[housenumber][Locked] = 1;
    }
    else
    {
        SendClientMessage(playerid, c_r, "Esta casa nгo й sua!");
    }
    return 1;
}

dcmd_abrircasa(playerid,params[])
{
    #pragma unused params
    new str1[256],pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerName(playerid, pname, 24);
    format(str1, sizeof(str1), "Houses/houseid%d", housenumber);
    if(strcmp(hInfo[housenumber][Name],pname,true)==0)
    {
        SendClientMessage(playerid, c_y, "Vocк abriu sua casa!");
        dini_IntSet(str1,"Locked",0);
        hInfo[housenumber][Locked] = 0;
    }
    else if(strcmp(hInfo[housenumber][Renter],pname,true)==0)
    {
        SendClientMessage(playerid, c_y, "Vocк abriu sua casa!");
        dini_IntSet(str1,"Locked",0);
        hInfo[housenumber][Locked] = 0;
    }
    else
    {
        SendClientMessage(playerid, c_r, "Esta casa nгo й sua!");
    }
    return 1;
}

dcmd_entrar(playerid,params[])
{
    #pragma unused params
    new str1[255],pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerPos(playerid, housex, housey, housez);
    format(str1, sizeof(str1), "Houses/houseid%d", housenumber);
    GetPlayerName(playerid, pname, 24);
    if(hInfo[housenumber][Locked]==1) return SendClientMessage(playerid, c_r, "Esta casa estб trancada!");
    playerworld[playerid] = GetPlayerVirtualWorld(playerid);
    SetPlayerVirtualWorld(playerid, hInfo[housenumber][Virtualworld]);
    SetPlayerInterior(playerid, hInfo[housenumber][Interior]);
    SetPlayerPos(playerid, hInfo[housenumber][InteriorX], hInfo[housenumber][InteriorY], hInfo[housenumber][InteriorZ]);
    playerinterior[playerid] = hInfo[housenumber][Interior];
    return 1;
}

dcmd_sair(playerid,params[])
{
    #pragma unused params

    if(GetPlayerInterior(playerid)==playerinterior[playerid])
    {
        SetPlayerPos(playerid, housex, housey, housez);
        SetPlayerInterior(playerid, playerworld[playerid]);
    }
    else
    {
        SendClientMessage(playerid, c_r, "[ERRO]Esse comando vocк so pode digitar emcima de um icone de uma casa !");
    }
    return 1;
}

dcmd_casackeck(playerid,params[])
{
    #pragma unused params
    new str1[256],pname[24];
    GetPlayerName(playerid, pname, 24);
    format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname));
    if(!dini_Exists(str1)) return SendClientMessage(playerid, c_r, "Vocк nгo й dono de uma casa!");
    if(dini_Int(str1, "Houseid")!=-255)
    {
        housemapicon[playerid] = SetPlayerMapIcon(playerid,31,hInfo[dini_Int(str1, "Houseid")][iconx], hInfo[dini_Int(str1, "Houseid")][icony], hInfo[dini_Int(str1, "Houseid")][iconz],31,c_y);
    }
    else if (dini_Int(str1, "Rentid")!=-255)
    {
        housemapicon[playerid] = SetPlayerMapIcon(playerid,31,hInfo[dini_Int(str1, "Rentid")][iconx], hInfo[dini_Int(str1, "Rentid")][icony], hInfo[dini_Int(str1, "Rentid")][iconz],31,c_y);
    }
    else
    {
        SendClientMessage(playerid, c_r, "Vocк nгo й dono de uma casa!");
    }
    return 1;
}

dcmd_setaluguel(playerid,params[])
{
    new str[256],str1[256],pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerName(playerid, pname, 24);
    format(str1, sizeof(str1), "Houses/houseid%d", housenumber);
    str = dini_Get(str1,"Name");
    if (strcmp(str,pname,true)) return SendClientMessage(playerid, c_r, "Esta casa nгo й sua!");
    new rentcost, rentable;
    if (sscanf(params, "dd", rentable, rentcost)) return SendClientMessage(playerid, c_r, "USE: /setaluguel [0/1] [Rentcost]");
    else if (rentcost<MIN_RENTCOST)
    {
        format(str, sizeof(str), "O minimo do custo й $%i.", MIN_RENTCOST);
        SendClientMessage(playerid, c_r, str);
        return 1;
    }
    else if (rentcost>MAX_RENTCOST)
    {
        format(str, sizeof(str), "O maximo do custo й $%i.", MAX_RENTCOST);
        SendClientMessage(playerid, c_r, str);
        return 1;
    }
    else if(rentable==1)
    {
        SendClientMessage(playerid, c_y, "Sua casa agora й aluguavel!");
        hInfo[housenumber][Rentable] = 1;
        dini_IntSet(str1, "Rentable", 1);
        hInfo[housenumber][Rentcost] = rentcost;
        dini_IntSet(str1, "Rentcost", rentcost);
        return 1;
    }
    else if(rentable==0)
    {
        SendClientMessage(playerid, c_y, "Sua casa agora nгo й alugavel!");
        hInfo[housenumber][Rentable] = 0;
        dini_IntSet(str1, "Rentable", 0);
        hInfo[housenumber][Rentcost] = rentcost;
        dini_IntSet(str1, "Rentcost", rentcost);
        return 1;
    }
    return 1;
}

dcmd_alugar(playerid,params[])
{
    #pragma unused params
    new str[255],str1[256],str5[255],pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerName(playerid, pname, 24);
    format(str1, sizeof(str1), "Houses/houseid%d", housenumber);
    format(str5, sizeof(str5), "Houses/Users/%s", udb_encode(pname));
    if(dini_Isset(str5, "Rentid"))
    {
        if (dini_Int(str5, "Rentid")!=-255) return SendClientMessage(playerid, c_r, "Vocк sу pode alugar uma casa!");
    }
    format(str, sizeof(str), dini_Get(str1,"Name"));
    if (strcmp(str,"ForSale",true)==0) return SendClientMessage(playerid, c_r, "Esta casa nгo tem dono!");
    if(hInfo[housenumber][Rentable]==0 || strcmp(hInfo[housenumber][Renter], "Ninguem", true)) return SendClientMessage(playerid, c_r, "Esta casa nгo й alugavel!");
    if(GetPlayerMoney(playerid)<hInfo[housenumber][Rentcost]) return SendClientMessage(playerid, c_r, "Vocк nгo tem dinheiro suficiente!");
    dini_Set(str1, "Renter", udb_encode(pname));
    format(hInfo[housenumber][Renter], 24, udb_encode(pname));
    dini_IntSet(str5, "Rentid", housenumber);
    format(str1, sizeof(str1), "Vocк alugou esta casa, que vai custar-lhe $%i por hora!", hInfo[housenumber][Rentcost]);
    SendClientMessage(playerid, c_y, str1);
    return 1;
}

dcmd_desalugar(playerid,params[])
{
    #pragma unused params
    new str1[256],pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerName(playerid, pname, 24);
    format(str1, sizeof(str1), "Houses/houseid%d", housenumber);
    if(strcmp(hInfo[housenumber][Renter], pname, true)) return SendClientMessage(playerid, c_r, "Vocк nгo estб alugando esta casa!");

    dini_Set(str1, "Renter", "Ninguem");
    format(hInfo[housenumber][Renter], 24, "Ninguem");
    format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname));
    dini_IntSet(str1, "Rentid", -255);
    SendClientMessage(playerid, c_y, "Vocк nгo tem o aluguel desta casa");
    return 1;
}

dcmd_infocasa(playerid,params[])
{
    #pragma unused params
    SendClientMessage(playerid, c_y, "-------------");
    SendClientMessage(playerid, c_y, "Casa Comandos (Ajuda)");
    SendClientMessage(playerid, c_y, "-------------");
    SendClientMessage(playerid, c_y, "/setaluguel [0/1] [Preзo] - Dono da casa");
    SendClientMessage(playerid, c_y, "/Comprarcarro [nomecarro]   - Dono da casa");
    SendClientMessage(playerid, c_y, "/pegarrendas              - Dono da casa");
    SendClientMessage(playerid, c_y, "/fecharcasa                 - Alugante/Dono da casa");
    SendClientMessage(playerid, c_y, "/abrircasa               - Alugante/Dono da casa");
    SendClientMessage(playerid, c_y, "/pagaraluguel              - Alugante");
    SendClientMessage(playerid, c_y, "/desalugar               - Alugante");
    SendClientMessage(playerid, c_y, "/alugar                 - Sem casa");
    SendClientMessage(playerid, c_y, "-------------");
    return 1;
}

dcmd_casastatus(playerid,params[])
{
    #pragma unused params
    new str[256],housenumber;
    housenumber = GetHouseID(playerid);
    format(str, sizeof(str), "Dono: %s", hInfo[housenumber][Name]);
    SendClientMessage(playerid, c_y, str);
    format(str, sizeof(str), "Preзo: $%d", hInfo[housenumber][Cost]);
    SendClientMessage(playerid, c_y, str);
    format(str, sizeof(str), "Alugante: %s", hInfo[housenumber][Renter]);
    SendClientMessage(playerid, c_y, str);
    format(str, sizeof(str), "Aluguel Custo: $%d / Por Horas", hInfo[housenumber][Rentcost]);
    SendClientMessage(playerid, c_y, str);
    return 1;
}

dcmd_pegarrendas(playerid,params[])
{
    #pragma unused params
    new pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerName(playerid, pname, 24);
    if(strcmp(hInfo[housenumber][Name],pname,true)==0)
    {
        new str[255];
        SendClientMessage(playerid, c_y, "Vocк recolheu a renda da casa!");
        format(str, sizeof(str), "Houses/houseid%d", housenumber);
        GivePlayerMoney(playerid, dini_Int(str, "RentGet"));
        dini_IntSet(str, "RentGet", 0);
    }
    else
    {
        SendClientMessage(playerid, c_r, "Esta casa nгo й sua!");
    }
    return 1;
}

dcmd_pagaraluguel(playerid,params[])
{
    #pragma unused params
    new pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerName(playerid, pname, 24);
    if(strcmp(hInfo[housenumber][Renter],pname,true)==0)
    {
        new str[255];
        format(str, sizeof(str), "Houses/houseid%d", housenumber);
        if(GetPlayerMoney(playerid)<dini_Int(str, "RentPay")) return SendClientMessage(playerid, c_r, "Vocк nгo tem dinheiro suficiente para pagar o dono da casa!");
        SendClientMessage(playerid, c_y, "Vocк pagou o dinheiro do aluguel ao dono!");
        GivePlayerMoney(playerid, -dini_Int(str, "RentPay"));
        dini_IntSet(str, "RentPay", 0);
    }
    else
    {
        SendClientMessage(playerid, c_r, "Vocк nгo estб alugando esta casa!");
    }
    return 1;
}

dcmd_comprarcarro(playerid,params[])
{
    #pragma unused params
    new pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerName(playerid, pname, 24);
    if(cInfo[housenumber][GotCar]==0) return SendClientMessage(playerid, c_r, "Esta casa nгo pode comprar um carro!");
    if(strcmp(hInfo[housenumber][Name],pname,true)==0)
    {
        new carname[40];
        if (sscanf(params, "s", carname))
        {
            SendClientMessage(playerid, c_r, "USE: /comprarcarro [CarName]");
        }
        else
        {
            new str[256], abc;
            for(new i=0;i<MAX_BUY_CARS;i++)
            {
                if(strcmp(carname,Buyable_Cars[i][CarName],true)==0)
                {
                    if(GetPlayerMoney(playerid)<Buyable_Cars[i][CarCost]) return SendClientMessage(playerid, c_r, "Vocк nгo tem dinheiro suficiente para comprar o carro!");
                    GivePlayerMoney(playerid, -Buyable_Cars[i][CarCost]);
                    cInfo[housenumber][CarModel] = Buyable_Cars[i][CarModel];
                    format(str, sizeof(str), "Houses/houseid%d", housenumber);
                    dini_IntSet(str, "CarModel", Buyable_Cars[i][CarModel]);
                    format(str, sizeof(str), "Vocк compro o carro %s por $%d!", carname, Buyable_Cars[i][CarCost]);
                    SendClientMessage(playerid, c_y, str);
                    SendClientMessage(playerid, c_y, "Vai levar algum tempo, para o seu carro vai ser entregue.");
                    cInfo[housenumber][NewCar] = 1;
                    abc = 1;
                }
            }
            if(abc==0)
            {
                SendClientMessage(playerid, c_r, "Nome do veнculo errado!Use /NomeCars");
                abc=0;
            }

        }
    }
    else
    {
        SendClientMessage(playerid, c_r, "Esta casa nгo й sua!");
    }
    return 1;
}

public newcar()
{
    for(new carid=0;carid<MAX_HOUSES;carid++)
    {
        if(cInfo[carid][NewCar]==1)
        {
            cInfo[carid][NewCar]=0;
            KillVehicle(cInfo[carid][HouseCar]);
            cInfo[carid][HouseCar] = CreateVehicle(cInfo[carid][CarModel], cInfo[carid][CarX], cInfo[carid][CarY], cInfo[carid][CarZ], cInfo[carid][CarRotation], cInfo[carid][CarColor1], cInfo[carid][CarColor2], cInfo[carid][Respawn_Delay]);
        }
    }
}

public KillVehicle(carid)
{
    for (new i=0;i<MAX_PLAYERS;i++)
    {
        if(IsPlayerInVehicle(i, carid))
        {
            RemovePlayerFromVehicle(i);
            KillVeh[carid] = true;
            SetVehicleToRespawn(carid);
            SendClientMessage(i, c_r, "Sistema: Seu carro foi destruнdo.");
            SendClientMessage(i, c_r, "Motivo: sistema de Casas.");
        }
        else
        {
            KillVeh[carid] = true;
            SetVehicleToRespawn(carid);
        }
    }
}

public OnVehicleSpawn(vehicleid)
{
    for(new i=0;i<MAX_HOUSES;i++)
    {
        if(KillVeh[cInfo[i][HouseCar]]==true)
        {
            KillVeh[cInfo[i][HouseCar]] = false;
            DestroyVehicle(cInfo[i][HouseCar]);
        }
    }
}

public rentfee()
{
    new str[255],str2[255],pname[24];
    for(new houseid=0;houseid<MAX_HOUSES;houseid++)
    {
        format(str, sizeof(str), "Houses/houseid%d", houseid);
        if(strcmp(hInfo[houseid][Renter], "Ninguem", true))
        {
            for(new ii=0;ii<MAX_PLAYERS;ii++)
            {
                if(IsPlayerConnected(ii))
                {
                    GetPlayerName(ii, pname, 24);
                    if(strcmp(hInfo[houseid][Renter], pname, true)==0)
                    {
                        format(str2, sizeof(str2), "Vocк tem que pagar $%s por a hora por ter alugado a casa !", hInfo[houseid][Rentcost]);
                        SendClientMessage(ii, c_y, str2);
                        dini_IntSet(str, "RentGet", dini_Int(str, "RentGet")+hInfo[houseid][Rentcost]);
                        dini_IntSet(str, "RentPay", dini_Int(str, "RentPay")+hInfo[houseid][Rentcost]);
                        hInfo[houseid][Rentfee]=1;
                    }
                }
            }
            if(hInfo[houseid][Rentfee]==0)
            {
                    if(strcmp(hInfo[houseid][Renter],"Ninguem"))
                    {
                        dini_IntSet(str, "RentGet", dini_Int(str, "RentGet")+hInfo[houseid][Rentcost]);
                        dini_IntSet(str, "RentPay", dini_Int(str, "RentPay")+hInfo[houseid][Rentcost]);
                    }
            }
            hInfo[houseid][Rentfee]=0;
        }
    }
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    if(GetHouseID(playerid) != -255) GetHouseStats(playerid, GetHouseID(playerid));
    return 0;
}

stock PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
    if(IsPlayerConnected(playerid))
    {
        new Float:oldposx, Float:oldposy, Float:oldposz;
        new Float:tempposx, Float:tempposy, Float:tempposz;
        GetPlayerPos(playerid, oldposx, oldposy, oldposz);
        tempposx = (oldposx -x);
        tempposy = (oldposy -y);
        tempposz = (oldposz -z);
        if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
        {
            return 1;
        }
    }
    return 0;
}

stock GetHouseID(playerid)
{
    for(new i=0; i<MAX_HOUSES; i++)
    {
        if(PlayerToPoint(MAX_DISTANCE_TO_PROP, playerid, hInfo[i][iconx], hInfo[i][icony], hInfo[i][iconz]))
        {
            return i;
        }
    }
    return -255;
}

stock sscanf(string[], format[], {Float,_}:...)
{
    new
        formatPos = 0,
        stringPos = 0,
        paramPos = 2,
        paramCount = numargs();
    while (paramPos < paramCount && string[stringPos])
    {
        switch (format[formatPos++])
        {
            case '\0':
            {
                return 0;
            }
            case 'i', 'd':
            {
                new
                    neg = 1,
                    num = 0,
                    ch = string[stringPos];
                if (ch == '-')
                {
                    neg = -1;
                    ch = string[++stringPos];
                }
                do
                {
                    stringPos++;
                    if (ch >= '0' && ch <= '9')
                    {
                        num = (num * 10) + (ch - '0');
                    }
                    else
                    {
                        return 1;
                    }
                }
                while ((ch = string[stringPos]) && ch != ' ');
                setarg(paramPos, 0, num * neg);
            }
            case 'h', 'x':
            {
                new
                    ch,
                    num = 0;
                while ((ch = string[stringPos++]))
                {
                    switch (ch)
                    {
                        case 'x', 'X':
                        {
                            num = 0;
                            continue;
                        }
                        case '0' .. '9':
                        {
                            num = (num << 4) | (ch - '0');
                        }
                        case 'a' .. 'f':
                        {
                            num = (num << 4) | (ch - ('a' - 10));
                        }
                        case 'A' .. 'F':
                        {
                            num = (num << 4) | (ch - ('A' - 10));
                        }
                        case ' ':
                        {
                            break;
                        }
                        default:
                        {
                            return 1;
                        }
                    }
                }
                setarg(paramPos, 0, num);
            }
            case 'c':
            {
                setarg(paramPos, 0, string[stringPos++]);
            }
            case 'f':
            {
                new tmp[25];
                strmid(tmp, string, stringPos, stringPos+sizeof(tmp)-2);
                setarg(paramPos, 0, _:floatstr(tmp));
            }
            case 's', 'z':
            {
                new
                    i = 0,
                    ch;
                if (format[formatPos])
                {
                    while ((ch = string[stringPos++]) && ch != ' ')
                    {
                        setarg(paramPos, i++, ch);
                    }
                    if (!i) return 1;
                }
                else
                {
                    while ((ch = string[stringPos++]))
                    {
                        setarg(paramPos, i++, ch);
                    }
                }
                stringPos--;
                setarg(paramPos, i, '\0');
            }
            default:
            {
                continue;
            }
        }
        while (string[stringPos] && string[stringPos] != ' ')
        {
            stringPos++;
        }
        while (string[stringPos] == ' ')
        {
            stringPos++;
        }
        paramPos++;
    }
    while (format[formatPos] == 'z') formatPos++;
    return format[formatPos];
}

/*public OnVehicleMod(vehicleid, componentid)
{
    new house[256];
    for(new i=0; i<MAX_HOUSES; i++)
    {
        format(house, sizeof(house), "Houses/houseid%d",i);
        if(!dini_Isset(house, "CarModel")) continue;
        if(
    }
    return 1;
}*/
Se nгo for pedir muito postem o codigo do AddHouse para a casa do CJ pf.
Reply
#4

como que vocк ta setando as casas ?
Reply
#5

Eu pego o addhouse tipo esse
Код:
AddHouse(0, 1442.9769,-629.5287,95.7186, 2317.8201,-1024.7500,1050.2109, 0, 0, 9, 0);
E substituo as posiзхes id do interior.
Reply
#6

pawn Код:
AddHouse(0, 1442.9769,-629.5287,95.7186, 2317.8201,-1024.7500,1050.2109, 0, 0, 9, 0);

0 = ID da casa = (cada casa que vocк vai criando coloque em ordem crescente 1, 2, 3 e etc..)

1442.9769,-629.5287,95.7186 = (Coordenadas do pickup do lado de fora da casa)

2317.8201,-1024.7500,1050.2109 = (Coordenada do interior da casa)

0, 0, = (Valor de compra e venda da casa)

9  = (O ID do interior da casa)

0 = (VirtualWorld)
Reply
#7

pawn Код:
AddHouse(CasaID, LocalX, LocalY, LocalZ, InteriorX, InteriorY, InteriorZ, PreзoDEcompra, PreзoDEvenda, IDinterior, VirtualWorld);
Reply
#8

Pronto consegui add as casas mas nгo da pra comprar alguem me ajuda
Reply
#9

nao tens dinheiro?
Reply
#10

Cara eu to botando de graзa, mas eu num consigo usar comando nenhum na casa, naum consigo entrar, comprar , naum consigo faze nada ve se tem algo errado no script:

Код:
#include <a_samp>
#include <dudb>
#include <dini>
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
//----------------------------
//----------------------------
//  Full house script by Antironix!
//  Just don't remove the credits!
//----------------------------
//----------------------------
#define MAX_DISTANCE_TO_PROP 1.5
#define MAX_HOUSES 100
#define MAX_RENTCOST 1000
#define MIN_RENTCOST 500
#define MAX_BUY_CARS 8
#define CAR_DELIVER_TIME 1 //The time that it takes that your car will be delivered. In hours.

//buyable cars
enum CarInfo {CarModel,CarName[24],CarCost};
new Buyable_Cars[MAX_BUY_CARS][CarInfo] =
{  //Modelid, Buy Name, Price
    {411,"Infernus",0},
    {522,"NRG-500",50000},
    {451,"Turismo",50000},
    {541,"Bullet",50000},
    {415,"Cheetah",50000},
    {429,"Banshee",50000},
    {494,"Hotring",50000},
    {556,"Monster",50000}
};
//----------------------------
//----------------------------
#define c_y 0xFFFF00AA
#define c_r 0xAA3333AA
new HousePickup[MAX_HOUSES];
new playerinterior[MAX_PLAYERS]=-1;
new Float:housex, Float:housey, Float:housez;
new housemapicon[MAX_PLAYERS];
new playerworld[MAX_PLAYERS];
new bool:KillVeh[MAX_VEHICLES] = false;
forward rentfee();
forward newcar();
forward KillVehicle(carid);

enum HouseInfo
{
    Name[24],
    Renter[24],
    Rentable,
    Rentcost,
    Cost,
    Sell,
    Interior,
    Virtualworld,
    Locked,
    Float:InteriorX,
    Float:InteriorY,
    Float:InteriorZ,
    Float:iconx,
    Float:icony,
    Float:iconz,
    Rentfee
}
new hInfo[MAX_HOUSES][HouseInfo];

enum HouseCarInfo
{
    HouseCar,
    GotCar,
    Houseid,
    CarModel,
    Float:CarX,
    Float:CarY,
    Float:CarZ,
    Float:CarRotation,
    CarColor1,
    CarColor2,
    Respawn_Delay,
    NewCar
}
new cInfo[MAX_HOUSES][HouseCarInfo];

#define FILTERSCRIPT
#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
    AddHouse(0, 1442.9769,-629.5287,95.7186, 2317.8201,-1024.7500,1050.2109, 0, 0, 9, 0);
    AddHouse(1, 1980.9896,-1719.0171,17.0304, 328.1465, 1478.4457,1084.4375, 0, 0, 15, 0);
    AddHouse(2, 836.6476,-894.0554,68.7689,2324.419921,-1145.568359,1050.710083, 0, 0, 12, 0);
	AddHouseCar(1, 429, 1975.3328,-1709.8126,15.9688, 0, 0, 5*60*1000);//5 min respawn delay
    SetTimer("rentfee", 1*60*60*1000, 1);//1 hour
    SetTimer("newcar", CAR_DELIVER_TIME*60*10*1000,1);//1 hour
    return 0;
}

public OnFilterScriptExit()
{
    for(new i=0;i<MAX_HOUSES;i++)
    {
        DestroyPickup(HousePickup[i]);
        DestroyVehicle(cInfo[i][HouseCar]);
    }
    return 0;
}

#else
#endif

public OnPlayerCommandText(playerid, cmdtext[])
{
    dcmd(comprarcasa,3,cmdtext);
    dcmd(vendercasa,4,cmdtext);
    dcmd(entrar,5,cmdtext);
    dcmd(sair,4,cmdtext);
    dcmd(fecharcasa,4,cmdtext);
    dcmd(abrircasa,6,cmdtext);
    dcmd(casackeck,4,cmdtext);
    dcmd(setaluguel,7,cmdtext);
    dcmd(alugar,4,cmdtext);
    dcmd(desalugar,6,cmdtext);
    dcmd(infocasa,5,cmdtext);
    dcmd(casastatus,10,cmdtext);
    dcmd(pegarrendas,7,cmdtext);
    dcmd(pagaraluguel,7,cmdtext);
    dcmd(comprarcarro,8,cmdtext);
    return 0;
}

AddHouse(houseid, Float:iconX, Float:iconY, Float:iconZ, Float:interiorX, Float:interiorY, Float:interiorZ, Costa, Sella, Interiora, virtualworld)
{
    new house[256];
    format(house, sizeof(house), "Houses/houseid%d",houseid);
    if(!dini_Exists(house))
    {
        dini_Create(house);
        format(hInfo[houseid][Name], 24, "ForSale");
        dini_Set(house, "Name", "ForSale");
        format(hInfo[houseid][Renter], 24, "Ninguem");
        dini_Set(house, "Renter", "Ninguem");
        hInfo[houseid][Rentable] = 0;
        dini_IntSet(house, "Rentable", 0);
        hInfo[houseid][Rentcost] = 0;
        dini_IntSet(house, "Rentcost", 0);
        hInfo[houseid][Cost] = Costa;
        dini_IntSet(house, "Cost", Costa);
        hInfo[houseid][Sell] = Sella;
        dini_IntSet(house, "Sell", Sella);
        hInfo[houseid][Interior] = Interiora;
        dini_IntSet(house, "Interior", Interiora);
        dini_IntSet(house, "Virtualworld", virtualworld);
        hInfo[houseid][Virtualworld] = virtualworld;
        hInfo[houseid][Locked] = 1;
        dini_IntSet(house, "Locked", 1);
        hInfo[houseid][InteriorX] = interiorX;
        hInfo[houseid][InteriorY] = interiorY;
        hInfo[houseid][InteriorZ] = interiorZ;
        dini_FloatSet(house, "X", interiorX);
        dini_FloatSet(house, "Y", interiorY);
        dini_FloatSet(house, "Z", interiorZ);
        dini_IntSet(house, "RentPay", 0);
        dini_IntSet(house, "RentGet", 0);
        cInfo[houseid][HouseCar] = 429;
        dini_IntSet(house, "HouseCar", 0);
        cInfo[houseid][CarModel] = 429;
        dini_IntSet(house, "CarModel", 0);
        cInfo[houseid][CarX] = 0;
        cInfo[houseid][CarY] = 0;
        cInfo[houseid][CarZ] = 0;
        cInfo[houseid][CarRotation]=0;
        dini_FloatSet(house, "CarX", 0);
        dini_FloatSet(house, "CarY", 0);
        dini_FloatSet(house, "CarZ", 0);
        dini_FloatSet(house,"CarRotation",0);
        cInfo[houseid][CarColor1] = 0;
        cInfo[houseid][CarColor2] = 0;
        dini_IntSet(house, "CarColor1", 0);
        dini_IntSet(house, "CarColor2", 0);
        cInfo[houseid][GotCar] = 0;
        print("-");
        print("--------------House Created--------------");
        printf("- Houseid: %d", houseid);
        printf("- Buy Cost: %d", Costa);
        printf("- Sell Cost: %d", Sella);
        printf("- Interior: %d", Interiora);
        printf("- VirtualWorld: %d", virtualworld);
        print("-----------------------------------------");
        print("-");
    }
    else
    {
        format(hInfo[houseid][Name], 24, dini_Get(house, "Name"));
        format(hInfo[houseid][Renter], 24, dini_Get(house, "Renter"));
        hInfo[houseid][Rentable] = dini_Int(house, "Rentable");
        hInfo[houseid][Rentcost] = dini_Int(house, "Rentcost");
        hInfo[houseid][Cost] = dini_Int(house, "Cost");
        hInfo[houseid][Sell] = dini_Int(house, "Sell");
        hInfo[houseid][Interior] = dini_Int(house, "Interior");
        hInfo[houseid][Locked] = dini_Int(house, "Locked");
        hInfo[houseid][InteriorX] = dini_Float(house, "X");
        hInfo[houseid][InteriorY] = dini_Float(house, "Y");
        hInfo[houseid][InteriorZ] = dini_Float(house, "Z");
        hInfo[houseid][Virtualworld] = dini_Int(house, "Virtualworld");
    }
    hInfo[houseid][iconx]=iconX;
    hInfo[houseid][icony]=iconY;
    hInfo[houseid][iconz]=iconZ;
    format(house, sizeof(house), "Houses/houseid%d",houseid);
    if(strcmp(hInfo[houseid][Name],"ForSale",true)==0)
    {
        HousePickup[houseid] = CreatePickup(1273, 23, iconX, iconY, iconZ);//not bought
    }
    else
    {
        HousePickup[houseid] = CreatePickup(1272,23, iconX, iconY, iconZ);//bought
    }
}

AddHouseCar(houseid, modelid, Float:Carx, Float:Cary, Float:Carz, CarRot, color1, color2, respawn_delay)
{
    new house[256];
    format(house, sizeof(house), "Houses/houseid%d",houseid);
    if(dini_Exists(house))
    {
        cInfo[houseid][GotCar] = 1;
        if(dini_Int(house, "CarModel")==0)
        {
            dini_IntSet(house, "CarModel", modelid);
            cInfo[houseid][CarModel] = modelid;
            cInfo[houseid][CarX] = Carx;
            cInfo[houseid][CarY] = Cary;
            cInfo[houseid][CarZ] = Carz;
            cInfo[houseid][CarRotation] = CarRot;
            dini_FloatSet(house, "CarX", Carx);
            dini_FloatSet(house, "CarY", Cary);
            dini_FloatSet(house, "CarZ", Carz);
            dini_FloatSet(house, "CarRotation", CarRot);
            cInfo[houseid][CarColor1] = color1;
            cInfo[houseid][CarColor2] = color2;
            dini_IntSet(house, "CarColor1", color1);
            dini_IntSet(house, "CarColor2", color2);
            dini_IntSet(house, "Respawn_Delay", respawn_delay);
            cInfo[houseid][Respawn_Delay] = respawn_delay;
            cInfo[houseid][HouseCar] = CreateVehicle(cInfo[houseid][CarModel], Carx, Cary, Carz, CarRot, color1, color2, respawn_delay);
            print("-");
            print("--------------Car Created--------------");
            printf("- Car Houseid: %d", houseid);
            printf("- Modelid: %d", modelid);
            printf("- Color 1: %d", color1);
            printf("- Color 2: %d", color2);
            printf("- Respawn Delay: %d", respawn_delay);
            print("---------------------------------------");
            print("-");
        }
        else
        {
            cInfo[houseid][CarModel] = dini_Int(house, "CarModel");
        }
        cInfo[houseid][CarX] = dini_Int(house, "CarX");
        cInfo[houseid][CarY] = dini_Int(house, "CarY");
        cInfo[houseid][CarZ] = dini_Int(house, "CarZ");
        cInfo[houseid][CarRotation] = dini_Int(house, "CarRotation");
        cInfo[houseid][CarColor1] = dini_Int(house, "CarColor1");
        cInfo[houseid][CarColor2] = dini_Int(house, "CarColor2");
        cInfo[houseid][Respawn_Delay] = dini_Int(house, "Respawn_Delay");
        cInfo[houseid][HouseCar] = CreateVehicle(cInfo[houseid][CarModel], Carx, Cary, Carz, CarRot, color1, color2, respawn_delay);
    }
}

stock SpawnPlayerAtHouse(playerid)
{
    new str1[256],pname[24],str[256];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname));
    if (dini_Exists(str1))
    {
        if(dini_Int(str1,"Houseid")!=-255)
        {
            new Float:x,Float:y,Float:z;
            str = dini_Get(str1,"SpawnInt");
            SetPlayerInterior(playerid, strval(str));
            playerinterior[playerid] = strval(str);
            x = dini_Float(str1,"SpawnX");
            y = dini_Float(str1,"SpawnY");
            z = dini_Float(str1,"SpawnZ");
            SetPlayerPos(playerid, x, y, z);
        }
    }
    return 1;
}

public OnPlayerSpawn(playerid)
{
    SpawnPlayerAtHouse(playerid);
}

stock GetHouseStats(playerid, hid)
{
    new str2[256];
    format(str2, sizeof(str2), "Dono : %s", hInfo[hid][Name]);
    SendClientMessage(playerid, c_y, str2);
    if(strcmp(hInfo[hid][Renter],"Ninguem",true))
    {
        format(str2, sizeof(str2), "Alugante : %s", hInfo[hid][Renter]);
        SendClientMessage(playerid, c_y, str2);
    }
    format(str2,sizeof(str2),"Cost: %i",hInfo[hid][Cost]);
    SendClientMessage(playerid, c_y, str2);
}

dcmd_vendercasa(playerid,params[])
{
    #pragma unused params
    new str[255],str1[256],pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerName(playerid, pname, 24);
    format(str1, sizeof(str1), "Houses/houseid%d", housenumber);
    if (strcmp(hInfo[housenumber][Name],pname,false)) return SendClientMessage(playerid, c_r, "Esta casa nгo й sua!");
    SendClientMessage(playerid, c_y, "Vocк vendeu sua casa!");
    format(str, sizeof(str), "%s Vendeu a casa",pname);
    print(str);
    GivePlayerMoney(playerid, hInfo[housenumber][Sell]);
    dini_Set(str1, "Name", "ForSale");
    hInfo[housenumber][Locked] = dini_IntSet(str1,"Locked",1);
    format(hInfo[housenumber][Name],255,"ForSale");
    format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname));
    if (!dini_Exists(str1)) dini_Create(str1);
    dini_IntSet(str1, "Houseid", -255);
    DestroyPickup(HousePickup[housenumber]);
    HousePickup[housenumber] = CreatePickup(1273, 23, hInfo[housenumber][iconx], hInfo[housenumber][icony], hInfo[housenumber][iconz]);
    RemovePlayerMapIcon(playerid, housemapicon[playerid]);
    return 1;
}

dcmd_comprarcasa(playerid,params[])
{
    #pragma unused params
    new str[255],str1[255],pname[24], housenumber;
    housenumber = GetHouseID(playerid);
    if(housenumber == -1) return SendClientMessage(playerid, c_r, "Vocк nгo estб em um нcone de casa!");

    GetPlayerName(playerid, pname, 24);
    format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname));
    if(dini_Exists(str1))
    {
        if (dini_Int(str1, "Houseid")!=-255) return SendClientMessage(playerid, c_r, "Vocк sу pode comprar uma casa!");
    }
    format(str1, sizeof(str1), "Houses/houseid%d", housenumber);
    if (strcmp(hInfo[housenumber][Name],"ForSale",true)) return SendClientMessage(playerid, c_r, "Esta casa nгo estб а venda!");
    if(GetPlayerMoney(playerid)<hInfo[housenumber][Cost]) return SendClientMessage(playerid, c_r, "Vocк nгo tem dinheiro suficiente!");
    SendClientMessage(playerid, c_y, "Vocк comprou a casa!");
    format(str, sizeof(str), "%s comprou a acsa",pname);
    print(str);
    GivePlayerMoney(playerid, -hInfo[housenumber][Cost]);
    dini_Set(str1, "Name", pname);
    hInfo[housenumber][Name]=pname;
    hInfo[housenumber][Locked] = dini_IntSet(str1,"Locked",0);

    format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname));
    if (!dini_Exists(str1)) dini_Create(str1);
    new Float:sy, Float:sx, Float:sz;
    dini_IntSet(str1, "Houseid", housenumber);
    if(!dini_Isset(str1,"Rentid"))
    {
        dini_IntSet(str1, "Rentid", -255);
    }
    GetPlayerPos(playerid, sx,sy,sz);
    dini_FloatSet(str1, "SpawnX", sx);
    dini_FloatSet(str1, "SpawnY", sy);
    dini_FloatSet(str1, "SpawnZ", sz);
    dini_IntSet(str1, "SpawnInt", GetPlayerInterior(playerid));
    DestroyPickup(HousePickup[housenumber]);
    HousePickup[housenumber] = CreatePickup(1272, 23, hInfo[housenumber][iconx], hInfo[housenumber][icony], hInfo[housenumber][iconz]);
    return 1;
}

dcmd_fecharcasa(playerid,params[])
{
    #pragma unused params
    new str1[256],pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerName(playerid, pname, 24);
    format(str1, sizeof(str1), "Houses/houseid%d", housenumber);
    if(strcmp(hInfo[housenumber][Name],pname,true)==0)
    {
        SendClientMessage(playerid, c_y, "Vocк Fechou sua casa!");
        dini_IntSet(str1,"Locked",1);
        hInfo[housenumber][Locked] = 1;
    }
    else if(strcmp(hInfo[housenumber][Renter],pname,true)==0)
    {
        SendClientMessage(playerid, c_y, "Vocк Abriu sua casa!");
        dini_IntSet(str1,"Locked",1);
        hInfo[housenumber][Locked] = 1;
    }
    else
    {
        SendClientMessage(playerid, c_r, "Esta casa nгo й sua!");
    }
    return 1;
}

dcmd_abrircasa(playerid,params[])
{
    #pragma unused params
    new str1[256],pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerName(playerid, pname, 24);
    format(str1, sizeof(str1), "Houses/houseid%d", housenumber);
    if(strcmp(hInfo[housenumber][Name],pname,true)==0)
    {
        SendClientMessage(playerid, c_y, "Vocк abriu sua casa!");
        dini_IntSet(str1,"Locked",0);
        hInfo[housenumber][Locked] = 0;
    }
    else if(strcmp(hInfo[housenumber][Renter],pname,true)==0)
    {
        SendClientMessage(playerid, c_y, "Vocк abriu sua casa!");
        dini_IntSet(str1,"Locked",0);
        hInfo[housenumber][Locked] = 0;
    }
    else
    {
        SendClientMessage(playerid, c_r, "Esta casa nгo й sua!");
    }
    return 1;
}

dcmd_entrar(playerid,params[])
{
    #pragma unused params
    new str1[255],pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerPos(playerid, housex, housey, housez);
    format(str1, sizeof(str1), "Houses/houseid%d", housenumber);
    GetPlayerName(playerid, pname, 24);
    if(hInfo[housenumber][Locked]==1) return SendClientMessage(playerid, c_r, "Esta casa estб trancada!");
    playerworld[playerid] = GetPlayerVirtualWorld(playerid);
    SetPlayerVirtualWorld(playerid, hInfo[housenumber][Virtualworld]);
    SetPlayerInterior(playerid, hInfo[housenumber][Interior]);
    SetPlayerPos(playerid, hInfo[housenumber][InteriorX], hInfo[housenumber][InteriorY], hInfo[housenumber][InteriorZ]);
    playerinterior[playerid] = hInfo[housenumber][Interior];
    return 1;
}

dcmd_sair(playerid,params[])
{
    #pragma unused params

    if(GetPlayerInterior(playerid)==playerinterior[playerid])
    {
        SetPlayerPos(playerid, housex, housey, housez);
        SetPlayerInterior(playerid, playerworld[playerid]);
    }
    else
    {
        SendClientMessage(playerid, c_r, "[ERRO]Esse comando vocк so pode digitar emcima de um icone de uma casa !");
    }
    return 1;
}

dcmd_casackeck(playerid,params[])
{
    #pragma unused params
    new str1[256],pname[24];
    GetPlayerName(playerid, pname, 24);
    format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname));
    if(!dini_Exists(str1)) return SendClientMessage(playerid, c_r, "Vocк nгo й dono de uma casa!");
    if(dini_Int(str1, "Houseid")!=-255)
    {
        housemapicon[playerid] = SetPlayerMapIcon(playerid,31,hInfo[dini_Int(str1, "Houseid")][iconx], hInfo[dini_Int(str1, "Houseid")][icony], hInfo[dini_Int(str1, "Houseid")][iconz],31,c_y);
    }
    else if (dini_Int(str1, "Rentid")!=-255)
    {
        housemapicon[playerid] = SetPlayerMapIcon(playerid,31,hInfo[dini_Int(str1, "Rentid")][iconx], hInfo[dini_Int(str1, "Rentid")][icony], hInfo[dini_Int(str1, "Rentid")][iconz],31,c_y);
    }
    else
    {
        SendClientMessage(playerid, c_r, "Vocк nгo й dono de uma casa!");
    }
    return 1;
}

dcmd_setaluguel(playerid,params[])
{
    new str[256],str1[256],pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerName(playerid, pname, 24);
    format(str1, sizeof(str1), "Houses/houseid%d", housenumber);
    str = dini_Get(str1,"Name");
    if (strcmp(str,pname,true)) return SendClientMessage(playerid, c_r, "Esta casa nгo й sua!");
    new rentcost, rentable;
    if (sscanf(params, "dd", rentable, rentcost)) return SendClientMessage(playerid, c_r, "USE: /setaluguel [0/1] [Rentcost]");
    else if (rentcost<MIN_RENTCOST)
    {
        format(str, sizeof(str), "O minimo do custo й $%i.", MIN_RENTCOST);
        SendClientMessage(playerid, c_r, str);
        return 1;
    }
    else if (rentcost>MAX_RENTCOST)
    {
        format(str, sizeof(str), "O maximo do custo й $%i.", MAX_RENTCOST);
        SendClientMessage(playerid, c_r, str);
        return 1;
    }
    else if(rentable==1)
    {
        SendClientMessage(playerid, c_y, "Sua casa agora й aluguavel!");
        hInfo[housenumber][Rentable] = 1;
        dini_IntSet(str1, "Rentable", 1);
        hInfo[housenumber][Rentcost] = rentcost;
        dini_IntSet(str1, "Rentcost", rentcost);
        return 1;
    }
    else if(rentable==0)
    {
        SendClientMessage(playerid, c_y, "Sua casa agora nгo й alugavel!");
        hInfo[housenumber][Rentable] = 0;
        dini_IntSet(str1, "Rentable", 0);
        hInfo[housenumber][Rentcost] = rentcost;
        dini_IntSet(str1, "Rentcost", rentcost);
        return 1;
    }
    return 1;
}

dcmd_alugar(playerid,params[])
{
    #pragma unused params
    new str[255],str1[256],str5[255],pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerName(playerid, pname, 24);
    format(str1, sizeof(str1), "Houses/houseid%d", housenumber);
    format(str5, sizeof(str5), "Houses/Users/%s", udb_encode(pname));
    if(dini_Isset(str5, "Rentid"))
    {
        if (dini_Int(str5, "Rentid")!=-255) return SendClientMessage(playerid, c_r, "Vocк sу pode alugar uma casa!");
    }
    format(str, sizeof(str), dini_Get(str1,"Name"));
    if (strcmp(str,"ForSale",true)==0) return SendClientMessage(playerid, c_r, "Esta casa nгo tem dono!");
    if(hInfo[housenumber][Rentable]==0 || strcmp(hInfo[housenumber][Renter], "Ninguem", true)) return SendClientMessage(playerid, c_r, "Esta casa nгo й alugavel!");
    if(GetPlayerMoney(playerid)<hInfo[housenumber][Rentcost]) return SendClientMessage(playerid, c_r, "Vocк nгo tem dinheiro suficiente!");
    dini_Set(str1, "Renter", udb_encode(pname));
    format(hInfo[housenumber][Renter], 24, udb_encode(pname));
    dini_IntSet(str5, "Rentid", housenumber);
    format(str1, sizeof(str1), "Vocк alugou esta casa, que vai custar-lhe $%i por hora!", hInfo[housenumber][Rentcost]);
    SendClientMessage(playerid, c_y, str1);
    return 1;
}

dcmd_desalugar(playerid,params[])
{
    #pragma unused params
    new str1[256],pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerName(playerid, pname, 24);
    format(str1, sizeof(str1), "Houses/houseid%d", housenumber);
    if(strcmp(hInfo[housenumber][Renter], pname, true)) return SendClientMessage(playerid, c_r, "Vocк nгo estб alugando esta casa!");

    dini_Set(str1, "Renter", "Ninguem");
    format(hInfo[housenumber][Renter], 24, "Ninguem");
    format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname));
    dini_IntSet(str1, "Rentid", -255);
    SendClientMessage(playerid, c_y, "Vocк nгo tem o aluguel desta casa");
    return 1;
}

dcmd_infocasa(playerid,params[])
{
    #pragma unused params
    SendClientMessage(playerid, c_y, "-------------");
    SendClientMessage(playerid, c_y, "Casa Comandos (Ajuda)");
    SendClientMessage(playerid, c_y, "-------------");
    SendClientMessage(playerid, c_y, "/setaluguel [0/1] [Preзo] - Dono da casa");
    SendClientMessage(playerid, c_y, "/Comprarcarro [nomecarro]   - Dono da casa");
    SendClientMessage(playerid, c_y, "/pegarrendas              - Dono da casa");
    SendClientMessage(playerid, c_y, "/fecharcasa                 - Alugante/Dono da casa");
    SendClientMessage(playerid, c_y, "/abrircasa               - Alugante/Dono da casa");
    SendClientMessage(playerid, c_y, "/pagaraluguel              - Alugante");
    SendClientMessage(playerid, c_y, "/desalugar               - Alugante");
    SendClientMessage(playerid, c_y, "/alugar                 - Sem casa");
    SendClientMessage(playerid, c_y, "-------------");
    return 1;
}

dcmd_casastatus(playerid,params[])
{
    #pragma unused params
    new str[256],housenumber;
    housenumber = GetHouseID(playerid);
    format(str, sizeof(str), "Dono: %s", hInfo[housenumber][Name]);
    SendClientMessage(playerid, c_y, str);
    format(str, sizeof(str), "Preзo: $%d", hInfo[housenumber][Cost]);
    SendClientMessage(playerid, c_y, str);
    format(str, sizeof(str), "Alugante: %s", hInfo[housenumber][Renter]);
    SendClientMessage(playerid, c_y, str);
    format(str, sizeof(str), "Aluguel Custo: $%d / Por Horas", hInfo[housenumber][Rentcost]);
    SendClientMessage(playerid, c_y, str);
    return 1;
}

dcmd_pegarrendas(playerid,params[])
{
    #pragma unused params
    new pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerName(playerid, pname, 24);
    if(strcmp(hInfo[housenumber][Name],pname,true)==0)
    {
        new str[255];
        SendClientMessage(playerid, c_y, "Vocк recolheu a renda da casa!");
        format(str, sizeof(str), "Houses/houseid%d", housenumber);
        GivePlayerMoney(playerid, dini_Int(str, "RentGet"));
        dini_IntSet(str, "RentGet", 0);
    }
    else
    {
        SendClientMessage(playerid, c_r, "Esta casa nгo й sua!");
    }
    return 1;
}

dcmd_pagaraluguel(playerid,params[])
{
    #pragma unused params
    new pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerName(playerid, pname, 24);
    if(strcmp(hInfo[housenumber][Renter],pname,true)==0)
    {
        new str[255];
        format(str, sizeof(str), "Houses/houseid%d", housenumber);
        if(GetPlayerMoney(playerid)<dini_Int(str, "RentPay")) return SendClientMessage(playerid, c_r, "Vocк nгo tem dinheiro suficiente para pagar o dono da casa!");
        SendClientMessage(playerid, c_y, "Vocк pagou o dinheiro do aluguel ao dono!");
        GivePlayerMoney(playerid, -dini_Int(str, "RentPay"));
        dini_IntSet(str, "RentPay", 0);
    }
    else
    {
        SendClientMessage(playerid, c_r, "Vocк nгo estб alugando esta casa!");
    }
    return 1;
}

dcmd_comprarcarro(playerid,params[])
{
    #pragma unused params
    new pname[24],housenumber;
    housenumber = GetHouseID(playerid);
    GetPlayerName(playerid, pname, 24);
    if(cInfo[housenumber][GotCar]==0) return SendClientMessage(playerid, c_r, "Esta casa nгo pode comprar um carro!");
    if(strcmp(hInfo[housenumber][Name],pname,true)==0)
    {
        new carname[40];
        if (sscanf(params, "s", carname))
        {
            SendClientMessage(playerid, c_r, "USE: /comprarcarro [CarName]");
        }
        else
        {
            new str[256], abc;
            for(new i=0;i<MAX_BUY_CARS;i++)
            {
                if(strcmp(carname,Buyable_Cars[i][CarName],true)==0)
                {
                    if(GetPlayerMoney(playerid)<Buyable_Cars[i][CarCost]) return SendClientMessage(playerid, c_r, "Vocк nгo tem dinheiro suficiente para comprar o carro!");
                    GivePlayerMoney(playerid, -Buyable_Cars[i][CarCost]);
                    cInfo[housenumber][CarModel] = Buyable_Cars[i][CarModel];
                    format(str, sizeof(str), "Houses/houseid%d", housenumber);
                    dini_IntSet(str, "CarModel", Buyable_Cars[i][CarModel]);
                    format(str, sizeof(str), "Vocк compro o carro %s por $%d!", carname, Buyable_Cars[i][CarCost]);
                    SendClientMessage(playerid, c_y, str);
                    SendClientMessage(playerid, c_y, "Vai levar algum tempo, para o seu carro vai ser entregue.");
                    cInfo[housenumber][NewCar] = 1;
                    abc = 1;
                }
            }
            if(abc==0)
            {
                SendClientMessage(playerid, c_r, "Nome do veнculo errado!Use /NomeCars");
                abc=0;
            }

        }
    }
    else
    {
        SendClientMessage(playerid, c_r, "Esta casa nгo й sua!");
    }
    return 1;
}

public newcar()
{
    for(new carid=0;carid<MAX_HOUSES;carid++)
    {
        if(cInfo[carid][NewCar]==1)
        {
            cInfo[carid][NewCar]=0;
            KillVehicle(cInfo[carid][HouseCar]);
            cInfo[carid][HouseCar] = CreateVehicle(cInfo[carid][CarModel], cInfo[carid][CarX], cInfo[carid][CarY], cInfo[carid][CarZ], cInfo[carid][CarRotation], cInfo[carid][CarColor1], cInfo[carid][CarColor2], cInfo[carid][Respawn_Delay]);
        }
    }
}

public KillVehicle(carid)
{
    for (new i=0;i<MAX_PLAYERS;i++)
    {
        if(IsPlayerInVehicle(i, carid))
        {
            RemovePlayerFromVehicle(i);
            KillVeh[carid] = true;
            SetVehicleToRespawn(carid);
            SendClientMessage(i, c_r, "Sistema: Seu carro foi destruнdo.");
            SendClientMessage(i, c_r, "Motivo: sistema de Casas.");
        }
        else
        {
            KillVeh[carid] = true;
            SetVehicleToRespawn(carid);
        }
    }
}

public OnVehicleSpawn(vehicleid)
{
    for(new i=0;i<MAX_HOUSES;i++)
    {
        if(KillVeh[cInfo[i][HouseCar]]==true)
        {
            KillVeh[cInfo[i][HouseCar]] = false;
            DestroyVehicle(cInfo[i][HouseCar]);
        }
    }
}

public rentfee()
{
    new str[255],str2[255],pname[24];
    for(new houseid=0;houseid<MAX_HOUSES;houseid++)
    {
        format(str, sizeof(str), "Houses/houseid%d", houseid);
        if(strcmp(hInfo[houseid][Renter], "Ninguem", true))
        {
            for(new ii=0;ii<MAX_PLAYERS;ii++)
            {
                if(IsPlayerConnected(ii))
                {
                    GetPlayerName(ii, pname, 24);
                    if(strcmp(hInfo[houseid][Renter], pname, true)==0)
                    {
                        format(str2, sizeof(str2), "Vocк tem que pagar $%s por a hora por ter alugado a casa !", hInfo[houseid][Rentcost]);
                        SendClientMessage(ii, c_y, str2);
                        dini_IntSet(str, "RentGet", dini_Int(str, "RentGet")+hInfo[houseid][Rentcost]);
                        dini_IntSet(str, "RentPay", dini_Int(str, "RentPay")+hInfo[houseid][Rentcost]);
                        hInfo[houseid][Rentfee]=1;
                    }
                }
            }
            if(hInfo[houseid][Rentfee]==0)
            {
                    if(strcmp(hInfo[houseid][Renter],"Ninguem"))
                    {
                        dini_IntSet(str, "RentGet", dini_Int(str, "RentGet")+hInfo[houseid][Rentcost]);
                        dini_IntSet(str, "RentPay", dini_Int(str, "RentPay")+hInfo[houseid][Rentcost]);
                    }
            }
            hInfo[houseid][Rentfee]=0;
        }
    }
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    if(GetHouseID(playerid) != -255) GetHouseStats(playerid, GetHouseID(playerid));
    return 0;
}

stock PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
    if(IsPlayerConnected(playerid))
    {
        new Float:oldposx, Float:oldposy, Float:oldposz;
        new Float:tempposx, Float:tempposy, Float:tempposz;
        GetPlayerPos(playerid, oldposx, oldposy, oldposz);
        tempposx = (oldposx -x);
        tempposy = (oldposy -y);
        tempposz = (oldposz -z);
        if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
        {
            return 1;
        }
    }
    return 0;
}

stock GetHouseID(playerid)
{
    for(new i=0; i<MAX_HOUSES; i++)
    {
        if(PlayerToPoint(MAX_DISTANCE_TO_PROP, playerid, hInfo[i][iconx], hInfo[i][icony], hInfo[i][iconz]))
        {
            return i;
        }
    }
    return -255;
}

stock sscanf(string[], format[], {Float,_}:...)
{
    new
        formatPos = 0,
        stringPos = 0,
        paramPos = 2,
        paramCount = numargs();
    while (paramPos < paramCount && string[stringPos])
    {
        switch (format[formatPos++])
        {
            case '\0':
            {
                return 0;
            }
            case 'i', 'd':
            {
                new
                    neg = 1,
                    num = 0,
                    ch = string[stringPos];
                if (ch == '-')
                {
                    neg = -1;
                    ch = string[++stringPos];
                }
                do
                {
                    stringPos++;
                    if (ch >= '0' && ch <= '9')
                    {
                        num = (num * 10) + (ch - '0');
                    }
                    else
                    {
                        return 1;
                    }
                }
                while ((ch = string[stringPos]) && ch != ' ');
                setarg(paramPos, 0, num * neg);
            }
            case 'h', 'x':
            {
                new
                    ch,
                    num = 0;
                while ((ch = string[stringPos++]))
                {
                    switch (ch)
                    {
                        case 'x', 'X':
                        {
                            num = 0;
                            continue;
                        }
                        case '0' .. '9':
                        {
                            num = (num << 4) | (ch - '0');
                        }
                        case 'a' .. 'f':
                        {
                            num = (num << 4) | (ch - ('a' - 10));
                        }
                        case 'A' .. 'F':
                        {
                            num = (num << 4) | (ch - ('A' - 10));
                        }
                        case ' ':
                        {
                            break;
                        }
                        default:
                        {
                            return 1;
                        }
                    }
                }
                setarg(paramPos, 0, num);
            }
            case 'c':
            {
                setarg(paramPos, 0, string[stringPos++]);
            }
            case 'f':
            {
                new tmp[25];
                strmid(tmp, string, stringPos, stringPos+sizeof(tmp)-2);
                setarg(paramPos, 0, _:floatstr(tmp));
            }
            case 's', 'z':
            {
                new
                    i = 0,
                    ch;
                if (format[formatPos])
                {
                    while ((ch = string[stringPos++]) && ch != ' ')
                    {
                        setarg(paramPos, i++, ch);
                    }
                    if (!i) return 1;
                }
                else
                {
                    while ((ch = string[stringPos++]))
                    {
                        setarg(paramPos, i++, ch);
                    }
                }
                stringPos--;
                setarg(paramPos, i, '\0');
            }
            default:
            {
                continue;
            }
        }
        while (string[stringPos] && string[stringPos] != ' ')
        {
            stringPos++;
        }
        while (string[stringPos] == ' ')
        {
            stringPos++;
        }
        paramPos++;
    }
    while (format[formatPos] == 'z') formatPos++;
    return format[formatPos];
}

/*public OnVehicleMod(vehicleid, componentid)
{
    new house[256];
    for(new i=0; i<MAX_HOUSES; i++)
    {
        format(house, sizeof(house), "Houses/houseid%d",i);
        if(!dini_Isset(house, "CarModel")) continue;
        if(
    }
    return 1;
}*/
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)