Код:
public OnPlayerConnect( playerid )
{
new string[ 512 ];
SetPlayerColor( playerid, RandomColors[ random( 400 ) ] );
PlayerInfo[ playerid ][ AMS ] = 0;
PlayerInfo[ playerid ][ rRank ] = 0;
PlayerInfo[ playerid ][ Tester ] = 0;
PlayerInfo[ playerid ][ AWarings ] = 0;
GPSTimer[ playerid ] = 0;
PlayerInfo[ playerid ][ Vup ] = 0;
PlayerInfo[ playerid ][ JumpSize ] = 0;
PlayerInfo[ playerid ][ VupKey ] = 0;
PlayerInfo[ playerid ][ FirstSpawn ] = 1;
PlayerInfo[ playerid ][ InEvent ] = 0;
PlayerInfo[ playerid ][ g_GotInvitedToDuel ] = 0;
g_HasInvitedToDuel[ playerid ] = 0;
g_IsPlayerDueling[ playerid ] = 0;
PlayerInfo[ playerid ][ HaveGPS ] = false;
PlayerInfo[ playerid ][ HaveBomb ] = 0;
PlayerInfo[ playerid ][ JobStatus ] = 0;
PlayerInfo[ playerid ][ HarvestJob ] = 0;
PlayerInfo[ playerid ][ PizzaJob ] = 0;
PlayerInfo[ playerid ][ JobID ] = 0;
PlayerInfo[ playerid ][ Deaths ] = 0;
PlayerInfo[ playerid ][ Kills ] = 0;
PlayerInfo[ playerid ][ Jailed ] = 0;
PlayerInfo[ playerid ][ Frozen ] = 0;
PlayerInfo[ playerid ][ Level ] = 0;
PlayerInfo[ playerid ][ SAdmin ] = 0;
PlayerInfo[ playerid ][ pVip ] = 0;
PlayerInfo[ playerid ][ rVip ] = 0;
PlayerInfo[ playerid ][ LoggedIn ] = 0;
PlayerInfo[ playerid ][ God ] = 0;
PlayerInfo[ playerid ][ GodCar ] = 0;
PlayerInfo[ playerid ][ Muted ] = 0;
PlayerInfo[ playerid ][ MuteWarnings ] = 0;
PlayerInfo[ playerid ][ Warnings ] = 0;
PlayerInfo[ playerid ][ pCar ] = -1;
for ( new i; i < PING_MAX_EXCEEDS; i++ ) PlayerInfo[ playerid ][ pPing ][ i ] = 0;
PlayerInfo[ playerid ][ SpamCount ] = 0;
PlayerInfo[ playerid ][ SpamTime ] = 0;
PlayerInfo[ playerid ][ PingCount ] = 0;
PlayerInfo[ playerid ][ PingTime ] = 0;
PlayerInfo[ playerid ][ FailLogin ] = 0;
PlayerInfo[ playerid ][ Coins ] = 0;
PlayerInfo[ playerid ][ Rank ] = 0;
PlayerInfo[ playerid ][ P_AntiFall ] = 0;
PlayerInfo[ playerid ][ RecentlyRobbed ] = 0;
PlayerInfo[ playerid ][ hours ] = 0;
PlayerInfo[ playerid ][ mins ] = 0;
PlayerInfo[ playerid ][ secs ] = 0;
PlayerInfo[ playerid ][ GeneralV ] = 0;
PlayerInfo[ playerid ][ ActionID ] = 0;
PlayerInfo[ playerid ][ Drugs ] = 0;
PlayerInfo[ playerid ][ ConnectTime ] = gettime( );
PlayerInfo[ playerid ][ KillingSpree ] = 0;
PlayerInfo[ playerid ][ bKillingSpree ] = 0;
PlayerInfo[ playerid ][ PKicks ] = 0;
PlayerInfo[ playerid ][ PMaths ] = 0;
PlayerInfo[ playerid ][ PWarns ] = 0;
PlayerInfo[ playerid ][ PBans ] = 0;
PlayerInfo[ playerid ][ PReactions ] = 0;
PlayerInfo[ playerid ][ PClearCH ] = 0;
PlayerInfo[ playerid ][ PJails ] = 0;
PlayerInfo[ playerid ][ PMutes ] = 0;
PlayerInfo[ playerid ][ HideTDSSSS ] = 0;
PlayerInfo[ playerid ][ InMinigun ] = 0;
PlayerInfo[ playerid ][ InDuel ] = 0;
PlayerInfo[ playerid ][ MaxRcon ] = 0;
SpawnInDM[ playerid ] = " ";
PlayerInfo[ playerid ][ Reply ] = 0;
PlayerInfo[ playerid ][ Planted ] = 0;
PlayerInfo[ playerid ][ Bomb ] = 0;
Speeding[ playerid ] = false;
PlayerInfo[ playerid ][ PlayerInDerby ] = 0;
DerbyPlaying = 0;
PlayerInfo[ playerid ][ GotoIgnored ] = 0;
PlayerInfo[ playerid ][ PlayerInBloodring ] = -1;
PlayerInfo[ playerid ][ Snow_F ] = 0;
sKiller[ playerid ] = 501;
Charged[ playerid ] = 0;
Shoot[ playerid ] = 0;
Started[ playerid ] = 0;
gang[ playerid ][ ID ] = 0;
gang[ playerid ][ rank ] = 0;
gang[ playerid ][ skin ] = 0;
gang[ playerid ][ spawnX ] = 0.0;
gang[ playerid ][ spawnY ] = 0.0;
gang[ playerid ][ spawnZ ] = 0.0;
gang[ playerid ][ spawnA ] = 0.0;
gang[ playerid ][ Weap1 ] = 0;
gang[ playerid ][ Weap2 ] = 0;
gang[ playerid ][ Weap3 ] = 0;
gang[ playerid ][ Weap4 ] = 0;
gang[ playerid ][ Weap5 ] = 0;
gang[ playerid ][ Weap6 ] = 0;
gang[ playerid ][ Kills ] = 0;
gang[ playerid ][ Deaths ] = 0;
gang[ playerid ][ lastPreview ] = 0;
PlayerInfo[ playerid ][ isafk ] = 0;
ZH{ playerid } = 0;
pvehicleid[ playerid ] = GetPlayerVehicleID( playerid );
pvehicleid[ playerid ] = 0;
pmodelid[ playerid ] = 0;
TogglePlayerControllable( playerid, 0 );
ResetPlayerWeapons( playerid );
ResetPlayerMoney( playerid );
new pAKA[ 256 ];
pAKA = dini_Get( "ladmin/config/aka.txt", GetPlayerIPEx( playerid ) );
if ( strlen( pAKA ) < 3 ) format( string, sizeof( string ), "*** {33CCFF}%s(%d) {ACACAC}has joined the server", PlayerName( playerid ), playerid );
else if ( !strcmp( pAKA, PlayerName( playerid ), true ) ) format( string, sizeof( string ), "*** {33CCFF}%s(%d) {ACACAC}has joined the server", PlayerName( playerid ), playerid );
else format( string, sizeof( string ), "*** {33CCFF}%s(%d) {ACACAC}has joined the server (AKA: {33CCFF}%s{ACACAC})", PlayerName( playerid ), playerid, pAKA );
foreach(Player, i ) if ( playerid != i )
{
if ( PlayerInfo[ i ][ Level ] > 2 ) SendClientMessage( i, COLOR_GREY, string );
else
{
FormatMSG( i, COLOR_GREY, "*** {33CCFF}%s(%d) {ACACAC}has joined the server", PlayerName( playerid ), playerid );
}
}
//------------------------
LTempBanCheck( playerid );
//------------------------
if ( ServerInfo[ NameKick ] == 1 )
{
for ( new s = 0; s < BadNameCount; s++ )
{
if ( !strcmp( BadNames[ s ], PlayerName( playerid ), true ) )
{
SendClientMessage( playerid, COLOR_GREY, "Your name is on our {33CCFF}black list, {ACACAC}you have been kicked." );
format( string, sizeof( string ), "*** {33CCFF}%s (ID:%d) {ACACAC}was auto kicked. (Reason: {33CCFF}Forbidden name{ACACAC})", PlayerName( playerid ), playerid );
SendClientMessageToAll( COLOR_GREY, string );
SaveToFile( "KickLog", string ); Kick( playerid );
return 1;
}
}
}
if ( ServerInfo[ PartNameKick ] == 1 )
{
for ( new s = 0; s < BadPartNameCount; s++ )
{
new pos;
while ( ( pos = strfind( PlayerName( playerid ), BadPartNames[ s ], true ) ) != -1 ) for ( new i = pos, j = pos + strlen( BadPartNames[ s ] ); i < j; i++ )
{
SendClientMessage( playerid, COLOR_GREY, "Your name is not allowed on this server, you have been kicked." );
format( string, sizeof( string ), "*** {33CCFF}%s (ID:%d) {ACACAC}was auto kicked. (Reason: {33CCFF}Forbidden name{ACACAC})",PlayerName( playerid ), playerid );
SendClientMessageToAll( COLOR_GREY, string );
SaveToFile( "KickLog", string );
Kick( playerid );
return 1;
}
}
}
if ( strlen( dini_Get( "ladmin/config/aka.txt", GetPlayerIPEx( playerid ) ) ) == 0 ) dini_Set( "ladmin/config/aka.txt", GetPlayerIPEx( playerid ), PlayerName( playerid ) );
else
{
if ( strfind( dini_Get( "ladmin/config/aka.txt", GetPlayerIPEx( playerid ) ), PlayerName( playerid ), true ) == -1 )
{
format( string, sizeof( string ),"%s,%s", dini_Get( "ladmin/config/aka.txt", GetPlayerIPEx( playerid ) ), PlayerName( playerid ) );
dini_Set( "ladmin/config/aka.txt", GetPlayerIPEx( playerid ), string );
}
}
//-------------------------------- Login Player --------------------------//
new DBResult:R2, Query[ 712 ];
format( Query, sizeof( Query ), "SELECT `Key`,`IP` FROM `Accounts` WHERE `Name` = '%s'", PlayerName( playerid ) );
R2 = db_query( PDB, Query );
if ( R2 )
{
new pField[ 56 ];
if ( db_num_rows( R2 ) )
{
db_get_field_assoc( R2, "IP", pField, 56 );
if ( ( !strcmp( GetPlayerIPEx( playerid ), pField, true ) ) && ( ServerInfo[ AutoLogin ] == 1 ) )
{
LoginPlayer( playerid );
if ( PlayerInfo[ playerid ][ Level ] > 0 )
{
FormatMSG( playerid, 0x00FF00FF, "ACCOUNT: You have been automatically logged in. (Level {FF9900}%d{00FF00}). For more stats type {FF9900}/stats", PlayerInfo[ playerid ][ Level ] );
}
else SendClientMessage( playerid, 0x00FF00FF, "ACCOUNT: You have been automatically logged in." );
}
else SendClientMessage( playerid, 0x00FF00FF, "ACCOUNT: This nickname is registed, you can now login by typing /login.");
}
else
{
if ( !udb_Exists( PlayerName( playerid ) ) )
{
new string2[ 312 ];
format( string2, sizeof( string2 ), "{FFFFFF}Welcome {FFFF00}%s {FFFFFF}on {375FFF}Romania {FFFF00}Apocalypse {FF0000}Stunt\n\n{FFFFFF}Please register to save your stats!: {FF5500}Score, Money, Coins...\n{FF5500}Password:", PlayerName( playerid ) );
ShowPlayerDialog( playerid, RegDialog, DIALOG_STYLE_PASSWORD, "{FF0000}Register", string2, "Register", "" );
}
else
{
new xCoins, DBResult:R3;
format( Query, sizeof( Query ), "SELECT `Coins` FROM `CoinsDB` WHERE `Name` = '%s'", PlayerName( playerid ) );
R3 = db_query( gDB, Query );
if ( R3 )
{
if ( db_num_rows( R3 ) )
{
db_get_field_assoc( R3, "Coins", pField, 56 );
xCoins = strval( pField );
db_free_result( R3 );
}
}
new FI[ 18 ];
FI[ 0 ] = dUserINT( PlayerName( playerid ) ).( "Level" );
FI[ 1 ] = dUserINT( PlayerName( playerid ) ).( "Vip" );
FI[ 2 ] = dUserINT( PlayerName( playerid ) ).( "rVip" );
FI[ 3 ] = dUserINT( PlayerName( playerid ) ).( "Moneys" );
FI[ 4 ] = dUserINT( PlayerName( playerid ) ).( "Score" );
FI[ 5 ] = dUserINT( PlayerName( playerid ) ).( "Kills" );
FI[ 6 ] = dUserINT( PlayerName( playerid ) ).( "Deaths" );
FI[ 7 ] = dUserINT( PlayerName( playerid ) ).( "Hours" );
FI[ 8 ] = dUserINT( PlayerName( playerid ) ).( "Minutes" );
FI[ 9 ] = dUserINT( PlayerName( playerid ) ).( "Seconds" );
FI[ 10 ] = dUserINT( PlayerName( playerid ) ).( "Rank" );
FI[ 11 ] = dUserINT( PlayerName( playerid ) ).( "BestKillingSpree" );
FI[ 12 ] = dUserINT( PlayerName( playerid ) ).( "KillingSpree" );
FI[ 13 ] = dUserINT( PlayerName( playerid ) ).( "Drugs" );
FI[ 14 ] = dUserINT( PlayerName( playerid ) ).( "TimesOnServer" );
FI[ 15 ] = dUserINT( PlayerName( playerid ) ).( "SAdmin" );
FI[ 16 ] = dUserINT( PlayerName( playerid ) ).( "FavSkin" );
FI[ 17 ] = dUserINT( PlayerName( playerid ) ).( "UseSkin" );
format( Query, sizeof( Query ), "INSERT INTO `Accounts` \
VALUES(NULL, '%s', '%s', 'NeedChanged', '%s', '1', '%d', '%d', '%d', '%s', '%d'", PlayerName( playerid ), GetPlayerIPEx( playerid ), dUser( PlayerName( playerid ) ).( "RegisteredDate" ), FI[ 0 ], FI[ 1 ], FI[ 2 ], dUser( PlayerName( playerid ) ).( "LastOn" ), FI[ 3 ] );
format( Query, sizeof( Query ), "%s, '%d', '%d', '%d', '%d:%d:%d', '%d', '0', '%d', '%d', '%d', '%d', \
'%d', '%d', '%d', '%d'", Query, FI[ 4 ], FI[ 5 ], FI[ 6 ], FI[ 7 ], FI[ 8 ], FI[ 9 ], FI[ 10 ], FI[ 11 ], FI[ 12 ], FI[ 13 ], FI[ 14 ], xCoins, FI[ 15 ], FI[ 16 ], FI[ 17 ] );
format( Query, sizeof( Query ), "%s, '%s', '%s', '%s', '0', '0')", Query, dUser( PlayerName( playerid ) ).( "Description1" ), dUser( PlayerName( playerid ) ).( "Description2" ), dUser( PlayerName( playerid ) ).( "Description3" ) );
db_query( PDB, Query );
}
}
db_free_result( R2 );
}
TextDrawShowForPlayer( playerid, Steam1 );
TextDrawShowForPlayer( playerid, Steam2 );
TextDrawShowForPlayer( playerid, Steam3 );
TextDrawShowForPlayer( playerid, HelpT );
TextDrawShowForPlayer( playerid, RulesT );
TextDrawShowForPlayer( playerid, CmdsT );
TextDrawShowForPlayer( playerid, TelesT );
TextDrawShowForPlayer( playerid, OnConnectSteaua1 );
TextDrawShowForPlayer( playerid, OnConnectSteaua2 );
TextDrawShowForPlayer( playerid, OnConnectForum );
new DBResult:R, Field[ 128 ];
format( Query, sizeof( Query ), "SELECT * FROM `players` WHERE `name` = '%s'", PlayerName( playerid ) );
R = db_query( gDB, Query );
if ( R )
{
if ( db_num_rows( R ) )
{
db_get_field_assoc( R, "gang", Field, sizeof( Field ) );
if ( strcmp( Field, "NULL", true ) == 0 )
{
}
else
{
db_get_field_assoc( R, "rank", Field, sizeof( Field ) );
gang[ playerid ][ rank ] = strval( Field );
db_get_field_assoc( R, "kills", Field, sizeof( Field ) );
gang[ playerid ][ Kills ] = strval( Field );
db_get_field_assoc( R, "deaths", Field, sizeof( Field ) );
gang[ playerid ][ Deaths ] = strval( Field );
db_get_field_assoc( R, "gang", Field, sizeof( Field ) );
new DBResult:r;
format( Query, sizeof( Query ), "SELECT * FROM `gangs` WHERE `name` = '%s'", Field );
r = db_query( gDB, Query );
if ( r )
{
if ( db_num_rows( r ) )
{
db_get_field_assoc( r, "id", Field, sizeof( Field ) );
gang[ playerid ][ ID ] = strval( Field );
if ( gang[ playerid ][ rank ] == 5 ) db_get_field_assoc( r, "BossSkin", Field, sizeof( Field ) );
else db_get_field_assoc( r, "Skin", Field, sizeof( Field ) );
gang[ playerid ][ skin ] = strval( Field );
db_get_field_assoc( r, "Color", Field, sizeof( Field ) );
SetPlayerColor( playerid, gangColors[ strval( Field ) ] );
db_get_field_assoc( r, "SpawnX", Field, sizeof( Field ) );
gang[ playerid ][ spawnX ] = floatstr( Field );
db_get_field_assoc( r, "SpawnY", Field, sizeof( Field ) );
gang[ playerid ][ spawnY ] = floatstr( Field );
db_get_field_assoc( r, "SpawnZ", Field, sizeof( Field ) );
gang[ playerid ][ spawnZ ] = floatstr( Field );
db_get_field_assoc( r, "SpawnA", Field, sizeof( Field ) );
gang[ playerid ][ spawnA ] = floatstr( Field );
db_get_field_assoc( r, "Weap1", Field, sizeof( Field ) );
gang[ playerid ][ Weap1 ] = strval( Field );
db_get_field_assoc( r, "Weap2", Field, sizeof( Field ) );
gang[ playerid ][ Weap2 ] = strval( Field );
db_get_field_assoc( r, "Weap3", Field, sizeof( Field ) );
gang[ playerid ][ Weap3 ] = strval( Field );
db_get_field_assoc( r, "Weap4", Field, sizeof( Field ) );
gang[ playerid ][ Weap4 ] = strval( Field );
db_get_field_assoc( r, "Weap5", Field, sizeof( Field ) );
gang[ playerid ][ Weap5 ] = strval( Field );
db_get_field_assoc( r, "Weap6", Field, sizeof( Field ) );
gang[ playerid ][ Weap6 ] = strval( Field );
}
else printf( "BUG:gang don't exist:%s", Field );
db_free_result( r );
}
}
}
else
{
format( Query, sizeof( Query ), "INSERT INTO `players` VALUES(NULL,'%s','NULL','0')", PlayerName( playerid ) );
db_query( gDB, Query );
}
db_free_result( R );
}
return 1;
}