Вопросы

Приветствую уважаемые знатоки!
↓ У меня появилась проблема то что после выхода игрока, он не удаляется из 

↓ памяти мода, уже всё перепробовал и удалять ник в onplayerdisconnect 
  А если вдаваться в подробности то ник просто не удаляется из /id nick   

 - Можете ли подсказать в чём дело, и куда копать кто сталкивался с этим -

sa-mp-009.thumb.png.152e0da24b6785d8e7d4640ffae85a41.png


Заранее спасибо.

Поделиться сообщением


Ссылка на сообщение

5 ответов на этот вопрос

  • 0

Покажи, как пытался удалять игроков. Судя по всему, итератор Player не очищается после выхода игрока с сервера.
Учитывай еще то, подключены ли у тебя боты к серверу, ибо есть проверка на ботов. Проблема может быть и с самими ботами, после их выхода может не удаляться pvar.

Отредактировано пользователем ʟᴀsᴛ ᴇᴍᴘᴇʀᴏʀ.

Поделиться сообщением


Ссылка на сообщение
  • 0

Код самой команды покажи.

Поделиться сообщением


Ссылка на сообщение
  • 0

@ʟᴀsᴛ ᴇᴍᴘᴇʀᴏʀ. Дело не совсем в самой команде, ник и в самом моде сохраняется 

CMD:id(playerid, params[])
{
    if(isnull(params)) return SCM(playerid, -1""cHelp"Используйте: /id [nickname]");
    new ids = 0;
    if(!sscanf(params, "i", params[0]))
    {
        if(!IsPlayerConnected(params[0])) return SCM(playerid, 0xFF0000FF"[Ошибка]{B4B5B7} Неверный id.");
        if(IsADeveloper(params[0]) && !IsADeveloper(playerid)) return true;
        
        if(!IsPlayerLogin(params[0])) return SCM(playerid, -1""cError"Игрок не авторизован!");
        if(GPVI(params[0], "fakebot")) FSCM(playerid, -1"ID игрока: {CA0147}%i {FFFFFF}| Имя игрока: {CA0147}%s {FFFFFF}(Ping: %i) | Уровень: {CA0147}%i", params[0], Name(params[0]), (50 + random(100)), PlayerInfo[params[0]][pLevel]);
        else FSCM(playerid, -1"ID игрока: {CA0147}%i {FFFFFF}| Имя игрока: {CA0147}%s {FFFFFF}(Ping: %i) | Уровень: {CA0147}%i%s", params[0], Name(params[0]), GetPlayerPing(params[0]), PlayerInfo[params[0]][pLevel], (IsPlayerInAFK(params[0]) ? (" | {FF0000}AFK") : ("")));
    }
    else
    {
        foreach(new i : Player)
        {
            if(IsADeveloper(i)) continue;
            if(!strcmp(params[0], "_",true)) return true;
            if(strfind(Name(i), params[0], true) != -1)
            {
                ids++;
                
                if(GPVI(i, "fakebot")) FSCM(playerid, -1"ID игрока: {CA0147}%i {FFFFFF}| Имя игрока: {CA0147}%s {FFFFFF}(Ping: %i) | Уровень: {CA0147}%i", i, Name(i), (50 + random(100)), PlayerInfo[i][pLevel]);
                else FSCM(playerid, -1"ID игрока: {CA0147}%i {FFFFFF}| Имя игрока: {CA0147}%s {FFFFFF}(Ping: %i) | Уровень: {CA0147}%i%s", i, Name(i), GetPlayerPing(i), PlayerInfo[i][pLevel], (IsPlayerInAFK(params[0]) ? (" | {FF0000}AFK") : ("")));
            }
        }
        if(ids) FSCM(playerid, -1"Найдено %i игроков", ids);
        else return SCM(playerid, -1"• {AC0000}[Ошибка] {FFFFFF}Не найдено");
    }
    return true;
}

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@ʟᴀsᴛ ᴇᴍᴘᴇʀᴏʀ. Спасибо, уже решил, дело было в ботах которые были не правильно сделаны, убрал это всё и помогло.

Поделиться сообщением


Ссылка на сообщение
  • 0

@f0295655, рад помочь :)

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Sten Developer
      От Sten Developer
      Объясню всю ситуацию, пишу систему смерти игрока но она не работает. Решил по приколу написать туда обычный вывод текста SCM(playerid, COLOR_RED, "Вы умерли");
      Но однако после смерти текст не выводиться. Не работает абсолютно все. Кто знает как решить эту проблему?