move enterable shamal code to module
This commit is contained in:
parent
692f58a1f5
commit
0ccc26dbe4
@ -60,6 +60,7 @@
|
||||
#include "irresistible\cnr\features\random_hits.pwn"
|
||||
#include "irresistible\cnr\features\c4.pwn"
|
||||
#include "irresistible\cnr\features\tax.pwn"
|
||||
#include "irresistible\cnr\features\shamal.pwn"
|
||||
|
||||
// pool
|
||||
#include "irresistible\cnr\features\pool.pwn"
|
||||
|
118
gamemodes/irresistible/cnr/features/shamal.pwn
Normal file
118
gamemodes/irresistible/cnr/features/shamal.pwn
Normal file
@ -0,0 +1,118 @@
|
||||
/*
|
||||
* Irresistible Gaming (c) 2018
|
||||
* Developed by Lorenc
|
||||
* Module: cnr\features\shamal.pwn
|
||||
* Purpose: feature to allow passengers into shamals
|
||||
*/
|
||||
|
||||
/* ** Includes ** */
|
||||
#include < YSI\y_hooks >
|
||||
|
||||
/* ** Definitions ** */
|
||||
#define VW_SHAMAL 220
|
||||
|
||||
/* ** Macros ** */
|
||||
#define IsPlayerInShamal(%0) ( GetPlayerInterior( %0 ) == VW_SHAMAL )
|
||||
#define GetPlayerShamalVehicle(%0) ( GetPlayerVirtualWorld( %0 ) - VW_SHAMAL )
|
||||
|
||||
/* ** Hooks ** */
|
||||
hook OnScriptInit( )
|
||||
{
|
||||
// Shamal Interior
|
||||
CreateDynamicObject( 14404, 1320.00000, 2000.00000, 1201.00000, 0.00000, 0.00000, 0.00000 );
|
||||
CreateDynamicObject( 1562, 1321.13000, 2000.05005, 1199.90002, 0.00000, 0.00000, 0.00000 );
|
||||
CreateDynamicObject( 1562, 1321.13000, 1997.65002, 1199.90002, 0.00000, 0.00000, 180.00000 );
|
||||
CreateDynamicObject( 1562, 1321.13000, 1995.34998, 1199.90002, 0.00000, 0.00000, 180.00000 );
|
||||
CreateDynamicObject( 1562, 1318.87000, 1998.94995, 1199.90002, 0.00000, 0.00000, 0.00000 );
|
||||
CreateDynamicObject( 1562, 1318.87000, 1996.55005, 1199.90002, 0.00000, 0.00000, 180.00000 );
|
||||
CreateDynamicObject( 1562, 1318.87000, 1994.15002, 1199.90002, 0.00000, 0.00000, 180.00000 );
|
||||
CreateDynamicObject( 1563, 1321.13000, 2000.39001, 1200.43994, 0.00000, 0.00000, 0.00000 );
|
||||
CreateDynamicObject( 1563, 1321.13000, 1997.31006, 1200.43994, 0.00000, 0.00000, 180.00000 );
|
||||
CreateDynamicObject( 1563, 1321.13000, 1995.01001, 1200.43994, 0.00000, 0.00000, 180.00000 );
|
||||
CreateDynamicObject( 1563, 1318.87000, 1999.29004, 1200.43994, 0.00000, 0.00000, 0.00000 );
|
||||
CreateDynamicObject( 1563, 1318.87000, 1996.20996, 1200.43994, 0.00000, 0.00000, 180.00000 );
|
||||
CreateDynamicObject( 1563, 1318.87000, 1993.81006, 1200.43994, 0.00000, 0.00000, 180.00000 );
|
||||
CreateDynamicObject( 14405, 1320.00000, 1999.69995, 1199.90002, 0.00000, 0.00000, 0.00000 );
|
||||
|
||||
// Parachute Shamal Interior
|
||||
CreateDynamicPickup( 371, 2, 1318.92200, 2002.7311, 1200.250 );
|
||||
return 1;
|
||||
}
|
||||
|
||||
hook OnVehicleSpawn( vehicleid ) {
|
||||
KillEveryoneInShamal( vehicleid );
|
||||
return 1;
|
||||
}
|
||||
|
||||
hook OnVehicleDeath( vehicleid, killerid ) {
|
||||
KillEveryoneInShamal( vehicleid );
|
||||
return 1;
|
||||
}
|
||||
|
||||
hook OnPlayerEnterVehicle( playerid, vehicleid, ispassenger )
|
||||
{
|
||||
if ( ispassenger )
|
||||
{
|
||||
if ( GetVehicleModel( vehicleid ) == 519 )
|
||||
{
|
||||
SetPlayerPos( playerid, 1322.6577, 1992.5508, 1200.2574 );
|
||||
SetPlayerVirtualWorld( playerid, vehicleid + VW_SHAMAL );
|
||||
SetPlayerInterior( playerid, VW_SHAMAL );
|
||||
pauseToLoad( playerid );
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
hook OnPlayerKeyStateChange( playerid, newkeys, oldkeys )
|
||||
{
|
||||
static
|
||||
Float: X, Float: Y, Float: Z, Float: Angle;
|
||||
|
||||
if ( PRESSED( KEY_SECONDARY_ATTACK ) )
|
||||
{
|
||||
// Enter Shamal Interior
|
||||
if ( ! IsPlayerTied( playerid ) && IsPlayerInShamal( playerid ) )
|
||||
{
|
||||
if ( IsPlayerInRangeOfPoint( playerid, 10.0, 1322.6577, 1992.5508, 1200.2574 ) )
|
||||
{
|
||||
new
|
||||
vehicleid = GetPlayerVirtualWorld( playerid ) - VW_SHAMAL;
|
||||
|
||||
if ( IsValidVehicle( vehicleid ) )
|
||||
{
|
||||
GetVehiclePos( vehicleid, X, Y, Z );
|
||||
GetVehicleZAngle( vehicleid, Angle );
|
||||
|
||||
X += ( 3.2 * floatsin( -( Angle - 45.0 ), degrees ) );
|
||||
Y += ( 3.2 * floatcos( -( Angle - 45.0 ), degrees ) );
|
||||
|
||||
SetPlayerInterior( playerid, 0 );
|
||||
SetPlayerVirtualWorld( playerid, 0 );
|
||||
SetPlayerFacingAngle( playerid, Angle );
|
||||
SetPlayerPos( playerid, X, Y, Z - 1 );
|
||||
|
||||
pauseToLoad( playerid );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ** Functions ** */
|
||||
static stock KillEveryoneInShamal( vehicleid )
|
||||
{
|
||||
static
|
||||
Float: X, Float: Y, Float: Z;
|
||||
|
||||
foreach(new i : Player) {
|
||||
if ( IsPlayerInShamal( i ) && ( GetPlayerVirtualWorld( i ) - VW_SHAMAL ) == vehicleid ) {
|
||||
if ( IsValidVehicle( vehicleid ) ) {
|
||||
GetPlayerPos( i, X, Y, Z );
|
||||
CreateExplosionForPlayer( i, X, Y, Z - 0.75, 0, 10.0 );
|
||||
SetPlayerHealth( i, -1 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -37,7 +37,6 @@ new
|
||||
bool: p_Kidnapped [ MAX_PLAYERS char ],
|
||||
bool: p_ToggledViewPM [ MAX_PLAYERS char ],
|
||||
bool: p_ToggleCopChat [ MAX_PLAYERS char ],
|
||||
p_CheckpointEnterTick [ MAX_PLAYERS ],
|
||||
bool: p_pausedToLoad [ MAX_PLAYERS char ],
|
||||
bool: p_CantUseReport [ MAX_PLAYERS char ],
|
||||
p_pausedToLoadTimer [ MAX_PLAYERS ],
|
||||
|
@ -3727,22 +3727,6 @@ hook OnScriptInit( )
|
||||
CreateDynamicObject(11392, -2047.75781, 168.14063, 27.88281, 0.00000, 0.00000, 0.00000);
|
||||
CreateDynamicObject(11388, -2048.17969, 166.71875, 34.51563, 0.00000, 0.00000, 0.00000);
|
||||
|
||||
// Shamal Interior
|
||||
CreateDynamicObject(14404, 1320.00000, 2000.00000, 1201.00000, 0.00000, 0.00000, 0.00000);
|
||||
CreateDynamicObject(1562, 1321.13000, 2000.05005, 1199.90002, 0.00000, 0.00000, 0.00000);
|
||||
CreateDynamicObject(1562, 1321.13000, 1997.65002, 1199.90002, 0.00000, 0.00000, 180.00000);
|
||||
CreateDynamicObject(1562, 1321.13000, 1995.34998, 1199.90002, 0.00000, 0.00000, 180.00000);
|
||||
CreateDynamicObject(1562, 1318.87000, 1998.94995, 1199.90002, 0.00000, 0.00000, 0.00000);
|
||||
CreateDynamicObject(1562, 1318.87000, 1996.55005, 1199.90002, 0.00000, 0.00000, 180.00000);
|
||||
CreateDynamicObject(1562, 1318.87000, 1994.15002, 1199.90002, 0.00000, 0.00000, 180.00000);
|
||||
CreateDynamicObject(1563, 1321.13000, 2000.39001, 1200.43994, 0.00000, 0.00000, 0.00000);
|
||||
CreateDynamicObject(1563, 1321.13000, 1997.31006, 1200.43994, 0.00000, 0.00000, 180.00000);
|
||||
CreateDynamicObject(1563, 1321.13000, 1995.01001, 1200.43994, 0.00000, 0.00000, 180.00000);
|
||||
CreateDynamicObject(1563, 1318.87000, 1999.29004, 1200.43994, 0.00000, 0.00000, 0.00000);
|
||||
CreateDynamicObject(1563, 1318.87000, 1996.20996, 1200.43994, 0.00000, 0.00000, 180.00000);
|
||||
CreateDynamicObject(1563, 1318.87000, 1993.81006, 1200.43994, 0.00000, 0.00000, 180.00000);
|
||||
CreateDynamicObject(14405, 1320.00000, 1999.69995, 1199.90002, 0.00000, 0.00000, 0.00000);
|
||||
|
||||
// Studio
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18981, 2328.617187, 914.297790, 1055.000000, 0.000000, 90.000000, 0.000000 ), 0, 13694, "lahillstxd1a", "Bow_Abattoir_Floor_Clean", -1 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 18981, 2340.614013, 914.297790, 1055.000000, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -1 );
|
||||
|
@ -59,7 +59,6 @@ new bool: False = false;
|
||||
/* ** Useful macros ** */
|
||||
#define DQCMD:%1(%2) forward discord_%1(%2); public discord_%1(%2)
|
||||
#define IsPlayerRobbing(%0) IsPlayerAttachedObjectSlotUsed(%0,0)
|
||||
#define IsPlayerInShamal(%0) (GetPlayerInterior(%0)==VW_SHAMAL)
|
||||
#define hasTickcountPassed(%1,%2) ((GetTickCount()-%1)>(%2))
|
||||
#define Ach_Unlock(%0,%1) (%0 >= %1 ?("{6EF83C}"):("{FFFFFF}"))
|
||||
#define UpdatePlayerTime(%0) SetPlayerTime(%0,floatround(g_WorldClockSeconds/60),g_WorldClockSeconds-floatround((g_WorldClockSeconds/60)*60))
|
||||
@ -79,7 +78,6 @@ new bool: False = false;
|
||||
#define MAX_TIME_TIED 180
|
||||
#define MAX_VEH_ATTACHED_OBJECTS 2
|
||||
|
||||
#define VW_SHAMAL 220
|
||||
|
||||
/* ** Forwards ** */
|
||||
public OnPlayerDriveVehicle( playerid, vehicleid );
|
||||
@ -141,7 +139,6 @@ public OnGameModeInit()
|
||||
g_AlcatrazArea = CreateDynamicRectangle( -1921.6816, 1661.7448, -2172.4653, 1876.0469 );
|
||||
|
||||
/* ** Pickups ** */
|
||||
CreateDynamicPickup( 371, 2, 1318.92200, 2002.7311, 1200.250 ); // Parachute @Shamal
|
||||
CreateDynamicPickup( 371, 2, -1745.2754, 59.301500, 866.4556 ); // Parachute @Veloxity
|
||||
|
||||
/* ** Set everyone offline ** */
|
||||
@ -1530,8 +1527,6 @@ public OnPlayerDeath( playerid, killerid, reason )
|
||||
|
||||
public OnVehicleSpawn( vehicleid )
|
||||
{
|
||||
KillEveryoneInShamal( vehicleid );
|
||||
|
||||
if ( g_buyableVehicle{ vehicleid } == true ) {
|
||||
RespawnBuyableVehicle( vehicleid );
|
||||
}
|
||||
@ -1540,7 +1535,6 @@ public OnVehicleSpawn( vehicleid )
|
||||
|
||||
public OnVehicleDeath( vehicleid, killerid )
|
||||
{
|
||||
KillEveryoneInShamal( vehicleid );
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -4135,17 +4129,6 @@ public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
|
||||
}
|
||||
else
|
||||
{
|
||||
switch( iModel )
|
||||
{
|
||||
case 519: // Shamal
|
||||
{
|
||||
SetPlayerPos( playerid, 1322.6577, 1992.5508, 1200.2574 );
|
||||
SetPlayerVirtualWorld( playerid, vehicleid + VW_SHAMAL );
|
||||
SetPlayerInterior( playerid, VW_SHAMAL );
|
||||
pauseToLoad( playerid );
|
||||
}
|
||||
}
|
||||
|
||||
// Enter a wanted players vehicle?
|
||||
if ( driverid != INVALID_PLAYER_ID && !p_WantedLevel[ playerid ] && p_Class[ playerid ] != CLASS_POLICE )
|
||||
{
|
||||
@ -4717,38 +4700,6 @@ public OnPlayerKeyStateChange( playerid, newkeys, oldkeys )
|
||||
SetCameraBehindPlayer( playerid );
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ( g_iTime > p_CheckpointEnterTick[ playerid ] && !p_pausedToLoad{ playerid } && !IsPlayerTied( playerid ) )
|
||||
{
|
||||
p_CheckpointEnterTick[ playerid ] = g_iTime + 2;
|
||||
|
||||
// Enter Shamal Interior
|
||||
if ( IsPlayerInShamal( playerid ) )
|
||||
{
|
||||
if ( IsPlayerInRangeOfPoint( playerid, 10.0, 1322.6577, 1992.5508, 1200.2574 ) )
|
||||
{
|
||||
new
|
||||
vehicleid = GetPlayerVirtualWorld( playerid ) - VW_SHAMAL
|
||||
;
|
||||
|
||||
if ( IsValidVehicle( vehicleid ) )
|
||||
{
|
||||
GetVehiclePos( vehicleid, X, Y, Z );
|
||||
GetVehicleZAngle( vehicleid, Angle );
|
||||
|
||||
X += ( 3.2 * floatsin( -( Angle - 45.0 ), degrees ) );
|
||||
Y += ( 3.2 * floatcos( -( Angle - 45.0 ), degrees ) );
|
||||
|
||||
SetPlayerInterior( playerid, 0 );
|
||||
SetPlayerVirtualWorld( playerid, 0 );
|
||||
SetPlayerFacingAngle( playerid, Angle );
|
||||
SetPlayerPos( playerid, X, Y, Z - 1 );
|
||||
|
||||
pauseToLoad( playerid );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else if ( HOLDING( KEY_AIM ) )
|
||||
@ -6868,7 +6819,7 @@ stock IsVehicleOccupied( vehicleid, bool: include_vehicle_interior = false )
|
||||
if ( GetPlayerVehicleID( i ) == vehicleid )
|
||||
return i;
|
||||
|
||||
if ( include_vehicle_interior && IsPlayerSpawned( i ) && ( GetPlayerMethLabVehicle( i ) == vehicleid && iModel == 508 ) || ( ( GetPlayerVirtualWorld( i ) - VW_SHAMAL ) == vehicleid && iModel == 519 ) )
|
||||
if ( include_vehicle_interior && IsPlayerSpawned( i ) && ( GetPlayerMethLabVehicle( i ) == vehicleid && iModel == 508 ) || ( GetPlayerShamalVehicle( i ) == vehicleid && iModel == 519 ) )
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
@ -7033,22 +6984,6 @@ stock CensoreString( query[ ], characters = 5 )
|
||||
return szString;
|
||||
}
|
||||
|
||||
stock KillEveryoneInShamal( vehicleid )
|
||||
{
|
||||
static
|
||||
Float: X, Float: Y, Float: Z;
|
||||
|
||||
foreach(new i : Player) {
|
||||
if ( IsPlayerInShamal( i ) && ( GetPlayerVirtualWorld( i ) - VW_SHAMAL ) == vehicleid ) {
|
||||
if ( IsValidVehicle( vehicleid ) ) {
|
||||
GetPlayerPos( i, X, Y, Z );
|
||||
CreateExplosionForPlayer( i, X, Y, Z - 0.75, 0, 10.0 );
|
||||
SetPlayerHealth( i, -1 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stock CreateExplosionEx( Float: X, Float: Y, Float: Z, type, Float: radius, world, interior, issuerid = INVALID_PLAYER_ID )
|
||||
{
|
||||
foreach(new i : Player) {
|
||||
|
Loading…
Reference in New Issue
Block a user