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

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


Svoboда

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

Чёт я всё равно не понял:

function test()
local obj = "scaner_anm"
local z = level.object_by_id("scaner_anm")
if z then
    if obj:distance_to(db.actor) == 10 then
    level.add_pp_effector ("proba.ppe", 1974, false)
end
end
end

Где ошибка?

divaresix.script:55: attempt to call method 'distance_to' (a nil value)

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


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

Не, всё равно: divaresix.script:55: attempt to call method 'distance_to' (a nil value).

Сделал так:

function test()
local z = level.object_by_id("scaner_anm")
if z then
    if z:distance_to(db.actor) == 10 then
    level.add_pp_effector ("proba.ppe", 1974, false)
end
end
end

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


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

Так, ну теперь вылета нет, но при выбрасывании объекта на землю и при отбегании от него дальше 5 метров(пробовал и дальше 1.5 км) ноль реакции, хотя должно быть сообщение.

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


Ссылка на сообщение
(изменено)

А, всем спасибо, понял и усёк.

А что значит vector ?

Это что то вроде, от точки до точки стрелочкой, начерченной мысленно?

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

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


Ссылка на сообщение
(изменено)

Renson, вот:

function delete_npc()
    for a=10,65635,1 do
    local obj=alife():object(a)
        if obj and string.find(obj:name(),"Название нпс") then
        alife():release(obj,true)
        end
    end
end

 

Добавлено через 3 мин.:

malandrinus, что значит отладочные выводы?

log(...)? Или printf("Текст")?

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

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


Ссылка на сообщение
(изменено)

Товарищи, объясните пожалуйста принцип работы таймеров АМК.

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

 

А может быть так, что если я буду называть свои скрипты(файл.script) заглавными буквами, например: XySPiV, то в связки они не будут функционировать?

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

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


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

Сталкеры!

Есть функция воспроизведения звука, только вот громкость не настраивается.

function s_stop()
end

function s_play(path)
snd_obj2 = xr_sound.get_safe_sound_object(path)
snd_obj2:play_at_pos(db.actor, vector ():set (0, 0, 0), 0, sound_object.s2d)
end

function random_sound_amb()
local sounds = {
[[special_amb\bdog_howling_1]],
[[special_amb\bdog_howling_2]],
[[special_amb\crow1]]}
s_play(table.getn(sounds))
end

function volume01()
snd_obj2.volume() = 0.1
end

function volume02()
snd_obj2.volume() = 0.2
end

function volume03()
snd_obj2.volume() = 0.3
end

function volume04()
snd_obj2.volume() = 0.4
end

function volume05()
snd_obj2.volume() = 0.5
end

function volume06()
snd_obj2.volume() = 0.6
end

Где кот зарылся?

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


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

Нет, я просто делаю динамический амбиент из звуков зоны(крики, стрельба в дали), и в определённые моменты звук должен заглушаться.

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


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

Atempad, нет, просто у меня берётся всё суётся в биндер актора, и функция тащится по кругу, постоянно выбирая рандомную мелодию.

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


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

Ыыы. Жесть, не знал, спасибо, только вот, как она у меня работает? В смысле звук врубает, работают звуки рандомно?

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


Ссылка на сообщение
(изменено)

Вообщем, возможно ли, что бы скриптом высадить ГГ из машины?

Вот есть:

    function _construct(); - это что?
    function GetfHealth() const; - текущее значение здороья машины
    function CurrentVel(); - это что?
    function getVisible() const; - это что?
    function net_Spawn(cse_abstract*); - это что?
    function SetParam(number, vector); - это что?
    function net_Export(net_packet&); - это что?
    function Visual(); - это что?
    function IsObjectVisible(game_object*); - это что?
    function SetExplodeTime(number); - это что?
    function net_Import(net_packet&); - это что?
    function HasWeapon(); - это что?
    function SetfHealth(number); - установит значение здоровья машины
    function engaged(); - это что?
    function ExplodeTime(); - это что?(как применить)
    function FireDirDiff(); - это что?
    function CarExplode(); - это что?
    function CanHit(); - это что?
    function getEnabled() const; - это что?
    function Action(number, number); - это что?
    function use(CGameObject*); - это что?

Что же это всё?

 

И как применять?

Так?:

local car = level_object_by_sid(21005)
car.SetfHealth(1)

Или можно сделать, что бы машина не ехала? Скриптом. А так же скриптом, что бы потом ехала?

Кароче блокиратор движения.

Сколько не искал, всё не то.

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

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


Ссылка на сообщение
(изменено)

Товарищи!

Каким методом возможно привязать партикл-эффект к объекту?

Вот это:

function uberzetz()
    for a=10,65635,1 do
    local obj=alife():object(a)
        if obj and string.find(obj:name(),"marsh_clear_sky_1") then
particles_object("explosions\\campfire_05"):play_at_pos(obj:bone_position("bip01_head"))
        end
    end
end

Не работает, орёт на: uidivarexsoltions.script:53: attempt to call method 'bone_position' (a nil value)

 

И ещё, возможно ли заспавнить скриптом источник света и шейп?

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

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


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

Вобщем, делаю кнопку выключения света:

turn_lamp_off("level_prefix_lights_hanging_lamp")

function turn_lamp_off(id)
    local obj = level.object_by_id(id)
    if obj ~= nil then
        local hl = obj:get_hanging_lamp()
        if hl ~= nil then
            hl:turn_off()
        end
    end
end

Кнопка работает(из лаборатории x16), сделал поршень:

function FallowBinder()
if db.actor:has_info("marsh_way_lights_push") then 
turn_lamp_off("level_prefix_lights_hanging_lamp")
end
end

Подключил к биндеру актора(bind_stalker.script)

Захожу в игру, жму на кнопку, ноль эмоций)))

Я так понимаю он не может отследить лампочку на уровне?

Как правильно отследить его?

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


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

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

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


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

"level_prefix_lights_hanging_lamp", это name лампочки на уровне.

Тобишь ищу лампочку по name. А может по другому надо искать?

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


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

Ну как бы когда в игре через скрипт спавнится предмет, то ему добавляется индекс, типа bread4235, тобишь он по счёту 4235.

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


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

А как всё таки отследить номер?

Может сначала отследить все объекты с именем ***, а уже от них плясать?

Только вот объект то он один...

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


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

Товарищи! Это опять я)))

Вобщем опять нужны помощь:

Надо сделать таймер(без функций АМК), что бы засунуть его в апдейтер актора, и что бы он каждый час запускал функцию.

Просто сделал динамическую погоду, и теперь надо сделать выполнение функции каждый час, каждая погода по 1 часу.

В нет пакет думаю сохраню параметры нужные. Ну и потом загрузить.

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


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

Вообщем:

local text_dxs_consoles = "Первый текст \\n Второй текст"

function ui_dxs_console_text_dev_show()
local ltx = system_ini()
local ui_dxs_console_text_dev_show_check = ltx:r_float("DiXaresVolumes","DiXaresXrConsoles")
if ui_dxs_console_text_dev_show_check == 1 then
    local hud = get_hud()
    local cs = hud:GetCustomStatic("ui_dxs_console_text")
    if cs == nil then
        hud:AddCustomStatic("ui_dxs_console_text", true)
        cs = hud:GetCustomStatic("ui_dxs_console_text")
    end
    local ui_console_text_t = current_enemy
    local ui_console_text_n = text_dxs_consoles
    local msg
    if ui_console_text_t == current_enemy then
        msg = ui_console_text_n
    else
        msg = ui_console_text_n
    end
    if cs ~= nil then cs:wnd():SetText(msg) end
end
end

Как от сюда видно, функция для отображения текста на экране.

Мне надо сделать так, что бы текст: "Первый текст \\n Второй текст", нормально отображался, то есть с переносом строки, а он его не переносит, вообще не отображает. Как только убираю: \\n, то текст отображается, но нет переноса. Как разобраться дальше?

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


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

Не, не работает. Надо сделать что то на подобии консоли(~).

Что бы туда текст засовывать. Я так думаю засовывать текст можно так?:

local text = {}

text = text + "Дополнительный текст"

 

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


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

AMK-Team.ru

×
×
  • Создать...