Автор | Сообщение |
Cherepoc = Master Sergeant =
 | 514 |
 Doom Rate: 1.73
|
Отправлено: 06.09.10 20:17:22 | | | Продолжаем веселье!
На самом деле если нужны стейты, можно не жертвовать стейтами дума. В легаси вшиты стейты из еретика, спрятаны они под номерами сразу за думовскими стейтами. Вот только во Whacked этого, ясное дело, нет. Поэтому реализуется данные вещи вручную через блокнот . Лихо, правда? | |
|
| |
Thirteen Lieutenant Colonel
 | 3852 |
 Doom Rate: 1.93
|
Отправлено: 06.09.10 20:42:10 | | | WhackEd вообще моих ожиданий не оправдывает. Вроде уже версия номер 3 есть, а чем она принципиально от второй отличается - загадка. Могли бы хоть количество встроенных конфигов поднять, чтобы вот такие вот мелочи (типа особых возможностей Legacy) сразу были очевидны и не нужно было ковырять сгенерированный файл вручную. В конце концов, для чего эта программа делалась? Чтобы иметь нормальную графическую оболочку для модифицирования всякой фигни.
А эта графическая оболочка до сих пор истерит, увидев в тексте комментарий. Казалось бы, какая разница? Игнорируй его и считывай дальше. Так нет...
Чтобы не оффтопить, может, кто-нибудь знает, для чего бумовскому tranmap'у нужен заголовок? Там перед, собственно, таблицей цветов есть ещё 257 байтов. Что они делают? | |
|
| |
Jurijus - Master Sergeant -
 | 436 |
 Doom Rate: 0.16
|
Отправлено: 06.09.10 21:02:20 | | | В моем моде (Ghosts, Spirits and Demons - the Game) фотографирование призрака осуществлено через A_GiveToTarget("GhostlyPhoto",1). С первого взгляда кажется, что все работает нормально - один раз нажал - одна фотография.
Однако, если в момент нажатия на кнопку призрак подошел вплотную, то в инвентарь попадает не одна фотография, а как повезет - от нуля до ста (то есть за полсекунды расходуется абсолютно вся пленка, оставшаяся неиспользованной). Во-первых, как такое возможно? Во-вторых, как реализовать попадание в инвентарь фотографии менее глючным способом? | |
|
| |
vlr66 - Master Corporal -
 | 213 |
 Doom Rate: 1.95
|
Отправлено: 06.09.10 21:10:59 | | | Thirteen : | Если это убрать и поставить в Doom version число 21 вместо 19, WhackEd откроет файл и в формате Doom 1.9. После чего можно сохранить всё в deh, в Legacy будет работать. Включая фонарь. |
У меня пока не получается. Убрал текст ([STRINGS] GOTSHOTGUN2 = You got the Machine gun!), поменял 19 на 21, открыл через WhackEd, сохранил в DEHACKED.deh, добавил текст ([STRINGS] GOTSHOTGUN2 = You got the Machine gun!), загрузил в вад, удалил пред. dehacked - результат тот же (в zdoom работает, в legacy нет). Версия WhackEd3 v 0.99 build 249 beta.
Может скинеш dehacked, что у тебя заработал? | |
|
| |
Thirteen Lieutenant Colonel
 | 3852 |
 Doom Rate: 1.93
|
Отправлено: 06.09.10 21:26:43 | | | vlr66 : | У меня пока не получается. Убрал текст ([STRINGS] GOTSHOTGUN2 = You got the Machine gun!), поменял на 21, сохранил в .deh, добавил текст ([STRINGS] GOTSHOTGUN2 = You got the Machine gun!), загрузил в вад, удалил пред. dehacked - результат тот же (в zdoom работает, в legacy нет). Версия WhackEd3 v 0.99 build 249 beta. |
Можно последовательность действий?
В формате deh, кстати, игровой текст пишется иначе, так что возвращать строку про автомат надо именно в редакторе WhackEd. Перед сохранением.
Короче.
Вот есть тот DEHACKED, который был в отдельной папке "Что я редактировал". Его надо взять, открыть в Блокноте, удалить из него ту строку про Machinegun, сменить число с 19 на 21, после чего сохранить. Например, с расширением bex. Расширение deh тоже сойдёт, там уже не важно. Именно этот файл можно будет редактировать с помощью WhackEd, если надо будет внести в игру дополнительные изменения.
Далее нужно запустить WhackEd, открыть полученный файл, в поле Engine configuration выбрать Ultimate Doom 1.9.
После этого можно полезть в Strings и заменить строку "You got the super shotgun!" (номер 490) на "You got the Machine gun!", хотя это, думаю, не так важно, как получить рабочий фонарь под Legacy.
В тексте патча эта строка будет выглядеть вот так:
Text 26 24
You got the super shotgun!You got the Machine gun!
И никаких [STRINGS].
Потом сохранить патч в отдельный файл. Именно в отдельный. Потому что его WhackEd уже не откроет. Но именно из него надо будет скопировать текст в DEHACKED внутри вада.
vlr66 : | Может скинеш dehacked, что у тебя заработал? |
http://upwap.ru/1023149 | |
|
| |
Cherepoc = Master Sergeant =
 | 514 |
 Doom Rate: 1.73
|
Отправлено: 06.09.10 22:26:57 | | | | Могли бы хоть количество встроенных конфигов поднять, чтобы вот такие вот мелочи (типа особых возможностей Legacy) сразу были очевидны и не нужно было ковырять сгенерированный файл вручную. | А смысл поддерживать мёртвый порт, не поддерживающий даже bex. | |
|
| |
Thirteen Lieutenant Colonel
 | 3852 |
 Doom Rate: 1.93
|
Отправлено: 06.09.10 22:47:03 | | | Cherepoc : | А смысл поддерживать мёртвый порт, не поддерживающий даже bex. |
Если бы этот порт поддерживал bex, не было бы нужны отдельно его поддерживать. ) | |
|
| |
vlr66 - Master Corporal -
 | 213 |
 Doom Rate: 1.95
|
Отправлено: 06.09.10 22:56:35 | | | Наконец то! Всё, заработал! Большое вам спасибо! Извените, что отнял столько времени. | |
|
| |
Soldier 24 24 999 Recruit
 | 16 |
Doom Rate: 2
|
Отправлено: 07.09.10 13:00:26 | | | Здравствуйте.
У меня такой вопрос.
Можно ли сделать так чтобы: с дисконнектом ,с одногосервера и/или переходом на другой, ну или просто подойдя в игре к конкретному персонажу, можно было бы сохранить игру.
Условие: Два или более сервера ,с большими картами типа Memorial (но ток конечно поменьше в размерах)
и чтобы между них можно бы было свободно переключаться как между картами независимо от других игроков в игре.
Например: соединить все карты одного эпизода в одну большую первгого Дума , и другого эпизода в другую.
и потом переходить с сервера на сервер как между картами?
Вот ток мне кажется что это и бред, и выполнимая задача(хотя может быть и нет). | |
|
| |
Джамбейщик Chief Petty Officer
 | 947 |
 Doom Rate: 1.29
|
Отправлено: 07.09.10 13:48:19 | | | Это называется хабами, и впервые было реализовано в HeXen. Потом эта фича была вновь использована в Strife. Делай карту под скуллтаг, там это всё поддерживается и есть нормальный мультиплеер (ах, да что я говорю - он и заточен под мультиплеер, да и многие новички сразу же садятся за него). Только в мультиплеере хабы вряд ли смогут работать, как и внутриигровая смена серверов. Второй функции, по-моему, вообще в природе не существует.
Ковыряй тут, камрад! | |
|
| |
vlr66 - Master Corporal -
 | 213 |
 Doom Rate: 1.95
|
Отправлено: 07.09.10 14:53:26 | | | 1. Как уменьшить у BFG кол-во расходуемых cells за 1 выстрел (я так понимаю это редактируется в Whacked)?
2. Возможно ли в легаси (c помощью Whacked или другой программы) переназначить команду управления: tab - режим просмотра карты, на смартах такой клавиши нет, можно ли переназначить эту команду на цифру "0"?
3. Чем можно увидеть "зашитые" в легаси спрайты. Как можно заставить легаси менять спрайты на свои? Например шрифт на свой менять (пока) бесмысленно, обязательно пару строчек в красном легаси выставляет. | |
|
| |
Archi]ASTS[ UAC General
 | 12719 |
 Doom Rate: 1.87
|
Отправлено: 07.09.10 14:56:54 | | | vlr66 : | 1. Как уменьшить у BFG кол-во расходуемых cells за 1 выстрел (я так понимаю это редактируется в Whacked)? |
Вкладка Misc - там должно быть что то вроде BDG cells per shot | |
|
2 |
1 |
1 |
 |
|
| |
Azamael [B0S] - Sergeant Major -
 | 543 |
 Doom Rate: 2.46
|
Отправлено: 07.09.10 15:00:29 | | | 1. Как зделать скриптовую переменную которая будет доступная на всех уровнях?
2.как получить в скрипте нажатие определенной кнопки на клавиатуре? (для чего это надо - в начале мап01 выбор языка, и чтобы до конца оставался на всех уровнях тот что выбран, если есть другие варианты как такое зделать просветите пожалуйста) | |
|
| |
Player701 - Master Corporal -
 | 202 |
 Doom Rate: 1.99
|
Отправлено: 07.09.10 15:16:16 | | | Azamael : | 1. Как сделать скриптовую переменную которая будет доступная на всех уровнях? |
Доступна на одном хабе:
world int x:myvar;
Доступна во всей игре:
global int x:myvar;
где x - номер переменной, используемый для ее хранения.
Подробнее см. http://zdoom.org/wiki/Scope
Azamael : | 2.как получить в скрипте нажатие определенной кнопки на клавиатуре? (для чего это надо - в начале мап01 выбор языка, и чтобы до конца оставался на всех уровнях тот что выбран, если есть другие варианты как такое сделать просветите пожалуйста) |
http://zdoom.org/wiki/GetPlayerInput
Пример (вызывать в постоянном цикле для корректной работы):
int buttons = GetPlayerInput (-1, INPUT_BUTTONS);
if (buttons & BT_USE)
{
print (s:"You are pressing the use key.");
} | |
|
| |
Thirteen Lieutenant Colonel
 | 3852 |
 Doom Rate: 1.93
|
Отправлено: 07.09.10 15:27:20 | | | vlr66
Всегда пожалуйста.
vlr66 : | 2. Возможно ли в легаси (c помощью Whacked или другой программы) переназначить команду управления: tab - режим просмотра карты, на смартах такой клавиши нет, можно ли переназначить эту команду на цифру "0"? |
Управление к дехакед-патчам не относится, надо ковырять настройки порта.
vlr66 : | 3. Чем можно увидеть "зашитые" в легаси спрайты. Как можно заставить легаси менять спрайты на свои? Например шрифт на свой менять (пока) бесмысленно, обязательно пару строчек в красном легаси выставляет. |
Ну, спрайты - это не шрифты. Как и текстуры на стенах, и прочее. Спрайты - это оружие в руках, монстры и другие объекты в игре.
Файл legacy.dat можно открыть с помощью XWE. Там можно посмотреть названия всех дополнительных надписей. Изменять сам legacy.dat (как и doom2.wad) - необязательно. Все изменения можно включить в маленький дополнительный вад, который потом подключать при помощи команды -file.
Думаю, к легасивской дополнительной графике это тоже относится. | |
|
| |
Soldier 24 24 999 Recruit
 | 16 |
Doom Rate: 2
|
Отправлено: 07.09.10 17:16:49 | | | Привет.
А можно ли сделать так, чтобы из диалога активировался скрипт?
conversation
{
actor = 1;
page
{
name = "";
dialog = "";
choice
{
text = "";
// отсюда например.
cost
{
item = 100;
amount = 10;
}
}
} | |
|
| |
Player701 - Master Corporal -
 | 202 |
 Doom Rate: 1.99
|
Отправлено: 07.09.10 17:32:05 | | | Soldier 24 24 999 : | А можно ли сделать так, чтобы из диалога активировался скрипт? |
ACTOR ScriptActivator : CustomInventory
{
ConversationID 1
+INVENTORY.AUTOACTIVATE
States
{
Use:
TNT1 A 0
TNT1 A 0 ACS_Execute (<скрипт>, 0, <аргумент>, <аргумент>, <аргумент>)
Stop
}
}
choice
{
text="<текст>";
giveitem=1;
}
При выборе этой реплики в диалоге игроку будет выдан предмет с ID 1 (ScriptActivator), который автоматически используется (+INVENTORY.AUTOACTIVATE) и запустит скрипт. Можно убрать AUTOACTIVATE и стейт Use назвать Pickup - будет то же самое.
Более подробно см. http://zdoom.org/wiki/Strife_dialog_scripts_and_ACS (скрипты диалогов даны в старом формате KSSC)
DECORATE+USDF+ACS+LOADACS - можно сделать очень многие моды с различными NPC. | |
|
| |
vlr66 - Master Corporal -
 | 213 |
 Doom Rate: 1.95
|
Отправлено: 07.09.10 20:56:30 | | | vlr66 : | Вкладка Misc - там должно быть что то вроде BDG cells per shot |
Archi, спасибо нашёл!
Thirteen : | Файл legacy.dat можно открыть с помощью XWE. |
Так это ж совсем другое дело! Теперь и небо без лишних танцев с бубном можно поменять и т.д. Дело в том, что на смарте в папке с игрой находятся только два файла: doom.wad и legacy.dat, они запускаются одновременно (без всяких строчек - эмуль видит только имя папки с игрой), вот почему легаси не даёт кое что из вада запустить. Даже и в мыслях не было что он редактируется XWE. Спасибо!...  | |
|
| |
Soldier 24 24 999 Recruit
 | 16 |
Doom Rate: 2
|
Отправлено: 08.09.10 15:23:09 | | | Здравствуйте.
Я сделал мод в котором изменяется Ранг (как уровень) у игрока, но не знаю как сделать так, чтобы он не терял его при смерти так как он связан с Inventory. | |
|
| |
Player701 - Master Corporal -
 | 202 |
 Doom Rate: 1.99
|
Отправлено: 08.09.10 16:01:07 | | | Soldier 24 24 999 : | Я сделал мод в котором изменяется Ранг (как уровень) у игрока, но не знаю как сделать так, чтобы он не терял его при смерти так как он связан с Inventory. |
В смысле при смерти? При смерти - перезагрузка игры. Мод мультиплеерный что ли? Если да, то необходимо связать ранг не с Inventory, а с переменной-массивом ACS:
int rank[8];
Соответственно, rank[0] - ранг игрока с PlayerNumber 0 и т.д. Каждый раз при его изменении надо вызывать скрипт, который будет менять его. Этот скрипт, например, изменяет его на значение первого аргумента (только при условии, что он активирован игроком!):
script 990 (int newrank)
{
rank[PlayerNumber()]=newrank;
}
А этот увеличивает его (опять же, если активирован игроком!):
script 991 (int addrank)
{
rank[PlayerNumber()]+=addrank;
}
А вот DECORATE-код предмета, который дает, например, +50 к рангу (или сколько там надо):
ACTOR Add50Rank : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 ACS_Execute(991, 0, 50, 0, 0) //скрипт 991 увеличивает ранг на значение аргумента. Будет активирован игроком, так как он подобрал/получил этот предмет
}
}
Вот скрипт, который будет выводить ранг на экран:
script 800 ENTER
{
while (1)
{
HudMessage (i:rank[PlayerNumber()]; HUDMSG_PLAIN, 0, CR_RED, 0.5, 0.5, 1.0); //поменяйте остальные параметры как хотите
delay(1); //бесконечный цикл с нулевой задержкой недопустим!
}
}
Если не ошибаюсь, нужен такой же скрипт, но с типом RESPAWN. Но я не уверен.
Этот скрипт очищает ранг игрока, отсоединившегося от игры:
script 700 (int player) DISCONNECT
{
rank[player]=0;
}
Если ранг выражается не числом, а чем-то еще - способ остается таким же. Просто проверяем, чему равен ранг, и в зависимости от этого меняем/выводим картинку/надпись/что хотите.
Еще можно воспользоваться альтернативным методом, через переменную Score (APROP_Score). Но я не уверен, что она сохраняется после смерти. | |
|
| |