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

Zander_driver

Жители
  • Число публикаций

    5 952
  • Регистрация

  • Последнее посещение

  • Дней в топе

    230
  • AMKoin

    109,226 [Подарить AMKoin]

Весь контент пользователя Zander_driver

  1. Хм, вообще-то да, вы правы. артефакты в он/офф-лайн переходят. Можно вспомнить про то что и серверный объект можно забиндить. А вообще так. Раз мы в любом случае работаем с серверным объектом, хоть через биндер серверного объекта, хоть перебором всех объектов, то надо еще проверять принадлежность к данной локации. чтоб не снести вообще все артефакты в игре. Проще всего это делать по геймвертексу, каждой локации соответствует определенный набор gamevertex_id. если геймвертекс объекта попадает в этот набор, значит он на этой локации находится.
  2. @CRAZY_STALKER666, способ раз сделать для артефактов биндер, написать там чтобы при нетспавне они себя регистрировали в таблицу, а при нет-дестрой убирали себя оттуда. тогда эта таблица и будет таким списком в любой момент времени. способ два. если лень, и хочется тормозов и горбатых реализаций. перебрать 65к объектов, проверяя что их клсид относится к классам артефактов (всего их в оригинальной игре два). Всех кто окажется артефактом, заносить в отдельную таблицу. удалять в сталкере только серверный объект можно, так что тут без вариантов.
  3. Денис, не путай мух с котлетами) сделать одну универсальную функцию вместо кучи специализированных, это удобно при условии что она в каждом узкоспециальном случае работает не хуже этих специализированных. А на случай опечаток можно просто в ней аборт поставить, в случае когда возвращаемый (найденный по указанному списку ключей) аргумент окажется nil. обфускаторы тут не при чем. зы. у меня полно таких таблиц, которые используются и нужны в 3-5-8 разных скриптах. куда же их деть если не в эту мегатаблицу. Если говорить о таблицах которые востребованы в одном-единственном файле - то черт бы с ними, пусть лежат там где лежат.
  4. Даже просто для работы скриптового инвентаря, который у меня в моде находится, того что ты предложил будет мало На самом деле конечно, конечная реализация зависит еще от целей, для какого проекта это делается. Я для своего скорее всего сделаю именно так, как показано под спойлером в моем посте выше, наиболее хорошо подходит под мои цели. Запутаться как раз можно в разных функциях-таблицах, чем в одной суперглобальной. Тут все определяется просто порядком ключей, что тут путать, не тот ключ ввести разве что?) ну так можно их называть так чтоб содержание было интуитивно понятным.
  5. Между прочим отличная идея. Сам давно собирался вынести основные таблицы (не все) отдельно, лень мешала реализовать. Поняли вы не правильно, этот способ по вашей ссылке - вообще для другого. Там скрипт сканирует конфиги и по результатам заполняет таблицу, а если возникло желание какие-то данные в конфигах хранить, то это куда проще делается. Просто стоит почитать про класс ini_file. не обязательно. Вообще "хорошая скриптовая база" для подобных вещей - это очень громко сказано. Просто накатать на коленке ряд функций для работы с конфигами - уже выхлоп будет.
  6. Вот это на самом деле, лежит на совести разработчика. Того кто этих нпс создает, настраивает. Несложно любому взять себе просто за правило - каждый квестовый нпс обязан иметь story_id, и тогда отсутствие story_id всегда можно будет считать признаком того что персонаж не квестовый, до тех пор пока это правило соблюдается. Это несложно сделать любому даже начинающему мододелу, и это здорово экономит время и усилия при реализации всех действий где с квестовыми и не-квестовыми нпс нужно поступать различным образом.
  7. Зачем тогда такие странные вопросы задавать. вариантов решения всегда и везде - что-то около бесконечности. Иногда в степени бесконечность. Крайне редко бывает как-то иначе, и то чаще всего из-за неправильной постановки условий задачи.
  8. нуу, эээ... да еще и в тело функции. А там оно в каком виде будет, не таблицы чтоли? Ах да, я догадался. if-then-портянку соорудить видимо надо. Давайте так, уважаемый, раз вы лучше всех знаете, что будет рациональнее сделать в скрипте, то и пишите свои скрипты сами, что мы вам тут будем всякую нерациональную чепуху предлагать. зы. если серьезно и если про вылет. ошибка синтаксиса, внимательнее надо с кодом обращаться.
  9. Согласен, вы правы а я ошибку допустил. Хотя у меня есть оправдание я для своих кодов вообще крайне редко делаю таблицы вида [ключ] = true/false. обычно у меня значения таблицы более содержательны. Таблица - хранилище данных как-никак, так что можно во многих случаях так организовать код чтобы там действительно хранились сложные и полезные данные, и это было востребовано. Хотя это уже лирика конечно.
  10. Ну дааа... вы правы. Хотя в посте вопрошающего говорилось о двух исключениях - гравипушка и огнемет. Перебрать таблицу из двух элементов заняло бы не сильно больше времени чем в вашем варианте.
  11. разумеется оно разряжается... такое ощущение что мои посты не читают ну и ладно.
  12. колбеки вызывает движок вообще-то. Хотя при желании можно и самому конечно подергать. биндер актора находится в bind_stalker.script В чистом оригинальном движке ТЧ хит-колбек актора не работает.
  13. Не всегда, есть еще тайники в которых может быть оружие не побывавшее в инвентаре ГГ. Подвох в том что каждый ствол по два раза пытаются разряжать... ну да ладно. это традиции сталкермоддинга, побольше бесполезных действий в каждой операции. (по нормальному можно из take_item_from_box вызов снести совсем. Не нужен он там) А готовое решение в посте выше...
  14. При этом у большинства половина и более скриптов до сих пор почему-то из АМК
  15. @aromatizer, local ex_sects = { -- сюда занести секции орудий которые ненадо разряжать } function ts_ammo_discharge(wpn) local name = wpn:name() local wpsec = wpn:section() for k, v in pairs(ex_sects) do if v == wpsec then return end endвообще-то на этом форуме вроде не любят просьбы вида "сделайте мне".@=VENOM=, вот только у клиентских объектов нет такого метода, есть просто section. и если согласны с тем что по секции правильнее, зачем было давать заведомо неправильный совет...
  16. А при взятии стволов из ящиков оно у вас нормально работает? просто там насколько я знаю, вызываются оба этих колбека, и получается в этом случае двойной вызов. @=VENOM=, а по секции не проще опознать? name будет что-то вроде секция+id, и если пушки не вбиты гвоздями в аллспавн, неизвестно заранее какое имя проверять.
  17. А после загрузки сохранки в любом случае происходит нетспавн актора. И в этот момент еще нет в онлайне никаких нпс. На мой взгляд идеальный момент для сбора подобных таблиц.
  18. @vampirnik77, а зачем, простите, сохранять в se_stor? неужели недостаточно собрать таблицу один раз при запуске игры / нетспавне актора и просто в памяти ее хранить.
  19. Мдямс. щас повторил твой тест - и у меня работает. а когда (в том самом, изначально тобою выложенном) xr_meet расставил между функций сообщения-маяки, они прошли все аккурат до тех таблиц. а после глухо. Может мы оба что-то не так делаем, но найти причину этого явления будет интересно. А за последние свои претензии приношу извинения.
  20. Я не знаю какое это имеет отношение к теме разговора. разве что, если писать log("сообщение") то у меня в логе никаких ! Cannot find saved game не будет. Все мотивы и причины и даже следствия я изложил, не вижу причин повторяться.
  21. Не считая расширения от RvP, у меня стандартный движок ТЧ. Оригинальный. Как можно запустить построчно, скомпилировав только часть - вот это мне интересно. Мы тут собрали пол-функции, что там дальше еще не знаем, но вы уже можете ее вызвать - так чтоли? И что будет выполняться при вызове такой функции... Может быть стоит обращать внимание на то, что после чего создается, и что после чего может быть создано. Нельзя вычислить сумму а и б до тех пор пока мы не узнаем чему равны а и б например, это просто логично. И у меня такое ощущение что ты это упускаешь из виду)
  22. Да причем тут xr_logic и откат к древнеиндусским монстрокодам. Я же не об этом толкую блин. Просто чтобы файл требовал меньше телодвижений при его подключении к произвольно-стороннему проекту. -- Функция чтения настроек. В нее передается секция, откуда их нужно читать. local t_def_nil local t_def_kamp local t_def_fotoman local t_def_bandit local t_def_other function init_tables() t_def_nil = { ["meet_state"] = parse_data1( "5|wait@wait" ), и тэ дэ по тексту... Ну вот так например. local xr_meet_initialized = false function init() if not xr_meet_initialized then init_tables() xr_meet_initialized = true end return true end и вот так. И наконец в начале функций где эти таблички используются, вот так. function init_meet( npc, ini, sect, st, scheme ) xr_meet.init() далее тело функции И все будет крутиться само при помещении этого файла в какой угодно проект. Список clsid стволов согласен, должны уж сами догадываться занести. Впрочем я вряд ли ошибусь, если скажу что в большинстве модов этот список не отличается от оригинала.
  23. Zander_driver

    Жесть

    @Sutorihin2011, помнится я когда в Жесть играл, завел себе привычку в начале игры, как только это становилось возможно, брать у Волка квест на тех кабанов и идти их выносить. Если быстро это сделать то деревню новичков какое-то время не трогают. А насчет бартера Жести вот что откопал в закоулках своего харда http://rgho.st/8gq2XCbqx могут быть небольшие отличия в разных версиях Жести, но в целом для нее это верный туториал. Для СЗ это уже не актуально будет, там технологии другие.
  24. в том что модуль еще не собран. а она нужна для его сбора. Денис, я же не утверждаю что ты какую-то чепуху написал. Скрипт в конечном итоге полезный, и я его к своему моду прикрутил, но для этого мне потребовалось над ним изрядно поколдовать - сбор этих таблиц упаковать в функцию, и дергать ее из известных мест... для тебя, для меня, это не проблема, сделать чтобы вот этот выложенный тобою скрипт, работал. Но выкладывать работу в таком виде, когда для подключения к чему-угодно она требует определенных танцев с бубном при наличии определенных знаний - это не красиво как минимум, не стоит так делать имхо. А вот представь что человек ничего не смыслящий в скриптах, не скриптер вообще, возьмет твой файл и попробует поставить в свой проект. Что будет? у него ничего не получится. Желательно все же скрипты выкладывать в таком виде чтоб их могли не-скриптеры использовать.
  25. @Narko_Soda, На стартовой локации нет радиационного фона, т.е. и без куртки жить можно. И какое-то самое первое время в таком виде походить наверное и придется. Но лазить по нашей зоне, пусть даже по начальной локации, без куртки и без оружия (его же на старте тоже нету) - это такой хард что извините, заставлять игроков этим заниматься я не буду. Кто хочет может устроить себе это сам.
×
×
  • Создать...