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

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


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

Появился вопрос:

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

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

Редактирование приоритетов в файле "rx_weapon_mgr" в этом не помогает.

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

 

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

 

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

Kondr48

Менеджер из OGSE.

В теме не указано, что вопросы можно только по "чистому" ТЧ задавать. Да и проблема как раз, по сути, из-за каких-то ограничений или отсутствия параметров для НПС на классе бинокля в чистой игре.

А правка на возможность стрельбы на классе бинокля уже давно появилась для чистой игры (ещё в 2009-11 гг) и не связана с "ai_aditions".

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

Привет! Уважаемые, можно ли в окне торговли запретить отображение экипированных вещей? (комбез, оружие, артефакты, ну и т.д.) заранее спасибо.

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

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

Как прицепить на хлеб рандомную радиацию?

Вот так: 

function use_food_bread_rad()   --- использование радиоактивного батона
	if db.actor:object("food_bread_rad") ~= nil then
		db.actor:eat(db.actor:object("food_bread_rad"))
		db.actor.radiation = lua_random(0.01, 0.1)
	end
end 

 

не работает...

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

@CiBrAiKeR, Один раз вызываешь? Ибо math.random() возвращает псевдослучайные числа, то есть в первый раз всегда будет возвращаться одно и тоже(поправьте, если бред несу).

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

Что значит псевдослучайные? Вполне себе случайные. Я не знаю, как эта функция работает с дробными числами, использовал только с целыми.

CiBrAiKeR, попробуйте так:

local rnd = math.random(1,10)
db.actor.radiation = rnd/100
Изменено пользователем Kondr48
Ссылка на комментарий

 

 

local rnd = math.random(1,10) db.actor.radiation = rnd/100
Неа, я уже так пробовал, ниче не происходит, ни вылета ни ошибки в консоле...

 

Решил проверить - вырубил функцию, а в свойствах самого батона поставил eat_radiation = 0.05 - так работает... :blink:

Как заставить LUA выдавать рандомную порцию от 1% до 10% ?

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

@Kondr48, А вот так псевдослучайные, даже загуглил.

  • Спасибо 1
Ссылка на комментарий

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

CiBrAiKeR, где-то Вы косячите.

Код:

for i = 1, 10, 1 do
  log1("Рандомное число_"..i.." = "..tostring(math.random(1,10)/100))
end
[02.02.17 20:36:45.763] Рандомное число_1 = 0.050000000745058
[02.02.17 20:36:45.763] Рандомное число_2 = 0.0099999997764826
[02.02.17 20:36:45.763] Рандомное число_3 = 0.029999999329448
[02.02.17 20:36:45.763] Рандомное число_4 = 0.079999998211861
[02.02.17 20:36:45.763] Рандомное число_5 = 0.050000000745058
[02.02.17 20:36:45.763] Рандомное число_6 = 0.029999999329448
[02.02.17 20:36:45.763] Рандомное число_7 = 0.070000000298023
[02.02.17 20:36:45.763] Рандомное число_8 = 0.090000003576279
[02.02.17 20:36:45.763] Рандомное число_9 = 0.029999999329448
[02.02.17 20:36:45.763] Рандомное число_10 = 0.070000000298023

 

 

Изменено пользователем Kondr48
  • Спасибо 1
Ссылка на комментарий
for i = 1, 10, 1 do

попробовал ваш вариант

 

function use_food_bread_rad()   --- использование радиоактивного батона
	local radiation = db.actor.radiation
	if db.actor:object("food_bread_rad") ~= nil then
		db.actor:eat(db.actor:object("food_bread_rad"))
		for i = 1, 10, 1 do
		radiation = math.random(1,10)/100
	end
	end
end 

Ничего не происходит... :(  А если присваиваешь точное значение в самом профиле, к примеру 0.05, то работает... :wacko:

 

 

 

Неужели нельзя задать диапазон? Такого быть не может... 

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

Мда.

function use_food_bread_rad() --// Откуда вызывается? Из колбека на использование предмета? Или вообще на апдейте? Если на апдейте - убирайте это кощунство =)
 if db.actor:object("food_bread_rad") ~= nil then --// Тогда это зачем?
  db.actor:eat(db.actor:object("food_bread_rad")) --// И это?
  db.actor.radiation = math.random(1,10)/100
 end
end 
  • Нравится 1
Ссылка на комментарий

 

 

Откуда вызывается?
Из файла vergas_medical_elastic.script по адресу gamedata\scripts\vergas\

 

 

 

Тогда это зачем?

 

 

И это?

 

Вот такая же функция, только выше:

function use_antirad()
	if db.actor:object("antirad") ~= nil then
		db.actor:eat(db.actor:object("antirad"))
		sleep_manager.add_sleepiness(40)
		eff_antirad()
		--timers.start_timer("antirad_timer",4,"vergas_medical_elastic.end_antirad_timer()")
	else
		sak.send_tip("А ведь нету антирада", "Тудыть твою железа мать!", 1, 10, "g_g", "sak", "red")
		vergas_lib.s_play([[device\antirad_no]],1)
	end
end 

 

 

 

Я её просто взял как образец...

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

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

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

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

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

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

Войти

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

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

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