Welcome to U.A.C. [O.S.A.]
login / register 
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Тема для новичков. Вопросы по маппингу/моддингу - любые! Пред.  1, 2, 3 ... 24, 25, 26 ... 198, 199, 200  След.
   Список разделов - Флуд и устаревшие темы - Тема для новичков. Вопросы по маппингу/моддингу - любые!Ответить
АвторСообщение
N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

Posts quality: +384
Ссылка на пост №481 Отправлено: 12.01.16 22:37:36
Тут между 22 и 23 страницами поднимался вопрос об активации скрипта после смерти группы монстров. Попытался реализовать --- возникли проблемы:
Скрытый текст:

Script 3 (void) { //вызывается при смерти одного из монстров
    for(int i = 1; i < m_kill; i++) { //m_kill = monsters to kill, suspend'им скрипт (m_kill - 1) раз, а затем выполняем полезную часть
        suspend; //приостановка до сл. запуска скрипта
    }
    //собственно полезная часть скрипта здесь
}


Убиваю всех --- полезная часть почему-то не запускается. :diatel: Не подскажете, в чём проблема?
1 2
navy_seals
- UAC Gunner -
Next rank: = UAC Gunner = after 16 points
44

Doom Rate: 2

Ссылка на пост №482 Отправлено: 13.01.16 00:03:50
Grek6500:
В рандом формуле просто поставь одинаковые числа чтоб разброс дамага не было да и все ,типа random(8,8)

А где эта формула прописана? Просто в проперти damage прописать random - не прокатывает.
alekv
- Colonel -
Next rank: = Colonel = after 272 pointsМодератор форума
4168

Doom Rate: 1.87

Posts quality: +949
Ссылка на пост №483 Отправлено: 13.01.16 01:25:53
N00b2015
В общем смотри, есть несколько вариантов, я напишу тот который считаю проще:
int Count_Monster; //Переменная объявляется вне скрипта по умолчанию == 0
Script "AfterKill" (void) //выделяешь свою группу монстров и ставишь им action на выполнение этого скрипта (в UDMF по моему 80...)
{
Count_Monster++;//говорим гоззе что 1 монстра убили, теперь переменная Count_Monster ==1
if(Count_Monster == 3) //после убийства каждого монстра скрипт чекает убил ли ты 3их, если нет, то выполнится else и завершится, если убил 3их, выполнится if
{//тут уже пиши что надо делать когда всех перебьешь
}
else printBold(s:"check");// это так для проверки.. блок else можешь вообще удалить..
}

т.е. каждый убитый монстр будет вызывать этот скрипт и проверять всех ли ты убил.

Добавлено спустя 10 минут 56 секунд:

navy_seals:
А где эта формула прописана? Просто в проперти damage прописать random - не прокатывает.

мб он имел ввиду damage type, там по моему можно было писать рендом.
1 3 1
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1631
Ссылка на пост №484 Отправлено: 13.01.16 09:42:52
UsernameAK:
Как сделать, чтобы проджектайл не влетал в сектора без скайбокса, а просто отлетал от них

Чё?

Добавлено спустя 55 секунд:

navy_seals:
А где эта формула прописана? Просто в проперти damage прописать random - не прокатывает.

Прочитай мой ответ. Не надо никакого рандома писать, он какой-то бред советует.
2 2 1
VladGuardian
= Commissar =
Next rank: - UAC Commissar - after 263 points
5537

Doom Rate: 1.28

Posts quality: +1934
Ссылка на пост №485 Отправлено: 13.01.16 09:58:08
N00b2015:
for(int i = 1; i < m_kill; i++)

Попытался реализовать --- возникли проблемы:

Что-то мне подсказывает, что должно быть все-таки "<=", а не "<"
(раз уж цикл начат с 1, а не с нуля)
4 10 23
N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

Posts quality: +384
Ссылка на пост №486 Отправлено: 13.01.16 18:51:14
alekv
Сначала я и пытался так сделать. Когда монстры убиваются постепенно, счётчик увеличивается, и содержательная часть обычно выполняется.
Однако потом я пострелял по ним из BFG, и оказывается, что почему-то при убийстве двоих (и более) монстров одновременно инкремент производится только один раз, и после экзекуции от 16 монстров в переменной остаётся 13 (и содержательный код в скрипте, соответственно, не выполнится никак).
Скрытый текст:

Кстати, что за другие варианты? :)


VladGuardian
Нет, определённо "<" (иначе после убийства последнего монстра тоже выполнится suspend). Если с 0, то i < m_kill - 1 (все кроме одного).

Может, скрипт не умеет запускаться два раза за тик/короткий промежуток? Тогда как реализовывать, с помощью Delay(1)? Может, это специфика Zandronum? Вряд ли.
Ничего не понимаю.
1 2
alekv
- Colonel -
Next rank: = Colonel = after 272 pointsМодератор форума
4168

Doom Rate: 1.87

Posts quality: +949
Ссылка на пост №487 Отправлено: 13.01.16 19:14:55
N00b2015:
Сначала я и пытался так сделать. Когда монстры убиваются постепенно, счётчик увеличивается, и содержательная часть обычно выполняется.
Однако потом я пострелял по ним из BFG, и оказывается, что почему-то при убийстве двоих (и более) монстров одновременно инкремент производится только один раз, и после экзекуции от 16 монстров в переменной остаётся 13 (и содержательный код в скрипте, соответственно, не выполнится никак).

Тогда понятно почему ты мучил способ с for..
Смотри так происходит потому что ты убиваешь сразу 2-3 монстра, а у тебя каждый монстр вызывает один и тот же скрит, а в гоззе пока 1 скрипт не выполнился он еще раз не запустится.. Выход есть, вешать на монстров вызывание скрипта с помощью ACS_ExecuteAlways(); тогда по идее один и тот же скрипт сможет выполнится одновременно хз сколько раз (опять таки если мне не изменяет память, давненько не скриптовал)

еще есть вариант, не много дибильный конеш, но этж гозза, вешать каждому монстру отдельный скрипт который будет менять значение переменной и 1 скрипт цикл который будет чекать эту переменную каждый игровой тик...

Но есть и еще способы, к примеру дать каждому монстру tag и в скрипте проверять живы эти монстры или нет.
1 3 1
navy_seals
- UAC Gunner -
Next rank: = UAC Gunner = after 16 points
44

Doom Rate: 2

Ссылка на пост №488 Отправлено: 13.01.16 22:01:23
ZZYZX
о, больше спасибо, сразу не заметил твой ответ.
MyNameIs
= 1st Lieutenant =
Next rank: - Captain - after 36 points
2054

Doom Rate: 2.04

Posts quality: +893
Ссылка на пост №489 Отправлено: 15.01.16 15:55:19
можно ли скриптами сделать такой цикл? гздум.


при нажатии на кнопку должна меняться текстура и проигрываться звук. и ничего более. один раз. при последующих нажатиях - другой звук.

я, в общем, придумал при нажатии чекать живость зомби в коробке где-то вне локации, затем запускать один скрипт и умерщвлять зомби.
при последующих нажатиях он не будет его находить в здравии и, соответственно, пускать второй скрипт.
но это как-то нагороженно получается. да и на показателе врагов будет отражаться.
Скрытый текст:

будут ещё игроки лазать по локации, искать врага, которого в принципе не найти.

1 1 1
beigeboxcreature
= Lance Corporal =
Next rank: - Master Corporal - after 24 points
176

Doom Rate: 1.31

Posts quality: +14
Ссылка на пост №490 Отправлено: 15.01.16 16:14:20
MyNameIs
Просто объяви глобальную переменную (вне скриптов, как тут в начале http://zdoom.org/wiki/ACS#Introduction ), в скрипте кнопки меняй значение этой переменной в конце, а в начале проверяй значение и если оно уже изменено то другое действие.
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1631
Ссылка на пост №491 Отправлено: 15.01.16 16:21:45
Главная разница между ACS_Execute(Always) и ACS_ExecuteWithResult: первые два выполняются в рандомном порядке ЧЕРЕЗ ОДИН ТИК ПОСЛЕ ВЫЗОВА.
ACS_ExecuteWithResult = ACS_ExecuteAlways, но выполняется в тот же тик из которого его вызывали. В случае с смертью монстров — гарантировано в порядке умирания (скорее всего слева направо от игрока).
2 2 1
navy_seals
- UAC Gunner -
Next rank: = UAC Gunner = after 16 points
44

Doom Rate: 2

Ссылка на пост №492 Отправлено: 16.01.16 17:14:45
Такой вопрос, допустим, есть папка с gzdoom 1.8.4 с настроенным ini файлом на одной учетке винды. При запуске exeшника с другой учетки, гздум генерирует другой ini файл и соотв.-но все настройки в нем сбиваются. Как сделать так, что бы игра использовала конкретный ini файл с любой учетки винды и не генерировала новый ini файл с дефолтными настройками?
VladGuardian
= Commissar =
Next rank: - UAC Commissar - after 263 points
5537

Doom Rate: 1.28

Posts quality: +1934
Ссылка на пост №493 Отправлено: 16.01.16 18:07:12
navy_seals
Может быть, сначала "дать природе взять своё", а потом заменить часть нового ini-файла - своими настройками, вырезав их из старого?
4 10 23
navy_seals
- UAC Gunner -
Next rank: = UAC Gunner = after 16 points
44

Doom Rate: 2

Ссылка на пост №494 Отправлено: 16.01.16 18:53:39
Нужен именно комфортный для пользователя, вообще не знакомого с тонкостями настроек, запуск путем простого дабл клика по ярлыку.
Нашел на вики Command line parameters, там есть -config configfile. Я правильно понимаю, что это прописывается в ярлыке как параметр запуска в виде (к примеру):

Объект: "С:\gzdoom 1.8.4\gzdoom.exe" zdoom -config zdoom-myini.ini
?
Может кто уже разбирался с этим, подскажите, правильно вообще прописано? В таком виде почему то все равно создает новый ini при запуске с ярлыка.

Вобщем, вопрос закрыт, если у кого такая же пробелма, правильная запись выделена выше.
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1631
Ссылка на пост №495 Отправлено: 16.01.16 19:05:02
На винде начиная от висты:

mklink zdoom-новаяучётка.ini zdoom-стараяучётка.ini

Только сначала снеси то что у тебя здум нагенерил для новой.

Это чтобы параметры не передавать всякие левые.
2 2 1
navy_seals
- UAC Gunner -
Next rank: = UAC Gunner = after 16 points
44

Doom Rate: 2

Ссылка на пост №496 Отправлено: 16.01.16 19:22:55
ZZYZX
Спасибо, а можно расшифровать?
У меня с записью "С:\gzdoom 1.8.4\gzdoom.exe" zdoom -config zdoom-myini.ini игра запускается с настройками zdoom-myini.ini и не создает новый ini, т.е. как раз то, что мне и надо было, за исключением того, что путь к exe должен быть на разных учетках один и тот же.
Твоя же запись делает тоже самое? или она и путь к exe из currentfolder ищет?
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1631
Ссылка на пост №497 Отправлено: 16.01.16 19:45:48
Моя запись делает ссылку на один файл из другого. То есть при mlink zdoom-derp.ini zdoom-hurr.ini здум будет искать новое название (например zdoom-derp.ini) а реально будет читать и писать старое (zdoom-hurr.ini)

Смысл в том, что тебе не надо будет после этого никаких батников делать, и сможешь просто запускать gzdoom.exe.
2 2 1
navy_seals
- UAC Gunner -
Next rank: = UAC Gunner = after 16 points
44

Doom Rate: 2

Ссылка на пост №498 Отправлено: 16.01.16 20:10:14
А если название новой учетки неизвестно, то можно как нибудь заставить ссылаться на ini старой учетки в именно ДАННОМ фолдере, чтобы, например, при переносе всей папки на другой комп не надо было в ярлыке путь править.
VladGuardian
= Commissar =
Next rank: - UAC Commissar - after 263 points
5537

Doom Rate: 1.28

Posts quality: +1934
Ссылка на пост №499 Отправлено: 16.01.16 21:27:49
navy_seals:
А если название новой учетки неизвестно,

Если имя учетки неизвестно, оно может быть получено из всяких системных переменных:
USERNAME=VLAD
USERDOMAIN=VLAD-PC
LOGONSERVER=\\VLAD-PC
COMPUTERNAME=VLAD-PC

Полный список переменных окружения можно получить, набрав в командной строке
>set

К этим переменным доступ через такой синтаксис:
%USERNAME%

Например,
echo %USERNAME%
- выведет имя пользователя.
4 10 23
Anto96WS
= Master Corporal =
Next rank: - Sergeant - after 9 points
281

Doom Rate: 1.77

Posts quality: +88
Ссылка на пост №500 Отправлено: 17.01.16 16:13:00
В игре у акторов не отображаются спрайты(?прозрачные), но они берутся
Порт GZDoom 1 7 01
(Не отображаются новые спрайты, добавленные в папку Sprites, формата PNG, глубины цвета 32, архив PK3)
Что такое?
Страница 25 из 200Перейти наверх Пред.  1, 2, 3 ... 24, 25, 26 ... 198, 199, 200  След.
   Список разделов - Флуд и устаревшие темы - Тема для новичков. Вопросы по маппингу/моддингу - любые!