Futura
имя функции у тебя это spawn()
имя файла - это имя того файла где у тебя эта функция находится.
например функция у тебя лежит в файле new_func.script
имя функции spawn()
тогда пишешь
new_func.spawn()
и так делаешь для вызова или апдейта любых функций .
я там скрипт для активации функции спавна поправил - смотри правильный вариант.
добавлено спустя 1 минуту
function - это один из операторoв lua
Сообщение было успешно отредактировано erlik (11-10-2009 00:24 GMT3 часа, назад)
erlik
Сделал всё как ты написал, но блин при синхронизации вылетает и ругается на _g.скрипт :(
Вот как я сделал:
omg.script
function spawn()
alife():create("medkit", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(),db.actor:id())
end
function activate()
if level.name() == "l01_escape" and --\\пишем имя нужного уровня -
not has_alife_info("info") then
omg.spawn()
db.actor:give_info_portion("info")
end
end
В инфо-поршены добавил <info_portion id="info"></info_portion>
bind_stalker
function actor_binder:update(delta)
object_binder.update(self, delta)
--\\сюда пишем это
omg.function activate()
xxx5
Легко.
Зайди в gamedata\config\misc,найди там файл:
items.
Найди там device_torch,
device_torch - это фонарик.
И измени вот эту строчку
slot = 9
на эту
slot = 1
и под ней добавь вот эту
belt = true
.
Только чтобы фонарик заработал на поясе надо переместить его в 1_ый слот и потом на пояс.
Ура, наконец-то получилось.
Ошибка была в omg.function activate() , забыл убрать function.
Спасибо всем кто помог мне благополучно заспавнить колбасу!:)
Futura
если у тебя функция которую ты вызываешь находится в том же файле откуда она и вызывается - пиши не omg.spawn()
а
this.spawn()
вызывать в этом случае надо без имени файла - а указать таблицу this - это значит "в этом же файле"
хотя у тебя вроде и так сработало - но это правильнее.
вообще чтобы на замусоривать файл bind_stalker вписыванием туда новых функций
лучше сделать так - поставить на апдейт туда только одну функцию
имя_файла.on_actor_update(delta)
а саму функцию положить в любой свой скриптовый файл - и уже в тело этой функции вписывать имена тех функций, который надо вызвать через апдейт эктора.
вот как у меня это работает:
function on_actor_update(delta)
this.activate()
repair.use_repkit()
bomba_test.use_pult()
--this.fat()
set_com.use_set_pult()
bomba_test.bada_boom()
--level_changer.escape_garbage()
this.act01_wounded_pp()
this.act02_wounded_pp()
--this.all_friends()
kill_zone.kill_them_all()
kill_zone.active_zone()
kill_zone.start_delay()
end
сюда вписываю все что мне надо активировать.
Сообщение было успешно отредактировано erlik (11-10-2009 02:18 GMT3 часа, назад)
erlik
Немного уточню по теме вызова функции.
Если функция находится в том же файле, из которого вызывается, то указание полного имени файла ( file_name.my_function() ) или 'this.my_function' или даже без указаний ( my_function() ) сути не меняет, ЕСЛИ ...
1. В случае наличия одноименной функции в 'головном' префиксном файле (для Сталкера это '_G.script'), то возможны коллизии интерпретатора LUA. Поэтому стОит 'подсказать' какая же функция должна вызываться, т.е. указать конкретно имя файла или 'this'.
2. Делать указатель функции через 'this' удобно, если файл может быть переименован. Хотя вроде бы и можно обойтись вовсе без указателя. Указатель просто 'подсказывает', что это функция, находящаяся в этом же файле.
3. Указатель 'this' или применение имени файла порой необходимо, если функция одноименна с уже имеющейся в префиксном файле ('_G.script'), если она расположена ниже по кодам/строкам, чем функция откуда вызывается, и если к этому файлу еще не было обращений (т.е. он еще не инициировался).
Цитата#ДатчикХабара : xxx5
Легко.
Зайди в gamedata\config\misc,найди там файл:
items.
Найди там device_torch,
device_torch - это фонарик.
И измени вот эту строчку
slot = 9
на эту
slot = 1
и под ней добавь вот эту
belt = true
.
Только чтобы фонарик заработал на поясе надо переместить его в 1_ый слот и потом на пояс.
дайте пож названия аномалий в алл.спаун? section_name = zone_mincer_weak_noart - птичья каруселька
(у мя только эта есть)
самая которую надо эт мясорубка(электра) и слизь!
Какая есть консольная команда аналог "demo_record 1" но без вывода подсказки в центре экрана (которая красными буквами оттображается)? Надо для записи видео.
erlik честно, мало что понял. можешь точно написать куда что прописать , и тд. какой инфопоршень. просто хочу сделать диалог чтобы когда я коече скажу выдавался поршень и нпс стрелялся. а то я всю ночь бился с вирусом, и туго соображаю
У меня проблема со спавном нескольких предметов через 1 скрипт
function spawn()
alife():create("wpn_gauss", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(),db.actor:id())
end
function spawn()
alife():create("ammo_gauss", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(),db.actor:id())
end
function spawn()
alife():create("kolbasa", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(),db.actor:id())
end
function activate()
if level.name() == "l01_escape" and --\\пишем имя нужного уровня -
not has_alife_info("info") then
this.spawn()
db.actor:give_info_portion("info")
end
end
Проблема в том, что спавнится только самый нижний предмет(в данном случае колбаса). Можно конечно спавнить каждый предмет через разные файлы но неудобно блин
и еще, как пользоваться конвертером от бардака чтобы декомпилировать уровень в формат сдк?? можете полностью написать что куда пеерместить и как написать, потому что у меня нифига неполучилось
Сообщение было успешно отредактировано новиков сергей (11-10-2009 16:25 GMT3 часа, назад)
новиков сергей
http://stalkerin.gameru.net/wiki/index.php/%D0%94%D0%B5%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5%D0%B9_%D0%B2_%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D0%A1%D0%94%D0%9A
новиков сергей
если из диалога - то там вообще все просто - берешь первый вариант функции и делаешь экшен из диалога - с фразы эктора.
function make_suicide(actor, npc)
npc:kill(npc)
end
Futura
имен функций должны быть разные - припиши к ним хотя бы цифирку spawn_1() , spawn_2() и т.д. и вызывай или все вместе или по отдельности - как тебе надо.
Сообщение было успешно отредактировано erlik (11-10-2009 16:45 GMT3 часа, назад)
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.