Zander_driver 10 331 Опубликовано 19 Июля 2014 Поделиться Опубликовано 19 Июля 2014 @Dennis_Chikin, А помоему, для грусти нет причин. Кто ясно представляет что делает и зачем, и как этого достичь - у того и вопросы редко возникают. А даже когда возникают, опытный разработчик может на них ответы самостоятельно найти. Сюда, в тему с вопросами, чаще приходят те, кто из-за нехватки опыта не может решить свои проблемы иначе. Так чему же удивляться? И кстати назрел вопрос, достаточно нубский и банальный, но вот не имел я раньше опыта работы с погодой. В файле environment.ltx есть секция weathers, в ней список имен погоды на которые можно переключаться функцией level.set_weather(string, bool) А дальше есть еще секция weather_effects, и в ней еще список имен. но на них так переключаться нельзя - получаем вылет invalid weather name. как эти погодные эффекты правильно вызывать с помощью скрипта? Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Painter 3 368 Опубликовано 19 Июля 2014 Поделиться Опубликовано 19 Июля 2014 Если не ошибаюсь, конечно: level.set_weather_fx("surge_day") Портфолио Ссылка на комментарий
Zander_driver 10 331 Опубликовано 19 Июля 2014 Поделиться Опубликовано 19 Июля 2014 (изменено) void set_weather_fx(string) -- устанавливает погодный эффект,-- описанный в файле weathers\environment.ltx в секции [weather_effects]. Это всякие молнии, -- ветер с туманом, затемнения и пр. Так в частности сделан выброс bool is_wfx_playing() -- соответственно проигрывается ли сейчас погодный эффект Странно что я сам не увидел ну ладно. Теперь что то я не соображу, как его после выключить. level.set_weather_fx(nil) -- так чтоли? Разобрался. Эффект видимо на определенное время рассчитан, и заканчивается сам. Изменено 19 Июля 2014 пользователем Zander_driver Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Painter 3 368 Опубликовано 19 Июля 2014 Поделиться Опубликовано 19 Июля 2014 В ЗП применяется это: level.stop_weather_fx() Как обстоит дело в ТЧ не знаю, не копался. Возможно, имеется такой же аналог. Портфолио Ссылка на комментарий
Ekagors 1 Опубликовано 19 Июля 2014 Поделиться Опубликовано 19 Июля 2014 (изменено) db.actor:item_in_slot(11) ~= "af_oasis_heart" 1. Ты проверяешь не равен ли гейм объект строке ? db.actor:item_in_slot(1) --Вот таким к примеру методом мы получаем объект из первого слота, а как я понял ты проверял секцию, хотя тут тебе вернет объект в первом слоту. Для того что бы получить секцию надо дописать к примеру db.actor:item_in_slot(1):section() --Вернет секцию объекта первого слота (Если он конечно же есть...) 2. Нет проверки что в слоте что то есть вообще, если он будет пуст, то вернет nil Пример: if db.actor:item_in_slot(1) and db.actor:item_in_slot(1):section()=="wpn_pm" then return "блаблабла, это так к примеру" end 3. Тут могу ошибаться но если память не изменяет таким методом нельзя получить предметы пояса как у тебя то есть - db.actor:item_in_slot(11) - не вернет пояс... Функция db.actor:item_in_slot(number) возвращает гейм объект, а на поясе их цела перечень в противном случаи ПЫСы могли сделать что бы она хотя бы массив возвращала, но и такого нет... По моему кто-то очень давно еще на ТЧ писал скрипт получения объектов с пояса, в оригинале же такого вроде нет, в "xray-extensions" есть функции манипуляции инвентарем и по моему поясом. 4. if time_global() - flag_timer < 10000 thenreturn end if db.actor.radiation <= 0.5 then flag_timer = time_global() Ты из time_global() вычитаешь flag_timer, но даешь ей значение только потом, если она у тебя где-то до этой ф-ии назначена тогда ладно, а если нет, то ты из time_global() вычитаешь nil P.S. в третьем пункте не до конца уверен... Изменено 19 Июля 2014 пользователем Ekagors Ссылка на комментарий
aleksn09 2 Опубликовано 20 Июля 2014 Поделиться Опубликовано 20 Июля 2014 1. Я проверяю есть ли арт вообще и нету ли арта в 11 слоте. Тоесть когда я арт в контейнер положу, то редиация уже не будет повышаться. С :section() уже проверял, то же самое.4. Переменной flag_timer я еще вне функции прописал 0.Со вторым и третьим спасибо за подсказку, буду разбираться. Ссылка на комментарий
Callisto 2 Опубликовано 20 Июля 2014 Поделиться Опубликовано 20 Июля 2014 (изменено) все сводится к дичайшему примитиву, и опять таки: "вот, я тут наделал - исправьте мне", и "дайте мне, чтобы все было". Сюда, в тему с вопросами, чаще приходят те, кто из-за нехватки опыта не может решить свои проблемы иначе. В точку! И все про меня Всем здравия желаю И я тоже с нубским вопросом. Надобно мне заспавнить раненного НПС, спавню его попсовой функцией, а вот как подпортить ему здоровье разобраться пока не могу. По поиску на форуме все сводится к нет-пакетам (коих, признаюсь честно я не знаю, т.к. пока надобности не было).Но зародилась надежда, что быть может в ЗП этот момент упростили. Ах да, работаю с ЗП.В оригиналах игр вспомнила только два примера, но оба они мне не подошли Если нет более простого способа, то пойду изучать нет-пакеты Изменено 20 Июля 2014 пользователем Callisto Ссылка на комментарий
Капитан Кузьмичёв 124 Опубликовано 20 Июля 2014 Поделиться Опубликовано 20 Июля 2014 (изменено) Вопрос такой. Как сделать скрипт при взятии предмета из рюкзака?Ответов на этот вопрос не нашёл! Заранее благодарен!!! Изменено 20 Июля 2014 пользователем Капитан Кузьмичёв Ссылка на комментарий
Painter 3 368 Опубликовано 20 Июля 2014 Поделиться Опубликовано 20 Июля 2014 (изменено) Надобно мне заспавнить раненного НПС, спавню его попсовой функцией, а вот как подпортить ему здоровье разобраться пока не могу. Привет, Ксения. Если я правильно понял вопрос, в файле xr_effects.script достаточно создать функцию function health_func(actor, npc) -- Где указываем необходимое для наших целей значение (может быть и положительным, если нужно "подлечить" НПС). npc.health = -0.85 end и вызвать её через логику персонажа on_info = {-info} %+info =health_func% Изменено 21 Июля 2014 пользователем Jurok 1 Портфолио Ссылка на комментарий
AndreySol 215 Опубликовано 21 Июля 2014 Поделиться Опубликовано 21 Июля 2014 при взятии предмета из рюкзака А конкретнее - что означает "взятие" ? Я проверяю есть ли арт вообще и нету ли арта в 11 слоте А что за 11 слот ? Ссылка на комментарий
Zander_driver 10 331 Опубликовано 21 Июля 2014 Поделиться Опубликовано 21 Июля 2014 (изменено) @Капитан Кузьмичёв, Ответов на такой вопрос вы вряд ли могли найти, т.к. их и нет. Я к примеру вообще не могу понять, что вам требуется. Если воспринимать дословно - вам надо чтобы скриптом написался скрипт ( !!! ) при... каком событии? тут я даже в догадках теряюсь. @Ekagors,@aleksn09, if db.actor:item_in_slot(1) and db.actor:item_in_slot(1):section()=="wpn_pm" then return "блаблабла, это так к примеру" end если в слоте 1 нет ничего, то в этой проверке, будет сразу вызван метод nil:section(), что приведет к вылету. Лучше сначала проверить что в слоте есть вообще какой-то объект, а лишь затем проверять что у него за секция. Изменено 21 Июля 2014 пользователем Zander_driver Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Ekagors 1 Опубликовано 21 Июля 2014 Поделиться Опубликовано 21 Июля 2014 если в слоте 1 нет ничего, то в этой проверке, будет сразу вызван метод nil:section(), что приведет к вылету. Лучше сначала проверить что в слоте есть вообще какой-то объект, а лишь затем проверять что у него за секция. Масло масленое, я то же самое только короче написал Нет проверки что в слоте что то есть вообще, если он будет пуст, то вернет nil Тут есть проверка, что не равен nil сей час выделю раз не заметил if db.actor:item_in_slot(1) --[[Если вернет nil, условие не будет провираться дальше -]] and db.actor:item_in_slot(1):section()=="wpn_pm" then return "блаблабла, это так к примеру" end _______________________________________________________________________________________________________________________ Как сделать скрипт при взятии предмета из рюкзака? Что ? Подробней можно не чего не понять. Ссылка на комментарий
demon96 8 Опубликовано 21 Июля 2014 Поделиться Опубликовано 21 Июля 2014 (изменено) @Vadyanchikus, в сталкере есть непонятная лично мне особенность, сначала нужно забирать итем у актора, а потом дальше че-нить фигарить, иначе у актора нифига забираться не будет, несмотря на появленное сообщение. Так что переставь порядок функций и отпишись заработало или нет. Замечательно забирается. dc Эмпирически доказал для себя обратное, спорить я конечно не буду, у меня такой косяк имел место быть, хотя логики в нем не видно. Не забирается. Я тоже мучался таким вопросом, решил это удалением предмета из инвентаря гг,тоесть функция забирает предмет в диалоге, а от нее срабатывает функция удаления. Может быть слишком сложно и есть способ проще, но у меня работает и это радует. Если понадобится, могу привести кусок функции. Изменено 21 Июля 2014 пользователем demon96 Ссылка на комментарий
Капитан Кузьмичёв 124 Опубликовано 21 Июля 2014 Поделиться Опубликовано 21 Июля 2014 Ну как в Колекционере.Там при взятии записки из тайника спавнится другой тайник и т.д. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 21 Июля 2014 Поделиться Опубликовано 21 Июля 2014 (изменено) Про здоровье неписей: через нетпакет, смотрим да хоть в моде amk. А вот если нужно раненого непися - тогда - xr_wounded.script Здоровье и состояние раненности - две совершенно разные вещи. По передаче предмета от актора к неписю - как проверялось ? Про скрипт при взятии предмета - тоже ничего не понял. Рекомендую читать http://www.amk-team.ru/forum/index.php?showtopic=7450 Изменено 21 Июля 2014 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
demon96 8 Опубликовано 21 Июля 2014 Поделиться Опубликовано 21 Июля 2014 (изменено) Меня интересует вопрос относительно инфопорций, как при взятии предмета выдать инфопорцию? И возможно ли пополнять ассортимент торговцев в разной последовательности? Как я понял после получения инфопорции , ассортимент заменяется, а мне нужно чтоб он пополнялся. Изменено 21 Июля 2014 пользователем demon96 Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 21 Июля 2014 Поделиться Опубликовано 21 Июля 2014 Я все-таки не понимаю: имеющиеся скрипты посмотреть - это против религии, или против политических убеждений ? bind_stalker.script: function actor_binder:on_item_take (obj) level_tasks.proceed(self.object) --game_stats.update_take_item (obj, self.object) end Какая буква в этих строчках непонята ? По ассортименту - аналогично, смотрим trade_manager.script: при входе торговца в онлайн или при апдейте выбирается секция конфига. Все старое удаляется, создается новое. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
demon96 8 Опубликовано 21 Июля 2014 Поделиться Опубликовано 21 Июля 2014 (изменено) Насчет функции как ее применять? Насчет ассортимента, мне и не надо чтоб старое удалядось, я вроде по русски объяснил, что мне нужно пополнение, а не замена.Цитата из первого поста темы:Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу.Вопросы которые будут удалятся, следовательно их задавать не нужно:-- Где находится та или иная функция?Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;-- Как сделать что-то/то-то?С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.2.1.1, устное предупреждение Изменено 21 Июля 2014 пользователем Dennis_Chikin Ссылка на комментарий
Kirgudu 1 182 Опубликовано 21 Июля 2014 Поделиться Опубликовано 21 Июля 2014 @demon96, не надо её применять. Надо внутри этой функции сделать проверку, а тот ли это obj, что тебе нужен, и если тот - выдать инфопорцию. Чтобы не загромождать исходный код, лучше всего проверку и выдачу оформить как новую функцию, а здесь её вызвать, передав в качестве аргумента объект. Инструмент Ссылка на комментарий
Callisto 2 Опубликовано 21 Июля 2014 Поделиться Опубликовано 21 Июля 2014 Про здоровье неписей: через нетпакет, смотрим да хоть в моде amk. А вот если нужно раненого непися - тогда - xr_wounded.scriptА разве это не связанно?Т.е., если у неписи сразу есть схема wounded в логике, разве она не включится при уменьшении здоровья? Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти