1. Для начала напишем сам скрипт. Идем в scripts\ui_main_menu.script и находим там строку function main_menu:InitCallBacks(). Сразу после нее добавляем это:
self:AddCallback("btn_coordinates", ui_events.BUTTON_CLICKED, self.OnButton_coordinates_clicked, self)
А в самом конце дописываем это:
function main_menu:OnButton_coordinates_clicked()
-- Выдадим сообщение о нашем местоположении
local text
local vid
local gvid
local a = vector()
local text
a = db.actor:position() -- Наше положение в координатах
vid = db.actor:level_vertex_id()
gvid = db.actor:game_vertex_id()
text = "Позиция:\\nX= "..a.x.."\\nY= "..a.y.."\\nZ= "..a.z.."\\nlevel_vertex= "..vid.."\\ngame_vertex_id= "..gvid
news_manager.send_tip(db.actor, text, nil, nil, 30000)
end
Мы описали то, что будет происходить при нажатии клавиши "coordinates". Но ведь у нас ее нет! Значит нужно создать.
2. Добавление кнопки. Идем в config\ui\ui_mm_main.xml. Находим там эту строку:
<menu_main_single btn_height="30" font="graffiti22" a="255" r="255" g="255" b="255">
и эту:
<menu_main_single_dead btn_height="30" font="graffiti22" a="255" r="255" g="255" b="255">
Этими строками начинаются два (типа) столбика. В каждом из них после
<btn name="btn_options" caption="ui_mm_options_n" />
пишем это:
<btn name="btn_coordinates" caption="ui_mm_coordinates" />
Теперь во время выхода в меню из игры или при смерти ГГ можно будет узнать наше положение.
3. Ну и в завершение сделаем описание для новой кнопки здесь: config\text\rus\ui_st_mm.xml. В конце добавляем вот это:
<string id="ui_mm_coordinates">
<text>Координаты</text>
</string>