[CoP] Модострой: вопросница
|
|
|
Overfirst
Воскресенье, 31.12.2017, 13:17 | Сообщение # 1
Статус: |
|
Бывалый: |
|
Сообщений: |
1081 |
Награды: |
19 |
Регистрация: |
11.06.2015 |
|
[CoP] Модострой: вопросница
Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
|
|
Воскресенье, 31.12.2017, 13:17
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
11.06.2015 |
|
|
|
|
|
Winsor
Понедельник, 06.07.2020, 12:46 | Сообщение # 7786
Статус: |
|
Отмычка: |
|
Сообщений: |
163 |
Награды: |
0 |
Регистрация: |
22.04.2020 |
|
Решил сделать проверку на то, что у актёра есть один предмет из всего списка. Для теста я в список добавил только 1 предмет. Я хотел сделать так, чтобы консервы юзалась только тогда, когда у ГГ есть нож, а если его нет, то возвращать консервы обратно. Вот функция:
function send_tip() news_manager.send_tip(db.actor, "Нужно открыть консервную банку ножом.", nil, "none_info_pda", nil, nil) end
local actor_has_knife = =actor_has_item("knife") local actor_has_not_knife = !actor_has_item("knife")
if item_name=="conserva" and actor_has_knife then local t1d = {"energy_drink_used_1_0", "energy_drink_used_1_1", "energy_drink_used_1_2"} actor_got_item(t1d[math.random(3)]) elseif item_name=="conserva" and actor_has_not_knife then send_tip actor_got_item("conserva") end
Вылетает при юзании с таким логом: Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...call of pripyat\gamedata\scripts\bind_stalker.script:215: attempt to index global 'icomplex' (a nil value)
Сообщение отредактировал Winsor - Понедельник, 06.07.2020, 12:47
|
|
Понедельник, 06.07.2020, 12:46
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
22.04.2020 |
|
|
|
|
|
Время Альянса
Статус: |
|
Ветеран: |
|
Сообщений: |
4070 |
Награды: |
16 |
Регистрация: |
19.07.2013 |
|
Цитата _V_O_IN_ ( ) Какие строчки в actor_menu_16 отвечают за редактирование этой части? Тег actor_ch_info.
|
|
Понедельник, 06.07.2020, 13:28
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
19.07.2013 |
|
|
|
|
|
Neptun
Понедельник, 06.07.2020, 16:05 | Сообщение # 7788
Связной
Статус: |
|
Бывалый: |
|
Сообщений: |
672 |
Награды: |
9 |
Регистрация: |
25.03.2012 |
|
Winsor, какая-то муть... попробуй так:
Код local actor = db.actor local item_name = sect:section() if item_name=="conserva" then if not xr_conditions.actor_has_item(actor, npc, {"wpn_knife"}) then give_object_to_actor("conserva") news_manager.send_tip(db.actor, "Нужно открыть консервную банку ножом.", nil, "none_info_pda", nil, nil) end if xr_conditions.actor_has_item(actor, npc, {"wpn_knife"}) then действие end end
В _g добавить:
Код function give_object_to_actor(obj,count) if count==nil then count=1 end for i=1, count do alife():create(obj,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) end end
|
|
Понедельник, 06.07.2020, 16:05
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
25.03.2012 |
|
|
|
|
|
Статус: |
|
Новичок: |
|
Сообщений: |
316 |
Награды: |
2 |
Регистрация: |
14.07.2019 |
|
Делаю таймер через level.add_call, после квиксейв->лоад он, судя по всему, останавливается, и спустя заданное время ничего не происходит. Как продолжить его выполнение после перезагрузки?
Код function start_timer() local iTimer = time_global() + items_table[used_item] local function check_timer() return time_global() > iTimer end level.add_call(check_timer, action_timer) end
|
|
Понедельник, 06.07.2020, 16:19
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
14.07.2019 |
|
|
|
|
|
Статус: |
|
Гость: |
|
Сообщений: |
36 |
Награды: |
1 |
Регистрация: |
28.07.2016 |
|
denis2000, спасибо! Возник ещё вопрос, как исправить эти полоски по краям прицела? При разрешении экрана 1920Х1080 все ок, но при 1366Х768 вот такая беда.
Сообщение отредактировал _V_O_IN_ - Понедельник, 06.07.2020, 16:42
|
|
Понедельник, 06.07.2020, 16:41
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
28.07.2016 |
|
|
|
|
|
Статус: |
|
Новичок: |
|
Сообщений: |
347 |
Награды: |
7 |
Регистрация: |
22.04.2017 |
|
Цитата molodoy_chelovek ( ) Как продолжить его выполнение после перезагрузки? Самый простой вариант по моему - считать не через time_global() а через игровое время game.get_game_time() и для просчета разницы использовать game.get_game_time():diffSec(saved_time). Собственно само время хранить в pstor'e Главного Героя (например).
Добавлено (06.07.2020, 16:50) ---------------------------------------------
Цитата _V_O_IN_ ( ) но при 1366Х768 вот такая беда Можно в XML настройки данной текстуры обрезать все по 1 пикселю, получив что-то на подобие x = "1" y = "1" w = "1022" h = "766", также советую убедится, есть ли на текстуре mip-map уровни, и при наличии без них текстуру прогнать. Для GUI это важно.
Сообщение отредактировал Hozar_2002 - Понедельник, 06.07.2020, 16:50
|
|
Понедельник, 06.07.2020, 16:45
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
22.04.2017 |
|
|
|
|
|
Статус: |
|
Гость: |
|
Сообщений: |
36 |
Награды: |
1 |
Регистрация: |
28.07.2016 |
|
Hozar_2002, спасибо, помогло!
|
|
Понедельник, 06.07.2020, 18:52
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
28.07.2016 |
|
|
|
|
|
Статус: |
|
Новичок: |
|
Сообщений: |
290 |
Награды: |
4 |
Регистрация: |
09.01.2017 |
|
Всем добрый вечер.
Я сделал в чистом Зове Припяти закладываемые бомбы. Наподобие тех, что в СГМ. Они исправно взрываются. Убивают и калечат монстров и НПС.
Как можно отследить, что сталкер или монстр погиб от взрыва бомбы. Бомба называется remote_explosive_bomb. Имеет СТОРИ-ИД. С чего начать?
|
|
Вторник, 07.07.2020, 00:03
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
09.01.2017 |
|
|
|
|
|
Статус: |
|
Гость: |
|
Сообщений: |
36 |
Награды: |
1 |
Регистрация: |
28.07.2016 |
|
Кто знает как убрать это затенение? Во время торговли и обыска у НПС такого нету, только у актора.
|
|
Вторник, 07.07.2020, 01:31
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
28.07.2016 |
|
|
|
|
|
Winsor
Вторник, 07.07.2020, 10:56 | Сообщение # 7795
Статус: |
|
Отмычка: |
|
Сообщений: |
163 |
Награды: |
0 |
Регистрация: |
22.04.2020 |
|
_V_O_IN_, текстура по пути: textures\ui\ui_actor_menu.dds Тебе нужно растянуть текстуру, или сделать полупрозрачный инвентарь как за выделенной областью.
Сообщение отредактировал Winsor - Вторник, 07.07.2020, 10:56
|
|
Вторник, 07.07.2020, 10:56
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
22.04.2020 |
|
|
|
|
|
makdm
Вторник, 07.07.2020, 11:37 | Сообщение # 7796
Время Альянса
Статус: |
|
Опытный: |
|
Сообщений: |
1787 |
Награды: |
19 |
Регистрация: |
22.11.2012 |
|
Цитата sergej5500 ( ) С чего начать? Начни с биндеров сталкера и монстра. Метод death_callback Параметр who
|
|
Вторник, 07.07.2020, 11:37
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
22.11.2012 |
|
|
|
|
|
Winsor
Вторник, 07.07.2020, 13:25 | Сообщение # 7797
Статус: |
|
Отмычка: |
|
Сообщений: |
163 |
Награды: |
0 |
Регистрация: |
22.04.2020 |
|
Как проверить наличие одного предмета из всего списка НЕ В ДИАЛОГЕ? А если у ГГ есть два (и более) предмета из списка, то функция не изменяется и продолжает работать.
|
|
Вторник, 07.07.2020, 13:25
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
22.04.2020 |
|
|
|
|
|
Статус: |
|
Новичок: |
|
Сообщений: |
316 |
Награды: |
2 |
Регистрация: |
14.07.2019 |
|
Winsor, может это не то что вам нужно, но вот пища для размышления:
Код local items_table = { ["medkit"] = 8000, ["medkit_army"] = 8000, ["medkit_scientic"] = 8000, ["antirad"] = 8500, } Так я проверял, есть ли заюзанный предмет в таблице. Сама проверка: Код if items_table[obj] then -- Если предмет obj есть в таблице ... end
Добавлено (07.07.2020, 14:02) --------------------------------------------- У меня есть таблица (см. выше) вида Код ["Название секции предмета"] = миллисекунды для таймера, время для таймера я указываю таким образом: Код local iTimer = time_global() + items_table[used_item] по истечению времени таймера мне нужно как-то пополнять здоровье/радиацию и т.д актору, но я не могу придумать, как это правильно реализовать. Нужно как-то переделать таблицу, чтобы я мог заносить ещё и эти значения(радиация/здоровье). У кого-то есть идеи?
----------------------------------------------------------------
Цитата denis2000 ( ) Нет ничего проще, например так: Большое спасибо!
Сообщение отредактировал molodoy_chelovek - Вторник, 07.07.2020, 15:10
|
|
Вторник, 07.07.2020, 13:55
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
14.07.2019 |
|
|
|
|
|
Время Альянса
Статус: |
|
Ветеран: |
|
Сообщений: |
4070 |
Награды: |
16 |
Регистрация: |
19.07.2013 |
|
Winsor, Код должен быть типа такого:
Код local items_table = {"medkit", "medkit_army", "medkit_scientic", "antirad"} local two_and_more = false local one_item = false for k,v in pairs (items_table) do if db.actor:object(v) then if one_item then two_and_more = true else one_item = true end end return two_and_more
molodoy_chelovek, Нет ничего проще, например так:
Код local items_table = { ["medkit"] = {время, здоровье, радиация}, ... } ... local iTimer = time_global() + items_table[used_item][1] local iHealth = items_table[used_item][2] local iRad = items_table[used_item][3]
Добавлено (07.07.2020, 15:20) --------------------------------------------- А еще лучше внести соответствующие параметры в секции предметов и читать их напрямую оттуда, а не собирать отдельные таблицы в скрипте.
Сообщение отредактировал denis2000 - Вторник, 07.07.2020, 15:21
|
|
Вторник, 07.07.2020, 14:53
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
19.07.2013 |
|
|
|
|
|
Статус: |
|
Новичок: |
|
Сообщений: |
316 |
Награды: |
2 |
Регистрация: |
14.07.2019 |
|
Цитата denis2000 ( ) А еще лучше внести соответствующие параметры в секции предметов Кстати да, тоже об этом думал, но так и не нашел способ как узнать значение параметра из секции.
Сообщение отредактировал molodoy_chelovek - Вторник, 07.07.2020, 15:35
|
|
Вторник, 07.07.2020, 15:34
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
14.07.2019 |
|
|
|
|