Автор | Сообщение |
Shadowman UAC General
| 8391 |
Doom Rate: 2.08 Posts quality: +1994 |
Отправлено: 07.11.15 15:43:11 | | | И снова вопрос по скриптам. Есть ли способ принудительно выбрать через АЦС какую-то вещь из инвентаря? Например, есть команда UseActorInventory, есть DropInventory, а вот для выбора вещи нету ( Зато есть консольная команда select item. Нельзя ли ее как-нибудь заставить выполняться в скрипте? | |
|
1 |
7 |
2 |
|
|
| |
ZZYZX - UAC Commissar -
| | 6284 |
Doom Rate: 1.65 Posts quality: +1630 |
Отправлено: 07.11.15 16:41:38 | | | Нельзя. Про остальное не знаю. | |
|
2 |
2 |
1 |
|
|
| |
YURA_111 UAC Sergeant Major
| 768 |
Doom Rate: 1.98 Posts quality: +136 |
Отправлено: 07.11.15 23:03:05 | | | Доброго времени суток!
A_BFGSpray - возможно ли вообще установить ДАМАГ на 0, и как прописать DamageType? Ни то, не другое в ВИКИ не прописано и соответственно не получилось. Есть идеи? | |
|
| |
Kragoth762 = Master Sergeant =
| 474 |
Doom Rate: 1.93 Posts quality: +47 |
Отправлено: 08.11.15 15:41:12 | | | Вот когда загружаю с заменой RSKY1 картинку, она тайлится 256*128 четыре раза. То есть на весь обзор в 360 градусов вместилась бы картинка 1024*512, но если картинку с таким разрешением импортировать, будет тайлиться 4 раза её угол 256*128. | |
|
| |
TesaQ = Warrant Officer =
| 1149 |
Doom Rate: 1.72 Posts quality: +368 |
Отправлено: 11.11.15 01:54:51 | | | как делать частицы к прожектайлам?И как сделать свечения(блики) вокруг ламп как в брутале? | |
|
| |
BeeWen Lieutenant Colonel
| | 3458 |
Doom Rate: 1.61 Posts quality: +860 |
Отправлено: 11.11.15 11:06:05 | | | ZoD: | То есть на весь обзор в 360 градусов вместилась бы картинка 1024*512, но если картинку с таким разрешением импортировать, будет тайлиться 4 раза её угол 256*128. |
Поставь полный размер длины картинки неба, тогда оно будет отображаться полностью. | |
|
1 |
1 |
1 |
|
|
| |
ZZYZX - UAC Commissar -
| | 6284 |
Doom Rate: 1.65 Posts quality: +1630 |
Отправлено: 11.11.15 16:16:22 | | | YURA_111: | A_BFGSpray - возможно ли вообще установить ДАМАГ на 0, и как прописать DamageType? Ни то, не другое в ВИКИ не прописано и соответственно не получилось. Есть идеи? |
Дамагтайп для бфг как мне кажется указывается в пушке (в противоположность дамагтайпу СНАРЯДА, который вылетает из пушки). Сужу из того, что при попадании шара BFG всегда "splintered", а вот при смерти от трейсера всё зависит от оружия, на которое ты успел переключиться после выстрела шаром. В скуллтеге очень круто можно было одновременно получать SPAM и FISTING | |
|
2 |
2 |
1 |
|
|
| |
UsernameAK - Lance Corporal -
| 150 |
Doom Rate: 1.79 Posts quality: +13 |
Отправлено: 13.11.15 13:31:01 | | | Что такое wait в decorate | |
|
| |
sanek_47 = Master Corporal =
| 272 |
Doom Rate: 2.16 Posts quality: +64 |
Отправлено: 19.11.15 18:04:11 | | | Существуют ли модифицированные версии gzdoom с поддержкой видеороликов? Раньше, насколько я знаю, можно было воспроизводить видео через ACS-скрипты с помощью PlayMovie, но потом эту возможность почему-то убрали... | |
|
| |
ZZYZX - UAC Commissar -
| | 6284 |
Doom Rate: 1.65 Posts quality: +1630 |
Отправлено: 19.11.15 18:41:13 | | | Насколько я знаю, не существует. Теоретически можно достаточно легко сделать, так что возможно будут. PlayMovie убрали не "почему-то", а потому что написавший этот код перестал его обновлять, а сам по себе он не работал на современном железе/библиотеках, а также в старом режиме софтвара и в OpenGL.
Добавлено спустя 3 минуты 57 секунд:
UsernameAK: | Что такое wait в decorate |
Я не въехал в то, чем wait отличается от loop, но это что-то похожее. Попробуй заменить одно на другое и сравнить результат. Есть подозрение что loop будет крутить тот стейт, на который был произведен последний переход, а wait ближайший.
т.е. при таком коде будет крутиться состояние Spawn, если ты перешёл на Spawn (SetActorState?) и Spawn2, если ты перешёл на Spawn2:
Spawn:
TNT1 A 3
Spawn2:
TNT1 A 3
loop А при таком один раз Spawn, а дальше Spawn2, даже если переходил на Spawn:
Spawn:
TNT1 A 3
Spawn2:
TNT1 A 3
wait | |
|
2 |
2 |
1 |
|
|
| |
MyNameIs = 1st Lieutenant =
| 2054 |
Doom Rate: 2.04 Posts quality: +893 |
Отправлено: 20.11.15 11:18:51 | | | можно ли скриптом запустить проверку в зандронуме, стоит ли игрок в близости от некого объекта? без линий и других статичных объектов, нужный объект будет двигаться. | |
|
| |
alko Marine
| 26 |
Doom Rate: 2
|
Отправлено: 20.11.15 15:00:51 | | | Привет всем. Надеюсь, успею отправить это сообщение пока меня снова без причины не забанили, хыыыы. В общем, леплю игрушку на движке ZDoom (только программная графика).
Куча вопросов есть, как по мапингу, так и по кодингу...
Как удалить линию, которая разделяет два сектора? Ладно если обычные сектора, там достаточно перетягиванием вертексов по углам решить проблему. А если в каждом из секторов ещё куча секторов ? Просто выделив линию и нажав delete удаляются так же и сектора. И ещё вопрос, как сделать так, чтоб оружие "кулак" не отображалось (надо вообще убрать как-то этот спрайт ладошки) ?
По скриптам вопрос.
Набросал такую прожку.
#include "zcommon.acs"
Script 1 OPEN
{
Sector_SetColor(const:22, 255, 255, 100);
int i;
while(!0){
for( i=100;i<250>00;i--){
Sector_SetColor(const:29, i, 255, 255);
}
}
SetFont("FONT");
HudMessage(s:"ALLAH AKBAR"; HUDMSG_PLAIN, 1, CR_UNTRANSLATED, 0.1, 0.8, 3.7);
} Во-первых, компилятор ругается на синтаксическую ошибку в области назначения int'a в качестве параметра сэт-колор. То есть переменную нужно преобразовать в 8-ми битное значение (типа сишного char, но char'a в этих скриптах не существует), какой командой конвертануть? Во-вторых, как использовать процедурное программирование (именно по синтаксису как писать функции) ? Таким образом сделать, чтоб в бесконечном цикле поочерёдно вызывалась та или иная процедурка (на сях, или любом другом ЯП я-то знаю принцип. А как быть тут ?). | |
|
| |
Grek6500 - UAC Gunner -
| 48 |
Doom Rate: 2
|
Отправлено: 20.11.15 16:56:45 | | | alko: | И ещё вопрос, как сделать так, чтоб оружие "кулак" не отображалось (надо вообще убрать как-то этот спрайт ладошки) ? |
Не очень понял вопрос ,но если надо тупо убрать отображение кулака когда он выбран просто замени спрайт FISTA0 (или как там его) на пустой спрайт.
alko: | Как удалить линию, которая разделяет два сектора? |
Тупо наложи линию от которой надо избавиться на близ лежащие сектора. | |
|
| |
alko Marine
| 26 |
Doom Rate: 2
|
Отправлено: 20.11.15 18:21:19 | | | Grek6500: | ,но если надо тупо убрать отображение кулака когда он выбран просто замени спрайт FISTA0 |
Да, можно и так, но это грубый костыль. При нажатии "выстрела", даже если убрать все спрайты анимации, будет срабатывать "якобы удар с кулака"... Ладно. Сделаю тупо пустой спрайт.
alko: | Тупо наложи линию от которой надо избавиться на близ лежащие сектора. |
Не знаю, может это я туплю, но так просто обойти подсектора внутри сектора чего-то не выходит. Вот от этой красной линии надо избавиться.
И что выходит, если начинаю её потихоньку накладывать на сектора.
Добавлено спустя 4 минуты 34 секунды:
Кстати, каким образом в дум-билдере инвертировать направление нормали (перпендикулярная полосочка посередине линии, указывающее направление фронт-фейса) ? | |
|
| |
Grek6500 - UAC Gunner -
| 48 |
Doom Rate: 2
|
Отправлено: 20.11.15 19:27:47 | | | alko: | Да, можно и так, но это грубый костыль. При нажатии "выстрела", даже если убрать все спрайты анимации, будет срабатывать "якобы удар с кулака"... Ладно. Сделаю тупо пустой спрайт. |
А я думал ты хочешь чтоб тупо ручку было не видно. Если надо вообще убрать из инвентаря ,то делаешь KEYCONF lump в своем ваде и в него пишешь :
weaponsection compilation
setslot 1 fist chainsaw //В эту строку пишешь нужные веапоны если он не нужен не пишешь его
setslot 2 pistol //Последующие веапоны
alko: | И что выходит, если начинаю её потихоньку накладывать на сектора. |
Амм да и вправду черт уберешь ,надо за ранее было обдумать ,а потом тыкать.
alko: | Кстати, каким образом в дум-билдере инвертировать направление нормали (перпендикулярная полосочка посередине линии, указывающее направление фронт-фейса) ? |
Выбираешь редактирование лайндефов, клацаeшь по нужной линии и вверху в контекстном меню жмешь linedefs>flip linedefs или просто жмешь F. Сам тоже однажды столкнулся с этой проблемой ,некоторые скрипты тупят если линия повернута не так. | |
|
| |
MaxED UAC Sergeant Major
| 704 |
Doom Rate: 2.12 Posts quality: +39 |
Отправлено: 20.11.15 20:25:11 | | | alko: | Как удалить линию, которая разделяет два сектора? |
В DB2/GZDB: 1. Выделяете сектора, линия между которыми Вам не нужна. 2. Sectors -> Merge Sectors (Shift-J).
Добавлено спустя 5 минут 42 секунды:
alko: | Набросал такую прожку. |
Плохо набросали. Вот вариант, который компилируется. Ошибки ищите сами...
#include "zcommon.acs"
Script 1 OPEN
{
Sector_SetColor(22, 255, 255, 100);
int i;
while(true)
{
for(i = 100; i > 0; i--)
{
Sector_SetColor(29, i, 255, 255);
}
}
SetFont("FONT");
HudMessage(s:"ALLAH AKBAR"; HUDMSG_PLAIN, 1, CR_UNTRANSLATED, 0.1, 0.8, 3.7);
}
alko: | Во-вторых, как использовать процедурное программирование (именно по синтаксису как писать функции) ? |
Как-то так | |
|
| |
alko Marine
| 26 |
Doom Rate: 2
|
Отправлено: 20.11.15 21:06:40 | | | Спасибо.
MaxED: | Плохо набросали. Вот вариант, который компилируется. Ошибки ищите сами... |
Да, компилируется, что странно. Ведь компилятор на строку while вообще не ругался, а именно на строки, где присваивается интовая переменная в качестве параметра сет-колора.
В Вашем варианте i вообще не меняет значение. Сами попробуйте. Компилировать то оно компилирует, но работает как-то странно... Скорее всего тут дело именно в типе скрипта (OPEN). То есть он активен, пока срабатывает событие OPEN, и while(true) из-за этого не бесконечен, так как его действие обрывается из-за кратковременности скрипта. Как это исправить? | |
|
| |
alekv - Colonel -
| | 4168 |
Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 20.11.15 21:30:39 | | | alko Если не читал гайд по ацс, то почитай http://i.iddqd.ru/viewtopic.php?t=255 он не полный, но на русском, там и про функции и про типы скриптов OPEN, ENTER, DEATH и т.д. Ответы на некоторые твои вопросы есть в мануале. Кстати понравился стиль уровней, так и полноценную игру можно сделать в таком стиле, только спрайты не очень)
alko: | В Вашем варианте i вообще не меняет значение. |
Смотри, разберем цикл for for(i = 100; i > 0; i--) //т.к. 100>0 цикл фор выполнится 100 раз следовательно Sector_SetColor(29, i, 255, 255); i будет уменьшаться, правда уменьшение будет очень быстрым т.к. нет задержки, т.е. простое delay(25); в цикле фор решит проблему. каждые 25 тиков переменная i будет уменьшаться (35тиков ==1сек). Скрипт OPEN запускается как только загрузится карта, Enter когда на карте появился игрок. В конце цикла while надо писать delay(1); т.е. мин задержка в 1 тик должна быть
Добавлено спустя 2 минуты 38 секунд:
для перевода числа используем битовый сдвиг он же <<8 <<16>>8 >>16, я тут не особо помню, обычно методом тыка проверяю что мне нужно... все никак не запомню | |
|
1 |
3 |
1 |
|
|
| |
alko Marine
| 26 |
Doom Rate: 2
|
Отправлено: 20.11.15 21:35:06 | | | alekv: | только спрайты не очень) |
Спрайты пока стандартные - думовские, с моей индексацией палитры. Спрайты я собираюсь рендерить со своих моделек (но пока есть лишь концепты, за моделинг ещё не брался).
Подробнее тут
Добавлено спустя 5 минут 11 секунд:
alko: | т.е. простое delay(25); |
Да, с задержкой уже наглядно. Правда 25 тиков многовоато, поначалу кажется, что i всё равно не меняется. С одним тиком нормально. | |
|
| |
MaxED UAC Sergeant Major
| 704 |
Doom Rate: 2.12 Posts quality: +39 |
Отправлено: 20.11.15 21:40:58 | | | А теперь, скрипт который не только компилируется, но и работает (у Вас в цикле задержек нету, потому он выполняется за 1 тик, переход цвета странный, да и while там не нужен)
#include "zcommon.acs"
Script 1 OPEN
{
Sector_SetColor(22, 255, 255, 100);
for(int i = 100; i > 0; i--)
{
Sector_SetColor(29, i, i, i);
Delay(1);
}
SetFont("FONT");
HudMessage(s:"ALLAH AKBAR"; HUDMSG_PLAIN, 1, CR_UNTRANSLATED, 0.1, 0.8, 3.7);
}
| |
|
| |