DIALOG_STYLE_INPUT баг?
#1

Странный баг.

Тут опишу подробнее использование.

Создаю команду:
PHP Code:
new setting[500];
dcmd_команда(playeridparams[])
{
    
#pragma unused params
    
format(settingsizeof(setting), "бла %d бла %d бла %d",
    
блаблабла);
    
ShowPlayerDialog(playerid33DIALOG_STYLE_LIST"{FFFF00}Заголовок:"setting"Кнопка 1""Кнопка 2");
    return 
true;

PHP Code:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == 33)
    {
        if(
response)
        {
            switch (
listitem)
            {
                case 
0ShowPlayerDialog(playerid,34,DIALOG_STYLE_INPUT,"Заголовок","Установите что-то","Установить","Назад");
            }
        }
        return 
true;
    }
    if(
dialogid == 34)
    {
        if(
response)
        {
        }
        else
        {
        }
        return 
true;
    }
    return 
false;

Жму клавишу
PHP Code:
response 
Работает все хорошо. А стоит нажать 2-ю клавишу, то при выходи из игры, бьет ошибку gta_sa.exe, что-то там с памятью.



Почему бьет ошибку?
Reply
#2

Quote:
Originally Posted by Stepashka
View Post
А чего там за код выполняется когда жмешь вторую клавишу?
Я думал сначала проблема в коде, но решил сделать так, как написал в примере тут и выявляется таже ошибка. То есть не зависимо есть ли там код или оставить строку пустой, то мне выбивает ошибку. Думал может это только на 0.3е, попробовал 0.3д R2, там такое же. Думал может в моде что-то не то. Взял практически пустой мод, баг тот же. Теперь у меня 2 варианта. 1) Это баг клиента или сервера. 2) Что-то на компьютере может полетело. Но ведь такое не только у меня.
Reply
#3

return false; зачем false?
Reply
#4

eakwarp Как с вики брал паблик OnDialogResponse так и осталось, но хоть false, хоть true. Ошибку все равно бьет.
Reply
#5

Добавил скриншот ошибки. Модов в ГТА нету.
Reply
#6

А ГТА чистая?
Reply
#7

Чистая, не 1 мода, не 1 скрипта или замененной текстуры нету. Все на стандарте. Как-то в файле sa-mp.cfg добавлял или правильно сказать включал, переключение языков с русского, на англ. Так при выходе тоже была какая-то ошибка. Только тогда, мне было без различно на нее. Я удалил эту строку и все стало нормально.
Reply
#8

У меня данная ошибка тоже воспроизводиться
Код игрового режима:
Code:
#include <a_samp>

main() {}

public OnGameModeInit() {
	SetGameModeText("Blank Script");
	AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
	return true;
}

public OnPlayerRequestClass(playerid, classid) {
	SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
	SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
	SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
	return true;
}

public OnPlayerCommandText(playerid, cmdtext[]) {
	if (strcmp("/td", cmdtext, true) == 0) {
		ShowPlayerDialog(playerid, 34, DIALOG_STYLE_INPUT, "1", "2", "3", "4");
		return true;
	}
	return false;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
    if(dialogid == 34) {
        return true;
    }
    return false;
}
Шаги к воспроизведению:
- подключаемся к серверу с данным игровым режимом;
- спавнимся;
- набираем команду /td;
- нажимаем кнопку 4;
- выходим;

Лично мое мнение, это ошибка сампа.
Reply
#9

У вас какие ОС? У меня на Vista не выдаёт ошибку, поэтому это точно не ошибка/баг САМПа. На работе на XP было такое, но с выходом 0.3e вроде пропало.
Reply
#10

У меня на ХР такая же ошибка практически постоянно еще с 0.3d
Reply
#11

Win XP cтандартный (SP2) - проблемы нет.
Reply
#12

Quote:
Originally Posted by TriskeliS
Посмотреть сообщение
У меня на ХР такая же ошибка практически постоянно еще с 0.3d
подтверждаю

XP Sp3
Reply
#13

Quote:
Originally Posted by OKStyle
View Post
У вас какие ОС?
Я тестировал на чистой XP SP3 Ru (она на виртуалке быстрей крутиться, чем семерка). Там происходит ошибка при завершении процесса при попытки освободить ресурсы. Я не думаю, что так и должно быть.

Хотя в адаптациях при завершении все еще хуже (ошибок в модах/у меня еще больше чем в сампе и память трется сильней), так что я прописал принудительный терминайт при завершении процесса
Reply
#14

Ну теперь понятно что проблема в XP SP3.
Reply
#15

Именно. На работе SP3 стоял. Так что это какой-то конфликт с файлами обновления.
Reply
#16

+1.
На Win Xp SP3 ошибка есть.
Reply
#17

Win XP SP3 - ошибки нет.
Reply
#18

У тебя обновление от Майкрософта или исправленный реестр?
Reply
#19

Тестировал под Windows 7 (Eng ver.) и WinXp SP3 (Eng ver.) нет никаких крашов.
Reply
#20

Win 7 - ошибок нету
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)