-
Число публикаций
5 952 -
Регистрация
-
Последнее посещение
-
Дней в топе
230 -
AMKoin
109,226 [Подарить AMKoin]
Весь контент пользователя Zander_driver
-
Хм, вообще-то да, вы правы. артефакты в он/офф-лайн переходят. Можно вспомнить про то что и серверный объект можно забиндить. А вообще так. Раз мы в любом случае работаем с серверным объектом, хоть через биндер серверного объекта, хоть перебором всех объектов, то надо еще проверять принадлежность к данной локации. чтоб не снести вообще все артефакты в игре. Проще всего это делать по геймвертексу, каждой локации соответствует определенный набор gamevertex_id. если геймвертекс объекта попадает в этот набор, значит он на этой локации находится.
-
@CRAZY_STALKER666, способ раз сделать для артефактов биндер, написать там чтобы при нетспавне они себя регистрировали в таблицу, а при нет-дестрой убирали себя оттуда. тогда эта таблица и будет таким списком в любой момент времени. способ два. если лень, и хочется тормозов и горбатых реализаций. перебрать 65к объектов, проверяя что их клсид относится к классам артефактов (всего их в оригинальной игре два). Всех кто окажется артефактом, заносить в отдельную таблицу. удалять в сталкере только серверный объект можно, так что тут без вариантов.
-
Денис, не путай мух с котлетами) сделать одну универсальную функцию вместо кучи специализированных, это удобно при условии что она в каждом узкоспециальном случае работает не хуже этих специализированных. А на случай опечаток можно просто в ней аборт поставить, в случае когда возвращаемый (найденный по указанному списку ключей) аргумент окажется nil. обфускаторы тут не при чем. зы. у меня полно таких таблиц, которые используются и нужны в 3-5-8 разных скриптах. куда же их деть если не в эту мегатаблицу. Если говорить о таблицах которые востребованы в одном-единственном файле - то черт бы с ними, пусть лежат там где лежат.
-
Даже просто для работы скриптового инвентаря, который у меня в моде находится, того что ты предложил будет мало На самом деле конечно, конечная реализация зависит еще от целей, для какого проекта это делается. Я для своего скорее всего сделаю именно так, как показано под спойлером в моем посте выше, наиболее хорошо подходит под мои цели. Запутаться как раз можно в разных функциях-таблицах, чем в одной суперглобальной. Тут все определяется просто порядком ключей, что тут путать, не тот ключ ввести разве что?) ну так можно их называть так чтоб содержание было интуитивно понятным.
-
Между прочим отличная идея. Сам давно собирался вынести основные таблицы (не все) отдельно, лень мешала реализовать. Поняли вы не правильно, этот способ по вашей ссылке - вообще для другого. Там скрипт сканирует конфиги и по результатам заполняет таблицу, а если возникло желание какие-то данные в конфигах хранить, то это куда проще делается. Просто стоит почитать про класс ini_file. не обязательно. Вообще "хорошая скриптовая база" для подобных вещей - это очень громко сказано. Просто накатать на коленке ряд функций для работы с конфигами - уже выхлоп будет.
-
Вот это на самом деле, лежит на совести разработчика. Того кто этих нпс создает, настраивает. Несложно любому взять себе просто за правило - каждый квестовый нпс обязан иметь story_id, и тогда отсутствие story_id всегда можно будет считать признаком того что персонаж не квестовый, до тех пор пока это правило соблюдается. Это несложно сделать любому даже начинающему мододелу, и это здорово экономит время и усилия при реализации всех действий где с квестовыми и не-квестовыми нпс нужно поступать различным образом.
-
Зачем тогда такие странные вопросы задавать. вариантов решения всегда и везде - что-то около бесконечности. Иногда в степени бесконечность. Крайне редко бывает как-то иначе, и то чаще всего из-за неправильной постановки условий задачи.
-
нуу, эээ... да еще и в тело функции. А там оно в каком виде будет, не таблицы чтоли? Ах да, я догадался. if-then-портянку соорудить видимо надо. Давайте так, уважаемый, раз вы лучше всех знаете, что будет рациональнее сделать в скрипте, то и пишите свои скрипты сами, что мы вам тут будем всякую нерациональную чепуху предлагать. зы. если серьезно и если про вылет. ошибка синтаксиса, внимательнее надо с кодом обращаться.
-
Согласен, вы правы а я ошибку допустил. Хотя у меня есть оправдание я для своих кодов вообще крайне редко делаю таблицы вида [ключ] = true/false. обычно у меня значения таблицы более содержательны. Таблица - хранилище данных как-никак, так что можно во многих случаях так организовать код чтобы там действительно хранились сложные и полезные данные, и это было востребовано. Хотя это уже лирика конечно.
-
Ну дааа... вы правы. Хотя в посте вопрошающего говорилось о двух исключениях - гравипушка и огнемет. Перебрать таблицу из двух элементов заняло бы не сильно больше времени чем в вашем варианте.
-
разумеется оно разряжается... такое ощущение что мои посты не читают ну и ладно.
-
[SoC] Ковыряемся в файлах
Zander_driver ответил на тему форума автора Halford в Скрипты / конфиги / движок
колбеки вызывает движок вообще-то. Хотя при желании можно и самому конечно подергать. биндер актора находится в bind_stalker.script В чистом оригинальном движке ТЧ хит-колбек актора не работает. -
Не всегда, есть еще тайники в которых может быть оружие не побывавшее в инвентаре ГГ. Подвох в том что каждый ствол по два раза пытаются разряжать... ну да ладно. это традиции сталкермоддинга, побольше бесполезных действий в каждой операции. (по нормальному можно из take_item_from_box вызов снести совсем. Не нужен он там) А готовое решение в посте выше...
-
[SoC] Ковыряемся в файлах
Zander_driver ответил на тему форума автора Halford в Скрипты / конфиги / движок
При этом у большинства половина и более скриптов до сих пор почему-то из АМК -
@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. и если согласны с тем что по секции правильнее, зачем было давать заведомо неправильный совет...
-
А при взятии стволов из ящиков оно у вас нормально работает? просто там насколько я знаю, вызываются оба этих колбека, и получается в этом случае двойной вызов. @=VENOM=, а по секции не проще опознать? name будет что-то вроде секция+id, и если пушки не вбиты гвоздями в аллспавн, неизвестно заранее какое имя проверять.
-
А после загрузки сохранки в любом случае происходит нетспавн актора. И в этот момент еще нет в онлайне никаких нпс. На мой взгляд идеальный момент для сбора подобных таблиц.
-
@vampirnik77, а зачем, простите, сохранять в se_stor? неужели недостаточно собрать таблицу один раз при запуске игры / нетспавне актора и просто в памяти ее хранить.
-
Прозекторская
Zander_driver ответил на тему форума автора Dennis_Chikin в Скрипты / конфиги / движок
Мдямс. щас повторил твой тест - и у меня работает. а когда (в том самом, изначально тобою выложенном) xr_meet расставил между функций сообщения-маяки, они прошли все аккурат до тех таблиц. а после глухо. Может мы оба что-то не так делаем, но найти причину этого явления будет интересно. А за последние свои претензии приношу извинения. -
Прозекторская
Zander_driver ответил на тему форума автора Dennis_Chikin в Скрипты / конфиги / движок
Я не знаю какое это имеет отношение к теме разговора. разве что, если писать log("сообщение") то у меня в логе никаких ! Cannot find saved game не будет. Все мотивы и причины и даже следствия я изложил, не вижу причин повторяться. -
Прозекторская
Zander_driver ответил на тему форума автора Dennis_Chikin в Скрипты / конфиги / движок
Не считая расширения от RvP, у меня стандартный движок ТЧ. Оригинальный. Как можно запустить построчно, скомпилировав только часть - вот это мне интересно. Мы тут собрали пол-функции, что там дальше еще не знаем, но вы уже можете ее вызвать - так чтоли? И что будет выполняться при вызове такой функции... Может быть стоит обращать внимание на то, что после чего создается, и что после чего может быть создано. Нельзя вычислить сумму а и б до тех пор пока мы не узнаем чему равны а и б например, это просто логично. И у меня такое ощущение что ты это упускаешь из виду) -
Прозекторская
Zander_driver ответил на тему форума автора Dennis_Chikin в Скрипты / конфиги / движок
Да причем тут 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 стволов согласен, должны уж сами догадываться занести. Впрочем я вряд ли ошибусь, если скажу что в большинстве модов этот список не отличается от оригинала. -
@Sutorihin2011, помнится я когда в Жесть играл, завел себе привычку в начале игры, как только это становилось возможно, брать у Волка квест на тех кабанов и идти их выносить. Если быстро это сделать то деревню новичков какое-то время не трогают. А насчет бартера Жести вот что откопал в закоулках своего харда http://rgho.st/8gq2XCbqx могут быть небольшие отличия в разных версиях Жести, но в целом для нее это верный туториал. Для СЗ это уже не актуально будет, там технологии другие.
-
Прозекторская
Zander_driver ответил на тему форума автора Dennis_Chikin в Скрипты / конфиги / движок
в том что модуль еще не собран. а она нужна для его сбора. Денис, я же не утверждаю что ты какую-то чепуху написал. Скрипт в конечном итоге полезный, и я его к своему моду прикрутил, но для этого мне потребовалось над ним изрядно поколдовать - сбор этих таблиц упаковать в функцию, и дергать ее из известных мест... для тебя, для меня, это не проблема, сделать чтобы вот этот выложенный тобою скрипт, работал. Но выкладывать работу в таком виде, когда для подключения к чему-угодно она требует определенных танцев с бубном при наличии определенных знаний - это не красиво как минимум, не стоит так делать имхо. А вот представь что человек ничего не смыслящий в скриптах, не скриптер вообще, возьмет твой файл и попробует поставить в свой проект. Что будет? у него ничего не получится. Желательно все же скрипты выкладывать в таком виде чтоб их могли не-скриптеры использовать. -
Судьба Зоны (предрелизная тема)
Zander_driver ответил на тему форума автора Zander_driver в Судьба Зоны
@Narko_Soda, На стартовой локации нет радиационного фона, т.е. и без куртки жить можно. И какое-то самое первое время в таком виде походить наверное и придется. Но лазить по нашей зоне, пусть даже по начальной локации, без куртки и без оружия (его же на старте тоже нету) - это такой хард что извините, заставлять игроков этим заниматься я не буду. Кто хочет может устроить себе это сам.
- [ЧН] OGSM CS 1.8 CE Fixes
- [ЧН] HARDWARMOD 3.2
- [ЗП] The Long Road
- [ЧН] New vision of War
- [ЧН] Old Good Stalker Mod - Clear Sky
- [ЗП] Unofficial Patch
- [ЗП] Смерти вопреки
- [ЗП] Контракт на хорошую жизнь
- [ЗП] Shoker Weapon Mod 2.1
- [ЗП] Hardcore pack for SGM 2.2
- [ЗП] Контракт Синдиката
- [ЗП] Клондайк 2.0
- ...и другие моды