Статистика форума
Самые активные пользователи
Уважаемые пользователи
Недавно обновленные темы
Новые участники
Страница 1 из 11
Форум » Уроки по созданию модов » Конфиги, скрипты и прочие мелочи » Упрощеный способ выдачи предмета (Fireman3000)
Упрощеный способ выдачи предмета
Основатель сайта
Пользователь №: 1
Регистрация: 11.10.2012
Звание: Легенда
Сообщений: 616
Статус: Оффлайн
Сообщение # 1
Дата: 03.03.2014 в 21:31
Итак, многие знают, что есть длинная функция на выдачу предмета (забыл просто как она пишеться полностью), так же есть длинная функция на выдачу предмета в диалоге:


Цитата
function give_item(first_speaker, second_speaker)
dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "название предмета")
end



Сейчас расскажу как можно упростить способ.

Создаем любой скрипт. Например, test.script. Пишем туда вот такую функцию


Цитата
function actor_add_item(section)
alife():create(section,
db.actor:position(),
db.actor:level_vertex_id(),
db.actor:game_vertex_id(),
db.actor:id())
end



Написали? Хорошо! Создадим теперь ту самую упрощеную функцию. Пишется она так:


название_скрипта.actor_add_item("название предмета")


Ну например:


Цитата
function give_equip()
give_item.actor_add_item("wpn_pm")
give_item.actor_add_item("wpn_ak74")
give_item.actor_add_item("bandage")
give_item.actor_add_item("bandage")
give_item.actor_add_item("bandage")
give_item.actor_add_item("medkit")
give_item.actor_add_item("ammo_5.45x39_fmj")
give_item.actor_add_item("ammo_5.45x39_fmj")
give_item.actor_add_item("ammo_5.45x39_fmj")
give_item.actor_add_item("ammo_5.45x39_fmj")
give_item.actor_add_item("ammo_5.45x39_fmj")
give_item.actor_add_item("ammo_5.45x39_fmj")
give_item.actor_add_item("ammo_5.45x39_fmj")
give_item.actor_add_item("ammo_5.45x39_fmj")
give_item.actor_add_item("ammo_9x18_fmj")
give_item.actor_add_item("ammo_9x18_fmj")
give_item.actor_add_item("ammo_9x18_fmj")
give_item.actor_add_item("stalker_outfit")
end



Итак сделали? Супер! Лезем теперь в config/gameplay/info_l01escape.xml и после строчки:


Цитата
<info_portion id="esc_kill_gunslinger">
<task>storyline_eliminate_gunslinger</task>



Пишем: <action>test.give_equip</action> Там где test - это название скрипта.give_equip - название функции В итоге должно получиться вот так:


Цитата
<info_portion id="esc_kill_gunslinger">
<task>storyline_eliminate_gunslinger</task>
<action>test.give_equip</action>
<article>about_enciclopedia</article>
<article>sl_beginning</article>
</info_portion>



Теперь при начале новой игры будет выдаваться экипировка! Итак. Многие кто хоть немного разбираються в скриптах уже догадались что функция стремная. Нету такой упрощеной штуки как выдавание сразу нескольких предметов за один вызов. Но ничего. И тут мы выкрутимся. Будем пользоваться функцией for i do.

Привожу пример:


Цитата
function give_equip()
give_item.actor_add_item("wpn_pm")
give_item.actor_add_item("wpn_ak74")
give_item.actor_add_item("medkit")
for i=1, 3 do this.actor_give_item("bandage")
end
for i=1, 10 do this.actor_give_item("ammo_5.45x39_fmj")
end
for i=1, 3 do this.actor_give_item("ammo_9x18_fmj")
end
end



Итак, если хотите регулировать число выдаваемых предметов, то после i=1, ставим то число которое вам нужно.

Фух. Вроде все разобрали...

Привел статью в полный порядок, так же устранил пару недочетов: Fireman3000




Форум » Уроки по созданию модов » Конфиги, скрипты и прочие мелочи » Упрощеный способ выдачи предмета (Fireman3000)
Страница 1 из 11
Поиск:
Пользователи, посетившие форум за текущий день
03:28
Обновить



Тени Чернобыля Чистое Небо Зов Припяти S.T.A.L.K.E.R. 2

Сайт управляется системой uCoz | Design by EXELENT
Авторское право на игру и использованные в ней материалы принадлежат GSC Game World
Администрация сайта не несёт ответственности за содержащиеся файлы на данном портале.
В случае полного, или частичного копирования ссылка на источник обязательна!
© 2012 Zona-chernobyl

  
Наверх