PDA

Просмотр полной версии : [Вопрос] За подсказку буду очень благодарен



Gotman
08.05.2017, 19:44
Здравствуйте! У меня такая вот проблемка. Я кое как написал систему домов, но вот команду продажи домов игроку и государству не как не могу подстроить под систему. Подскажите как это сделать. Заранее спасибо.

Вот код системы

enum hInfo // ñèñòåìà äîìîâ
{
hID,
Float:hEntrx,
Float:hEntry,
Float:hEntrz,
Float:hExitx,
Float:hExity,
Float:hExitz,
hOwner[MAX_PLAYER_NAME],
hPrice,
hBuyPrice,
hInt,
hVirtual,
hLock,
hMIcon,
hPickup,
hDiscript[3]
};
new HouseInfo[MAX_HOUSE][hInfo];
new TOTALHOUSE;
case 27:
{
if(!response) return 1;
new idx = GetPVarInt(playerid, "PlayerHouse");
if(!strcmp(HouseInfo[idx][hOwner],"None",true))
{
if(Player[playerid][pMoney] < HouseInfo[idx][hPrice])
return SendClientMessage(playerid, COLOR_GREY, "Ó Âàñ íåäîñòàòî÷íî ñðåäñòâ!");
else
{
new house = 0,
string[30];
for(new i = 1; i <= TOTALHOUSE;i++)
{
if(!strcmp(HouseInfo[i][hOwner],GN(playerid),true)) house++;
}
if(house != 0) return SendClientMessage(playerid, COLOR_GREY, "Ó Âàñ óæå åñòü äîì!");
Player[playerid][pMoney] -= HouseInfo[idx][hPrice];
HouseInfo[idx][hBuyPrice] = HouseInfo[idx][hPrice];
format(string,sizeof(string),"Âû êóïèëè äîì çà %i$",HouseInfo[idx][hPrice]);
SendClientMessage(playerid, COLOR_WHITE, string);
SendClientMessage(playerid, COLOR_LIGHTRED, "Âíèìàíèå! Íå çàáûâàéòå ïîïîëíÿòü äîìàøíèé ñ÷åò");
format(HouseInfo[idx][hOwner],MAX_PLAYER_NAME,"%s",GN(playerid));
new query[256];
format(query, sizeof(query), "\
UPDATE `house` SET `hOwner` = '%s', `hBuyprice` = %i WHERE `hID` = '%d' LIMIT 1",
HouseInfo[idx][hOwner], HouseInfo[idx][hBuyPrice], HouseInfo[idx][hID]);
mysql_function_query(ConnectMySQL, query, false, "", "");
SetPlayerPos(playerid,HouseInfo[idx][hExitx],HouseInfo[idx][hExity],HouseInfo[idx][hExitz]);
SetPlayerInterior(playerid,HouseInfo[idx][hInt]);
SetPlayerVirtualWorld(playerid,HouseInfo[idx][hVirtual]);
SetPlayerFacingAngle(playerid, -90.0);
UpdateHouse(idx);
SavePlayer(playerid);
return 1;
}
}
else
{
if(HouseInfo[idx][hLock] == 1)
{
if(strcmp(GN(playerid), HouseInfo[idx][hOwner], true) == 0)
{
SetPlayerPos(playerid,HouseInfo[idx][hExitx],HouseInfo[idx][hExity],HouseInfo[idx][hExitz]);
SetPlayerInterior(playerid,HouseInfo[idx][hInt]);
SetPlayerVirtualWorld(playerid,HouseInfo[idx][hVirtual]);
SetPlayerFacingAngle(playerid, -90.0);
}
GameTextForPlayer(playerid, "~r~Locked", 5000, 1);
}
else
{
SetPlayerPos(playerid,HouseInfo[idx][hExitx],HouseInfo[idx][hExity],HouseInfo[idx][hExitz]);
SetPlayerInterior(playerid,HouseInfo[idx][hInt]);
SetPlayerVirtualWorld(playerid,HouseInfo[idx][hVirtual]);
SetPlayerFacingAngle(playerid, -90.0);
}
}
}
case 28:
{
if(!response) return 1;
new h = GetPVarInt(playerid, "PlayerHouse");
switch(listitem)
{
case 0:
{
HouseInfo[h][hLock] = (HouseInfo[h][hLock]) ? (0) : (1);
GameTextForPlayer(playerid, (HouseInfo[h][hLock]) ? ("~g~Locked") : ("~r~Locked"), 5000, 1);
}
case 1: ShowPlayerDialog(playerid, 29, DSM, "Ïðîäàòü äîì", "{FFFF00}Âû õîòèòå ïðîäàòü ñâîé äîì ãîñóäàðñòâó?\n{32CD32}Âàì íà÷èñëèòñÿ ñóììà â ðàçìåðå ãîñóäàðñòâåííîé öåíû äîìà", "Äà", "Íåò");
case 2:
{
static const statistics[] = "\
Öåíà ïîêóïêè äîìà:\t%d\n\
Êëàññ äîìà:\t\t%s\n\
Ñòàòóñ äâåðåé:\t%s";
new house_statistics[sizeof(statistics)+21-6];
format(house_statistics, sizeof(house_statistics), statistics,
HouseInfo[h][hBuyPrice], HouseInfo[h][hDiscript], (HouseInfo[h][hLock]) ? ("Îòêðûòû") : ("Çàêðûòû"));
ShowPlayerDialog(playerid, 30, DSM, "Ñòàòèñòèêà äîìà", house_statistics, "Îêåé", "");
}
}
}
case 29:
{
if(response)
{
new h = GetPVarInt(playerid, "PlayerHouse");
HouseInfo[h][hPrice] = GetPVarInt(playerid,"PriceHouse");
strmid(HouseInfo[h][hOwner], "None", 0, strlen("None"), MAX_PLAYER_NAME);
HouseInfo[h][hLock] = 0;
SetHouseStr(h, "hOwner", "None");
SetPlayerPos(playerid,HouseInfo[h][hEntrx],HouseInfo[h][hEntry],HouseInfo[h][hEntrz]);
SetPlayerFacingAngle(playerid, -90);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
Player[playerid][pMoney] += HouseInfo[h][hBuyPrice];
HouseInfo[h][hBuyPrice] = 0;
SendClientMessage(playerid, COLOR_LIGHTRED, " Âû ïðîäàëè ñâîé äîì !");
new query[200];
format(query,sizeof(query),"UPDATE `house` SET `hOwner` = '%s',`hPrice` = '%d',\
`hBuyPrice` = '%d', `hLock` = %d WHERE `hID` = %d LIMIT 1",
HouseInfo[h][hOwner], HouseInfo[h][hPrice], HouseInfo[h][hBuyPrice], HouseInfo[h][hLock], HouseInfo[h][hID]);
mysql_function_query(ConnectMySQL, query, false, "", "");
printf("\n\n%s\n\n", query);
UpdateHouse(h);
SavePlayer(playerid);
DeletePVar(playerid, "PriceHouse");
}
else DeletePVar(playerid, "PriceHouse");
}
stock UpdateHouse(idx)
{
DestroyDynamicMapIcon(HouseInfo[idx][hMIcon]);
DestroyDynamicPickup(HouseInfo[idx][hPickup]);
if(!strcmp(HouseInfo[idx][hOwner],"None",true))
{
HouseInfo[idx][hMIcon] = CreateDynamicMapIcon(HouseInfo[idx][hEntrx], HouseInfo[idx][hEntry], HouseInfo[idx][hEntrz], 31, 0,-1,-1,-1,160.0);
HouseInfo[idx][hPickup] = CreateDynamicPickup(1273, 23, HouseInfo[idx][hEntrx], HouseInfo[idx][hEntry], HouseInfo[idx][hEntrz]);
}
else
{
HouseInfo[idx][hMIcon] = CreateDynamicMapIcon(HouseInfo[idx][hEntrx], HouseInfo[idx][hEntry], HouseInfo[idx][hEntrz], 32, 0,-1,-1,-1,160.0);
HouseInfo[idx][hPickup] = CreateDynamicPickup(1272, 23, HouseInfo[idx][hEntrx], HouseInfo[idx][hEntry], HouseInfo[idx][hEntrz]);
}
return 1;
}
stock SetHouseStr(idx, stolb[], znach[])
{
new query[128];
format(query, sizeof(query), "UPDATE house SET %s = '%s' WHERE hID = '%d'", stolb, znach, idx);
return mysql_function_query(ConnectMySQL, query, false, "", "");
}
stock GetPlayerHouse(playerid)
{
new house = 0;
for(new i = 1; i <= TOTALHOUSE;i++)
{
if(!strcmp(HouseInfo[i][hOwner],GN(playerid),true)) house++, SetPVarInt(playerid, "PlayerHouse", i);
}
return house;
}
stock SetHouseInt(idx, stolb[], znach)
{
new query[128];
format(query, sizeof(query), "UPDATE house SET %s = '%d' WHERE hID = '%d'", stolb, znach, idx);
return mysql_function_query(MysqlConnect_ID, query, false, "", "");
}
publics LoadHouse()
{
new rows,fields;
cache_get_data(rows,fields);
if(rows < 1) return 1;
for(new idx; idx < rows; idx++)
{
HouseInfo[idx+1][hID] = cache_get_field_content_int(idx, "hID", ConnectMySQL);
HouseInfo[idx+1][hEntrx] = cache_get_field_content_float(idx, "hEntrx", ConnectMySQL);
HouseInfo[idx+1][hEntry] = cache_get_field_content_float(idx, "hEntry", ConnectMySQL);
HouseInfo[idx+1][hEntrz] = cache_get_field_content_float(idx, "hEntrz", ConnectMySQL);
HouseInfo[idx+1][hExitx] = cache_get_field_content_float(idx, "hExitx", ConnectMySQL);
HouseInfo[idx+1][hExity] = cache_get_field_content_float(idx, "hExity", ConnectMySQL);
HouseInfo[idx+1][hExitz] = cache_get_field_content_float(idx, "hExitz", ConnectMySQL);
cache_get_field_content(idx, "hDiscript", HouseInfo[idx+1][hDiscript], ConnectMySQL, 16);
cache_get_field_content(idx, "hOwner", HouseInfo[idx+1][hOwner], ConnectMySQL, MAX_PLAYER_NAME);
HouseInfo[idx+1][hPrice] = cache_get_field_content_int(idx, "hPrice", ConnectMySQL);
HouseInfo[idx+1][hBuyPrice] = cache_get_field_content_int(idx, "hBuyprice", ConnectMySQL);
HouseInfo[idx+1][hInt] = cache_get_field_content_int(idx, "hInt", ConnectMySQL);
HouseInfo[idx+1][hVirtual] = cache_get_field_content_int(idx, "hVirtual", ConnectMySQL);
HouseInfo[idx+1][hLock] = cache_get_field_content_int(idx, "hLock", ConnectMySQL);
if(!strcmp(HouseInfo[idx+1][hOwner],"None",true))
{
HouseInfo[idx+1][hMIcon] =
CreateDynamicMapIcon(HouseInfo[idx+1][hEntrx],\
HouseInfo[idx+1][hEntry], HouseInfo[idx+1][hEntrz], 31, 0,-1,-1,-1,160.0);
HouseInfo[idx+1][hPickup] = CreateDynamicPickup(1273, 23, HouseInfo[idx+1][hEntrx], HouseInfo[idx+1][hEntry], HouseInfo[idx+1][hEntrz]);
}
else
{
HouseInfo[idx+1][hMIcon] =
CreateDynamicMapIcon(HouseInfo[idx+1][hEntrx],\
HouseInfo[idx+1][hEntry], HouseInfo[idx+1][hEntrz], 32, 0,-1,-1,-1,160.0);
HouseInfo[idx+1][hPickup] = CreateDynamicPickup(1272, 23, HouseInfo[idx+1][hEntrx], HouseInfo[idx+1][hEntry], HouseInfo[idx+1][hEntrz]);
}
TOTALHOUSE++;
}
printf("- Óñïåøíî çàãðóæåíû äîìà.Âñåãî äîìîâ %d",TOTALHOUSE);
return 1;
}

gangzone.ini
10.05.2017, 02:23
Ошиблись разделом, вам в Стол заказов. (http://pro-pawn.ru/forumdisplay.php?218-Стол-заказов)