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

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


Svoboда

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

1. Как через all.spawn заспавнить объект, а потом скриптом/инфопоршном его удалить?

2. Как вместо ПДА вызывать скрипт?

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


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

1. Нет, как спавнить я знаю, мне надо его удалить. Инфопоршнем, я не так выразился, при наличии инфопоршня. Можешь поподробней про "reliase"?

2. т.е при вызове ПДА (кнопкой P например) сам ПДА не открывать, а запускать скрипт

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


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

amik, спасибо

Charsi, а как "отловить активное окно"?

Artos, если я собираюсь это делать, значит понимаю что да как. А про reliase я и правда впервые слышу, хотя прочитал, наверно, 80% вики по сталкеру

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


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

Так как закрыть ПДА при вызове? Проверяем на инфопоршень "ui_pda", а дальше?

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


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

RvP, спасибо.

Как узнать скриптово расстояние до цели, которое под прицелом выводится?

Пробовал level.get_target_dist(), но с ним вылетает и пишет attempt to call field 'get_target_dist' (a nil value)

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


Ссылка на сообщение
Darkscape, тебе нужно заменить xrGame.dll на r15 и выше.
Это на ТЧ идет? X-Ray Extension вроде на ЗП

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


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

Вот кусок скрипта на ТЧ:

if db.actor.radiation>0.3 then
   if db.actor:object("bread") then 
      del_item(db.actor:object("bread"))
      spawn_item("bread_rad")
   elseif db.actor:object("kolbasa") then 
      del_item(db.actor:object("kolbasa"))
      spawn_item("kolbasa_rad")
   elseif db.actor:object("chocolate") then 
      del_item(db.actor:object("chocolate"))
      spawn_item("chocolate_rad")
   end
end

При входе в радиацию у актера удаляется еда и добавляется новая, радиоактивная, но игра ругается на этот код.

Вот функции:

function spawn_item(item)
alife():create(spawn_item, db.actor:position(),    db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
end

function del_item(item)
local obj = alife():object(item:id())
alife():release(obj, true)
end

Где ошибка?

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

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


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

лог

[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: d:\games\С.Т.А.Л.К.Е.Р\gamedata\scripts\bind_stalker.script:235: attempt to index global 'inventory' (a nil value)

 

inventory - это скрипт

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

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


Ссылка на сообщение
Вылет (если я прав) указывает на то, что в скрипте inventory есть синтаксическая ошибка.
Это я понял, но вот где она. В бинд-сталкер просто поставил апдейт этой функции

 

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

Все, проблема решена, спасибо

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


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

Zander_driver, спасибо за совет, переписал скрипт, получилось:

local items1 = {"bread", "kolbasa", "chocolate"}

function rad_food()
   if db.actor.radiation>0.3 then
      for i=1,table.getn(items1) do
         db.actor:iterate_inventory(function (dummy,item)  
            if item:section()==items1[i] then
               dsm.del_item(item)  
               dsm.spawn_item(tostring(items1[i].."_rad"))
            end
            end, nil)
      end
    end
end

Все работает, вроде правильно написал

 

1. Используем спойлеры ...

2. Перед написанием вопросов проверяем коды чекерами (см. в топике по инструментарию)

--/ Artos

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

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


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

По ТЧ:

1. Как скриптово сделать монстра и непися друзьями?

2. Можно ли реализовать в ТЧ сценку из ЗП, где военный стреляет по сторонам, атакованный контролером?

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


Ссылка на сообщение
Ulman, в 343 строчке скрипта arc_ui_container_menu.script сравнение числа с nil

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


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

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