Grayshotter
local sobj = alife():create("sim_killer_master2",vector():set(-87.5028,-4.8549,79.2318),177751,76)
Вместо выделеного красным впиши имя своего непися что ты создал
что ты вписал в файл
spawn_sections.ltx
singapur22
тогда вот тебе тоже справка - если у тебя конечно такой же нету...:-) ты в ней быстрее разберешься чем я.
"Список методов класса vector"
v:set_length(number) - оставить направление, изменить длину
v:normalize(); - сделать длину единичной
v:magnitude() -- длина вектора v
v1:distance_to(v2) -- расстояние между v1 и v2
v1:distance_to_sqr(v2) -- квадрат расстояния между v1 и v2
v1:crossproduct(v2) -- векторное произведение. Возвращает вектор
v1:dotproduct(v2) -- скалярное произведение. Возвращает число
v:sub(number); -- вычесть из каждого компонента v число number
v1:sub(v2); -- вычесть почленно вектор v2 из v1 и поместить в v1
v1:sub(v2, v3) -- вычесть из v2 - v3 и поместить в v1
аналогично:
add - почленное сложение
mul - почленное умножение
div - почленное деление
max/min - почленный максимум/минимум
v1:clamp(v2) -- почленное обрезание первого вторым
average -- почленное среднее
invert -- почленная инверсия знака
v1:abs(v2); -- копирует почленно положительные компоненты в v1 из v2
lerp(v1, v2, number) -- линейная интерполяция между двумя векторами
-- если number больше 1, то выходит за них - экстраполяция
v1:reflect(v2, v3) - должно быть отражение одного вектора от плоскости, определяемой другим. Не проверял
v1:slide(v2, v3); - вероятно, проекция одного вектора на плоскость, определяемую другим. Не уверен
v1:distance_to_xz(v2) - учитывая, что плоскость XZ - это плоскость параллельная земле, то возможно это длина проекции на землю пути от точки до точки. Не проверял
v:getP() - зенитный угол в радианах (угол наклона над плоскостью XZ )
v:getH() - азимутальный угол в радианах (угол в плоскости XZ между проекцией вектора на эту плоскость и осью Z)
setHP - соответственно для установки этих значений
v1:align() - выравнивает вектор вдоль оси x или z и нормирует его. Значение по y игнорируется. В итоге всегда возвращается одно из четырёх значений ([1,0,0], [-1,0,0], [0,0,1], [0,0,-1])
v4:mad(v1,v2,v3) -- бешеная операция =) умножить почленно второе на третье и сложить с первым, т.е. v4 = v1 + v2*v3 (название операции mad == mul + add)
v1:inertion(v2, number) -- v1 = v2 + (v1-v2)*number (тоже почленно)
v1:similar(v2, number) -- сравнение векторов на равенство с погрешностью number. Выдаёт 1 или 0
Пример использования:
Код
local v1 = vector()
v1:set(1,2,3)
local v2 = vector():set(4,5,6)
local dist = v1:distance_to(v2)
отредактировал(а) erlik: 20-10-2009 10:45 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Grayshotter Мозга не пудри, сними верные координаты. По тем, что у тебя прописаны, объект оказывается под землёй на 4 метра. Поставь значение по Y = 0
добавлено спустя 1 минуту
erlik Благодарю.
отредактировал(а) singapur22: 20-10-2009 10:43 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
ты не знаешь случайно - существует ли возможность добавлять партиклы - точнее сразу группу партиклов - непосредственно в конфиг предмета?
А то у меня получается unreal сделать паузу в 1-2 секунды между подрывами из -за серии партиклов которые запускаются через скрипт после хитования бомбы. То есть пока вся серия не отыграется - производить подрыв следующей бомбы нельзя. Отсюда необходимость паузы секунд в 15-20 - примерно стока у меня длится весь взрыв.
А так если бы можно было это все сразу в конфиг вписать - и назначить каждому партиклу длительность отыгрыша и порядок отыгрыша - было бы проще.
И еще - допустим я на месте взрыва спавню радиоактивную зону. Ее можно будет удалить потом по таймеру?
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Вот отлично, вот маленькая предистория: Матёрый бандюган по непонятным причинам оказывается на Кордоне, и так же по непонятным причинам глупо погибает: от кого он так бежал, что даже его опыт в ЗОНЕ не остановил его для того, чтобы осмотреться на месте, где он будет "работать"?. И кто смог его убить, так, что тот не успел ответить?
Первая часть готова:
Как видно на скрине, я сделал сники с того места, с которого по легенде и убили бандита.:-)
-----------------------------
Парни, как теперь созать в этом месте снайпера, который будет сдвигаться только внутри вагончика, и будет палить по всём, что движется?;-)
____ПЕРДУПЕРЖДЕНИЕ ЗА НИГРМАМАТНАЙЕ ПЕСЬМО!Мадиратар.
Сталкер Монолита
простой пример - взятка кузнецову.
--' Soldiers on bridge
function has_soldiers_bribe(actor, npc)
return actor:money() >= 500
end
данный скрипт возвращает, что у эктора должно быть 500 или больше рублей в кармане.
Если у эктора действительно они есть, то условие (прекондишен) для фразы - " типа "ну вот тебе бабло, подавись " выполняется. И она появляется в диалоге.
Если проверка бабла в карманах эктора не возвращает указанную сумму - прекондишен не выполняется и эта фраза не появляется в диалоге. а в диалоге будет только фраза - типа "извини, братан, но сегодня не при деньгах".
добавлено спустя 1 минуту
вот скрипт для проверки наличия итемса
function actor_has_documents (actor, npc)
if actor:object("dar_document4") then
return true
else
return false
end
end
отредактировал(а) erlik: 20-10-2009 11:59 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
ну и стрелять надеюсь тоже?;-)
Смотри а что если присоединить его к гулагу тех военных под мостом, он же типа ихний чувак...:ye)
Или не надо, если это очень муторно, то давай ограничемся спавном!
Расскажи, что и как делать?
____ПЕРДУПЕРЖДЕНИЕ ЗА НИГРМАМАТНАЙЕ ПЕСЬМО!Мадиратар.
Скажи, а есть ли возможность выключения проигруемого звука? Другими словами если звук играет и его надо мгновенно выключить ну или по крайней мере уменьшить до нуля.
Сталкер Монолита
ну ты же примеры смотрел - там также делается, значит и у тебя должно все быть норм.
karavan
Если вырубать из логики - то не знаю.
надо посмотреть логику для звуковых схем - я ей никогда не пользовался. Почитай статьи по логике - про это вроде в части третьей и четвертой есть.
В скриптах звук вроде так вырубается snd:stop()
то есть сначала задаем локальную переменную для нашего звука
local snd= xr_sound.get_safe_sound_object([[anomaly\teleport_incoming]])
отыгрываем сам звук от заданной позиции
snd:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)
далее ставим таймер, чтобы звук - если он еще не закончился - по истечении заданного времени вырубить
snd:stop()
таймер - штука не простая - singapur22 - уже много раз давал его примеры.
мне щас в лом все их писать.
добавлено спустя 2 минут
manunj
так я видишь не уверен что так можно делать - поэтому и спрашивал - попробовать конечно надо - вдруг получится :-)
Grayshotter
файл с этой логикой в папку config\scripts
добавлено спустя 1 минуту
это в файл spawn_sections -туда где спавн секция твоего непися
custom_data = scripts\имя_файла с логикой.ltx
отредактировал(а) erlik: 20-10-2009 12:55 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
типа так у меня
[big_brat]:stalker
$spawn = "respawn\big_brat"
character_profile = big_brat
spec_rank = regular
community = bratki
custom_data = scripts\sniper_enemy.ltx
добавлено спустя 48 секунд
Grayshotter
не скрипт - а файл с расширением ltx
отредактировал(а) erlik: 20-10-2009 12:56 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Я что-то совсем запутался, это куда в NPC_profile?
Прости за то, что торможу, можешь попорядку рассписать, что куда и как я только учусь ведь, а то по первому опыту что-то не понимаю... И можно его сделать в том же скрипет, что и Бандит, а то не люблю кучу файлов скриптовых, запутаться можно!:-)
____ПЕРДУПЕРЖДЕНИЕ ЗА НИГРМАМАТНАЙЕ ПЕСЬМО!Мадиратар.
manunj
у меня там три звука взрыва - и куча партиклов огня и дыма - каждой группе задан свой черед отыгрыша по таймеру.
надо конечно еще с партиклами поковыряться - я пока мало их пробовал - а хотелось сделать взрыв покрасивше - но не смог найти партикл огненного облака - чтобы оно было по форме типа бублика :-)
а ты как сделал - просто вписал в конфиг доп. партиклы?
тода они получается отыграются разом - то есть все скопом - а мне надо, чтобы была возможность в конфиге задать им порядок отыгрыша через паузу.
Вот это главный вопрос - можно ли это сделать? И если да, то как...
отредактировал(а) erlik: 20-10-2009 13:23 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.