Merlin
Умник
Мод : Appliquer Role Play
Автор Вырезки : Merlin
К #define
PHP:
#define G "{cdf93e}"
#define S "{ff684d}"
PHP:
pHouse,
pHouseCash,
PHP:
enum hInfo
{
Float:hEntrancex,
Float:hEntrancey,
Float:hEntrancez,
Float:hExitx,
Float:hExity,
Float:hExitz,
Float:hCarx,
Float:hCary,
Float:hCarz,
Float:hCarc,
hOwner[MAX_PLAYER_NAME],
hValue,
hHel,
hInt,
hLock,
hOwned,
hTakings,
hDate,
hKlass,
hVec,
hVcol1,
hVcol2,
hPickup,
hMIcon,
hVehSost
};
new HouseInfo[680][hInfo];
PHP:
LoadProperty();
for(new h = 0; h < sizeof(HouseInfo); h++)
{
new pickups;
switch(HouseInfo[h][hOwned])
{
case 0:
{
HouseInfo[h][hPickup] = CreatePickup(1273, 23, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez],-1);
pickups++;
HouseInfo[h][hMIcon] = CreateDynamicMapIcon(HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], 31, -1, 0, -1, -1, 200);
}
case 1:
{
HouseInfo[h][hPickup] = CreatePickup(1272, 23, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez],-1);
pickups++;
HouseInfo[h][hMIcon] = CreateDynamicMapIcon(HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], 32, -1, 0, -1, -1, 200);
}
}
}
PHP:
PlayerInfo[playerid][pHouse] = -1;
PHP:
for(new h = 0; h < sizeof(HouseInfo); h++)
{
if(PlayerToPoint(1, playerid, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]))
{
new string[255];
switch(HouseInfo[h][hOwned])
{
case 0:
{
switch(HouseInfo[h][hKlass])
{
case 0: format(string, sizeof(string), "{cdf93e}Цена дома: {ff684d}%d{cdf93e} вирт\nКласс дома: {ff684d}Эконом{cdf93e}\nНомер дома: {ff684d}%d{FFFFFF}\n\n\n{cdf93e}Так же используйте {ff684d}/buyhouse",HouseInfo[h][hValue],h);
case 1: format(string, sizeof(string), "{cdf93e}Цена дома: {ff684d}%d{cdf93e} вирт\nКласс дома: {ff684d}Эконом +{cdf93e}\nНомер дома: {ff684d}%d{FFFFFF}\n\n\n{cdf93e}Так же используйте {ff684d}/buyhouse",HouseInfo[h][hValue],h);
case 2: format(string, sizeof(string), "{cdf93e}Цена дома: {ff684d}%d{cdf93e} вирт\nКласс дома: {ff684d}Средний{cdf93e}\nНомер дома: {ff684d}%d{FFFFFF}\n\n\n{cdf93e}Так же используйте {ff684d}/buyhouse",HouseInfo[h][hValue],h);
case 3: format(string, sizeof(string), "{cdf93e}Цена дома: {ff684d}%d{cdf93e} вирт\nКласс дома: {ff684d}Люкс{cdf93e}\nНомер дома: {ff684d}%d{FFFFFF}\n\n\n{cdf93e}Так же используйте {ff684d}/buyhouse",HouseInfo[h][hValue],h);
case 4: format(string, sizeof(string), "{cdf93e}Цена дома: {ff684d}%d{cdf93e} вирт\nКласс дома: {ff684d}Элитный{cdf93e}\nНомер дома: {ff684d}%d{FFFFFF}\n\n\n{cdf93e}Так же используйте {ff684d}/buyhouse",HouseInfo[h][hValue],h);
}
ShowPlayerDialog(playerid,16,DIALOG_STYLE_MSGBOX,"{00ffa6}Покупка недвижимости{FFFFFF}",string,"Купить","Закрыть");
}
case 1:
{
switch(HouseInfo[h][hKlass])
{
case 0: format(string, sizeof(string), "{cdf93e}Владелец дома: {ff684d}%s{cdf93e}\nКласс дома: {ff684d}Эконом\n{cdf93e}Номер дома: {ff684d}%d{FFFFFF}\n\n\n{cdf93e}Так же используйте {ff684d}/enter",HouseInfo[h][hOwner],h);
case 1: format(string, sizeof(string), "{cdf93e}Владелец дома: {ff684d}%s{cdf93e}\nКласс дома: {ff684d}Эконом +\n{cdf93e}Номер дома: {ff684d}%d{FFFFFF}\n\n\n{cdf93e}Так же используйте {ff684d}/enter",HouseInfo[h][hOwner],h);
case 2: format(string, sizeof(string), "{cdf93e}Владелец дома: {ff684d}%s{cdf93e}\nКласс дома: {ff684d}Средний\n{cdf93e}Номер дома: {ff684d}%d{FFFFFF}\n\n\n{cdf93e}Так же используйте {ff684d}/enter",HouseInfo[h][hOwner],h);
case 3: format(string, sizeof(string), "{cdf93e}Владелец дома: {ff684d}%s{cdf93e}\nКласс дома: {ff684d}Люкс\n{cdf93e}Номер дома: {ff684d}%d{FFFFFF}\n\n\n{cdf93e}Так же используйте {ff684d}/enter",HouseInfo[h][hOwner],h);
case 4: format(string, sizeof(string), "{cdf93e}Владелец дома: {ff684d}%s{cdf93e}\nКласс дома: {ff684d}Элитный\n{cdf93e}Номер дома: {ff684d}%d{FFFFFF}\n\n\n{cdf93e}Так же используйте {ff684d}/enter",HouseInfo[h][hOwner],h);
}
ShowPlayerDialog(playerid,13,DIALOG_STYLE_MSGBOX,"{00ffa6}Недвижимость{FFFFFF}",string,"Войти","Закрыть");
}
}
}
}
PHP:
//=========
case 13:
{
if(response)
{
for(new i = 0; i < sizeof(HouseInfo); i++)
{
if (PlayerToPoint(3, playerid,HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]))
{
if(PlayerInfo[playerid][pHouse] == i || HouseInfo[i][hLock] == 0)
{
SetPlayerInterior(playerid,HouseInfo[i][hInt]);
SetPlayerVirtualWorld(playerid,i+50);
SetPlayerPos(playerid,HouseInfo[i][hExitx],HouseInfo[i][hExity],HouseInfo[i][hExitz]);
}
else SendClientMessage(playerid, -1,"{ff0000}[X]{FFFFFF} Дверь у данного дома - закрыта");
}
}
}
else return true;
}
case 14:
{
if(response)
{
switch(listitem)
{
case 0:
{
if(HouseInfo[PlayerInfo[playerid][pHouse]][hLock] == 1)
{
HouseInfo[PlayerInfo[playerid][pHouse]][hLock] = 0;
GameTextForPlayer(playerid, "House ~g~Unlocked", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
return true;
}
else if(HouseInfo[PlayerInfo[playerid][pHouse]][hLock] == 0)
{
HouseInfo[PlayerInfo[playerid][pHouse]][hLock] = 1;
GameTextForPlayer(playerid, "House ~r~Locked", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
return true;
}
}
case 1: ShowPlayerDialog(playerid,15,DIALOG_STYLE_MSGBOX,"{00ffa6}Продажа{FFFFFF}","{cdf93e}Вы действuтельно хотuте продать свой дом?","Да","Нет");
}
}
else return true;
}
case 15:
{
new house = PlayerInfo[playerid][pHouse];
if(response)
{
for(new h = 0; h < sizeof(HouseInfo); h++)
{
new string[145];
HouseInfo[house][hHel] = 0;
HouseInfo[house][hLock] = 1;
HouseInfo[house][hOwned] = 0;
HouseInfo[house][hVec] = 0;
HouseInfo[house][hVcol1] = -1;
HouseInfo[house][hVcol2] = -1;
if(HouseInfo[h][hKlass] == 0)
{
HouseInfo[house][hTakings] = 100;
}
if(HouseInfo[house][hKlass] == 1)
{
HouseInfo[house][hTakings] = 200;
}
if(HouseInfo[house][hKlass] == 2)
{
HouseInfo[house][hTakings] = 300;
}
if(HouseInfo[house][hKlass] == 3)
{
HouseInfo[house][hTakings] = 400;
}
if(HouseInfo[house][hKlass] == 4)
{
HouseInfo[house][hTakings] = 500;
}
strmid(HouseInfo[house][hOwner], "The State", 0, strlen("The State"), 255);
GivePlayerCash(playerid,HouseInfo[house][hValue]);
format(string, sizeof(string), ""G"Вы продали свой дом за "S"%d {cdf93e}вирт", HouseInfo[house][hValue]);
SendClientMessage(playerid, -1, string);
PlayerInfo[playerid][pHouse] = -1;
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid,HouseInfo[house][hEntrancex],HouseInfo[house][hEntrancey],HouseInfo[house][hEntrancez]);
BuyHouse();
OnPropUpdate();
return true;
}
}
else return true;
}
case 16:
{
if(response)
{
new Float:oldposx, Float:oldposy, Float:oldposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new h = 0; h < sizeof(HouseInfo); h++)
{
if(PlayerToPoint(2.0, playerid, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]) && HouseInfo[h][hOwned] == 0)
{
if(PlayerInfo[playerid][pHouse] != -1 && strcmp(GN(playerid), HouseInfo[PlayerInfo[playerid][pHouse]][hOwner], true) == 0) return SendClientMessage(playerid, -1, "{ff0000}[X]{FFFFFF} У Вас уже есть дом.");
if(PlayerInfo[playerid][pCash] < HouseInfo[h][hValue])
{
new string[120];
format(string,sizeof(string),"{ff0000}[X]{FFFFFF} У вас недостаточно денег для покупки дома. Требуется {ff684d}%d{FFFFFF} вирт",HouseInfo[h][hValue]);
SendClientMessage(playerid,-1,string);
return true;
}
PlayerInfo[playerid][pHouse] = h;
HouseInfo[h][hOwned] = 1;
HouseInfo[h][hHel] = 0;
if(HouseInfo[h][hKlass] == 0)
{
HouseInfo[h][hTakings] = 100;
}
if(HouseInfo[h][hKlass] == 1)
{
HouseInfo[h][hTakings] = 200;
}
if(HouseInfo[h][hKlass] == 2)
{
HouseInfo[h][hTakings] = 300;
}
if(HouseInfo[h][hKlass] == 3)
{
HouseInfo[h][hTakings] = 400;
}
if(HouseInfo[h][hKlass] == 4)
{
HouseInfo[h][hTakings] = 500;
}
//HouseCar[playerid] = CreateVehicle(PlayerInfo[playerid][pCar], HouseInfo[h][hCarx], HouseInfo[h][hCary], HouseInfo[h][hCarz],HouseInfo[h][hCarc], PlayerInfo[playerid][pCarCvet1], PlayerInfo[playerid][pCarCvet2], 5600);
//SpawnHouseCar[playerid] = true;
strmid(HouseInfo[h][hOwner], GN(playerid), 0, strlen(GN(playerid)), 255);
GivePlayerCash(playerid, -HouseInfo[h][hValue]);
SetPlayerInterior(playerid,HouseInfo[h][hInt]);
SetPlayerPos(playerid,HouseInfo[h][hExitx],HouseInfo[h][hExity],HouseInfo[h][hExitz]);
SetPlayerVirtualWorld(playerid,h+50);
SendClientMessage(playerid,-1,""G"Вы приобрели дом. Для управления домом, используйте "S"/hmenu");
OnPropUpdate();
BuyHouse();
return true;
}
}
}
else return true;
}
case 17:
{
if(response)
{
for(new i = 0; i < sizeof(HouseInfo); i++)
{
if (PlayerToPoint(3, playerid,HouseInfo[i][hExitx], HouseInfo[i][hExity], HouseInfo[i][hExitz]))
{
if (GetPlayerVirtualWorld(playerid) == i+50)
{
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
SetPlayerPos(playerid,HouseInfo[i][hEntrancex],HouseInfo[i][hEntrancey],HouseInfo[i][hEntrancez]);
return true;
}
}
}
}
else return true;
}
//==========================================================================
PHP:
ini_setInteger(iniFile,"House",PlayerInfo[playerid][pHouse]);
PHP:
ini_getInteger(iniFile,"House",PlayerInfo[playerid][pHouse]);
PHP:
stock BuyHouse()
{
for(new h = 0; h < sizeof(HouseInfo); h++)
{
new pickups;
if(HouseInfo[h][hOwned] == 0)
{
DestroyDynamicMapIcon(HouseInfo[h][hMIcon]);
DestroyPickup(HouseInfo[h][hPickup]);
AddStaticPickup(1273, 23, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]);
pickups++;
HouseInfo[h][hMIcon] = CreateDynamicMapIcon(HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], 31, -1, 0, -1, -1, 200);
}
if(HouseInfo[h][hOwned] == 1)
{
DestroyDynamicMapIcon(HouseInfo[h][hMIcon]);
DestroyPickup(HouseInfo[h][hPickup]);
AddStaticPickup(1272, 23, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]);
pickups++;
HouseInfo[h][hMIcon] = CreateDynamicMapIcon(HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], 32, -1, 0, -1, -1, 200);
}
}
return true;
}
stock OnPropUpdate()
{
new idx;
new File: file2;
while (idx < sizeof(HouseInfo))
{
new coordsstring[256];
format(coordsstring, sizeof(coordsstring), "%f,%f,%f,%f,%f,%f,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%f,%f,%f,%f\n",
HouseInfo[idx][hEntrancex],
HouseInfo[idx][hEntrancey],
HouseInfo[idx][hEntrancez],
HouseInfo[idx][hExitx],
HouseInfo[idx][hExity],
HouseInfo[idx][hExitz],
HouseInfo[idx][hOwner],
HouseInfo[idx][hValue],
HouseInfo[idx][hHel],
HouseInfo[idx][hInt],
HouseInfo[idx][hLock],
HouseInfo[idx][hOwned],
HouseInfo[idx][hTakings],
HouseInfo[idx][hVec],
HouseInfo[idx][hVcol1],
HouseInfo[idx][hVcol2],
HouseInfo[idx][hKlass],
HouseInfo[idx][hVehSost],
HouseInfo[idx][hCarx],
HouseInfo[idx][hCary],
HouseInfo[idx][hCarz],
HouseInfo[idx][hCarc]);
if(idx == 0)
{
file2 = fopen("house/property.cfg", io_write);
}
else
{
file2 = fopen("house/property.cfg", io_append);
}
fwrite(file2, coordsstring);
idx++;
fclose(file2);
}
idx = 0;
return true;
}
stock SaveHome()
{
new idx;
new File: file2;
while (idx < sizeof(HouseInfo))
{
new coordsstring[256];
format(coordsstring, sizeof(coordsstring), "%f,%f,%f,%f,%f,%f,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%f,%f,%f,%f\n",
HouseInfo[idx][hEntrancex],
HouseInfo[idx][hEntrancey],
HouseInfo[idx][hEntrancez],
HouseInfo[idx][hExitx],
HouseInfo[idx][hExity],
HouseInfo[idx][hExitz],
HouseInfo[idx][hOwner],
HouseInfo[idx][hValue],
HouseInfo[idx][hHel],
HouseInfo[idx][hInt],
HouseInfo[idx][hLock],
HouseInfo[idx][hOwned],
HouseInfo[idx][hTakings],
HouseInfo[idx][hVec],
HouseInfo[idx][hVcol1],
HouseInfo[idx][hVcol2],
HouseInfo[idx][hKlass],
HouseInfo[idx][hVehSost],
HouseInfo[idx][hCarx],
HouseInfo[idx][hCary],
HouseInfo[idx][hCarz],
HouseInfo[idx][hCarc]);
if(idx == 0)
{
file2 = fopen("house/rezerv/property.cfg", io_write);
}
else
{
file2 = fopen("house/rezerv/property.cfg", io_append);
}
fwrite(file2, coordsstring);
idx++;
fclose(file2);
}
return true;
}
stock GN(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
}
stock LoadProperty()
{
new arrCoords[25][64];
new strFromFile2[256];
new File: file = fopen("house/property.cfg", io_read);
if (file)
{
new idx;
while (idx < sizeof(HouseInfo))
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, ',');
HouseInfo[idx][hEntrancex] = floatstr(arrCoords[0]);
HouseInfo[idx][hEntrancey] = floatstr(arrCoords[1]);
HouseInfo[idx][hEntrancez] = floatstr(arrCoords[2]);
HouseInfo[idx][hExitx] = floatstr(arrCoords[3]);
HouseInfo[idx][hExity] = floatstr(arrCoords[4]);
HouseInfo[idx][hExitz] = floatstr(arrCoords[5]);
strmid(HouseInfo[idx][hOwner], arrCoords[6], 0, strlen(arrCoords[6]), -1);
HouseInfo[idx][hValue] = strval(arrCoords[7]);
HouseInfo[idx][hHel] = strval(arrCoords[8]);
HouseInfo[idx][hInt] = strval(arrCoords[9]);
HouseInfo[idx][hLock] = strval(arrCoords[10]);
HouseInfo[idx][hOwned] = strval(arrCoords[11]);
HouseInfo[idx][hTakings] = strval(arrCoords[12]);
HouseInfo[idx][hVec] = strval(arrCoords[13]);
HouseInfo[idx][hVcol1] = strval(arrCoords[14]);
HouseInfo[idx][hVcol2] = strval(arrCoords[15]);
HouseInfo[idx][hKlass] = strval(arrCoords[16]);
HouseInfo[idx][hVehSost] = strval(arrCoords[17]);
HouseInfo[idx][hCarx] = floatstr(arrCoords[18]);
HouseInfo[idx][hCary] = floatstr(arrCoords[19]);
HouseInfo[idx][hCarz] = floatstr(arrCoords[20]);
HouseInfo[idx][hCarc] = floatstr(arrCoords[21]);
idx++;
}
fclose(file);
print("Дома успешно загружены!");
}
return true;
}
stock GivePlayerCash(playerid,amount)
{
GivePlayerMoney(playerid,amount);
PlayerInfo[playerid][pCash] += amount;
}
stock GetPlayerCash(playerid)
{
return PlayerInfo[playerid][pCash];
}
stock SetPlayerCash(playerid,amount)
{
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, amount);
PlayerInfo[playerid][pCash] = amount;
}
PHP:
CMD:exit(playerid,params[])
{
if(PlayerInfo[playerid][pLogged] == 0 || PlayerInfo[playerid][pRegister] == 0) return SendClientMessage(playerid,-1,"{ff0000}[X]{FFFFFF} Вы не авторизованы на сервере");
for(new i = 0; i < sizeof(HouseInfo); i++)
{
if (PlayerToPoint(2.0, playerid,HouseInfo[i][hExitx], HouseInfo[i][hExity], HouseInfo[i][hExitz]))
{
if (GetPlayerVirtualWorld(playerid) == i+50)
{
ShowPlayerDialog(playerid,17,DIALOG_STYLE_MSGBOX,"{00ffa6}Недвижимость{FFFFFF}","{cdf93e}Вы действuтельно хотuте выйтu uз дома?", "Выйти", "Отмена");
}
}
}
return true;
}
PHP:
CMD:hmenu(playerid,params[])
{
if(PlayerInfo[playerid][pHouse] != -1 && strcmp(GN(playerid), HouseInfo[PlayerInfo[playerid][pHouse]][hOwner], true) == 0)
{
new home = PlayerInfo[playerid][pHouse];
if(PlayerToPoint(35, playerid,HouseInfo[home][hExitx], HouseInfo[home][hExity], HouseInfo[home][hExitz]))
{
ShowPlayerDialog(playerid,14,DIALOG_STYLE_LIST,"{00ffa6}Управленuе домом{FFFFFF}","Состояние двери {34d800}[Открыть]{ffffff} / {ff0000}[Закрыть]{ffffff}\nПродать дом","Выбрать","Закрыть");
return true;
}
else return SendClientMessage(playerid, -1, "{ff0000}[X]{FFFFFF} Вы не у себя в доме");
}
else return SendClientMessage(playerid, -1, "{ff0000}[X]{FFFFFF} У Вас нет дома");
}
PHP:
CMD:buyhouse(playerid,params[])
{
new Float:oldposx, Float:oldposy, Float:oldposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new h = 0; h < sizeof(HouseInfo); h++)
{
if(PlayerToPoint(2.0, playerid, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]) && HouseInfo[h][hOwned] == 0)
{
if(PlayerInfo[playerid][pHouse] != -1 && strcmp(GN(playerid), HouseInfo[PlayerInfo[playerid][pHouse]][hOwner], true) == 0) return SendClientMessage(playerid, -1, "{ff0000}[X]{FFFFFF} У Вас уже есть дом.");
if(PlayerInfo[playerid][pCash] < HouseInfo[h][hValue])
{
new string[120];
format(string,sizeof(string),"{ff0000}[X]{FFFFFF} У Вас недостаточно денег для покупки дома. Требуется {ff684d}%d{FFFFFF} вирт",HouseInfo[h][hValue]);
SendClientMessage(playerid,-1,string);
return true;
}
PlayerInfo[playerid][pHouse] = h;
HouseInfo[h][hOwned] = 1;
HouseInfo[h][hHel] = 0;
if(HouseInfo[h][hKlass] == 0)
{
HouseInfo[h][hTakings] = 400;
}
if(HouseInfo[h][hKlass] == 1)
{
HouseInfo[h][hTakings] = 800;
}
if(HouseInfo[h][hKlass] == 3)
{
HouseInfo[h][hTakings] = 1200;
}
strmid(HouseInfo[h][hOwner], GN(playerid), 0, strlen(GN(playerid)), 255);
GivePlayerCash(playerid, -HouseInfo[h][hValue]);
SetPlayerInterior(playerid,HouseInfo[h][hInt]);
SetPlayerPos(playerid,HouseInfo[h][hExitx],HouseInfo[h][hExity],HouseInfo[h][hExitz]);
SetPlayerVirtualWorld(playerid,h+50);
SendClientMessage(playerid,-1,"{cdf93e}Вы прuобрели дом. Для управленuя домом, используйте{FFFFFF} {ff684d}/hmenu{FFFFFF}");
OnPropUpdate();
BuyHouse();
return true;
}
}
return true;
}
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Последнее редактирование:
