• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Run time error 5: "invalid memory access"

Статус
В этой теме нельзя размещать новые ответы.

MarkSchulz

Новичок
Сделал я сток, чтобы сажать игроков, но при вводе команды /jail в консоль сыпятся ошибки(скрин ниже).

Вот код:
PHP:
stock JailPlayer(victim, playerid, jailtime, reason[]) // Сам stock
{
    new string1[639], year, month, day, hour, minute, second;
    getdate(year, month, day), gettime(hour, minute, second);

    GetJail(victim, jJailer) = GetPlayer(playerid, pName);
    GetJail(victim, jName) = GetPlayer(playerid, pName);
    GetJail(victim, jReason) = reason[50];
    GetJail(victim, jJailTime) = gettime() + (jailtime*60);
    GetJail(victim, jJailMinutes) = jailtime;
    GetJail(victim, jYear) = year;
    GetJail(victim, jMonth) = month;
    GetJail(victim, jDay) = day;
    GetJail(victim, jHour) = hour;
    GetJail(victim, jMinute) = minute;
    GetJail(victim, jSecond) = second;
    GetPlayer(victim, pInJail) = 1;

    static const fmt_string1[] = "UPDATE `users` SET injail = '1' WHERE name = '%s' LIMIT 1";
    new str1[sizeof(fmt_string1)+1+MAX_PLAYER_NAME];
    mysql_format(dbHandle, str1, sizeof(str1), fmt_string1, GetPlayer(victim, pName));
    mysql_tquery(dbHandle, str1);

    static const fmt_string[] = "INSERT INTO `jaillist` (`jailer`, `name`, `reason`, `minutes`, `jailtime`, `timeleft`, `year`, `month`, `day`, `hour`, `minute`, `second`) VALUE ('%s', '%s', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')";
    new str[sizeof(fmt_string)+MAX_PLAYER_NAME+MAX_PLAYER_NAME+50+4+10+10+4+2+2+2+2+2];
    mysql_format(dbHandle, str, sizeof(str), fmt_string, GetPlayer(playerid, pName), GetPlayer(victim, pName), reason[50], jailtime, GetJail(victim, jJailTime), GetJail(victim, jJailTime), year, month, day, hour, minute, second);
    mysql_tquery(dbHandle, str);

    GetPlayer(victim, JailTimer) = SetTimerEx("JailTimers", 1000, true, "i", victim);

    SetPlayerPos(victim, 1160.7643, 4182.0981, 52.7781+2);
    SetPlayerFacingAngle(victim, 68.0790);
    SetCameraBehindPlayer(victim);
    SetPlayerVirtualWorld(victim, JAIL_VIRT_WORLD);
    SetPlayerInterior(victim, 0);

    format(string1, sizeof(string1), ""WHITE_COLOR"Вы были посажены в "ADMIN_COLOR"тюрьму"WHITE_COLOR" за нарушение правил сервера.\n");
    format(string1, sizeof(string1), "%sСделайте скриншот данного окна "ADMIN_COLOR"(PrtSc)"WHITE_COLOR".\n\n", string1);
    format(string1, sizeof(string1), "%sЕсли Вы не согласны с наказанием, то Вы можете подать апелляцию на форум\n", string1);
    format(string1, sizeof(string1), "%s"ADMIN_COLOR"(talk.revivalrp.com -> Жалобы -> Жалобы на команду проекта)."ADMIN_COLOR"\n\n", string1);
    format(string1, sizeof(string1), "%sИнформация:"ADMIN_COLOR"\n", string1);
    format(string1, sizeof(string1), "%s\t* "WHITE_COLOR"Дата выдачи наказания:"ADMIN_COLOR" %d-%02d-%02d %02d:%02d:%02d\n", string1, year, month, day, hour, minute, second);
    format(string1, sizeof(string1), "%s\t* "WHITE_COLOR"Срок наказания:"ADMIN_COLOR" %d минут\n", string1, jailtime);
    format(string1, sizeof(string1), "%s\t* "WHITE_COLOR"Выдано наказание Администратором:"ADMIN_COLOR" %s\n", string1, GetPlayer(playerid, pName));
    format(string1, sizeof(string1), "%s\t* "WHITE_COLOR"Причина наказания:"ADMIN_COLOR" %s", string1, reason[50]);
    ShowPlayerDialog(victim, D_NONE, DIALOG_STYLE_MSGBOX, ""ADMIN_COLOR"| "WHITE_COLOR"Информация о наказании(jail)", string1, "Закрыть", "");
}
PHP:
CMD:jail(playerid, params[0]) // Команда
{
    if(IsAdmin[playerid] == true)
    {
        if(GetAdmin(playerid, aLogin) == 0) return SendClientMessage(playerid, -1, ""SILVER_COLOR"[A] Команды Администратора заблокированы. Необходима авторизация: "ADMIN_COLOR"/alogin");
        if(GetAdmin(playerid, aAccept) != 1) return SendClientMessage(playerid, -1, ""SILVER_COLOR"[A]  У Вас блокировка админ-доступа, "ADMIN_COLOR"/idconfirm"SILVER_COLOR" для подтверждения личности");
    }
    else
    {
        printf("");
        return 0;
    }
    if(GetAdmin(playerid, aLevel) >= 5)
    {
        if(sscanf(params, "dds[50]", params[0], params[1], params[2])) return SendClientMessage(playerid, -1, ""ADMIN_COLOR"* "SILVER_COLOR"Введите: /jail [id игрока] [время 1-2000 / минуты] [причина]");
        if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, -1, ""ERROR_COLOR"* "WHITE_COLOR"Игрока под данным ID нет на сервере");
        if(GetPlayer(params[0], pLogged) == false) return SendClientMessage(playerid, -1, ""ERROR_COLOR"*"WHITE_COLOR" Игрок на этапе Авторизации");
        if(params[1] > 2000 || params[1] < 1) return SendClientMessage(playerid, -1, ""ERROR_COLOR"* "WHITE_COLOR"Время от 1 до 2000 минуты");
        if(GetPlayer(playerid, pInJail) == 1) return SendClientMessage(playerid, -1, ""ERROR_COLOR"*"WHITE_COLOR" Данный игрок уже находится в тюрьме");

        JailPlayer(params[0], playerid, params[1], params[2]);
        
        new string[183];
        format(string, sizeof(string), ""ERROR_COLOR"Администратор %s посадил в тюрьму игрока %s на %d минут. Причина: %s", GetPlayer(playerid, pName), GetPlayer(params[0], pName), params[1], params[2]);
        SendClientMessageToAll(-1, string);
    }
    return 1;
}
 

Вложения

Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу