Я не уверен, что мне кто то ответит, но всё таки. При создании нового интерфейса, столкнулся с проблемой вывода многострочных текстов. Метод CUIStatic():SetText( текст ) выводит только в одну строку, хоть ты как ухищряйся, результат всё равно один, одна строка.
Может кто знает, то не поленитесь ответить. Какой метод, или методы позволяют выводить многострочные тексты в интерфейс?
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
ребят. ещё такой вопросик:
создал нпс. заспавнил всё хорошо.
в all.spawn к нему прописан файл логики (voron.ltx)
так вот. как потоньше его настроить?
если точнее, мне надо чтобы заспавненный нпс стоял на месте своего спавна и ТОЛЬКО если его будут атаковать, мог с него уходить и отстреливаться. по окончании боя нужно чтобы он возвращался на место своего спавна и вновь стоял.
при этом желательно чтобы оружие (у него есть автомат) он никогда не убирал, а держал в руках (как Волк)
Как называется прибор/детектер, с которым бродит круглов на замерах? В его профиле не нашел...
moskvin
Та логика не моя, а взята из статьи с форума АМК.
Я к примеру делаю это walker-ами...
Вот подробнейшая статья по логике: _http://stalkerin.gameru.net/wiki/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BB%D0%BE%D0%B3%D0%B8%D0%BA%D0%B8._%D0%A7%D0%B0%D1%81%D1%82%D1%8C_1
Изучай.
Вопрос снимается.
отредактировал(а) Отшель[НИК]: 11-08-2009 16:26 GMT3 час.
"Нет Предназначения… Оно не существует. Единственное, что предназначено всем, - это смерть."
Отшель[НИК]
прописал то, что ты сказал. итог: после окончания боя они стоят там, где его окончили (надо чтобы шли на место спавна). оружие убирают за спину (надо чтобы держали в руках (как Волк)).
в чём дело?
moskvin
с ремарковой логикой неписи так и будут тупить. У меня так же было. Надо их либо кемперами делать - с точкой кемпа - либо волкерами с патрульными путями. Тода будут возвращаться обратно опосля боя.
Либо им прописывать в логику секцию combat, а в ней задавать им кемперский тип боя - тогда они с места должны палить и никуда не срываться. А если и сорвутся, то недалече. Ну и с секцией денжер маленько помудрить, чтобы они не таки пугливые были и в себя побыстрей приходили после того как враг с глаз долой исчезнет.
Статьи читай на stalkerin.gameru.net - раздел база знаний, название статей - "настройка логики" в 4-х частях.
Анимку им в ремарк пропиши: anim = guard
будет с ружом стоять. А у волка несколько анимок, еще есть hello_wpn и guard_rac - первая с ружом на плече и рукой махает, вторая - по рации базарит и ружо держит.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
прописал анимацию - смотрю. 1, что нетак - он машет рукой). 2. он использует эту анимацию только, пока я с ним не поговорю. как поговорю - всё по старому.
может ещё подскажешь?
добавлено спустя 3 минут
а нет. ошибся. рукой не машет. всё хорошо с анимацией. но остаётся вопрос про кемпера.
добавлено спустя 1 минуту
а как уменьшить его дальность видения? а то он на меня смотрит, когда между нами километр ещё целый.
отредактировал(а) moskvin: 11-08-2009 16:08 GMT3 час.
moskvin ах да, прости, ты разбираешься только в том как своровать из других модов что то и выдать это за свое. Самое смешное из этого чего-то - дверь сидоровича из амк
A.R.S. Mod ARS CoP Mod
Нужнен скриптер отладчик, писать в
Вот у меня вопрос про глушители...вот например я в файле оружия поставил чтобы глушитель мог ставиться на Грозу в оригинальной игре,что мне надо и где прописывать его положение и звуки?Про моды мне не надо толдычить,я хочу сам поставить.
Soul Reaver
в настройках грозы смотри. по умолчанию, прописав возможность цеплять глушитель, попробуй сразу запустить игру. есть вероятность 70% что всё будет нормально работать. если будет что-то не так, открывай свойства грозы и смотри по глушителю расположение (x,y,z)
Все сделал с твоими поправками, но получается вот как:
срабатывают эффекты из первого шага - там у меня начало выброса и смена погоды
level.add_pp_effector("vibros_p.ppe", 1976, false)
level.set_weather("stancia")
ну и звуки еще. Все это идет - если у эффекта ставлю true, то бесконечно идет, если false, то как и положено заканчивается секунд через 10. Погода так и остается.
А дальше перехода на второй шаг - где остановка первого эффекта и запуск функции - не происходит. Ниче не понимаю что не так...
local tim = game.time()
local flag = 0
local flag1 = 0
local flag2 = 0
local flag3 = 0
local flag4 = 0
local flag5 = 0
local flag6 = 0
local flag7 = 0
local flag8 = 0
local flag9 = 0
local flag10 = 0
local flag11 = 0
--local xray = 0.001
function run_supereffect()
if (game.time() - tim)>= 100000 and flag == 0 then
level.add_pp_effector("vibros_p.ppe", 1976, false)
level.set_weather("stancia")
local snd_obj = xr_sound.get_safe_sound_object([[anomaly\blowout]])
snd_obj:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)
flag = 1
elseif (game.time() - tim)>= 300000 and flag1 == 0 then
level.remove_pp_effector(1976)
flag1 = 1
elseif (game.time() - tim)>= 350000 and flag2 == 0 then
this.Run_Vibros()
flag2 = 1
elseif (game.time() - tim)>= 450000 and flag3 == 0 then
level.add_pp_effector("radiation.ppe", 1974, false)
--level.set_pp_effector_factor(1001, db.xray) --\ не совсем понял как с этим параметром работать
flag3 = 1
elseif (game.time() - tim)>= 550000 and flag4 == 0 then
level.add_pp_effector("deadcity_wake.ppe", 1977, false)
--level.set_pp_effector_factor(1001, db.xray)
flag4 = 1
elseif (game.time() - tim)>= 650000 and flag5 == 0 then
level.remove_cam_effector(1970)
level.remove_pp_effector(1975)
level.remove_pp_effector(1974)
level.add_pp_effector("yantar_underground_psi.ppe", 1977, false)
--level.set_pp_effector_factor(1001, db.xray)
flag5 = 1
elseif (game.time() - tim)>= 750000 and flag6 == 0 then
level.remove_pp_effector(1977)
level.add_pp_effector("blink.ppe", 1978, false)
flag6 = 1
elseif (game.time() - tim)>= 800000 and flag7 == 0 then
level.add_cam_effector("camera_effects\\fatigue.anm", 1979, false, "")
--level.set_pp_effector_factor(1001, db.xray)
flag7 = 1
elseif (game.time() - tim)>= 850000 and flag8 == 0 then
level.remove_cam_effector(1979)
level.add_cam_effector("camera_effects\\fusker.anm", 1970, false, "")
flag8 = 1
elseif (game.time() - tim)>= 900000 and flag9 == 0 then
level.add_pp_effector("dead_zone.ppe", 1980, false)
--level.set_pp_effector_factor(1001, db.xray)
xr_sound.set_actor_sound("level_border_detector")
xr_sound.set_actor_sound_factor(0.1)
flag9 = 1
elseif (game.time() - tim)>= 1100000 and flag10 == 0 then
level.remove_pp_effector(1980)
xr_sound.set_actor_sound("")
--level.remove_pp_effector(1001)
flag10 = 1
elseif (game.time() - tim)>= 1150000 and flag11 == 0 then
level.add_cam_effector("camera_effects\\prison_1.anm", 1981, false, "")
--xray = 0
flag11 = 1
tim = game.time()
end
end
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik А ты функцию апдейдишь (постоянно вызываешь)? Или делаешь только разовый вызов? Если второе, то у тебя так и будет. Подобным схемам нужен постоянный апдейт. А запуск уже производить посредством включения и отключения флагов.
добавлено спустя 6 минут
Например создай такую функцию:
function start_effect()
if has_alife_info("start_effect") then
вызов твоей функции end
end
Вызов данной функции пропиши в апдейте файла bind_stalker.
Ну и соответственно запуск твоих эффектов будет производиться путём включения поршна "start_effect".
В вызываемой функции, где все твои эффекты, по окончании всех процессов пропиши отключение поршна. И скрипт будет работать как положено.
отредактировал(а) singapur22: 11-08-2009 19:22 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
Теперь понятно. Апдейта у меня не было, так как делал запуск банально через дроп вещи.:-)
Спасибо за разъяснение.
Но тогда такой еще вопрос:
А насколько сложно сделать такую вещь как таймер который будет постоянно отсчитывать игровое время и через нужные промежутки делать запуск главной функции (ну или тот же поршень выдавать) - причем делать это периодично?
Ну чтобы не надо было каждый раз инфопоршень выдавать...
отредактировал(а) erlik: 11-08-2009 19:53 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
--------------------------------------------
Что нам надо?
ACDC,алл.спавн,character_desc_garbage.xml(в config\gameplay ),npc_profile.xml(в config\gameplay ) и прямые руки.
итак распаковываем алл.спавн(как распаковывать писать не буду).
Допустим мы хотим заспавнить НПЦ на свалке.Открываем alife_l02_garbage.ltx и дописуем в него:
--------------------------------------------
[2143]
; cse_abstract properties
section_name = stalker
name = gar_chelll
position = 11.857313156128,0.32913729548454,-20.160694122314
direction = 0,0.00316426996141672,0.062321275472641
; se_stalker properties
--------------------------------------------
где:
[2143] - номер в спавне
section_name = - секция чего мы спавним(нам надо stalker)
name = - имя кого мы спавним(мы поставим gar_chelll)
position = - позиция где спавним
direction = - поворот НПЦ
game_vertex_id = гейм вертекс
level_vertex_id = - левел вертекс
--------------------------------------------
Примечание:
координаты спавна, game_vertex_id и level_vertex_id можно получить с помощью функции:
function main_menu:OnButton_credits_clicked()
local text
local vid
local gvid
local a = vector()
local text
a = db.actor:position()
vid = db.actor:level_vertex_id()
gvid = db.actor:game_vertex_id()
text = "Позиция:\nX= "..a.x.."\nY= "..a.y.."\nZ= "..a.z.."\nlevel_vertex= "..vid.."\ngame_vertex_id= "..gvid
news_manager.send_tip(db.actor, text, nil, nil, 30000)
end
просто допишите её в ui_main_menu.script,в самом конце.
Для снятия координат начинаем игру,идём в нужное место,нажимаем esc,титры,обратно в игру и делаем скриншнот.
--------------------------------------------
money = - сколько денег будет у НПЦ
character_profile = профиль нашего НПЦ
visual_name = - визуал("шкура") нашего НПЦ
--------------------------------------------
теперь логика ПНЦ:
[smart_terrains]
none = true
END
-НПЦ не будет затрагиватся смарттеррайнами,и будет просто ходить где ему вздумается.
Далее про логику писать не буду,т.к. можно много написать,а посоветую глянуть сюда:
http://stalkerin.gameru.net/wiki/index.php/Настройка_логики._Часть_1
http://stalkerin.gameru.net/wiki/index.php/Настройка_логики._Часть_2
http://stalkerin.gameru.net/wiki/index.php/Настройка_логики._Часть_3
http://stalkerin.gameru.net/wiki/index.php/Настройка_логики._Часть_4
--------------------------------------------
health = - если 1,то НПЦ живой,если 0 - мёртвый.
upd:health = - если 1,то НПЦ живой,если 0 - мёртвый.
--------------------------------------------
Примечание:
если хотите заспавнить труп надо прописать:
health = 0
upd:health = 0
--------------------------------------------
upd:position = - апдейт позиции(задавать такой же как и в position = )
--------------------------------------------
После добавления секции нового НПЦ сохраняем и компилируем алл.спавн.
Далее находим character_desc_garbage.xml в config\gameplay и добавляем:
singapur22
А параметр game.time() можно заменить на другой - который не игровое время обрабатывает, а реальное? А то я уже мягко сказать заколебался переводить игровые миллисекунды в реальные минуты и часы, чтобы задать нужный промежуток. В итоге в функциии приходится писать цифры с семью и более нолями... :-)
И еще: добавить в этот таймер math.random возможно?
добавлено спустя 31 минут
а куда правильней поставить запуск функции, которая апдейтится должна? Я уж имя функции и в конец функции function actor_binder:update(delta) между двумя послeдними end ставил и туда где рестрикторы обновляются - все не то. Или лучше всю функцию (function start_effect() ) целиком туда вставить?
отредактировал(а) erlik: 11-08-2009 22:37 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Помогите кто может как это сделать:при выполнении задания(например освободить Шустрого) спавниться в нужном месте предмет на определенное время или до какогото часа по игре? Спасибо!
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.