erlik
Допустим надо сделать что бы после диалога с НПС и выдачей ему задания ГГ пошел и попал в засаду.
Я несовсем разобрался.
1)Сделал _new_create.script и добавил его в папку script.
2)Вот это как я понял програмируется точка
Где создавать эту функцию? Можно в своем файле например my_function.script
Где здесь сделать отсыл на фаил спавна НПС?
function spawn()
local pos = vector():set(-243,-20,-129)
local lv = 13586
local gv = 8
local radius = 100
local ltx = "[logic]\n"..
"active = sr_idle@in\n"..
karavan
основная функция создающая рестриктор может лежать в любом файле script с твоим именем.
(Исправил) - логика рестриктора с дин. ltx Должна находится там же где и основной скрипт рестриктора, и соответсвенно вызов пишется this.create_restr(pos, lv, gv, radius, ltx)
а вызов функции с данными, которая этот рестриктор заспавнит - в твоем случае это spawn()
делай отуда хошь - хоть из диалога, хоть из бинд_сталкера - на дроп вещи,
хоть пиши функцию с условием и ставь ее на апдейт.
вот так например
--\ функция для активация рестриктора
function activate()
if level.name() == "l01_escape" and
db.actor:dont_has_info("info_1") then
имя_файла.spawn_restrictor()
end
db.actor:give_info_portion ("info_1")
end
вызов функции спавна неписей делается через запись такого вида %=имя_функции% в логике рестриктора.
Но так как из логики вызываются тока функции из файла xr_effects то там и должна лежать функция спавна - целиком, а не имя.
я тебе там дал рабочий пример с вызовом функции спавна вояк %=spawn% на вход в рестриктор.
spawn - это имя моей функции которая вояк спавнила.
а рестриктор я для теста спавнил через дроп (выбрасывание) вещи.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
Допустим надо сделать что бы после диалога с НПС и выдачей ему задания ГГ пошел и попал в засаду.
Я несовсем разобрался.
1)Сделал _new_create.script и добавил его в папку script.
2)Заспавним через диалог. Добавил в диалог это: point.activate
3)Создал фаил point.script
прописал функцию для активация рестриктора по твоему примеру.
function activate()
if level.name() == "l01_escape" and
db.actor:dont_has_info("info_1") then
restrictor.spawn_restrictor()
end
db.actor:give_info_portion ("info_1")
end
3)Создал файл restrictor.script
Где здесь сделать отсыл на фаил спавна НПС? Допиши пожалуйста.
function spawn_restrictor()
local pos = vector():set(-243,-20,-129)
local lv = 13586
local gv = 8
local radius = 100
local ltx = "[logic]\n"..
"active = sr_idle@in\n"..
karavan
эта функция function spawn_restrictor() - должна быть у тебя там же где и скрипт singapur'22
вместо этого "[sr_idle@in]\n".. и тд.
возьми мой вариант из поста - полностью - так как вызов %=activate_knife% тебе нафиг не нужен
вместо моего %=spawn% напишешь свой %=restrictor_spawn_my_npc%
и все.
поршень из функции активации рестриктора зареги в файле info_portions
он нужен тока для того, чтобы рестриктор заспавнился один раз и больше - после самоликвидации - не спавнился. у меня так
"Заспавним через диалог. Добавил в диалог это: point.activate"
это все не надо.
так как твой рестриктор и так появится как тока ты загрузишь нужный уровень. У меня - появился.
кстати - ты спавнил через функцию с радиусом группу чуваков? че то у меня вместо 20 тока 2 появились - не пойму в чем дело - щас еще проверю.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
Что это такое немогу понять и куда идет отсыл. В примере на 14 стр этой функции нет.
this.create_restr(sid, pos, lv, gv, ltx, radius, x, y, z)
добавлено спустя 17 минут
erlik
Все заработало. Вот.
Вот так все заработало с вызовом через диалог
1)Сделал _new_create.script и добавил его в папку script.
2)Заспавним через диалог. Добавил в диалог это: point.activate
3)Создал фаил point.script
прописал функцию для активация рестриктора по примеру.
function activate()
if level.name() == "l01_escape" and
db.actor:dont_has_info("info_01") then
restrictor.spawn_restrictor()
end
db.actor:give_info_portion ("info_01")
end
4)Зарегестрировал инфопоршни.
5)Создал файл restrictor.script и прописал это:
----------------
function spawn_restrictor()
local sid = nil
local pos = vector():set(-257.244873,-17.815731,-127.838867)
local lv = 7389
local gv = 9
local radius = nil
local x = 10 --\ размер по x - длина
local y = 10 --\размер по y - высота
local z = 10 --\размер по z ширина - в итоге имеем квадрат 10x10x10 метров
local ltx = "[logic]\n"..
"active = sr_idle\n"..
erlik
Прочитал у тебя в журнале про анимации, заинтересовала анимашка fatigue.anm (усталость), и я хочу сделать, чтобы эта анимация активировалась, когда у ГГ допустим 25% здоровья. Скажи сразу, это трудно сделать?
Кровосос без щупалец, это как с щупальцами, только без щупалец...
Занимаюсь модмейкерством 8 месяцов. Конфиги, спавн, диалоги, локации, немного текстуры.
Перенес локацию Юпитер из Зова Припяти на ТЧ. Описание и ссылка в моем журнале.
а это this.create_restr(sid, pos, lv, gv, ltx, radius, x, y, z)
там и должно стоять перед end
просто у меня рестриктор куб и такая форма записи для Формы Куб:
имя_файла.create_restr(sid, pos, lv, gv, ltx, nil, x, y, z)
а это для формы Шар:
имя_файла.create_restr(sid, pos, lv, gv, ltx, radius)
функция спавна ресктриктора с логикой у меня в том же файле где и основной скрипт.
поэтому вместо имени файла this
если ты не задал sid то можно убрать из скобочек sid
добавлено спустя 2 минут
проигрыш звуков из логики
пример
%=play_snd(characters_voice\scenario\aes\aes_chopers_begin)%
добавлено спустя 5 минут
saler
function name()
if db.actor.health <= 0.25 then
level.add_cam_effector("camera_effects\\fatigue.anm", 1975, false, "")
end
end
анимация будет идти секунд 10, может меньше. Точнее говоря она будет повторятся пока здоровье у ГГ не поправится. но - это надо проверить - может и не пойти такой вариант вообще.
функция должна стоять на апдейте в
function actor_binder:update(delta)
имя_файла.имя_функции()
отредактировал(а) erlik: 22-09-2009 17:22 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
С этим пока разобрался.
Теперь другое. Как написать функцию с проигрыванием звука в голове ГГ?
Как поставить метку на рестриктор т.е. на точку? Надо для квестов.
сорри за повтор, но как сделать чтоб фонарик был прожектором???:blink
знаю что чит, но надо, мод на нормальную погоду установил, ночи темные, обычный фонарик не спасает, видимость почти нулевая, Help народ:-(
karavan
пример запуска звуков из логики я тебе дал. Как написать свою функцию с проигрышом звуков и запуском не из логики, а из функций смотри пример в журнале Датчика Хабара - у него там минимод есть "веселый болтун".
как ставить метку на рестриктор - не знаю.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
Так как надо условие задать, чтобы активировалась анимация, если у ГГ 25% здоровья?
Кровосос без щупалец, это как с щупальцами, только без щупалец...
Занимаюсь модмейкерством 8 месяцов. Конфиги, спавн, диалоги, локации, немного текстуры.
Перенес локацию Юпитер из Зова Припяти на ТЧ. Описание и ссылка в моем журнале.
erlik
Если я в bind_stalker пропишу выполнение этой функции, то она будет выполняться бесконечно? (ну когда здоровье меньше 25%)
Кровосос без щупалец, это как с щупальцами, только без щупалец...
Занимаюсь модмейкерством 8 месяцов. Конфиги, спавн, диалоги, локации, немного текстуры.
Перенес локацию Юпитер из Зова Припяти на ТЧ. Описание и ссылка в моем журнале.
saler
не знаю точно - так как не проверял. возможно что что то будет не так. ты сделай и потом отпишись что и как. Возможно придется ставить доп. условия в функцию.
Если скажем поставишь == 0.25 то условием будет ровно 25% - не меньше и не больше.
я проверил - у меня вылет со странным логом - типа объект с данным story id уже зарегистрирован - ниче не пойму - ругается на цифирки в скобках - никогда с ними проблем раньше не было. буду разбираться...
отредактировал(а) erlik: 22-09-2009 18:33 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
хорошо, завтра проверю, отпишусь, а то сегодня времени нет
Кровосос без щупалец, это как с щупальцами, только без щупалец...
Занимаюсь модмейкерством 8 месяцов. Конфиги, спавн, диалоги, локации, немного текстуры.
Перенес локацию Юпитер из Зова Припяти на ТЧ. Описание и ссылка в моем журнале.
Со звуком разобрался надо было всего то поставить вызов в функцию спавна.
Теперь хочу разобраться с метками. Прочитал у сингапура в журнале статью про метки они вызываются оператором:
level_tasks.add_location(айди объекта, "тип метки", "подпись")
Немогу пока понять что здесь - айди объекта и где его смотреть и еще "подпись" - что за подпись такая?
karavan
Цифры это sid из game_story_ids
level_tasks.add_location(506, "green_location", "bar_petrenko")
level_tasks.add_location(597, "volkodav_location", "rostok_banda_volkodava")
а подпись - то что напротив цифр там стоит. Правда не во всех найденных мной примерах подписи точно совпадали с тем что в game_story_ids - возможно точность подписи не столь важна.
оператор убора метки
level_tasks.remove_location(025, "green_location") - пишем тока сид и тип метки.
можно ли их насадить на рестриктор - пробуй сам.
добавлено спустя 17 минут
короче догнал я как делать
задаешь в логике рестриктора sid - там есть такая строчка
в операторе показа метки пишешь его, а вместо подпси пишешь что хошь например dunger_zone
затем пишешь перевод dunger_zone
в файле string_table_mapspots_уровень
типа так в метке банды волкодава Волкодав с головорезами возле вертолета
и при наведении на метку курсором на карте будет писаться то что ты указал.
отредактировал(а) erlik: 22-09-2009 19:36 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
karavan
а у тебя почему вместо цифр obj.id ? Тут же надо ставить sid объекта - а это всегда цифры - в скриптах игры тока так. У тебя метка вообще видимо не твоя показывается.
Я тут тоже пытался на рестриктор метку повесить - метка не появилась.
Надо это дело у singapur'а22 уточнять.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
Вот я раньше прописывал выполнение функции в bind_stalker и все работало, а сейчас, когда прописываю, вылетает, ругается на bind_stalker:
...attempt to index global "название моего скрипта" (a nil value)
Не знаешь из-за чего стало вылетать?
Кровосос без щупалец, это как с щупальцами, только без щупалец...
Занимаюсь модмейкерством 8 месяцов. Конфиги, спавн, диалоги, локации, немного текстуры.
Перенес локацию Юпитер из Зова Припяти на ТЧ. Описание и ссылка в моем журнале.
Нашел способ ставить метки на любой уже существующий в игре рестриктор - правда пришлось слазить в один мод и оттуда взять нужную функцию - в чистой игре по-видимому вобще не предусмотрена возможность ставить метки на рестрикторы(хотя может я и не прав). Метка ставится по сиду, который прописан в allspawn за какими-нить рестриктором. Я ставил случайные 4-х значные цифры (а в игре больше 1000 рестр.) и если они совпадали с зарегистрированным сидом, то метка появлялась - каждый раз в новом месте - там, где в игре заспавнен рестриктор. Попробовал поставить 5-значное число, которе явно не было использовано для рестрикторов игры - метка просто не появилась (это же число присвоил своему рестр).
НО на мой рестриктор заспавненный через скрипт метка не вешается - отсюда сделал вывод, что sid из функции singapur'а22 почему то не читается игрой. Пробовал извратиться и созда спец. функцию для передачи числа sidа из функции спавна рестриктора в функцию показа метки - не вышло - метка опять на ГГ.
singapur22
Help. Требуются твои пояснения.
добавлено спустя 8 минут
saler
а какой скрипт ты ставил на апдейт?
понятно - я же уже отписался, что вариант не рабочий - у меня тоже вылетало, только с другим логом. пока не могу понять, что там не так.
отредактировал(а) erlik: 23-09-2009 14:23 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
скрипт с функцией активации анимации, когда здоровья меньше 25%
Кровосос без щупалец, это как с щупальцами, только без щупалец...
Занимаюсь модмейкерством 8 месяцов. Конфиги, спавн, диалоги, локации, немного текстуры.
Перенес локацию Юпитер из Зова Припяти на ТЧ. Описание и ссылка в моем журнале.
Где:
sobj.id = айди серверного объекта
location = тип спота
hint = комментарий
Так как данный способ требует серверный объект, за место клиентского, то спот можно устанавливать ещё при спавне объекта. Существует множество способов определения серверного объекта. Всё зависит от того, в какой момент устанавливается спот на рестриктор. Если в момент спавна, то тут достаточно просто. Просмотри способ установки спота на левел_чейнджер заспавненый через скрипт. Если же гораздо позже спавна, то тут нужно устанавливать ему СИД, или запоминать его айди во время спавна и по запомненной данной устанавливать ему спот.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
я прямой и использую.
Эта функция из мода - там метки ставятся сразу на все - я сдела для одиночного варианта.
Рестрикторы
class "se_restrictor" (cse_alife_space_restrictor)
function se_restrictor:on_register()
cse_alife_space_restrictor.on_register(self)
--' Нарисовать мапспот с собой
if sim_statistic.show_restrictor_spot == true then
local sid = test_restrictor.sid_1()
level.map_add_object_spot_ser(sid, "alife_presentation_smart_target", "danger_zone")
end
end
это вариант с передачей сида - метка появляется на ГГ. Без передачи сида в функцию метка ставится на любой рестриктор. То есть просто указываю в скобках любой 4-х значный сид.
делал и так - как для ченджеров в игре. Так значит не канает?
function metka()
local sim = alife()
if sim then
local obj = sim:story_object(9999) -- сид рестриктора - указал в функции его спавна
level.map_add_object_spot(obj, "alife_presentation_smart_target", "danger_zone")
end
end
метка в итоге на ГГ. Если писал obj.id - то был вылет.
добавлено спустя 3 минут
в ченджере через скрипт прописано сохранение сида
local story_id = packet:r_u32()
тоже что ли сохранять?
добавлено спустя 1 минуту
метку хочу поставить сразу при спавне.
отредактировал(а) erlik: 23-09-2009 14:50 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
saler function name()
if db.actor ~= nil and db.actor.health <= 0.25 then
level.add_cam_effector("camera_effects\\fatigue.anm")
end
end
и будет тебе твой ефект
отредактировал(а) manunj: 25-09-2009 15:29 GMT3 час.
singapur22
че то не выходит. В скриптовом ченджере метка спавнится по координатам ченджера.
ну сделал также -
function metka()
local obj = alife():create("alife_presentation_smart_target", vector():set(-229.616,-20.199,-147.374),25279,47)
level.map_add_object_spot(obj.id, "alife_presentation_smart_target", "danger_zone")
end
и получил вылет : Can't open section 'alife_presentation_smart_target'
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.