ФРПГ На форум Мой ПДА
Меню зоны
Вход в зону
Турист



СТАЛКЕР!
Я всегда рад видеть
еще одну живую душу!
Но я нез наю кто ты?



---

Список Сталкеров
У Костра



Последний пост Самые популярные темы Самые активные Последний файл
  • Дальний блокпост
  • кпк Прибоя
  • Бaр "Синий орел"
  • Лагерь новичков
  • Дорогa чeрeз Кордон
  • Бaр "Синий орел"
  • Рейды Наемников
  • Игра "Я тебя забаню"
  • Считалка
  • Лагерь новичков
  • Звездочет
  • Квартет
  • Джагер
  • Miami_Killer
  • gromgold
  • [Моды]
    НАРОДНАЯ СОЛЯНКА 2016 (1)
    [Моды]
    Объединённый Пак 2 (1)

    Страница 1 из 11
    Форум » База по Модостроению » Скриптинг Lua » Создание невидимого костюма
    Создание невидимого костюма
    gromgoldДата: Четверг, 11/05/2017, 14:01:30 | Сообщение # 1
    Глава ЧН [Гл.Администратор]
    Ранг: Повелитель Зоны
    Сообщений: 1984 Репа: « »
    Режим не очень серьёзный. Глаза - глазами, а на слух неписи как собаки, прям! На зверьё прозрачный режим ГГ не действует. Это - пример. Браз что-то сделал, надеюсь лучше, чем у меня.

    Создаём пустой файл в \scripts\trans_outfit.script и создаём две функции:

    function transparent_gg() --назовём её для памяти - "хулиганы зрения лишают!"

    local fov1, range1, id, obj_around, alife_obj, dist_act_npc

    if db.actor == nil then

    return nil

    end

    --если ГГ голый

    if db.actor:item_in_slot(7) == nil then

    fov1 = 150

    range1 = 80

    --если на ГГ одет костюм новичка

    elseif db.actor:item_in_slot(7):section() == "novice_outfit" then

    fov1 = 1

    range1 = 1

    --если на ГГ одет другой броник

    else

    fov1 = 150

    range1 = 80

    end

    --задача предыдущего куска проанализировать, что надето на ГГ и установить

    --соответствующие угол обзора и дальность зрения

    --

    --дальше перебор ВСЕХ объектов в игре по его id

    for id = 1, 65534 do

    obj_around = level.object_by_id(id) -- создаём онлайн объект

    if obj_around ~= nil and IsStalker(obj_around) then --если есть такой и это сталкер

    --создаём серверный объект, соответствующий онлайновому

    --сам обескуражен, что не смог определить дистанцию по онлайновому объекту

    --ну, наверное, мало рыл

    alife_obj = alife():object(id)

    if alife_obj then

    --определяем дистанцию между ГГ и неписем

    dist_act_npc = db.actor:position():distance_to(alife_obj.position)

    end

    if dist_act_npc <= 120 then --отличаясь огромным человеколюбием я решил не бросать

    --в беде ослеплённых сталкеров и восстанавливать им зрение в кольце 120-150 метров.

    --ну жалко их, болезных

    if obj_around then - проверка обязательна иначе может быть

    --вылет при убийстве вражины

    obj_around:set_fov(fov1) --портим неписю угол зрения

    obj_around:set_range(range1) --портим неписю дальность зрения

    end

    else

    if obj_around then --если непись в кольце 120-150м восстанавливаем зрение

    obj_around:set_fov(150)

    obj_around:set_range(80)

    end

    end

    end

    end

    end

    --а это стартёр нашей функции "хулиганы зрения лишают!"

    --тупой до бесконечности, когда я подоткнулся к таймерам Николая - диалоги начали мелькать.

    --но мы ж не таймеры разучиваем. Принцип прост. Вызов ф-ции подтыкаем в апдейт биндера актёра

    --и каждый раз наращиваем, предварительно созданную, глобальную переменную на 1 единичку.

    --на 50 раз обнуляем глобалку и запускаем "хулиганы зрения лишают!"

    function timer_trans()

    timer_transparent = timer_transparent + 1

    if timer_transparent >= 50 then

    timer_transparent = 0

    transparent_gg()

    end

    end

    ------------------------------------------------------------------------------

    Далее открываем файл \scripts\_g.script и внем прописываем свою глобалку:

    dev_debug = false

    sim_debug = false

    mus_vol = 0

    amb_vol = 0

    timer_transparent = 0 --вот она, родная!

    -------------------------------------------------------------------------------

    Ну и последний штрих: подключить моторчик, чтобы пятидесятки считались, и "хулиганы

    зрения лишают!" запускалась один раз на 50 апдейтов биндера.

    Открываем \scripts\bind_stalker.script

    ищем функцию апдейта function actor_binder:update(delta)

    и так скромненько пристраиваем ей в хвостик свой доморощенный таймер

    pda.fill_sleep_zones()

    trans_outfit.timer_trans() -- функция из другого файла вызывается с префиксом имяфайла.

    -- загрузка мода(постоянное обновление)

    if mod_update() then

    sgm_loader.sigerous_mod_main()

    end

    end

    -----------------------------------------------

    Всё в игре находим/обдираем/покупаем костюм новичка и пробуем инвизибл вар!

    Материал взят с сайта gsc-mod.ucoz.ru
     
    Форум » База по Модостроению » Скриптинг Lua » Создание невидимого костюма
    Страница 1 из 11
    Поиск: