[CoP] Ковыряемся в файлах - Страница 283 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

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


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

Здравствуйте!

Как работает скрипт маячка в модах для ЗП? Точнее, какая функция отвечает за мгновенную отметку в КПК?

 

 

Как работает скрипт маячка в модах для ЗП?

 

Спавн объекта ( маячка ) и установка на него метки

 

local object = alife():create( "Секция_маячка",  position,  lv_id,  gv_id )

level.map_add_object_spot_ser( object.id,  "текстура_метки",  ""  )
 
Текстуру метки прописываете в 
gamedata\configs\ui\map_spots.xml и
gamedata\configs\ui\map_spots_16.xml

Метка появилась, но на актере и совершенно не хочет ставиться по ид объекту.

@ммихаилл

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

Хотя попытаться подтянуться к Кашпировскому могу попробовать и погадать, что метку ты поставил все-же на актера или объект находится в инвентаре актера.

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

Многоуважаемый, UnLoaded, код я не прилогаю по причине того, что ничего нового я в него не вписывал: имя функции, сама функция от makdm, кроме первой строки, и в итоге один end. В качестве объекта я брал ид физического объекта, то бишь рюкзака, потом ид любого рестриктора и тд. и тп. В общем перебрал все возможные варианты, однако каждый раз метка ставилась именно на актёра.

UnLoaded, не считай себя умнее других, и Кашпировского лучшее не трогай - не сахар у него нынче время ;)

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

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

@ммихаилл

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

 

P.S. А откуда информация про сахар\не сахар у Кашпировского ? :)

Изменено пользователем UnLoaded
  • Согласен 1

@UnLoaded, то есть читать мои сообщения не охота? Пожалуйста.

 

function new_treasure_map(actor, npc, p)

level.map_add_object_spot_ser( my_real_not_actor_id_object,  "new_treasure",  ""  )

end

 

То же самое, только ввиде кода - того же самого, что и был посоветан.

@ммихаилл

Хитрите, уважаемый... Тока зачем?

Вы же прекрасно должны понимать, что Ваша проблема не в собственно движковой ф-ции установки отметки на объекте(которая отлично работает), а в том как Вы получаете этот самый my_real_not_actor_id_object

Давайте остальной код в студию....

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

@ммихаилл, метка ставится по ID объекта. Ну а раз тебе добавить больше нечего, то

 

 

UnLoaded, не считай себя умнее других
не корректное высказывание обернувшееся против тебя.

Чтобы поставить метку по ID объекта нужно сначала получить этот ID. Если твой рюкзак это спавн-элемент, то в его конфиге прописывай ID. Если статический объект - поставь в его центр спейс-рестриктор,пропиши ему ID и ставь метку на него.

  • Нравится 2

С#Н#Т#Р# (CoP 1.6.02)

@Jeka81, именно так я всегда и поступаю. И в качестве id-меток я брал и рестрикторы, и физ. объекты, да и просто ид сквада. Все id абсолютны работоспособны, так как, при написании сюжета, я использовал их в качестве квествых отметок.

function new_treasure_map(actor, npc, p)

     level.map_add_object_spot_ser( my_real_not_actor_id_object,  "new_treasure",  ""  )

end

Ну и как ты здесь получаешь id объекта, или передаешь его сюда?

 

Вот получение по имени секции для уже заспавненного объекта:

function set_mspot()
	for a=1,65534 do --// перебираем все айдишники
		local obj = alife():object(a) --// получаем обж
		if obj and obj:section_name() == "my_real_not_actor_id_object" then --// получили какой-то обж, смотрим имя. если наше
			level.map_add_object_spot_ser(obj.id, "new_treasure", "Рюкзак с хабаром") --// ставим метку
			break --// выходим из цикла
		end
	end
end
 

10.png

Товарищи, выручайте.
В теме справочника Вылетов писал про такой лог:


FATAL ERROR
 
[error]Expression    : assertion failed
[error]Function      : CResourceManager::_CreateTexture
[error]File          : D:\prog_repository\sources\trunk\Layers\xrRenderDX10\dx10ResourceManager_Resources.cpp
[error]Line          : 582
[error]Description   : _Name && _Name[0]


"Лечение" я предложил, но это "лечение" не выход, особенно когда ресурсы уже позволяют тянуть DirectX11, а какого-то ляда нельзя. Как уже писал в теме, вылет этот получаем при переходе на N-ную локу. С чем связано - не знал, но погуглив основательно, нашёл следующее:
* "Суть такой ошибки в недостатке текстур на которые ссылаются .thm файлы" -  http://www.amk-team.ru/forum/index.php?showtopic=5533&p=580128

* Аналогично, но с другого источника - http://translate.google.ru/translate?hl=ru&sl=en&tl=ru&u=http%3A%2F%2Fофициальный сайт%2Fmain.php%3Ft%3Dcommunity%26s%3Dforums%26s_game_type%3Dxr3%26thm_page%3D11%26thm_id%3D5125%26page%3D3%26sec_id%3D18

 

Итак, инфа есть, приступил к ликвидации вылета. Сразу взялся за строки типа:

! auto-generated bump map: ston\ston_beton_ch_09_bump

! auto-generated bump map: ston\ston_beton_ch_09_bump#
! Can't find texture 'terrain\terrain_chulim_average_mask'
! Can't find texture 'sky\sky_clouds1'
! Can't find texture 'sky\sky_clouds1#small'

 

 

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

Не подскажете, как дальше быть? Может, из за чего ещё этот вылет может случаться?

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

 

 

Вот получение по имени секции для уже заспавненного объекта

Зачем такие жертвы?

В ЗП практически у каждого объекта есть story_id

Получаем id по story_id:

 

object_id = get_story_object_id( story_id )

 

 

 

Не подскажете, как дальше быть?

Вылет связан с "кривым" THM файлом к текстуре, а не в текстуре.

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

Ошибка происхходит, когда вы в свою gamedata тащите, что-то из чужих модов и аддонов.

Для того, чтобы найти ошибку я делал так.

Убираю из gamedata всё содержимое папки  texture

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

Если вылет произошёл, то "битый файл" в это папке.

Удаляю все THM файлы. Все текстуры прогоняю через SDK и делаю для них новые THM файлы.

Вылет пропадает и можно играть на динамике.

  • Спасибо 1
  • Полезно 2
так как, при написании сюжета, я использовал их в качестве квестовых отметок.

Вон оно, в чем дело-то... Вы попутали storyID с ID: первое - это сюжетный идентификатор, уникальное число которое задается разработчиком, а второе - это идентификатор объекта, то-же уникальное число, но присваивается объекту движком в момент создания объекта.

Установка метки на объект с использованием storyID будет выглядеть примерно так:

local ser_obj = alife():story_object(число из game_story_ids.ltx) -- получаем объект по storyID
if ser_obj then
level.map_add_object_spot_ser(ser_obj.id, "new_treasure",  "") -- ставим метку
end

Уточню сразу:  если my_real_not_actor_id_object это строковая константа из game_story_ids.ltx, типа

004 = "Escape_tutorial_wounded"

то в вышеуказанной ф-ции story_object(...) надо использовать именно числовое значение, незначащие нули не обязательны.

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

Для спавн-объекта можно добавить в кастом дату:

[story_object]
story_id = tvoi_luboi_story_id

 

А потом использовать его для установки метки. Объектом может быть и спейс-рестриктор, и инвентарный ящик, и левел-ченджер и аномальное поле.

Дошли руки исправить предыдущий лог, получил другой:

stack trace:
 
0023:06910203 xrRender_R4.dll

После 023:цифры каждый раз разные. Поглядел, что люди пишут по этому поводу - ничего хорошего, только переходить на настройки графики пониже. Но это не дело. Может, кто что подсказать может?
Изменено пользователем Сталкер Лом

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

Доброго времени суток.

Не удается распаковать all.spawn  MISERY 2.1.1. Отпишитесь, пожалуйста, кому это удалось\удавалось.

Изменено пользователем Alex-2020

 

 

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

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

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

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

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

Войти

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

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

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