BardM 0 Опубликовано 11 Апреля 2009 (изменено) Объясните, пожалуйста, как правильно написать такой диалог и скрипт к нему: Меченый предлагает неписю экскурсию по зоне и просит за это деньги (и наличие аптечеки). Если деньги и аптечка у непися есть - он соглашается и отдает деньги за экскурсию (50 рублей). Для ведения непися используется мод "Напарники". Я не знаю, как сделать скрипт по передаче денег, поэтому заменил деньги водкой. Но все равно вылетает при передаче водки :-( Вот диалог: <?xml version="1.0" encoding="windows-1251" standalone="yes" ?> <game_dialogs> <dialog id="actor_lets_go"> <precondition>actor_need_help.scheme_is_not_active</precondition> <phrase_list> <phrase id="0"> <text>"Эй, новичок, хочешь я тебя по зоне проведу? Недорого! Куда угодно. Ну, почти...</text> <next>11a</next> </phrase> <phrase id="11a"> <text>Давай, я давно хочу Зону посмотреть, а одному - стремно как-то.</text> <next>12</next> </phrase> <phrase id="12"> <text>Тогда давай полтиник и потопали. Только если вдруг меня ранят, поможешь аптечкой, а то некому тебя будет вывести.</text> <next>13</next> <next>14</next> <next>15</next> <next>16</next> </phrase> <phrase id="13"> <text>Хорошо, конечно. Вот, держи, ровно 50.</text> <precondition>actor_need_help.npc_have_medkit</precondition> <precondition>actor_lets_go.npc_have_money</precondition> <action>actor_lets_go.transfer_money</action> <action>actor_need_help.status_changed</action> <action>actor_need_help.activate_scheme</action> <action>dialogs.break_dialog</action> </phrase> <phrase id="14"> <precondition>actor_lets_go.npc_havent_money</precondition> <precondition>actor_need_help.npc_havent_medkit</precondition> <text>Не, нафиг. Я лучше сам, чем тебе бабки платить. У меня их не так много. И аптечек совсем нет.</text> <next>17</next> </phrase> <phrase id="15"> <precondition>actor_lets_go.npc_have_money</precondition> <precondition>actor_need_help.npc_havent_medkit</precondition> <text>Блин, у меня аптечки кончились. Не рассчитывай на меня.</text> <next>18</next> </phrase> <phrase id="16"> <precondition>actor_lets_go.npc_havent_money</precondition> <precondition>actor_need_help.npc_have_medkit</precondition> <text>Не, нафиг. Я лучше сам, чем тебе бабки платить. У меня их не так много.</text> <next>21</next> </phrase> <phrase id="17"> <text>Понятно...</text> <action>dialogs.break_dialog</action> </phrase> <phrase id="18"> <text>Ну хорошо, я найду тебе аптечку и ты у меня её купишь.</text> <action>dialogs.break_dialog</action> </phrase> А это если вместо денег водка =) <phrase id="22"> <text>Тогда давай водку и потопали. Только если вдруг меня ранят, поможешь аптечкой, а то некому тебя будет вывести.</text> <next>23</next> <next>24</next> <next>25</next> <next>26</next> </phrase> <phrase id="23"> <text>Хорошо, конечно. Вот, держи.</text> <precondition>actor_need_help.npc_have_medkit</precondition> <precondition>actor_lets_go.npc_have_vodka</precondition> <action>actor_lets_go.transfer_vodka</action> <action>actor_need_help.status_changed</action> <action>actor_need_help.activate_scheme</action> <action>dialogs.break_dialog</action> </phrase> <phrase id="24"> <precondition>actor_lets_go.npc_havent_vodka</precondition> <precondition>actor_need_help.npc_havent_medkit</precondition> <text>Еще чего, c тобой пьяным по Зоне ходить! Мне бы самому выпить чего-нить. Да и аптечек у меня нету.</text> <next>27</next> </phrase> <phrase id="25"> <precondition>actor_lets_go.npc_have_vodka</precondition> <precondition>actor_need_help.npc_havent_medkit</precondition> <text>Блин, у меня аптечки кончились. Не рассчитывай на меня.</text> <next>28</next> </phrase> <phrase id="26"> <precondition>actor_lets_go.npc_havent_vodka</precondition> <precondition>actor_need_help.npc_have_medkit</precondition> <text>Я не псих, чтобы c тобой пьяным ходить по Зоне. Мне бы самому выпить чего-нить.</text> <next>27</next> </phrase> <phrase id="27"> <text>Понятно...</text> <action>dialogs.break_dialog</action> </phrase> <phrase id="28"> <text>Ну хорошо, я найду тебе аптечку и ты у меня её купишь.</text> <action>dialogs.break_dialog</action> </phrase> </phrase_list> </dialog> Это скрипт для денег (знаю, где ошибка, но не знаю как правильно). function npc_have_money (stalker, player) return stalker:object (50) ~= nil end function npc_havent_money (stalker, player) return not stalker:object (50) end function transfer_money (npc, actor) dialogs.relocate_money(npc, 50, "in") end Это скрипт для водки function npc_have_vodka (stalker, player) return stalker:object ("vodka") ~=nill end function npc_havent_vodka (stalker, player) return not stalker:object ("vodka") end function transfer_vodka (npc, actor) dialogs.relocate_item_section(npc, "vodka", "in") end Когда просишь водку - вылет. В логе никакого сообщения об ошибке нет. Изменено 11 Апреля 2009 пользователем BardM сижу тихо, никого не трогаю, починяю примуса Адаптация S.T.A.L.K.E.R`s sound remake (версия от 19.12.2009) для SGM 0.8 Поделиться этим сообщением Ссылка на сообщение