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

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

А тут вроде как обсуждается составление списка из того, что УЖЕ ЕСТЬ в инвентаре

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

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

 

 

И ни слова о том что же с этим делать?

Наверное все, что придет в голову автору, а так же что-нибудь еще, после того как он (уже после написания первоначального кода) придумает еще какую-то функцию к уже имеющимся.

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

@PTB, что бы мы тут перестали заниматься погадалками, может быть сообщите, что же должно получиться в итоге? В чем состоит конечная цель.

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

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

@Zander_driver, Простите что сразу всё не разъяснил.

В общем то так : Хочу сделать ручной апгрейдер оружия или брони, решил попрактиковаться на еде. 

Как должно было выглядеть: Юзаем вещь, выбираем из списка предмет, во втором списке выбираем апгрейд, жмём кнопку(ту где сейчас аптечка спавнится) и хопа оружие удалилось из инвентаря и в место него добавилось новое.

В жизни много плохих моментов. Пытайся избавляться от них !

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

Добрый вечер. Есть у меня скрипт который можно включить и выключить. Делается это так:

lvidgvid		= false --true -включен; false - выключен

Как мне скриптом менять его значения? Т.е. как в настройках. Отключить или включить данный параметр всего лишь нажав на определенную область экрана. Область есть, а вот функции нет. 

 

А так же, как изменить параметр если он находится не в скрипте, а в .ltx файле? Например:

cheat_enable 	= 1 -- 1 включено; 0 выключено

Все так же как и в первом варианте. Нужно нажать на определенную область.

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

@Kober(BRUC), ну как показывает мне опыт - заведи буфер, и пиши туда состояние true\false попутно его сохраняя, только вот куда сказать не могу - опыта мало(

Не соответствует правилам.

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

По поводу сообщения о смерти сталкеров... Вот для себя делал модифицированный вариант, с наворотами. В скрипте пояснения есть, всё довольно просто.

 

Можно и дальше его переделывать, если есть фантазия :) .

 

 

-- ========================

-- Сообщения о смерти сталкеров - модификация скрипта. Есть учет плохой радиосвязи в Зоне, и дополнительные сообщения сочувствия...
-- Мишаня_Лютый & Weanchester & AntdiabloN 2011-2016
-- Old Episodes. Epilogue
-- =======================

local level_name = {
["l01_escape"] = "Кордон",
["l02_garbage"] = "Свалка",
["l03_agroprom"] = "НИИ Агропром",
["l03u_agr_undergroun"] = "Подземелье НИИ Агропром",
["l04_darkvalley"] = "Тёмная долина",
["l04u_labx18"] = "Лаборатория X-18",
["l05_bar"] = "Бар",
["l06_rostok"] = "Дикая территория",
["l07_military"] = "Арм.склады",
["l08_yantar"] = "Янтарь",
["l08u_brainlab"] = "Лаборатория X-16",
["l10u_bunker"] = "Лаборатория X-10",
["l10_radar"] = "Радар",
["l11_pripyat"] = "Припять",
["l12_stancia"] = "ЧАЭС",
["l12_stancia_2"] = "ЧАЭС",
["l12u_sarcofag"] = "Саркофаг",
["l12u_control_monolith"] = "Управление Монолитом"
}

local community = {
["stalker"] = "Сталкер",
["monolith"] = "Монолит",
["military"] = "Военные",
["bandit"] = "Бандит",
["killer"] = "Наемник",
["ecolog"] = "Эколог",
["dolg"] = "Долг",
["freedom"] = "Свобода",
["zombied"] = "Зомбированный",
["actor_dolg"] = "Неизвестно",
["actor_freedom"] = "Неизвестно",
["arena_enemy"] = "Фарш",
["tushkano"] = "Неизвестно",
["trader"] = "Торговец"
}
-- Таблица бонусных сообщений
local bonus = {
"Жаль человека...",
"Эхх.. Хороший был парень",
"Ну а что поделать.."
}

function kill_npc(victim, who)

local view_location = math.random(1,2) -- коэффициент замусоренности радиоэфира. При 1 видим локацию "смертника", 2-не видим
local message_time = math.random(20,40) -- время задержки СМС
local bonus=bonus[math.random(table.getn(bonus))]

if victim and IsStalker(victim) then
local news = "Имя: "..victim:character_name().."\\nГруппировка : "..community[victim:character_community()].."\\nЛокация: "..level_name[level.name()].."\\n"..bonus..""
local news_2 = "Имя: "..victim:character_name().."\\nГруппировка : "..community[victim:character_community()].."\\nЛокация: ???\\n"..bonus..""
if view_location == 1 then
news_manager.send_tip(db.actor, news, message_time, nil, nil, 20000) -- отладка
news_manager.send_tip(db.actor, " loction "..view_location.." time "..message_time.." ", 1, nil, nil, 20000)
return 0
end
if view_location == 2 then
news_manager.send_tip(db.actor, news_2, message_time, nil, nil, 20000) -- отладка
news_manager.send_tip(db.actor, " loction "..view_location.." time "..message_time.." ", 1, nil, nil, 20000)
return 0
end
end
end

 

 

  • Полезно 1

Не соответствует правилам.

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

Здравствуйте товарищи!

Захотелось обучится lua. Начал с самого простого, с операторов. Изменил скрипт прототипа дин.новостей.

--Включены ли каналы?
local k_bandits = false
local k_dolg = false
local k_svoboda = false
local k_novise = true
local k_military = false
--local k_neizvesten = false

--Сообщения канала бандитов:
local k_bandits_text = {
"Гопчики пацанчики, сегодня таких лахов пресанули. Все артефакты нам выложили. Сейчас пойдём их хабары шманать.",
"Погодка сёне просто замечательная мля. Птички поют, солнышко светит, Пахан орёт. Ни жизнь а мечта.",
"Ну а что поделать1.."
}

local k_dolg_text = {
"Вы этих свободовцев в новых бронекостюмах видели? Эо ужас! Не учто долг по технике свободе начал отставать.",
"Вчера какой то гад весь хабар спёр, оставил только записку: Здеся бил бюрер. Не учто школьники по зоне гулять начали?",
"Ну а что поделать2.."
}

local k_svoboda_text = {
"Внимание!!! В скором времени будет рейд на заставу долга. Всем кто рад надрать задницу засранцам, прозьба подойти к лукашу.",
"Решил коноплю посжигать, сжёг сарай.",
"Ну а что поделать3.."
}

local k_novise_text = {
"Ребята! Помогите! Бандиты на ферме зажали.",
"Чёрт, военные совсем охренели, теперь ни за 500 ни за бутылку не пропустят. Пят штук им подавай. Черти.",
"Ну а что поделать4.."
}

local k_military_text = {
"Внимание всем отрядам находящимся на кардоне. Необходимо собраться у Кузнецова в 23.00 для получения дольнейших указаний",
"Всем отрядам на свалке слушать внимательно. На агропроме взорвали наш вертолёт, не простим обиды, умрём все до последнего!!!",
"Ну а что поделать5.."
}

time_ptb = 0 -- переменная промежутка времени

function time_update_spam() -- функция промежутка времени
local time = time_global() -- переменная времени
if time_ptb < time then
time_ptb = time + 30000 -- время через которое будет вызываться сообщение
truefalse()
update_spam()
end
end

function truefalse()
	if db.actor:object("bread") then 
		k_bandits = true
	elseif db.actor:object("conserva") then
		k_bandits = false 
		k_svoboda = true
	end 
end

function update_spam()
if k_bandits == true then
news_manager.send_tip(db.actor, (k_bandits_text[math.random(6)]), nil, nil, 30000) 
elseif k_dolg == true then
news_manager.send_tip(db.actor, (k_dolg_text[math.random(6)]), nil, nil, 30000) 
elseif k_svoboda == true then
news_manager.send_tip(db.actor, (k_svoboda_text[math.random(6)]), nil, nil, 30000) 
elseif k_novise == true then
news_manager.send_tip(db.actor, (k_novise_text[math.random(6)]), nil, nil, 30000) 
elseif k_military == true then
news_manager.send_tip(db.actor, (k_military_text[math.random(6)]), nil, nil, 30000) 
end
end 

 

 

Проблема в том что сообщение в истории видно, а на худ оно не показывается. Кто-нибудь с этим сталкивался?


Изменил [math.random(6)] на [math.random(3)] вроде заработало.


Простите, как изменить иконку сообщения?

В жизни много плохих моментов. Пытайся избавляться от них !

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

 

 

Простите, как изменить иконку сообщения?

db.actor:give_game_news("...text...", "ui\\ui_iconsTotal",Frect():set(633,326,133,133), 0, 3000)    ,

 

ui\\ui_iconsTotal - путь к иконкам.

set(633,326,133,133) - координаты иконки.

  • Спасибо 1
  • Полезно 1
Ссылка на комментарий
Простите за глупый вопрос, но кто-нибудь обьяснит как вызывать таймер АМК:

--старт таймера в реальном времени

function start_timer(name, delay, parameters)

Хочу вызвать:

amk.start_timer(name, delay, parameters)

но не знаю что написать в скобках вместо name, delay, parameters?

В жизни много плохих моментов. Пытайся избавляться от них !

Ссылка на комментарий
@PTB, name - имя таймера, delay - время в секундах, parametres - параметры, которые будут переданы в функцию срабатывания таймера.
  • Спасибо 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

Подскажите пожалуйста функцию, которая наносит хит всему живому, в опред. радидиусе от ГГ.

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

@Romann, вроде так:

 

 

local radius_sqr = 100 -- квадрат радиуса
local actor_position = db.actor:position() -- позиция актора
-- по идее, лучший вариант сделать биндеры на все живие объекты
-- и регистрировать их в определённую таблицу, которую будем 
-- перебирать и проверять, живой ли объект. Но обойдёмся этим:
-- перебор объектов в онлайне (медленно!)
for i = 1, 65534 do  -- апд: был 0, могло стукнуть актора 
    -- берём с локации
	local object = level.object_by_id( i )
	-- если объект по ид есть, то
    if object then
	    -- если макс хп у объекта не равно -1, значит объект живой
	    if object:max_health() ~= -1 then
		    -- если квадрат дистанции, между позицией актора и объектом меньше либо равен макс радиусу в квадрате, то ( distance_to_sqr быстрей вроде как)
		    if actor_position:distance_to_sqr( object:position() ) <= radius_sqr then
			    -- Наносим хит (ну тут можно брать и какие то определённые параметры)
			    hit = hit() -- создание объекта класса hit
			   hit.direction = vector():set(1,0,0) --дирекция по оси x
			   hit.draftsman = db.actor --нанёс урон актор
			   hit.impulse = 600 --импульс
			   hit.power = 1.45 --хит
			   hit.type = 2 --тип урона - выстрел
			   hit:bone("bip01_head") -- удар приходится на голову
			   -- наносим урон
			   obj:hit(hit)
			    -- ( с ) http://stalkerin.gameru.net/wiki/
			end
		end	
	end
end 

 

 

 

Ну поправите меня, если что вдруг.

Изменено пользователем Max_Raf
  • Спасибо 2

... А наше дело маленькое - с ружьём да по болотам. (с)

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

 

 

вроде так:

А вот тут:

   hit:bone("bip01_head") -- удар приходится на голову

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

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

Ребят, нужна консультация.

Использую расширение для "ума" НПЦ от xStream (xrs_ai ну думаю знакомо всем)

 

Так вот, нужно отключить такую фишку - НПЦ перетаскивают трупы подальше от костров.

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

Кто знает - отпишитесь...


 

 

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

Кость - параметр для hit(). Так что нельзя, только по одной.

  • Спасибо 1

Не соответствует правилам.

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

@Romann, только по одной вроде как. А вообще, поищи в той ссылке что указана в коментарии саму функцию hit(), и почитай о ней, будет полезно. 

  • Спасибо 1

... А наше дело маленькое - с ружьём да по болотам. (с)

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

 

 

отключить такую фишку - НПЦ перетаскивают трупы подальше от костров.

"удаление каждой схемы производится удалением файла, указанного в скобках", то есть (модифицированный xr_kamp.script)

  • Спасибо 1
Ссылка на комментарий
нужно отключить такую фишку - НПЦ перетаскивают трупы подальше от костров.

Это в xr_kamp.script, Там придется поудалять :

class "evaluator_see_deadman"

class "evaluator_can_move_deadman"

class "action_go_to_deadman"

class "action_moving_deadman"

 

В функции add_to_binder блоки :

 

action = this.action_go_to_deadman

action = this.action_moving_deadman

 

и все строки с :

 

"see_deadman"

"can_move_deadman"

"go_to_deadman"

"move_deadman"

 

Может что-то не доглядел, но ты поиском и сам найдешь.

Изменено пользователем Nazgool
  • Спасибо 1
  • Нравится 1
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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