Вот такая закономерность. если на локе "новой" заспавнить примерно 100 объектов, ну точно не считал, то на одной локе это приводит к тому что игра вылетает если из нее выйти или загрузить любое другое сохранение. На другое локе, генераторы, это приводит к вылету во время игры.
вылеты происходят только на новых локах.
Спавнить можно хоть что через алл.спавн. Можно например машины, мутантов и когда их число большое, то все, начинаются глюки.
Можно тупо рексисторы спавнить.
При этом спавн через функции таких ошибок не выдает, т.е. важен сам факт что через алл.спавн сделано, если не через него то все ок, а если через него то нужно знать меру, хотя мера эта слишком мала, еле еле миссии зафигачешь.
Короче как вызывать функцию спавна не через диалог, а через ну там рекристор, или лучше чтобы вообще на нужной локе сразу спавнился?
В файле логики:
[code][logic]
active = nil[/code]
НПС станет безработным. Struck
Да не, я это знаю. Я не удачно показал таблицу, я имеk ввиду, что там должно быть не по порядку, вот так:
erlik в классе CUIStatic() можно переносить текст со строки на строку?...если и конфигом даже можно то тут не вариант, но на худой конец всё лучше чем кучей статиков
psevdochel
Цитирую сам себя::-)
...данный вылет - вероятнее всего следствие какой то криво написанной функции в движке и он проявляется рандомно как в оригинале так и во все модах. Особенно при нажатии кнопки "взять все" при обыске трупа или ящика, при попытке скушать или использовать предмет из чужого инвентаря, просто при смерти какого то NPC, когда ему спавнится лут и уничтожаются его вещи. По мнению KamikaZze движок изредка теряет серверный объект уничтожаемой вещи, в результате чего происходит вылет.
Если же вылет (не на чистой игре, а в моде) стабильный - при одном определенном действии - его можно и нужно лечить. Лично я у себя в одной разработке подобный вылет вылечил. Просто поставил проверку на существование серверного объекта(хотя функции требовался только клиентский объект - лишняя, на первый взгляд, проверка решила проблему).
добавлено спустя 1 минуту
Struck
Насколько у помню - нельзя. В том смысле, что нельзя в коде - настройка режимов переноса есть вроде как только в xml.
добавлено спустя 1 минуту
пример: complex_mode="1">
---------------------------------------------------------------------------------------------
Мне именно так пришлось выкручиваться. Так как иного способа для переноса строк в статике я не нашел.
отредактировал(а) erlik: 28-12-2010 22:24 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Привет всем!!!
Подскажите что за вылет при обыскивании трупа бандюка, читал в постах, что такое могет быть если не хватает памяти, но комп. вроде бы не слабый, видеокарта тоже, настройки видео выставил в игре по минимуму, тогда почему вылетает???
Одно точно, граната тут не при чем, использую частично мод Extended_Equipment_MOD, от LEXZ, там он костюмы разнообразит. Взял у него текстуры и LTX. файлы. Кстати точно такой же вылет и при игре в новый сюжет 4 от АМК.
Expression : fatal error
Function : CInifile::r_section
File : E:\stalker\patch_1_0004\xrCore\Xr_ini.cpp
Line : 342
Description :
Arguments : Can't open section 'grenade-rgd5'
Сипасибо кто подскажет!
Внатуре пацаны, гаси их... Как сделать НПС бессмертным...
Логика в ТЧ!
Здесь нарисована цифра четыре "8", если вы видите восемь, то вам нужно к нам...
erlik, Stalk15 спасибо оогромное! Но вот еще ... даж не знаю что это, в общем когда на лагерь сталкеров нападают враги, или же НПС просто выполняет свою работу за пределами смарта (но заданную смартом), то если вражеский НПС раненый (то есть работает по схеме раненого) то все НПС (которые под смартом) достают оружие из первого слота и идут все дружно в сторону раненого, и каждый встает и целиться в него несколько секунд пока кто-то не застрелит ... потом секунду спустя все расходяться по своей работе ... Это можно как то исправить?
losiara
Такой секции предмета - grenade-rgd5 - просто не существует в игре(если не считать инвентарного имени гранаты в ее секции).
Существует grenade_rgd5
Бери редактор и исправляй в скриптах везде, где используется вариант grenade-rgd5 на правильный.
Либо - коли не хочешь париться, просто создай в секции этой гранаты еще одну секцию:
[grenade-rgd5]:grenade_rgd5
И все. Больше ничего писать не требуется.
ЗЫ: Память тут не причем.... Разве что память модмейкеров :-)
добавлено спустя 6 минут
psevdochel
Это уже следствие работы AI-схемы - и если можно иcправить, то нужно схему(и ее настройки) и ковырять. Либо свою писать, чтобы сталкеры поступали как тебе хочется.
отредактировал(а) erlik: 28-12-2010 22:55 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Спасибо erlik, попробую, а про память, прочитал в постах, только не на этом портале, не помню где, ну они имели ввиду не хватает видеопамяти, не оперативки... так у меня видео нормальная, 256м...
И главное гад, только при обыске людей вылетает и не всех, а если загрузишься с сохраненки, и обыщешь того же типса, то тут же вылет опять!!! Ну ладно сейчас попробую!
добавлено спустя 42 минут
#losiara :
Спасибо erlik, попробую, а про память, прочитал в постах, только не на этом портале, не помню где, ну они имели ввиду не хватает видеопамяти, не оперативки... так у меня видео нормальная, 256м...
И главное гад, только при обыске людей вылетает и не всех, а если загрузишься с сохраненки, и обыщешь того же типса, то тут же вылет опять!!! Ну ладно сейчас попробую!
Вот нашел про память...
1) Вылеты при нехватке памяти:
Симптом: любой вылет со ссылкой на "out of memory" или аналогично "insufficient resources available" или "no more data is available". Кроме того, некоторые вылеты с "Can't open section" тоже могут быть связаны с нехваткой памяти.
Причина: STALKER – игра крайне требовательная к ресурсам, она перегружена даже в чистом виде, и в особенности некоторые карты – Кордон, Тёмная Долина, Армейские Склады, Припять. При этом совершенно НЕ ИМЕЕТ ЗНАЧЕНИЯ сколько у вас оперативной памяти! Для процессов 32-битной версии Виндовс доступная память ограничена 2 Гб и не больше.
Лечение: снизьте качество текстур, или в особо тяжких случаях, перейдите на статичное освещение. Кроме того, можно попробовать играть с опцией командной строки " -noprefetch". Эту опцию без кавычек можно вбить в свойства ярлыка сталкера через пробел сразу за ссылкой на экзешник игры. Если же вы играете на Висте, можно попробовать играть, запустив сначала команду "bcdedit /SetIncreaseUserVA 2700", залогинившись с административными правами.
отредактировал(а) losiara: 28-12-2010 23:39 GMT3 час. Внатуре пацаны, гаси их... Как сделать НПС бессмертным...
Логика в ТЧ!
Здесь нарисована цифра четыре "8", если вы видите восемь, то вам нужно к нам...
#erlik :
будучи помещена методом в самое начало файла(в начало таблицы модуля...)
В принципе понятно что ты имеешь в виду и что хочешь сделать.
Подумаю на досуге. А пока ...
Дело в том, что при использовании setfenv эта функция никуда не перемещается. Она всё равно остаётся полем глобальной таблицы того модуля, где была объявлена.
А вот для работы использует уже данные из модуля установленного окружения. И всё.
допустим функция должна возвращать значение некой внешней локальной переменной из файла A.
Поэтому ни о каком использовании локальной переменной из другого файла не может идти речь ( на моём уровне познания. пока)
Когда функция из модуля B будет запрашивать данные из модуля А, то она будет искать их в глобальной таблице этого модуля. Но туда записываются только глобальные данные.
Поэтому вывод (повторю - на данный момент познания) - Чтобы "провернуть" подобное, объявляй в модуле А глобальные переменные, используемые функцией модуля В.
отредактировал(а) Gun12: 29-12-2010 11:13 GMT3 час. Не стань номинантом премии Дарвина.
erlik
Чуть дополню ответ Gun12.
Cобственно setfenv не 'создает' функцию, а "устанавливает окружение функции" и имеет форму вызова как: setfenv (f, table), где в твоем случае может быть стОит поиграться аргументом 'f'.
f может быть как Lua функцией, так и числом, которое указывает уровень стека функции: Уровень 1 – это функция, вызывающая setfenv.
setfenv возвращает данную функцию.
В особом случае, когда f равно 0, setfenv изменяет окружение запущеной нити. В этом случае setfenv ничего не возвращает
Честно говоря, не особенно копался с понятием 'уровень стека', т.к. я создаю виртуальные функции в самом модуле, в котором или уже есть требуемая для трансляции (в другой модуль) функция или создается и хватает значения '1' (setfenv(1,oModule)).
erlik
Спасибо.
Я опять с таб**5001b67681f3126adde4**bandage"
}
[/code]
[code]local gygy = "medkit_scientic"
[/code]
Что нужно сделать, чтоб получить число, написанное в квадратных скобках и соответствующее определенному предмету(в данном случаем medkit_scientic)?
То есть проверить, есть ли в таблице medkit_scientic и, если есть, получить число, написанное в квадратных скобках соответствующее medkit_scientic?
Привет всем. Может кто либо подсказать мне в одном деле. Я создал новую иконку в ui_icon_equipment.dds, выбираю "альфа канал" но он по какойто причине не показывает мою иконку, пропорции я сохранял, что делать не знаю, может вы знаете.
SkyLoader
Спасибо.
У меня тут какие-то странности происходят **5001b67681f3126adde4**,
[1] = "ecolog_outfit",
[1] = "protection_outfit"
}[/code]
Из этой таблицы я беру рандомно один итем:
первый способ:
[code]local rrr = all_items[math.random(1, table.getn(all_items))][/code]
второй способ с помощью функции Gun12:
[code]local rrr = GetItem(all_items)
function GetItem(table)
local t = {}
for _, v in pairs(table) do
t[#t+1] = v
end
if next(t) then
return t[math.random(#t)]
end
end[/code]
Всегда, в двух способах, я получаю только эти итемы: wpn_addon_scope, wpn_addon_scope_susat, wpn_addon_silencer, protection_outfit. Это как так? Получается, что остальных обьектов в таблице как будто просто нет. В чем может быть проблема? erlik
Спсибо, что разьяснил. А то я думал, чоё за мистика:-)
отредактировал(а) Stalk15: 29-12-2010 18:53 GMT3 час. Новые фишки для сталкера(см. журнал)
Stalk15
Табличные ключи должны быть уникальными.
Добавляя в таблицу значения с одним и тем же ключом - ты просто затираешь предыдущее поле с тем же ключом.
Срочно учить матчасть.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.