Воскресенье, 24.11.2024, 01:50


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Помощь с Lua-скриптами
BlooDFloweRПонедельник, 01.10.2012, 17:54 | Сообщение # 151
Бакалавр
Сообщений: 1727
Награды: 76
Репутация: 316
Статус: Offline
Havcom, в общем глушит блум GhostsFX, который собственно делает мобов прозрачными. Как это обойти пока не нарыл..

Rise of Evil - моя группа вконтакте
 
printersoftСреда, 03.10.2012, 20:06 | Сообщение # 152
Новичок
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline
Как добавить в аддон(BOOH) кнопки выбора глав???
 
HavcomЧетверг, 04.10.2012, 06:27 | Сообщение # 153
Painkiller
Сообщений: 3029
Награды: 65
Репутация: 375
Статус: Offline
Quote (printersoft)
Как добавить в аддон(BOOH) кнопки выбора глав???

Никак. Главы зарыты в движок.
Хотя у меня как-то давно получилось изменить само меню, чтобы было не как в BOOH - 10 уровней с одной главой, а как в оригинале - 5 глав, по 6 уровней в каждой.
 
printersoftЧетверг, 04.10.2012, 20:15 | Сообщение # 154
Новичок
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline
Quote (Havcom)
Никак. Главы зарыты в движок.
Хотя у меня как-то давно получилось изменить само меню, чтобы было не как в BOOH - 10 уровней с одной главой, а как в оригинале - 5 глав, по 6 уровней в каждой.

chainsaw
А движок как раскомпилить?


Сообщение отредактировал printersoft - Четверг, 04.10.2012, 20:28
 
BlooDFloweRЧетверг, 04.10.2012, 21:15 | Сообщение # 155
Бакалавр
Сообщений: 1727
Награды: 76
Репутация: 316
Статус: Offline
printersoft, ни как)

Rise of Evil - моя группа вконтакте
 
printersoftЧетверг, 04.10.2012, 21:49 | Сообщение # 156
Новичок
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline
Quote (BlooDFloweR)
printersoft, ни как)

А движок PainEngine можно скачать где-нибудь?
 
EvgeniyЧетверг, 04.10.2012, 21:56 | Сообщение # 157





Нет.
 
HavcomСреда, 17.10.2012, 01:05 | Сообщение # 158
Painkiller
Сообщений: 3029
Награды: 65
Репутация: 375
Статус: Offline
Проблема с музыкой при замедлении
Глава вторая

И вновь я возвращаюсь к этой проблеме. Как-то раз я попытался исправить этот недочёт и частично это получилось. Но недавно нашел всетаки недостатки своего исправления. Вместе с боевой музыкой играет амбиент. Вызывается загрузкой с чекпоинта или быстрого сохранения, да даже достаточно зайти в меню настроек звука и выйти. На многих уровнях впринципе "тихий" амбиент, поэтому не так заметно, а вот в лунопарке получается настоящая "каша".
Вторая попытка исправить это досадное недоразумение.

Я провёл небольшой тест и вроде как всё нормально. Но сомнения всегда есть. Времени тщательно тестить сейчас нет, поэтому если кто заинтересован в исправлении этого косяка, помогайте.

Необходимо постоянно испытывать с замедлением, режимом демона, постоянно загружаться/сохраняться с чекпоинтов, быстрых сейвов. Делать всё это, находясь а пределах CMusicEnv бокса. И так далее. Если найдёте хоть какую-то странность, сразу сюда.
-----------------
-----------------
-----------------
-----------------
Нашел косячок. Исправил. Перезалил.
Прикрепления: PBulletTimeCont.rar (0.8 Kb)


Сообщение отредактировал Havcom - Воскресенье, 21.10.2012, 00:09
 
BlooDFloweRСреда, 17.10.2012, 08:01 | Сообщение # 159
Бакалавр
Сообщений: 1727
Награды: 76
Репутация: 316
Статус: Offline
Havcom, а например есть косяк в Аду, когда некоторые фразы, которые при убийстве звучат не произносятся или обрезаются, это тоже сюда относится?

Rise of Evil - моя группа вконтакте
 
HavcomЧетверг, 18.10.2012, 00:19 | Сообщение # 160
Painkiller
Сообщений: 3029
Награды: 65
Репутация: 375
Статус: Offline
Нет. Только проблемы с музыкой.
 
dilettanteВоскресенье, 21.10.2012, 22:09 | Сообщение # 161
PK_GOD_and_KING
Сообщений: 170
Награды: 34
Репутация: 145
Статус: Offline
Всем привет. Надеюсь, простят меня люди, чьи вопросы в ЛС всё ещё остаются без ответа. Совсем некогда. Но я не забыл. И в качестве небольшой компенсации решил сказать несколько слов по Zombie_Soldier. Однажды этот вопрос уже поднимался. А именно, зацикливание анимации входа персонажа на арену. Насколько я знаю, решения до сих пор не было и поэтому предлагаю свой вариант устранения ошибки:

CActor.lua (Data\LScripts\Classes)

В функции CActor:OnDamage() находим условие:
if not self.AIenabled and self._isAnimating then
self._animationBeforeHit = self.Animation
end
и изменяем его следующим образом:
if not self.AIenabled and self._isAnimating and not self.Animation == "enter" then
self._animationBeforeHit = self.Animation
end

В этом случае нанесение урона "на входе" оборвёт анимацию "прыжка" анимацией "ранения" и дальше всё пойдёт, как положено.
Если же есть желание проиграть анимацию "входа" до конца (она того стоит, ибо выглядит очень эффектно) сохранив при этом урон, то вносим изменения немного выше в той же функции.
Находим строчку:
if self.s_SubClass.Hits and not self._disableHits then
и дополняем её вот так:
if self.s_SubClass.Hits and not self._disableHits and not self.Animation == "enter" then

при этом ранее указанное условие
if not self.AIenabled and self._isAnimating then
менять не требуется - до него дело уже не дойдёт.

Ну, а если уже совсем по-простому, то можно взять и закомментировать строку self._animationBeforeHit = self.Animation. Но это, возможно, повлечёт нежелательные последствия в поведении каких-нибудь других объектов класса Actor.
 
Doctor20Воскресенье, 21.10.2012, 23:07 | Сообщение # 162
Painkiller
Сообщений: 2307
Награды: 37
Репутация: 146
Статус: Offline
Quote (dilettante)
Всем привет. Надеюсь, простят меня люди, чьи вопросы в ЛС всё ещё остаются без ответа. Совсем некогда. Но я не забыл. И в качестве небольшой компенсации решил сказать несколько слов по Zombie_Soldier. Однажды этот вопрос уже поднимался. А именно, зацикливание анимации входа персонажа на арену. Насколько я знаю, решения до сих пор не было и поэтому предлагаю свой вариант устранения ошибки:

CActor.lua (Data\LScripts\Classes)

В функции CActor:OnDamage() находим условие:
if not self.AIenabled and self._isAnimating then
self._animationBeforeHit = self.Animation
end
и изменяем его следующим образом:
if not self.AIenabled and self._isAnimating and not self.Animation == "enter" then
self._animationBeforeHit = self.Animation
end

В этом случае нанесение урона "на входе" оборвёт анимацию "прыжка" анимацией "ранения" и дальше всё пойдёт, как положено.
Если же есть желание проиграть анимацию "входа" до конца (она того стоит, ибо выглядит очень эффектно) сохранив при этом урон, то вносим изменения немного выше в той же функции.
Находим строчку:
if self.s_SubClass.Hits and not self._disableHits then
и дополняем её вот так:
if self.s_SubClass.Hits and not self._disableHits and not self.Animation == "enter" then

при этом ранее указанное условие
if not self.AIenabled and self._isAnimating then
менять не требуется - до него дело уже не дойдёт.

Ну, а если уже совсем по-простому, то можно взять и закомментировать строку self._animationBeforeHit = self.Animation. Но это, возможно, повлечёт нежелательные последствия в поведении каких-нибудь других объектов класса Actor.

Отлично! Надо будет попробывать! Слушай помощь нужна BloodFlower!
 
BlooDFloweRВоскресенье, 21.10.2012, 23:30 | Сообщение # 163
Бакалавр
Сообщений: 1727
Награды: 76
Репутация: 316
Статус: Offline
dilettante, у тебя наиболее удачный вариант устранения этой ошибки) Havcom как то выкладывал свой вариант её устранении, но у него нельзя было причинить вред мобу пока анимация появления не закончится. Doctor20, я уже и без той проблемы загрузил его, так что не всё сразу) Пусть со своими делами разберётся, а игра то может и подождать)

Rise of Evil - моя группа вконтакте
 
HavcomСреда, 24.10.2012, 00:36 | Сообщение # 164
Painkiller
Сообщений: 3029
Награды: 65
Репутация: 375
Статус: Offline
Этот вариант намного лучше. И почему я раньше до этого не догадался? В который раз убеждаюсь в том, что сложные задачи решаются простыми способами.

dilettante, не мог бы заодно посмотреть, что там с музыкой? Вот уже сколько проверяю и никаких проблем не возникает. Неужто ли наконец ........ победа?! ^_^

Добавлено (24.10.2012, 00:36)
---------------------------------------------

Quote (dilettante)
В функции CActor:OnDamage() находим условие: if not self.AIenabled and self._isAnimating then self._animationBeforeHit = self.Animation end и изменяем его следующим образом: if not self.AIenabled and self._isAnimating and not self.Animation == "enter" then self._animationBeforeHit = self.Animation end В этом случае нанесение урона "на входе" оборвёт анимацию "прыжка" анимацией "ранения" и дальше всё пойдёт, как положено.

Данный способ рассматривать не будем, так как обрыв анимации выглядит некрасиво. Перейдём сразу ко второму.

Quote (dilettante)
Если же есть желание проиграть анимацию "входа" до конца (она того стоит, ибо выглядит очень эффектно) сохранив при этом урон, то вносим изменения немного выше в той же функции. Находим строчку: if self.s_SubClass.Hits and not self._disableHits then и дополняем её вот так: if self.s_SubClass.Hits and not self._disableHits and not self.Animation == "enter" then

Данный способ хорош, но есть проблемка. Все враги теряют анимации ранения. Т.е. при стрельбе по ним анимация ранения не будет воспроизводиться. Противник просто будет идти и не реагировать на летящий в него свинец! :D А ведь хочется сделать так, чтоб монстр получал урон и анимация не сбивалась и проблем никаких ни с кем небыло в дальнейшем. Так как это сделать?
Предлагаю свой способ.

Идём по адресу: (Data\LScripts\Templates\SpecialFX)

Находим файлик MonsterSpawnFromGround.CAction

Внутри видим примерно следующее:

o.Sequence = {
{"Object:'FX_sground.CActor',false,px,py-1,pz,p.angle"},
{'AI:p,false'},
{"PSnd:'misc/spawn_ground',20,30"},
{'EnablePO:p,false'},
{'Anim:p,"enter",false,0'},
{'EnableDraw:p,true'},
{"WaitForAnim:p"},
{'AI:p,true'},
{'EnablePO:p,true'},
}

Набор экшенов, которые воспроизводятся по порядку при старте точки появления монстра. Добавляем новые строки:

o.Sequence = {
{"Object:'FX_sground.CActor',false,px,py-1,pz,p.angle"},
{"L:p._disableHits = true"},
{'AI:p,false'},
{"PSnd:'misc/spawn_ground',20,30"},
{'EnablePO:p,false'},
{'Anim:p,"enter",false,0'},
{'EnableDraw:p,true'},
{"WaitForAnim:p"},
{'AI:p,true'},
{"L:p._disableHits = nil"},
{'EnablePO:p,true'},
}

disableHits - это экшен, который отключает анимацию ранения монстра. Вверху отключаем, а внизу восстанавливаем как было и получаем желаемый результат.


Сообщение отредактировал Havcom - Понедельник, 22.10.2012, 01:27
 
dilettanteСреда, 24.10.2012, 01:57 | Сообщение # 165
PK_GOD_and_KING
Сообщений: 170
Награды: 34
Репутация: 145
Статус: Offline
Havcom, вижу твоя наблюдательность - дотошность делает своё дело. Признаю проебоглазил, что во втором случае пропала анимация ранения. На самом деле следовало бы вместо

and not self.Animation == "enter" использовать and self.Animation ~= "enter".

Чтож вариант с дополнительными Action'ами тоже применим. Но если уже говорить о корне проблемы, то Зомбаря в цикл отсылает вот эта функция:

if self._animationBeforeHit then
if not self.AIenabled and not self._died then
self:SetAnim(self._animationBeforeHit, true)
end
self._animationBeforeHit = nil
end

Находится она в CActor:Tick(delta)

Возможно, я ошибаюсь, но как мне кажется нужно это для Actor'ов типа "ветряных мельниц". Ну, то есть имеющих некую основную анимацию и способных откликаться на ранения другой анимацией, но при этом они лишены "интеллекта". И вот эта функция и призвана, видимо, вернуть их после ранения к исходной анимации. Ну, а начинается то все как раз строчкой self._animationBeforeHit = self.Animation. И с точки зрения общей для всех монстров логики поведения, отключать следует именно её.
 
Поиск: