Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <zcmd>
- #include <sscanf2>
- #include <Dini>
- //------------------------------------------------------------------------------
- #define MAX_HOUSES 1000
- //------------------------------------------------------------------------------
- #define DIALOG_PRICE 570
- #define DIALOG_LEVEL 571
- #define DIALOG_HCMDS 572
- #define DIALOG_UPGRADE 573
- #define DIALOG_REMOVE 574
- //------------------------------------------------------------------------------
- enum hInfo
- {
- hPrice,
- hInterior,
- hLevel,
- hOwned,
- hPick,
- hLocked,
- hStored,
- Text3D:hLabel,
- hOwner[MAX_PLAYER_NAME],
- Float:hX,
- Float:hY,
- Float:hZ,
- Float:hEnterX,
- Float:hEnterY,
- Float:hEnterZ
- }
- //------------------------------------------------------------------------------
- new HouseInfo[MAX_HOUSES][hInfo];
- new houseid, removeid, Price, Level, Started[MAX_PLAYERS], CreateHouse[MAX_PLAYERS], InHouse[MAX_PLAYERS][MAX_HOUSES];
- new Text:Textdraw[10];
- //------------------------------------------------------------------------------
- CMD:house(playerid, params[])
- {
- TextDrawShowForPlayer(playerid, Textdraw[0]);
- TextDrawShowForPlayer(playerid, Textdraw[1]);
- TextDrawShowForPlayer(playerid, Textdraw[2]);
- TextDrawShowForPlayer(playerid, Textdraw[3]);
- TextDrawShowForPlayer(playerid, Textdraw[4]);
- TextDrawShowForPlayer(playerid, Textdraw[5]);
- TextDrawShowForPlayer(playerid, Textdraw[6]);
- TextDrawShowForPlayer(playerid, Textdraw[7]);
- TextDrawShowForPlayer(playerid, Textdraw[8]);
- TextDrawShowForPlayer(playerid, Textdraw[9]);
- Started[playerid] = 1;
- SelectTextDraw(playerid, 0xFFFFFFFF);
- for(new i = 0; i < 10; i++) SendClientMessage(playerid, -1, " ");
- SendClientMessage(playerid, -1, "{FF0000}[h-House]: {FFFFFF}Please, edit {FF0000}price {FFFFFF}& {FF0000}level {FFFFFF}and start creating house.");
- return 1;
- }
- //------------------------------------------------------------------------------
- CMD:hcmds(playerid, params[])
- {
- new Dialog[518];
- strcat(Dialog, "{FF0000}h-House Commands:\n\n", sizeof(Dialog));
- strcat(Dialog, "{FF9900}/hcmds {FFFFFF}- See this list with all commands of {FF0000}h-House System.\n", sizeof(Dialog));
- strcat(Dialog, "{FF9900}/buyhouse {FFFFFF}- Buy an house.\n", sizeof(Dialog));
- strcat(Dialog, "{FF9900}/sellhouse {FFFFFF}- Sell an house.\n", sizeof(Dialog));
- strcat(Dialog, "{FF9900}/enter {FFFFFF}- Enter in a house.\n", sizeof(Dialog));
- strcat(Dialog, "{FF9900}/exit {FFFFFF}- Exit from a house.\n", sizeof(Dialog));
- strcat(Dialog, "{FF9900}/lock {FFFFFF}- Lock your house.\n", sizeof(Dialog));
- strcat(Dialog, "{FF9900}/unlock {FFFFFF}- Unlock your house.\n", sizeof(Dialog));
- strcat(Dialog, "{FF9900}/store {FFFFFF}- Store cash safely in your house.\n", sizeof(Dialog));
- strcat(Dialog, "{FF9900}/withdraw {FFFFFF}- Withdraw money.\n", sizeof(Dialog));
- strcat(Dialog, "{FF9900}/upgrade {FFFFFF}- Upgrade your house's interior & level.\n", sizeof(Dialog));
- ShowPlayerDialog(playerid, DIALOG_HCMDS, DIALOG_STYLE_MSGBOX, "h-House Commands:", Dialog, "Exit", "");
- return 1;
- }
- //------------------------------------------------------------------------------
- CMD:buyhouse(playerid, params[])
- {
- new string[144], labelstring[144], name[MAX_PLAYER_NAME], file[50];
- GetPlayerName(playerid, name, sizeof(name));
- for(new i = 0; i < MAX_HOUSES; i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 5.0, HouseInfo[i][hX], HouseInfo[i][hY], HouseInfo[i][hZ]))
- {
- if(HouseInfo[i][hOwned] == 1) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}This house already have an Owner.");
- if(GetPlayerMoney(playerid) < HouseInfo[i][hPrice]) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You don't have enough money to buy this house.");
- format(string, sizeof(string), "{FF0000}[h-House]: {FFFFFF}You bought house ID: {FF0000}%d {FFFFFF}for {FF0000}$ %d.", i, HouseInfo[i][hPrice]);
- SendClientMessage(playerid, -1, string);
- DestroyPickup(HouseInfo[i][hPick]);
- format(labelstring, sizeof(labelstring), "{15FF00}House ID: {FFFFFF}%d\n{15FF00}Owner: {FFFFFF}%s\n{15FF00}Price: {FFFFFF}%d\n{15FF00}Level: {FFFFFF}%d", i, name, HouseInfo[i][hPrice], HouseInfo[i][hLevel]);
- HouseInfo[i][hPick] = CreatePickup(1272, 1, HouseInfo[i][hX], HouseInfo[i][hY], HouseInfo[i][hZ], 0);
- Update3DTextLabelText(HouseInfo[i][hLabel], 0xFFFFFFFF, labelstring);
- GivePlayerMoney(playerid, -HouseInfo[i][hPrice]);
- HouseInfo[i][hOwned] = 1;
- HouseInfo[i][hOwner] = name;
- format(file, sizeof(file), "Houses/%d.ini", i);
- if(fexist(file))
- {
- dini_IntSet(file, "Owned", 1);
- dini_Set(file, "Owner", name);
- }
- printf("Player %s bought house ID: %d for $ %d.", name, i, HouseInfo[i][hPrice]);
- }
- }
- return 1;
- }
- //------------------------------------------------------------------------------
- CMD:sellhouse(playerid, params[])
- {
- new pname[MAX_PLAYER_NAME], labelstring[144], string[144], file[50];
- GetPlayerName(playerid, pname, sizeof(pname));
- for(new i = 0; i < MAX_HOUSES; i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 5.0, HouseInfo[i][hX], HouseInfo[i][hY], HouseInfo[i][hZ]))
- {
- if(HouseInfo[i][hOwned] == 0) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You can't sell this house.");
- if(strcmp(pname, HouseInfo[i][hOwner], true)) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You aren't Owner of this house.");
- DestroyPickup(HouseInfo[i][hPick]);
- format(labelstring, sizeof(labelstring), "{15FF00}House ID: {FFFFFF}%d\n{15FF00}Status: {FFFFFF}For Sale\n{15FF00}Price: {FFFFFF}%d\n{15FF00}Level: {FFFFFF}%d", i, HouseInfo[i][hPrice], HouseInfo[i][hLevel]);
- HouseInfo[i][hPick] = CreatePickup(1273, 1, HouseInfo[i][hX], HouseInfo[i][hY], HouseInfo[i][hZ], 0);
- Update3DTextLabelText(HouseInfo[i][hLabel], 0xFFFFFFFF, labelstring);
- HouseInfo[i][hOwned] = 0;
- HouseInfo[i][hOwner] = -1;
- format(string, sizeof(string), "{FF0000}[h-House]: {FFFFFF}You sold your house ID: {FF0000}%d {FFFFFF}.", i);
- SendClientMessage(playerid, -1, string);
- format(file, sizeof(file), "Houses/%d.ini", i);
- if(fexist(file))
- {
- dini_IntSet(file, "Owned", 0);
- dini_Set(file, "Owner", " ");
- }
- printf("Player %s sold house ID: %d.", pname, i);
- }
- }
- return 1;
- }
- //------------------------------------------------------------------------------
- CMD:enter(playerid, params[])
- {
- for(new i = 0; i < MAX_HOUSES; i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 5.0, HouseInfo[i][hX], HouseInfo[i][hY], HouseInfo[i][hZ]))
- {
- if(HouseInfo[i][hOwned] == 0) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You can't sell this house.");
- if(HouseInfo[i][hLocked] == 1) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}This house it's locked.");
- InHouse[playerid][i] = 1;
- SendClientMessage(playerid, -1, "{FF0000}[h-House]: {FFFFFF}You entered in this house.");
- SetPlayerPos(playerid, HouseInfo[i][hEnterX], HouseInfo[i][hEnterY], HouseInfo[i][hEnterZ]);
- SetPlayerInterior(playerid, HouseInfo[i][hInterior]);
- SetPlayerVirtualWorld(playerid, playerid+1);
- }
- }
- return 1;
- }
- //------------------------------------------------------------------------------
- CMD:exit(playerid, params[])
- {
- for(new i = 0; i < MAX_HOUSES; i++)
- {
- if(InHouse[playerid][i] == 1)
- {
- InHouse[playerid][i] = 0;
- SetPlayerPos(playerid, HouseInfo[i][hX], HouseInfo[i][hY], HouseInfo[i][hZ]);
- SetPlayerInterior(playerid, 0);
- SetPlayerVirtualWorld(playerid, 0);
- SendClientMessage(playerid, -1, "{FF0000}[h-House]: {FFFFFF}You've exited from this house.");
- }
- }
- return 1;
- }
- //------------------------------------------------------------------------------
- CMD:lock(playerid, params[])
- {
- new pname[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pname, sizeof(pname));
- for(new i = 0; i < MAX_HOUSES; i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 5.0, HouseInfo[i][hX], HouseInfo[i][hY], HouseInfo[i][hZ]))
- {
- if(HouseInfo[i][hOwned] == 0) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You can't lock this house.");
- if(strcmp(pname, HouseInfo[i][hOwner], true)) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You aren't Owner of this house.");
- if(HouseInfo[i][hLocked] == 1) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}This house it's already locked.");
- HouseInfo[i][hLocked] = 1;
- SendClientMessage(playerid, -1, "{FF0000}[h-House]: {FFFFFF}You've locked your house.");
- GameTextForPlayer(playerid, "~y~House ~g~Locked", 5000, 5);
- }
- }
- return 1;
- }
- //------------------------------------------------------------------------------
- CMD:unlock(playerid, params[])
- {
- new pname[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pname, sizeof(pname));
- for(new i = 0; i < MAX_HOUSES; i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 5.0, HouseInfo[i][hX], HouseInfo[i][hY], HouseInfo[i][hZ]))
- {
- if(HouseInfo[i][hOwned] == 0) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You can't lock this house.");
- if(strcmp(pname, HouseInfo[i][hOwner], true)) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You aren't Owner of this house.");
- if(HouseInfo[i][hLocked] == 0) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}This house it's already unlocked.");
- HouseInfo[i][hLocked] = 0;
- SendClientMessage(playerid, -1, "{FF0000}[h-House]: {FFFFFF}You've unlocked your house.");
- GameTextForPlayer(playerid, "~y~House ~r~Unlocked", 5000, 5);
- }
- }
- return 1;
- }
- //------------------------------------------------------------------------------
- CMD:store(playerid, params[])
- {
- new pname[MAX_PLAYER_NAME], cash, string[144], file[50];
- GetPlayerName(playerid, pname, sizeof(pname));
- for(new i = 0; i < MAX_HOUSES; i++)
- {
- if(InHouse[playerid][i] == 1)
- {
- if(strcmp(pname, HouseInfo[i][hOwner], true)) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You aren't Owner of this house.");
- if(sscanf(params, "i", cash)) return SendClientMessage(playerid, -1, "{FF0000}USAGE: {FFFFFF}/Store [Cash]");
- if(cash > GetPlayerMoney(playerid)) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You don't have this cash amount.");
- HouseInfo[i][hStored] = HouseInfo[i][hStored] + cash;
- format(string, sizeof(string), "{FF0000}[h-House]: {FFFFFF}You've stored in your house: {FF0000}%d {FFFFFF}and now you have: {FF0000}%d.", cash, HouseInfo[i][hStored]);
- SendClientMessage(playerid, -1, string);
- GivePlayerMoney(playerid, -cash);
- format(file, sizeof(file), "Houses/%d.ini", i);
- if(fexist(file))
- {
- dini_IntSet(file, "Stored Cash", HouseInfo[i][hStored]);
- }
- }
- }
- return 1;
- }
- //------------------------------------------------------------------------------
- CMD:withdraw(playerid, params[])
- {
- new pname[MAX_PLAYER_NAME], cash, string[144], file[50];
- GetPlayerName(playerid, pname, sizeof(pname));
- for(new i = 0; i < MAX_HOUSES; i++)
- {
- if(InHouse[playerid][i] == 1)
- {
- if(strcmp(pname, HouseInfo[i][hOwner], true)) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You aren't Owner of this house.");
- if(sscanf(params, "i", cash)) return SendClientMessage(playerid, -1, "{FF0000}USAGE: {FFFFFF}/Withdraw [Cash]");
- if(cash > HouseInfo[i][hStored]) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You don't have this amount stored.");
- HouseInfo[i][hStored] = HouseInfo[i][hStored] - cash;
- format(string, sizeof(string), "{FF0000}[h-House]: {FFFFFF}You've withdrawed: {FF0000}%d {FFFFFF}and now you have: {FF0000}%d.", cash, HouseInfo[i][hStored]);
- SendClientMessage(playerid, -1, string);
- GivePlayerMoney(playerid, cash);
- format(file, sizeof(file), "Houses/%d.ini", i);
- if(fexist(file))
- {
- dini_IntSet(file, "Stored Cash", HouseInfo[i][hStored]);
- }
- }
- }
- return 1;
- }
- //------------------------------------------------------------------------------
- CMD:upgrade(playerid, params[])
- {
- new pname[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pname, sizeof(pname));
- for(new i = 0; i < MAX_HOUSES; i++)
- {
- if(InHouse[playerid][i] == 1)
- {
- if(strcmp(pname, HouseInfo[i][hOwner], true)) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You aren't Owner of this house.");
- ShowPlayerDialog(playerid, DIALOG_UPGRADE, DIALOG_STYLE_LIST, "Upgrade", "Level #1\nLevel #2\nLevel #3\nLevel #4\nLevel #5", "Select", "Exit");
- }
- }
- return 1;
- }
- //------------------------------------------------------------------------------
- public OnPlayerClickTextDraw(playerid, Text:clickedid)
- {
- if(clickedid == Textdraw[4])
- {
- SendClientMessage(playerid, -1, "{FF0000}[h-House]: {FFFFFF}Please, price doesn't need to be higher than: {FF0000}999,999 ${FFFFFF}.");
- ShowPlayerDialog(playerid, DIALOG_PRICE, DIALOG_STYLE_INPUT, "Price", "{FFFFFF}Please, input below future house's price:\n\n{FF0000}WARNING: {FFFFFF}Please, be sure price is not higher than: {FF0000}999,999 $.", "Continue", "Exit");
- }
- else if(clickedid == Textdraw[6])
- {
- SendClientMessage(playerid, -1, "{FF0000}[h-House]: {FFFFFF}Please, level doesn't need to be higher than: {FF0000}5{FFFFFF}.");
- ShowPlayerDialog(playerid, DIALOG_LEVEL, DIALOG_STYLE_INPUT, "Level", "{FFFFFF}Please, input below future houses's level:\n\n{FF0000}WARNING: {FFFFFF}Please, be sure level is not higher than: {FF0000}5.", "Continue", "Exit");
- }
- else if(clickedid == Textdraw[8])
- {
- ShowPlayerDialog(playerid, DIALOG_REMOVE, DIALOG_STYLE_INPUT, "Remove ID", "{FFFFFF}Please, input below house's ID wich you want to remove:\n\n{FF0000}* NOTE: {FFFFFF}House's ID must be valid.", "Remove", "Exit");
- }
- else if(clickedid == Textdraw[9])
- {
- TextDrawShowForPlayer(playerid, Textdraw[0]);
- TextDrawShowForPlayer(playerid, Textdraw[1]);
- TextDrawShowForPlayer(playerid, Textdraw[2]);
- TextDrawShowForPlayer(playerid, Textdraw[3]);
- TextDrawShowForPlayer(playerid, Textdraw[4]);
- TextDrawShowForPlayer(playerid, Textdraw[5]);
- TextDrawShowForPlayer(playerid, Textdraw[6]);
- TextDrawShowForPlayer(playerid, Textdraw[7]);
- TextDrawShowForPlayer(playerid, Textdraw[8]);
- TextDrawShowForPlayer(playerid, Textdraw[9]);
- CancelSelectTextDraw(playerid);
- SendClientMessage(playerid, -1, "{FF0000}[h-House]: {FFFFFF}Thanks for using this {FF0000}House Creator{FFFFFF}.");
- }
- return 1;
- }
- //------------------------------------------------------------------------------
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(newkeys & KEY_CROUCH)
- {
- if(Started[playerid] == 1)
- {
- new string[15];
- Started[playerid] = 2;
- CreateHouse[playerid] = 1;
- SendClientMessage(playerid, -1, "{FF0000}[h-House]: {FFFFFF}You've entered in {15FF00}enabled {FFFFFF}mode.");
- format(string, sizeof(string), "Enabled");
- TextDrawSetString(Textdraw[3], string);
- TextDrawColor(Textdraw[3], 16711935);
- TextDrawShowForPlayer(playerid, Textdraw[3]);
- }
- else if(Started[playerid] == 2)
- {
- new string[15];
- Started[playerid] = 1;
- CreateHouse[playerid] = 0;
- SendClientMessage(playerid, -1, "{FF0000}[h-House]: {FFFFFF}You've entered in {FF0000}pauzed {FFFFFF}mode.");
- format(string, sizeof(string), "Pauzed");
- TextDrawSetString(Textdraw[3], string);
- TextDrawColor(Textdraw[3], -16776961);
- TextDrawShowForPlayer(playerid, Textdraw[0]);
- TextDrawShowForPlayer(playerid, Textdraw[1]);
- TextDrawShowForPlayer(playerid, Textdraw[2]);
- TextDrawShowForPlayer(playerid, Textdraw[3]);
- TextDrawShowForPlayer(playerid, Textdraw[4]);
- TextDrawShowForPlayer(playerid, Textdraw[5]);
- TextDrawShowForPlayer(playerid, Textdraw[6]);
- TextDrawShowForPlayer(playerid, Textdraw[7]);
- TextDrawShowForPlayer(playerid, Textdraw[8]);
- TextDrawShowForPlayer(playerid, Textdraw[9]);
- SelectTextDraw(playerid, 0xFFFFFFFF);
- }
- }
- if(newkeys & KEY_FIRE)
- {
- if(CreateHouse[playerid] == 1)
- {
- new Float:X, Float:Y, Float:Z, string[100], labelstring[144], file[50];
- GetPlayerPos(playerid, X, Y, Z);
- HouseInfo[houseid][hPrice] = Price;
- HouseInfo[houseid][hLevel] = Level;
- HouseInfo[houseid][hOwned] = 0;
- HouseInfo[houseid][hX] = X;
- HouseInfo[houseid][hY] = Y;
- HouseInfo[houseid][hZ] = Z;
- HouseInfo[houseid][hPick] = CreatePickup(1273, 1, X, Y, Z, 0);
- format(labelstring, sizeof(labelstring), "{15FF00}House ID: {FFFFFF}%d\n{15FF00}Status: {FFFFFF}For Sale\n{15FF00}Price: {FFFFFF}%d\n{15FF00}Level: {FFFFFF}%d", houseid, HouseInfo[houseid][hPrice], HouseInfo[houseid][hLevel]);
- HouseInfo[houseid][hLabel] = Create3DTextLabel(labelstring, 0xFFFFFFFF, X, Y, Z, 25.0, 0, 0);
- format(string, sizeof(string), "{FF0000}[h-House]: {FFFFFF}You created house ID: {FF0000}%d{FFFFFF}.", houseid);
- SendClientMessage(playerid, -1, string);
- if(HouseInfo[houseid][hLevel] == 1)
- {
- HouseInfo[houseid][hEnterX] = 2237.590087;
- HouseInfo[houseid][hEnterY] = -1078.869995;
- HouseInfo[houseid][hEnterZ] = 1049.023437;
- HouseInfo[houseid][hInterior] = 2;
- }
- else if(HouseInfo[houseid][hLevel] == 2)
- {
- HouseInfo[houseid][hEnterX] = 2216.540039;
- HouseInfo[houseid][hEnterY] = -1076.290039;
- HouseInfo[houseid][hEnterZ] = 1050.484375;
- HouseInfo[houseid][hInterior] = 1;
- }
- else if(HouseInfo[houseid][hLevel] == 3)
- {
- HouseInfo[houseid][hEnterX] = 2282.909912;
- HouseInfo[houseid][hEnterY] = -1137.971191;
- HouseInfo[houseid][hEnterZ] = 1050.898437;
- HouseInfo[houseid][hInterior] = 11;
- }
- else if(HouseInfo[houseid][hLevel] == 4)
- {
- HouseInfo[houseid][hEnterX] = 2365.300048;
- HouseInfo[houseid][hEnterY] = -1132.920043;
- HouseInfo[houseid][hEnterZ] = 1050.875000;
- HouseInfo[houseid][hInterior] = 8;
- }
- else if(HouseInfo[houseid][hLevel] == 5)
- {
- HouseInfo[houseid][hEnterX] = 1299.079956;
- HouseInfo[houseid][hEnterY] = -795.226989;
- HouseInfo[houseid][hEnterZ] = 1084.007812;
- HouseInfo[houseid][hInterior] = 5;
- }
- format(file, sizeof(file), "Houses/%d.ini", houseid);
- if(!fexist(file))
- {
- dini_Create(file);
- dini_IntSet(file, "Price", HouseInfo[houseid][hPrice]);
- dini_IntSet(file, "Interior", HouseInfo[houseid][hInterior]);
- dini_IntSet(file, "Level", HouseInfo[houseid][hLevel]);
- dini_IntSet(file, "Owned", HouseInfo[houseid][hOwned]);
- dini_FloatSet(file, "Position X", HouseInfo[houseid][hX]);
- dini_FloatSet(file, "Position Y", HouseInfo[houseid][hY]);
- dini_FloatSet(file, "Position Z", HouseInfo[houseid][hZ]);
- dini_FloatSet(file, "Enter X", HouseInfo[houseid][hEnterX]);
- dini_FloatSet(file, "Enter Y", HouseInfo[houseid][hEnterY]);
- dini_FloatSet(file, "Enter Z", HouseInfo[houseid][hEnterZ]);
- }
- printf("House ID: %d || Price: %d || Interior: %d || Level: %d || was created.", houseid, Price, HouseInfo[houseid][hInterior], Level);
- houseid++;
- }
- }
- return 1;
- }
- //------------------------------------------------------------------------------
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- new file[50];
- if(dialogid == DIALOG_PRICE)
- {
- if(response)
- {
- new string[10], message[100];
- if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_PRICE, DIALOG_STYLE_INPUT, "Price", "{FFFFFF}Please, input below future house's price:\n\n{FF0000}WARNING: {FFFFFF}Please, be sure price is not higher than: {FF0000}999,999 $.", "Continue", "Exit");
- Price = strval(inputtext);
- format(string, sizeof(string), "%d", Price);
- TextDrawSetString(Textdraw[5], string);
- format(message, sizeof(message), "{FF0000}[h-House]: {FFFFFF}Future house's price has been setted to: {FF0000}%d{FFFFFF}.", Price);
- SendClientMessage(playerid, -1, message);
- }
- }
- if(dialogid == DIALOG_LEVEL)
- {
- if(response)
- {
- new string[10], message[100];
- if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LEVEL, DIALOG_STYLE_INPUT, "Level", "{FFFFFF}Please, input below future houses's level:\n\n{FF0000}WARNING: {FFFFFF}Please, be sure level is not higher than: {FF0000}5.", "Continue", "Exit");
- Level = strval(inputtext);
- format(string, sizeof(string), "%d", Level);
- TextDrawSetString(Textdraw[7], string);
- format(message, sizeof(message), "{FF0000}[h-House]: {FFFFFF}Future house's level has been setted to: {FF0000}%d{FFFFFF}.", Level);
- SendClientMessage(playerid, -1, message);
- }
- }
- if(dialogid == DIALOG_UPGRADE)
- {
- if(response)
- {
- if(listitem == 0)
- {
- if(GetPlayerMoney(playerid) < 50000) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You don't have enough money.");
- for(new i = 0; i < MAX_HOUSES; i++)
- {
- if(InHouse[playerid][i] == 1)
- {
- HouseInfo[houseid][hEnterX] = 2237.590087;
- HouseInfo[houseid][hEnterY] = -1078.869995;
- HouseInfo[houseid][hEnterZ] = 1049.023437;
- HouseInfo[houseid][hInterior] = 2;
- SendClientMessage(playerid, -1, "{FF0000}[INFO]: {FFFFFF}Interior bought. {15FF00}[#1]");
- format(file, sizeof(file), "Houses/%d.ini", i);
- if(fexist(file))
- {
- dini_IntSet(file, "Interior", HouseInfo[i][hInterior]);
- dini_FloatSet(file, "Enter X", HouseInfo[i][hEnterX]);
- dini_FloatSet(file, "Enter Y", HouseInfo[i][hEnterY]);
- dini_FloatSet(file, "Enter Z", HouseInfo[i][hEnterZ]);
- }
- }
- }
- }
- if(listitem == 1)
- {
- if(GetPlayerMoney(playerid) < 100000) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You don't have enough money.");
- for(new i = 0; i < MAX_HOUSES; i++)
- {
- if(InHouse[playerid][i] == 1)
- {
- HouseInfo[houseid][hEnterX] = 2216.540039;
- HouseInfo[houseid][hEnterY] = -1076.290039;
- HouseInfo[houseid][hEnterZ] = 1050.484375;
- HouseInfo[houseid][hInterior] = 1;
- SendClientMessage(playerid, -1, "{FF0000}[INFO]: {FFFFFF}Interior bought. {15FF00}[#2]");
- format(file, sizeof(file), "Houses/%d.ini", i);
- if(fexist(file))
- {
- dini_IntSet(file, "Interior", HouseInfo[i][hInterior]);
- dini_FloatSet(file, "Enter X", HouseInfo[i][hEnterX]);
- dini_FloatSet(file, "Enter Y", HouseInfo[i][hEnterY]);
- dini_FloatSet(file, "Enter Z", HouseInfo[i][hEnterZ]);
- }
- }
- }
- }
- if(listitem == 2)
- {
- if(GetPlayerMoney(playerid) < 300000) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You don't have enough money.");
- for(new i = 0; i < MAX_HOUSES; i++)
- {
- if(InHouse[playerid][i] == 1)
- {
- HouseInfo[houseid][hEnterX] = 2282.909912;
- HouseInfo[houseid][hEnterY] = -1137.971191;
- HouseInfo[houseid][hEnterZ] = 1050.898437;
- HouseInfo[houseid][hInterior] = 11;
- SendClientMessage(playerid, -1, "{FF0000}[INFO]: {FFFFFF}Interior bought. {15FF00}[#3]");
- format(file, sizeof(file), "Houses/%d.ini", i);
- if(fexist(file))
- {
- dini_IntSet(file, "Interior", HouseInfo[i][hInterior]);
- dini_FloatSet(file, "Enter X", HouseInfo[i][hEnterX]);
- dini_FloatSet(file, "Enter Y", HouseInfo[i][hEnterY]);
- dini_FloatSet(file, "Enter Z", HouseInfo[i][hEnterZ]);
- }
- }
- }
- }
- if(listitem == 3)
- {
- if(GetPlayerMoney(playerid) < 500000) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You don't have enough money.");
- for(new i = 0; i < MAX_HOUSES; i++)
- {
- if(InHouse[playerid][i] == 1)
- {
- HouseInfo[houseid][hEnterX] = 2365.300048;
- HouseInfo[houseid][hEnterY] = -1132.920043;
- HouseInfo[houseid][hEnterZ] = 1050.875000;
- HouseInfo[houseid][hInterior] = 8;
- SendClientMessage(playerid, -1, "{FF0000}[INFO]: {FFFFFF}Interior bought. {15FF00}[#4]");
- format(file, sizeof(file), "Houses/%d.ini", i);
- if(fexist(file))
- {
- dini_IntSet(file, "Interior", HouseInfo[i][hInterior]);
- dini_FloatSet(file, "Enter X", HouseInfo[i][hEnterX]);
- dini_FloatSet(file, "Enter Y", HouseInfo[i][hEnterY]);
- dini_FloatSet(file, "Enter Z", HouseInfo[i][hEnterZ]);
- }
- }
- }
- }
- if(listitem == 4)
- {
- if(GetPlayerMoney(playerid) < 1000000) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You don't have enough money.");
- for(new i = 0; i < MAX_HOUSES; i++)
- {
- if(InHouse[playerid][i] == 1)
- {
- HouseInfo[houseid][hEnterX] = 1299.079956;
- HouseInfo[houseid][hEnterY] = -795.226989;
- HouseInfo[houseid][hEnterZ] = 1084.007812;
- HouseInfo[houseid][hInterior] = 5;
- SendClientMessage(playerid, -1, "{FF0000}[INFO]: {FFFFFF}Interior bought. {15FF00}[#5]");
- format(file, sizeof(file), "Houses/%d.ini", i);
- if(fexist(file))
- {
- dini_IntSet(file, "Interior", HouseInfo[i][hInterior]);
- dini_FloatSet(file, "Enter X", HouseInfo[i][hEnterX]);
- dini_FloatSet(file, "Enter Y", HouseInfo[i][hEnterY]);
- dini_FloatSet(file, "Enter Z", HouseInfo[i][hEnterZ]);
- }
- }
- }
- }
- }
- }
- if(dialogid == DIALOG_REMOVE)
- {
- if(response)
- {
- new filel[50], string[100];
- removeid = strval(inputtext);
- format(filel, sizeof(filel), "Houses/%d.ini", removeid);
- if(!fexist(filel))
- {
- SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}This house ID doesn't exists in data-base.");
- }
- else
- {
- DestroyPickup(HouseInfo[removeid][hPick]);
- Update3DTextLabelText(HouseInfo[removeid][hLabel], 0xFFFFFFFF, " ");
- HouseInfo[removeid][hX] = -1;
- HouseInfo[removeid][hY] = -1;
- HouseInfo[removeid][hZ] = -1;
- dini_Remove(filel);
- format(string, sizeof(string), "{FF0000}[h-House]: {FFFFFF}House ID: {FF0000}%d {FFFFFF}has been succesfully removed.", removeid);
- SendClientMessage(playerid, -1, string);
- }
- }
- }
- return 1;
- }
- //------------------------------------------------------------------------------
- public OnFilterScriptInit()
- {
- Textdraw[0] = TextDrawCreate(638.000000, 436.059997, "usebox");
- TextDrawLetterSize(Textdraw[0], 0.000000, 1.176666);
- TextDrawTextSize(Textdraw[0], -5.199999, 0.000000);
- TextDrawAlignment(Textdraw[0], 1);
- TextDrawColor(Textdraw[0], 0);
- TextDrawUseBox(Textdraw[0], true);
- TextDrawBoxColor(Textdraw[0], 255);
- TextDrawSetShadow(Textdraw[0], 0);
- TextDrawSetOutline(Textdraw[0], 0);
- TextDrawFont(Textdraw[0], 0);
- //--------------------------------------------------------------------------
- Textdraw[1] = TextDrawCreate(644.399902, 436.059997, "usebox");
- TextDrawLetterSize(Textdraw[1], 0.000000, 1.093703);
- TextDrawTextSize(Textdraw[1], 621.199951, 0.000000);
- TextDrawAlignment(Textdraw[1], 1);
- TextDrawColor(Textdraw[1], 0);
- TextDrawUseBox(Textdraw[1], true);
- TextDrawBoxColor(Textdraw[1], 255);
- TextDrawSetShadow(Textdraw[1], 0);
- TextDrawSetOutline(Textdraw[1], 0);
- TextDrawFont(Textdraw[1], 0);
- //--------------------------------------------------------------------------
- Textdraw[2] = TextDrawCreate(4.799993, 433.066650, "Mode:");
- TextDrawLetterSize(Textdraw[2], 0.449999, 1.600000);
- TextDrawAlignment(Textdraw[2], 1);
- TextDrawColor(Textdraw[2], -1);
- TextDrawSetShadow(Textdraw[2], 0);
- TextDrawSetOutline(Textdraw[2], 1);
- TextDrawBackgroundColor(Textdraw[2], 51);
- TextDrawFont(Textdraw[2], 2);
- TextDrawSetProportional(Textdraw[2], 1);
- //--------------------------------------------------------------------------
- Textdraw[3] = TextDrawCreate(66.400016, 433.813446, "Pauzed");
- TextDrawLetterSize(Textdraw[3], 0.449999, 1.600000);
- TextDrawAlignment(Textdraw[3], 1);
- TextDrawColor(Textdraw[3], -16776961);
- TextDrawSetShadow(Textdraw[3], 0);
- TextDrawSetOutline(Textdraw[3], 1);
- TextDrawBackgroundColor(Textdraw[3], 51);
- TextDrawFont(Textdraw[3], 2);
- TextDrawSetProportional(Textdraw[3], 1);
- //--------------------------------------------------------------------------
- Textdraw[4] = TextDrawCreate(176.799987, 433.066650, "Price:");
- TextDrawLetterSize(Textdraw[4], 0.449999, 1.600000);
- TextDrawAlignment(Textdraw[4], 1);
- TextDrawColor(Textdraw[4], -1);
- TextDrawSetShadow(Textdraw[4], 0);
- TextDrawSetOutline(Textdraw[4], 1);
- TextDrawBackgroundColor(Textdraw[4], 51);
- TextDrawFont(Textdraw[4], 2);
- TextDrawSetProportional(Textdraw[4], 1);
- TextDrawSetSelectable(Textdraw[4], true);
- //--------------------------------------------------------------------------
- Textdraw[5] = TextDrawCreate(240.799957, 433.066619, "999999");
- TextDrawLetterSize(Textdraw[5], 0.449999, 1.600000);
- TextDrawAlignment(Textdraw[5], 1);
- TextDrawColor(Textdraw[5], -5963521);
- TextDrawSetShadow(Textdraw[5], 0);
- TextDrawSetOutline(Textdraw[5], 1);
- TextDrawBackgroundColor(Textdraw[5], 51);
- TextDrawFont(Textdraw[5], 2);
- TextDrawSetProportional(Textdraw[5], 1);
- //--------------------------------------------------------------------------
- Textdraw[6] = TextDrawCreate(347.199798, 432.320037, "Level:");
- TextDrawLetterSize(Textdraw[6], 0.449999, 1.600000);
- TextDrawAlignment(Textdraw[6], 1);
- TextDrawColor(Textdraw[6], -1);
- TextDrawSetShadow(Textdraw[6], 0);
- TextDrawSetOutline(Textdraw[6], 1);
- TextDrawBackgroundColor(Textdraw[6], 51);
- TextDrawFont(Textdraw[6], 2);
- TextDrawSetProportional(Textdraw[6], 1);
- TextDrawSetSelectable(Textdraw[6], true);
- //--------------------------------------------------------------------------
- Textdraw[7] = TextDrawCreate(415.199859, 432.320037, "3");
- TextDrawLetterSize(Textdraw[7], 0.449999, 1.600000);
- TextDrawAlignment(Textdraw[7], 1);
- TextDrawColor(Textdraw[7], -5963521);
- TextDrawSetShadow(Textdraw[7], 0);
- TextDrawSetOutline(Textdraw[7], 1);
- TextDrawBackgroundColor(Textdraw[7], 51);
- TextDrawFont(Textdraw[7], 2);
- TextDrawSetProportional(Textdraw[7], 1);
- //--------------------------------------------------------------------------
- Textdraw[8] = TextDrawCreate(456.000030, 432.320068, "Delete");
- TextDrawLetterSize(Textdraw[8], 0.449999, 1.600000);
- TextDrawAlignment(Textdraw[8], 1);
- TextDrawColor(Textdraw[8], -16776961);
- TextDrawSetShadow(Textdraw[8], 0);
- TextDrawSetOutline(Textdraw[8], 1);
- TextDrawBackgroundColor(Textdraw[8], 51);
- TextDrawFont(Textdraw[8], 2);
- TextDrawSetProportional(Textdraw[8], 1);
- TextDrawSetSelectable(Textdraw[8], true);
- //--------------------------------------------------------------------------
- Textdraw[9] = TextDrawCreate(595.199829, 433.066650, "Exit");
- TextDrawLetterSize(Textdraw[9], 0.449999, 1.600000);
- TextDrawAlignment(Textdraw[9], 1);
- TextDrawColor(Textdraw[9], 16777215);
- TextDrawSetShadow(Textdraw[9], 0);
- TextDrawSetOutline(Textdraw[9], 1);
- TextDrawBackgroundColor(Textdraw[9], 51);
- TextDrawFont(Textdraw[9], 2);
- TextDrawSetProportional(Textdraw[9], 1);
- TextDrawSetSelectable(Textdraw[9], true);
- //--------------------------------------------------------------------------
- Price = 999999;
- Level = 3;
- LoadHouses();
- return 1;
- }
- //------------------------------------------------------------------------------
- stock LoadHouses()
- {
- new file[50], labelstring[144], stringlabel[144];
- for(new i = 0; i < MAX_HOUSES; i++)
- {
- format(file, sizeof(file), "Houses/%d.ini", i);
- if(fexist(file))
- {
- HouseInfo[i][hPrice] = dini_Int(file, "Price");
- HouseInfo[i][hInterior] = dini_Int(file, "Interior");
- HouseInfo[i][hLevel] = dini_Int(file, "Level");
- HouseInfo[i][hOwned] = dini_Int(file, "Owned");
- HouseInfo[i][hStored] = dini_Int(file, "Stored Cash");
- HouseInfo[i][hX] = dini_Float(file, "Position X");
- HouseInfo[i][hY] = dini_Float(file, "Position Y");
- HouseInfo[i][hZ] = dini_Float(file, "Position Z");
- HouseInfo[i][hEnterX] = dini_Float(file, "Enter X");
- HouseInfo[i][hEnterY] = dini_Float(file, "Enter Y");
- HouseInfo[i][hEnterZ] = dini_Float(file, "Enter Z");
- strmid(HouseInfo[i][hOwner], dini_Get(file, "Owner"), false, strlen(dini_Get(file, "Owner")), MAX_PLAYER_NAME);
- format(labelstring, sizeof(labelstring), "{15FF00}House ID: {FFFFFF}%d\n{15FF00}Status: {FFFFFF}For Sale\n{15FF00}Price: {FFFFFF}%d\n{15FF00}Level: {FFFFFF}%d", i, HouseInfo[i][hPrice], HouseInfo[i][hLevel]);
- format(stringlabel, sizeof(stringlabel), "{15FF00}House ID: {FFFFFF}%d\n{15FF00}Owner: {FFFFFF}%s\n{15FF00}Price: {FFFFFF}%d\n{15FF00}Level: {FFFFFF}%d", i, HouseInfo[i][hOwner], HouseInfo[i][hPrice], HouseInfo[i][hLevel]);
- if(HouseInfo[i][hOwned] == 0)
- {
- HouseInfo[i][hPick] = CreatePickup(1273, 1, HouseInfo[i][hX], HouseInfo[i][hY], HouseInfo[i][hZ], 0);
- HouseInfo[i][hLabel] = Create3DTextLabel(labelstring, 0xFFFFFFFF, HouseInfo[i][hX], HouseInfo[i][hY], HouseInfo[i][hZ], 25.0, 0, 0);
- }
- else if(HouseInfo[i][hOwned] == 1)
- {
- HouseInfo[i][hPick] = CreatePickup(1272, 1, HouseInfo[i][hX], HouseInfo[i][hY], HouseInfo[i][hZ], 0);
- HouseInfo[i][hLabel] = Create3DTextLabel(stringlabel, 0xFFFFFFFF, HouseInfo[i][hX], HouseInfo[i][hY], HouseInfo[i][hZ], 25.0, 0, 0);
- }
- houseid++;
- }
- }
- print(" ");
- print(" ");
- printf(" LOADED HOUSE: %d/%d", houseid, MAX_HOUSES);
- print(" ");
- print(" ");
- return 1;
- }
- //------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement