|
// -----------------------------------------------------------------------------
|
|
// Example Filterscript for the new SF Building 1
|
|
// ----------------------------------------------
|
|
// By Matite in February 2015
|
|
//
|
|
//
|
|
// This script creates the new SF Building 1 object and removes the existing
|
|
// GTASA building object.
|
|
//
|
|
// Warning...
|
|
// This script uses a total of:
|
|
// * 3 objects = 1 for the replacement land object, 1 for the outside object
|
|
// and 1 for the inside object
|
|
// * Enables the /sfb command to teleport the player to the SF Building 1
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Includes
|
|
// --------
|
|
|
|
// SA-MP include
|
|
#include <a_samp>
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Defines
|
|
// -------
|
|
|
|
// Used for messages sent to the player
|
|
#define COLOR_MESSAGE_YELLOW 0xFFDD00AA
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Variables
|
|
// ---------
|
|
|
|
// Stores the created object numbers of the replacement building objects so
|
|
// they can be destroyed when the filterscript is unloaded
|
|
new SFBuilding1Object1; // Land object
|
|
new SFBuilding1Object2; // Outside object
|
|
new SFBuilding1Object3; // Inside object
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Callbacks
|
|
// ---------
|
|
|
|
public OnPlayerCommandText(playerid, cmdtext[])
|
|
{
|
|
// Check command text
|
|
if (strcmp("/sfb", cmdtext, true, 4) == 0)
|
|
{
|
|
// Set the interior
|
|
SetPlayerInterior(playerid, 0);
|
|
|
|
// Set player position and facing angle
|
|
SetPlayerPos(playerid, -2706.56, 870.91 + random(2), 71.86);
|
|
SetPlayerFacingAngle(playerid, 180);
|
|
|
|
// Fix camera position after teleporting
|
|
SetCameraBehindPlayer(playerid);
|
|
|
|
// Send a gametext message to the player
|
|
GameTextForPlayer(playerid, "~b~~h~SF Building!", 3000, 3);
|
|
|
|
// Exit here
|
|
return 1;
|
|
}
|
|
|
|
// Exit here (return 0 as the command was not handled in this filterscript)
|
|
return 0;
|
|
}
|
|
|
|
public OnFilterScriptInit()
|
|
{
|
|
// Display information in the Server Console
|
|
print("\n");
|
|
print(" |---------------------------------------------------");
|
|
print(" |--- SF Building 1 Filterscript");
|
|
print(" |-- Script v1.01");
|
|
print(" |-- 10th February 2015");
|
|
print(" |---------------------------------------------------");
|
|
|
|
// Create the SF Building 1 Land object
|
|
SFBuilding1Object1 = CreateObject(19600, -2719.02, 861.211, 72.1562, 0, 0, 0);
|
|
|
|
// Display information in the Server Console
|
|
print(" |-- SF Building 1 Land object created");
|
|
|
|
// Create the SF Building 1 Outside object
|
|
SFBuilding1Object2 = CreateObject(19598, -2719.02, 861.211, 72.1562, 0, 0, 0);
|
|
|
|
// Display information in the Server Console
|
|
print(" |-- SF Building 1 Outside object created");
|
|
|
|
// Create the SF Building 1 Inside object
|
|
SFBuilding1Object3 = CreateObject(19599, -2719.02, 861.211, 72.1562, 0, 0, 0);
|
|
|
|
// Display information in the Server Console
|
|
print(" |-- SF Building 1 Inside object created");
|
|
print(" |---------------------------------------------------");
|
|
|
|
// Loop
|
|
for (new i = 0; i < MAX_PLAYERS; i++)
|
|
{
|
|
// Check if the player is connected and not a NPC
|
|
if (IsPlayerConnected(i) && !IsPlayerNPC(i))
|
|
{
|
|
// Remove default GTASA SF Building and LOD map objects for the player
|
|
// (so any player currently ingame does not have to rejoin for them
|
|
// to be removed when this filterscript is loaded)
|
|
RemoveBuildingForPlayer(i, 9510, -2719.02, 861.211, 72.1562, 250.0); // Building
|
|
RemoveBuildingForPlayer(i, 9671, -2719.02, 861.211, 72.1562, 250.0); // LOD
|
|
RemoveBuildingForPlayer(i, 715, -2693.24, 852.60, 71.74, 8.0); // Tree (casts a shadow inside)
|
|
}
|
|
}
|
|
|
|
// Exit here
|
|
return 1;
|
|
}
|
|
|
|
public OnFilterScriptExit()
|
|
{
|
|
// Check for valid object
|
|
if (IsValidObject(SFBuilding1Object1))
|
|
{
|
|
// Destroy the SF Building 1 Land object
|
|
DestroyObject(SFBuilding1Object1);
|
|
|
|
// Display information in the Server Console
|
|
print(" |---------------------------------------------------");
|
|
print(" |-- SF Building 1 Land object destroyed");
|
|
}
|
|
|
|
// Check for valid object
|
|
if (IsValidObject(SFBuilding1Object2))
|
|
{
|
|
// Destroy the SF Building 1 Outside object
|
|
DestroyObject(SFBuilding1Object2);
|
|
|
|
// Display information in the Server Console
|
|
print(" |-- SF Building 1 Outside object destroyed");
|
|
}
|
|
|
|
// Check for valid object
|
|
if (IsValidObject(SFBuilding1Object3))
|
|
{
|
|
// Destroy the SF Building 1 Inside object
|
|
DestroyObject(SFBuilding1Object3);
|
|
|
|
// Display information in the Server Console
|
|
print(" |-- SF Building 1 Inside object destroyed");
|
|
}
|
|
|
|
// Display information in the Server Console
|
|
print(" |---------------------------------------------------");
|
|
print(" |-- SF Building 1 Filterscript Unloaded");
|
|
print(" |---------------------------------------------------");
|
|
|
|
// Exit here
|
|
return 1;
|
|
}
|
|
|
|
public OnPlayerConnect(playerid)
|
|
{
|
|
// Remove default GTASA SF Building and LOD map objects for the player
|
|
RemoveBuildingForPlayer(playerid, 9510, -2719.02, 861.211, 72.1562, 250.0); // Building
|
|
RemoveBuildingForPlayer(playerid, 9671, -2719.02, 861.211, 72.1562, 250.0); // LOD
|
|
RemoveBuildingForPlayer(playerid, 715, -2693.24, 852.60, 71.74, 8.0); // Tree (casts a shadow inside)
|
|
|
|
// Exit here (return 1 so this callback is handled in other scripts too)
|
|
return 1;
|
|
}
|
|
|