Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- =================================================
- HOUSE SYSTEM BY ISIGAR
- Autor: Isigar
- Skype: beaconcraft.cz / isigarcz@gmail.com
- =================================================
- */
- #if defined _ihouse_included
- #endinput
- #endif
- #define _ihouse_included
- #define MAX_HOUSES 1000
- #define IsPlayerInSphere(%0,%1,%2,%3,%4) IsPlayerInRangeOfPoint(%0,%4,%1,%2,%3)
- #include DOF2
- #include streamer
- /*
- Chata 7 tisíc
- Byt 30 000
- Luxusní byt 50 000
- Dům 100 000
- Vila 300 000
- */
- stock TypeOfHouse(cost)
- {
- new _str[100];
- switch(cost)
- {
- case 7000: format(_str,sizeof(_str),"Chatka");
- case 30000: format(_str,sizeof(_str),"Byt");
- case 50000: format(_str,sizeof(_str),"Luxusní byt");
- case 100000: format(_str,sizeof(_str),"Dům");
- case 300000: format(_str,sizeof(_str),"Vila");
- }
- return _str;
- }
- enum HouseWeapons
- {
- hWep1,
- hWep2,
- hWep3,
- hAmmo1,
- hAmmo2,
- hAmmo3,
- }
- enum HouseVehicle
- {
- hSpoiler,
- hHood,
- hRoof,
- hSideskirt,
- hLamps,
- hNitro,
- hExhaust,
- hWheels,
- hStereo,
- hHydraulics,
- hFrontDumper,
- hRearDumper,
- hVentRight,
- hVentLeft
- }
- enum DataHouse
- {
- Float:hX,
- Float:hY,
- Float:hZ,
- hCost,
- hWeapons[HouseWeapons],
- hVehicle[HouseVehicle],
- hInterior,
- hLock,
- }
- new DHouse[MAX_HOUSES][DataHouse];
- new HOwner[MAX_HOUSES][MAX_PLAYER_NAME];
- new HPickup[MAX_HOUSES];
- new Text3D:HText[MAX_HOUSES];
- new PlayerText:HouseInfoTD;
- new bool:PlayerIsInHouse[MAX_PLAYERS];
- new Float:HPLAYERPOS[3][MAX_PLAYERS];
- stock HousePath()
- {
- new path[100];
- format(path,100,"RP/Houses/Houses.ini");
- return path;
- }
- forward CreateHouse(id,Float:X,Float:Y,Float:Z,cost);
- forward GetHouseIDNearPlayer(playerid);
- forward OnPlayerPickPickupEx(playerid);
- forward HouseInfoHide(playerid);
- forward SellHouse(houseid,playerid);
- forward LoadHouse(houseid);
- forward ShowHouse(id,Float:X,Float:Y,Float:Z);
- forward TeleportPlayerBack(playerid);
- forward SetPlayerPosByInterier(playerid,interior);
- stock GetNameEx(playerid)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- return name;
- }
- public ShowHouse(id,Float:X,Float:Y,Float:Z)
- {
- DestroyDynamicPickup(HPickup[id]);
- DestroyDynamic3DTextLabel(HText[id]);
- LoadHouse(id);
- new textik[300];
- format(textik,200,"{035EB2}Typ domu: {FFFFFF}%s\n{035EB2}Číslo domu:{FFFFFF} %i\n{035EB2}Majitel: {FFFFFF}%s\n{035EB2}Cena: {FFFFFF}%i",TypeOfHouse(DHouse[id][hCost]),id,HOwner[id],DHouse[id][hCost]);
- if(strcmp(HOwner[id],"Mesto") == 0)
- {
- HPickup[id] = CreateDynamicPickup(1273,1,X,Y,Z);
- }
- else
- {
- HPickup[id] = CreateDynamicPickup(1272,1,X,Y,Z);
- }
- CreateDynamic3DTextLabel(textik,-1,X,Y,Z,25.0);
- return 1;
- }
- public CreateHouse(id,Float:X,Float:Y,Float:Z,cost)
- {
- DHouse[id][hX] = X;
- DHouse[id][hY] = Y;
- DHouse[id][hZ] = Z;
- LoadHouse(id);
- new sid[40];
- format(sid,40,"%i",id);
- if(!DOF2_FileExists(HousePath()))
- {
- DOF2_CreateFile(HousePath());
- DOF2_SetString(HousePath(),"Owner",HOwner[id],sid);
- DOF2_SetInt(HousePath(),"Interior",GetInteriorFromCost(cost),sid);
- DOF2_SetInt(HousePath(),"Cost",cost,sid);
- DOF2_SetInt(HousePath(),"Lock",1,sid);
- DOF2_SaveFile();
- }
- else
- {
- DOF2_SetString(HousePath(),"Owner",HOwner[id],sid);
- DOF2_SetInt(HousePath(),"Interior",GetInteriorFromCost(cost),sid);
- DOF2_SetInt(HousePath(),"Cost",cost,sid);
- DOF2_SetInt(HousePath(),"Lock",1,sid);
- DOF2_SaveFile();
- }
- ShowHouse(id,X,Y,Z);
- return 1;
- }
- public SellHouse(houseid,playerid)
- {
- if(strcmp(HOwner[houseid],"Mesto") != 0) return SendClientMessage(playerid,-1,"* Tento dům nemůžeš koupit už ho vlastní někdo jiný! Můžeš kupovat jen ty domy, které vlastní Mesto.");
- new sid[40];
- format(sid,40,"%i",houseid);
- if(playerid == -1)
- {
- strdel(HOwner[houseid],0,MAX_PLAYER_NAME);
- strcat(HOwner[houseid],"Mesto");
- DOF2_SetString(HousePath(),"Owner","Mesto",sid);
- GivePlayerMoney(playerid,DHouse[houseid][hCost]);
- }
- else
- {
- GivePlayerMoney(playerid,-DHouse[houseid][hCost]);
- strdel(HOwner[houseid],0,MAX_PLAYER_NAME);
- strcat(HOwner[houseid],GetNameEx(playerid));
- DOF2_SetString(HousePath(),"Owner",GetNameEx(playerid),sid);
- }
- new str[200];
- format(str,200,"* Právě jsi koupil dům číslo %i za %i $",GetHouseIDNearPlayer(playerid),DHouse[houseid][hCost]);
- SendClientMessage(playerid,-1,str);
- return 1;
- }
- stock GetInteriorFromCost(cost)
- {
- new interior;
- switch(cost)
- {
- case 7000:
- {
- }
- case 30000:
- {
- interior = 1;//2527.654052, -1679.388305,1015.498596
- }
- case 50000:
- {
- interior = 5; //318.564971,1118.209960,1083.882812
- }
- case 100000:
- {
- interior = 8;//2807.619873, -1171.899902,1025.570312
- }
- case 300000:
- {
- interior = 12; //2324.419921,-1145.568359,1050.710083
- }
- }
- return interior;
- }
- public TeleportPlayerBack(playerid)
- {
- if(PlayerIsInHouse[playerid] != true) return SendClientMessage(playerid,0xFF0000,"< Chyba > Pro použití tohoto příkazu musíš být v domě!");
- SetPlayerInterior(playerid, 0);
- SetPlayerPos(playerid,HPLAYERPOS[0][playerid],HPLAYERPOS[1][playerid],HPLAYERPOS[2][playerid]);
- return 1;
- }
- public SetPlayerPosByInterier(playerid,interior)
- {
- GetPlayerPos(playerid,HPLAYERPOS[0][playerid],HPLAYERPOS[1][playerid],HPLAYERPOS[2][playerid]);
- switch(interior)
- {
- case 1:
- {
- SetPlayerInterior(playerid,1);
- SetPlayerPos(playerid,2527.654052, -1679.388305,1015.498596);
- PlayerIsInHouse[playerid] = true;
- }
- case 5:
- {
- SetPlayerInterior(playerid,5);
- SetPlayerPos(playerid,318.564971,1118.209960,1083.882812);
- PlayerIsInHouse[playerid] = true;
- }
- case 8:
- {
- SetPlayerInterior(playerid,8);
- SetPlayerPos(playerid,2807.619873, -1171.899902,1025.570312);
- PlayerIsInHouse[playerid] = true;
- }
- case 12:
- {
- SetPlayerInterior(playerid,12);
- SetPlayerPos(playerid,2324.419921,-1145.568359,1050.710083);
- PlayerIsInHouse[playerid] = true;
- }
- }
- return 1;
- }
- public GetHouseIDNearPlayer(playerid)
- {
- for(new i=0;i<MAX_HOUSES;i++)
- {
- if(IsPlayerInSphere(playerid,DHouse[i][hX],DHouse[i][hY],DHouse[i][hZ],5))
- {
- return i;
- }
- else
- {
- continue;
- }
- }
- return 0;
- }
- public OnPlayerPickPickupEx(playerid)
- {
- if(GetHouseIDNearPlayer(playerid) != 0)
- {
- new Float:X,Float:Y,Float:Z;
- GetPlayerPos(playerid,X,Y,Z);
- PlayerTextDrawShow(playerid,HouseInfoTD);
- SetTimerEx("HouseInfoHide",3000,false,"i",playerid);
- }
- return 1;
- }
- public HouseInfoHide(playerid)
- {
- PlayerTextDrawHide(playerid,HouseInfoTD);
- return 1;
- }
- stock IHouse_PlayerInit(playerid)
- {
- HouseInfoTD = CreatePlayerTextDraw(playerid,499.000000, 121.000000, "Pro zobrazeni menu dej Y.");
- PlayerTextDrawBackgroundColor(playerid,HouseInfoTD, 255);
- PlayerTextDrawFont(playerid,HouseInfoTD, 2);
- PlayerTextDrawLetterSize(playerid,HouseInfoTD, 0.400000, 1.000000);
- PlayerTextDrawColor(playerid,HouseInfoTD, -513);
- PlayerTextDrawSetOutline(playerid,HouseInfoTD, 0);
- PlayerTextDrawSetProportional(playerid,HouseInfoTD, 1);
- PlayerTextDrawSetShadow(playerid,HouseInfoTD, 1);
- PlayerTextDrawUseBox(playerid,HouseInfoTD, 1);
- PlayerTextDrawBoxColor(playerid,HouseInfoTD, 100);
- PlayerTextDrawTextSize(playerid,HouseInfoTD, 638.000000, -10.000000);
- PlayerTextDrawSetSelectable(playerid,HouseInfoTD, 0);
- return 1;
- }
- stock IHouse_PlayerExit(playerid)
- {
- PlayerTextDrawDestroy(playerid,HouseInfoTD);
- return 1;
- }
- public LoadHouse(houseid)
- {
- new sid[40];
- format(sid,40,"%i",houseid);
- strdel(HOwner[houseid],0,MAX_PLAYER_NAME);
- DHouse[houseid][hCost] = DOF2_GetInt(HousePath(),"Cost",sid);
- strcat(HOwner[houseid],DOF2_GetString(HousePath(),"Owner",sid));
- DHouse[houseid][hInterior] = DOF2_GetInt(HousePath(),"Interior",sid);
- DHouse[houseid][hLock] = DOF2_GetInt(HousePath(),"Lock",sid);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement