26.02.2012, 23:35
pawn Код:
COMMAND:enter(playerid, params[])
{
// Setup local variables
new IntID;
// If a player hasn't logged in properly, he cannot use this command
if (INT_IsPlayerLoggedIn(playerid) == 0) return 0;
// Check if the player isn't inside a vehicle (the player must be on foot to use this command)
if (GetPlayerVehicleSeat(playerid) == -1)
{
// Loop through all houses
for(new i = 0; i < sizeof(AHouseData); i++)
{
// Check if the house exists
if (IsValidDynamicPickup(AHouseData[i][PickupID]))
{
// Check if the player is in range of the house-pickup
if (IsPlayerInRangeOfPoint(playerid, 2.5, AHouseData[i][HouseX], AHouseData[i][HouseY], AHouseData[i][HouseZ]))
{
// Check if the house is closed to the public
if (AHouseData[i][HouseOpened] == false)
{
if(!IsPlayerAdmin(playerid))
{
if (House_PlayerIsOwner(playerid, i) == 0)
{
SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}This house isn't open to the public, you can't enter it");
}
}
else
{
IntID = AHouseData[i][HouseLevel];
SetPlayerVirtualWorld(playerid, 5000 + i);
SetPlayerInterior(playerid, AHouseInteriors[IntID][InteriorID]);
SetPlayerPos(playerid, AHouseInteriors[IntID][IntX], AHouseInteriors[IntID][IntY], AHouseInteriors[IntID][IntZ]);
APlayerData[playerid][CurrentHouse] = i;
SendClientMessage(playerid, 0xFFFFFFFF, "{00FF00}Use {FFFF00}/housemenu{00FF00} to change options for your house");
}
}
else
{
// The house is open to the public, or the player trying to enter is the owner, so let the player inside the house
// Get the interior to put the player in
IntID = AHouseData[i][HouseLevel]; // Get the level of the house
// Set the worldid so other players cannot see him anymore (but allow all players in the same house to see eachother)
SetPlayerVirtualWorld(playerid, 5000 + i);
// Set the player inside the interior of the house
SetPlayerInterior(playerid, AHouseInteriors[IntID][InteriorID]);
// Set the position of the player at the spawn-location of the house's interior
SetPlayerPos(playerid, AHouseInteriors[IntID][IntX], AHouseInteriors[IntID][IntY], AHouseInteriors[IntID][IntZ]);
// Also set a tracking-variable to enable /housemenu to track in which house the player is
APlayerData[playerid][CurrentHouse] = i;
// Also let the player know he can use /housemenu to upgrade/exit his house
SendClientMessage(playerid, 0xFFFFFFFF, "{00FF00}Use {FFFF00}/housemenu{00FF00} to change options for your house");
// Exit the function
}
}
}
}
}
// If no house was in range, allow other script to use this command too (business-script for example)
return 1;
}