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

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


Svoboда

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

Stalk15,попробуй

if ranks.get_obj_rank_name(db.actor)=="novice" then ...

 

Проверку коммьюнити нпс, с которым разговариваешь, можно попробовать повесить на выдачу инфопорции ui_talk.

Выдается при открытии диалогового окна.

 

Биндер актора зависает?

А если попробовать инициализацию звуковых объектов по функциям распихать.

local tbl={путь1,путь2,путь3,..,путь8}

function lyayawwe()
local j=math.random(1,4)
local snd_obj = xr_sound.get_safe_sound_object(tbl[j])
snd_obj:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)
--или одной строкой
--xr_sound.get_safe_sound_object(tbl[math.random(1,4)]):play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)
end

function lyayawwewew()
local j=math.random(5,8)
local snd_obj = xr_sound.get_safe_sound_object(tbl[j])
snd_obj:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)
end

 

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

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


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

Влад,правильно так:

function func_name()
    db.actor:iterate_inventory(del_obj, nil)
end

function del_obj(dummy,item)
        if item:section() == "ammo_7.62x54_ap" then
                alife():release(alife():object(item:id()), true)
        end
end

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


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

Tonny,перебираешь серверные объекты. Если объект существует и является оружием и его parent_id равно id твоего npc,то значит у этого npc имеется оружие.

4.Так.

5.Обычно клиентские объекты перебирают так - for k,v in pairs(db.storage) do...

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


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

Massaraksh, включи логику.Если при подборе item2 превратить его в item1, то при потере item1 нельзя будет выкинуть item2,ибо этот самый item2 уже не будет существовать.

 

ALEX BOY,

local aitem = db.actor:active_item() 
  if (aitem and aitem:section() == "секция_сигареты") then
    db.actor.power = -0.0009 --/Постепенное именьшение выносливости
       db.actor.psy_health = 0.0007 --/Постепенное прибавление пси-защиты
  end

 

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


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

_Призрак_, и ещё нужно parent_id потерянного объекта проверять.Если 65535 или nil,то значит выкинули и новый предмет нужно спавнить под ноги ГГ.Иначе переложили и спавнить нужно в туда,куда переложили.

 

На получение Абакана нужно подвешивать спавн в инвентарь АК74.А на получение АК74 - удаление из инвентаря Абакана.Иначе биндер не успеет отработать и зависнет.

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

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


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

Хантер, напиши машине такую логику:

[logic]
active = ph_car
[ph_car]
usable ={=actor_has_item(niva_keys)}

Здесь niva_keys - секция ключей от машины. Без ключей в машину с такой логикой не сядешь. А можно ещё сделать так, чтобы в машину можно было сесть, но без ключей нельзя завести двигатель.

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


Ссылка на сообщение
плавное появление кастом статика
Можно на апдейте менять непрозрачность статика.Так у Руси в "Новой радиации" угасание индикаторов сделано.

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


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

Disord, предмет из слота скидывается так:

function drop_item_to_inventory(number)
local actor=db.actor
local item = actor:item_in_slot(number)
if item then
    actor:drop_item(item)
    local sobj=alife():create(item:section(),actor:position(),actor:level_vertex_id(),actor:game_vertex_id(),0)
    actor:transfer_item(item,actor)
    alife():release(sobj,true)
end
end

 

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


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

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

local bolt=db.actor:object("bolt")
if bolt then db.actor:drop_item_and_teleport(bolt,vector():set(0,0,0)) end

Но если сделать сохранение,когда в инвентаре нет объекта на классе болта,то такое сохранение потом не загрузится.

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

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


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

speczadanie

Как можно округлить число до сотен?

Например так - вычисляем сотни и к ним прибавляем ещё 100, если остаток не меньше 50, иначе 0.

local z=632.565
z=math.floor(z/100)*100 + (math.fmod(z,100)>=50 and 100 or 0)
-- теперь z=600

z=2799
z=math.floor(z/100)*100 + (math.fmod(z,100)>=50 and 100 or 0)
-- теперь z=2800

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


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

Darkscape,можно обойтись и без кейлоггера.При открытии ПДА будет выдан инфопоршень "ui_pda".При его получении нужно отловить активное окно и закрыть его.При закрытии окна ПДА будет выдан инфопоршень "ui_pda_hide".B уже при его получении запускай свой скрипт.Это у меня на ТЧ работает,в ЧН/ЗП не проверял.

 

Scarabay,чтобы "отключить" - болт и бинокль удали из инвентаря.

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


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

SkyLoader, вот пример для кнопки активации ПДА. Я дописал в файл со строковыми индентификаторами

    <string id="action_activate_pda">
        <text>$$ACTION_ACTIVE_JOBS$$</text>
    </string>

Теперь функция game.translate_string("action_activate_pda") будет выдавать кнопку, забинденную на открытие ПДА. В отличие от парсинга user.ltx такой способ работает и после перезабиндивания кнопки в игре. Аналогично можно сделать и для остальных экшенов.

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


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

strelok200, ты на него метку поставил?

local obj = alife():create("mutantul",vector():set(-66.405685424805,20.100961685181,78.71656036377),1001885,4386)
amk.add_spot_on_map(obj.id,"green_location","Mutantul")

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


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

AutoGnom, для поворота текстуры статика его необходимо создавать, используя InitStatic.

В конфиге статика указать параметр heading="1". Поворачивается статик с помощью метода SetHeading.

Всё это было описано много раз.Не ленись использовать поиск.

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

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


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

boryan67, удалять надо серверный объект, а не что под руку попало.

    if obj then
        local sobj = alife():object(obj:id())
        if sobj then
            alife():release(sobj,true)
        end
    end

 

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


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

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