Перейти к контенту

Скриптование


Svoboда

Рекомендуемые сообщения

@Colder Как я понимаю, речь о большом кол-ве цифр?

Запиши в глобал спейс ф-ию округления до указанной точности:

Скрытый текст

function math.round(v, exp)
    if v then
        if not exp then
            exp = 0
        end
        return tonumber(string.format("%."..exp.."f", v))
    end
end

 

v - число, которое округляем

exp - как округляем, кол-во знаков после запятой

И используй её: 

Скрытый текст

local cond = math.round(condition, 2)

 

  • Спасибо 1

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
4 минуты назад, AndreySol сказал:

А зачем этот вот math.round

Использовать в дальнейшем, как любой другой math., string. и т.д. Вполне удобно.

  • Спасибо 1

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение

Всем привет. Возможно ли вернуть совокупность иммунитетов к конкретному воздействию (броня + арты, но без того, что в actor.ltx)? OGSR. Или нужно всё "надетое" перебирать?

Изменено пользователем mole venomous

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение

@dsh мне не нужен хит. Нужны цифры. В целом, понятно, что остаётся перебирать и читать из конфига. 

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
3 минуты назад, dsh сказал:

какие цифры?

Надет костюм, у него текущий п-тр

telepatic_protection = a

Повешены арты, сумма их протекции

telepatic_protection = b

Итого у ГГ, благодаря этим вещам, протекция

a + b

Вопрос был в том, возможно ли вернуть число a + b на движке ОГСР. Если с костюмом всё прозрачно, то с артами на поясе остаётся только перебор?

Нужны цифры, указывающие ВСЮ защиту от конкретного воздействия от всех защитных итемов.

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
1 час назад, Labadal сказал:

как сохранять

Скрытый текст

-- Записываем переменную
function save(variable_name, value)
    xr_logic.pstor_store(db.actor, variable_name, value)
end

-- Загружаем переменную
function load(variable_name, value_if_not_found)
    return xr_logic.pstor_retrieve(db.actor, variable_name, value_if_not_found)
end

-- Удаляем переменную
function del(variable_name)
    if db.storage[db.actor:id()].pstor[variable_name] then
        db.storage[db.actor:id()].pstor[variable_name] = nil
    end
end

 

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
8 минут назад, Labadal сказал:

где вызывать эти функцию?

 

1 час назад, AndreySol сказал:

при загрузке игры читай оттуда сохраненное значение

 

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
1 час назад, Капрал Хикс сказал:

Параметр задан неверно

Ну вот очень знакомые слова. Значит где-то встречал. Здесь видел или себя, но у себя я всегда назначаю клавиши F5/F8. Если такой вылет и был у меня, то либо вначале игры на базовых настойках, либо он возможен на моих тоже...

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
17 часов назад, mikelik сказал:

Арты в поле должны спавняться исключительно для игрока

Как сказали выше, watcher_act. В АМК и многих модах на его базе можно отсечь арты сразу по классу или по секции (в ф-ии "ev_see_stuff:evaluate" локальная ф-ия "check_item(o)"). И в НЛС вроде бы всё похожее. Но остаётся ещё оффлайн воровство (amk_offline_alife.script) 

ps У меня самого, кстати, не выходит запретить неписям подбирать оружие. Пробовал вносить в исключения по классу, по секции и даже как IsWeapon(obj), всё равно подбирают. Всем остальным побрезгуют, если вещь в исключениях...

Изменено пользователем mole venomous
  • Полезно 2

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
12 минут назад, mikelik сказал:

А воровство, оно же с ящиков и нычек

Ну с пола они тоже поднимают в оффлайне...

Изменено пользователем mole venomous
  • Полезно 1

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
2 часа назад, gam сказал:

добавить в конец биндера watcher_act.script, что-то типа

Спасибо за наводку. Подсмотрел кое-где, изменил ф-ию "add_to_binder"  и теперь можно НПСам запрещать брать указанное оружие.

  • Нравится 1

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение

@dsh , я думаю, что именно 

8 минут назад, dsh сказал:

не отключить полностью

но частично прогресс есть. Раскидав кучи запрещённых и разрешённых стволов, всё проверил.

Но если в одной куче будет всякое, видимо, будет именно так:

10 минут назад, dsh сказал:

грубо говоря, пройдет по нему

и всё таки стырит.

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение

Вопрос по исходным скриптам АМК-1.4.1.  Как в реальности работает система сбора хабара неписями в онлайне?

Судя по тому, что вижу в игре и вижу/не вижу в скриптах (watcher_act), НПСы:

- Тырят всё, что parent_id == 65535 и не приколочено занесено в исключения

- Не тырят нычки

- Тырят из трупов всё до крошки без исключения (для исключений требуется отдельный код и список исключений?)

- Не шмонают трупы, если таковые в исключениях

прим.: когда я упоминаю исключения, я имею в виду минимальные правки, например, проверка на имя/часть имени объекта или что объект квестовый.

 

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
2 минуты назад, DenVer сказал:

Нычки они тырили, еще как

В том то и дело, я ни разу не выявил воровства из нычек в онлайне...

Оффлайн тырят без лишней скромности, об этом сигнализируют как маячки ("метки с хабаром"), так и дебаговые сообщения.

Захотелось вот научить НПСов рыться в тайнике, даже если ГГ рядом. И не вычищать труп полностью, как они это делают (опять же, не замечал чего-либо "забытого" в трупе после посещения его неписем...).

Хотя, если это всё есть и исправно работает в AI Additions 2.0, овчинка выделки не стоит...

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
6 минут назад, DenVer сказал:

Чтоб тырили в оффлайне

Так то оно правильно. Но руки то чешутся что-нибудь поделать, чего ещё не видел (или не обращал внимания)...

8 минут назад, DenVer сказал:

наказание за воровство

Тут, кстати, косвенно @mikelik навёл на мысль, а почему это только ГГ получает в жбан, когда подбирает артефакт с земли. Но что то я тут разговорился, этому место уже здесь.

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение

Что-то заклинило у меня. Лыжи не едут или у костра перебрал...

При заходе в рестриктор пытаюсь заспавнить рандомный итем по указанным координатам, получаю вылет.

Начинается ругань на xr_logic.pick_section_from_condlist, потом на sr_idle, bind_restrictor... Приводить все коды не стал, т.к. всё равно никто не станет распутывать (да и лучше самому, только бы пинок в нужном направлении был задан). Есть подозрение, что всё из-за попытки рандомного спауна при вызове ф-ии, когда ГГ входит в рестрикт. Но...

Но рандомный спаун без проблем работает, когда указываю координаты, исходя из координат ГГ:

Скрытый текст

    local lv,gv
    local a=vector()    
    a=db.actor:position()
    a.x=a.x+pX
    a.z=a.z+pZ
    a.y=a.y+pY
    lv=db.actor:level_vertex_id()
    gv=db.actor:game_vertex_id() 
    alife():create(item,vector():set(a.x,a.y,a.z),lv,gv,65535)

Движок ОГСР.

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
4 часа назад, naxac сказал:

как выглядит?

Скрытый текст

Ну конечно же!

Список итемов есть, а "зарандомить" я его забыл.

    local rnd = {"af_medusa","af_vyvert","af_blood"} 
    local art = rnd[math.random(#rnd)]

Причём для работающего спавна я этого сделать не забыл, а для "неработающего" - забыл.

Добрая половина моих ошибок это невнимательность...

Несколько часов голову ломал :dash2:

 

  • Сочувствую 1

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
35 минут назад, EGER.OVERKILL WF сказал:

ГГ открывает инвентарь, и убирает все оружие

В файле inventory.script:

Скрытый текст

-- Открытие/закрытие инвентаря
function on_inventory_info(info_id)

    if info_id == "ui_inventory" then
        inventory_open = true
        if debug == true then get_console():execute("inventory_open") end
        bind_stalker.hide_weapon()   -- убираем ствол
    elseif info_id == "ui_inventory_hide" then
        inventory_open = false
        need_update = true
        if debug == true then get_console():execute("inventory_close") end
        bind_stalker.restore_weapon()
    end
end

 

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение

@EGER.OVERKILL WF 

В бинд_сталкер на коллбек actor_binder:info_callback повесь вызов 

function actor_binder:info_callback(npc, info_id)

...

    inventory.on_inventory_info(info_id)

...

end

А вот файл, поправь его под себя, если надо inventory

12 минут назад, EGER.OVERKILL WF сказал:

Скажи хоть откуда ты его взял-то

Моя ошибка. Забыл, что файл не из оригинала. Скинул на диск, думаю, разберёшься.

  • Нравится 1

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение

Назрел вопрос. В момент сдачи квеста требуется одну пачку патронов трансферить НПСу, остальные удалить из инвентори актёра. Общее кол-во пачек нужно для прекондишена. Но при одновременном трансфере и удалении всегда остаётся лишняя пачка в рюкзаке. Верно ли я понимаю, что выход, это разделить трансфер и удаление некоторым промежутком времени с помощью постановки удаления на таймер? Или же можно обойтись иначе?

Всем добра.

Изменено пользователем mole venomous

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...