Автор | Сообщение |
Azamael [B0S] - Sergeant Major -
 | 543 |
 Doom Rate: 2.46
|
|
| |
HellDoomer 666 - Master Sergeant -
 | 426 |
 Doom Rate: 1.6
|
Отправлено: 10.02.11 19:13:31 | | | Azamael, совсем не так. Мне надо чтобы когда игрок перешёл один лайндеф, на нём нужен скрипт, который должен показывать жизни всех оставшихся стёкол. Восемь стёкол, каждое разбивается с пяти раз. Если разбивают стекло, то хелса ( 5 ) должно быть уже меньше.
===================
1:5
2:5
3:5
4:5
5:5
6:5
7:5
8:5
===================
Скажем попали в четвёртое стекло и вынесли 1хп, тогда
===================
1:5
2:5
3:5
4:4
5:5
6:5
7:5
8:5
===================,
где: 1,2,3,4,5,6,7,8 - номер Lid (самого стекла),
:5,:5,:5,:4,:5,:5,:5,:5 - хитпоинты разбития стекла | |
|
| |
Ameba - Major -
 | 2837 |
 Doom Rate: 2.32
|
Отправлено: 10.02.11 19:40:26 | | | HellDoomer 666
Сначала расскажи, как ты делаешь бьющиеся стёкла. Если через псевдо-монстров, то алгоритм один, если через переменные - другой. | |
|
2 |
1 |
1 |
 |
|
| |
HellDoomer 666 - Master Sergeant -
 | 426 |
 Doom Rate: 1.6
|
Отправлено: 10.02.11 19:51:28 | | | Я стёкла делаю через скрипты и переменные. скрипт навешиваю на линию Lid
скрипты:
script 1 open
{
Setlineblocking(15,BLOCK_EVERYTHING);
TranslucentLine(15,128);
SetLineSpecial (15,80,11,0,0,0,0);
}
script 11 (void)
{
thingsound(7, "GLASS", 128);
SetLineSpecial (15,0,0,0,0,0,0);
Setlineblocking(15,off);
setlinetexture(15, SIDE_FRONT, TEXTURE_MIDDLE, "-");
setlinetexture(15, SIDE_BACK, TEXTURE_MIDDLE, "-");
}
Добавлено спустя 59 секунд:
это стекло разбивается с одного выстрела. | |
|
| |
Ameba - Major -
 | 2837 |
 Doom Rate: 2.32
|
Отправлено: 10.02.11 19:54:44 | | | HellDoomer 666
Разве это стекло бьётся с 5 раза? Похоже, что с первого. Где массив, сожержащий хп каждого стекла?
По логике, ты должен сделать так, что еогда по стеклу стреляют, соответствующая номеру линии переменная уменьшается, потом проверка - если она ноль - стекло бьётся. Вот эти переменные и надо выводить на экран, например, принтом. | |
|
2 |
1 |
1 |
 |
|
| |
HellDoomer 666 - Master Sergeant -
 | 426 |
 Doom Rate: 1.6
|
Отправлено: 10.02.11 19:57:20 | | | Массив? щас посмотрю...Я как-то уже делал вад в котором стекла разбиваются с нескольких раз. Где-то он лежит. Мне бы хотя с одним стеклом (простым) разобраться. | |
|
| |
Ameba - Major -
 | 2837 |
 Doom Rate: 2.32
|
Отправлено: 10.02.11 20:03:02 | | | Для одного стекла всё элементарно. Примерный план: (Синтаксис плохо помню, потому написал так)
Script 10 Void //вызывается когда по стеклу стреляют, поставь на линию акшон
{
переменная = переменная - 1;
ЕСЛИ (переменная = 0) ТО
проиграть_звук_бьющегося_стекла;
выставить_линии_проходимость;
убрать_активацию_скрипта_10_по_выстрелу;
КОНЕЦ ЕСЛИ
}
Script 11 Void // по пересечении линии, высветка значения хп стекла
{
вывести_на_экран (переменная);
}
Добавлено спустя 1 минуту 41 секунду:
В начале ещё не забудь поставить начальное значение переменной - максимальную прочность стекла. | |
|
2 |
1 |
1 |
 |
|
| |
HellDoomer 666 - Master Sergeant -
 | 426 |
 Doom Rate: 1.6
|
Отправлено: 10.02.11 21:19:59 | | | вот скрипт со многим разбитием
script 10 (void)
{
gl8++;
if(gl8 >= 5)
{
thingsound(1, "GLASS", 128);
SetLineSpecial (15,0,0,0,0,0,0);
Setlineblocking(15,off);
setlinetexture(15, SIDE_FRONT, TEXTURE_MIDDLE, "-");
setlinetexture(15, SIDE_BACK, TEXTURE_MIDDLE, "-");
}
else thingsound(1, "GLASS02", 128); thingsound(1, "GLASS2", 128);
}
где тут в нём надо подправлять? | |
|
| |
Ameba - Major -
 | 2837 |
 Doom Rate: 2.32
|
Отправлено: 11.02.11 10:59:11 | | | HellDoomer 666
Это рабочий скрипт для одного стекла, бьющегося с 5 раз?
Я не нашёл в вики функции получения Lid (если она вообще есть), потому как вариант:
int glassHp[8];
script 11 (Void) \\первое стекло
{
glasshp[1]++;
if (glasshp[1]>=5)
{
thingsound(1, "GLASS", 128);
SetLineSpecial (15,0,0,0,0,0,0);
Setlineblocking(15,off);
setlinetexture(15, SIDE_FRONT, TEXTURE_MIDDLE, "-");
setlinetexture(15, SIDE_BACK, TEXTURE_MIDDLE, "-");
}
else thingsound(1, "GLASS02", 128); thingsound(1, "GLASS2", 128);
}
script 12 (void) \\всё тоже самое, активируется стрельбой по 2 стеклу, только вместо glasshp[1] надо поставить glassHp[2]
{ ... )
\\ делаешь так для всех восьми стекол, glasshp[номер стекла]
script 10 (void)
{
int ii = 0;
for (ii = 1; ii < 9; ii++)
{
hudmessage(i:ii , s:" - " , i:glassHp[ii]; HUDMSG_FADEOUT, 0, CR_BLUE, 0, 0.1*ii, 1, 1);
}
}
Не имею понятия, будет ли работать, но основную идею, надеюсь, понял. | |
|
2 |
1 |
1 |
 |
|
| |
Nil = Major =
 | 2978 |
 Doom Rate: 2.34
|
Отправлено: 11.02.11 12:54:06 | | | Ну неграмотно же плодить совершенно одинаковые скрипты. используйте передачу параметров!
int grassstatus[10]; // десять статусов стёкол
script 11 (int grassnum)
{
grassstatus[grassnum]++;
if (grassstatus[grassnum] == 5)
{
//разбиваем
}
else
{
// печатаем статус
}
}
естественно, каждые из десяти стёкол должны иметь экшен ACS_Execute с параметрами 11, 0 а третий параметр должен пробегать от нуля до девяти. Научитесь наконец пользоваться скриптами, это не больно, больно ваши быдлядские конструкции читать. | |
|
1 |
2 |
1 |
 |
|
| |
Ameba - Major -
 | 2837 |
 Doom Rate: 2.32
|
Отправлено: 11.02.11 13:21:32 | | | Nil : | ваши быдлядские конструкции |
Спасибо конечно, было очень интересно узнать твоё мнение обо мне, но раз уж всё так просто, то тебе стоило написать ответ в этой теме первому, и не было бы никаких кошмарных конструкций. | |
|
2 |
1 |
1 |
 |
|
| |
Nil = Major =
 | 2978 |
 Doom Rate: 2.34
|
Отправлено: 11.02.11 13:34:03 | | | Всегда пожалуйста. Я очень долго занимаюсь программированием и меня неграмотный код задевает точно также, как и неграмотная речь. Хотя конечно я тоже неидеален, но стараться и думать надо.
Что-то последнее время я на всех бросаюсь, явно надо досдавать сессию, иначе выгонят из института нафиг... | |
|
1 |
2 |
1 |
 |
|
| |
HellDoomer 666 - Master Sergeant -
 | 426 |
 Doom Rate: 1.6
|
Отправлено: 11.02.11 19:41:03 | | | Ameba, щас попробую разобраться. Функции Lid в вики нет, зато есть 121 SetLineID. | |
|
| |
+Ku6EPyXOBEPTKA+ - 2nd Lieutenant -
 | 1413 |
 Doom Rate: 1.75
|
Отправлено: 12.02.11 21:05:39 | | | Снова всем привет. Возник у меня вот какой вопрос (если такой уже был, то простите): как вернуться на предыдущую карту? В общем дело в том, что повторять одну и ту же карту мне ну выгодно (а делать всё на одной ещё хуже, т.к. появляются жуткие глюки). Я решил использовать трюк с возвращением на предыдущую карту. Т.е. после map02, например, идёт снова map01, но старт уже в другом месте. Я пробовал использовать телепорт на другую карту, но я не хочу, чтобы появлялся экран с статистикой, и более того, при переходе мне выдаёт ошибку. | |
|
1 |
1 |
2 |
 |
|
| |
Nil = Major =
 | 2978 |
 Doom Rate: 2.34
|
Отправлено: 12.02.11 21:15:27 | | | +Ku6EPyXOBEPTKA+, 100 раз говорили уже, что без указания
1) порта
2) цели и задумки
Что-либо подсказать просто невозможно. | |
|
1 |
2 |
1 |
 |
|
| |
+Ku6EPyXOBEPTKA+ - 2nd Lieutenant -
 | 1413 |
 Doom Rate: 1.75
|
Отправлено: 13.02.11 00:20:22 | | |
Skulltag (версия особой роли не играет, хотя я делаю вроде по последней)
Переход на предыдущую карту, но с стартом в другой позиции и без экрана статистики. | |
|
1 |
1 |
2 |
 |
|
| |
Nil = Major =
 | 2978 |
 Doom Rate: 2.34
|
Отправлено: 13.02.11 00:22:22 | | | Раз скуллтаг, то надо понимать дезматч? или кооператив?
В любом случае, такие переходы в мультиплеере запрещены.
иначе наго говорить, что порт — ZDoom. | |
|
1 |
2 |
1 |
 |
|
| |
+Ku6EPyXOBEPTKA+ - 2nd Lieutenant -
 | 1413 |
 Doom Rate: 1.75
|
Отправлено: 13.02.11 00:38:51 | | | Nil : | Раз скуллтаг, то надо понимать дезматч? или кооператив? |
У меня синголовый режим.
Nil : | иначе наго говорить, что порт — ZDoom. |
По сути да, но Zdoom всё таки немного отличается от Skulltag + мне нужен не совсем Zdoom (нужен GZdoom, хотя опять же какая разница) | |
|
1 |
1 |
2 |
 |
|
| |
Nil = Major =
 | 2978 |
 Doom Rate: 2.34
|
Отправлено: 13.02.11 02:11:14 | | | +Ku6EPyXOBEPTKA+
Вот именно, что чтобы нам не гадать, надо было сразу писать ZDoom. Если бы ты спрашивал о 3d полах или моделях, фигурировал бы GZDoom. если ты спрашиваешь о Skulltag, сразу подразумевается сетевой режим, что критически важно для твоего вопроса.
Отвечаю на твой вопрос : тебе нужен хаб.
http://zdoom.org/wiki/Hub
http://zdoom.org/wiki/Cluster_definition | |
|
1 |
2 |
1 |
 |
|
| |
HellDoomer 666 - Master Sergeant -
 | 426 |
 Doom Rate: 1.6
|
Отправлено: 13.02.11 10:21:14 | | | Подскажите, как можно сделать так, чтобы когда игрок находится в нужных координатах X,Y,Z в воде показывался оставшийся воздух?
Порт: гздум1.5.0
Вода - жидкий 3dпол.
Как-то можно сделать через скрипт?
И ещё: в воде в некоторых местах есть отдушины, в которых игрок может восстановить воздух. Как только игрок появляется из воды (точнее его голова), то воздух восстанавливается, а как только опускается вниз - то воздух опять понижается.
Полоска воздуха у меня уже есть. | |
|
| |