У меня такой вопрос.
Максимальная численность гулага определяется по наличию секций [logic], относящихся к этому гулагу?
В гулаге с динамическим ltx могут быть две и более одинаковых секций [logic]?
Пояснение:
Я редактирую гулаг с динамическим ltx в котором есть такая конструкция (в упрощённом варианте):
for i, v in pairs({2, 1}) do
for j = 1, v do
t = { section = "logic@_test" .. i}
table.insert(sj, t)
end
ltx = ltx.."[logic@_test" .. i .. "]\n" ..
-- Далее идёт описание работ
end
Если я правильно понимаю, то в ходе работы создаются 3 ссылки на секции logic:
logic@_test1
logic@_test1
logic@_test2
Первые две, из которых будут одинаковые.
И вот собственно суть вопроса заключается в том, какая в данном случае будет максимальная численность гулага 3 или 2?
Если поставить 3, то в игре никаких ошибок не будет. Скорее всего, npc будут выполнять одну и туже работу.
И какую лучше численность поставить?
Приведённый выше пример сильно упрощён, из кода убрано всё лишнее, не относящееся к вопросу.
Gun12: ... если вводить нового перса в гулаг, нужно изменить вместимость смарта.
А знаниями, позволяющими сделать это скриптовым способом, я (как ни печально) не владею.
Как раз для этого довольно просто использовать net-packet смарта (могу написать пример).
Да и логику можна им же менять, а не жестко прописывать в *.ltx (хотя и там его можно прописать динамически). karavan
Выше, я уже дал некие 'мысли вслух', где
Твое "пристрастие и обожание" к all.spawn'у обусловдено (ИМХО) ТОЛЬКО двумя вещами:
- незнание/неумение/отсутствие опыта в других инструментах/способaх/методах;
- малое желание вникать и преодолевать трудности.
Даже твоя "аргументация" преимуществ использования all.spawn'а ущербна, т.к. единственный аргумент - "мне не нужно использовать чей-то скрипт".
В чем же все же разница на самом деле? В чем преимущества и недостатки?
Использование all.spawn:
Преимущества:
1. Используя уже готовые секции, аналогичных уже имеющимся объектам (не нужно знать/думать!), процесс "создания" заключается только в корректировке и/или дополнении нужных параметров, ждаже не понимая их сути.
2. Особенно не требуется вникать в "язык" файла (all.spawn), т.к. он и не сложен и есть множество толкований о том "как и что".
3. Т.к. новый объект делается на базе имеющегося 'от разрабов', то успех создания практически обеспечен.
Недостатки:
1. Требуется раскомпеллировать старый all.spawn, чтобы получить текущие коды для правки, а в конце выполнить обратный процесс компелляции.
2. После редактирования и создания нового all.spawn'а (компелляции) потребуется (если мод не простенький!) внести различные правки в коды/конфиги, связанные со сменой нумерации секций спавна.
3. Проверить 'новшества' возможно только начав игру заново, что очень неудобно, если правки касаются 'середины сюжета/Зоны'.
4. Все старые сэйвы, как правило, непригодны.
5. При необходимости внести изменения/исправления/дополнения потребуется полностью посвторить процессы п.п.1-3.
6. Возможная несовместимость с оригиналом и другими модами на уровне "ручного внесения всех новшеств", подразумевающую аналогичные манипуляции с all.spawn'ами.
7. При вводе в игру новой секции объекта, которую НЕ 'знает' ACDC, потребуется редактированое собственно (де)компиллятора, что равноценно потере совместимости со стандартным.
Примечание: п.п. 6 и 7 могут быть и достоинствами, защищая мод от 'шаловливых рук' и плагиата.
Использование скриптового метода добавления/изменения объектов:
Преимущества:
1. Возможность в любой(!) момент игры (в начале, процессе, конце, фриплее) вносить многочисленные добавления/изменения, НЕ требующие начинать игру заново.
2. Динамически менять параметры объектов, их логику и пр., статично прописанных в all.spawn.
Недостатки:
1. Хорошие знания доступных свойств/параметров используемых объектов.
2. Знания и навыки работы с LUA и его версии (частично ограниченной!) в игре.
3. Нередко требуется знание и навыки работы с net-packet'ами, чего часто боятся и избегают 'молодые' модмейкеры.
blackraven6
Если судить по "не видны в худе", то ... накосячил с параметрами в секции новых гранат. К вылету НЕ приводят, но и предметами/гранатами НЕ признаются.
Нужны куски кодов твоих правок, иначе гадалки могут быть о чем угодно.
Максим Р.
Численность гулага определяется параметром (capacity) smart_terrain'а.
А секции [logic] определяют кол-ва 'типов' работ в гулаге/
Твои предположения о 3-х 'логиках' верны, но без вырезанного контекста что то еще сказать сложно. Возможно эти логики предназначены для одного объекта, но в разных состояниях (state), а может и трем ... и более.
blackraven6
Вот почему и ратую за корректность задаваемых вопросов!
Из твоего поста с сокращениями и жаргонизмами слова "прописал в мультиплеере" я трактовал как "прописал в mp_ranks". :-(
А в режиме мультиплеера - тут посложнее могут быть причины.
Сорри, но этот режим мне и неинтересен и навскидку не могу высказать даже догадки. Запросто в этом режиме и не будут твои новшества учитываться, отсекаясь "серверный-клиентсский" ...
АнархОПанк
В любую функцию можно вложить еще сколь угодно других (LUA это не запрещает). Главное это сделать правильно и не переусердствовать, абы не получить лаги.
Artos, спасибо.
Нет, у всего гулага состояние только одно - 0.
Это меня и смутило, для чего разработчики (гулаг GSC) так сделали. Может там, конечно, свои какие-то задумки у них, потому что при полностью заполненном гулаге я н
отредактировал(а) Максим Р.: 30-04-2010 15:07 GMT3 час.
Artos спасибо. Буду знать:)
А еще вопрос, lvid и gvid, не повторяются на локациях, или же на разных локах они одинаковые, т.е lvid 1345 можно встретить и на свалке и кордоне?
АнархОПанк
ЛВ вряд ли могут повторяться, а вот ГВ на каждую локацию разные. Вот их **50016ea8aab1bb10eeba**onolith = {2467,2516},
l12_stancia_2 = {2517,2660},
l10u_bunker = {2661,2791}
}[/code]
Т.е.
[code]Уровень = {мин. ГВ, макс. ГВ}[/code]
#Artos :
Как раз для этого довольно просто использовать net-packet смарта (могу написать пример).
С удовольствием приму науку.
Спасибо. Подожду, и буду премного благодарен.
На данном этапе как раз пишу логику, и расширение кругозора по данной теме было бы очень кстати.
Всем известные туторы этого направления, мною уже перечитаны вдоль и поперёк.
А подобные "тонкости", предложенные Вами, найти не очень просто.
отредактировал(а) Gun12: 30-04-2010 15:44 GMT3 час. Не стань номинантом премии Дарвина.
Максим Р.
Думаю зря ты собираешься ограничивать (если конечно нет вестких причин). Судя по кодам, работ там закладывается немало и толпиться не должны (схема кампа должна разруливать). А вот нехватка работ или недостаточная вместимость может приводить к тому, что некоторым "нерасторопным" неписям не будет хватать вместимости или работы и вынуждены будут шляться по локациям, стекаясь к Бару. АнархОПанк lvid (level vertex) - может повторяться на разных локация. Его диапазон для каждой от 0 и до максимума, ко
Artos
По поводу использования АллСпавна. Прочитал перечисленные тобою за и против. С некоторыми не согласен, но это не суть важно.
Вопрос: Есть ли возможность создать гулаг без использования АллСпавна? Ведь такая штука как [way] не прописывается в скриптах или я ошибаюсь? Если ошибаюсь то готов хоть сейчас отказаться от использования АллСпавна.
Впрочем есть еще один момент который заставляет лезть в АллСпавн и что-то ковырять. Все дело в том, что я поставил целью удалить сюжет из Сталкер ТЧ и написать новый или повесить всю игру на рандом. можно конечно ковырять кофиги и скрипты (огромное количество файлов), но я решил, что легше, да именно легше, вырезть НПС и рестрикторы, которые отвечают за сюжет и у меня это получилось. :) А теперь уже в очищеном аллспавне буду делать что душа пожелает.
Да и кстати умееш ли ты настраивать ACDC для АллСпавна. Несмотря на моё пристрастие к этому файлу-архиву, я до сих пор не научился настраивать копилятор. Как прописывать недостаюшие строки я понял, но как нонять их класс вот с этип проблема. Не порекомендуеш какой-то мануал или туртор по настройке. Я серьезно. Действительно может понадобится помощь настояшего специалиста. :) Поскольку мапер планирует присоединение большого количества локаций.
Artos, точно! Это же kamp, а я и внимания не обратил :-G. Ещё раз спасибо.
АнархОПанк, узнать какие именно gvid соответствуют какой локации у тебя, можешь конвертнув game.graph программкой GameGraph CDC Tool 1.4 http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=getit&lid=332
Потом в файле game.graph.levels_info.ltx (появится после распаковки) посмотреть для для какой локации какой gvid соответствует (там будет указан первый и последний gvid).
karavan
Готов выслушать и возможно учесть или опровергнуть твои 'за-против'. Все мы в чем-то ошибаемся или недопонимаем, на то и общаемся/учимся. Замалчивать может только тот, кто или стесняется или боится высказать свою недостаточную осведомленность.
По поводу путей (way): Этот параметр НЕ всегда обязателен для гулага(ов). Я же не перечислял 'вся и все'. Ежели тебе потребовался новый "путь", то и в алл.спавне ты его обязан создать.
Тоже искал и ищу возмлжность создавать его оперативно, но пока ... Довольствуюсь теми, что уже есть.
Например тем же вертушкам (правда на ЗП, в ТЧ уже немало путей) прописал ближайший подходящий и ... линамически задаю нужную точку. Вертушка и летит, куда указываю,а не куда жество прописано. Можно укорить: ресурсы немалые расходуются, но ... понятия разумно и оптимально - относительны!
И я не говорю что можно обойтись без правки алл.спавна в любом случае(!). Я о том, что по каждой мелочевке многие лезут в него и многое, что НЕ требует обязательной его правки, делают именно этим способом.
Хотя и по "чистке от сюжета можно поспорить. Ничто не мешает на старте игры запустив через нет-пакеты правку/чистилку састом-дат объектов, вычистить немало сюжетного. Иной вопрос - а зачем мусор оставлять? ...
умееш ли ты настраивать ACDC
Его не настраивают, а правят 'под себя' 6-). Собственно это перловый скрипт, который можно и править и дописывать и пр.
Что-то умею, что-то НЕ знаю, а чего-то еще не пробовал. ;-)
Мануалов по ковырянию самого ACDC не знаю, самоучкой ковыряюсь, как не знаю и подобных ковыряльщиков. P.S. а взять и глянуть, например, модуль спальника из Симбиона (где почти все в одном флаконе) - слабо? Или подобно FLIKER'у ждешь на обобщенный вопрос пространного мануала?
2. Знания и навыки работы с LUA и его версии (частично ограниченной!) в игре.
Вопрос. Какие библиотеки Lua не используются в СТАЛКЕРе, дабы исключить попытки их использования?
Я про IO, Модули, Debug и OS.
Некоторые методы напоминают мне функции этих библиотек :
get_console():execute --> os.execute
packet:r_seek --> file:seek
ну и т.д.
#Artos :
К сожалению не имею привычки записывать куда-то мои ковыряния в Сталкере и держу все в голове (может и зря, ...)
Я думаю что не зря.
Вот я наооборот всё коспектирую. И что? Наконспектировал столько, что лучше бы просто запоминал. Всё равно, что в записях не найду уже, что в голове было бы - одинаково:-).
отредактировал(а) Gun12: 30-04-2010 16:39 GMT3 час. Не стань номинантом премии Дарвина.
Artos Вот один пример за ковыряния в АллСпавне - это заспавненый бющийся ящик с хабаром.
Как заспавнить ящик скриптом я знаю, но наполнить его хабаром мне не получалось.
А про [way] как точку или же как путь для НПС я упомянул потому, что немогу понять где они прописаны и почему нельзя создать функцию для создания этих точек-путей. Возникает мысль, а если всё (логику и точки) прописать в кастом_дату НПС будет ли результат или [way] читаются движком из АллСпавна только? Ладно, это мысли в слух.
Gun12
Ой, даже не попытаюсь ответить, дабы не вносить ошибки/неточности. К сожалению не имею привычки записывать куда-то мои ковыряния в Сталкере и держу все в голове (может и зря, но это для меня всего лишь хобби). А 'на ходу' и не упомнить всего и ошибиться можно, тем более еще все это отягощено вариациями от ЧН и ЗП, где свои 'тонкости'.
В процессе уже двух-летних ковыряний постоянно натыкаюсь на факты кастрации и/или переиначивания различных библиотек в скомпиллирлванном интерпретаторе LUA от разрабов Сталкера.
Помимо уже упомянутых (IO в ТЧ, в отличии ЧН и ЗП, вообще не включили) много отсутствует в библиотеке работы со строками (string).
Да и не задавался вопросом "чего нет", действую по принципу: понадобилось - попробовал, обломился - запомнил - идем иным путем (ежели конечно хоть просвет виден).
karavan
Уже недавно помянул то, что следует учитывать необходимый период апдейта.
Посуди сам, ты заспавнил ящик. Игра (остальные функции/модули) еще НИЧЕГО не знают о созданном объекте. Он еще НЕ появился в он-лайне, а ты его, вероятно этой же функцией (или параллельной) пытаешься набить хабаром! Естественно, попытка засунуть в еще не существующее будет движком отвергнута.
Следует создать, запомнить и вызывать нужный ящик через период апдейта (или позднее) и тогда пичкать барахлом.
Если бы ты делал проверку (что уже посоветовал выше) при создании и/или использовании объекта, то сразу бы понял, что объекта-то нет еще ... и поискал бы пути решения своей задумки.
Т.о. твоя ошибка перекрывает тебе способы использования иных методов, оставляя 'проверенный' хотя может и неоптимальный, а нежелание понять причину неудачи - оставляет аналогичные ошибки в иных местах.
"Если Я не знаю/не умею/не получилось - это НЕ означает НЕВОЗМОЖНО вообще"!
Про пути (и не только): смирись с тем, что разрабы не делали конструктор для всех и всего. Что-то расширяемо, что-то или только в одном месте можно добавлять, что-то вообще константа.
Ну не удосужились (вероятно) разрабы дать возможность добавлять пути/точки ... Это всего лишь малая толика того, чего нам хотелось бы. Научись использовать то, что дали(!), на всю катушку, а может даже и поболее (имею ввиду нештатные и/или недекларированные возможности)!
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.