Zander_driver 10 334 Опубликовано 16 Июня 2016 Поделиться Опубликовано 16 Июня 2016 (изменено) А тут вроде как обсуждается составление списка из того, что УЖЕ ЕСТЬ в инвентаре Именно поэтому, логически поразмыслив, я предположил что это делается для того, чтобы совершать какие-либо действия с теми предметами, которые уже есть в инвентаре. т.е. функциональный аналог инвентаря, только (наверное) с другими функциями и возможностями. И ни слова о том что же с этим делать? Наверное все, что придет в голову автору, а так же что-нибудь еще, после того как он (уже после написания первоначального кода) придумает еще какую-то функцию к уже имеющимся. Просто мне показалось что автор пытается нечто подобное скриптовому инвентарю сделать, очень уж задачи выдвигаются похожие на те, которые я в свое время решал. Но возможно я ошибаюсь, тогда прошу извинений за мои ошибочные мысли и назойливость. @PTB, что бы мы тут перестали заниматься погадалками, может быть сообщите, что же должно получиться в итоге? В чем состоит конечная цель. Изменено 16 Июня 2016 пользователем 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. Ссылка на комментарий
PTB 8 Опубликовано 16 Июня 2016 Поделиться Опубликовано 16 Июня 2016 @Zander_driver, Простите что сразу всё не разъяснил. В общем то так : Хочу сделать ручной апгрейдер оружия или брони, решил попрактиковаться на еде. Как должно было выглядеть: Юзаем вещь, выбираем из списка предмет, во втором списке выбираем апгрейд, жмём кнопку(ту где сейчас аптечка спавнится) и хопа оружие удалилось из инвентаря и в место него добавилось новое. В жизни много плохих моментов. Пытайся избавляться от них ! Ссылка на комментарий
Kober(BRUC) 99 Опубликовано 16 Июня 2016 Поделиться Опубликовано 16 Июня 2016 Добрый вечер. Есть у меня скрипт который можно включить и выключить. Делается это так: lvidgvid = false --true -включен; false - выключен Как мне скриптом менять его значения? Т.е. как в настройках. Отключить или включить данный параметр всего лишь нажав на определенную область экрана. Область есть, а вот функции нет. А так же, как изменить параметр если он находится не в скрипте, а в .ltx файле? Например: cheat_enable = 1 -- 1 включено; 0 выключено Все так же как и в первом варианте. Нужно нажать на определенную область. Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 16 Июня 2016 Поделиться Опубликовано 16 Июня 2016 @Kober(BRUC), ну как показывает мне опыт - заведи буфер, и пиши туда состояние true\false попутно его сохраняя, только вот куда сказать не могу - опыта мало( Не соответствует правилам. Ссылка на комментарий
Max_Raf 35 Опубликовано 16 Июня 2016 Поделиться Опубликовано 16 Июня 2016 @Kober(BRUC), подсмотри в амк моде 1.4.1 ... А наше дело маленькое - с ружьём да по болотам. (с) Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 16 Июня 2016 Поделиться Опубликовано 16 Июня 2016 По поводу сообщения о смерти сталкеров... Вот для себя делал модифицированный вариант, с наворотами. В скрипте пояснения есть, всё довольно просто. Можно и дальше его переделывать, если есть фантазия . -- ======================== -- Сообщения о смерти сталкеров - модификация скрипта. Есть учет плохой радиосвязи в Зоне, и дополнительные сообщения сочувствия...-- Мишаня_Лютый & Weanchester & AntdiabloN 2011-2016-- Old Episodes. Epilogue-- =======================local level_name = {["l01_escape"] = "Кордон",["l02_garbage"] = "Свалка",["l03_agroprom"] = "НИИ Агропром",["l03u_agr_undergroun"] = "Подземелье НИИ Агропром",["l04_darkvalley"] = "Тёмная долина",["l04u_labx18"] = "Лаборатория X-18",["l05_bar"] = "Бар",["l06_rostok"] = "Дикая территория",["l07_military"] = "Арм.склады",["l08_yantar"] = "Янтарь",["l08u_brainlab"] = "Лаборатория X-16",["l10u_bunker"] = "Лаборатория X-10",["l10_radar"] = "Радар",["l11_pripyat"] = "Припять",["l12_stancia"] = "ЧАЭС",["l12_stancia_2"] = "ЧАЭС",["l12u_sarcofag"] = "Саркофаг",["l12u_control_monolith"] = "Управление Монолитом"}local community = {["stalker"] = "Сталкер",["monolith"] = "Монолит",["military"] = "Военные",["bandit"] = "Бандит",["killer"] = "Наемник",["ecolog"] = "Эколог",["dolg"] = "Долг",["freedom"] = "Свобода",["zombied"] = "Зомбированный",["actor_dolg"] = "Неизвестно",["actor_freedom"] = "Неизвестно",["arena_enemy"] = "Фарш",["tushkano"] = "Неизвестно",["trader"] = "Торговец"}-- Таблица бонусных сообщенийlocal bonus = {"Жаль человека...","Эхх.. Хороший был парень","Ну а что поделать.."}function kill_npc(victim, who)local view_location = math.random(1,2) -- коэффициент замусоренности радиоэфира. При 1 видим локацию "смертника", 2-не видимlocal message_time = math.random(20,40) -- время задержки СМСlocal bonus=bonus[math.random(table.getn(bonus))]if victim and IsStalker(victim) thenlocal news = "Имя: "..victim:character_name().."\\nГруппировка : "..community[victim:character_community()].."\\nЛокация: "..level_name[level.name()].."\\n"..bonus..""local news_2 = "Имя: "..victim:character_name().."\\nГруппировка : "..community[victim:character_community()].."\\nЛокация: ???\\n"..bonus..""if view_location == 1 thennews_manager.send_tip(db.actor, news, message_time, nil, nil, 20000) -- отладкаnews_manager.send_tip(db.actor, " loction "..view_location.." time "..message_time.." ", 1, nil, nil, 20000)return 0endif view_location == 2 thennews_manager.send_tip(db.actor, news_2, message_time, nil, nil, 20000) -- отладкаnews_manager.send_tip(db.actor, " loction "..view_location.." time "..message_time.." ", 1, nil, nil, 20000)return 0endendend 1 Не соответствует правилам. Ссылка на комментарий
Kober(BRUC) 99 Опубликовано 17 Июня 2016 Поделиться Опубликовано 17 Июня 2016 @Kober(BRUC), подсмотри в амк Посмотрел. Не нашел. Ссылка на комментарий
PTB 8 Опубликовано 17 Июня 2016 Поделиться Опубликовано 17 Июня 2016 Здравствуйте товарищи! Захотелось обучится lua. Начал с самого простого, с операторов. Изменил скрипт прототипа дин.новостей. --Включены ли каналы? local k_bandits = false local k_dolg = false local k_svoboda = false local k_novise = true local k_military = false --local k_neizvesten = false --Сообщения канала бандитов: local k_bandits_text = { "Гопчики пацанчики, сегодня таких лахов пресанули. Все артефакты нам выложили. Сейчас пойдём их хабары шманать.", "Погодка сёне просто замечательная мля. Птички поют, солнышко светит, Пахан орёт. Ни жизнь а мечта.", "Ну а что поделать1.." } local k_dolg_text = { "Вы этих свободовцев в новых бронекостюмах видели? Эо ужас! Не учто долг по технике свободе начал отставать.", "Вчера какой то гад весь хабар спёр, оставил только записку: Здеся бил бюрер. Не учто школьники по зоне гулять начали?", "Ну а что поделать2.." } local k_svoboda_text = { "Внимание!!! В скором времени будет рейд на заставу долга. Всем кто рад надрать задницу засранцам, прозьба подойти к лукашу.", "Решил коноплю посжигать, сжёг сарай.", "Ну а что поделать3.." } local k_novise_text = { "Ребята! Помогите! Бандиты на ферме зажали.", "Чёрт, военные совсем охренели, теперь ни за 500 ни за бутылку не пропустят. Пят штук им подавай. Черти.", "Ну а что поделать4.." } local k_military_text = { "Внимание всем отрядам находящимся на кардоне. Необходимо собраться у Кузнецова в 23.00 для получения дольнейших указаний", "Всем отрядам на свалке слушать внимательно. На агропроме взорвали наш вертолёт, не простим обиды, умрём все до последнего!!!", "Ну а что поделать5.." } time_ptb = 0 -- переменная промежутка времени function time_update_spam() -- функция промежутка времени local time = time_global() -- переменная времени if time_ptb < time then time_ptb = time + 30000 -- время через которое будет вызываться сообщение truefalse() update_spam() end end function truefalse() if db.actor:object("bread") then k_bandits = true elseif db.actor:object("conserva") then k_bandits = false k_svoboda = true end end function update_spam() if k_bandits == true then news_manager.send_tip(db.actor, (k_bandits_text[math.random(6)]), nil, nil, 30000) elseif k_dolg == true then news_manager.send_tip(db.actor, (k_dolg_text[math.random(6)]), nil, nil, 30000) elseif k_svoboda == true then news_manager.send_tip(db.actor, (k_svoboda_text[math.random(6)]), nil, nil, 30000) elseif k_novise == true then news_manager.send_tip(db.actor, (k_novise_text[math.random(6)]), nil, nil, 30000) elseif k_military == true then news_manager.send_tip(db.actor, (k_military_text[math.random(6)]), nil, nil, 30000) end end Проблема в том что сообщение в истории видно, а на худ оно не показывается. Кто-нибудь с этим сталкивался? Изменил [math.random(6)] на [math.random(3)] вроде заработало. Простите, как изменить иконку сообщения? В жизни много плохих моментов. Пытайся избавляться от них ! Ссылка на комментарий
TIGER_VLAD 361 Опубликовано 17 Июня 2016 Поделиться Опубликовано 17 Июня 2016 Простите, как изменить иконку сообщения? db.actor:give_game_news("...text...", "ui\\ui_iconsTotal",Frect():set(633,326,133,133), 0, 3000) , ui\\ui_iconsTotal - путь к иконкам. set(633,326,133,133) - координаты иконки. 1 1 Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 17 Июня 2016 Поделиться Опубликовано 17 Июня 2016 if db.actor:object("bread") then k_bandits = true elseif db.actor:object("conserva") then на кардоне 1 Не соответствует правилам. Ссылка на комментарий
PTB 8 Опубликовано 18 Июня 2016 Поделиться Опубликовано 18 Июня 2016 Простите за глупый вопрос, но кто-нибудь обьяснит как вызывать таймер АМК: --старт таймера в реальном времени function start_timer(name, delay, parameters) Хочу вызвать: amk.start_timer(name, delay, parameters) но не знаю что написать в скобках вместо name, delay, parameters? В жизни много плохих моментов. Пытайся избавляться от них ! Ссылка на комментарий
naxac 2 447 Опубликовано 18 Июня 2016 Поделиться Опубликовано 18 Июня 2016 @PTB, name - имя таймера, delay - время в секундах, parametres - параметры, которые будут переданы в функцию срабатывания таймера. 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 18 Июня 2016 Поделиться Опубликовано 18 Июня 2016 @PTB, amk.g_start_timer("random_art",0,0,5) 5 - время срабатывания 1 Не соответствует правилам. Ссылка на комментарий
Romann 623 Опубликовано 19 Июня 2016 Поделиться Опубликовано 19 Июня 2016 Подскажите пожалуйста функцию, которая наносит хит всему живому, в опред. радидиусе от ГГ. Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz). Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб). Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
Max_Raf 35 Опубликовано 19 Июня 2016 Поделиться Опубликовано 19 Июня 2016 (изменено) @Romann, вроде так: local radius_sqr = 100 -- квадрат радиуса local actor_position = db.actor:position() -- позиция актора -- по идее, лучший вариант сделать биндеры на все живие объекты -- и регистрировать их в определённую таблицу, которую будем -- перебирать и проверять, живой ли объект. Но обойдёмся этим: -- перебор объектов в онлайне (медленно!) for i = 1, 65534 do -- апд: был 0, могло стукнуть актора -- берём с локации local object = level.object_by_id( i ) -- если объект по ид есть, то if object then -- если макс хп у объекта не равно -1, значит объект живой if object:max_health() ~= -1 then -- если квадрат дистанции, между позицией актора и объектом меньше либо равен макс радиусу в квадрате, то ( distance_to_sqr быстрей вроде как) if actor_position:distance_to_sqr( object:position() ) <= radius_sqr then -- Наносим хит (ну тут можно брать и какие то определённые параметры) hit = hit() -- создание объекта класса hit hit.direction = vector():set(1,0,0) --дирекция по оси x hit.draftsman = db.actor --нанёс урон актор hit.impulse = 600 --импульс hit.power = 1.45 --хит hit.type = 2 --тип урона - выстрел hit:bone("bip01_head") -- удар приходится на голову -- наносим урон obj:hit(hit) -- ( с ) http://stalkerin.gameru.net/wiki/ end end end end Ну поправите меня, если что вдруг. Изменено 19 Июня 2016 пользователем Max_Raf 2 ... А наше дело маленькое - с ружьём да по болотам. (с) Ссылка на комментарий
Romann 623 Опубликовано 19 Июня 2016 Поделиться Опубликовано 19 Июня 2016 вроде так: А вот тут: hit:bone("bip01_head") -- удар приходится на голову можно ли перечисллять части тела , через запятую? Или хит только по одной косточке? Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz). Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб). Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 19 Июня 2016 Поделиться Опубликовано 19 Июня 2016 Ребят, нужна консультация. Использую расширение для "ума" НПЦ от xStream (xrs_ai ну думаю знакомо всем) Так вот, нужно отключить такую фишку - НПЦ перетаскивают трупы подальше от костров. В скриптах ничего похожего не нашел, ну понятное дело плохо искал, но беда в том что это не отдельная схема. Кто знает - отпишитесь... можно ли перечисллять части тела , через запятую? Или хит только по одной косточке? Кость - параметр для hit(). Так что нельзя, только по одной. 1 Не соответствует правилам. Ссылка на комментарий
Max_Raf 35 Опубликовано 19 Июня 2016 Поделиться Опубликовано 19 Июня 2016 @Romann, только по одной вроде как. А вообще, поищи в той ссылке что указана в коментарии саму функцию hit(), и почитай о ней, будет полезно. 1 ... А наше дело маленькое - с ружьём да по болотам. (с) Ссылка на комментарий
Space.Marine 466 Опубликовано 19 Июня 2016 Поделиться Опубликовано 19 Июня 2016 отключить такую фишку - НПЦ перетаскивают трупы подальше от костров. "удаление каждой схемы производится удалением файла, указанного в скобках", то есть (модифицированный xr_kamp.script) 1 Ссылка на комментарий
Nazgool 250 Опубликовано 19 Июня 2016 Поделиться Опубликовано 19 Июня 2016 (изменено) нужно отключить такую фишку - НПЦ перетаскивают трупы подальше от костров. Это в xr_kamp.script, Там придется поудалять : class "evaluator_see_deadman" class "evaluator_can_move_deadman" class "action_go_to_deadman" class "action_moving_deadman" В функции add_to_binder блоки : action = this.action_go_to_deadman action = this.action_moving_deadman и все строки с : "see_deadman" "can_move_deadman" "go_to_deadman" "move_deadman" Может что-то не доглядел, но ты поиском и сам найдешь. Изменено 19 Июня 2016 пользователем Nazgool 1 1 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти