Автор | Сообщение |
alekv = 2nd Lieutenant =
 | 1456 |
 Doom Rate: 1.68
|
Отправлено: 06.07.15 12:15:59 | | | MyNameIs : | а можно ли скриптом изменять спрайт актора (даже не знаю, как правильнее его назвать),
к примеру, чтобы спрайт изменился при нажатии кнопки? |
Да, SetActorState(); в acs изменяет стейт актора.
Выглядит примерно так :
Script 5 (void)
{
int But = GetPlayerInput(-1,Input_Buttons);
If(But & BT_Forward)
{
PrintBold(s:"Test");
SetActorState(22,TestState,true);
}
}
Запускаться такой скрипт должен в lump KEYCONF, пример:
AddMenuKey "MyKey" +MyKey
alias +MyKey "Puke 5; +forward"
alias -MyKey "-forward"
DefaultBind w +MyKey
В итоге когда игрок нажмет кнопку MyKey(ее в меню настройках управления надо выставить)
Запустится скрипт 5 и нажмется кнопка +Forward(игрок пойдет вперед), актор с тагом 22 прыгнет в стейт TestState.
Читай вики и узнаешь еще больше. GetPlayerInput | |
|
| |
ZZYZX UAC Sergeant Major
 | 821 |
 Doom Rate: 1.38
|
Отправлено: 06.07.15 12:52:02 | | | Мне кажется имелся в виду свитч
А ещё есть такой класс, как SwitchableDecoration, который предоставляет функционал в стиле факелов из хексена. То есть сам актор становится свитчом. | |
|
| |
alekv = 2nd Lieutenant =
 | 1456 |
 Doom Rate: 1.68
|
Отправлено: 06.07.15 14:36:51 | | | Ну может и свитч.. смотря для чего ему надо переключение спрайтов
MyNameIs
Да чуть подзабыл, там в скрипте 5 не обязательно условие.. посути оно вообще не нужно (основываюсь на твоём посте), тоесть:
Script 5 (Void)
{SetActorState(22,TestState,true);}
При нажатии кнопки +forward запустится скрипт 5 и сменит стейт актору.
Если все таки нужен свитч, то еще почитай Activation и Creating_decorations_that_can_be_(de)activated, тоже пригодится. | |
|
| |
LEX SAFONOV UAC Sergeant Major
 | 685 |
 Doom Rate: 1.49
|
Отправлено: 08.07.15 20:03:56 | | | Парни, расскажите по подробнее про порталы в здуме и как их реализовывать.(А если конкретнее, то больше интересует экшн Sector Set Portal) | |
|
| |
alekv = 2nd Lieutenant =
 | 1456 |
 Doom Rate: 1.68
|
Отправлено: 09.07.15 07:38:49 | | | А мне может кто объяснить как реализованно в моде The Guncaster магазин?
Точнее интересует именно наведение курсора мышки на иконку, я уже в который раз смотрю код, никак понять не могу, каким образом определяется что курсор мыши наведен\находится на иконке какого либо итема и нужно выполнить действие, например подсветить иконку.. или если курсор на иконке и нажата кнопка, то покупается итем..
Как сделать сам курсор, знаю, как реализовать магазин тоже, но вот с наведением мыши на итем.. беда, прошу помогите, очень надо =( | |
|
| |
ZZYZX UAC Sergeant Major
 | 821 |
 Doom Rate: 1.38
|
Отправлено: 09.07.15 13:18:05 | | | У тебя итем находится в определённом месте. Берёшь и проверяешь, что координаты курсора (ты же знаешь как его рисовать да? значит знаешь как взять координаты) совпадают с твоим итемом.
MouseX >= ItemX && MouseY >= ItemY && MouseX <= ItemX+16 && MouseY <= ItemY+16
[подразумеваю что твой итем 16х16 иконкой]
Где проблема?
з.ы. на ганкастер не смотрел.
з.з.ы. если объяснение непонятно, могу вечером сделать вад-пример. | |
|
| |
LagaDemon Recruit
 | 4 |
 Doom Rate: 2
|
Отправлено: 09.07.15 13:32:00 | | | Вопрос: Как сделать так, чтобы монстры начали двигаться? Они расположены за картой и в определённый момент должны телепортироваться, а для этого надо, чтобы они прошли через линию. Формат: ZDoom(Doom in UDMF). | |
|
| |
alekv = 2nd Lieutenant =
 | 1456 |
 Doom Rate: 1.68
|
Отправлено: 09.07.15 14:07:30 | | | ZZYZX : | У тебя итем находится в определённом месте. Берёшь и проверяешь, что координаты курсора (ты же знаешь как его рисовать да? значит знаешь как взять координаты) совпадают с твоим итемом.
MouseX >= ItemX && MouseY >= ItemY && MouseX <= ItemX+16 && MouseY <= ItemY+16
[подразумеваю что твой итем 16х16 иконкой]
Где проблема?
з.ы. на ганкастер не смотрел.
з.з.ы. если объяснение непонятно, могу вечером сделать вад-пример. |
Последний раз когда пытался так сделать, зная координаты итема и курсора.. не получилось, уже забыл в чем была причина, так-то это первое что мне пришло в голову, потом уже додумался до извращенного делать иконки и курсор 3д(тоесть thing-ами) как бы спавняться перед рожей думера и когда курсор коснется итема тогда происходит действие, способ рабочий, но геморный и не правильный.
В ганкастере там как-то по другому сделанно вот и интересуюсь.
А вад пример конечно хотелось бы глянуть, у меня не получилось так сделать.
LagaDemon : | Вопрос: Как сделать так, чтобы монстры начали двигаться? Они расположены за картой и в определённый момент должны телепортироваться, а для этого надо, чтобы они прошли через линию. Формат: ZDoom(Doom in UDMF). |
Если по старинке, делаешь от сектора в котором монстры, до сектора куда надо телепортнуть маленький коридор, игрок стрельнет и монстры в как бы закрытом секторе услышат и начнут бродить, обязательно наткнутся на твою линию, но это старый способ, в UDMF все проще, вот 1 из способов:
На карте где надо спавнить монстра ставишь thing MapSpot (9001), даешь ему таг любую не занятую цыфру, например 333, и в редакторе GZDB жми F10 там пропиши так:
Script "SpawnZombieMan" (Void)
{SpawnSpot("zombieman",333,0,0);}
Потом на линию цепляешь действие(action) под номером 80, ставишь галочку на named script, вписываешь в scriptName имя скрипта тоесть SpawnZombieMan, строку map number оставляешь 0. Ну и конечно не забудь поставить галочку when player walks over.
Когда игрок пройдет такую линию начнут появляться монстры там где находится mapSpot(в игре его не видно), как бы телепортироваться, только без teleport fog помоему.
В общем проверяй, таких спотов можно делать очень много, главное давай им разные таги если надо что бы монстр спавнился в разных точках.
Еще будет полезно почитать, хотя бы с переводчиком если не знаешь англ. такие страницы как SpawnSpot, Thing_Spawn, Thing_SpawnNoFog, там если походить по ссылкам еще полезное найти можно, это конечно не телепорт, а создание монстров в указанной точке, но как замена годится, если не лучше. | |
|
| |
Slavius [B0S] = 2nd Lieutenant =
 | 1499 |
 Doom Rate: 1.36
|
Отправлено: 10.07.15 08:25:38 | | | Запилил текстуру для карты и столкнулся с очень странной проблемой. В PrBoom+ эта текстура почему-то резко обрезается или вообще стоит так, будто её в редакторе сдвинули (хотя ничего подобного нет). При этом в том же (G)ZDoom всё с этой текстурой хорошо. Сама линия с текстурой нигде не разделяется вертексами. Что с этим делать, может знает кто?
Скриншоты под спойлером:
| |
|
4 |
2 |
 |
|
| |
ZZYZX UAC Sergeant Major
 | 821 |
 Doom Rate: 1.38
|
Отправлено: 10.07.15 14:34:51 | | | Какой ширины текстура?
Скорее всего это какое-нибудь где-нибудь ВАНИЛЬНОЕ ОКРУГЛЕНИЕ. Скажем, до 64 или 128. | |
|
| |
Slavius [B0S] = 2nd Lieutenant =
 | 1499 |
 Doom Rate: 1.36
|
Отправлено: 10.07.15 14:40:52 | | | ZZYZX : | Какой ширины текстура? |
80x31
Не думаю, что дело в каком-то округлении. У меня есть текстуры гораздо больше этой и они никак не ломаются.
А если в этом. Я же запарюсь текстурки переделывать  | |
|
4 |
2 |
 |
|
| |
ZZYZX UAC Sergeant Major
 | 821 |
 Doom Rate: 1.38
|
Отправлено: 10.07.15 15:22:38 | | | Сделай 128х32 (пустое место тупо залей цветом) и проверь.
Так, я грозился алеку-в сделать вад для примера мыши в гздуме.
Вот вад, в котором можно мышью призвать демона в пентаграмму: http://www.mediafire.com/download/2ewvlz257f8rw2n/MouseInGZDoom.wad
Сам тестировал под GZDoom 2.1.pre-1159-gfbefe13
doom2.wad
з.ы. апдейт: научил скрипт игнорить настройки скорости прицела (m_yaw, m_pitch). И invertmouse заодно.
Сделал я это затем, что у многих людей стоит сильно неодинаковая скорость на вертикальном и горизонтальном прицеле, в гуе это выглядит слегка странно. А при invertmouse вообще при движении мыши вниз курсор ползёт вверх.
Можно также игнорить mouse_sensitivity, но я это выключил (там закомменченый код, если есть желание вернуть).
Всё же нужно людям оставить хоть какую-то возможность регулировать скорость курсора имхо.
Если кодишь под зандронум, то весь скрипт 1 (например) должен быть CLIENTSIDE, а серверу посылать необходимую инфу через RequestScriptPuke или как там эту функцию назвали.
Т.е. например "попробовать купить пушку после клика" = RequestScriptPuke(2, номер_итема), и никак иначе.
А то я видел моды, которые ВООБЩЕ ВЕСЬ ИНТЕРФЕЙС рисуют серверсайдом. Это писец. И лагает. | |
|
| |
Slavius [B0S] = 2nd Lieutenant =
 | 1499 |
 Doom Rate: 1.36
|
Отправлено: 10.07.15 15:36:18 | | | Переделал текстурки в размер 64х32. Проблема решена. Спасибо за помощь. Однако, это было странно.
 | |
|
4 |
2 |
 |
|
| |
sanek_47 Marine 1st class
 | 30 |
 Doom Rate: 2
|
Отправлено: 10.07.15 16:15:44 | | | Можно как-нибудь сделать плавное затихание музыки? Чтобы например во время боя громкость музыки увеличивалась, а когда монстров вокруг нет становилась в 2 раза тише? | |
|
| |
D1m3 = Sergeant Major =
 | 609 |
 Doom Rate: 1.81
|
Отправлено: 13.07.15 18:23:13 | | | Пытаюсь сделать 2 текстовых скрипта
#include "zcommon.acs"
script 1 (void)
{
print(s:"What kind of idiot spilled water here?");
}
script 2 (void)
{
print(s:"Brrrr ! The water is cold");
}
Скрипт 1 работает нормально
Но при пересечении линии скрипт 2 выдает "unknown script"
В чем может быть проблема? | |
|
1 |
4 |
 |
|
| |
ZZYZX UAC Sergeant Major
 | 821 |
 Doom Rate: 1.38
|
Отправлено: 13.07.15 18:24:13 | | | А как он вызывается на карте? | |
|
| |
+Ku6EPyXOBEPTKA+ - 2nd Lieutenant -
 | 1413 |
 Doom Rate: 1.75
|
Отправлено: 13.07.15 18:33:49 | | |
Это говорит только о том, что номер скрипта на линии не соответствует номеру скрипта в ACS. Проверь номера. Или он пишет "неизвестен скрипт №2"? | |
|
1 |
1 |
2 |
 |
|
| |
D1m3 = Sergeant Major =
 | 609 |
 Doom Rate: 1.81
|
Отправлено: 13.07.15 18:52:48 | | | +Ku6EPyXOBEPTKA+ : | Или он пишет "неизвестен скрипт №2"? |
Пишет как раз это | |
|
1 |
4 |
 |
|
| |
ZZYZX UAC Sergeant Major
 | 821 |
 Doom Rate: 1.38
|
Отправлено: 13.07.15 19:05:19 | | | Заскринь чтоли окно со свойствами линии, на которой скрипт №2 висит.
И заодно наверное №1 тоже. Чтобы мы сравнили. | |
|
| |
alekv = 2nd Lieutenant =
 | 1456 |
 Doom Rate: 1.68
|
Отправлено: 14.07.15 08:53:33 | | | ZZYZX : | Так, я грозился алеку-в сделать вад для примера мыши в гздуме.
Вот вад, в котором можно мышью призвать демона в пентаграмму |
Спасибище, посмотрел, впечатлён, ожидал попроще скрипт, в твоём еще не сразу разберусь.
ZZYZX : | Сделал я это затем, что у многих людей стоит сильно неодинаковая скорость на вертикальном и горизонтальном прицеле, в гуе это выглядит слегка странно. А при invertmouse вообще при движении мыши вниз курсор ползёт вверх. |
Вот с этим у меня тоже была проблема, но как такое решить я понятия не имел, у меня постоянно была разная скорость по x, y..
Да в принципе я фиг бы додумался до такого скрипта.
ZZYZX : | Всё же нужно людям оставить хоть какую-то возможность регулировать скорость курсора имхо. |
Ну не знаю, у тебя скорость отличная получилась, зачем ее менять..
Буду пока что разбираться в твоём скрипте, я когда писал код мыши он был совсем примитивный и точно не помню, но даже функции не юзал(раньше вообще не понимал в чем их смысл, не сразу приходит=))
Вообще это все мне надо для инвентаря, такого как в рпг, с рендомным местоположением итемов в инвентаре..
И уже примерно понял как будет реализован клик по итемам, по сути так же как ты написал, только координаты итемов фиксированные и записанны в массиве, в общем надеюсь получится, по пытаюсь додуматься как же узнать что например в 7 ячейке лежит итем аптечка и при клике она используется..  | |
|
| |