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

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


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

Как получить группировки которые может принять гулаг? Как вариант получать юзердаты всех объектов гулага и по ним уже вычислять(да и не совсем то это будет), но может как попроще можно. Парсить кастом дату смарта тоже не всегда будет успешно, т.к. в большинство не пишут communities, а указывают в скрипте.

local g = alife():object( alife():object( victim:id() ):smart_terrain_id() )

Так у меня не получается подступиться к свойствам гулага, при попытке вызова g.gulag вылет attempt to index local 'g' (a nil value).

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

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

*** RESET [234 ms]
* MEMORY USAGE: 398744 K
! Unknown command:  :LAST INTO ID for [%s] = [%s], max [%s]

Не пойму почему это, неизвестная команда, если в скрипте xr_sound есть вот такой код

printf("LAST INTO ID for [%s] = [%s], max [%s]", theme, last_table[snd_table.into_id], snd_table.into_max)
	return last_table[snd_table.into_id], snd_table.into_max
end

Врде не достает, но иногда это приводит к вылету, при загрузке сохранения.

Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

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

Все printf() сразу сносить нафиг.

 

Карлан, не надо создавать такие монструозные строки.

 

local strn, strn_id = false, 65535
if obj_id then obj = alife():object( obj_id ) end
if obj then
	if obj.smart_terrain_id then strn_id = obj:smart_terrain_id() or 65535 end
	if strn_id and strn_id ~= 65535 then strn = alife():object( strn_id ) end
	if strn then
		if strn:clsid() == clsid.smart_terrain then
			local g = strn.gulag
...
Ссылка на комментарий

@Dennis_Chikin, в смысле сносить, это не я так написал, это оригинал. Так идет в самом сталкере.

Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

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

 
@Хемуль36рус, у тебя принтф барахлит это же ясно, смотри эту функцию и правь ошибки, в оригинале она так выглядит, так че мозги не парь.

 

function printf(fmt,...)
log(string.format(fmt,...))
end
Изменено пользователем Карлан
Ссылка на комментарий

Мало ли что там идет... Видим printf() - сносим.

 

Впрочем, подозреваю, что у тебя еще где-то аналогичный вывод в лог типа get_console(): и т.д.

Так вот то, что выводится в консоль таким способом - это консольная команда. Их немного, осмысленных еще меньше.

Остальное будет как раз "! Unknown command: ..."

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

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


Как большой любитель изучать аномальные зоны и следовательно, артефакты, которые по сути "появляются около этих аномалий", я не однократно интересовался, искал в гугле, работает ли в Сталкер Тень Чернобыля респавн артефактов. 
Я просматривал все аномалии в misc, и в каждой аномалии находил данные строки: 
К примеру: 
---------------- 
;рождение артефактов во время срабатывания 
spawn_blowout_artefacts = on ;on 
 
artefact_spawn_probability = 0.14;0.07 ;вероятность, что во время срабатывания аномалии будет рожден артефакт 
artefact_spawn_particles = anomaly2\gravi_anomaly_shield_00 ;партиклы, которые отыграются на месте рождения артефакта (опционально) 
artefact_born_sound = anomaly\anomaly_gravy_hit1 ;звук, который отыграются на месте рождения артефакта (опционально) 
----------------- 
Я всячески манипулировал и менял значения на огромные, я даже таймфактор увеличивал, и ждал несколько игровых дней на другой локации, возвращался на исследуемую, но НИ ОДИН артефакт не отреспавнился, сколько бы я не ждал.Как я понял, что-то ограничивает возможность респавна артефактов, и/или разработчики специально вырезали это, скорее всего это в каком-то скрипте.К примеру, в аномалии zone_mosquito_bold есть описание новой зоны zone_mosquito_bold_noart, идентичной оригиналу(:zone_mosquito_bold), только с отключённым респавном артефактов в оффлайне,я удалял и заменял эти зоны, думая что в all.spawn возможно есть и они, но это ничего не поменяло, ни один артефакт не отреспился.К вышесказанному прошу помочь найти скрипт, влючающий респавн артефактов по описанию респавна в самих зонах, или подсказать другой способ спавна артефактов,естесственно, кроме выбросов.Заранее спасибо, приношу свои извинения за отвлечение на очередной боян.



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

http://2.firepic.org/2/images/2014-05/19/41j4kayxsuxl.jpg
 http://2.firepic.org/2/images/2014-05/19/f8zbh9ryx3zl.jpg
http://2.firepic.org/2/images/2014-05/19/er5ahn8beg5p.jpg
Я могу запустить сюда полчища псевдогигантов, результата ноль.Я один раз сидел полчаса просто спавнил монстров в аномалию, пока игра не зависла от количества разбросанных обьектов, ни одного артефакта. 
 
Извините за огромные фото, я итак пережал более чем в 2 раза.

Я специально отредактировал эту телегу, убрав под спойлер и отключив отображение картинок. Не надо возвращать в исходный вид. Читаем правила. dc

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

Карлан,

65535 - это значит, что покойник не под смартом. Если это было до того, как дернули smart_terrain.on_death( npc:id() ) - значит он там и не был.

 

Maxmanishe,

Так и есть. Аномалии артефакты не спавнят. Более того, попытка включить останки от этой роскоши даст вылеты.

 

Следует смотреть какой-либо из модов, где спавн артефактов реализован каким-либо другим путем.

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

@Dennis_Chikin,

А есть ли способ спавна артефактов иным, нежели выбросом способом, хоть каким-то образом похожим на описание респавна в аномалии, к примеру, попадание туда существа с последующим спавном артефакта?

Как я понял, в амк моде не реализован респавн артефактов?

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

Maxmanishe, по поводу респавна артов - смотри мод Freeplay Start.

Неважно – сколько у тебя друзей. Важно - сколько из них помогут тебе в трудную минуту и сколько вспомнят о тебе когда им хорошо.

"Худ" и "Умное выпадание частей монстров" для Народной солянки

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

Возможность, безусловно, есть. Либо на основе se_zones.script, либо на основе "превращения артефактов в аномалиях". И это когда-нибудь надо сделать.

Но объем работы - не маленький.

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

@Maxmanishe, по поводу респавна артов смотри артефакт респавнер от кстн, там все нормально сделано. Есть еще куча других модов где есть подобное, но возьми лучше этот мод. По поводу конфигового респавенра, на своей практике если аномалия могет спавнить арты, то она один рандомный арт под собой вываливает при выходе в онлайн и больше этого никогда не сделает, дефакто в оригинале вообще нету респавна артефактов.

 

@Dennis_Chikin,  да я немного не те переменные юзал, вот и не получалось. Вопрос про группировки все еще актуален, если гулаг может принять несколько группировок, как узнать какая там сейчас именно тусуется. Опять же нужен(желательно) способ без перебора 'Object' гулага. Пока я делаю так, получаю таблицу неписей под этим гулагом и проверяю у каждого группировку, коих большинство, тех и гулаг я считаю, кто предложит способ получше, тому поклон до хруста в позвоночнике. Мой способ работает хорошо, но может есть че лучше.

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

@Dennis_Chikin, f поподробнее? в скрипте smart_terrein есть вот такое, тоже тогда не нужно?

for level_name, l in pairs( level_stats ) do
		printf( "Level %s :", level_name )
		printf( "    Jobs in all smart terrains : %d",       l.jobs )
		printf( "    Jobs in available smart terrains : %d", l.jobs_in_avail )
		printf( "    Occupied jobs : %d",                    l.occupied )

		jobs          = jobs          + l.jobs
		jobs_in_avail = jobs_in_avail + l.jobs_in_avail
		occupied      = occupied      + l.occupied
	end

	printf( "All levels:" )
printf( "    Jobs in all smart terrains : %d",       jobs )
	printf( "    Jobs in available smart terrains : %d", jobs_in_avail )
	printf( "    Occupied jobs : %d",                    occupied )

	printf( "--------------- Smart terrains statistics END ------------------------" )
end

Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

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

именно так:

 

function stat() end -- оставлено на случай, если кто-то зачем-то решит вызвать.

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

@Comador,

Я нашёл этот скрипт, но не понял как его подключить, он привязан к проверке АМК или ОГСМ выброса.Я буду очень признателен, если вы поможете мне.

http://rghost.ru/55416819

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

Ребята, у меня такое дело.

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

%set_enemies(sid)%

.

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

Подскажите, как обойти данную ситуацию.

Пишу мод с неповторимым сюжетом.

Нужны "модельеры"

Заинтересованным писать в ЛС

J.A.A..gif

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

Механизм торговли (формулы, по которым рассчитывается стоимость купли-продажи) глубоко в движке зашиты, или скриптом сделаны? Я что-то не смог найти.

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

J.A.A., "по умолчанию" если кто-то видит врага, то срывается в бой.

Варианты - либо перенести "овражение" на самый последний момент, либо смотреть, как сделана сценка с бандитами на свалке в оригинале.

 

darklordveider, конфигами. В кофигах предметов - цена, в system.ltx - общие коэффициенты, в профилях неписей - файлы с коэффициентами "попредметно", которые перекрывают дефолтовые.

 

Считается - движком.

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

Считается - движком.

Спасибо.

Хреново =( Была интересная идейка по торговому балансу, но для этого нужна другая формула зависимости от состояния вещи.

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

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

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

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

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

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

Войти

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

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

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