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

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


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

alkogolik, не говори ерунды.

И как это простейшаяя строка для установки метки соотносится с "навороченностью скриптера" и тем более как может ввести в заблуждение?

Куда ж еще проще и понятнее об'яснять/разжевывать?

 

То, что тобою насоветовано может и работает на 99.9%, но и 0.01% кому-то непотребна :grin2: и твой вариант схож с "чесать пяткою ухо" ... и как раз для "перевороченных" скриптеров (ИМХО).

Причем, тобою же насоветовано использовать именно те же строки, только в обрамлении amk-скрипта, да еще и с извратами (иначе не назовешь) по итерации по всему диапазону игровых идентификаторов, с созданием "своих" секций для об'ектов-меток. Ну прямо - "простенько и со вкусом" ... :crazy:

 

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

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Artos,

Только когда точка рестриктора окажется внутри актора - сработает.

Хм...вообще в конце вот этой строки

rewrite_restrictor(se_obj, custom, 15.0)

указан радиус срабатывания...

   УРАГАН.png

                 Краткий гид по моду Тайные Тропы 2

                                      ПАРТИКЛЫ TERRA

 

 

 
_Val_, однако в твоем ответе отсутствовали какие-либо коды/пояснения по rewrite_restrictor, что для Daemonion и других делало достаточно неясным/бессмысленным твой совет.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

 

В вопросе ничего не говорилось про убирание меток в зависимости от каких-то сюжетных условий

 

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

 

rewrite_restrictor(se_obj, custom, 15.0)

 

_val_ показал нормально, лишь только не подробно, но вы цитировали, видно не зная того, что это и является радиусом дейстсвия. Радиус в шейпах сразу затронули, что для обычных рестрикторов применяется в all.spawn. Дык поясните человеку, он же просил. :D Вы же спец, а люди этого хотят!!!!!!

 

 

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

alkogolik, что-то треп идет, а не конструктивный разговор ...

_Val_ дал совет на вопрос Daemonion, т.е. когда вообще ничего неизвестно было про rewrite_restrictor. Поэтому не путай один вопрос с другим, появившимся познее.

И как же я не пояснил как поставить метку на рестриктор? Что еще требуется, чтобы тебе и "человеку" стало ясно. Тупо привести код? Ну так вот с твоими значенияями для типа и описания:

function spawn_himik_sr()
  local se_obj = alife():create("space_restrictor",vector():set(169.09851074219,-2.1591918468475,33.848369598389),324504,2885)
  local custom = "[logic]\n"..
  "active = sr_idle\n"..
  "[sr_idle]\n"..
  "on_actor_inside = {+sidor_stvol_start} nil %=buusty_dialog.himik_prygorshnya_spawn =spawn_restrictor.babuin_bratva_spawn_sr%"
  rewrite_restrictor(se_obj, custom, 4.0)
  --/ ставим метку на рестриктор
  level.map_add_object_spot_ser(se_obj.id, "crlc_big", "Примерное расположение того сего..")
end

 

 

Добавлено через 10 мин.:

alkogolik: Вопрос-то понятен, т.к. из условия видно, что нужно найти место, а то, что метка должна остаться, тут решит сам BUUSTY, т.к. функцию отменить, не составит труда даже для обычного модмейкера, и тем паче сразу показать, чем ждать дополнительный вопрос.

Довольно странный подход, засорять топик тем, о чем не спрашивалось, да еще и вариантом, который не выдерживает никакой критики.

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

Можно и попроще, запомнив ID помеченного рестриктора, и при необходимости, найти его по запомненному идентификатору и или снять метку или вообще удалить рестриктор (за ненадобностью).

Задачка то простенькая даже для начинающих модмейкеров ...

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

alkogolik,

Благодарю, все работает! :ok5:

54b194d873636283e39f658d25f99a72.jpeg

 

Спавн предмета через диалог и через этот же диалог функция на "повесить метку" на данный предмет.

 

Artos,

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

Для меня это "сложный вопрос". С метками, до сих пор не сталкивался, поэтому вот уже третий день мучаюсь (мучался) с вопросом "как же все-таки повесить эту чертову метку на рестриктор". Прежде чем задать здесь вопрос, я перелопатил кучу топиков (АМК, как назло, был недоступен), перечитал кучу постов, с абсолютно пустыми ответами - вопросами, и потратил кучу времени на это, правда. А вот мод не продвинулся ни на йоту, из-за такого, казалось бы, пустяка.

Мне просто в эти тонкости нет большой необходимости погружаться с головой. Можно обладать минимумом знаний в вопросах скриптования, и делать интересный сюжет. И дело не в том, что мне лень этим заниматься, вопрос в другом - сколько времени на это уйдет.... С одной меткой три дня выходных, а если дальше в таком же духе изучать/постигать азы скриптования? Релиз мода можно будет просто похоронить (примеров подобных ситуаций масса).

P.S. Так что, пусть даже метод alkogolikа спавна метки и через... "одно место", но зато он работает (проверено) и мне этого вполне достаточно, чтобы двигаться дальше.

С уважением. Buusty.

 

Artos, Вот, с этого и нужно начинать, только метка вроде как не удалится, после использования рестриктора, аль нет? :crazy:

alkogolik, а что подразумевается под "после использования рестриктора"? И что под "удалиться"?

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

 

Ну и для вашего развития, дам пищу для размышлений:

Чтобы рестриктор снял сам с себя метку при вхождении в него актора, то достаточно указать в его логике вызов функции (или даже одной строки в уже вами заданных функциях), которая и снимет ранее установленную метку. Функция также самая простая, и то, что ее вызовет сам рестриктор - снимает необходимость даже запоминать его ID.

Т.е. в ту же spawn_restrictor.babuin_bratva_spawn_sr добавить:

function babuin_bratva_spawn_sr(actor, obj)
  level.map_remove_object_spot(obj:id(), "crlc_big") --/ снимаем метку с рестриктора
  --/ ... ваш код
end

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

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

P.S. Так что, пусть даже метод alkogolikа спавна метки и через... "одно место", но зато он работает (проверено) и мне этого вполне достаточно, чтобы двигаться дальше.
Хочу поздравить, но Ваше высказывание абсолютно утопическое.

Через "одно место" к этому месту и приведёт.

Поверь дружище, проверено опытом. И, снова поверь, не малым.

Я ни в коем случае не берусь обсуждать методы решения. Я "осуждаю" твоё отношение к проблеме, выраженное в цитате.

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

Artos

Не пиши синим ничего. Я и так понимаю что пост пойдёт под снос.

 

Artos,

в твоем ответе отсутствовали какие-либо коды/пояснения по rewrite_restrictor

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

 

Давай заканчивать этут тему. :rolleyes:

Я просто дал понять, что если даешь совет, то очень желательно давать и все необходимое для его понимания и реализации.

Да и собственно сам вопрос был о другом, да и автор вряд ли сюда уже заглянет ... (потеряв свой же вопрос и ответы). --/Artos

Да...думаю хватит)))

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

   УРАГАН.png

                 Краткий гид по моду Тайные Тропы 2

                                      ПАРТИКЛЫ TERRA

 

 

 

Ну зачем же так, ребята? Давайте жить дружно! :)

Даже немного неловко, что я стал косьвенной причиной этой небольшой перепалки.

 

 

----

По делу.

----

Ради объективности, нужно признать, что код Artosа тоже рабочий. После того, как он полностью привел пример (не с кусочком кода, а целиком полный код функции. I'm sorry, ну не понимаю я этих нюансов). Метка заспавнилась.

1f3665dd1329d87818bf10827a3c2099.jpeg

 

Исправление/добавление второй функции, на удаление метки, тоже сработал (ну, опыт есть опыт и его не пропьешь :)). Прогнал квест полностью - все работает, все спавнится/удаляется.

===

Вывод, который напрашивается :

Метод Artosа спавна метки безусловно проще (и скорее всего, правильнее), если нужно поставить метку точно на предмет/рестриктор/непися и т.д. Но метод alkogolikа тоже будет полезен в некоторых случаях. В каких? Когда нужно лишь примерно обозначить место, искомого предмета/непися, а не точно по центру груга. Сейчас же все идут тупо к центру круга и знают, что найдут то, что ищут. А заспавни вот так предмет, метрах в 80-100 от нужного по квесту и поставь на него метку - место приблизительно обозначено, но это совсем не по центру (как сейчас). Мне кажется, это гораздо интереснее для игрока будет. В итоге - без метки вобще - тяжко, с меткой "по центру" - слишком просто, а здесь, со спавном предмета где-нибудь "по периферии", будет золотая середина. Но это конечно лишь мое ИМХО, не более. :)

====

Artos и alkogolik спасибо за помощь (за реальную помощь), будет хороший, интересный квест (я надеюсь), так сказать "lege artis!"

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

Buusty, ошибочность (и порочность) твоего подхода к решению подобных задач в том, что и себе шор понавешивал по неопытности и другим ...

1. Рандомность установки метки, т.е. чтобы не указывала на точное "положение центра" тоже давно уже имеет гораздо более изящное решение. Посмотри, например в NLC6, где из четырех пометок со смещенным центром, выбирается рандомно один - вот тебе и "лишь примерное расположение".

Я уж не поминаю тут того, что при спавне рестриктора его шейпам можно задавать смешения(!), что собственно и может давать такой же эффект рандомного смещения от центра иль от прямоугольника.

2. А вот ежели заспавнишь "вот так предмет, метрах в 80-100 от нужного по квесту", т.е. вдали от рестриктора, то как же будешь выходить из тобою же заданного условия on_actor_inside? Будешь задавать радиус рестриктору в 100++ метров, дабы твою метку в стороне гасил? ;-)

3. Порочность варианта аля-alkogolik в том, что:

а) создается избыточная секция для метки, в точности такая же как и антирад, но только со своим именем, дабы именно по имени секции искать ее для пометки/удаления.

Да неужели только по имени умеем искать нужный предмет, чтобы его удалить? Лишнего мусора в конфигах и без этого предостаточно.

б) такую метку можно использовать только одну за раз, иначе удалять неизвестно что будешь. Т.о. для каждой пометки своя метка/секция ... А ежели квестов не один, а десять-двадцать? ;-)

в) Использовать итерацию по всем 65535 идентификаторам при установке/снятии меток - мягко-говоря моветон. Всего то требуется запомнить сам идентификатор и именно по нему ставить снимать пометку. Ну иль даже со story_id спавнить и удалять по нему же.

 

Пишу это не столь для Buusty иль alkogolik, а чтобы читающие старались не повторять того, что хотя разово и дает вроде результат, но порочно по сути ...

Вывод который напрашивается: Чтобы почесать нос достаточно рук и ... не стОит использовать пятки. :crazy:

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Artos

Не хочу ввязываться в очередной срач, но любопытство берет вверх

Посмотри, например в NLC6, где из четырех пометок со смещенным центром, выбирается рандомно один - вот тебе и "лишь примерное расположение".

А зачем вообще нужно было снимать координаты для 4 различных точек? Ведь у спейс рестрикторов нет оболочки, поэтому по идее можно было бы использовать math.random для получения рандомной точки в пространстве. Зачем нужно было напрягаться и искать эти 4 точки?

 

Немного не правильно понял. Координаты здесь практически не причём, во всяком случае те, которые на уровне.

Есть четыре метки круглой формы, а у этих меток центр окружности смещён (вверх, вниз, влево, вправо), а скрипт выбирает одну из них рандомно, из чего получаем эффект не точного местонахождения объекта (поскольку метку можно поставить лишь на сам объект), а с какой либо погрешностью смещения.

ColR_iT

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

Freedom

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

 

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

ColR_iT

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

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

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

Ты в своей логике указал непися в какой ему точке следует быть? Схема remark задает неписям только поведение для "поболтать", а не где быть. Почитай про схемы walker или camper и делай на их базе.

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

И да и нет, мне просто нужно чтоб он снова вернулся туда где был, ведь в некоторых модах это есть! Даже возмём оригинал, когда с долгом на хуторе штурмуешь свободу, если они вас убили, они идут туда где были до нападения!

[logic]
active = remark1
danger = danger_ignore

[danger_ignore]
ignore_distance = 5

[remark1]
no_move = true

 

Я использовал эту логику

 

1. Не нужно цитировать (тем более полностью) предыдущее сообщение.

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

Тебе уже триждя намекали и разясняли, что используемая тобою логика remark НЕ задает никаких точек. Так чего же ты хочешь от безмозглого НПС, которому ты сам ничего не указал?!

3. Сколько еще раз тебе нужно повторить: "Используй логику на базе схем walker или camper", чтобы ты начал писать нужную логику, которая и использована "в некоторых модах" и в оригинальной игре?

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

Здрасьте! Помогите заспаунить огонёк или как там правильно анимацию огонька для лампы!

У меня стоит мап пак из сообщества маперов, но на новых локациях, почему то нет этих огоньков, хотя в сдк и оол спавне секции огня есть пробовал сам заспунить получается только костры, а огни ламп нет…

Извиняюсь если написал не туда!

xr_3da_2012-05-09_20-27-47-23.jpg

 

 

[10357]
; cse_abstract properties
section_name = lights_hanging_lamp
name = light_gas_r2_0004
position = -176.840714,4.746369,-279.876221
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 3364
distance = 0
level_vertex_id = 52838
object_flags = 0xffffffba

; cse_visual properties

; cse_ph_skeleton properties

; cse_alife_object_hanging_lamp properties
main_color = 0xfffab807
main_brightness = 0.400000005960464
main_color_animator = koster
main_range = 3
light_flags = 0x2a
health = 100
main_virtual_size = 0.100000001490116
ambient_radius = 1
ambient_power = 0.100000001490116
main_cone_angle = 2.09439516067505
glow_radius = 0.699999988079071

 

Изменено пользователем serega-gamer

Реклама любых модов бесплатно на моём

сайте писать в личку

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

smeh..gif
smeh, смотри скрипты в которых упоминается "alcohol.ppe". В разных модах файлы могут называться по разному, в АМК-моде легко и сам бы мог догадаться - amk_alcohol.script.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Artos- Если я правильно понял в этом скрипте эта строка ( level.add_pp_effector ) отвечает за эфект качания?

И еще один вопрос- а как можно к эфекту качания добавить к примеру потемнение ( в глазах )? Так-как заходил в тему " gamemtl.xr и формат ppe " там ни чего путевого не нашел, почитать бы по подробней, что за , что отвечает. За раннее благодарен.

Изменено пользователем smeh
smeh..gif

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

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

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

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

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

Войти

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

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

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