TheDoktor
Если у тебя версия 1.004, то вот treasere_manager.script для этой версии, там эта и другие ошибки поправлена (readme в комментариях к архиву): >>Click Me<<
Если версия игры, у тебя какая другая, то скинь этот файлик в ЛС, помогу с адоптацией.
P.S. Правка не моя, а взята из stk10004_bug_fix_attempt_24aug. PoG ne Riba
Зачем делать велосипед, твоя идея уже давно реализована в моде под названием Slow Medicine, вот его описание:
Slow Medicine 0.2b by Министр (версия для ТЧ 1.0004)
Маленький модик делающий восстановление здоровья от аптечек постепенной (типа
Те мнения, которые пишутся с ошибками, не воспринимаются как умные…
Лучше иной раз тупить, но умным быть, чем постоянно умничать, но быть тупым.
Все, кто еще говорит «ИХНИЙ», будут гореть в аду!
ColR_iT
Про всё что ты написал я знал, за ссылку - спасибо
добавлено спустя 4 минут
П.с. ColR_iT я бы не хотел использовать amk скрипты в своём моде, поскольку я о их свойствах не в курсе, а не понимание приведёт к серии тупых, неисправимых багов, да и вылеты с сонфигами от скрипта в логе не отображается, пишет что не возможно выполнить функцию, а мне нужно ещё много модов совместить, и как я буду искать причину ошибки ?
добавлено спустя 10 минут
Мне кто нибудь даст ссылку на худ инвертор (чтоб и с рюкзаком и с торговлей новой) желательно на манер Солянки, а то самому в падлу, а видел кучи разных но так и не нашёл
отредактировал(а) PoG ne Riba: 14-02-2012 17:02 GMT3 час. гений - нуб ^^'
voven
Мас халат, также реализован в каком-то моде, не то в НС, не то ТТ2.
добавлено спустя 1 минуту
TheDoktor
Никак. Это два файла разной направленности.
Твоя задумка это тоже самое, что слить воедино борщ и кастрюлю, в которой он варится.
отредактировал(а) ColR_iT: 14-02-2012 22:00 GMT3 час. Те мнения, которые пишутся с ошибками, не воспринимаются как умные…
Лучше иной раз тупить, но умным быть, чем постоянно умничать, но быть тупым.
Все, кто еще говорит «ИХНИЙ», будут гореть в аду!
Связистт
Для статики - не обязательно. Для динамики нужно вписывать, чтобы корректно работал бамп.
Можно и обойтись... для этого нужно прогонять текстуру через SDK, делая .thm файлы, кидаешь их вместе с текстурами и всё, ничего никуда писать не нужно. Этим способом воспользовались сами же разработчики в ЗП, там файла textures.ltx нет.
отредактировал(а) ColR_iT: 15-02-2012 19:46 GMT3 час. Те мнения, которые пишутся с ошибками, не воспринимаются как умные…
Лучше иной раз тупить, но умным быть, чем постоянно умничать, но быть тупым.
Все, кто еще говорит «ИХНИЙ», будут гореть в аду!
Arguments : LUA error: ...ow of chernobyl\gamedata\scripts\amk_particle.script:46: attempt to index field 'obj' (a nil value)
???? странно
Написано amk_particle - этож партикли ? если дело в этом то мне кажется что у тебя либо не отображается визуальные эффекты которые подключены к выбросу, либо полазь в wether мож там косяки
П.С. Может быть вылет из за дефиса в названии оружия, когда ты его через характер НПС спавнишь ?
добавлено спустя 2 минут
Всегда хотел спросить, можно ли убить определённых либо всех мутантов на указанной локации ?
отредактировал(а) PoG ne Riba: 16-02-2012 10:49 GMT3 час. гений - нуб ^^'
Не всегда лог указывает именно на тот скрипт, где допущена ошибка (либо не переданы значения переменным). Данного тобой мало. Так что смотрим, что есть:
Анализ приведенного кусочка (что является делом крайне неблагодарным).
1) Переменной self.start_pos (наверняка в скрипте создан свой класс) присваиваем значение переменной (либо аргумента) pos, которая в свою очередь содержит ссылку на объект класса C++ класса vector с уже установленными свойствами. Другими словами у нас есть некие координаты (pos.x, pos.y, pos.z).
2) Блок условного оператора if. Если вышеописанный объект С++ класса vector существует (т.е. заданы координаты) к объекту С++ класса particles_object (ссылка (Userdata) на него содержится в переменной self.particle) применяем метод класса, передавая в качестве аргумента объект С++ класса vector (pos): function play_at_pos(const vector&);
На русском: проигрываем партикл по указанным координатам.
Если объект С++ класса vector не задан (nil) всё дальнейшее не выполняется (пропускается).
3) Если значение переменной self.sound относиться к Истине... Не указано где формируется данное значение, но из дальнейшего контекста следует, что переменная self.sound содержит ссылку (Userdata) на объект С++ класса sound_object. Итак если данный объект создан (т.е. известно какой звук проигрывать) выполняем проверку с логическим отрицанием not . Если звук уже проигрывается
уходим на else и к объекту С++ класса sound_object применяем метод: function set_position(const vector&);
Если же не проигрывается проигрываем его, применив метод: function play_at_pos(game_object*, const vector&, number);
И в том, и в другом случае получение объекта (const vector&) происходит следующим образом:
self.obj:position(). Т.е. к некоему объекту применяем метод function position() const, который и возвращает объект С++ класса vector с уже установленными свойствами. Другими словами мы получаем координаты объекта self.obj.
Но если данный объект не создан (не передан) получаем твой вылет. Твоя задача, во первых проверить,что передается в качестве объекта, выяснив для начала его тип и класс. Т.е., применив функции для вывода сообщений на экран или в консоль получить type (self.obj). А вот в зависимости от результата (nil либо userdata) будем выписывать дальнейший рецепт.
Не лишним будет также поискать в файле все места кода, содержащие переменную self.obj, типа
self.obj = obj и т.п.
отредактировал(а) Dark Scripter: 16-02-2012 13:03 GMT3 час.
Dark Scripter
Хорошо, что ты понимаешь глубину всего этого, но вот TheDoktor, вероятно может этого и не понимать (не в обиду сказано). Для чего усложнять и без того сложную для человека ситуацию. Анализ приведённого кусочка скрипта - это отлично, есть чему поучится, но скорее всего может и не к чему не привести, поскольку данный код может вовсе не относится к указанному вылету. TheDoktor
Судя из вылета у тебя в файле amk_particle.script, в 46 строке, переменная obj равна nil. Открой данный файл в реда
Те мнения, которые пишутся с ошибками, не воспринимаются как умные…
Лучше иной раз тупить, но умным быть, чем постоянно умничать, но быть тупым.
Все, кто еще говорит «ИХНИЙ», будут гореть в аду!
Я как программист-отладчик, все-таки рассуждаю следующим образом. Если человек выкладывает кусок кода и лог ошибки, значит он локализовал место её возникновения и установил взаимосвязь ( к примеру, комментиров**50046c9725ff35736f77** : raii_guard::~raii_guard
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line : 748
Description : ...k.e.r. - Зов Припяти\gamedata\scripts\ph_code.script:26: attempt to index global 'ui_numpad' (a nil value)[/code]
И много информации в 26 строке: local numpad = ui_numpad.numpad(self):-) И про ui_numpad.script ни слова.
Dark Scripter
Ну почему же не слова... А как же определение объекта numpad одноимённого класса, из модуля ui_numpad? Может ты где-то недоглядел или проглядел?
Те мнения, которые пишутся с ошибками, не воспринимаются как умные…
Лучше иной раз тупить, но умным быть, чем постоянно умничать, но быть тупым.
Все, кто еще говорит «ИХНИЙ», будут гореть в аду!
Имелось ввиду отсутствие в логе , т.е. наподобие Description : ...k.e.r. - Зов Припяти\gamedata\scripts\ui_numpad.script..., что для большинства, ну назовём их новичков, берущихся толковать в данном топике логи будет означать, что в скрипте ui_numpad.script ошибок нет, а есть они в строке под номером 26 файла ph_code.script. А значит, по местным обычаям надо её закомментировать и вылета нет&P
Arist
Я наконец таки нашёл....... хотя не очень и искал :-P
в файле ogsm_surge.script есть строчки
if level.name() == "l01_escape" then
psy_hit.power = 0.0005
psy_hit.type = hit.radiation
db.actor:hit(psy_hit)
end
я думаю ты и сам догадался что и куда ;-)
Короче говоря
if level.name() == "l01_escape" then - имя локи
psy_hit.power = 0.0005 - хит, походу просто отнимает ХП
psy_hit.type = hit.radiation - колбасит радиацией
ну и всё ! я уже проверил на Болоте ВСЁ работает, если разберёшься как делать убежища, скинешь мне скрипт с ними, а тоя в этом деле - тюфяк :-G
отредактировал(а) PoG ne Riba: 16-02-2012 20:20 GMT3 час. гений - нуб ^^'
PoG ne Riba
Коли уже сам разобрался, то вкратце для общего кругозора.
Получить имя уровня можно с помощью глобальной функции function name() из прос**5001b67681f3126adde4**ip( db.actor, level_name) -- сообщение на экран
get_console():execute(level_name) -- вывод в консоль
if level_name == "l01_escape" then
...
[/code]
отредактировал(а) Dark Scripter: 16-02-2012 21:01 GMT3 час.
Dark Scripter
Не, я спрашивал как его узнать, ну что именно "l01_escape" а не другое название...
А пример я написал для Arist, мы с ним выброс на новых локациях не как не настроим.
vitok96
Замени модель на целую (лучше будет, если создашь новую; заменишь куски на целую- будут гореть фары), измени звуки взрыва на поломку (ну типо заглохла и т.п.)
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.