Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <dini>
- #define MAX_HOUSES 200
- #define house "/houses/Owners.ini"
- #pragma unused strtok
- enum houseinfo
- {
- HouseNames[60], //To save into the file
- HouseCost, //The house cost
- HouseOwner[24], // The house owners Name
- Float:PickupX, // PickupX
- Float:PickupY, //PickupY
- Float:PickupZ, //PickupZ
- Float:TeleX, //The house location
- Float:TeleY, //The house location
- Float:TeleZ, //The house location
- Interior, //The house Interior
- HouseSell, //House sell price
- Owned,
- Virtual
- }
- new HouseInfo[MAX_HOUSES][houseinfo]; //It saves all the info in this variable.
- new HouseCount = -1; //House count
- new PickupID[MAX_HOUSES];
- new InHouse[MAX_PLAYERS] = -1;
- stock CreateHouse(Filename[], Cost, Float:Pickupx, Float:Pickupy, Float:Pickupz, Float:Telex, Float:Teley, Float:Telez, interior, sell)
- {
- if(!dini_Exists(house))
- {
- dini_Create(house);
- }
- HouseCount ++;
- new ID = HouseCount; //HouseID
- format(HouseInfo[ID][HouseNames], 60, "%s", Filename); //Saves the HouseName into a variable
- HouseInfo[ID][HouseCost] = Cost;
- HouseInfo[ID][PickupX] = Pickupx;
- HouseInfo[ID][Virtual] = 2000000 + ID;
- HouseInfo[ID][PickupY] = Pickupy;
- HouseInfo[ID][PickupZ] = Pickupz;
- HouseInfo[ID][TeleX] = Telex;
- HouseInfo[ID][TeleY] = Teley;
- HouseInfo[ID][TeleZ] = Telez;
- HouseInfo[ID][Interior] = interior;
- HouseInfo[ID][HouseSell] = sell;
- format(HouseInfo[ID][HouseOwner], 24, "gj9043jg-er((23");
- if(strlen(dini_Get(house, Filename))) //This is to see if there is any owner.
- {
- format(HouseInfo[ID][HouseOwner], 24, "%s", dini_Get(house, Filename));
- HouseInfo[ID][Owned] = 1;
- }
- PickupID[ID] = CreatePickup(1273, 23, Pickupx, Pickupy, Pickupz, -1); //Creates the pickup :).
- Create3DTextLabel("House", 0x00A0F6AA, Pickupx, Pickupy, Pickupz + 0.75, 15.0, 0, 1);
- }
- public OnFilterScriptInit()
- {
- print("====================================================");
- printf("Property Error: You forgot to give property #%d a name!");
- print(" This property will not be created ");
- print("====================================================");
- CreateHouse("TestHouse1", 1, 2317.130615, 692.398498, 11.460937, 266.857757, 305.001586, 999.148437, 2, 1);
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid) //Pickup callback
- {
- for(new J; J<MAX_HOUSES; J++) //Loops through all houses
- {
- if(pickupid == PickupID[J]) //If the pickupid is one of our house ones
- {
- new str[75];
- if(HouseInfo[J][Owned] == 1)
- {
- format(str, sizeof(str), "~r~Casa Info~n~~g~Dono: ~w~%s", HouseInfo[J][HouseOwner]);
- }
- if(HouseInfo[J][Owned] == 0)
- {
- format(str, sizeof(str), "~r~Casa Info~n~~g~Dono: ~w~Sem dono");
- SendClientMessage(playerid, 0x67F6F6AA, "Esta casa está à venda! Use /comprar para comprá-la");
- }
- new str2[100];
- format(str2, sizeof(str2), "~g~Preço de Compra:~w~ %d ~n~~g~Preço de Venda:~w~ %d", HouseInfo[J][HouseCost], HouseInfo[J][HouseSell]);
- new str3[175];
- format(str3, sizeof(str3), "%s~n~%s", str, str2);
- GameTextForPlayer(playerid, str3, 3500, 3);
- return 1;
- }
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/comprarcasa", cmdtext, true, 10) == 0)
- {
- for(new i; i<MAX_HOUSES; i++)
- {
- if(!IsPlayerInRangeOfPoint(playerid, 3, HouseInfo[i][PickupX], HouseInfo[i][PickupY], HouseInfo[i][PickupZ])) continue;
- new Pname[24]; GetPlayerName(playerid, Pname, 24);
- for(new S; S<MAX_HOUSES; S++)
- {
- if(!strcmp(dini_Get("Owned.ini", HouseInfo[S][HouseNames]), Pname)) return SendClientMessage(playerid, 0xF60000AA, "Você já tem uma casa!");
- }
- if(GetPlayerMoney(playerid) < HouseInfo[i][HouseCost]) return SendClientMessage(playerid, 0xF60000AA, "Você não tem dinheiro suficiente para comprar esta casa");
- if(HouseInfo[i][Owned] == 1) return SendClientMessage(playerid, 0xF60000AA, "Esta casa já Tem Proprietario");
- GivePlayerMoney(playerid, - HouseInfo[i][HouseCost]);
- GameTextForPlayer(playerid, "~r~Casa Comprada", 2000, 3);
- HouseInfo[i][Owned] = 1;
- GetPlayerName(playerid, Pname, 24);
- format(HouseInfo[i][HouseOwner], 24, "%s", Pname);
- dini_Set(house, HouseInfo[i][HouseNames], Pname);
- return 1;
- }
- SendClientMessage(playerid, 0xF60000AA, "Você não está perto o suficiente de uma casa");
- return 1;
- }
- if (strcmp("/vendercasa", cmdtext, true, 10) == 0)
- {
- for(new i; i<MAX_HOUSES; i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 3, HouseInfo[i][PickupX], HouseInfo[i][PickupY], HouseInfo[i][PickupZ]))
- {
- new Pname[24]; GetPlayerName(playerid, Pname, 24);
- if(strcmp(Pname, HouseInfo[i][HouseOwner])) return SendClientMessage(playerid, 0xF60000AA, "Você não possui esta casa!");
- GivePlayerMoney(playerid, HouseInfo[i][HouseSell]);
- GameTextForPlayer(playerid, "~r~Casa Vendida!", 2000, 3);
- HouseInfo[i][Owned] = 0;
- format(HouseInfo[i][HouseOwner], 24, "0943jt3u9*egjlfd");
- dini_Unset(house, HouseInfo[i][HouseNames]);
- return 1;
- }
- }
- SendClientMessage(playerid, 0xF60000AA, "Você não está perto o suficiente de uma casa");
- return 1;
- }
- if (strcmp("/entrarcasa", cmdtext, true, 10) == 0)
- {
- for(new i; i<MAX_HOUSES; i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 3, HouseInfo[i][PickupX], HouseInfo[i][PickupY], HouseInfo[i][PickupZ]))
- {
- new Pname[24]; GetPlayerName(playerid, Pname, 24);
- if(strcmp(Pname, HouseInfo[i][HouseOwner])) return SendClientMessage(playerid, 0xF60000AA, "Você não possui esta casa!");
- SetPlayerPos(playerid, HouseInfo[i][TeleX], HouseInfo[i][TeleY], HouseInfo[i][TeleZ]);
- SetPlayerInterior(playerid, HouseInfo[i][Interior]);
- InHouse[playerid] = i;
- SetPlayerVirtualWorld(playerid, HouseInfo[i][Virtual]);
- SendClientMessage(playerid, 0x00C4F6AA, "Você Entrou na sua casa");
- return 1;
- }
- }
- SendClientMessage(playerid, 0xF60000AA, "Você não está perto o suficiente de uma casa");
- return 1;
- }
- if (strcmp("/saircasa", cmdtext, true, 10) == 0)
- {
- if(InHouse[playerid] == -1) return SendClientMessage(playerid, 0xF60000AA, "Você não está em uma casa");
- SetPlayerPos(playerid, HouseInfo[InHouse[playerid]][PickupX], HouseInfo[InHouse[playerid]][PickupY], HouseInfo[InHouse[playerid]][PickupZ]);
- SetPlayerInterior(playerid, 0);
- SetPlayerVirtualWorld(playerid, 0);
- SendClientMessage(playerid, 0x00C4F6AA, "Voçê saiu da sua casa");
- InHouse[playerid] = -1;
- return 1;
- }
- return 0;
- }
- strtok(const string[], &index)
- {
- new length = strlen(string);
- while ((index < length) && (string[index] <= ' '))
- {
- index++;
- }
- new offset = index;
- new result[20];
- while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement