62bb43213f
(*) Some additional edits to were made (/) Weed businesses take 10 hours, meth 8 hours and coke 6 hours respectively to resupply (/) The irresistible coin market (/ic market) has been redesigned (/) There are limits to how much supplies you can buy for a business (-) Silver VIP is no longer available, see forum announcements (-) Removes map tax system completely (all code associated with it)
286 lines
7.6 KiB
PHP
286 lines
7.6 KiB
PHP
/*
|
|
*
|
|
* Irresistible Gaming
|
|
*
|
|
* Founded by Lorenc
|
|
*
|
|
* * Settings to be used with Irresistible Gaming SA-MP Servers
|
|
*
|
|
*
|
|
*/
|
|
|
|
/* ** MySQL Config ** */
|
|
#if !defined DEBUG_MODE
|
|
#define MYSQL_HOST "127.0.0.1"
|
|
#define MYSQL_USER "service"
|
|
#define MYSQL_PASS "M8aHnYxJEFmw6ubK" // "82JA8LDL1JAG2GF69"
|
|
#define MYSQL_DB "sa-mp"
|
|
#else
|
|
#define MYSQL_HOST "127.0.0.1"
|
|
#define MYSQL_USER "root"
|
|
#define MYSQL_PASS ""
|
|
#define MYSQL_DB "sa-mp"
|
|
#endif
|
|
|
|
//mysqldump -u service -p82JA8LDL1JAG2GF69 sa-mp > ~/dump01.sql
|
|
/* ** Defines ** */
|
|
// #define IRC_SERVER "foco.ca.irc.tl" // test "maple.nl.eu.gtanet.com"
|
|
#define GetPlayerFPS(%1) p_FPS[%1]
|
|
|
|
// Client messages
|
|
#define SendUsage(%0,%1)\
|
|
(SendClientMessageFormatted(%0,-1,"{FFAF00}[USAGE]{FFFFFF} " # %1))
|
|
|
|
#define SendError(%0,%1)\
|
|
(SendClientMessageFormatted(%0,-1,"{F81414}[ERROR]{FFFFFF} " # %1))
|
|
|
|
#define SendServerMessage(%0,%1)\
|
|
(SendClientMessageFormatted(%0,-1,"{C0C0C0}[SERVER]{FFFFFF} " # %1))
|
|
|
|
/* ** RADIO SYSTEM ** */
|
|
enum E_RADIO_DATA
|
|
{
|
|
E_NAME [ 20 ],
|
|
E_URL [ 60 ]
|
|
};
|
|
|
|
new
|
|
g_RadioData[ ] [ E_RADIO_DATA ] =
|
|
{
|
|
{ "Country", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=446371" },
|
|
{ "Drum n' Bass", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=114517" },
|
|
{ "Electronic", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=201767" },
|
|
{ "Metal", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=558051" },
|
|
{ "Hip Hop", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=366480" },
|
|
{ "Pop", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=8318" },
|
|
{ "Reggae", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=580756" },
|
|
{ "Rock", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=37586" },
|
|
{ "Trance", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=83468" },
|
|
{ "Techno", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=702264" },
|
|
{ "House", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=99194448" },
|
|
{ "SKY.FM Hits", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=595424" },
|
|
{ "Party 181.FM", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=508962" },
|
|
{ "Top 40 181.FM", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=872" },
|
|
{ ".977 Hits", "http://7609.live.streamtheworld.com:80/977_HITS_SC" }
|
|
},
|
|
g_RadioStations [ 190 ]
|
|
;
|
|
|
|
/* ** Donation ** */
|
|
#define szRedemptionSalt "7resta#ecacakumedeM=yespawr!d@et"
|
|
enum E_DONATION_DATA
|
|
{
|
|
E_TRANSACTION_ID[ 17 ],
|
|
E_NAME[ 24 ],
|
|
E_AMOUNT[ 11 ],
|
|
E_PURPOSE[ 64 ],
|
|
E_DATE
|
|
}
|
|
|
|
new stock
|
|
Float: a_vipCoinRequirements[ ] = { 0.0, 500.0, 1500.0, 2500.0, 5000.0, 10000.0 }
|
|
;
|
|
|
|
/* ** Variables ** */
|
|
new
|
|
// Textdraws
|
|
Text: g_AdminOnDutyTD = Text: INVALID_TEXT_DRAW,
|
|
Text: p_FPSCounterTD [ MAX_PLAYERS ] = { Text: INVALID_TEXT_DRAW, ... },
|
|
|
|
// Player
|
|
p_RconLoginFails [ MAX_PLAYERS char ],
|
|
bool: p_FPSCounter [ MAX_PLAYERS char ],
|
|
p_FPS_DrunkLevel [ MAX_PLAYERS ],
|
|
p_FPS [ MAX_PLAYERS ]
|
|
;
|
|
|
|
/* ** Callbacks ** */
|
|
public OnRconLoginAttempt(ip[], password[], success)
|
|
{
|
|
new
|
|
playerid = INVALID_PLAYER_ID,
|
|
szIP[ 16 ]
|
|
;
|
|
|
|
foreach(new i : Player)
|
|
{
|
|
if( GetPlayerIp( i, szIP, sizeof( szIP ) ) )
|
|
{
|
|
if( !strcmp( szIP, ip, true ) )
|
|
{
|
|
playerid = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if( !success )
|
|
{
|
|
if( IsPlayerConnected( playerid ) )
|
|
{
|
|
p_RconLoginFails{ playerid } ++;
|
|
SendClientMessageFormatted( playerid, -1, "{FF0000}[ERROR]{FFFFFF} You have entered an invalid rcon password. {C0C0C0}[%d/2]", p_RconLoginFails{ playerid } );
|
|
|
|
if( p_RconLoginFails{ playerid } >= 2 ) {
|
|
SendServerMessage( playerid, "If you are not the server operator or manager, don't bother trying!" );
|
|
Kick( playerid );
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if( IsPlayerConnected( playerid ) )
|
|
{
|
|
new
|
|
name[ 24 ];
|
|
|
|
GetPlayerName( playerid, name, sizeof( name ) );
|
|
|
|
if( strcmp( name, "Lorenc", true ) && strcmp( name, "Banging7Grams", true ) )
|
|
{
|
|
RangeBanPlayer( playerid );
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
#if defined DEBUG_MODE
|
|
public OnIncomingConnection( playerid, ip_address[ ], port ) {
|
|
SendRconCommand( "reloadbans" );
|
|
}
|
|
#endif
|
|
|
|
/* ** Commands ** */
|
|
CMD:fps( playerid, params[ ] )
|
|
{
|
|
if( ( p_FPSCounter{ playerid } = !p_FPSCounter{ playerid } ) == true )
|
|
{
|
|
formatFPSCounter( playerid );
|
|
TextDrawShowForPlayer( playerid, p_FPSCounterTD[ playerid ] );
|
|
SendClientMessage( playerid, 0x84aa63ff, "-> FPS counter enabled" );
|
|
}
|
|
else
|
|
{
|
|
TextDrawHideForPlayer( playerid, p_FPSCounterTD[ playerid ] );
|
|
SendClientMessage( playerid, 0x84aa63ff, "-> FPS counter disabled" );
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
/* ** Functions ** */
|
|
new const
|
|
g_igServerNames[ 2 ] [ 28 ] = { "San Fierro Cops And Robbers", "Call Of Duty For SA-MP" };
|
|
|
|
#define GetServerName(%0) g_igServerNames[%0]
|
|
|
|
stock InitializeIGTextdraws( )
|
|
{
|
|
g_AdminOnDutyTD = TextDrawCreate(552.000000, 66.500000, "ADMIN ON DUTY");
|
|
TextDrawBackgroundColor(g_AdminOnDutyTD, 255);
|
|
TextDrawFont(g_AdminOnDutyTD, 1);
|
|
TextDrawLetterSize(g_AdminOnDutyTD, 0.180000, 0.899999);
|
|
TextDrawColor(g_AdminOnDutyTD, -65281);
|
|
TextDrawSetOutline(g_AdminOnDutyTD, 1);
|
|
TextDrawSetProportional(g_AdminOnDutyTD, 1);
|
|
|
|
for(new playerid; playerid != MAX_PLAYERS; playerid ++)
|
|
{
|
|
p_FPSCounterTD[ playerid ] = TextDrawCreate(636.000000, 2.000000, "_");
|
|
TextDrawAlignment(p_FPSCounterTD[ playerid ], 3);
|
|
TextDrawBackgroundColor(p_FPSCounterTD[ playerid ], 255);
|
|
TextDrawFont(p_FPSCounterTD[ playerid ], 3);
|
|
TextDrawLetterSize(p_FPSCounterTD[ playerid ], 0.300000, 1.500000);
|
|
TextDrawColor(p_FPSCounterTD[ playerid ], -1);
|
|
TextDrawSetOutline(p_FPSCounterTD[ playerid ], 1);
|
|
TextDrawSetProportional(p_FPSCounterTD[ playerid ], 1);
|
|
}
|
|
}
|
|
|
|
stock formatFPSCounter( playerid ) {
|
|
if( !p_FPSCounter{ playerid } )
|
|
return;
|
|
|
|
static
|
|
iFPS,
|
|
szColor[ 10 ],
|
|
szFPS[ sizeof( szColor ) + 4 ]
|
|
;
|
|
|
|
switch( ( iFPS = p_FPS[ playerid ] ) ) {
|
|
case 32 .. 120: szColor = "~g~~h~~h~";
|
|
case 18 .. 31: szColor = "~y~~h~";
|
|
case 0 .. 17: szColor = "~r~~h~~h~";
|
|
default: szColor = "~g~~h~~h~";
|
|
}
|
|
|
|
format( szFPS, sizeof( szFPS ), "%s%d", szColor, iFPS );
|
|
TextDrawSetString( p_FPSCounterTD[ playerid ], szFPS );
|
|
}
|
|
|
|
stock trimString( strSrc[ ] )
|
|
{
|
|
new
|
|
strPos
|
|
;
|
|
for( strPos = strlen( strSrc ); strSrc[ strPos ] <= ' '; )
|
|
strPos--;
|
|
|
|
strSrc[ strPos + 1 ] = EOS;
|
|
|
|
for( strPos = 0; strSrc[ strPos ] <= ' '; )
|
|
strPos++;
|
|
|
|
strdel( strSrc, 0, strPos );
|
|
}
|
|
|
|
stock Float: GetDistanceBetweenPlayers( iPlayer1, iPlayer2, &Float: fDistance = Float: 0x7F800000 )
|
|
{
|
|
static
|
|
Float: fX, Float: fY, Float: fZ;
|
|
|
|
if( GetPlayerVirtualWorld( iPlayer1 ) == GetPlayerVirtualWorld( iPlayer2 ) && GetPlayerPos( iPlayer2, fX, fY, fZ ) && !IsPlayerNPC( iPlayer1 ) && !IsPlayerNPC( iPlayer2 ) )
|
|
fDistance = GetPlayerDistanceFromPoint( iPlayer1, fX, fY, fZ );
|
|
|
|
return fDistance;
|
|
}
|
|
|
|
stock RangeBanPlayer( playerid )
|
|
{
|
|
if ( !IsPlayerConnected( playerid ) )
|
|
return 0;
|
|
|
|
new
|
|
szBan[ 24 ],
|
|
szIP[ 16 ]
|
|
;
|
|
GetPlayerIp( playerid, szIP, sizeof( szIP ) );
|
|
GetRangeIP( szIP, sizeof( szIP ) );
|
|
|
|
format( szBan, sizeof( szBan ), "banip %s", szIP );
|
|
SendRconCommand( szBan );
|
|
|
|
KickPlayerTimed( playerid );
|
|
|
|
return 1;
|
|
}
|
|
|
|
stock GetRangeIP( szIP[ ], iSize = sizeof( szIP ) )
|
|
{
|
|
new
|
|
iCount = 0
|
|
;
|
|
for( new i; szIP[ i ] != '\0'; i ++ )
|
|
{
|
|
if ( szIP[ i ] == '.' && ( iCount ++ ) == 1 )
|
|
{
|
|
strdel( szIP, i, strlen( szIP ) );
|
|
break;
|
|
}
|
|
}
|
|
format( szIP, iSize, "%s.*.*", szIP );
|
|
return szIP;
|
|
}
|