Server crashed because of this -_-
#1

Код:
[06:35:05] [debug] Run time error 5: "Invalid memory access"
[06:35:05] [debug] AMX backtrace:
[06:35:05] [debug] #0 0000d978 in public SSCANF_OnPlayerConnect () from LuxAdmin.amx
[06:35:05] [debug] #1 000061a8 in public Itter_OnPlayerConnect () from LuxAdmin.amx
[06:35:05] [debug] #2 000056ec in public OnPlayerConnect () from LuxAdmin.amx

There is something wrong with the code below. I can't find it. If you could help me. Please...
pawn Код:
public OnPlayerConnect(playerid)
{

   
    #if EnableCamHack == true
    KeyState[playerid] = 0;
    FollowOn[playerid] = 0;
    AccInfo[playerid][InCamMod]     = 0;
    AccInfo[playerid][LockedCam]    = 0;
    #endif
    AccInfo[playerid][Deaths]       = 0;
    AccInfo[playerid][Kills]        = 0;
    AccInfo[playerid][Skin]         = 0;
    AccInfo[playerid][Reps]         = 0;
    AccInfo[playerid][Jailed]       = 0;
    SetPVarInt(playerid, "Jailed", 0);
    AccInfo[playerid][Frozen]       = 0;
    AccInfo[playerid][Level]        = 0;
    AccInfo[playerid][pVip]         = 0;
    AccInfo[playerid][LoggedIn]     = 0;
    AccInfo[playerid][Registered]   = 0;
    AccInfo[playerid][TimesSpawned] = 0;
    AccInfo[playerid][Muted]        = 0;
    AccInfo[playerid][MuteWarnings] = 0;
    AccInfo[playerid][Warnings]     = 0;
    AccInfo[playerid][Caps]         = 0;
    AccInfo[playerid][DoorsLocked]  = 0;
    AccInfo[playerid][pCar]         = -1;
    AccInfo[playerid][SpamCount]    = 0;
    AccInfo[playerid][MaxAdv]       = 0;
    AccInfo[playerid][SpamTime]     = 0;
    AccInfo[playerid][PingCount]    = 0;
    AccInfo[playerid][PingTime]     = 0;
    AccInfo[playerid][FailLogin]    = 0;
    AccInfo[playerid][Hide]         = 0;
    AccInfo[playerid][pInvis]       = 0;
    AccInfo[playerid][OnDuty]       = 0;
    AccInfo[playerid][pGps]         = -1;
   
    #if EnableTwoRcon == true
    AccInfo[playerid][MaxRcon] = 0;
    #endif

    AccInfo[playerid][ConnectTime] = gettime();
    for(new i; i<PING_MAX_EXCEEDS; i++)
    AccInfo[playerid][pPing][i] = 0;
    //------------------------------------------------------
    new string[128];
    new str[128];
    new file[256];
    new PlayerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
    new tmp3[50]; GetPlayerIp(playerid,tmp3,50);
   
    ResetForbiddenWeaponsForPlayer(playerid);
    TempBanCheck(playerid);
//==============================================================================
// Connect Messages
//==============================================================================
    if(ServerInfo[ConnectMessages] == 1)
    {
        new pAKA[256];
        pAKA = dini_Get("LuxAdmin/Config/aka.txt",tmp3);
        if (strlen(pAKA) < 3)
        format(str,sizeof(str),"{00CCFF} %s (ID:%d) {6666FF}has Joined Global Freeroam Server", PlayerName,playerid);
        else if (!strcmp(pAKA,PlayerName,true))
        format(str,sizeof(str),"{00CCFF} %s (ID:%d) {6666FF}has Joined Global Freeroam Server", PlayerName,playerid);
        else format(str,sizeof(str),"{00CCFF} %s (ID:%d) {6666FF}has Joined Global Freeroam Server (Aka: %s)",PlayerName,playerid,pAKA);

        for(new i = 0; i < MAX_PLAYERS; i++)
        if(IsPlayerConnected(i) && playerid != i)
        {
        if(AccInfo[i][Level] > 2)
        SendClientMessage(i,white,str);
        else
        {
        format(string,sizeof(string),"{00CCFF} %s (ID:%d) {6666FF}has joined the server", PlayerName, playerid);
        SendClientMessage(i,white,string);
        }
        }
    }
//==============================================================================
// If PlayerName is Banned
//==============================================================================
    if (dUserINT(PlayerName2(playerid)).("Banned") == 1)
    {
        SendClientMessage(playerid, red, "ATTENTION: This name is banned from this server");
        format(string,sizeof(string)," %s (ID:%d) has been Automatically  Kicked | Reason: Name Banned ",PlayerName,playerid);
        SendClientMessageToAll(grey, string);
        print(string);
        SaveIn("KickLog",string);
        SetTimerEx("KickPlayer", 500, 0, "i", playerid);
    }
//==============================================================================
// Kick Forbidden Name
//==============================================================================
    if(ServerInfo[NameKick] == 1)
    {
        for(new s = 0; s < BlockedNamesCount; s++)
        {
            if(!strcmp(BlockedNames[s],PlayerName,true))
            {
            SendClientMessage(playerid,red, "ATTENTION: Your name is on our Black List, you have been Kicked");
            format(string,sizeof(string)," %s (ID:%d) has been Automatically Kicked | Reason: Forbidden Name",PlayerName,playerid);
            SendClientMessageToAll(grey, string);
            print(string);
            SaveIn("KickLog",string);
            SetTimerEx("KickPlayer", 500, 0, "i", playerid);
            return 1;
            }
        }
    }
//==============================================================================
// Kick Forbidden Part of Name
//==============================================================================
    if(ServerInfo[PartNameKick] == 1)
    {
        for(new s = 0; s < BlockedPartNameCount; s++)
        {
            new pos;
            while((pos = strfind(PlayerName,BlockedPartName[s],true)) != -1)
            for(new i = pos, j = pos + strlen(BlockedPartName[s]); i < j; i++)
            {
            SendClientMessage(playerid,red, "ATTENTION: Your name is not Allowed on this server, you have been Kicked!");
            format(string,sizeof(string),"%s (ID:%d) has been Automatically Kicked | Reason: Forbidden Name ",PlayerName,playerid);
            SendClientMessageToAll(grey, string);
            print(string);
            SaveIn("KickLog",string);
            SetTimerEx("KickPlayer", 500, 0, "i", playerid);
            return 1;
            }
        }
    }
//==============================================================================
// Server Locked
//==============================================================================
    if(ServerInfo[Locked] == 1)
    {
        AccInfo[playerid][AllowedIn] = false;
        SendClientMessage(playerid,red,"Server is Locked");
        SendClientMessage(playerid,red,"You have 40 seconds to enter the server Password");
        LockKickTimer[playerid] = SetTimerEx("AutoKick", 40000, 0, "i", playerid);
    }
    if (ServerInfo[Locked] == 1 && AccInfo[playerid][AllowedIn] == false)
    {
        ShowPlayerDialog(playerid, DIALOG_TYPE_SERVPASS, DIALOG_STYLE_INPUT,
        "Server Locked!", "Enter the password to Access it:", "Access", "Exit");
    }
//==============================================================================
// Register & Login
//==============================================================================
    if(strlen(dini_Get("LuxAdmin/Config/aka.txt", tmp3)) == 0)
    dini_Set("LuxAdmin/Config/aka.txt", tmp3, PlayerName);
    else
    {
        if( strfind( dini_Get("LuxAdmin/Config/aka.txt", tmp3), PlayerName, true) == -1 )
        {
        format(string,sizeof(string),"%s,%s", dini_Get("LuxAdmin/Config/aka.txt",tmp3), PlayerName);
        dini_Set("LuxAdmin/Config/aka.txt", tmp3, string);
        }
    }
    if(!udb_Exists(PlayerName2(playerid)))
    SendClientMessage(playerid,orange, "Your account isn't registered. Please register (/"#RegisterCommand")");
    else
    {
    AccInfo[playerid][Registered] = 1;
    format(file,sizeof(file),"/LuxAdmin/Accounts/%s.sav",udb_encode(PlayerName));
    new tmp2[256]; tmp2 = dini_Get(file,"Ip");

    if( (!strcmp(tmp3,tmp2,true)) && (ServerInfo[AutoLogin] == 1))
    {
        LoginPlayer(playerid);
        if(AccInfo[playerid][Level] > 0)
        {
            switch(AccInfo[playerid][Level])
            {
                case 1: AdmRank = "Trial Admin";
                case 2: AdmRank = "Advanced Admin";
                case 3: AdmRank = "Intermediate Admin";
                case 4: AdmRank = "Junior Admin";
                case 5: AdmRank = "Senior Admin";
            }
            if(AccInfo[playerid][Level] > 5)
            {
                AdmRank = "Head Admin";
            }
            //==============================================================================
            // VIP System
            //==============================================================================
            if(AccInfo[playerid][pVip] > 0)
            {
                format(string,sizeof(string),"You are now Logged in | Account: VIP | Level %d - %s", AccInfo[playerid][Level], AdmRank);
                SendClientMessage(playerid,0x3399CCFF,string);
            }
            else
            {
                format(string,sizeof(string),"You are now Logged in | Level %d - %s", AccInfo[playerid][Level],AdmRank);
                SendClientMessage(playerid, 0x3399CCFF, string);
            }
            //==============================================================================
            format(string,sizeof(string),"%s (%d) %s is now connected to the game", AdmRank, AccInfo[playerid][Level], PlayerName2(playerid));
            SendClientMessageToAll(green, string);
        }
        else
        {
            if(AccInfo[playerid][pVip] > 0)
            {
                SendClientMessage(playerid,0x3399CCFF,"You are now Logged in - Account Type: VIP");
                format(string,sizeof(string),"VIP %s is now connected to the game", PlayerName2(playerid));
                SendClientMessageToAll(blue, string);
            }
            else
            {
                SendClientMessage(playerid,green,"You are now Logged in");
            }
        }
    }
    else SendClientMessage(playerid, white, "Account is registered") &&
    SendClientMessage(playerid, orange, "Please login to access your Account (/"#LoginCommand")");
    }
    return 1;
}
Reply
#2

Try commenting this: /* */

pawn Код:
for(new i; i<PING_MAX_EXCEEDS; i++)
    AccInfo[playerid][pPing][i] = 0;
Alternatively if this isn't the problem, try randomly commenting this code until it doesn't crash anymore. Narrow it down until you find the exact location then post it here.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)