(2)when i type any cmd from this house system it say unknown cmd and it work then
(3)when i type /sellhouse and price it sell but the owner house name didn't delete
pawn Код:
/*
-------------------------------------------
| _____ _ __ |
| / ____| | / _| |
| | (___ | |_ ___| |_ __ _ _ __ |
| \___ \| __/ _ \ _/ _` | '_ \ |
| ____) | || __/ || (_| | | | | |
| |_____/ \__\___|_| \__,_|_| |_| |
| |
| ** House System v1.0 ** |
| |
-------------------------------------------
.:: Do not remove Credits ::.
*/
#include <a_samp>
#include <Dini>
#include <dudb>
#include <utils>
new FALSE = false;
#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
#define SendFormattedMessage(%0,%1,%2) do{new _str[128]; format(_str,128,%2); SendClientMessage(%0,%1,_str);}while(FALSE)
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_LIME 0x80FF00AA
#define MAX_HOUSES 100 // Max houses allowed to be created
#define PTP_RADIUS 2.0 // Radius of PlayerToPoint Function
forward SavePlayerHouse(houseid);
forward ReadPlayerHouseData(playerid);
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
new Timer[1];
enum hInfo
{
hName[24],
hSellable,
hSell,
hRent,
hLevel,
hPickup,
Float:hExitX,
Float:hExitY,
Float:hExitZ,
hVirtualWorld,
hLocked
};
new HouseInfo[MAX_HOUSES][hInfo];
new Float:HousesCoords[13][3] = {
{222.9534, 1287.7649, 1082.1406}, // Sml - 1 bedroom
{261.0827, 1284.6899, 1080.2578}, // Sml - 1 bedroom
{260.6734, 1237.7909, 1084.2578}, // Sml - 1 bedroom
{376.7426, 1417.3226, 1081.3281}, // Sml - 1 bedroom
{295.2874, 1473.2769, 1080.2578}, // Med - 2 bedroom
{327.9431, 1478.3801, 1084.4375}, // Med - 2 bedroom
{2270.1050, -1210.3917, 1047.5625}, // Med - 2 bedroom
{447.1211, 1397.8444, 1084.3047}, // Med - 2 bedroom
{2196.0063, -1204.6326, 1049.0234}, // Lrg - 3 bedroom
{235.3416, 1187.2882, 1080.2578}, // Lrg - 3 bedroom
{490.9987, 1399.4164, 1080.2578}, // Lrg - 3 bedroom
{227.1212, 1114.1840, 1080.9972}, // Lrg - 4 bedroom
{225.6624, 1022.5345, 1084.0145} // Xlrg - 4 bedrooms
};
new HousesLevels[13][2] = {
{1, 2000}, // Sml - 1 bedroom
{4, 4500}, // Sml - 1 bedroom
{9, 7000}, // Sml - 1 bedroom
{15, 10000}, // Sml - 1 bedroom
{15, 17000}, // Med - 2 bedroom
{15, 23000}, // Med - 2 bedroom
{10, 34000}, // Med - 2 bedroom
{2, 62000}, // Med - 2 bedroom
{6, 102000}, // Lrg - 3 bedroom
{3, 156000}, // Lrg - 3 bedroom
{2, 188000}, // Lrg - 3 bedroom
{5, 235000}, // Lrg - 4 bedroom
{7, 295000} // Xlrg - 4 bedrooms
};
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print("Stefan's House System");
print("--------------------------------------\n");
for(new i = 0; i <= MAX_PLAYERS; i++)
{
Timer[0] = SetTimerEx("ReadPlayerHouseData", 1000, true, "%i", i);
}
for(new h = 0; h <= MAX_HOUSES; h++) // Player Homes
{
LoadPlayerHouse(h);
}
return true;
}
public OnFilterScriptExit()
{
KillTimer(Timer[0]);
}
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(househelp,9,cmdtext);
dcmd(houseinfo,9,cmdtext);
dcmd(enter,5,cmdtext);
dcmd(exit,4,cmdtext);
/*dcmd(evict,5,cmdtext);
dcmd(renthouse,9,cmdtext);
dcmd(unrenthouse,11,cmdtext);
dcmd(tenants,7,cmdtext);*/
dcmd(house,5,cmdtext);
dcmd(lockhouse,9,cmdtext);
dcmd(unlockhouse,11,cmdtext);
dcmd(rentprice,9,cmdtext);
dcmd(buyhouse,8,cmdtext);
dcmd(sellhouse,9,cmdtext);
dcmd(unsellhouse,11,cmdtext);
dcmd(createhouse,11,cmdtext);
dcmd(destroyhouse,12,cmdtext);
return false;
}
///////////////////////////////////////
// Buisness + Homes Functions
//////////////////////////////////////
stock CreatePlayerHouse(playerid, sellprice, HouseLvl)
{
if((ReturnNextUnusedHouseID()-1) >= MAX_HOUSES) return SendClientMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: Maximum amount of houses on the server have been created.");
new house[64], Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z);
new NextHouseID = ReturnNextUnusedHouseID();
new World = ReturnNextUnusedVirtualWorld();
format(house, sizeof(house), "/Houses/%d.dini.save", NextHouseID);
if(!dini_Exists(house)){
dini_Create(house);
dini_Set(house, "Name", "None");
dini_IntSet(house, "For_Sell", 1);
dini_IntSet(house, "Sell_Price", sellprice);
dini_IntSet(house, "Rent_Price", 1000);
dini_IntSet(house, "House_Level", HouseLvl);
dini_FloatSet(house,"Exit_Coord:X", X);
dini_FloatSet(house,"Exit_Coord:Y", Y);
dini_FloatSet(house,"Exit_Coord:Z", Z);
dini_IntSet(house, "VirtualWorld", World);
dini_IntSet(house, "Status", 0);
LoadPlayerHouse(NextHouseID);
SendClientMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: House has been Successfully created.");
}
return true;
}
stock LoadPlayerHouse(houseid)
{
new house[64]; format(house, sizeof(house), "/Houses/%d.dini.save", houseid);
if(dini_Exists(house)){
format(HouseInfo[houseid][hName], MAX_PLAYER_NAME, "%s", dini_Get(house, "Name"));
HouseInfo[houseid][hSellable] = dini_Int(house, "For_Sell");
HouseInfo[houseid][hSell] = dini_Int(house, "Sell_Price");
HouseInfo[houseid][hRent] = dini_Int(house, "Rent_Price");
HouseInfo[houseid][hLevel] = dini_Int(house, "House_Level");
HouseInfo[houseid][hExitX] = dini_Float(house, "Exit_Coord:X");
HouseInfo[houseid][hExitY] = dini_Float(house, "Exit_Coord:Y");
HouseInfo[houseid][hExitZ] = dini_Float(house, "Exit_Coord:Z");
HouseInfo[houseid][hVirtualWorld] = dini_Int(house, "VirtualWorld");
HouseInfo[houseid][hLocked] = dini_Int(house, "Status");
if(HouseInfo[houseid][hSellable] == 1){
HouseInfo[houseid][hPickup] = CreatePickup(1273, 23, HouseInfo[houseid][hExitX], HouseInfo[houseid][hExitY], HouseInfo[houseid][hExitZ]); // not bought
} else {
HouseInfo[houseid][hPickup] = CreatePickup(1272,23, HouseInfo[houseid][hExitX], HouseInfo[houseid][hExitY], HouseInfo[houseid][hExitZ]); // bought
}
}
return true;
}
public SavePlayerHouse(houseid)
{
new house[64]; format(house, sizeof(house), "/Houses/%d.dini.save", houseid);
if(dini_Exists(house)){
dini_Set(house, "Name", HouseInfo[houseid][hName]);
dini_IntSet(house, "For_Sell", HouseInfo[houseid][hSellable]);
dini_IntSet(house, "Sell_Price", HouseInfo[houseid][hSell]);
dini_IntSet(house, "Rent_Price", HouseInfo[houseid][hRent]);
dini_IntSet(house, "House_Level", HouseInfo[houseid][hLevel]);
dini_FloatSet(house, "Exit_Coord:X", HouseInfo[houseid][hExitX]);
dini_FloatSet(house, "Exit_Coord:Y", HouseInfo[houseid][hExitY]);
dini_FloatSet(house, "Exit_Coord:Z", HouseInfo[houseid][hExitZ]);
dini_IntSet(house, "VirtualWorld", HouseInfo[houseid][hVirtualWorld]);
dini_IntSet(house, "Status", HouseInfo[houseid][hLocked]);
}
return true;
}
stock ReturnNextUnusedHouseID()
{
new house[64];
for(new h = 0; h <= MAX_HOUSES; h++){
format(house, sizeof(house), "/Houses/%d.dini.save", h);
if(!dini_Exists(house)) return h; }
return true;
}
stock ReturnNextUnusedVirtualWorld()
{
new house[64]; // Please do not make more then 255 houses because that is the Maximum Virtual Worlds. Or use as many as you want in 0.3
format(house, sizeof(house), "/Houses/%d.dini.save", ReturnNextUnusedHouseID()-1);
return dini_Int(house, "VirtualWorld")+1;
}
public ReadPlayerHouseData(playerid)
{
new string[256], house[64];
for(new h = 0; h <= MAX_HOUSES; h++){
format(house, sizeof(house), "/Houses/%d.dini.save", h);
if(dini_Exists(house)){
if(HouseInfo[h][hSellable] == 1){
if(PlayerToPoint(PTP_RADIUS, playerid, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ])) {
format(string, sizeof(string), "~g~] House for Sale ]~n~~w~Owner:~y~ %s~n~~w~Level:~r~ %d~n~~w~Sell Price:~r~ %d~n~~w~Rent Cost:~r~ %d", HouseInfo[h][hName], HouseInfo[h][hLevel], HouseInfo[h][hSell], HouseInfo[h][hRent]);
GameTextForPlayer(playerid,string, 1500, 3);
}
} else if(HouseInfo[h][hSellable] == 0){
if(PlayerToPoint(PTP_RADIUS, playerid, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ])) {
format(string, sizeof(string), "~w~Owner:~y~ %s~n~~w~Level:~r~ %d~n~~w~Rent Cost:~r~ %d", HouseInfo[h][hName], HouseInfo[h][hLevel], HouseInfo[h][hRent]);
GameTextForPlayer(playerid,string, 1500, 3);
} } } }
}
stock DestroyPlayerHouse(playerid, houseid)
{
new house[64];
format(house, sizeof(house), "/Houses/%d.dini.save", houseid);
if(dini_Exists(house)){
dini_Remove(house);
DestroyPickup(HouseInfo[houseid][hPickup]);
SendClientMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: The given house has been destroyed.");
} else return SendClientMessage(playerid, COLOR_WHITE, ".:: [ERROR]: The given house id does not exsist so it cannot be destroyed.");
return false;
}
///////////////////////////
// Dcmd Commands
//////////////////////////
dcmd_househelp(playerid,params[]) {
#pragma unused params
if(IsPlayerConnected(playerid)){
SendClientMessage(playerid, COLOR_WHITE,"[HOUSE OWNER]: /(un)sellhouse, /(un)lockhouse, /rentprice, /tenants, /evict, /house (upgrade/downgrade)");
SendClientMessage(playerid, COLOR_WHITE,"[HOUSE PLAYERS]: /houseinfo, /buyhouse, /(un)renthouse, /enter, /exit");
}
return true;
}
dcmd_houseinfo(playerid,params[]) {
#pragma unused params
if(IsPlayerConnected(playerid)){
for(new h = 0; h <= MAX_HOUSES; h++){
if(PlayerToPoint(PTP_RADIUS, playerid, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ])){
new IsLocked[24];
if(HouseInfo[h][hLocked] == 1) { IsLocked = "True"; } else { IsLocked = "False"; }
SendClientMessage(playerid, COLOR_LIME,"HOUSE STATS ----------------------------------------------------------");
SendFormattedMessage(playerid, COLOR_WHITE, "Owner: %s - Level[%d] - RentCost[$%d] - SellPrice[$%d]", HouseInfo[h][hName], HouseInfo[h][hLevel], HouseInfo[h][hRent], HouseInfo[h][hSell]);
SendFormattedMessage(playerid, COLOR_WHITE, "IsLocked[%s] - HouseID[%d] - ExitCoords[X:%.4f, Y:%.4f, Z:%.4f]", IsLocked, h, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ]);
SendClientMessage(playerid, COLOR_LIME,"----------------------------------------------------------");
} } }
return true;
}
dcmd_enter(playerid,params[]) {
#pragma unused params
if(IsPlayerConnected(playerid)){
for(new h = 0; h <= MAX_HOUSES; h++){
if(PlayerToPoint(PTP_RADIUS, playerid, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ])){
new Level = HouseInfo[h][hLevel];
if(HouseInfo[h][hLocked] == 1 && strcmp(HouseInfo[h][hName],GetName(playerid), false ) != 0) return SendClientMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: This house has been locked by the owner.");
SetPlayerPos(playerid, HousesCoords[Level][0], HousesCoords[Level][1], HousesCoords[Level][2]);
SetPlayerInterior(playerid, HousesLevels[Level][0]); SetPlayerVirtualWorld(playerid, HouseInfo[h][hVirtualWorld]);
} } }
return true;
}
dcmd_exit(playerid,params[]) {
#pragma unused params
if(IsPlayerConnected(playerid)){
for(new h = 0; h <= MAX_HOUSES; h++){
if(PlayerToPoint(PTP_RADIUS, playerid, HousesCoords[HouseInfo[h][hLevel]][0], HousesCoords[HouseInfo[h][hLevel]][1], HousesCoords[HouseInfo[h][hLevel]][2])){
SetPlayerPos(playerid, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ]);
SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0);
} } }
}
/*dcmd_evict(playerid,params[]) { // This needs to be intergrated with your players .ini account
#pragma unused params
if(IsPlayerConnected(playerid)){
new giveplayerid;
if(sscanf(params, "i", giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE, "[USAGE]: /evict [id]");
if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE, "The given player does not exist");
for(new h = 0; h <= MAX_HOUSES; h++){
if(PlayerToPoint(PTP_RADIUS, playerid, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ])){
if(strcmp(HouseInfo[h][hName],GetName(playerid), false ) == 0){
if(PlayerInfo[giveplayerid][pHouse] != h) return SendClientMessage(playerid, COLOR_WHITE, ".:: [ERROR]: This player is not renting your house.");
PlayerInfo[giveplayerid][pHouse] = -1; PlayerUpdate(giveplayerid);
SendFormattedMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: You have evicted %s[%d] from your house.", GetName(giveplayerid), giveplayerid);
} else return SendClientMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: You are not the owner of this house.");
} } }
return true;
}
dcmd_tenants(playerid,params[]) { // This needs to be intergrated with your players .ini account
#pragma unused params
if(IsPlayerConnected(playerid)){
for(new i = 0; i <= MAX_PLAYERS; i++){
for(new h = 0; h <= MAX_HOUSES; h++){
if(PlayerToPoint(PTP_RADIUS, playerid, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ])){
if(PlayerInfo[i][pHouse] == h){
if(strcmp(HouseInfo[h][hName],GetName(playerid), false ) == 0){
PlayerInfo[giveplayerid][pHouse] = -1;
SendClientMessage(playerid, COLOR_LIME, "_---- Tenants ----");
SendFormattedMessage(playerid, COLOR_WHITE, "%s[%d]", GetName(i), i);
} else return SendClientMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: You are not the owner of this house.");
} } } } }
return true;
}
dcmd_renthouse(playerid,params[]) { // This needs to be intergrated with your players .ini account
#pragma unused params
if(IsPlayerConnected(playerid)){
for(new h = 0; h <= MAX_HOUSES; h++){
if(PlayerToPoint(PTP_RADIUS, playerid, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ])){
if(HouseInfo[h][hName] == "Name") return SendClientMessage(playerid, COLOR_WHITE, ".:: [ERROR]: No one has bought this house so you cannot rent from here.");
if(PlayerInfo[playerid][pHouse] != -1) return SendClientMessage(playerid, COLOR_WHITE, ".:: [ERROR]: You are allready renting a house. Use /unrenthouse to stop renting there.");
PlayerInfo[playerid][pHouse] = h; PlayerUpdate(giveplayerid);
SendFormattedMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: You are now renting from %s.", HouseInfo[h][hName]);
} } }
return true;
}
dcmd_unrenthouse(playerid,params[]) { // This needs to be intergrated with your players .ini account
#pragma unused params
if(IsPlayerConnected(playerid)){
if(PlayerInfo[playerid][pHouse] == -1) return SendClientMessage(playerid, COLOR_WHITE, ".:: [ERROR]: You are not renting a house.");
PlayerInfo[playerid][pHouse] = -1; PlayerUpdate(giveplayerid);
SendFormattedMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: You are not renting from %s anymore.", HouseInfo[h][hName]);
}
return true;
}
*/
dcmd_buyhouse(playerid,params[]) {
#pragma unused params
if(IsPlayerConnected(playerid)){
for(new h = 0; h <= MAX_HOUSES; h++){
if(PlayerToPoint(PTP_RADIUS, playerid, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ])){
if(strcmp(HouseInfo[h][hName],GetName(playerid), false ) != 0){
if(HouseInfo[h][hSellable] == 1){
if(GetPlayerMoney(playerid) < HouseInfo[h][hSell]) return SendClientMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: You do not have anough money to buy this house.");
DestroyPickup(HouseInfo[h][hPickup]);
HouseInfo[h][hPickup] = CreatePickup(1272,23, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ]); // bought
HouseInfo[h][hSellable] = 0; GivePlayerMoney(playerid, -HouseInfo[h][hSell]);
format(HouseInfo[h][hName], 24, "%s", GetName(playerid)); SavePlayerHouse(h);
} else return SendClientMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: This house is not for sale.");
} else return SendClientMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: You are cannot buy the house you are selling.");
} } }
return true;
}
dcmd_rentprice(playerid,params[]) {
#pragma unused params
if(IsPlayerConnected(playerid)){
new Price;
if(sscanf(params, "i", Price)) return SendClientMessage(playerid, COLOR_WHITE, "[USAGE]: /rentprice [rentprice]");
if(Price < 0 || Price > 10000) return SendClientMessage(playerid, COLOR_WHITE, "You cannot set the rent price below 0 or above 10k");
for(new h = 0; h <= MAX_HOUSES; h++){
if(PlayerToPoint(PTP_RADIUS, playerid, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ])){
if(strcmp(HouseInfo[h][hName],GetName(playerid), false ) == 0){
HouseInfo[h][hRent] = Price; SavePlayerHouse(h);
} else return SendClientMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: You are not the owner of this house.");
} } }
return true;
}
dcmd_house(playerid,params[]) {
#pragma unused params
if(IsPlayerConnected(playerid)){
new tmp[64];
if(sscanf(params, "s", tmp)) return SendClientMessage(playerid, COLOR_WHITE, "[USAGE]: /house (upgrade/downgrade)");
SendFormattedMessage(playerid, COLOR_WHITE, "Houses: 0[%d], 1[%d], 2[%d], 3[%d], 4[%d], 5[%d], 6[%d]", HousesLevels[0][1], HousesLevels[1][1], HousesLevels[2][1], HousesLevels[3][1], HousesLevels[4][1], HousesLevels[5][1], HousesLevels[6][1]);
SendFormattedMessage(playerid, COLOR_WHITE, "7[%d], 8[%d], 9[%d], 10[%d], 11[%d], 12[%d]", HousesLevels[7][1], HousesLevels[8][1], HousesLevels[9][1], HousesLevels[10][1], HousesLevels[11][1], HousesLevels[12][1]);
if(strlen(tmp) == strlen("upgrade")){
for(new h = 0; h <= MAX_HOUSES; h++){
if(PlayerToPoint(PTP_RADIUS, playerid, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ])){
if(strcmp(HouseInfo[h][hName],GetName(playerid), false ) == 0){
if(HouseInfo[h][hLevel]+1 > 12) return SendClientMessage(playerid, COLOR_WHITE, "You cannot set your house lvl above 12");
new Level = HousesLevels[HouseInfo[h][hLevel]+1][1];
SendFormattedMessage(playerid, COLOR_WHITE, "You have added improvments to your house that costs $%d", Level);
HouseInfo[h][hLevel] = (HouseInfo[h][hLevel]+1); GivePlayerMoney(playerid, -Level);
SavePlayerHouse(h);
} else return SendClientMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: You are not the owner of this house."); } }
}
if(strlen(tmp) == strlen("downgrade")){
for(new h = 0; h <= MAX_HOUSES; h++){
if(PlayerToPoint(PTP_RADIUS, playerid, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ])){
if(strcmp(HouseInfo[h][hName],GetName(playerid), false ) == 0){
if(HouseInfo[h][hLevel]-1 < 0) return SendClientMessage(playerid, COLOR_WHITE, "You cannot set your house lvl below 0");
new Level = HousesLevels[HouseInfo[h][hLevel]-1][1];
SendFormattedMessage(playerid, COLOR_WHITE, "You have removed improvments done to your house and have been refunded $%d", Level);
HouseInfo[h][hLevel] = (HouseInfo[h][hLevel]-1); GivePlayerMoney(playerid, Level);
SavePlayerHouse(h);
} else return SendClientMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: You are not the owner of this house."); } }
}
}
return true;
}
dcmd_lockhouse(playerid,params[]) {
#pragma unused params
if(IsPlayerConnected(playerid)){
for(new h = 0; h <= MAX_HOUSES; h++){
if(PlayerToPoint(PTP_RADIUS, playerid, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ])){
if(strcmp(HouseInfo[h][hName],GetName(playerid), false ) == 0){
if(HouseInfo[h][hLocked] == 1) return SendClientMessage(playerid, COLOR_WHITE, ".:: [ERROR]: This house is allready locked.");
HouseInfo[h][hLocked] = 1; SavePlayerHouse(h);
SendClientMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: You house has been locked.");
} else return SendClientMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: You are not the owner of this house.");
} } }
return true;
}
dcmd_unlockhouse(playerid,params[]) {
#pragma unused params
if(IsPlayerConnected(playerid)){
for(new h = 0; h <= MAX_HOUSES; h++){
if(PlayerToPoint(PTP_RADIUS, playerid, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ])){
if(strcmp(HouseInfo[h][hName],GetName(playerid), false ) == 0){
if(HouseInfo[h][hLocked] == 0) return SendClientMessage(playerid, COLOR_WHITE, ".:: [ERROR]: This house is allready unlocked.");
HouseInfo[h][hLocked] = 0; SavePlayerHouse(h);
SendClientMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: You house has been unlocked.");
} else return SendClientMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: You are not the owner of this house.");
} } }
return true;
}
dcmd_sellhouse(playerid,params[]) {
#pragma unused params
if(IsPlayerConnected(playerid)){
new Sell;
if(sscanf(params, "i", Sell)) return SendClientMessage(playerid, COLOR_WHITE, "[USAGE]: /sellhouse [sellprice]");
if(Sell < 0 || Sell > 5000000) return SendClientMessage(playerid, COLOR_WHITE, "You cannot set the sell price below 0 or above 5 Mill");
for(new h = 0; h <= MAX_HOUSES; h++){
if(PlayerToPoint(PTP_RADIUS, playerid, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ])){
if(strcmp(HouseInfo[h][hName],GetName(playerid), false ) == 0){
DestroyPickup(HouseInfo[h][hPickup]);
HouseInfo[h][hPickup] = CreatePickup(1273, 23, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ]); // not bought
HouseInfo[h][hSellable] = 1; HouseInfo[h][hSell] = Sell; SavePlayerHouse(h);
} else return SendClientMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: You are not the owner of this house.");
} } }
return true;
}
dcmd_unsellhouse(playerid,params[]) {
#pragma unused params
if(IsPlayerConnected(playerid)){
for(new h = 0; h <= MAX_HOUSES; h++){
if(PlayerToPoint(PTP_RADIUS, playerid, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ])){
if(strcmp(HouseInfo[h][hName],GetName(playerid), false ) == 0){
DestroyPickup(HouseInfo[h][hPickup]);
HouseInfo[h][hPickup] = CreatePickup(1272,23, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ]); // bought
HouseInfo[h][hSellable] = 0; SavePlayerHouse(h);
} else return SendClientMessage(playerid, COLOR_WHITE, ".:: [HOUSE]: You are not the owner of this house.");
} } }
return true;
}
dcmd_createhouse(playerid,params[]) {
#pragma unused params
if(IsPlayerConnected(playerid)){
//if(PlayerInfo[playerid][pAdmin] < 10) return SendClientMessage(playerid,COLOR_WHITE,"SERVER: Unknown command.");
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Only admins allowed to use this command");
new Sell, lvl;
if(sscanf(params, "ii", Sell, lvl)) return SendClientMessage(playerid, COLOR_WHITE, "[USAGE]: /createhouse [sellprice] [HouseLvl]");
if(Sell < 0 || Sell > 5000000) return SendClientMessage(playerid, COLOR_WHITE, "You cannot set the sell price below 0 or above 5 Mill");
if(lvl < 0 || lvl > 12) return SendClientMessage(playerid, COLOR_WHITE, "You cannot create a house lvl that is below 0 or above 12");
CreatePlayerHouse(playerid, Sell, lvl); }
return true;
}
dcmd_destroyhouse(playerid,params[]) {
#pragma unused params
if(IsPlayerConnected(playerid)){
//if(PlayerInfo[playerid][pAdmin] < 10) return SendClientMessage(playerid,COLOR_WHITE,"SERVER: Unknown command.");
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Only admins allowed to use this command");
new houseid;
if(sscanf(params, "i", houseid)) return SendClientMessage(playerid, COLOR_WHITE, "[USAGE]: /destroyhouse [houseid]");
DestroyPlayerHouse(playerid, houseid);}
return true;
}
///////////////////////////
// Standard Functions
//////////////////////////
stock GetName(playerid)
{
new pname[MAX_PLAYER_NAME]; pname="Invalid PlayerID";
if(IsPlayerConnected(playerid)) {
GetPlayerName(playerid, pname, sizeof (pname));
}
return pname;
}
public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
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 true; }
return false;
}
i tried carhouse it say can't read dini file but i already have dini file and the auther is old topic and it don't work plz help
Download the newest include, Open the Folder of the currently pawno software you use, extract the include, Then go to the folder of pawno that you use, with the new include, open it pawno.exe, Then open the fs And Hit F5