×
Меню
Индекс

MSFD Показ сообщений

[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).