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

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

подскажите, как можно сделать такую проверку:

если у игрока в руках что-то есть (сейчас худ видно), и это оружие XXX - тогда вернём true

Ссылка на комментарий
local active_slot    = db.actor:active_slot()
local weapon        = db.actor:item_in_slot(active_slot)
if weapon and weapon:section() then
     if weapon:section() == "my_gun" then 
         return true
     end
     return false
end

Vita sine libertate, nihil

Vita sine litteris - mors est

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

Товарищи сталкеры помогите, создал НПС в ЗП и в логике у него написал следующие

active = kamp@koster_marsh_baza01

combat_ignore = 10

[kamp@koster_marsh_baza01]

center_point = kamp_center_marsh01

meet = meet_guide

combat_ignore_cond = always

 

в way написал

 

points = p0

p0:name = wp00|a=sit_ass

p0:position = -157.044052124023,0.613676309585571,-310.872619628906

p0:game_vertex_id = 1070

p0:level_vertex_id = 65989

 

 

подскажите пожайлуста как решить следующие проблемы

1)НПС стоит около костра, а не сидит

2)не хочет разговаривать

3)не как не реагирует если я в него выстрелю

P.S. это моя первая логика :rolleyes:

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

TRAMP14

А я вё время думаю завчем в етих скобках пишт локальные так ето что луа не взбеслся.

В этих скобках пишут не локальные, а аргументы функции.

Вот например в свою функцию:

function item(obj)
local obj = obj:section()
if obj == "medkit" then 
alife():create("medkit", db.actor():position(), db.actor:level_vertex_id, db.actor:game_vertex_id(), db.actor:id())
end
end

 

ты можешь передать аргумент:

item("medkit")

 

Можно ли каким нибудь способом запретить использовать определённый тип аптечек?

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

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

Якут

я не занимаюсь зп но по анологии с тч

 

active = kamp@koster_marsh_baza01

combat_ignore = 10 незнаю что это наверно дистанция игнорирования боя

[kamp@koster_marsh_baza01]

center_point = kamp_center_marsh01

meet = meet_guide а разве в зп не такой формат meet = meet@..имя

combat_ignore_cond = always а вот тут у тебя игнор боя в любом случае

 

points = p0

p0:name = wp00|a=sit_ass это зачем схема камп сама усадит непися

p0:position = -157.044052124023,0.613676309585571,-310.872619628906

p0:game_vertex_id = 1070

p0:level_vertex_id = 65989

 

пример из тч

 

[esc2_bandit_les_kamp_1]

points = p0

p0:name = name00

p0:position = 312.993621826172,3.61605930328369,117.678817749023

p0:game_vertex_id = 143

p0:level_vertex_id = 571664

 

Ссылка на комментарий
если у игрока в руках что-то есть (сейчас худ видно), и это оружие XXX - тогда вернём true

function IsWeaponActive()
local item = db.actor:active_item() 
return  item and isWeapon(item )
end

-------------------------------------------------------------------------------------------------------------

Кому нужно: аптечки на худе (универсальный скрипт под любую версию игры ТЧ или мод на ТЧ (состоит всего из одного файла), причем скрипт легко можно дополнить своими предметами)

e65d0e835b1dt.jpg

 

 

ссылка

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

Garry_Galler,

Полезная вещь, спасибо!

А можно ли и по шкале "Y" сделать скриптовую привязку?

Просто необходимо переместить отображение на худе аптечек в правый верхний угол.

Заранее спасибо!

 

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

Логики капм в зове припяти нет. Нужно создавать анимпоинт, и ставить НПС такую логику что бы он шел к этому анимпоинту. Точнее сказатт не могу, ищи в алл спавне и файлаХ с логикой слово анимпоинт

Freedom

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

А не легче написать в логику anim = sit_ass, это нужно в remark прописать, если же нпс будет находится под walker, то def_state_standing = sit_ass, пробуй Якут..

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

Ремарк не желательно использовать долгое время. Ремарк можно использовать для связки. Даже Архара это говорил

Freedom

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

antreg

Тут все просто: добавляешь в мой файл эту таблицу

local tPosYItems ={
medkit            =25, 
medkit_scientic    =50, 
medkit_army        =75, 
antirad            =100 }

затем в строчке

 for k, v in pairs(tPosXItems) do

заменяешь имя таблицы на tPosYItems

затем строчку

st:Init(v, 725, 30, 25)

комментируешь или удаляешь и вместо нее пишешь

st:Init(990, v, 30, 25)

(кстати размеры - ширина\высота - иконок определяют параметры 30, 25 - их можно увеличить\уменьшить - только пропорции стоит соблюдать, что иконка не сильно искажалась)

теперь статики будут строиться по вертикали в правом верхнем углу - точка отсчета по x- 990 - можешь ее подкорректировать под себя.

Шаг между статиками 25 пикселей - как и был - но это тоже можешь подправить в таблице tPosYItems - верхний статик будет рисоваться по координате Y равной 25, последующие по указанным - друг под другом.

В итоге получается так:

3f8abf644597t.jpg

 

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

В общем, облазил весь инет, но так нигде никто мне внятного ответа не дал, поэтому, видимо, это где-то в скриптах и спрашивать надо у вас :ny_smile:

Что необходимо: делаю мп мод. Нужно, чтобы аптеки, когда их выкидываешь из инвентаря, пропадали не через 30 секунд, а через 1.5, а рюкзак после смерти исчезал сразу. В лтх файлах есть команда remove_time = , но она подходит только для трупа, гранат, оружия. Облазили со СталкМеном исходник хрГейм от Ролана - там тоже есть упоминание о времени для оружия, гранат, трупов. Но нет рюкзаков и аптек. Кстати, если аптека пропадает через 30 секунд, то рюкзак - через 60. Поиск по числам не дал результатов (30000, 60000).

В файле death_manager.script есть следующее:

--' Функция вызывается для каждого предмета, если вернет false то предмет удалится.

function keep_item(npc, item)

local section = item:section()

 

local ini = npc:spawn_ini()

 

if ini and ini:section_exist("keep_items")

and section ~= "guitar_a"

and section ~= "harmonica_a"

and section ~= "wpn_binoc"

and section ~= "device_torch"

and section ~= "device_pda" then

return

end

 

if isArtefact(item) then

return

end

-- printf("keep_item:item ["..item:name().."] npc_name ["..npc:name().."]")

if section == "bolt" then

return

end

 

if always_keep_item[section] == true then

return

end

--printf("item name [%s]", item:name())

if isWeapon(item) and not(get_clsid(item)==clsid.wpn_grenade_rgd5_s or get_clsid(item)==clsid.wpn_grenade_f1_s) then

set_weapon_drop_condition(item)

return

end

Я вот думаю, что если подправить что-то в последнем абзаце, можно сделать, чтобы хотя бы рюкзак пропадал сразу ("...если вернет false то предмет удалится")

Ну или, в крайнем случае, хотя бы сделать, чтобы все исчезало через 1.5 (аптеки, гранаты, оружие, рюкзак). Ведь есть команда sv_remove_weapon 0 в раадминке, отвечающая за мгновенное уничтожение предметов (исчезает все, что брошено, в том числе рюкзак после смерти) - эта команда должна же на что-то ссылаться, чтобы активировать все эти данные.

 

 

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

antreg

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

скрин

741a771f769dt.jpg

 

 

ссылка

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

AKKK1, MustaNG, _Призрак_ спасибо вам за помощь вот смотрите что получилось

[logic] 
active = walker@coster_marsh_baza_01 
danger = danger_ignore@coster_marsh_baza_01 
anim = desk_idle 

[danger_ignore@coster_marsh_baza_01] 
ignore_distance = 5

[walker@coster_marsh_marsh_baza01]
path_walk = koster01_stalker01_baza
path_look = koster01_marsh_look
meet = meet_guide@coster_marsh_baza_01 

[meet_guide@coster_marsh_baza_01] 
close_anim = nil 
close_victim = nil 
far_anim = nil 
far_victim = nil 
close_distance = 0 
far_distance = 0 
close_snd_distance = 3 
abuse = false 
use = {=actor_enemy} false, true 
allow_break = false 
meet_on_talking = false 
meet_on_talking = false 

 

way

[koster01_marsh_look]
points = p0
p0:name = wp00|a=sit_knee
p0:flags = 0x1
p0:position = -157.044052124023,0.613676309585571,-310.872619628906
p0:game_vertex_id = 1070
p0:level_vertex_id = 65989


[koster01_stalker01_baza]
points = p0
p0:name = wp00|a=sit_knee
p0:flags = 0x1
p0:position = -158.81573486328,0.60850393772125,-312.81994628906
p0:game_vertex_id = 1070
p0:level_vertex_id = 64634

 

 

сталкер как и нужно сидит около костра разговаривает и реагирует на стрельбу в его адрес.

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

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

Вынужден вам напомнить, что тема не о рассуждениях нужности модов.

 

TRAMP14, я конечно все понимаю, но об этом уже тысяча раз говорилось, так что используйте поиск.

 

 

 

 

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

Товариши сталкеры, скажите пожайлуста кто знает. Как называется состояние тела НПС когда он сидит на стуле как медики в лагерях?

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

Министр, ок

____________________

Вопрос: у меня есть непись-таргет. Я пытаюсь сделать так:

        local panic=target_iter(target)
        get_console():execute(panic)

Если непись имеет какую-либо пушку, то выдает true, иначе false.

function target_iter(target)
            target:iterate_inventory(
            function(dummy,item)
                if string.find(item:section(),"wpn_") then
                    return true
                else
                return false
                end
            end
            , target)
end

У меня получается какой-то бредовый вылет. У меня тут все правильно?

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

SkyLoader

tostring() при выводе в консоль примени(кто ж в консоль значение переменной выводит без всякого форматирования и конвертации). Булевы значения нужно конвертировать в строку.

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

Можно ли сделать перебор "н"-ого кол-ва предметов. ну допустим их у нас 6 и все они разные.

Нам нужно сделать так: после троекратного(3 раза) использования любого из этих предметов повторное их использование блокируется на некоторое время.

Просто не знаю с чего начать... Подзабыл всё :blush:

87728-stalker.gif
Ссылка на комментарий

Якут, вот тебе скриншот всех сидячих анимаций на стуле в ЗП:

1389085b1259t.jpg

Находятся они в файле stalker_smart_cover_animation.omf

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

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