[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Создание Проводника
HardtmuthДата: Пт, 03.07.2015, 16:41 | Сообщение # 1




Сообщений: 771
Награды: 5
Репутация:

Статус:



Создание Проводника в Зов Припяти


Описание:
В этом уроке я хочу рассказать, как сделать НПС-проводников в ЗП. Тут ничего сложного нет. Я делал с помощью скриптов. Скриптер из меня никакой, но этот метод работает 100%. Я делал на Кордоне, по аналогии вы сможете сделать на своей локации. Начнём!


Я не буду заново рассказывать о создании НПС. Думаю все уже умеют это делать.
Напишем диалог для нашего проводника.
Лезем в gamedata/gameplay/dialogs_zaton.xml - как пример.

Код
<dialog id="esc_travel_dialog">  
<precondition>dialogs_zaton.is_has_money_to_travel</precondition> - проверка на наличие минимальной суммы у ГГ.  
<phrase_list>  
<phrase id="3">  
<text>esc_travel_dialog_3</text>  
<action>dialogs_zaton.travel_to_atp</action> - функция телепорта.  
<action>dialogs_zaton.travel_to_atp_money</action> - забираем у ГГ деньги за услуги проводника.  
<action>dialogs.break_dialog</action> - завершение диалога  
</phrase>  
<phrase id="2">  
<text>esc_travel_dialog_2</text>  
<action>dialogs_zaton.travel_to_vagon</action>  
<action>dialogs_zaton.travel_to_vagon_money</action>  
<action>dialogs.break_dialog</action>  
</phrase>  
<phrase id="0">  
<text>esc_travel_dialog_0</text>  
<next>1</next>  
</phrase>  
<phrase id="1">  
<text>esc_travel_dialog_1</text>  
<next>2</next>  
<next>3</next>  
<next>4</next>  
</phrase>  
<phrase id="4">  
<text>esc_travel_dialog_4</text>  
</phrase>  
</phrase_list>  
</dialog>


Теперь сделаем наш диалог понятным для игрока. Идём в gamedata/configs/text/rus/st_dialogs_zaton.xml

Внизу пишем следующее:

Код
<string id="esc_travel_dialog_0">  
<text>Куда ты можешь меня провести?</text>  
</string>  
<string id="esc_travel_dialog_1">  
<text>Есть несколько мест, выбирай:\n- Кордон. Вагончик у дороги. 200 рублей\n- Кордон. АТП. 250 рублей</text>  
</string>  
<string id="esc_travel_dialog_2">  
<text>Веди к вагончику.</text>  
</string>  
<string id="esc_travel_dialog_3">  
<text>Пошли на АТП</text>  
</string>  
<string id="esc_travel_dialog_4">  
<text>Я передумал.</text>  
</string>


С диалогами всё. Теперь скрипты.


В gamedata/scripts/dialogs_zaton.script в самом низу пишем:

Код
function is_has_money_to_travel(first_speaker, second_speaker)  
return db.actor:money() >= 200 - если у ГГ есть 200 руб, то быть диалогу  
end  

function travel_to_vagon(first_speaker, second_speaker)  
level.add_pp_effector ("fade_in.ppe", 333, false) - эффект перехода  
db.actor:set_actor_position(vector():set(x,y,z),level_vertex_id,game_vertex_id) - куда "летим"  
end  

function travel_to_vagon_money(first_speaker, second_speaker)  
dialogs.relocate_money_from_actor(first_speaker, second_speaker, 200) - забираем деньги у ГГ  
end  

function travel_to_atp(first_speaker, second_speaker)  
level.add_pp_effector ("fade_in.ppe", 333, false)  
db.actor:set_actor_position(vector():set(x,y,z),level_vertex_id,game_vertex_id)  
end  

function travel_to_atp_money(first_speaker, second_speaker)  
dialogs.relocate_money_from_actor(first_speaker, second_speaker, 250)  
end


Вот и всё! Запускаем, проверяем.






$
SeeWelДата: Сб, 09.07.2016, 15:21 | Сообщение # 2




Сообщений: 8
Награды: 0
Репутация: 0

Статус:
Del



$
  • Страница 1 из 1
  • 1
Поиск:

Войти Зарегистрироваться