Пользователей: 2
Гостей: 1203
Всего: 1205

» Подробно
» Сегодня

Привет, гость!









Автор Сообщение
Artos
    
Посты: 4176
Откуда:
Возраст: 65
13-05-2011 09:10 GMT3 час. #1479659   
Gun12
Меня удивляет в этом вопросе инертность многих модмейкеров. В доброй половине (даже 'свежих') модов до сих пор используется устаревший алгоритм из АМК (или аналогичный) напрямую ежесекундно перебирающий из pstor'а актора массив из 200 таймеров.
Доработав уже модернизированный алгоритм таймеров вариантом с 'проверка по ближайшему таймеру', меня самого приятно удивила низкая нагрузка от него. Даже забыв в сегодняшнем минификсе для сборки закомментировать строку вывода в лог о каждом срабатывании таймера - не думаю, что кто-то заметит хоть какое то подтормаживание. :-)


Миха74Rus
Довольно странный набор вопросов ... из разных областей и уровней.
Отвечу на то, что на 100% понял и знаю:

2. Запуск локаций батником (по крайней мере в финалке ТЧ) невозможен.
Ближайшее решение: создаешь несколько all.spawn'ов, отличных только стартовой позицией для ГГ (на разных уровнях) и батником иль из главного меню игры (там только чуть коды подправить) запускать требуемый.
Сам я, применяю банальный телепорт, выбираемый после старта игры, что позволяет хоть 'голеньким и чистеньким' оказаться на нужной локации, хоть с любого сэйва.

3. Мигающая дискетка - индикатор обмена данными с сервером. Надеюсь не нужно пояснять, что даже сингл - играет на локал-хосте.
Убрать отображение дискетки можно двумя путями:
а) Заменить текстуру дискеты (ui_disk_io.dds) на 'прозрачную', т.е. - пусть отображает 'ничего';
б) Очистит тэг отображения этой текстуры в соответствующем xml-файле.
Можно конечно и ... исправить движок, отключив это отображение, но кому это нужно?

На 1 и 4 может кто иной ответит ... Однозначных и кратких ответов я, например, не знаю.


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Deathdoor
    
Посты: 906
Откуда: Москва
Возраст: 48
13-05-2011 10:34 GMT3 час. #1479686   

Для чего в СДК ключ -editor и что он дает

из всего услышанного в инете: этот ключ позволяет нормально работать с СДК 0.5/0.6/0.7 в Висте/Семёрке без всякого шаманства с виртуальными машинами


До каких пор людей, по крохам собиравших державу и беспощадно каравших её врагов, мы будем обзывать палачами, а индивидов, разваливших страну и пустивших на ветер труды целых поколений, именовать реформаторами? (Ф.М. Достоевский)
Максим Р.
    
Посты: 1025
Откуда:
Возраст:
13-05-2011 11:39 GMT3 час. #1479697   

# Миха74Rus :
Как запустить локацию из батника


Цитата из статьи [url=http://stalkerin.gameru.net/wiki/index.php/%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-]Компиляция -=in**5002618d69873ce82a42**exe -start server(%1/single/alife) client(localhost)[/code]
где %1 - название уровня.
Примечание: при запуске с такого батника имя спавна должно быть не all.spawn, а <название_уровня>.spawn



Artos
    
Посты: 4176
Откуда:
Возраст: 65
13-05-2011 13:34 GMT3 час. #1479733   
Максим Р.
Это и есть собственно запуск нужной копии all.spawn'а, но(!) не имя определяет запуск локации, а собственно контент в самом ххх.spawn'е. Локация определяется местом/координатами спавна ГГ, без него нет ни локации ни игры. :-) Все это конечно для сингла справедливо.
Собственно запуск подобных копий предусмотрен в 'ui_spawn_dialog.script', запуск которого очень легко восстанавливается в основном меню и не требует кучи батников.


Gun12
Все же незнание присуще новичкам или тем, кто несерьезно занимается модами/кодами. Конечно серьезных фанатов модинга Сталкера все меньше, но и новички взрослеют и 'старички' все еще встречаются. ;-) Однако 'старенький кузов' из давно написанных скриптов как оригинала, так и того же АМК, кочует из мода в мод ... часто только 'обивка' сидений меняется да в багажник все больше подкладывают.
ИМХО, тут все же больше инертность (не трожь то что работает - не будет проблем) и желание сделать поскорее 'свое и самому' ... Зачищать/обновлять 'не свое' похоже воспринимается как нечто второстепенное и недостойное модмейкера.
Заглянул сегодня во многие 'сегодняшние' релизы модов и ... охнул, неужели самим кодерам глаза не режут эти рудименты ...
Помимо уже упомянутого перебирания таймеров прямым сканированием пстора, к тому же
а) используется надстройка АМК над 'xr_logic.pstor_retrieve' с ее 3-х летней заглушка на самими же АМК'шниками убранную "компрессию" имен переменных;
б) каждый раз заново вычисляется ID для актора, и его сторадж из db.script;
...
Такое впечатление, что просто не смотрят то, что используют.


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
13-05-2011 13:51 GMT3 час. #1479739   
Artos

Такое впечатление, что просто не смотрят то, что используют.
Просто и не собираются разбираться в используемых кодах. А зачем?! Основная масса модмейкеров, беря какой либо рабочий код из другого мода, думает, что он создан был отличнейшим специалистом, и обработки не требует. А ведь большинство кодов (особенно в групповом модмейкерстве) пишется на скорую руку. И обычно даже не задумываясь о производительности. Тобишь, лишь бы работало. Подтверждением бывают часто всплывающие посты, типа:

Помогите написать скрипт. Нужно ОЧЕНЬ СРОЧНО!

Типа время поджимает.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
13-05-2011 14:40 GMT3 час. #1479761   
(ох, и попаден мне/нам за оффтопик, пора завязывать)
singapur22
Не хочется называть моды, но и те, которые по полу-году и более делались в оффлайне и вроде как в тороплении не замечены, страдают тем же. Фундамент прежний, хотя от времени уже потрескивает и осыпается, а грузят не просчитывая последствий. Причем чем больше грузят - тем сложнее тот же фундамент подновлять, т.к. возрастает трудоемкость переделки/модернизации.


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
13-05-2011 15:11 GMT3 час. #1479780   
Gun12

Два таких кода почти то же самое что и один раз побыть с женщиной :)
;-) Ну на счёт женщины не знаю, я какбы всё равно предпочёл второе. Но то, что больше волнует сам процесс, чем результат, то это в точку. Особенно привлекают сложные алгоритмы. Когда приходится поламать голову, как бы..., да чтоб... А после реализации задуманного, ещё несколько дней мурыжишь его, стараясь сократить величину кода, и сделать его более читабельным. Мало того, у меня ещё мания на универсальность. Всегда стараюсь делать так, чтоб его можно было использовать не только в конкретном случае.

Artos Я заметил, что большая часть модов делается на базе АМК. Не знаю в чём причина, я как и Gun12, его файлами мало интересовался.
В свою очередь, я лишь только один файл использую из другого мода. Это ваше дитя m_net_utils.script, слегка подправленный под себя. Больше ниразу ничем другим не интересовался. Максимум, это брал только идеи, и реализовывал их своими путями.

P.S.
то, что оффтоп, не страшно. Какбы, для начинающих модмейкеров, даже это урок.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
13-05-2011 15:27 GMT3 час. #1479784   
singapur22
А я с перепугу, чтобы по шапке не получить, удалил свои посты :)
Повторю то, что может ещё и пройдет цензуру :
Artos
Насчет этих пунктов а) и b) как-нибудь (найдем время) расскажешь подробнее. Я файлы АМK пару раз пролётом видел, серьезно не интересовался ещё.
Но судя по (помнишь?) split-у и теперь вот таймерам работы не початый край.


Не стань номинантом премии Дарвина.
walper
    
Посты: 47
Откуда: Киев
Возраст: 31
13-05-2011 16:04 GMT3 час. #1479794   
а как сделать что бы после квеста произошол выброс?


Artos
    
Посты: 4176
Откуда:
Возраст: 65
13-05-2011 17:17 GMT3 час. #1479814   
singapur22
Осмелюсь высказать свои предположения о частом использовании кусков из АМК-мода.
Забегая вперед, Симб

отредактировал(а) Artos: 13-05-2011 17:39 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
SrAzazello
    
Посты: 3
Откуда:
Возраст:
13-05-2011 17:43 GMT3 час. #1479825   
Artos сердечно благодарю


singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
13-05-2011 18:06 GMT3 час. #1479836   
Gun12

Можно ведь вычислить минимальное значение (5 в данном случае), и произвести дейст**5014618d69873ce82a42**., ...},
{tim = 25, id = ..., ...},
{tim = 80, id = ..., ...},
и т.д.
}[/code]
Это уже отсортированная таблица.
Сортировка:
[code]table.sort(tbl, function(a,b) return a.tim < b.tim end)[/code]
Добавлять новые таймеры с дополнительными данными соответственно через table.insert(tbl, data)
В неё же можно загонять как функции вызываемые при окончании отсчётов, так и требуемые аргументы, дабы и здесь не обращаться в pstor.
Для работы таймеров достаточно производить сравнение только с первым индексом таблицы.
По окончании отсчёта, после проведения требуемого действия, удаляем таймер из функции. После удаления пересортировка не требуется. Минимальный таймер автоматически сместится к первому индексу.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
13-05-2011 18:21 GMT3 час. #1479841   
singapur22
Это все же 'академические' выкладки. Применительно к практике/игре, как уже говори**5017618d69873ce82a42** --хранит реал-тайм таймеры
local g_timers={} --хранит таймеры в игровом времени
[/code] - но далее объявления применения эти таблички так и не нашли ни у кого ... ;-)


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
13-05-2011 18:26 GMT3 час. #1479845   
Artos

Пересечение времен срабатывания - нередкость.
Ну это не проблема, достаточно установить повторную проверку, уже следующего таймера, после удаления сработанного в одном и том же цикле. И если следующий таймер больше, то ждём дальше.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
EVREY019893
    
Посты: 24
Откуда:
Возраст:
13-05-2011 18:40 GMT3 час. #1479849   

# АнархОПанк :
EVREY019893 количество врагов увеличивай спавном, ранг редактируй в профилях НПС, экипировку тоже в профилях НПС редактируй, время перерождения редактируй в se_respawn.script.

А что и где, об этом подробно написанно везде, достаточно вбить вопрос в гугль/яндекс.



И гугль и яндекс выдают одинаковую инфу:
В файле S.T.A.L.K.E.R. - Shadow of Chernobyl\gamedata\scripts\se_repawn.scripts найти строку
idle_time:setHMSms( 0, 0, 0, math.random(self.idle_spawn_min, self.idle_spawn_max)*1000)
и исправить на
idle_time:setHMSms( math.random(Первое число, Второе число), 0, 0, math.random(self.idle_spawn_min, self.idle_spawn_max)*1000)
где первое и второе числа задают диапазон случайной переменной в часах отвечающей за респаун.

А у меня if self.idle_spawn_max == nil then
self.idle_spawn_max = self.idle_spawn_min
Может я не там ищу?! Подскажите пожалуйста
end


Artos
    
Посты: 4176
Откуда:
Возраст: 65
13-05-2011 18:41 GMT3 час. #1479851   
singapur22
И все же еще один из 'НО и ЕСЛИ' аргумент за более дубовы и безопасный отказоустойчивый вариант алгоритма:
Таблица хранится локально. Обращения к таблице могут идти в самые разные моменты игры. И из бындеров и из поведенческих схем и др. Я на практике уже не раз натыкался на некое распараллеливание выполнения кодов, когда порою что-то выполняясь раньше - запаздывало в итоге и наоборот.
Достоинство одномоментного сканирования всей таблицы с единовременным определением отработавших и переопределением следующего начала цикла сканирования в том, что это именно единомоментно и практически исключает рассинхронизацию. Тем более в твоем варианте при добавлении новых таймеров тебе придется все одно итерировать по таблице (хотя бы какой-то части) в поисках 'места' для нового таймера. В исходном варианте достаточно сравнить только с текущим 'на взводе' и или заменить или просто добавить в массив. В итоге выигрыш зависит от объема таблицы и от частоты пополнения новыми, и может даже проиграть ...


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
13-05-2011 20:00 GMT3 час. #1479871   
singapur22
Должен сказать что твой вариант идеально подходит, опять же пресловутое ЕСЛИ, нужно считывать все данные из pstor-a.
В таком случае доступ к любым из них будет очень быстрым.
Я бы даже сказал что твой вариант предпочтительнее, если брать как задел на будущее.

Я сделал вариант (ЕСЛИ :)) нужно только значения таймера.
И вообще мой алгоритм - это набросок. Если конкретно задаться целью, то тогда можно говорить и о нюансах.


Не стань номинантом премии Дарвина.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
13-05-2011 21:28 GMT3 час. #1479898   
(сорри, пишу с ноута в пути и могу накосячить ...)
Ну тогда предлагаю сформулировать условия для универсального блока таймеров для игры и попытаться выдать оптимальный вариант. :-)
1. Необходимы два массива таймеров достаточного объема: от 32 до 100 значений, каждый.
а) массив таймеров игрового времени с дискретностью не более минуты игрового времени;
а) массив таймеров 'реального' времени (не зависящего от тайм фактора, дабы использовать типа в ситуациях 'солдат спит - служба идет').
2. Объем (байтовый) данных, которые должны сохраняться - минимально возможный;
3. Запуск/установка/изменение/удаление таймера могут быть ассинхронными с различными циклами биндеров и т.п.
4. Сохранение необходимых значений массива должно быть диступно/синхронизировано с соответствующим колбэком актора.
5. Доступность проверки наличия как таймера, так и его значения 'оставшееся время' (или его производная).
6. Вторым (после времени) значением/параметром таймера должна быть переменная, позволяющая хранить любые типы данных (строка, число, таблица, ...) и возвращаемая таймером/функцией коллбэка по его окончании.
7. (опционально) Любая нештатная/непредвиденная ситуация/сбой таймера не должен приводить к фатальным для игры последствиям. Т.е. 'единичный сбой' допустим только с единичным таймером, не нарушающим общую работу блока.
...
и далее ...

Напишем?! :-)


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
13-05-2011 21:59 GMT3 час. #1479910   
А почему бы и не написать?
Только нужно разжевать по каждому пункту.
Малейшее недопонимание в скриптовании, сам знаешь, недопустимо и чревато.
И сразу по первому пункту. А зачем ограничивать кол-во таймеров в массивах?
Ну и желательно хоть какой-то первый набросок кода, чтобы было от чего плясать.


Не стань номинантом премии Дарвина.
Flack
    
Посты: 31
Откуда:
Возраст: 32
13-05-2011 23:08 GMT3 час. #1479928   
Подскажите, пожалуйста, где можно почитать о настройках монстров?:blink


MRN$
    
Посты: 114
Откуда:
Возраст: 16
14-05-2011 00:35 GMT3 час. #1479939   

а) массив таймеров игрового времени с дискретностью не более минуты игрового времени;


2. Объем (байтовый) данных, которые должны сохраня


всё легко
Artos
    
Посты: 4176
Откуда:
Возраст: 65
14-05-2011 01:40 GMT3 час. #1479943   
Gun12 , MRN$
Согласен, что и должно быть достаточно 'разжевано' и понятны критерии и конечные цели.
Собственно наброском могут послужить коды из Симбиона. Над ними уже немало передумато, модернизировано и набито шишек ... хотя и р

отредактировал(а) Artos: 14-05-2011 02:43 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
14-05-2011 08:25 GMT3 час. #1479972   
Есть активный квест в ПДА с к примеру, тремя пунктами. Как можно скриптом добавить в квест четвертый пункт, плюс ко всему он должен добавиться не последним пункт**5001618d69873ce82a42** = SGameTaskObjective(new_task,3) -- Создаем четвертый пункт
objective:set_description(Description_2)
objective:add_complete_func(CompleteFuncObjectiv2)
task:add_objective(objective) -- Добавляем четвертый пункт[/code]


Новые фишки для сталкера(см. журнал)
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
14-05-2011 10:34 GMT3 час. #1479997   
Таймеры
Я согласен. Предложенный мной вариант годится только для безусловных таймеров.
По сути, если делать универсальный, многопользовательский таймер, для начала нужно выделить все типы таймеров. дабы не упустить не одного типичного условия. Вот расписал несколько типов таймеров:
1. одноцикловые таймеры:
1а). безусловный >> запуск, отсчёт, событие по окончании отсчёта, удаление таймера.
1б). с условием запуска >> запуск при выполнении условия, отсчёт, событие по окончании отсчёта, удаление таймера.
1в). с условием отсчёта >> запуск, при выполнении условия производить отсчёт, или продолжать отсчёт, если онный был приостановлен при не выполнении условия, событие по окончании отсчёта, удаление таймера.
1г). с условием запуска и с иным условием отсчёта >> то же, что и в п.п. 1б) + 1в)
1д). с условием отсчёта и сбросом таймера при его не выполнении >> то же, что и в п.1в), но при невыполнении условия, производить сброс таймера в начало отсчёта.
2. многоцикловые (многоуровневые) таймеры:
2а). безусловный, с установленным количеством циклов >> запуск, отсчёт, событие по окончании отсчёта, сброс в начало отсчёта, повторный запуск, ... и так до установленного колличества циклов. По переполнении циклов удаление таймера. Так же возможность установки иного события на перемполнение второго уровня таймера (перед удалением)
2б). с установленным условием на запуск цикла таймера, с установленным количеством циклов >> запуск при выполнении условия, отсчёт, событие по окончании отсчёта, сброс в начало отсчёта, запуск следующего цикла при выполнении условия, ... и так до установленного колличества циклов. По переполнении циклов удаление таймера.
2в). безусловный, постоянный(с бесконечным количеством циклов вторго уровня) >> запуск, отсчёт, событие по окончании отсчёта, сброс в начало отсчёта, повторный запуск, ... и так до бесконечности
2г). постоянный, с установленным условием на удаление таймера >>то же, что и в п.2в), но при выполнении установленного условия удалять таймер.
2д). постоянный, с установленным условием на запуск следующего цикла >> то же, что и в п.2б), но до бесконечности.


Это только некоторая часть всеразличных типов таймеров. И их все нужно учитывать.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
VOva-VIP
    
Посты: 325
Откуда: Миасс
Возраст: 27
14-05-2011 12:38 GMT3 час. #1480045   
где лежит звук, который начинается когда в телепорт заходишь, ещё такой ультразвук, где он?
и тот же вопрос что прописать в алл.спавне в скрипт НПС чтобы он был мертвым??


Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
14-05-2011 14:29 GMT3 час. #1480083   
VOva-VIP

что прописать в алл.спавне в скрипт НПС чтобы он был мертвым

Тебе уже говорили как ТУТ и ТУТ. Сто раз что ли повторять...


Новые фишки для сталкера(см. журнал)
EVREY019893
    
Посты: 24
Откуда:
Возраст:
14-05-2011 16:54 GMT3 час. #1480163   
Подскажите пожалуйста,как убрать ограничение на использование ПКМ только в экзоскелете(какой конфиг ПКМ LTX или скрипт) и где взять хар-ки ПКМ из OGSE 0692.

P.S. Я понимаю,вопросы для многих присутствующих "детские",но ведь вы тоже с чего-то начинали.Заранее благодарен


Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
14-05-2011 17:20 GMT3 час. #1480169   
EVREY019893
Ищи в своих файлах .script нечто


Не стань номинантом премии Дарвина.
Mehanik Yar
    
Посты: 469
Откуда: Уфа
Возраст:
14-05-2011 23:03 GMT3 час. #1480326   
Вопрос есть. В общем заспавнил я два телепорта в Лиманске через функцию спавна аномалии. В результате при загрузке сохранения или переходе С Лиманска на другую локацию возникает вылет:

Expression : no_assert
Function : CALifeStoryRegistry::add
File : E:\stalker\patch_1_0004\xr_3da\xrGame\alife_story_registry.cpp
Line : 30
Description : Specified story object is already in the Story registry!

Ну убрал я из спавна аномалии телепортов и все ок. Но решил я заспавнить через функцию рекристоры.
ВОт сами функции.

function spawn_limansk_abhihht_teleport_1()
local pos = vector():set(34.205322265625,3.2952563762665,245.40208435059)
local lv = 44965
local gv = 3021
local radius = 3
local ltx = "[logic]\n"..
"active = sr_teleport@in\n"..

"[sr_teleport@in]\n"..
"timeout = 150\n"..
"point1 = teleport_limansk_wiser11_walk\n"..
"look1 = teleport_limansk_wiser11_look\n"..
"prob1 = 10\n"..
"look2 = teleport_limansk_wiser12_look\n"..
"prob2 = 20\n"..

_new_create.create_restr(pos, lv, gv, radius, ltx)

end

function spawn_limansk_abhihht_teleport_2()
local pos = vector():set(164.21752929688,14.300233840942,237.09986877441)
local lv = 40862
local gv = 3015
local radius = 5
local ltx = "[logic]\n"..
"active = sr_teleport@in\n"..

"[sr_teleport@in]\n"..
"timeout = 150\n"..
"point1 = teleport_limansk_wiser1_walk\n"..
"look1 = teleport_limansk_wiser1_look\n"..


_new_create.create_restr(pos, lv, gv, radius, ltx)

end


и файл _new_create

function create_restr(storid, pos_restr, lvid_restr, gvid_restr, custom_restr, radius_restr, ax_x, ax_y, ax_z)
local obj = alife():create("space_restrictor", pos_restr, lvid_restr, gvid_restr)

local packet = net_packet()
obj:STATE_Write(packet)
----------------------- load ------------------------------
local game_vertex_id = packet:r_u16()
local cse_alife_object__unk1_f32 = packet:r_float()
local cse_alife_object__unk2_u32 = packet:r_u32()
local level_vertex_id = packet:r_u32()
local object_flags = packet:r_u32()
local custom_data = packet:r_stringZ()
local story_id = packet:r_u32()
local spawn_story_id = packet:r_u32()
local shape_count = packet:r_u8()
for i=1,shape_count do
local shape_type = packet:r_u8()
if shape_type == 0 then
local center = packet:r_vec3()
local radius = packet:r_float()
else
local axis_x = packet:r_vec3()
local axis_y = packet:r_vec3()
local axis_z = packet:r_vec3()
local offset = packet:r_vec3()
end
end

local restrictor_type = packet:r_u8()
-------------------------- save -----------------------------
packet:w_begin(game_vertex_id)
packet:w_float(cse_alife_object__unk1_f32)
packet:w_u32(cse_alife_object__unk2_u32)
packet:w_u32(level_vertex_id)
packet:w_u32( bit_not(193) )

if custom_restr ~= nil then
if string.find (custom_restr, '.ltx') ~= nil then
custom_restr = '[logic]\n cfg = '..custom_restr..'\n'
end
packet:w_stringZ(custom_restr)
else
packet:w_stringZ(custom_data)
end

if storid ~= nil then
packet:w_u32(storid)
else
packet:w_u32(story_id)
end

packet:w_u32(spawn_story_id)

packet:w_u8(1)
if radius_restr ~= nil then
packet:w_u8(0)
packet:w_vec3(vector():set(0, 0, 0))
packet:w_float(radius_restr)
elseif radius_restr == nil and ax_x == nil then
packet:w_u8(0)
packet:w_vec3(vector():set(0, 0, 0))
packet:w_float(2.5)
else
packet:w_u8(1)
packet:w_vec3(vector():set(ax_x, 0, 0))
packet:w_vec3(vector():set(0, ax_y, 0))
packet:w_vec3(vector():set(0, 0, ax_z))
packet:w_vec3(vector():set(0, 0, 0))
end

packet:w_u8(restrictor_type)
-----------------------------------------------------
packet:r_seek(0)
obj:STATE_Read(packet, packet:w_tell())
end



Однако получается вылет:

Expression : fatal error
Function : CScriptEngine::lua_error
File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line : 73
Description :
Arguments : LUA error: ...er - Зона поражения\gamedata\scripts\xr_logic.script:602: attempt to call local 'func' (a nil value)

Так же почему то в Лиманске, Госпитале, Заброшенной Деревне не играет фоновая музыка, хотя она была прописана, и в предыдущем дополнении к паку локаций фоновая музыка работала.

Можете помочь с этими проблемами?


АнархОПанк
    
Посты: 998
Откуда:
Возраст:
15-05-2011 00:05 GMT3 час. #1480347   
SrAzazello можно. Бери 3d редактор, ставь.

Текстуру прицела правь Фотошопом.

Mehanik Yar для начала нужно было разобраться в вылете, хотя бы (Через яндекс, гугл)... Твой вылет, говорит о том, что у твоего телепорта(ов) "стори айди", который уже есть у какого-то объекта в игре. Погляди строчки в секциях story_id = число, они не должны повторяться в игре!

Допустим, спавнишь два телепорта:

[700]
teleport
144.466,34546.353,3535.355
story_id = 91


[701]
teleport_2
168.456,348946.353,3935.365
story_id = 91

Такого быть не должно. Перепроверяй.




Форумы Архив » Свалка Модификации ТЧ, вопросы и ответы (старое, по 14.06.11)


Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для
просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.

Использование материалов сайта возможно с разрешения администрации. Все права защищены. © 2004–2025 «Stalker-Portal.ru»