11.04.2013, 17:53
(
Последний раз редактировалось Riddick94; 12.04.2013 в 22:11.
)
- done -
enum KHouseInfo {
HouseID,
Owner[MAX_PLAYER_NAME],
Float:OutX,
Float:OutY,
Float:OutZ,
Interiorlevel,
Price,
SellPrice,
VSlots,
PickupID,
Locked,
Password[50],
UsedSlots,
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
new houseid = kPlayerInfo[playerid][IsInHouse];
new InteriorSet = HouseInfo[houseid][Interiorlevel];
if ((newkeys & KEY_SECONDARY_ATTACK) && !(oldkeys & KEY_SECONDARY_ATTACK))
{
if(kPlayerInfo[playerid][IsInHouse] != 0)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0,Interiors[InteriorSet][IntX], Interiors[InteriorSet][IntY], Interiors[InteriorSet][IntZ]))
{
SetPlayerPos(playerid, HouseInfo[houseid][OutX],HouseInfo[houseid][OutY],HouseInfo[houseid][OutZ]);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, 0);
kPlayerInfo[playerid][IsInHouse] = 0;
}
}
else
{
for (new HouseiD = 1; HouseiD < MAX_HOUSES; HouseiD++)
{
if (HouseInfo[HouseiD][PickupID] != 0)
{
if(strcmp(HouseInfo[HouseiD][Owner], "System", false, 24))
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, HouseInfo[HouseiD][OutX], HouseInfo[HouseiD][OutY], HouseInfo[HouseiD][OutZ]))
{
if(HouseInfo[HouseiD][Locked] == 0)
{
EnterHouse(playerid, HouseiD);
}
else
if(HouseInfo[HouseiD][Locked] == 1)
{
if(strcmp(HouseInfo[HouseiD][Owner], kPlayerInfo[playerid][Name], false, 24))
{
EnterHouse(playerid, HouseiD);
}
else
{
SendClientMessage(playerid, 0xFFFFFFFF, "House is closed for public, only with password you can enter.");
ShowPlayerDialog(playerid, 3,DIALOG_STYLE_INPUT, "House Password", "Please enter the password from the house:", "Enter", "Cancel");
}
}
else
if(HouseInfo[HouseiD][Locked] == 2)
{
if(strcmp(HouseInfo[HouseiD][Owner], kPlayerInfo[playerid][Name], false, 24))
{
EnterHouse(playerid, HouseiD);
}
else
{
SendClientMessage(playerid, 0xFFFFFFFF, "House closed for public, you cannot enter it!");
}
}
}
}
else
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, HouseInfo[HouseiD][OutX], HouseInfo[HouseiD][OutY], HouseInfo[HouseiD][OutZ]))
{
SendClientMessage(playerid, 0xFFFFFFFF, "This house is for sale! If you want to buy it, type /buyhouse!");
}
}
}
}
}
}
return 1;
}
new pickupid;
PlayerData[playerid][E_PLAYER_PICKEDUP_PICKUP] = pickupid;
But, do you know, why did I use local variable in LoadHouses(); to create pickup?
pawn Код:
pawn Код:
|
YCMD:edit2(playerid, params[], help)
{
new text[32],
string[128];
new house_uid;
if(sscanf(params, "ds[32]", house_uid, text))return SendClientMessage(playerid, -1, "Wpisz: /edit (uid_domu) (tekst)");
{
strset(HouseData[house_uid][E_HOUSE_DESCRIPTION], text);
SendClientMessage(playerid, -1, "Aktualny opis tego domu to:");
format(string, sizeof(string), "%s", HouseData[house_uid][E_HOUSE_DESCRIPTION]);
SendClientMessage(playerid, -1, string);
UpdateDynamic3DTextLabelText(HouseData[house_uid][E_HOUSE_LABEL], 0xFFC973FF, text);
}
return true;
}