Перейти к контенту

[SoC] Ковыряемся в файлах


Halford

Рекомендуемые сообщения

Объясните, пожалуйста, как правильно написать такой диалог и скрипт к нему:

Меченый предлагает неписю экскурсию по зоне и просит за это деньги (и наличие аптечеки). Если деньги и аптечка у непися есть - он соглашается и отдает деньги за экскурсию (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

 

Когда просишь водку - вылет. В логе никакого сообщения об ошибке нет.

 

 

 

Изменено пользователем BardM

сижу тихо, никого не трогаю, починяю примуса

Адаптация S.T.A.L.K.E.R`s sound remake (версия от 19.12.2009) для SGM 0.8

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...