XrKamp
а что это за партикл? имя напиши - че то знакомое, но возможно я ошибаюсь.
партиклы отыгрываются так:
-- присваиваем переменной ссылку на объект партикла local part = particles_object("ghoul\\snow_effect") -- нужно указать имя партикла и папку нахождения в скомпилированном файле particles.xr (для узнавания пути нужно его декомпилировать, либо в SDK глянуть )
-- берем какую нибудь позицию local pos = db.actor:position()
применяем к полученному объекту метод отыгрыша партиклов part:play_at_pos(pos) -- нужно указать позицию отыгрыша - в данном примере указана позиция ГГ , но можно указать либо просто координаты, либо если нужно чтобы партикл отыгрывался на позиции конкретного объекта нужно определить этоn объект по айди, либо сиду и затем получить его позицию через метод position() - применяется аналогично как с получением позиции эктора.
Все это вставляем в функцию и активируем ее - но партикл будет длиться ровно столько сколько ему прописано - от долей секунды до нескольких секунд. Для длительного отыгрыша нужно использовать другой метод.
Также партикл можно просто вписать в конфиг объекта - если это позволяет его класс.
Но это ты вроде и так знаешь.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
отредактировал(а) djslavikoz: 16-05-2010 16:17 GMT3 час. 1. Вы сейчас в интернете
2. Вы на сайте stalker-portal
3. Вы читаете
5. Вы не заметили, что отсутствует пункт 4
6. Вы это проверили
7. Вы улыбаетесь
8. Поставь себе в подпись и нас будет больше
FLIKER накосячил. Именно накосячил. Где-то ошибка. Этот лог показывает на то что игра не может считать какой-то параметр, он неверен. Вот и получается, игра его не считывает, вылет с таким логгом.
Уж ежели лень отвечать**50076ea8aab1bb10eeba**XX: bad argument #2 to 'format' (string expected, got no value)[/code]
- означает ПРИНУДИТЕЛЬНОЕ ПРЕРЫВАНИЕ (abort), вызванное из какого-то модуля/скрипта.
Принудительные прерывания ( abort("Внимание_Ошибка!") ) специально(!) заложены разработчиками, дабы отлавливать/избегать возникающие ошибки в различных функциях.
Тысячи раз на форумах по Сталкеру такое разъяснялось.
Разъяснялось так же, то, что сведения об ошибке приводятся выше секции FATAL ERROR лога (если конечно разблокирована функция printf() ).
Artos найти такой мод не трудно. Гугл жжот! Может он не знает о существовании оных, я ему написал, что моды такие есть.
Отнють. У меня то же такой лог был. Выявлялся из-за неправильной функции. Разве мой ответ не похож на то что у меня было? Вполне похож. Сужу по себе, как у меня было, и как мне говорили. Ну то что вы опытный мододел я не спорю, однако если я не знаю, не значит, что можно писать так как будто я дурак или тугодум.
АнархОПанк: Сужу по сееб, как у меня было, и как мне говорили.
Вот и получается: Один "второкласник" поучает "первокласника" алгебре и тригонометрии. Через год ... бег по кругу, вот только в головах вместо учения - 'мнеговорилки'.
Я не написал что кто-то дурак или тугодум, но ... Если НЕ знаешь, то какого хрена поучать своему незнанию другого? Чтобы через месяц уже вдвоем поучать следующих?!
Отнють. У меня то же такой лог был. Выявлялся из-за неправильной функции.
Как же глубоко нежелание самому хоть немного думать.
Само название функции, из которой идет упомянутая строка, говорит само за себя! ABORT - специальное принудительное прерывание!
Неужели не ясно, что если ты допустил ошибку в своих ковырялках/дополнялках И ЭТО привело к ошибкам в уже имеющихся кодах, которые снабжены "предохранительным клапаном", то при срабатывании 'предохранителя' валить вину и/или искать причину в "клапане" (в функции abort()) - полная глупость и невежество!
Ты хоть заглыдявал в нее? Задумывался над названием переменной 'reason', которой что-то в printf() выводится?
Разрабы может и не разжевали все до состояния пюре, но многое сделали, чтобы можно было бы понять и найти ошибку, из-за которой приходится крашить игру.
Ну а то, что для прерывания игры сами разрабы применили СПЕЦИАЛЬНО некорректный аргумент для стандартной функции, вместо написания чего-то 'покрасивее' и попонятнее для таких ... как ты, то это даже в укор им ставить нельзя. "Не знаешь, не понимаешь - не лезь ковырять коды" - наверное этим они руководствовались.
Хотя находятся и такие глупцы, которые 'отключают предохранитель' (ремят abort() ).
Artos я и не говорю что вы на прямую кого-то назвали. Ваша фраза "Опять дети в песочнице резвятся" показывает на ваше не уважение, либо на то что если кто-то другой не по вашему "Интеллекту" в модострое, то стоит так писать. Ошибка у меня была, из-за того что не было пробела между двумя знаками. Поэтому и шел вылет, при стрельбе НПС в голову, и то он не всегда а иногда. Или хотите сказать что это сделано принудительно?
Разбор оригинальной функции abort() из "_g.script"
-- Крешнуть игру (после вывода сообщения об ошибке в лог)
function abort(fmt, ...) --/ на входе некое сообщение с аргументами
local reason = string.format(fmt, ...) --/ формирование строки "Причина" из входящих аргументов
assert("ERROR: " .. reason) --/ передача строки в 'стек'
printf("ERROR: " .. reason) --/ вывод в лог строки с причиной прерывания
printf("%s") --/ специально(!!!) якобы вывод в лог строки с НЕОБЯВЛЕННОЙ маской!
end
АнархОПанк
Это не фраза - это эпиграф, под которым пишется пост.
Да, в этот эпиграф я вложил свое отношение. Назвать его (отношение) 'неуважением' может только тугодум и невежа.
Детей, играющих в песочнице, нельзя ни НЕуважать ни уважать, это дети ...
А вот если этим 'детям', обидно сравнение - то может быть стОит НЕ давать повода для подобных сравнений?
Если кто-то вкладывает в чьи-то слова негативный смысл и применяет это к себе - это уже проблема у этого 'кто-то' ...
АнархОПанк
Когда глупость/невежество, сказанные публично переходят некоторые границы или могут повредить другим - считаю возможным дать и 'подзатыльник', дабы пресечь дальнейший 'мусор' или размножение 'невежества'!
Заметь, мой изначальный пост НЕ имел адресата, к тебе адресовалась часть о строке лога.
И то, что ты принял 'на себя' и эпиграф и 'под ним' - говорит все же о чем то ... :-)
АнархОПанк
Не могу НЕ съязвить опять: А раньше ты сам не мог этого узнать понять? Я что-то очень заумное разъяснил? 4 (четыре) банальные строки, не понять которые можно только совсем не зная коды, но ведь ты позиционируешь себя модмейкером(!) и даешь пояснялки другим!
Ты даже посты читать не умеешь и даже после пояснений. Адресована была тебе часть поста, над которой и указал адресата.
А вот то, что задумался и даже принял на себя - эт даже может и не плохо! :-)
Глядишь в следующий раз аккуратнее будешь.
Artos так я исхожу из того, что мне говорили. И вправду, после того как мне сказали в чем беда, так что же, заработало! Поэтому и поясняю другим. При чем он совмещает два мода, с курением. Я не думаю что там принудительный вылет сделан:-)
Раньше. Где? Раньше мне сказали иначе, но правдиво. А Вот теперь узнал и понял.
АнархОПанк
'Правдиво' - в данном случае, несомненно. Строка в логе говорит именно об ошибке в этом модуле.
Но когда вопрошается: "Где я напортачил" - носом ткать в предохранительный клапан, о котором где-то слышал - глупо!
И у вопрошающего понимания не прибавится, только время потеряет. И найдутся еще 'правдивые' советчики-предполагальщики, предлагающие ремить ...
Я не думаю что там принудительный вылет сделан
- а как еще даже в русском языке называется 'принудительное прерывание'? Не нужно быть программистом, чтобы знать значение abort'а.
И как еще можно истолковать разрабовский комментарий к этой функции: "Крешнуть игру (после вывода сообщения об ошибке в лог)"?
он совмещает два мода, с курением. Я не думаю что там принудительный вылет сделан
Ты читать умеешь? (опять язвлю!). Перепрочти все заново. Пару раз.
В особенности это:
Неужели не ясно, что если ты допустил ошибку в своих ковырялках/дополнялках И ЭТО привело к ошибкам в уже имеющихся кодах, которые снабжены "предохранительным клапаном", ...
АнархОПанк, а мы спорим? О чем? :-) ИМХО, вроде бы ты только неумело оправдываешься на мое замечание. (закончили, хотя чувствую еще много 'мусора' в голове, не толко у тебя, осталось) P.S. АнархОПанк, не стоит пытаться делать хорошую мину при плохой игре.
Нужно пытаться НЕ казаться 'знающим', а стать им!
Artos
Обращусь к Вам лично, т.к. подозреваю что больше мне никто не ответит.
Имею в лагере на Кордоне тестовый полигон (как и многие)
Для своих целей убрал сталкеров, поставил гулаг кровососов.
Всё нормально, делают свою работу. Игра запускается, загружается.
Но при загрузке в п**50016ea8aab1bb10eeba**nction configure_schemes(npc, ini, ini_filename, stype, section_logic, gulag_name)
--printf("DEBUG: enable_scripts: npc:name()=%s", npc:name())
local npc_id = npc:id()
local st = db.storage[npc_id]
-- если какая-то схема была до этого активна, деактивировать её
if st.active_section then -- ВОТ НА ЭТУ СТРОКУ
.....[/code]
Подтвердилось что вылет связан имеенно с онлайн, т.к. эта функция вызывается из xr_gulag.script :
[code]-- настроить логику для объекта, который в онлайне.
-- obj=game_object
function gulag:setup_logic( obj, section )
xr_logic.configure_schemes( obj, self.ltx, self.ltx_name, self:get_stype(obj:id()), section, self.name )
......[/code]
Чего то туплю на ночь глядя. Что получается?
В строке local npc_id = npc:id() ID определяется.
В строке local st = db.storage[npc_id] ST присваивается значение nil
Т.е. в db.storage ключ npc_id присутствует, а для него нет значения (искомой таблицы)?
Вопрос. Куда эта таблица может исчезать при перезагрузке? В каком направлении копать?
отредактировал(а) Gun12: 16-05-2010 23:21 GMT3 час. Не стань номинантом премии Дарвина.
Artos У меня вопрос по мобам (монстрам). Вобщем была такая схема Друг от Singapura22, но не доработанная (у меня имеется) :ye) Суть схемы в том что можно брать в помошники монстра. Например слепого пса как сторожевого. Тема вобщем-то интересная не желаеш взяться за доработку? Если что могу скинуть в личку.
Gun12 st ==> storage , как его принято у разрабов 'обзывать (иногда 'а')'.
Причем это хранилище неких переменных/значений используется очень во многих местах/кодах/схемах, в том числе и схемах добавляемых модмейкерами.
Сказать конкретную причину, почему у тебя 'исчез' сторадж можно только после долгого ковыряния в твоих кодах (установленной у тебя игры и дополнений).
Причины могут очень разные, например некорректное удаление объекта в одной схеме/модуле, в то время когда другая схема продолжает этот объект использовать ...
Я сильно у себя не заморачивался, т.к. за подобным уследить и не просто и нет особой нужды, т.к. проще отыскать ошибку там, где она всплывает ... (хотя это и не самое правильное решение!).
В общем я добавил у себя в "xr_logic":
function configure_schemes(npc, ini, ini_filename, stype, section_logic, gulag_name)
local npc_id = npc:id()
local st = db.storage[npc_id] --/ считывается!!!, а не nil'ится if not st then
db.storage[npc_id] = {}
st = db.storage[npc_id]
end --/ если какая-то схема была до этого активна, деактивировать её if st.active_section then
...
Тем самым и ошибки избежав и даже если это был сбой - непись как бы переинициализируется.
Коллизии конечно могут быть, но их уже можно будет отлавливать и лечить.
Исчезать же эта таблица при перезагрузке - ОБЯЗАНА (почти вся), ведь ее ни что не записывает в сэйв.
Запоминается только субтаблица db.storage[npc_id].pstor.
Если все же хочешь/требуется найти причину исчезновения - то и это возможно, но ... как то иначе, чем в этом топике. P.S. насколько помнится, при респавне неписи, которые не удовлетворяют каким-то условиям принудительно уводятся в офф-лайн или даже удаляются (хотя такое радикальное решение вроде из АМК пошло). все это приводит к стиранию st.
karavan
Не стоит давать ссылки на коды Singapura22. У меня в Симбионе давным давно коды HЛC5 (СЯКа), который уже два года назад сделал дружка для Доктора.
Но как то и времени нет для довести его до-ума и много других, более интересных и насущных тем есть.
Если и буду им заниматься, то после релиза Симбиона под ТЧ.
Если охота/нужда не пропадет к тому времени - напомни :-)
Artos
Подобную защиту st я и хотел добавить, да как-то не решился.
А по-правде сказать поленился, и получается, что обменял собственную лень на чужое время, потраченное на меня.
Извиняюсь.
Даже если каким-либо способом, можно сказать "случайно", обойду эту проблему, то знаю что не успокоюсь пока не найду причину. Или же плюну, и опущу планку измерения порога собсвенных возможностей ещё ниже. Но для меня это не предпочтительный вариант:-(
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.