Упрощеный способ выдачи предмета — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Отец (обсуждение | вклад) |
|||
| Строка 1: | Строка 1: | ||
| − | + | Итак многие знают что есть длинная функций на выдавание предмета(Забыл просто как она пишеться полностью) так же есть длинная | |
| − | + | функция на выдачу предмета в диалоге: | |
| + | <pre> | ||
| + | (first_speaker, second_speaker) | ||
| + | dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "название предмета") | ||
| + | end | ||
| + | </pre> | ||
| + | <lua> | ||
| + | Сейчас расскажу как можно упростить.Создаем любой скрипт.Например test.script.Пишем туда вот такую функцию | ||
<pre> | <pre> | ||
function actor_add_item(section) | function actor_add_item(section) | ||
| Строка 9: | Строка 16: | ||
db.actor:id()) | db.actor:id()) | ||
end | end | ||
| + | </lua> | ||
</pre> | </pre> | ||
| − | + | Написали?Хорошо!Создадим теперь ту самую упрощеную функцию.Пишеться она так | |
<pre> | <pre> | ||
| − | + | название_скрипта.actor_add_item("название предмета") | |
</pre> | </pre> | ||
Ну например: | Ну например: | ||
<pre> | <pre> | ||
| + | <lua> | ||
| + | function give_equip() | ||
give_item.actor_add_item("wpn_pm") | give_item.actor_add_item("wpn_pm") | ||
give_item.actor_add_item("wpn_ak74") | give_item.actor_add_item("wpn_ak74") | ||
| Строка 34: | Строка 44: | ||
give_item.actor_add_item("ammo_9x18_fmj") | give_item.actor_add_item("ammo_9x18_fmj") | ||
give_item.actor_add_item("stalker_outfit") | give_item.actor_add_item("stalker_outfit") | ||
| + | end | ||
| + | </lua> | ||
| + | </pre> | ||
| + | Итак сделали?Супер!Лезем теперь в config/gameplay/info_l01escape.xml и после строчки: | ||
| + | <text> | ||
| + | <info_portion id="esc_kill_gunslinger"> | ||
| + | <task>storyline_eliminate_gunslinger</task> | ||
| + | </text> | ||
| + | Пишем: | ||
| + | <action>test.give_equip</action> | ||
| + | Там где test это название скрипта.give_equip название функции | ||
| + | В итоге должно получиться вот так: | ||
| + | <pre> | ||
| + | <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> | ||
| + | </pre> | ||
| + | Теперь при начале новой игры будет выдаваться экипировка! | ||
| + | Итак.Многие кто хоть немного разбираються в скриптах уже догадались что функция стремная.Нету такой упрощеной штуки как выдавание сразу нескольких предметов за один вызов.Но ничего.И тут мы выкрутимся.Будем пользоваться функцией for i do.Привожу пример: | ||
| + | <pre> | ||
| + | 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 | ||
</pre> | </pre> | ||
| − | + | Итак если хотите регулировать число выдаваемых предметов то после i=1, ставим то число которое вам нужно | |
| − | + | Фух.Вроде все разобрали... | |
| − | '' | + | Привел статью в полный порядок так же устранил пару недочетов:'''Fireman3000''' |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
Версия 16:37, 1 декабря 2010
Итак многие знают что есть длинная функций на выдавание предмета(Забыл просто как она пишеться полностью) так же есть длинная функция на выдачу предмета в диалоге:
(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "название предмета") end
Сейчас расскажу как можно упростить.Создаем любой скрипт.Например test.script.Пишем туда вот такую функцию <pre> 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
</pre> Написали?Хорошо!Создадим теперь ту самую упрощеную функцию.Пишеться она так
название_скрипта.actor_add_item("название предмета")
Ну например:
<lua>
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
</lua>
Итак сделали?Супер!Лезем теперь в 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