Автор | Сообщение |
Shadowman UAC General
 | 8758 |
Doom Rate: 2.06 Posts quality: +2277 |
Отправлено: 07.11.15 15:43:11 | |
|
И снова вопрос по скриптам. Есть ли способ принудительно выбрать через АЦС какую-то вещь из инвентаря? Например, есть команда UseActorInventory, есть DropInventory, а вот для выбора вещи нету ( Зато есть консольная команда select item. Нельзя ли ее как-нибудь заставить выполняться в скрипте? |
|
|
1 |
7 |
2 |
 |
|
| |
ZZYZX - UAC Commissar -
 |  | 6284 |
 Doom Rate: 1.65 Posts quality: +1633 |
Отправлено: 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: +370 |
Отправлено: 11.11.15 01:54:51 | |
|
как делать частицы к прожектайлам?И как сделать свечения(блики) вокруг ламп как в брутале? |
|
|
| |
BeeWen Lieutenant Colonel
 |  | 3548 |
 Doom Rate: 1.6 Posts quality: +943 |
Отправлено: 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: +1633 |
Отправлено: 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: +1633 |
Отправлено: 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 =
 | 2072 |
 Doom Rate: 2.02 Posts quality: +914 |
Отправлено: 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 -
 |  | 4170 |
 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);
}
|
|
|
| |