Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <sscanf2>
- #include <streamer>
- #include <YSI\y_ini>
- #include <zcmd>
- //----------------------------
- //----------------------------
- // Full house script by Antironix edited by VenomMancer!
- // Just don't remove the credits!
- //----------------------------
- //----------------------------
- #define MAX_DISTANCE_TO_PROP 1.5
- #define MAX_HOUSES 5000
- #define GR "{00FF00}"
- #define WI "{FFFFFF}"
- #define YE "{FFFF00}"
- #define COL_EASY "{FFF1AF}"
- #define COL_WHITE "{FFFFFF}"
- #define COL_BLACK "{0E0101}"
- #define COL_GREY "{C3C3C3}"
- #define COL_GREEN "{6EF83C}"
- #define COL_RED "{F81414}"
- #define COL_YELLOW "{F3FF02}"
- #define COL_ORANGE "{FFAF00}"
- #define COL_LIME "{B7FF00}"
- #define COL_CYAN "{00FFEE}"
- #define COL_LIGHTBLUE "{00C0FF}"
- #define COL_BLUE "{0049FF}"
- #define COL_MAGENTA "{F300FF}"
- #define COL_VIOLET "{B700FF}"
- #define COL_PINK "{FF00EA}"
- #define COL_MARONE "{A90202}"
- #define COL_CMD "{B8FF02}"
- #define COL_PARAM "{3FCD02}"
- #define COL_SERVER "{AFE7FF}"
- #define COL_VALUE "{A3E4FF}"
- #define COL_RULE "{F9E8B7}"
- #define COL_RULE2 "{FBDF89}"
- #define COL_RWHITE "{FFFFFF}"
- #define COL_LGREEN "{C9FFAB}"
- #define COL_LRED "{FFA1A1}"
- #define COL_LRED2 "{C77D87}"
- #define COL_PURPLE "{AA00E3}"
- //----------------------------
- //----------------------------
- #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 HouseCount;
- enum HouseInfo
- {
- Owned,
- Name[256],
- Cost,
- Sell,
- Interior,
- Virtualworld,
- Locked,
- Text3D:hLabel,
- Float:InteriorX,
- Float:InteriorY,
- Float:InteriorZ,
- Float:iconx,
- Float:icony,
- Float:iconz,
- Float:sX,
- Float:sY,
- Float:sZ,
- sInt,
- hID
- }
- new hInfo[MAX_HOUSES][HouseInfo];
- #define FILTERSCRIPT
- #if defined FILTERSCRIPT
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" Simple House System by VenomMancer");
- print("--------------------------------------\n");
- LoadHouses();
- return 0;
- }
- public OnFilterScriptExit()
- {
- for(new i=0;i<MAX_HOUSES;i++)
- {
- DestroyPickup(HousePickup[i]);
- }
- return 0;
- }
- #else
- #endif
- public OnPlayerConnect(playerid)
- {
- hInfo[playerid][hID] = -255;
- hInfo[playerid][sX] = 0;
- hInfo[playerid][sY] = 0;
- hInfo[playerid][sZ] = 0;
- new str1[256],pname[24];
- GetPlayerName(playerid, pname, sizeof(pname));
- format(str1, sizeof(str1), "JLadmin/Users/%s.ini", pname);
- INI_ParseFile(str1, "loadplayer_%s", .bExtra = true, .extra = playerid );
- return 1;
- }
- stock LoadHouses()
- {
- new file[556];
- for(new i = 0; i < MAX_HOUSES; i++)
- {
- format(file,sizeof(file),"Houses/%i.ini",i);
- if(!fexist(file)) continue;
- if(fexist(file))
- {
- INI_ParseFile(file, "loadhouse_%s", .bExtra = true, .extra = i );
- switch(hInfo[i][Owned])
- {
- case 0:
- {
- new labelstring[500];
- format(labelstring,sizeof(labelstring),""COL_GREEN"[ Owned ]: "#COL_WHITE#"Available\n"COL_GREEN"[ Price ]: "WI"%i\n"#COL_LIME#"Use /house to buy this lovely house",hInfo[i][Cost]);
- HouseMapicon[i] = CreateDynamicMapIcon(hInfo[i][iconx],hInfo[i][icony],hInfo[i][iconz], 31, 0, -1, -1, -1, 100.0);
- HousePickup[i] = CreatePickup(1273,1,hInfo[i][iconx],hInfo[i][icony],hInfo[i][iconz],0);
- hInfo[i][hLabel] = Create3DTextLabel(labelstring,0xFF0000FF,hInfo[i][iconx],hInfo[i][icony],hInfo[i][iconz],25.0,0);
- }
- case 1:
- {
- new labelstring[1000];
- format(labelstring,sizeof(labelstring),""YE"[ Owned ]: "COL_RED"Yes\n"YE"[ Price ]: "WI"%i\n"YE"[ Owner ]: "WI"%s",hInfo[i][Cost],hInfo[i][Name]);
- HouseMapicon[i] = CreateDynamicMapIcon(hInfo[i][iconx],hInfo[i][icony],hInfo[i][iconz], 32, 0, -1, -1, -1, 100.0);
- HousePickup[i] = CreatePickup(1272, 23, hInfo[i][iconx], hInfo[i][icony], hInfo[i][iconz]);
- hInfo[i][hLabel] = Create3DTextLabel(labelstring,0xFF0000FF,hInfo[i][iconx],hInfo[i][icony],hInfo[i][iconz],25.0,0);
- }
- }
- HouseCount++;
- }
- }
- return 1;
- }
- COMMAND:chouse(playerid,params[])
- {
- new Float:x,Float:y,Float:z,price,Sella,file2[100],labelstring[500],houseid = HouseCount;
- if(!IsPlayerAdmin(playerid)) return 0;
- if(sscanf(params,"ii",price,Sella)) return SendClientMessage(playerid,-1,""WI"USE: /chouse [price] [sellprice]");
- GetPlayerPos(playerid,x,y,z);
- format(hInfo[houseid][Name], 24, "None");
- hInfo[houseid][Cost] = price;
- hInfo[houseid][Sell] = Sella;
- hInfo[houseid][Interior] = 5;
- hInfo[houseid][Virtualworld] = 0;
- hInfo[houseid][Locked] = 1;
- hInfo[houseid][InteriorX] = 1299.14;
- hInfo[houseid][InteriorY] = -794.77;
- hInfo[houseid][InteriorZ] = 1084.00;
- hInfo[houseid][Owned] =0;
- hInfo[houseid][iconx]= x;
- hInfo[houseid][icony]= y;
- hInfo[houseid][iconz]= z;
- HousePickup[houseid] = CreatePickup(1273,1,x,y,z,GetPlayerVirtualWorld(playerid));
- format(file2,sizeof(file2),"Houses/%i.ini",houseid);
- if(!fexist(file2))
- {
- new INI:house = INI_Open(file2);
- INI_WriteString(house, "Name", "None");
- INI_WriteInt(house, "Owned", hInfo[houseid][Owned]);
- INI_WriteInt(house, "Cost", hInfo[houseid][Cost]);
- INI_WriteInt(house, "Sell", hInfo[houseid][Sell]);
- INI_WriteInt(house, "Interior", hInfo[houseid][Interior]);
- INI_WriteInt(house, "Virtualworld", hInfo[houseid][Virtualworld]);
- INI_WriteInt(house, "Locked", 1);
- INI_WriteFloat(house, "X", hInfo[houseid][InteriorX]);
- INI_WriteFloat(house, "Y", hInfo[houseid][InteriorY]);
- INI_WriteFloat(house, "Z", hInfo[houseid][InteriorZ]);
- INI_WriteFloat(house, "iconX", hInfo[houseid][iconx]);
- INI_WriteFloat(house, "iconY", hInfo[houseid][icony]);
- INI_WriteFloat(house, "iconZ", hInfo[houseid][iconz]);
- INI_Close(house);
- }
- format(labelstring,sizeof(labelstring),""COL_GREEN"[ Owned ]: "#COL_WHITE#"Available\n"COL_GREEN"[ Price ]: "#COL_LIME#"%i\nUse /house to buy this lovely house",price);
- hInfo[houseid][hLabel] = Create3DTextLabel(labelstring,0xFF0000FF,x,y,z,25.0,GetPlayerVirtualWorld(playerid));
- HouseMapicon[houseid] = CreateDynamicMapIcon(x,y,z, 31, 0, -1, -1, -1, 100.0);
- HouseCount++;
- return 1;
- }
- stock SpawnPlayerAtHouse(playerid)
- {
- new str1[256],pname[24];
- GetPlayerName(playerid, pname, sizeof(pname));
- format(str1, sizeof(str1), "JLadmin/Users/%s.ini", pname);
- INI_ParseFile(str1, "loadplayer_%s", .bExtra = true, .extra = playerid );
- if(hInfo[playerid][hID]!= -255)
- {
- SetPlayerInterior(playerid, hInfo[playerid][sInt]);
- playerinterior[playerid] = hInfo[playerid][sInt];
- SetPlayerPos(playerid, hInfo[playerid][sX], hInfo[playerid][sY], hInfo[playerid][sZ]);
- }
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- if(hInfo[playerid][hID] != -255)
- {
- SpawnPlayerAtHouse(playerid);
- }
- return 1;
- }
- CMD:sell(playerid,params[])
- {
- #pragma unused params
- new str[234], str2[255],str1[256],pname[24],housenumber;
- housenumber = GetHouseID(playerid);
- GetPlayerName(playerid, pname, 24);
- if (strcmp(hInfo[housenumber][Name],pname,false)) return SendClientMessage(playerid, c_r, "This house isn't yours!");
- SendClientMessage(playerid, c_y, "You have sold your house!");
- format(str, sizeof(str), "%s has sold houseid 0",pname);
- print(str);
- GivePlayerMoney(playerid, hInfo[housenumber][Sell]);
- format(str2, sizeof(str2), "Houses/%d.ini", housenumber);
- new INI:filex = INI_Open(str2);
- INI_WriteString(filex, "Name", "None");
- INI_WriteInt(filex,"Locked",1);
- INI_WriteInt(filex,"Owned",0);
- INI_Close(filex);
- hInfo[housenumber][Owned] = 0;
- hInfo[housenumber][Locked] = 1;
- format(hInfo[housenumber][Name],255,"None");
- format(str1, sizeof(str1), "JLadmin/Users/%s.ini", pname);
- new INI:file = INI_Open(str1);
- INI_WriteInt(file, "Houseid", -255);
- INI_Close(file);
- hInfo[playerid][hID] = -255;
- DestroyPickup(HousePickup[housenumber]);
- HousePickup[housenumber] = CreatePickup(1273, 23, hInfo[housenumber][iconx], hInfo[housenumber][icony], hInfo[housenumber][iconz]);
- DestroyDynamicMapIcon(HouseMapicon[housenumber]);
- HouseMapicon[housenumber] = CreateDynamicMapIcon(hInfo[housenumber][iconx],hInfo[housenumber][icony],hInfo[housenumber][iconz], 31, 0, -1, -1, -1, 100.0);
- new labelstring[256];
- format(labelstring,sizeof(labelstring),""COL_GREEN"[ Owned ]: "#COL_WHITE#"Available\n"COL_GREEN"[ Price ]: "WI"%i\n"#COL_LIME#"Use /house to buy this lovely house",hInfo[housenumber][Cost]);
- Update3DTextLabelText(hInfo[housenumber][hLabel],-1,labelstring);
- return 1;
- }
- CMD:buy(playerid,params[])
- {
- #pragma unused params
- new str[255],str1[255],str5[256],pname[256], housenumber;
- housenumber = GetHouseID(playerid);
- if(housenumber == -1) return SendClientMessage(playerid, c_r, "You are not in a house icon!");
- GetPlayerName(playerid, pname, 256);
- format(str1, sizeof(str1), "JLadmin/Users/%s.ini", pname);
- INI_ParseFile(str1, "loadplayer_%s", .bExtra = true, .extra = playerid );
- if (hInfo[playerid][hID]!=-255) return SendClientMessage(playerid, c_r, "You can only buy one house!");
- if (strcmp(hInfo[housenumber][Name],"None",true)) return SendClientMessage(playerid, c_r, "This house isn't for sale!");
- if(GetPlayerMoney(playerid)<hInfo[housenumber][Cost]) return SendClientMessage(playerid, c_r, "Not enough money!");
- SendClientMessage(playerid, c_y, "You have bought the house!");
- GivePlayerMoney(playerid, -hInfo[housenumber][Cost]);
- format(str, sizeof(str), "Houses/%d.ini", housenumber);
- new INI:file = INI_Open(str);
- INI_WriteString(file, "Name", pname);
- INI_WriteInt(file,"Owned",1);
- INI_Close(file);
- hInfo[housenumber][Owned] = 1;
- hInfo[housenumber][Name] = pname;
- hInfo[housenumber][Locked] = 1;
- hInfo[playerid][hID] = housenumber;
- new Float:sy, Float:sx, Float:sz;
- GetPlayerPos(playerid, sx,sy,sz);
- format(str5, sizeof(str5), "JLadmin/Users/%s.ini", pname);
- new INI:file1 = INI_Open(str5);
- INI_WriteInt(file1, "Houseid", hInfo[playerid][hID]);
- INI_WriteFloat(file1, "sX", sx);
- INI_WriteFloat(file1, "sY", sy);
- INI_WriteFloat(file1, "sZ", sz);
- INI_WriteInt(file1, "sInt", GetPlayerInterior(playerid));
- INI_Close(file1);
- DestroyPickup(HousePickup[housenumber]);
- HousePickup[housenumber] = CreatePickup(1272, 23, hInfo[housenumber][iconx], hInfo[housenumber][icony], hInfo[housenumber][iconz]);
- DestroyDynamicMapIcon(HouseMapicon[housenumber]);
- HouseMapicon[housenumber] = CreateDynamicMapIcon(hInfo[housenumber][iconx],hInfo[housenumber][icony],hInfo[housenumber][iconz], 32, 0, -1, -1, -1, 100.0);
- new labelstring[256];
- format(labelstring,sizeof(labelstring),""YE"[ Owned ]: "COL_RED"Yes\n"YE"[ Price ]: "WI"%i\n"YE"[ Owner ]: "WI"%s",hInfo[housenumber][Cost],hInfo[housenumber][Name]);
- Update3DTextLabelText(hInfo[housenumber][hLabel],-1,labelstring);
- return 1;
- }
- CMD:lock(playerid,params[])
- {
- #pragma unused params
- new str1[256],pname[24],housenumber;
- housenumber = GetHouseID(playerid);
- GetPlayerName(playerid, pname, 24);
- format(str1, sizeof(str1), "Houses/%d.ini", housenumber);
- if(strcmp(hInfo[housenumber][Name],pname,true)==0)
- {
- SendClientMessage(playerid, c_y, "You have locked your house!");
- new INI:file = INI_Open(str1);
- INI_WriteInt(file,"Locked",1);
- INI_Close(file);
- hInfo[housenumber][Locked] = 1;
- }
- else
- {
- SendClientMessage(playerid, c_r, "This house isn't yours!");
- }
- return 1;
- }
- CMD:unlock(playerid,params[])
- {
- #pragma unused params
- new str1[256],pname[24],housenumber;
- housenumber = GetHouseID(playerid);
- GetPlayerName(playerid, pname, 24);
- format(str1, sizeof(str1), "Houses/%d.ini", housenumber);
- if(strcmp(hInfo[housenumber][Name],pname,true)==0)
- {
- SendClientMessage(playerid, c_y, "You have unlocked your house!");
- new INI:file = INI_Open(str1);
- INI_WriteInt(file,"Locked",0);
- INI_Close(file);
- hInfo[housenumber][Locked] = 0;
- }
- else
- {
- SendClientMessage(playerid, c_r, "This house isn't yours!");
- }
- return 1;
- }
- CMD:enter(playerid,params[])
- {
- #pragma unused params
- new str1[255],pname[24],housenumber;
- housenumber = GetHouseID(playerid);
- GetPlayerPos(playerid, housex, housey, housez);
- format(str1, sizeof(str1), "Houses/%d.ini", housenumber);
- GetPlayerName(playerid, pname, 24);
- if(hInfo[housenumber][Locked]==1) return SendClientMessage(playerid, c_r, "This house is locked!");
- playerworld[playerid] = GetPlayerVirtualWorld(playerid);
- SendClientMessage(playerid, c_y, "You entered the house!");
- 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;
- }
- CMD:exit(playerid,params[])
- {
- #pragma unused params
- if(GetPlayerInterior(playerid)==playerinterior[playerid])
- {
- SetPlayerPos(playerid, housex, housey, housez);
- SetPlayerInterior(playerid, playerworld[playerid]);
- }
- else
- {
- SendClientMessage(playerid, c_r, "You have not entered a house!");
- }
- return 1;
- }
- CMD:home(playerid,params[])
- {
- #pragma unused params
- new str1[256],pname[24];
- GetPlayerName(playerid, pname, 24);
- format(str1, sizeof(str1), "JLadmin/Users/%s.ini", pname);
- if(!fexist(str1)) return SendClientMessage(playerid, c_r, "You don't own a house!");
- INI_ParseFile(str1, "loadplayer_%s", .bExtra = true, .extra = playerid );
- if(hInfo[playerid][hID]!=-255)
- {
- SpawnPlayerAtHouse(playerid);
- }
- else
- {
- SendClientMessage(playerid, c_r, "You don't own a house!");
- }
- return 1;
- }
- CMD:housestats(playerid,params[])
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- 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;
- }
- forward loadhouse_data(i, name[], value[]);
- public loadhouse_data(i, name[], value[])
- {
- INI_Int("Owned",hInfo[i][Owned]);
- INI_Int("Sell",hInfo[i][Sell]);
- INI_Int("Interior",hInfo[i][Interior]);
- INI_Int("Cost",hInfo[i][Cost]);
- INI_Int("Locked",hInfo[i][Locked]);
- INI_Float("X", hInfo[i][InteriorX]);
- INI_Float("Y", hInfo[i][InteriorY]);
- INI_Float("Z", hInfo[i][InteriorZ]);
- INI_Float("iconX", hInfo[i][iconx]);
- INI_Float("iconY", hInfo[i][icony]);
- INI_Float("iconZ", hInfo[i][iconz]);
- INI_Int("VirtualWorld", hInfo[i][Virtualworld]);
- INI_String("Name", hInfo[i][Name], 256);
- return 1;
- }
- forward loadplayer_data(i, name[], value[]);
- public loadplayer_data(i, name[], value[])
- {
- INI_Float("sX", hInfo[i][sX]);
- INI_Float("sY", hInfo[i][sY]);
- INI_Float("sZ", hInfo[i][sZ]);
- INI_Int("sInt", hInfo[i][sInt]);
- INI_Int("Houseid", hInfo[i][hID]);
- return 1;
- }
- /*public OnVehicleMod(vehicleid, componentid)
- {
- new house[256];
- for(new i=0; i<MAX_HOUSES; i++)
- {
- format(house, sizeof(house), "Houses/%d.ini",i);
- if(!dini_Isset(house, "CarModel")) continue;
- if(
- }
- return 1;
- }*/
Advertisement
Add Comment
Please, Sign In to add comment