[no fix] MessageBox, “Message”, [var1], [var2], [“button1”], [“button2”]
Команда MessageBox позволяет вам выдавать игроку информацию.
Обычно появляется маленькая табличка с текстом внизу экрана.
Которая задерживается на несколько секунд, или до тех пор, пока игрок не нажмет на кнопку, если окно сообщения имеет их.
Максимальное количество кнопок в одном MessageBox = 9.
Если диалоговое окно открыто, MessageBox выведется в диалоговое окно!
У такого текста будет другой цвет, чтобы показать, что это не часть диалога.
Например, "Ладно, я сниму проклятие. Он снимает проклятие."
Можно добавлять символы «возврат каретки» в сообщения, но это требует редактирования esp.
Добавьте какие-нибудь необычные символы вроде || и сохраняйте esp.
Затем откройте шестнадцатеричный редактор и замените || на 0D0A (код для возврата каретки) (Информация с форумов / qarl)
У MessageBox есть несколько различных режимов работы.
Простейший режим — выдача сообщения на экран, которое появляется внизу на несколько секунд, как в следующем скрипте, который выдает сообщение, когда игрок надевает предмет, к которому он приаттачен:
Begin informplayer
Short OnPCEquip
if ( MenuMode == 1 )
return
endif
if (OnPCEquip ==1 )
MessageBox, “Меч дрожит в вашей руке”
Set OnPCEquip to 0
Endif
End informplayer
Во втором режиме сообщение остается на экране до тех пор, пока игрок не нажмет на кнопку:
MessageBox, “Улайа поднял руки и произнес заклинание. Теперь вы перенесетесь в Шигорад”, “ok”
В третьем режиме вы можете использовать сообщение, чтобы дать игроку возможность принять решение через сообщение с кнопками и функцию GetButtonPressed:
[no fix] GetButtonPressed (returns short)
Если используется сообщение с кнопками, то первая кнопка назначена на 0 и т.д.
Функция будет возвращать -1, пока не нажата ни одна кнопка.
Пример:
Begin choices
Short button
Short status
Short OnPCEquip ; объявляется как переменная – иначе будут ошибки
if ( OnPCEquip ==1 )
MessageBox, “Меч вибрирует в вашей руке. Хотите взять его в руку?”, “Да”, “Нет”
Set OnPCEquip to 0 ;выдать этот MessageBox один раз
Set status to 1
Endif
If ( status == 1); ждем решения игрока
Set button to GetButtonPressed
If ( button == -1 ); нечего не выбрано – ничего не делать
return
Elseif ( button == 0 ); нормальное продолжение
Set status to 0 ; сброс для следующего раза
Elseif ( button == 1 )
Player -> drop, "power_sword" ; игрок сбрасывает предмет
Set status to 0
Endif
Endif
End
Примечание: Если вы используете стартовый скрипт Трибунала, чтобы выдать сообщение с кнопкой, как только игра загружена, нужно пропустить один фрейм, иначе не будет показан указатель мыши (Информация с форумов / DinkumThinkum).