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

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

Не вру. Ты апдейт куда записывал? Так как у меня? chimera_mod.din_scope()? Да и какой мне смысл врать? Я же заинтересованное лицо.)))

Ссылка на комментарий

кровоSTALKER

в bind_stalker.script, function actor_binder:update(delta)

...
        self.bCheckStart = false        
    end        
test.active_weapon()
end
...

 

и как у тебя может не работать,если я у себя изменял только название кастом статика,скрипт не трогал?

function active_weapon()

local hud = get_hud()

local custom_static = hud:GetCustomStatic("ait")

local active_item=db.actor:active_item()

if active_item then

if active_item:section() == "wpn_vintorez" or active_item:section() == "wpn_svu" or active_item:section() == "wpn_svd" then

if math.ceil(db.actor:accuracy()*1000) == 1 then

if custom_static == nil then

hud:AddCustomStatic("ait", true)

end

end

end

end

 

Изменено пользователем Влад
Не бойтесь совершенства. Вам его не достичь.
C. Дали
Ссылка на комментарий

Возник вопрос: может ли кто-нибудь подсказать функцию, проверяющую, на какой локации находиться ГГ?

Заранее спасибо.

Ссылка на комментарий

Renson

function check_level()

local current_level = ""

if level.name() == "l01_escape" then

current_level = "esc"

end

if level.name() == "l02_garbage" then

current_level = "gar"

end

if level.name() == "l04_darkvalley" then

current_level = "dv"

end

if level.name() == "l05_bar" then

current_level = "bar"

end

if level.name() == "l06_rostok" then

current_level = "rost"

end

if level.name() == "l07_military" then

current_level = "mil"

end

if level.name() == "l08_yantar" then

current_level = "yan"

end

if level.name() == "l10_radar" then

current_level = "rad"

end

if level.name() == "l11_pripyat then

current_level = "pri"

end

if level.name() == "l12_stancia" then

current_level = "stan"

end

if level.name() == "l11_pripyat then

current_level = "pri"

end

return current_level

end

 

для добавления уровня делай так:

if level.name() == "название_локи" then
    current_level = "любой_текст"
end

Не бойтесь совершенства. Вам его не достичь.
C. Дали
Ссылка на комментарий
Влад, а ты на ТЧ тестил? Я ведь речь о ЗП веду. Изменено пользователем кровоSTALKER
Ссылка на комментарий

кровоSTALKER

Так я не экстрасенс.Не могу я знать,что тебе на ЗП надо.

сейчас попробую на ЗП,потом отпишусь.

----upd.

ну вот,проверил на ЗП.Всё работает.

только строчку

if math.ceil(db.actor:accuracy()*1000) == 1 then

измени так

if math.ceil(db.actor:accuracy()*1000) == 0 then

Изменено пользователем Влад
Не бойтесь совершенства. Вам его не достичь.
C. Дали
Ссылка на комментарий

Влад, а мне поможеш? Как заспавнить в инвертать пару итемов, потом в опред. момент сработает функция и нужно эти самые 2 итема переместить на локу в определенные кооринаты. (актор находится на той же локи).

Ссылка на комментарий

max_max_08

на,держи ;)

function spawn()

alife():create("item1", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())

alife():create("item2", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())

end

 

function update()

local tim = game.time()

local timer = 100000

if (game.time() - tim) >= timer and db.actor:object("item1") and db.actor:object("item2") then

alife():release(alife():object(db.actor:object("item1"):id()), true)

alife():release(alife():object(db.actor:object("item2"):id()), true)

tim = game.time()

timer = 100000

end

alife():create("item1", vector():set(x,y,z),level_vertex_id,game_vertex_id)

alife():create("item2", vector():set(x,y,z),level_vertex_id,game_vertex_id)

end

 

функцию update() пихай в bind_stalker.script, function actor_binder:update(delta).

my.update()

----------

функцию spawn() пихай в bind_stalker.script, function actor_binder:update(delta),между

level_tasks.add_lchanger_location()

и

self.bCheckStart = false

т.е. так:

level_tasks.add_lchanger_location()

my.spawn()

self.bCheckStart = false

 

Не бойтесь совершенства. Вам его не достичь.
C. Дали
Ссылка на комментарий

Вопрос вроде-бы простой... Как заспавнить изношенное оружие в инвентарь ГГ ?

спавним

 

sp_weap = alife():create(spawn_item, actor:position(), actor:level_vertex_id(), actor:game_vertex_id(), actor:id())

 

дальше пытался сразу установить состояние ...

 

sp_weap:set_condition(0.1)

 

не срабатывало ... (нарыл, что вроде как для установки износа небходимо некоторое время и объект стал "клиентским")

 

срабатывало, если установку износа вынести в отдельную функцию и вызывать в другом месте диалога, но это чревато обретением целого оружия при "досрочном" выходе из разговора... можно решить "психологическим" путем, но...

 

пришлось поставить в actor_binder:update фукцию по установке нужной "кондиции"... работает, но может быть это можно сделать как-то иначе... проще?

 

 

Событие это разовое, квестовое...

Изменено пользователем Kris
Ссылка на комментарий

Помогите пожалуйста:

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

Где ошибка? А то вылет получаю.

Ссылка на комментарий

TREWKO, а разве на строку можно применять функцию position()? Для начала нужно получить объект, а потом уже узнавать его положение, и лог вылета тоже не мешало бы писать.

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

про лог я сказал на будущее, а как получить объект смотри в файле lua.script, и в других скриптах как оригинальной игры так и модов, так ты не только найдешь ответ на свой вопрос но и узнаешь много нового и полезного.

Изменено пользователем 8push5
Возможно всё, ну или почти всё.
Ссылка на комментарий

А как получить объект?

Это типа: if obj ~= nil then ...?

Вот лог:

FATAL ERROR

 

[error]Expression : fatal error

[error]Function : CScriptEngine::lua_error

[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp

[error]Line : 73

[error]Description : <no expression>

[error]Arguments : LUA error: ....l.k.e.r.chernobyl\gamedata\scripts\divaresix.script:56: attempt to call method 'position' (a nil value)

 

 

stack trace:

 

 

Lua.script нет. Есть lua_help.script

Изменено пользователем TREWKO
Ссылка на комментарий

кровоSTALKER

:blink: не знаю..у себя раза 2-3 точно проверял - работало.как ты всё это делал - не знаю.в ПМ стучи.Расскажешь.

Не бойтесь совершенства. Вам его не достичь.
C. Дали
Ссылка на комментарий

Народ, хелп :russian_ru: . Така трабла - надо отключить отображение определённых свойств артов и добавить статью в энциклопедию по определённому инфопоршню. як это сделать? :russian_ru:


Команда ReWrite Team. От сталкера отошли. Пересели за другую платформу.

 

Ссылка на комментарий

Gektor,

Отображение никак

Статью запросто. Инфопоршень повесь на какое нибудь действие, и прекрепи его к статье.

забыто и уничтожено.
Ссылка на комментарий

а свойства артов через скрипт или движок отображаются? :russian_ru:


Команда ReWrite Team. От сталкера отошли. Пересели за другую платформу.

 

Ссылка на комментарий

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

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)

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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

AMK-Team.ru

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