Need help to fixing some errors. - Offer rep++!
#1

Hi all

So i repaired more debugs what gaves me crashdetect, but i don't know how to fix these debugs:
Код:
[11:45:13] [debug] Run time error 5: "Invalid memory access"
[11:45:13] [debug] Backtrace (most recent call first):
[11:45:13] [debug] #0  public FC_OnPlayerConnect(playerid=2)+0x33fc at D:\RAS\RAS 0.3e\gamemodes\RAS.pwn:210
[11:45:13] [debug] #1  public Streamer_OnPlayerConnect(playerid=2)+0x3e60 at D:\RAS\RAS 0.3e\gamemodes\RAS.pwn:210
[11:45:13] [debug] #2  public SSCANF_OnPlayerConnect(playerid=2)+0x6098 at D:\RAS\RAS 0.3e\gamemodes\RAS.pwn:210
[11:45:13] [debug] #3  public Itter_OnPlayerConnect(playerid=2)+0xd430 at D:\RAS\RAS 0.3e\gamemodes\RAS.pwn:210
[11:45:13] [debug] #4  public @receivepacket(playerid=2)+0x113e8 at D:\RAS\RAS 0.3e\gamemodes\RAS.pwn:210
And the line are:
Код:
line 210: new DBResult:R2, Query[ 712 ];
WTF?! I don't know what is wrong with this


PS. - Here are the lines upper that 210
Код:
...
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 --------------------------//
Line 210: new DBResult:R2, Query[ 712 ];
format( Query, sizeof( Query ), "SELECT `Key`,`IP` FROM `Accounts` WHERE `Name` = '%s'", PlayerName( playerid ) );
...
I think is problem with that code with dini, but i don't know the reason. The person(s) what help's me i will offer rep++, thanks.
Reply
#2

Bump Up.
Reply
#3

Bump again.

Please guys, this debug crashs my gamemode But it only happens were a player joins with ID 2.
Reply
#4

Stop bumping each hour, I'd get fu**ed if I'd have done this before...
Reply
#5

Show your code atleast.
Reply
#6

Quote:
Originally Posted by T0pAz
Посмотреть сообщение
Show your code atleast.
My all OnPlayerConnect:
Код:
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;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)