2017-01-02 02:24:53 +00:00
/*
*
* 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 ** */
2017-01-21 17:26:55 +00:00
// #define IRC_SERVER "foco.ca.irc.tl" // test "maple.nl.eu.gtanet.com"
2017-01-02 02:24:53 +00:00
#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
{
2017-04-15 19:49:38 +00:00
E_TRANSACTION_ID [ 17 ],
E_NAME [ 24 ],
2017-01-02 02:24:53 +00:00
E_AMOUNT [ 11 ],
E_PURPOSE [ 64 ],
E_DATE
}
new stock
Float : a_vipCoinRequirements [ ] = { 0.0 , 500.0 , 1200.0 , 1800.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 ) )
{
#if defined CNR_SERVER
BanPlayerISP ( playerid );
#else
RangeBanPlayer ( playerid );
#endif
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 ;
}