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

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


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

Vergas В конфигах оружия смотри slot = 2 или slot =1

"Чтобы тебя любили — приходится быть со всеми хорошим каждый день.

Чтобы ненавидели — напрягаться не приходится вообще."

Ссылка на комментарий

Не, ребята вы не поняли. Как скриптом определить что именно в данный момент лежит в 1 и 2 слотах :(

================================

Что означает ошибка:

pure virtual function called

И кто-нить может рассказать вот про это : GetLocalPlayer()

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

НЛС-6: У каждого своя зона

_______________________________________________________________

Не ищи легких путей и не возвращайся той же дорогой

Ссылка на комментарий

Vergas

Например так: db.actor:item_in_slot(1)-возвращает ссылку на объект лежащий в 1 слоте, ну а дальше делай с ней что хочешь, получай секцию, ID и т.д.

Возможно всё, ну или почти всё.
Ссылка на комментарий

8push5, спасибо, но уже сам разобрался. А вот вопрос на засыпку:

В инвентаре открыто некое окошечко. И вот в него надо вывести меседж. У меня нифига не получается. Вот на худ - нет проблем, а тут... Все форумы облазил, ничего не нашел. Или никто этой проблемой не задавался, или она настолько проста, что и говорить нечего....

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

НЛС-6: У каждого своя зона

_______________________________________________________________

Не ищи легких путей и не возвращайся той же дорогой

Ссылка на комментарий

помогите пожалуйста!!

 

я сделал так, что б у n персонажа можно было брать деньги в долг.

 

создал 2 инфопоршна:

<info_portion id="vzal_dolg"></info_portion>

<info_portion id="otdal_dolg"></info_portion>

 

написал диалог (кусок):

<phrase id="4">

<dont_has_info>vzal_dolg</dont_has_info>

<text>Слушай можешь денег в долг дать?</text>

<next>7</next>

</phrase>

 

<phrase id="13">

<text>Ну держи... вернешь семь.</text>

<action>xmk_funct.zaim</action>

<give_info>vzal_dolg</give_info>

<next>3</next>

<next>4</next>

<next>5</next>

</phrase>

 

далее:

<phrase id="15">

<has_info>vzal_dolg</has_info>

<precondition>xmk_funct.has_money</precondition>

<text>Я вот тут тебе долг принес.</text>

<action>xmk_funct.dolg</action>

<give_info>otdal_dolg</give_info>

<next>16</next>

</phrase>

 

 

 

и т.д. сделал функции проверки и передачи денег, вообщем все работает.

 

суть такова, что если нет инфопоршна vzal_dolg, диалог о взятии долга есть, аналогично с возвращением долга, если этот инфопоршн есть, то диалог есть, теперь проблема:

 

после взятии денег дается инфопорш vzal_dolg

после того как долг вернули дается инфопоршн otdal_dolg, а инфопорш vzal_dolg остаеться и дилог о взятии долга больше не появляеться :unsure:

 

подскажите как после возврата денег убить инфопоршн vzal_dolg

Ссылка на комментарий

Вопрос к скриптерам. Как написать функцию на проверку того, ГГ или не ГГ ранил непися.

Ну например: поговорил я с Толиком, тот стал врагом, началась стрельба, я его ранил, тот упал и стал кляньчить апетчку. И нужный диалог появляется только когда Толик ранен. Но мне нужно чтобы диалог появился когда именно я его ранил, а не стая собак например.

Ссылка на комментарий

XMK

db.actor:disable_info_portion("vzal_dolg")

Отшель[НИК]

Попробуй эту функцию: ссылка_на_толика:who_hit_section_name()-возвращает секцию того ко нанес повреждение

Возможно всё, ну или почти всё.
Ссылка на комментарий
XMK

db.actor:disable_info_portion("vzal_dolg")

 

спасиба, но я уже сделал <_<

 

<info_portion id="vzal_dolg"></info_portion>
<info_portion id="otdal_dolg">
    <disable>vzal_dolg</disable>
</info_portion>

 

 

вопрос такой, как сделать без редактирования all.spawn следущее

стоит чувак на одном месте и махает нам рукой.

 

взял скрипт логики из статьи по созданию торговца:

[logic]
active = remark

[remark]
anim = wait

он тупо стоит на месте и не двигаеться

Ссылка на комментарий

В anim =, вместо анимации wait, необходимо прописать анимацию приветствия = hello, либо hello_wpn (приветствие с оружием в руках). Но он всё время будет махать руками, а по окончании махания, тыкать стволом в ГГ. Чтобы сделать его махание, например, только при приближении ГГ, нужно сделать примерно следующее:

[logic]
active = remark@1

[remark@1]
anim = wait
on_actor_dist_le = 15 | remark@2

[remark@2]
anim = hello_wpn
on_signal = anim_end | remark@3

[remark@3]
anim = ward
on_actor_dist_ge = 20 | remark@1

Получится так - непись будет просто стоять, но когда ГГ приблизится на 15 метров (если непись это увидит), то начнёт махать руками, а по окончании своих действий, снова встанет (с руками за спиной). Если же игрок отдалится на 20 метров, то он снова вернётся в своё прежнее состояние. (цифры можно менять)

 

[logic]
active = remark@1

[remark@1]
anim = wait
on_actor_dist_le = 15 | remark@2, remark@1

[remark@2]
anim = hello_wpn
on_actor_dist_le = 15 | remark@2, remark@1

То есть, если ГГ приближается, то непись машет руками, а при отдалении - будет просто стоять.

 

Ссылка на комментарий

WAWKA огромное спасибо!! 2 вариант работает :rolleyes:

 

а можно как нибудь сделать так чтоб он еще и на место свое возвращался?

 

т.е. стоит он на определенном месте, мимо пробегает враг, он пытаеться бежать за ним, добегает до определенной точки и там и остается :blink: можно его вернуть?

Ссылка на комментарий

в файле outfit.ltx. можно изменить уровень повреждений к броне?

и какая строчка служит, для изминения этой характеристики?

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

Только когда потеряешь все:, обретаешь истинную свободу - делать все:, что захочешь.

Мир Оружия

Ссылка на комментарий

XMK, вернуть на место, к сожалению, без создания путей (то есть, ковыряния all.spawn) - никак. Логика remark - это простое отыгрывание анимации и звука, без использования точек путей. Для, как таковой, основной логики - не используется. То есть, непись после исчезновения врага\опасности, остановится именно на том месте, на котором успокоится. Тут либо прописать ему danger и combat_ignore (отключить реакцию на опасность и запретить воевать), либо ковырять all.spawn - создать пути и перевести его с remark на walker. В этом случае, после опасности\драки, непись гарантированно вернётся на точку своего пути. Если раньше не скопытится...

[logic]
active = remark@1
combat_ignore = combat_ignore

[remark@1]
anim = wait
on_actor_dist_le = 15 | remark@2, remark@1
combat_ignore_cond = always
danger = danger_ignore

[remark@2]
anim = hello_wpn
on_actor_dist_le = 15 | remark@2, remark@1
combat_ignore_cond = always
danger = danger_ignore

[combat_ignore]

[danger_ignore]
ignore_distance = 0

В этом случае, непись будет игнорировать любую опасность и любую попытку его пристрелить. Если же допустимо некое перемещение непися, то можно в ignore_distance = вместо нуля, написать, к примеру, 10 (непись будет чувствовать себя в безопасности до тех пор, пока враг\животное не подойдёт ближе, чем на 10 метров) + к этому, в combat_ignore_cond = , вместо always, можно написать {!fighting_actor} - непись будет игнорировать бой до тех пор, пока ГГ в него не выстрелит. Либо {!actor_enemy} - непись начнёт воевать только в том случае, если ГГ будет для него врагом. Во всех трёх случаях, для combat_ignore_cond, будет игнорироваться бой с любым врагом - то есть, любой вражески настроенный непись, ну или животное, может спокойно приблизиться и прикончить бедолагу. Зато он не сдвинется с места. :)

 

Изменено пользователем WAWKA
Ссылка на комментарий

Сталкнулся вот с такой ошибкой:

[error]Arguments     : LUA error: pure virtual function called

НЕ могу понять смысл ошибки. Это что, Лиа ругается что обращаюсь к несуществующей функции?

НЛС-6: У каждого своя зона

_______________________________________________________________

Не ищи легких путей и не возвращайся той же дорогой

Ссылка на комментарий

Сдрасти

 

Скажыте пожалуиста как изменить количество водки, которую можно пить (у меня меченный умер постли 4-ёх)

Преследует душа по зоне, не опытного новичка. Там за спиной его холодный вдох и выдох, оставил запись он наверняка.
Но есть примета зоны: "Не ходи, той-же тропой обратно,
не то погибнешь сталкер в аномалии или исчезнешь невозвратно.
Мораль, того, проста, и заруби её ´се на носу: Проходишь сталкер ОП 2.1 на "реализме", почаще сохраняй игру!     

Ссылка на комментарий

Doom смотри файл amk_alcohol.script там вроде все подписано

 

 

local alc_max_drink_bottles_to_death = 5 --штук --сколько бутылок водки - смертельная доза [5]

 

local alc_max_drink_bottles = 4 --сколько максимально можно выпить бутылок водки, после которых герой засыпает [4]

 

 

меняй насколько тебе надо

Ссылка на комментарий

спосибо, теперь на проблемку меньше :-)

Преследует душа по зоне, не опытного новичка. Там за спиной его холодный вдох и выдох, оставил запись он наверняка.
Но есть примета зоны: "Не ходи, той-же тропой обратно,
не то погибнешь сталкер в аномалии или исчезнешь невозвратно.
Мораль, того, проста, и заруби её ´се на носу: Проходишь сталкер ОП 2.1 на "реализме", почаще сохраняй игру!     

Ссылка на комментарий

У меня вопрос...

 

в амк есть такая функция:

function send_tip(news_text, header, timeout, showtime, sender, sound)
    if news_text == nil then return end
    if header == nil then header = game.translate_string("st_tip") end
    if timeout == nil then timeout = 0 end
    if showtime == nil then showtime = 5 end

    local player
    if sound=="news" then
        player=pda_news
    elseif sound=="task" then
        player=pda_task
    else
        player=pda_tips
    end        

    --' Играем дефолтный звук
    player:play(db.actor, timeout, sound_object.s2d)

    if sender == nil then
        sender = "default"
    end
    local x = tips_icons[sender][1]
    local y = tips_icons[sender][2]

    local news_text = "%c[255,160,160,160]"..header.."\\n".."%c[default]"..news_text
    db.actor:give_game_news(news_text, "ui\\ui_iconsTotal", Frect():set(x,y,83,47), timeout*1000, showtime*1000)
    return true
end

 

 

которая выводит сообщения на экран

 

amk.send_tip("сообщение",nil,nil,5) выводит сообщение на экран с стандартной иконкой

 

как сделать так чтоб сообщение выводилось на экран с иконкой Бармена например??, есть ведь переменные:

 

-- Переменные для типсов

pda_news = xr_sound.get_safe_sound_object([[device\pda\pda_news]])
pda_tips = xr_sound.get_safe_sound_object([[device\pda\pda_tip]])
pda_task = xr_sound.get_safe_sound_object([[device\pda\pda_objective]])

tips_icons = {
    default  = { 82, 282},
    trader   = { 332, 893},
    dolg     = { 0, 658},
    freedom  = { 0, 658},
    ecolog   = { 498, 0},
    arena    = { 332, 141},
    stalker  = { 0, 658},
    krot     = { 332, 47},
    barman   = { 332, 235},
    wolf       = { 332, 940},
    o_soznanie = { 498, 893},
    monolith = { 0, 658},
    saharov  = { 332, 470},
    prizrak  = { 0, 658},
    killer   = { 0, 658},
    death    = { 0, 752}
}

 

 

 

заранее спасибо

Ссылка на комментарий

При вызове send_tip надо в аргументе sender передать "barman"

вызывается так:

send_tip(news_text, header, timeout, showtime, "barman", sound)

Изменено пользователем Kolmogor
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

×
×
  • Создать...