Все посты %s в %S - AMK Team
Перейти к контенту

ОП 2.2: Обсуждение и прохождение


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

13 часов назад, Rutven сказал:

а где дальность выстрела править не подскажете?

gamedata\scripts\callbacks\callback_hit.script.

Скрытый текст

Screenshot.jpg

Для каждого типа патронов (подзаданий).

 

Изменено пользователем Купер

Поделиться этим сообщением


Ссылка на сообщение
1 час назад, Rutven сказал:

но этого куска кода вообще в файле не оказалось

Вот это, кстати, странно, такого быть не должно.

Сам квест, если не ошибаюсь, был добавлен в актуальном майском патче (12.05.2022). тынц.

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

Ну и по возможности, конечно, стоит так попробовать проверить.

Поделиться этим сообщением


Ссылка на сообщение
1 час назад, Alfa2012 сказал:

Жесть )))

Скрытый текст

Вот что ПМ животворящий делает! А ведь там, как минимум, на "коробочки" заглушка стоит:

if not weapon_against_btr(db.actor:active_item()) then -- Усиление бтр против всего, кроме отдельных стволов
     if self.health-health > 0.1 then
             health = self.health-0.1
       end
 end

Ох, затейники!

 

Изменено пользователем Купер

Поделиться этим сообщением


Ссылка на сообщение
16.09.2022 в 16:57, BozSu75 сказал:

Не смог победить вылет.

В мод-паке id_cleaner.script как выглядит?
В оригинале именно Юпитер добавлен в исключения при работе скрипта.

Скрытый текст
local skip_levels={
    ["jupiter"]=true
}
....
if not is_skip_level(lvl) then

 

 

Изменено пользователем Купер

Поделиться этим сообщением


Ссылка на сообщение

@BozSu75 ,

Скрытый текст

Просто в порядке предположения было, по логу, выше автор вроде отписался, что не должно бы из-за этого. В идеале, ещё пару сэйвов бы. До перехода на Юпитер и в процессе. Чтобы проверил кто по возможности.
gamedata\scripts\...

 

Поделиться этим сообщением


Ссылка на сообщение

@волк79 , именно так.
bind_stalker.script:

Скрытый текст
function stalker_binder:use_callback(obj, who)
...
-- проверяем, что объект это зомби
	if string.find(section,"zombie") then
		if not talk_zombies[section] then
-- и запускаем обработчик
			sak.zombie_checkup()
		end
	end
...
end

sak.script:

Скрытый текст
function zombie_checkup()
	if db.actor ~= nil then
		if math_random() > 0.7 	and not _G.Inventory:on_belt("af_serpantin") then
-- наносим хит ГГ
			local a=math_random()
			local h = hit()
...
-- и одновременно запускаем счётчик для достижения <-!!!
			archievements.acv_count_event("acv_fzom", 100, "acv_fzom") -- <-!!!
		end
	end
end

 

 

  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение
15 часов назад, dima323 сказал:

gamedata\textures\ui\ui_font_letter_18_crossed_1024_west.ini

Вот здесь: gamedata\textures\ui\ (либо в .db архивах, либо в распакованной gamedata отсутствует файл

ui_font_letter_18_crossed_1024_west.ini. А вот почему?..

Поделиться этим сообщением


Ссылка на сообщение

По поломке снаряги и оружия. death_manager.script.

Исходная таблица минимаксов по группировкам:

local conditions = {...)

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

function drop_manager:get_conditions_add() (-5 на каждый уровень сложности)

 

 

 

  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение

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

Поделиться этим сообщением


Ссылка на сообщение

@evgecha.yakt , да любой вменяемый, где рекламы поменьше. "Временных" - туча и облака :biggrin:.

Просто в качестве примера: раз, два, три, четыре, пять... и до бесконечности :biggrin:.

 

По сабжу. Ищи прежде всего правку, которая затрагивает snp.script. Непосредственно вот это:

function kotobegemot1_done()
    lost_item("snp_note1")
se_obj = create("n_inventory_box_dt1",xyz(-198.42,0.04,64.85),26867,1374)
map_spot(se_obj.id,"crlc_mdl","kotobegemot1_treasure_0")
end

 

3 часа назад, evgecha.yakt сказал:

[LUA] d:\games\op-2.2\gamedata\scripts\snp.script:754: attempt to index global 'se_obj' (a nil value)

Попытка получить объект, секция которого не определена (равна nil).

 

з.ы.: под снос, разумеется.

  • Спасибо 1
  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение

Угум. Похоже.
С учётом того, что _g.script добавлено какой-то правкой:

Скрытый текст
-- Вместо alife():create() все варианты
function create( ... )
    local args = { ... }
....
    elseif string.find( args[ 1 ], "n_inventory_box_dt1", 1, true ) then
		local box_metka = ai:create(...)
		if box_metka then
			local text = ""
			local sys_ini = system_ini()
			local box = repair_check.read_string_if_exist( sys_ini, args[ 1 ], "custom_data", nil )		
			
			local ini = ini_file( box )
			local n = ini:line_count( "spawn" )
			for i = 0, n - 1 do
				result, id, value = ini:r_line( "spawn", i, "", "" )
				text = "%c[254,243,122,11]".. text .. get_inv_name( id ).. "\\n"
			end
			--* ставим метку на тайник
			map_spot( box_metka.id, "treasure_2", "%c[50,1,150,1]".."ТАЙНИК КОТА БЕГЕМОТА: \\n".. text .."" ) 
			--* выдаём сообщение о событии    
            sms("%c[sms_red]"..translate("Получена информация о тайнике"), 2, "net", 10000, nil, [[sms\net\treasure_found]])
	end
  ....
end

Т.е.: при создании объекта, по идее, мы уже автоматически(см. выше)...

Скрытый текст
function kotobegemot1_done
    (lost_item("snp_note1")
--* ...ставим на него метку (и остальное, добавляемое правкой), а также выдаём сообщение об этом.
    se_obj = create("n_inventory_box_dt1",xyz(-198.42,0.04,64.85),26867,1374)
--* map_spot(se_obj.id,"crlc_mdl","kotobegemot1_treasure_0")
end

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

  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение

Дальнейшие рассуждения, касающиеся обсуждения Сборки Злобного Читера переехали... в тему Сборки Злобного Читера, как ни странно. Что относится к оригинальному ОП, а что к Сборке разбираться нет желания.

  • Спасибо 1
  • Нравится 2
  • Согласен 1

Поделиться этим сообщением


Ссылка на сообщение
6 часов назад, Джон69 сказал:

как проверить контрольные суммы патча?

1. Устанавливаем саму игру и актуальный патч.

1.png
2. Скачиваем со страницы загрузки предоставленный файл с хэш-суммами и кидаем его в папку с модом.
3. Скачиваем утилиту для проверки хэш-сумм и устанавливаем её.

2.png
4. Клик ЛКМ на файле с хэш-суммами в папке мода выведет в отдельном окне утилиты результаты проверки целостности полученных и установленных файлов.

3.png

  • Спасибо 1
  • Нравится 1
  • Полезно 2

Поделиться этим сообщением


Ссылка на сообщение

Вот вы "угадайщики" :biggrin:.

local medicals = {
	"suvorotka",		--* Сыворотка
	"vodka",		--* Водка "Буратино"
	"antirad",		--* Антирадиационные препараты
	"medkit",		--* Аптечка
	"medkit_army",		--* Армейская аптечка
	"medkit_scientic",	--* Научная аптечка
	"energy_drink",		--* Энергетический напиток "S.T.A.L.K.E.R."
	"bandage",		--* Бинт
	"antizombie",		--* Антизомбин
	"drug_booster"		--* "Геркулес"
}

 

  • Нравится 1
  • Полезно 3
  • Смешно 1

Поделиться этим сообщением


Ссылка на сообщение

Парни, почитайте, пожалуйста. Для вас же старались. Там ничего сложного. Детский сад надоел, ей-богу.

  • Согласен 2
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

Если про ОП-ские мухоморы, а не пофлудить, то:
grib_respawn.grib_respawn()

Скрытый текст
function grib_respawn()
    local time_table=game.get_game_time():get_table()
    if time_table["hour"] == 22 then
        if not has_info("info_respawn_grib") then
            del_mushroom()
            spawn_grib()
            give_info("info_respawn_grib")
        end
    end
    if time_table["hour"]>22 then
        disable_info("info_respawn_grib")
    end
end

По цифре в функции понятно условие, хочется надеяться.

  • Спасибо 1
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение
1 час назад, bortmeh сказал:

то что выпадает с врага не обязательно совпадает с тем что он имеет. Там death_manager.script если не ошибаюсь за это всё отвечает

Именно так. Один большой костыль ещё со времён оригинала. То, что должно выпасть с NPC, рассчитывается в момент его смерти в death_manager.script. В ОП ещё дополнительно свои ограничения добавлены.
Вот это вот всё:

        if iAmWeapon[rel_item:clsid()] and not unique_wpn[section] then
...
        if iAmMagazinedWeapon[rel_item:clsid()] and not rel_item:section():find("^wpn_binoc") then

и далее по тексту. Согласно настройкам табл. выше.

Поделиться этим сообщением


Ссылка на сообщение
Скрытый текст
local respawn_type=ui_mm_opt_creator.get_number_user_param("respawn_type",1)
-- частый респаун
-- 14-16 часов между спавнами
  if respawn_type==2 then
    idle_time:setHMS( math.random(14, 16), 0, 0)
-- редкий респаун
-- 46-48 часов между спавнами
  elseif respawn_type==3 then
  local hours=math.random(46, 48)
    idle_time:setHMS( hours, 0, 0)
-- стандартный респаун
-- 32-34 часов между спавнами
  else
    idle_time:setHMS( math.random(32, 34), 0, 0)
  end

 

Для смартов

local fast_respawn = ui_mm_opt_creator.get_bool_user_param("fast_respawn") -- опция частого респавна для игры
-- частый респавн
-- 10-12 часов между спавнами
  if fast_respawn then
    idleTime:setHMSms(math.random(10,12),0,0,0)
-- обычный респавн
-- 20-24 часов между спавнами
  else
    idleTime:setHMSms(math.random(20,24),0,0,0)
  end

 

  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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