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



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



---

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




Stalker Shadow Chernobyl
Дата: 30/07/2018
War Groups
Дата: 08/01/2017
Call of Misery
Дата: 08/01/2017
S.T.A.L.K.E.R. Unpacker 1...
Дата: 11/07/2014
Вариант Омега
Дата: 14/11/2013
Shadows of Oblivion 3: Re...
Дата: 14/11/2013
Звездочет (Дозор Зоны)
Постов: 3676 | Репутации: 1098
Квартет (Дозор Зоны)
Постов: 2936 | Репутации: 5239
Джагер (Дозор ZONE)
Постов: 2690 | Репутации: 3965
Miami_Killer (Глава группировки)
Постов: 2129 | Репутации: 970
gromgold (Создатель Зоны)
Постов: 2020 | Репутации: 10085
Street (Житель)
Постов: 1958 | Репутации: 503
Пакет (Дозор Зоны)
Постов: 1731 | Репутации: 872
ST1TCH (Дозор Зоны)
Постов: 1402 | Репутации: 487

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

Создаём пустой файл в \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 из 1
  • 1
Поиск: