Всем доброго времени суток.
Как сделать так, чтобы в диалоге через экшн "ремонтировалось" оружие, т.е. ты выбрал фразу - оно поломаную пушку забрало и выдало то же самое оружие но в хорошем состоянии?
Заранее спс!
Максим Р.
Я по этим статьям и в большинстве функций разобрался.;-)
Но вот того что написал - не нашел...могет плохо искал...
Если смогешь сделать, или хотя бы малехо помочь - огромное спасибо))
Андрюха "Грозный"
Как вариант взять мод в котором это реализовано (АВС, Симбион...). Дальше через поиск найти диалоги о ремонте, и поглядеть какие функции там используются.
crazy_$niper_
Ну тебе ж сказали что опечатка скорее всего в этом файле. Открой этот файл и просмотри свои изменения или выложи сюда!
Продублируюсь: 1. В логике можно сделать так, чтобы в зависимости от расстояния до ГГ НПС что-либо делал. Основываясь на этом, можно сделать так, чтобы к примеру подошел ГГ к нему на 10 метров, а дальше НПС уже сам подходил к ГГ на минимальное расстояние и можно было начать диалог?
2. Возможно ли сделать так, чтобы до выдачи определенного инфопоршня подходя к НПС на некоторое расстояние, тот наставлял оружие?
3. И если уж совсем помечтать (;-)), то чтобы при попытке ГГ идти назад или не спрятав оружие в течение некоторого времени (ГГ держит оружие в руках) НПС открывал огонь?
Все вопросы сняты.:-)
Там действительно все это есть))
Не заметил что вопросы сняты, ну ладно, может кому-нибудь пригодится
Все равно спасибо за примеры.:-)
отредактировал(а) Отшель[НИК]: 14-07-2009 21:32 GMT3 час.
"Нет Предназначения… Оно не существует. Единственное, что предназначено всем, - это смерть."
Капец, а не сталкер! задолбало! начинаю новую игру и выдаёт:
Expression : wave&&wave->length()
Function : CSoundRender_Source::LoadWave
File : E:\stalker\patch_1_0004\xrSound\SoundRender_Source_loader.cpp
Line : 65
Description : Can't open wave file:
Arguments : c:\program files\gsc world publishing\s.t.a.l.k.e.r\gamedata\sounds\weapons\abakan\abakan_empty.ogg
БЕСИТ!
З.Ы. С файлом не чё не делал
"Зона, это не зло - а великий дар Человечества!" "Не смейся над Зоной, или иначе Зона посмеётся над тобой." Судьба Сталкера тяжела, шаг в сторону и холодный метал перережет горло...
on_actor_dist_le = число | схема - дистанция до игрока <=числа;
on_actor_dist_le_nvis = число | схема - дистанция до игрока <=числа без проверки на видимость;
on_actor_dist_ge = число | схема - если дистанция до игрока > числа;
on_actor_dist_ge_nvis = число | схема - если дистанция до игрока > числа без проверки на видимость.
На примере можно использовать так:
;Вначале выполняет одну работу, если игрок подходит ближе, чем на 10 метров и NPC его видит, переходит в другую схему поведения.
[walker1]
path_walk = путь_walk1
path_look = путь_look1
on_actor_dist_le = 10 | walker2
;Другая работа
[walker2]
path_walk = путь_walk2
path_look = путь_look2
А конкретно по твоему случаю, ещё нужно будет писать скрипт, который подведёт NPC к ГГ на указанное расстояние и схема логики будет выглядеть иначе.
2. Тут есть несколько вариантов. Можно через схему встречи [meet], можно через [walker], но [meet] будет использоваться в обоих случаях.
Пример:
;Выполняет работу, на оружие не смотрит
[walker1]
path_walk = путь_walk1
path_look = путь_look1
meet = meet1
on_info = {+инфопоршень} walker2
;Выполняется условие, выполняет туже работу, но просит убрать оружие
[walker2]
path_walk = путь_walk1
path_look = путь_look1
meet = meet2
;Начинает смотреть если ГГ подошёл на 10 метров и ближе
[meet1]
meet_state = 10|guard@wait
meet_state_wpn = 10|guard@wait
victim = 10|actor
victim_wpn = 10|actor
;Также, но ещё просит убрать оружие
[meet2]
meet_state = 10|guard@wait
meet_state_wpn = 10|backoff@threat_weap
victim = 10|actor
victim_wpn = 10|actor
use = true
use_wpn = false
syndata = backoff@threat_weap
3. Нужно использовать функцию, отслеживающую наличие оружия в руках у ГГ (она есть, видел, но не помню названия) и в логике сделать примерно так:
;Выполняет работу, если видит оружие в руках у ГГ, то переходит другое состояние и просит его убрать
[walker1]
path_walk = путь_walk1
path_look = путь_look1
meet = meet1
on_info = {=оружие в руках уГГ} walker2
;Если не убрал через минуту, то ГГ - враг и открываем огонь
[walker2]
path_walk = путь_walk1
path_look = путь_look1
meet = meet2
on_timer = 60000 | %=actor_enemy%
on_info = {!оружие в руках уГГ} walker1
Ну вот в общих чертах это так. Название схем печатал сам, не копировал, поэтому мог где-нибудь опечататься.
Не заметил что вопросы сняты, ну ладно, может кому-нибудь пригодится:-G
Все равно спасибо за примеры.
Пожалуйста:-)
отредактировал(а) Максим Р.: 15-07-2009 13:26 GMT3 час.
crazy_$niper_, значит у тебя не правильный... э-э... формат ogg файла, нужен ogg hz mono... и еще что-то, извини я вэтом не особо.
У тебя ведь ясно пишет
Description : Can't open wave file - Не могу открыть файл
publishing\s.t.a.l.k.e.r\gamedata\sounds\weapons\abakan\abakan_empty.ogg Вот этот файл
добавлено спустя 1 минуту
Freeeeeee Man, заспаунить их
отредактировал(а) Геныч Defake: 15-07-2009 05:55 GMT3 час. Сталкер - круто, Сталкер - класс,
Crysis смоем в унитаз!!
Метро не круто и не класс!
ПЫСа смоем в унитаз!))
---
Если у кого то есть вопросы по Game Maker, модмейкерству или языку html, то пишите - вместе потупим =))
Геныч Defake спасибо)
Но умя эта фигня вылазет когда из абакана стреляю
"Зона, это не зло - а великий дар Человечества!" "Не смейся над Зоной, или иначе Зона посмеётся над тобой." Судьба Сталкера тяжела, шаг в сторону и холодный метал перережет горло...
Приветствую всех!!!! Народ помогите все кто что то знает про то как погоду и время суток менять. Как? У меня небо со звездами и НПС с фонариками насаются но на улице по прежнему светло. Точнее как сделать что бы ночью было как в реальной жизни темно?
Всем огромное заранее спасибо! Если что пишите в личку.
Маршал
Это вроде как от АМК инструкция по изменения погоды вот
Значение параметров погодных и относящихся к ним конфигов
o 1.1 Параметры погоды
o 1.2 Параметры бликов
o 1.3 Параметры фонарика
* 2 Авторы
Значение параметров погодных и относящихся к ним конфигов
Параметры погоды
[sect_default_weather]
01:00:00 = default_weather_01
02:00:00 = default_weather_02
... Здесь указывается время смены типов погоды, каждый тип включает в себя свой скайбокс и
индивидуальные параметры освещения, дождя, грозы, и звука окружения. Переход осуще-
ствляется не скачкообразно, а плавно, практически не заметно.
[default_weather_01] ; имя типа погоды, описание которого ведется в этом блоке.
flares = flares_gradient1 ; здесь указывается имя заготовки блика
от солнца (заготовки прописаны в файле flares.ltx).
sky_texture = skysky_14_cube ; это имя используемого скайбокса. cкайбокс - это куб,
окружающий всю локацию, на 6 граней которого натянуты 6 текстур из файла, указанного
в этой строке. нужно обратить внимание, что строка содержит еще и путь к файлу.
sky_rotation = 0 ; определяет положение (азимут) скайбокса на описываемый час.
sky_color = 1.0, 1.0, 1.0 ; это цвет неба, или, точнее, цвет рассеянного света,
формат из 3 цифр, как и в параметрах ниже, подразумевает цветовую модель RGB,
учитывая то, что здесь максимальная интенсивность цвета (255), здесь равна 1.0.
например, цвет неба, равный [1.0, 0.0, 0.0] - зальет окрестность ярко красным светом.
стоит учитывать, что здесь описывается не цвет, а свет, поэтому параметр,
например, [0,0,0] - даст не черный цвет, а отсутствие вообще какого либо света.
аналогично эффекту смешивания в фотошопе (screen).
clouds_texture = skysky_oblaka ; это - имя тектуры облаков. не путать со скайбоксом.
clouds_color = 0.333, 0.341, 0.431, 0.7, 1.7 ; это цвет облаков, первые 3 цифры -
это RGB (см.выше), четвертая - это видимость (непрозрачность) текстуры облаков,
т.е 0 - облаков не видно, а 1 - полная видимость. пятая цифра - скорость движения
облаков.
far_plane = 350 ; это, судя по всему, дальность видимости (расстояние, на котором
обрезается карта).
fog_distance = 350 ; в DX9 это расстояние, на котором туман фактически "прекращает"
действовать. непосредственно дымка, интенсивность которой задаётся fog_density,
висит в радиусе fog_distance. за пределами этого радиуса часть геометрии "съедается"
и вместо неё отображается небо (скайбокс). правильно подобранная текстура неба
имитирует вдали клубы тумана. а уже дальше снова проявляется геометрия уровня (холмы
и т.д.). в DX8-режиме туман рудиментарен и обсуждать его нет особого смысла.
fog_color = 0.043, 0.043, 0.055 ; непосредственно сам цвет тумана.
fog_density = 0.9 ; это плотность тумана, выставив значение в 0, можно увидеть
четкие края карты.
rain_density = 0.2 ; это плотность дождя, действует, видимо, как и туман.
rain_color = 0.21, 0.21, 0.27 ; цвет (непосредственно капель) падающего дождя.
thunderbolt = thunderbolt_collection_default ; это имя заготовки грозы, если грозы
не предусмотрено, значение можно оставить пустым.
bolt_period = 4.5f ; это время между вспышками молний. значение прописано не в
секундах. В принципе, эмпирически установлено, что в грозовую погоду желательно
ставить значения около 20f, в дождливую - в районе 50f.
bolt_duration = 0.35f ; это собственно продолжительность фазы вспышки молнии.
выставив высокое значение, можно вовсе получить не молнию, а некое плавно
нарастающее свечение.
wind_velocity = 0.0 ; сила ветра.
wind_direction = 0.0 ; направление ветра.
ambient = 0.0425, 0.045, 0.0475 ; общее освещение локации, те тона, в которые она
выставив значения в [0,0,0] - получим кромешную тьму в зданиях и под навесами.
работает только на R2.
lmap_color = 1.0, 1.0, 1.0 ; видимо, цвет лайтмапа.
hemi_color = 0.0425, 0.045, 0.0475, 0.1 ;по слухам, параметр, идентичный амбиенту,
только предназначенный для статичного освещения. насчет четвертой цифры - не в курсе.
sun_color = 0.0, 0.0, 0.0 ; свет солнца, его интенсивность также влияет на тени,
если солнце не светит, теней от него не будет.
sun_dir = -18.0, 291 ; положение солнца, первая цифра - это высота, знак минус означает,
что солнце выше горизонта. от горизонта до горизонта солнце описывает полукруг, значения
в игре соотносятся с градусами, то есть от -0 до -180, зенит -90, вторая цифра определяет
env_ambient = ambient_env_rain ; это набор звуков окружения.
Параметры бликов
[flares_sun_rise] ; название cекции, параметры которой описываются ниже
flare_opacity = 0.340, 0.260, 0.500, 0.420, 0.260, 0.260 ; непрозрачность
каждого отражения, в порядке от дальнего к ближнему.
flare_position = 1.300, 1.000, 0.500, -0.300, -0.600, -1.000 ; позиция каждого
отражения на оси, порядок соотв. верхнему.
flare_radius = 0.080, 0.120, 0.040, 0.080, 0.120, 0.300 ; радиус каждого
отражения, порядок соотв. верхнему.
flare_textures = fxfx_flare1.tga, fxfx_flare2.tga,
fxfx_flare2.tga, fxfx_flare2.tga, fxfx_flare3.tga,
fxfx_flare1.tga
; имена текстур, использованных на каждое отражение, порядок аналогичен.
можно заметить, что прописан формат *.tga, в действительности используются,
как и везде, текстуры *.dds, а вообще - поддержка формата *.tga под вопросом.
flare_shader = effectsflare ; шейдер.
flares = on ; параметр включает или выключает блики, например, для луны -
они не уместны.
gradient = on ; параметр, включающий/выключающий ореол вокруг светила,
дающий эффект ослепления.
gradient_opacity = 1.0 ; непрозрачность ореола.
будет окрашена (цвет и интенсивность света фонового освещения там, где не светит солнце
-
положение солнца относительно сторон горизонта, нулевое значение вроде соответствует
югу.
Находятся в файле flares.ltx.
Страница 45
gradient_radius = 0.7 ; радиус ореола.
gradient_texture = fxfx_gradient.tga ;имя текстуры ореола.
gradient_shader = effectsflare ; аналогично [flare_shader].
source = on ;параметр, включающий/выключающий отображение источника, то есть
самого солнца или луны.
source_radius = 0.03 ; радиус источника.
source_texture = fxfx_sun_rise.tga ;имя используемой для источника текстуры.
source_shader = effectssun ; аналогично [flare_shader].
source_ignore_color = false ; игнорирование цвета источника.
#ДатчикХабара :
Marshal777 с деньгами не знаю,а с бронёй посмотри в факе на сталкер портал модмейкерство и статью шанс появления у сталкеров в карманах артефактов
Небольшой вопросец.
В схеме meet могут прописываться анимации (hello) и звуки (talk_abuse).
Так вот. Как их найти в игре? Есть ли какие-нибудь их списки? И как добавить свой звук?
"Нет Предназначения… Оно не существует. Единственное, что предназначено всем, - это смерть."
Отшель[НИК]
Загляни через полчаса в мой журнал - я там выложу большую статью с примерами по анимки НПС и озвучку. (че то форум никак не грузит материал). Если не получится то на сталкерин. гейм. ру кину.
Кому интересно - читайте. Много примеров - много анимок - разная озвучка. статья анимации npc
отредактировал(а) erlik: 15-07-2009 20:51 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
cit_doctor_start_dlg - собственно название
seq - звук НЕ рандомный
scenario\cit\doctor_start_dialog - путь
stalker = 0 - что означает эта строчка? И правильно ли я разобрал предыдущие параметры?
"Нет Предназначения… Оно не существует. Единственное, что предназначено всем, - это смерть."
Отшель[НИК]
0 - это нумерация папки scenario. 1 или 2 или 3 - (впрочем используется вроде только 1) это нумерация папок human_01, human_02 , human_03 .
seq - это тема у которй есть только один вариант звука\реплики.
rnd - значит по указанноому пути лежат несколько звуковых файлов с одним именем, но разной нумерацией - типа factory_bandits_1 , factory_bandits_2, factory_bandits_3 и т.д. При этом в файле sound_script - путь указан так 0,scenario\escape\factory_bandits_ то есть без указания нумерации в конце. Игра будет выбирать любой звук рандомно и отыгрывать сначала один, потом другой, потоv третий.
В игре можно использовать и звуки , которые в sound_script не вписаны. Надо вписать их туда по образцу, а затем добавит еще в файл sound_theme - тоже по образцу. Главное, чтобы повторений названий тем не было. В симбионе посмотри как прописали новые звуки - там в конце sound_theme увидишь сяковские фразы.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik, только флажок seq можно использовать и с несколькими фалами, тогда они будут играть не зациклено и упорядоченно, то есть вначале файл имя_0, затем - имя_1 и тд. Но когда звуки закончатся, заново они проигрываться не будут!
Отшель[НИК]
Я сейчас еще раз глянул папку саунд - думается мне что 1 - это все таки нумерация папки script_sound
потому что разные скриптовые звуки - типи окриков, выкриков , разговоров, просьб о помощи берутся все таки из нее, а не из human. Хотя в этих папках лежит почти тоже самое. Но оттуда видимо берется озвучка которая пишется в профиле непися - characters_voice\human_01\stalker\
Черт, с этой нумераций сплошная неразбериха - стал искать файлы историй по этому пути
stalker = 1,talk\stories\story002_part_
и нашел истории во всех папках human . Вот и пойми - что значит нумерация 1 ....
отредактировал(а) erlik: 15-07-2009 22:54 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Парни!!! Помогите как сделать и где (напишите очень подробно и пошагово!) чтобы на прицеле можно было кратость увеличевать и уменьшать как на бинокле (ПС На винтовке прицел несъёмный- конфиг от СВД, тоесть надо делать в этом конфиге) СПасибо!:ye)
erlik, навряд ли это конкретный номер папки. Но лучше не гадать, а посмотреть в скриптах, что это такое. Буду смотреть скрипт и сразу здесь писать.
К script_sound.ltx обращается файл sound_theme.script. В нём, в самом низу, есть некая конструкция, в которой как раз используется этот флажок. Я в неё толком не вникал, но на первый взгляд, если я правильно понял, то цифра 0 говорит о том, что звук будет искаться в папке characters_voice, а если... :dry: что-то я флажка 1 не вижу. Причём идёт двойная проверка на флажок 0:
Если флаг = 0, то сделать одно.
Если флаг = 0, то сделать другое
:blink
Да все очень запутанно... тем более если учесть, что в разных папках зачастую лежат одни и те же звуки... Что в human, что в script_sound или еще в каких других - словом много непонятных дублей....
Насчет флагов думаю ты прав - я только сейчас об этом подумал ... 0 это ведь обозначание логического идентификатора false, а 1 - true ....
только сам скрипт трудновато понять....
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik, там наверно так:
0 - путь до папки characters_voice, а дальше уже берётся из script_sound.ltx
1 - путь до папки human_0* и дальше уже из script_sound.ltx
* - число берётся из профиля наверно.
Это называется булево значение и используется повсеместно.
Причём идёт двойная проверка на флажок 0:
Если флаг = 0, то сделать одно.
Если флаг = 0, то сделать другое
:blink
Ничего необычного. Это равносильно: "если 0, то делать одно и другое"
но xrLua.dll такие фразы не читает поэтому это выглядит вот так. Пабло Мартиинез, в конфиге ставишь class = WP_BINOC, качаешь откуда-нибудь xrGame.dll от ЗЕНа, вставляешь в конфиг недостающие саунды от бинокля и наслаждаешься
ferrari314, теперь понятно, спасибо. Про Джорджа Буля слышал)
Всем. Я тут пытался разобраться в скрипте, смотрите, правильно я думаю, нет?
Они делают так:
Вначале задают переменные: local character_prefix = "" local default_prefix = "characters_voice\\"
затем идут несколько функций и в одной из них есть такая конструкция:
... local s = select_sound_from_ltx(obj, name.."_rnd", snd_ini) -- звук из script_sound.ltx if s then-- если звук есть, тогда local flag, path = check_prefix(s) -- задают переменные и присваивают значения if flag == "0" then-- если флаг равен 0, тогда
character_prefix = obj:sound_prefix()
obj:sound_prefix(default_prefix) end-- тогда звук будет браться из characters_voice?
Как сделать так, чтобы при окончании определённого разговора (escape_dialog_gopar) :
В определённой точке появились 3 сталкера и пошли в указанную точку?
Объясните подробно, пожалуйста, а не просто отсылайте по ссылкам.
Короче создаешь в папке gamedata/scripts текстовый документ (а лучше скопируй другой скрипт переименуй и удали все) и называешь как хочеш (например my_script) пишешь в нем функцию
function stalker_spawn ()
alife():create("stalker_novice",vector():set( координата Х,координата Y,координата Z),level_vertex,game_vertex)
alife():create("stalker_novice",vector():set( координата Х,координата Y,координата Z),level_vertex,game_vertex)
alife():create("stalker_novice",vector():set( координата Х,координата Y,координата Z),level_vertex,game_vertex)
end
Потом заходишь в файл с диалогом и пишешь где-нить в конце своего диалога: my_script.stalker_spawn
И все - говоришь с НПС - в конце диалога срабатывает функция и в определенном месте спавнится 3 новичка.
И еще, чтобы получить координаты x,y,z,level_vertex(lvid),game_vertex(gvid) в файле ui_main_menu пишешь это:
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
и сохраняешся.
Загружаешь игру, нажимаешь esc жмешь кнопку "Титры", возврашаешся в игру и списываешь координаты.
Вроде все.
отредактировал(а) Андрюха "Грозный": 18-07-2009 10:16 GMT3 час.
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.