blackraven6 Спасибо, я там нашел про иконку вируса, но как сделать для моих сигарет?
В скриптах я полный нуб! Я понял что и где писать, а вот как быть с этим:
Теперь придумываем, где будет выдываться (включаться) инфопоршен вируса, реализовываем и любуемся результатом.
Леня_Агитатор Почитай статьи по модификации Интерфейса. Были у кого то в журнале помоему. Да и по интернету полно.
Artos
Ну видишь ли в этой теме постоянно сидит не так много опытных. Если разговаривать только про сложные вещи - тема быстро превратиться в чат для 5-6 человек. Не надо кидаться в крайности. Во всем должен быть балланс. К тому же каждая игра строится на логике автора. То что очевидно для одного человека не очевидно для другого.
Журнал
- модель M79
- модель HK SL-8
- модель Milkor m32 WIP
blackraven6
Не переворачиай слова и смысл. Никто не говорит о том, что в топике место только сложным вопросам.
Говорится о том, что в топике НЕ место банальным вопросам, которые десятки-сотни раз разжеваны и в топике и в различных ФАК'ах, статьях.
И ты слишком заблуждаешься насчет чата по сложным вопросам. Именно по банальностям происходит чат, а по более интересным/сложным вопросам - пишут отвечают единицы, читают десятки!
И, уже повторюсь, чем больше 'тупых банальностей' - тем меньше тут 'опытных', т.е. тех, кто действительно может дать качественный ответ.
-- Функция проверки если кто-то рядом возле ГГ
function Check_Distanse()
if not Dictanse then Dictanse = 3 end
local PositionActor = db.actor:position()
local function Compare(id)
local obj = level.object_by_id(id) if obj and IsStalker(obj) and obj:alive() and obj.health > 0.1 then
if obj:position():distance_to(PositionActor) <= Dictanse then
news_manager.send_tip(db.actor, "Кабан близко от ГГ", 0, "default", 8000)
end
end
end
if obj_id then --/ если задан id конкретного сталкера
Compare(obj_id)
else --/ иначе перебираем всех на локации
for id=1,65534 do
Compare(id)
end
end
end
Создав проверку если рядом с ГГ находится Кабан (boar_weak) то выдавать сообщение.
Прощу прощения за неоформатированный текст. Похоже отформатировать неполучается из-за Internet Explorer`а... :-)
опять же перед тем как задать вопрос я ищу в яндексе ответ. Из 10 вопросов 7 решаются через пару минут (или тестов), два находят ответ в интернете а один я задаю тут. А между единицами это не чат? Когда мастера по-настоящему начинают спорить - это на долго.
Журнал
- модель M79
- модель HK SL-8
- модель Milkor m32 WIP
karavan
Я бы делал все же несколько иначе, т.к. высока неоптимальность данной функции/проверки относительно ресурсов. Преребирать все идентификаторы объектов игры - да
FLIKER
Не нужно именно мне задавать вопрос(ы). Вряд ли мне это интересно и буду отвечать.
"weather_default_dynamic.ltx" - это только конфиг и, если даже в нем не только туман, то за смену возможных вариантов отвечает не (только) этот конфиг.
Тому, кто захочет/сможет ответить по твоей ошибке потребуется все, что ты менял. А возможно и не только, т.к. в топике в основном вопросы по оригинальным кодам игры, а ты залез в динамическую погоду "АМК-мода".
В функции
function generic_object_binder:hit_callback(obj, amount, local_direction, who, bone_index)
Есть секция Электо-Химеры, в которой описан её хит по ГГ.
if obj:section()=="electro_chimera" and time_global()>(self.charge_time or 0)+3000 then
amk_particle.amk_particle({particle="anomaly2\\electra2_blast",pos=obj:bone_position("bip01_spine"),sound="anomaly\\electra_blast1"})
local dist = db.actor:position():distance_to(obj:bone_position("bip01_spine"))
if dist < 20 then
local h = hit()
h.impulse = 0
h.draftsman = db.actor
h.direction = vector():set(0,0,0)
h:bone("bip01_spine")
h.power = 1/dist
h.type = hit.strike
db.actor:hit(h)
h.power = 15/dist
h.type = hit.shock
db.actor:hit(h)
end
self.charge_time=time_global()
end
Сдесь насколько я понимаю наносится хит в радиусе 20 метров в зависимости от растояния, т.е. чем дальше находишся тем безопасней.
Вопрос вот в чем возможно ли нанести хит по ГГ и/или НПС только в направлении взгляда монстра? Т.е. куда монст смотрит туда и хитует. Это первое.
Второе, Электро-химера при атаке проигрывает партикл аномалии Электра и этот партикл проирывается во все стороны. Возможно ли задать направление проигрывания партикла в зависимости от взгляда Монстра (Например партикл аномалии Жарка). Т.е. Куда монстр смотит в ту сторону и направлен партикл аномалии Жарка.
Итого что нужно: 1)Нужно что бы хит по ГГ или НПС наносился в направлении взгляда монстра?
2)Нужно что бы партикл аномалии Жарка проигрывался в направлении взгляда монстра?
Спрашиваю у тебя поскольку наверное спросить больше не у кого.
Возможно ты в знаеш ответ.
karavan
Во-первых, не только я могу дать ответ. Не отнимай возможности дать ответ и другим!
Во-вторых, "нужно" и ли нет - решать тебе. Это уже из области мнений/предпочтений, а не технической возможности/реализации. Мой ответ на подобное: "НЕ нужно, но возможно."
Хит наносится в направлении (т.е. хит имеет вектор, "направление удара/повреждения"), а вот партиклы отыгрываются только по позиции (относительно точки).
Можно конечно сделать так, чтобы нужные партиклы отыгрывались на объекте "куда смотрит", но ... (ИМХО) странновато для электро-объекта поражать векторно, а не по радиусу/окружности. В АМК-моде заложена не электро-пушка, стреляющая в направлении, а электро-химера, которая поражает объекты в радиусе от нее.
Получить же "эффект пушки" несложно, добавив в условия проверку на "в векторе взгляда?" нужный объект.
Ну и конечно векторно отыграть патрикл не выйдет, если только не прибегнуть к варианту "перемещаемой позиции" для отыгрывания. А вот, определив объект в направлении взгляда и именно на нем отыграть партиклы, вполне можно.
Повторю, ИМХО электро-химера остается химерой и поражает ударом/разрывом. Электро-разряды у нее - фоновое поражение по затухающему радиусу.
Artos Я не против если и кто-то другой ответит на мой вопрос. :ye)
Переделывать электро-химеру я не собираюсь, я хочу сделать другого монстра с атакой (хитом) по направлению взгляда и с партиклом аномалии Жарка.
Я спрашиваю про электро-химеру потому, что это рабочий пример, а вот как создать проигрывание партикла и хит по направлению взгляда монстра (т.е. если монстр увидил НПС или ГГ и НПС или ГГ находится в радиусе 20 метров от монстра, то проиграть партикл в направлении НПС или ГГ которого атакует Монстр и нанести хит в том же направлении) я не знаю и хотелось бы узнать от знающего человека.
Другими словами получить рабочий пример.
P.S.: Вся загвоздка в том что я не знаю прописать направление по взгляду Монстра.
karavan получи айди монстра и узнавай его дирекцию(направление взгляда), а жарку по моему горизонтально развернуть не удастся...хотя нет, в х16 вроде бы и горизонтальная есть
Тогда не задавай адресных вопросов :-)
и, имея ввиду 'нечто' иное, не формулируй так: "У меня вопрос по поводу Электро Химеры"
Рабочих примеров того, что ты один имеешь ввиду и никто другой не знает - вероятно или нет или невозможно подсказать.
Косвенно могу предпроложить, что рабочими примерами могут быть ... только например грави-пушка, принцип которой именно на "направлении взгляда".
Чуть позже попробую дать тебе что-то применительное к "электро-химере". Но попробуй сам хоть что-то "накопать".
Разворачивать же "жарку" - увольте ребята. Проще или заспавнить какой-нить объект и, включив на нем отыгрыш партиклов, "кинуть" куда нужно. Или, как уже писал выше, использовать перемещаемую "от и до" позицию отыгрыша партиклов.
Иначе какой-то огнемет/змей-горыныч получается ... Struck
Ты не совсем прав, одного направления взгляда недостаточно. Направление взгляда - вектор, т.е. луч! Не факт, что в векторе 'direction' будет объект, а не в метре (паре-тройке метров) от этого вектора.
Тут требуется сравнение с некоторой погрешностью векторов 'направления взгляда' с 'направлением до объекта'. Если еще учесть зависимость от расстояния до объекта (а если он не один?!) - не очень тривиальная задачка для многих 'начинающих' модмейкеров.
вопросик созрел...
верна ли эта функция или напортачил, определение по стори ай ди НПСа
local soObj = alife():story_object(006)
local bFlag = false --/ флаг-триггер, для однократности выполнения условия/функции
function Check_Distanse()
if bFlag then return end --/ на выход. т.к. уже отработано
if not Dictanse then Dictanse = 6 end
local PositionActor = db.actor:position()
local function Compare(id)
local obj = level.object_by_id(id)
if obj and IsStalker(obj) and obj:alive() and obj.health > 0.1 then
if obj:position():distance_to(PositionActor) <= Dictanse then
bFlag = true
news_manager.send_tip(db.actor, "рядом кто-то есть", 0, "default", 8000)
end
end
end
if obj_id then --/ если задан id конкретного сталкера
Compare(obj_id)
else --/ иначе перебираем всех на локации
for id=1,65534 do
Compare(id)
end
end
end
Николай ФеНиКс
Уже неоднократно говорилось в топике:
"Оформляйте вопросы/ответы должным образом,
с использованием различных тегов форума!"
В простейшем случае, чтобы удобно было читать, следует применять для кодов соответствующий им тег: [cоde]...[cоde] (символ 'о' - тут заменен на транслит, дабы было видно**5031c54314580bda8be6**в игре.
Коды модулей/скриптов считываются, как правило, в самом начале игры (точнее при первом же к ним обращении, обычно до спавна объектов!), т.о. твое определение (в корне скрипта!) для переменной:[code]local soObj = alife():story_object(006)[/code] или заведомо будет равно 'nil' или же вообще приведет к "нестарту игры", т.к. alife() также в момент старта игры еще не существует.
karavan
Тебе подобные к**5001c54314580bda8be6**NPC:direction()[/code][code]local Direction = oNPC:direction()[/code]
- ничего не напоминают? :-) Николай ФеНиКс Если ты объяснишь ЧТО ты хочешь написать, то возможно кто-то сможет/захочет ответить КАК написать ...
P.S. Я же пояснил, что твой вопрос не имеет смысла, т.к. следов какой-либо зависимости тобою написанного и функции - не обнаруживается. Плз, подчищайте 'пустые', никому не нужные посты (если конечно не преследуется цель 'набивания' постов).
Ладно тогда **5001c54314580bda8be6**нкретного сталкера
Compare(obj_id)
else --/ иначе перебираем всех на локации
for id=1,65534 do
Compare(id)
end
end
end[/code]
Николай ФеНиКс
М-да-а-а, хочется крепко выругаться и игнорировать дальнейшее ...
может на примере дойдет ....
local soObj = alife():story_object(006) --/ недопустимо в 99% случаев
local Obj_Id = soObj.id --/ искомый id (айди) объекта [**5001c54314580bda8be6**d
end
end
if obj_id then --/ если задан id конкретного сталкера
Compare(obj_id)
else --/ иначе перебираем всех на локации
for id=1,65534 do
Compare(id)
end
end
end[/code]
Какая-либо взаимосвязь soObj, Obj_Id и функции Check_Distanse(Obj_Id) , кроме бессмысленного аргумента на входе, который никак не обрабатывается этой функцией(!), отсутствует.
Автор кода пытается методом "тыка" что-то получить от скриптов ... Удачи 'дотыкать'! :obstenu: -> :rtfm:
Ма-а-аленькая подсказка: Регистр в именах переменных/функций/... имеет большОе значение. Но выделенное оранжевым все равно все подобные потуги сведет на нет.
(убери хотя бы в спойлер ...)
karavan
Так ведь:[code]h.direction = oNPC:direction()[/code] - это и есть установка направления хита в направлении 'взгляда'. Замени 'oNPC' -> oMonster иль oElectroChimera (а для конкретно твоего случая - obj), если тебе удобнее для понимания.
Просто в твоем исходном варианте:[code]h.direction = vector():set(0,0,0)[/code] - хит направлен в 'никуда' (стоИт вектор-заглушка), т.к. 'удар током' не имеет направления.
Artos хотел спросить у вас (но если кто-то другой знает ответ отписывайтесь), правда он немного не по теме, но я обещаю что когда получу ответ потрусь. Вообщем я хотел перенести модель бронежелета из ТЧ в ЗП. Я открыл модель, добавил туда 2 кости (рут_сталкер и бип_01) через милку, открыл модель в сдк, добавил несколько пунктов в Motion reference (поставил галки напротив critical_hit_grup_1 - 7, stalker_animation, stalker_scenario_animation, stalker_scripts_animation, stalker_smart_cover_animation) и вставил модель в игру. Но у меня появилась проблема - когда по актору стреляют, актор не получает хит! Пули тупо проходят сквозь актора! Вообщем подскажите что я делал не так? (Кстати благодаря этой ошибке я придумал новый бронежилет!)
Ma$ter
В твоих словах "когда по актору стреляют, актор не получает хит!" похоже есть некорректность, т.к. не может НЕ быть хита (если конечно не палить мимо актера). Иное дело когда хит все же есть, но ... 'голого' актера можно убить и 'слабым' хитом, а можно и обессмертить, одев в 'бессмертный' костюм. Прим: Хит - величина повреждения/удара, которая должна быть применена к объекту (нанести повреждение/удар). Хит по актору/неписю может быть поглощен костюмом, в этом случае хит наносит повреждение объекту 'костюм'.
Может я не прав, т.к. предполагаю вопрос НЕ по бронику/костюму для актора, а по визуалу для сталкеров (неписей).
Возможно твоя ошибка (как впрочем и многих других) в том, что путается модель бронежилета актера с визуалом для сталкеров. Это совершенно разные объекты/вещи. То, что может быть надето актером никоем образом не может быть надето на сталкеров, как и наоборот. Т.о. на актора ты одеваешь не 'сделанный' тобою бронежилет, а что-то иное.
Если предположение с визуалом ошибочно, то возможна другая причина: твой костюм получился с 'бессмертными' resistance и/или damage , т.е. некорректные секции параметров иммунитетов/стойкости к повреждениям в параметрах модели костюма/броника (особенно смущает "critical_hit_grup_1 - 7"?).
Сорри, по вопросам обработки модели в милках/СДК - это не ко мне, тут я ... пока еще дилетант чтобы давать правильные ответы (мелкие правки делаю HEX'ом).
Ну а фраза "Пули тупо проходят сквозь актора!" - как-то навевает мысли о твоей фантазии, даже если ты пользуешься замедлением времени и видом 'сбоку'. :-) Подтирать посты не стОит, если они несут информативный характер и могут быть полезны другим.
Ну а фраза "Пули тупо проходят сквозь актора!" - как-то навевает мысли о твоей фантазии, даже если ты пользуешься замедлением времени и видом 'сбоку'
дело в том что я подходил вплотную к новичку с обрезом, и когда он в меня пальнул на экране не повились красные отметки о том что по мне стреляют. Даже в бронежилете со 100% защитой от пуль, когда в тебя стреляют, появляются красные отметки с какой стороны по тебе стреляют. Поэтому предположение что
Если предположение с визуалом ошибочно, то возможна другая причина: твой костюм получился с 'бессмертными' resistance и/или damage , т.е. некорректные секции параметров иммунитетов/стойкости к повреждениям в параметрах модели
я считаю ошибочнм, но вот это
Может я не прав, т.к. предполагаю вопрос НЕ по бронику/костюму для актора, а по визуалу для сталкеров (неписей).
Возможно твоя ошибка (как впрочем и многих других) в том, что путается модель бронежилета актера с визуалом для сталкеров. Это совершенно разные объекты/вещи. То, что может быть надето актером никоем образом не может быть надето на сталкеров, как и наоборот. Т.о. на актора ты одеваешь не 'сделанный' тобою бронежилет, а что-то иное.
я считаю вполне возможнным т.к. бронежилет перносил не я, а мне просто дали модель. вполне возможно что что-то тут напортачили. Вообщем Артос спасибо тебе
добавлено спустя 26 минут
оказываеся тот кто занимался переносом все-таки смог умереть в этом костюме. правда умер он только тогда когда подорвался на гранате
[error]Expression : assertion failed
[error]Function : CPHActivationShape::Create
[error]File : D:\prog_repository\sources\trunk\xrPhysics\PHActivationShape.cpp
[error]Line : 177
[error]Description : _valid( start_pos )
Что то совсем ничерта не понимаю. Сейчас портул костюм монолитовца, он у меня работает нормально. А вот костюм новичка глючит
АП:
Оказалось надо было просто настроить кости. Как настраивать кости можно узнать на сталкер вики. Всем спасибо
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.