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

Создание квеста


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

Есть ли какой скрипт чтоль, чтоб ГГ после диалога (ну или посое выбора строки) вылечивался?

 

Костя, а мне поможешь?

Костя, а мне поможешь?

Извини, но я к сожалению не знаю ответа. Не скриптер я. Попробуй спросить у Kolmogor. Он хорошо разбирается в таких вещах.

Костя, а мне поможешь?

попробуй добавить функцию и вызывать из диалога

function heal_actor()
  db.actor.health = 1;
end

db.actor.health = 1;

 

что значит 1? полная жизнь или что? мне просто надо чтоб независимо от количества здоровья оно становилось полным. да и не будет вылетов при использовании этой функции коли полное здоровье?

1 - значит полная жизнь

вылетов при полной жизни не будет, можно поставить в прекондишн проверку полная жизнь или нет и не показывать соответствующую фразу

function_have_af_baloon ()

return weapons_barter. have_item_namber ("af_baloon",1) ~= false

end

Если ещё нужно обьяснение то(просто пост был написан 15.12.2008, 3:09) - эта функция проверяет наличие того или иного предмета (ты и сам наверно понял) , а вылетало вот почему return weapons_barter. have_item_namber ("af_baloon",1) ~= false ,(то что выделено) это ссылка на другой фаил в котором есть вот такая функция have_item_namber (item_section,num) --(или как-то так)..

Если не хочешь использовать чужой фаил , то в свой добавь это

 

function delete_some_somth(section, count)
    news_manager.relocate_item(db.actor, "out", section, count)
    db.actor:iterate_inventory(
        function(dummy, item)
            if (count > 0) and (item:section() == section) then
                alife():release(alife():object(item:id()))
                count = count - 1
            end
        end,
    db.actor)
end




function have_item_namber(itm,need_namber)
local actor=db.actor
items_count=0
itemin=itm
actor:iterate_inventory(cheking_item,actor)
    if items_count>=need_namber then
        return true
    else
        return false
    end
end

и тогда твоя функция будет выглядеть так :

function_have_af_baloon ()

return have_item_namber ("af_baloon",1) ~= false

end

Скрипты можно вставлять в любой скриптовый файл. Главное потом ссылку на него дать. Но можешь и свой создать. Его нигде прописывать не придется. Создаешь файл название.script в папке gamedata/scripts. И пишешь в него свои функции. А потом по ссылкам задействуешь их.

 

Ага. большое thanks

Это еще что такое?
Да да я понял ... я потом додумался посмотреть у СЯК"a и нашел :)....

Нашел немного раньше чем ты написал...но спасибо... насчет return не знал - правда..:)...плюсик ушел к тебе на Новый Год! ;)

НУ вот вроде всё... подскажите пожалуйста...уже 5 часов бьюсь с этим :)

 

Это еще что такое?

function have_all() 
return sak.have_item_namber("old_doc_3_4",1) ~= false
return sak.have_item_namber("old_doc_3_3",1) ~= false
return sak.have_item_namber("old_doc_3_2",1) ~= false
return sak.have_item_namber("old_doc_3_1",1) ~= false
end

В блоке может быть только один return

Вот как тут можно сделать:

function have_all()
return sak.have_item_namber("old_doc_3_4",1) ~= false and
sak.have_item_namber("old_doc_3_3",1) ~= false and
sak.have_item_namber("old_doc_3_2",1) ~= false and
sak.have_item_namber("old_doc_3_1",1) ~= false
end

Если я введу допустим три прекондишн для появления диалога, есть ли функция, которая будет выдавать их рандомно, а еще лучше с определенной вероятностью, например первый прекондишн - 50%, второй 40%, третий 15%?

Нет, но можно сделать самому:

 

function pc1()
...
end

function pc2()
...
end

function pc3()
...
end

function precondition()
  local random = math.random(100)
  if random < 50 then
    return pc1()
  elseif random < 90 then
    return pc2()
  else
    return pc3()
  end
end

Можно. Дэн использовал рандомность в НС3 (в диалоге dialogs_new.xml):

                <precondition>amk_dialogs.pre_rnd_50_100</precondition>

                <precondition>amk_dialogs.pre_rnd_0_50</precondition>

Первый прекондишн ставь на одну ветку диалога, второй на другую. Здесь представлен шанс 50 на 50.

Можно. Дэн использовал рандомность в НС3 (в диалоге dialogs_new.xml):

                <precondition>amk_dialogs.pre_rnd_50_100</precondition>

                <precondition>amk_dialogs.pre_rnd_0_50</precondition>

Первый прекондишн ставь на одну ветку диалога, второй на другую. Здесь представлен шанс 50 на 50.

 

 

 

За помощь спасибо большое, постараюсь использовать оба варианта. Не могу отыскать функцию на проверку здоровья гг другими сталкерами.

Как сделать чтоб после выполнения квеста сразу начинался новый?

Как сделать чтоб после нажатия на определённую ветку диалога квест выполнился?

Как сделать чтоб после выполнения квеста сразу начинался новый?

Как сделать чтоб после нажатия на определённую ветку диалога квест выполнился?

 

 

Ответы на первой странице темы (смотри про инфопорции).

Как написать функцию для precondition в диалогах на то, что некоторая непись с определённым id жива и мертва?

Ребята, подскажите пожалуйста, как заставить выбранного НПС идти в нужную мне точку?

Ребята, подскажите пожалуйста, как заставить выбранного НПС идти в нужную мне точку?

В фенечке для АМК, которая выложена здесь на форуме, есть текстовый файл, где описано как это сделать.

quest

Спасибо, но там не совсем то... Там НПС посылают в уже заданную точку, она прописана в all.spawn, а мне нужно отправлять НПС в любую точку, например к меченому.

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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