Автор | Сообщение |
Shadowman UAC General
| 8391 |
Doom Rate: 2.08 Posts quality: +1995 |
Отправлено: 02.01.07 15:58:25 | | | Думаю, лучше, если вопросы по оружию будут в отдельной теме - иначе бардак выйдет. Вопрос такой: как заменить кулак в Думе на свое оружие, чтобы давалось автоматически при старте игры. Пишу в декорэйт: ACTOR MyFistX : Weapon replaces Fist далее пишу параметры оружия (кстати, что означают +WEAPON.WIMPY_WEAPON и +WEAPON.MELEEWEAPON?), все как полагается... В KEYCONF настраиваю слот 1 на новое оружие: setslot 1 MyFistX Chainsaw загружаю игру - ничего не меняется как был кулак, так и остался В чем дело? | |
|
1 |
7 |
2 |
|
|
| |
Tomcat[DST] = UAC Gunner =
| 70 |
Doom Rate: 2.71
|
Отправлено: 02.01.07 16:08:08 | | | Хм... поковыряй True Action. Вдруг чего забыл? | |
|
| |
Shadowman UAC General
| 8391 |
Doom Rate: 2.08 Posts quality: +1995 |
Отправлено: 02.01.07 16:29:21 | | | True Action ковырял уже... неясно мне там назначение следующих лумпов: LOADACS, ACS, TA_PE (этот вообще не читается в хве). Может там как-раз собака зарыта? | |
|
1 |
7 |
2 |
|
|
| |
SubFrozen Recruit
| 8 |
Doom Rate: 0.09
|
|
| |
Guest = 2nd Lieutenant =
| 1473 |
Doom Rate: 2.5 Posts quality: +182 |
Отправлено: 02.01.07 17:11:05 | | | У Decorate есть недостаток, как раз связанный с заменой элементов из изначального набора, поэтому, если коротко, для корректной работы "лишние" элементы нужно изъять, причем сам декорейт такой возможностью не обладает. Есть два способа: с помощью ACS (OPEN и RESPAWN скрипты) и с помощью FRAGGLESCRIPT, который знает Гоззо (lump FSGLOBAL). Есть еще третий способ (полуавтоматический, так сказать) - с помощью нужного набора консольных команд, которые можно забайндить на кнопку, которую придется нажимать при каждом старте (этот способ хорош как подстраховка на случай конфликта первых двух с начинкой подгружаемых карт - в этом смысле они не абсолютны).
Способ №1: http://forum.drdteam.org/viewtopic.php?t=2054 Способ №2: http://forum.drdteam.org/viewtopic.php?t=1202
Лично я опять склоняюсь к FSGLOBAL, но это очасти продиктовано спецификой некоторых пока нереализованных до конца задумок.
Shadowman: | TA_PE (этот вообще не читается в хве) |
И не должен, ибо это уже откомнилированный ACS скрипт; неоткомпилированный там лежит как комментарий, если угодно, Здум его не использует.
Shadowman: | (кстати, что означают +WEAPON.WIMPY_WEAPON и +WEAPON.MELEEWEAPON?), |
Сугубо оружейные флаги прилагаются отдельным списком, можно посмотреть здесь: http://www.zdoom.org/wiki/index.php?title=Classes:Weapon | |
|
3 |
1 |
|
|
| |
Shadowman UAC General
| 8391 |
Doom Rate: 2.08 Posts quality: +1995 |
Отправлено: 02.01.07 18:23:20 | | | Попробовал по первому способу - создал скрипт, откомпилил, вставил в вад (согласно инструкции). При запуске пишет: ACS: I don't know what MyFistX is // то есть не понимает нового оружия MyFistX пистолет и кулак пропали, но взамен ничего не появилось. Если же набрать idkfa то будет стандартный думовский набор. Что за фигня? | |
|
1 |
7 |
2 |
|
|
| |
Guest = 2nd Lieutenant =
| 1473 |
Doom Rate: 2.5 Posts quality: +182 |
Отправлено: 02.01.07 18:33:00 | | | Ну для начала привел бы текст твоего ACS, заочно тут ничего сказать нельзя. Да и декорейт текст тоже не помешал бы. | |
|
3 |
1 |
|
|
| |
Shadowman UAC General
| 8391 |
Doom Rate: 2.08 Posts quality: +1995 |
Отправлено: 02.01.07 18:44:12 | | | Тескт ACS: #library "IWEAP" #include "zcommon.acs"
Script 1 ENTER { If(Checkinventory("QuestItem1") < 1) { clearinventory(); giveinventory("MyFistX", 1); giveinventory("QuestItem1",1); setweapon("MyFistX"); } }
Script 2 RESPAWN { clearinventory(); giveinventory("MyFistX", 1); giveinventory("QuestItem1",1); setweapon("MyFistX"); }
Декорэйт-описание MyFistX: ACTOR MyFistX : Fist replaces Fist { Weapon.SelectionOrder 200 Inventory.PickupMessage "" Inventory.PickupSound "" weapon.upsound "" weapon.readysound "" Weapon.AmmoUse2 0 Weapon.AmmoUse 0 +FloatBob Scale 0.40 RenderStyle ADD Alpha 0.80 Weapon.Kickback 30 AttackSound "" States { Ready: PUNG A 1 A_WeaponReady LOOP Deselect: PUNG A 1 A_Lower LOOP Select: PUNG A 1 A_Raise LOOP Fire: PUNG B 4 PUNG C 4 A_PlaySound("weap/swing") PUNG D 5 A_CustomPunch(2,0,1,NONE,24) PUNG E 4 A_Refire Goto Ready } }
В KEYCONF настроен на слот 1. setslot 1 MyFistX | |
|
1 |
7 |
2 |
|
|
| |
Guest = 2nd Lieutenant =
| 1473 |
Doom Rate: 2.5 Posts quality: +182 |
Отправлено: 02.01.07 19:19:22 | | | Я честно воспроизвел и у меня работает. Может, у тебя старая версия порта (на страничке с описанием метода вначале указаны нужные версии)? ЗЫ: Версию АСС тоже проверь, все это довольно новая кухня. | |
|
3 |
1 |
|
|
| |
Shadowman UAC General
| 8391 |
Doom Rate: 2.08 Posts quality: +1995 |
Отправлено: 02.01.07 19:45:36 | | | У меня GZDoom 1.0.18, acc 1.37 (тот, что в Дум Билдере присутствует). Значит, в самом Декорэйте ошибок нет? Странно тогда...
PS. Обнаружил у себя acc 1.40 в одтельной папке. Надо будет проверить ее... | |
|
1 |
7 |
2 |
|
|
| |
Shadowman UAC General
| 8391 |
Doom Rate: 2.08 Posts quality: +1995 |
Отправлено: 02.01.07 20:19:39 | | | Блин, ну какой же я Это ж надо было - декорэйт, сндинфо и кейконф ставить после маркера SS_Start Переставил на место после закрывающего маркера SS_End и все заработало! | |
|
1 |
7 |
2 |
|
|
| |
Justice]ASTS[ Chief Petty Officer
| 890 |
Doom Rate: 1.24 Posts quality: +11 |
Отправлено: 02.01.07 20:32:54 | | | Во-во первым делом всё проверь! Не надо торопится при работе со скриптами и кодом.Из-за торопни ничего дельного не будет. | |
|
3 |
4 |
|
|
| |
Guest = 2nd Lieutenant =
| 1473 |
Doom Rate: 2.5 Posts quality: +182 |
Отправлено: 02.01.07 20:40:24 | | | Shadowman: | Блин, ну какой же я |
Осталось Keyconf правильно написать (если, конечно, ты его целиком привел). И для кулака (коль скоро ты все стейты полностью прописываешь) я бы написал проще:
не ACTOR MyFistX : Fist replaces Fist , а ACTOR MyFistX : weapon ибо ты ничего не замещаешь (replaces подразумевает полное замещение - типа если в консоли пишешь summon fist, чтоб при этом выпадал MyFistX) и ничего не "наследуешь" (ибо все стейты и свойства ты прописываешь заново; а так непротиворечивые прописанному флажки и свойства по умолчанию скопируются, мне кажется ты этого не подразумевал), так и не зачем усложнять ситуацию. | |
|
3 |
1 |
|
|
| |
Shadowman UAC General
| 8391 |
Doom Rate: 2.08 Posts quality: +1995 |
Отправлено: 02.01.07 21:02:52 | | | Guest Про наследование и замещение - спасибо, пояснил подробно. С оружием я еще буду работать (с самой его физикой), просто мне нужно было разобраться с главным - заменой оригинальных кулака и пистолета, теперь наконец-то разобрался. заодно хотел бы прояснить одну вещь. A_CustomPunch(2,0,1,NONE,24) Второй аргумент - булевая переменная norandom (на 0 - значит будет случайный урон? от 0 до 2 что ли?) Последний аргумент - range - зона досягаемости. В каких единицах она измеряется - в маппикселях?
ЗЫ. И еще - у некоторых вепонов есть номера, у некоторых нет. Номера нужны для подбираемых оружий, которые изначально не даются? | |
|
1 |
7 |
2 |
|
|
| |
Guest = 2nd Lieutenant =
| 1473 |
Doom Rate: 2.5 Posts quality: +182 |
Отправлено: 02.01.07 21:41:56 | | | Shadowman: | A_CustomPunch(2,0,1,NONE,24) |
Лучше у Кости спроси, я как правило нужного результата по причине лени добиваюсь эмпирическим путем , хотя, может и зря.
Shadowman: | И еще - у некоторых вепонов есть номера, у некоторых нет. Номера нужны для подбираемых оружий, которые изначально не даются? |
Ну, номера бывают разные. Есть spawnid - внутредумовская нумерация (которую можно юзать в консольных командах), а есть цифирьки, которые пишутся в строке наименования актора - это, грубо говоря, для ДумБильдера, Здуму он нафиг не сдался | |
|
3 |
1 |
|
|
| |
Const]ASTS[ = Sergeant Major =
| 601 |
Doom Rate: 6.91 Posts quality: +2 |
Отправлено: 02.01.07 22:05:03 | | | Guest: | Лучше у Кости спроси, я как правило нужного результата по причине лени добиваюсь эмпирическим путем |
Я немного отошел от дел. Source Insight до сих обратно не поставил. Так что можно считать я в равных условиях | |
|
| |
Shadowman UAC General
| 8391 |
Doom Rate: 2.08 Posts quality: +1995 |
Отправлено: 03.01.07 01:46:50 | | | Guest Я про цифирьки как раз что после Актора. Спаунид отдельно пишется - это я помню. Просто для кулака и пистолета цифирек нет, так как их в игре негде "взять" с пола
Costja: | Так что можно считать я в равных условиях |
Значит про лечащее оружие тоже ничего рассказать не сможешь? | |
|
1 |
7 |
2 |
|
|
| |
Const]ASTS[ = Sergeant Major =
| 601 |
Doom Rate: 6.91 Posts quality: +2 |
Отправлено: 03.01.07 02:02:10 | | | Нет, лишь что мне доступны те же источники информации. Некоторая инфа о zdoom до сих пор доступна только по исходнику, поэтому еще раз рекомендую поставить какой-нибудь браузер исходников + натравить его на исходник нужного zdoom/gzdoom.
Лечащее оружие вроде бы прекрасно делается при помощи отрицательного урона.
Насчет A_CustomPunch я похоже невнимательно прочитал сам пост, тут вроде и по докам все понятно: Первый параметр - наносимый ущерб Второй параметр - случайный ли наносится ущерб, если удается попасть. Случайность = damaga*random(1,8). 0 - случайный, не0 - неслучайный Третий параметр - использовать ли патроны. 0 - использовать, не0 - не использовать. Четвертый - имя класса паффа Пятый - дистанция, наверняка в мапюнитах | |
|
| |
Shadowman UAC General
| 8391 |
Doom Rate: 2.08 Posts quality: +1995 |
Отправлено: 03.01.07 15:44:19 | | | Вопрос по снарядам. Почему-то они у меня летят хрен знает куда... Вот кусок декорэйта оружия: FAMN K 4 A_CustomMissile("LightingBolt1",32,0,0,1) Далее описание снарядов: ACTOR LightingBolt1 { Speed 4 Damage 2 Radius 15 Height 15 Scale 0.6 PROJECTILE DONTHURTSHOOTER States { Spawn: BLT1 AB 4 Bright BLT1 A 4 A_CustomMissile("LightBolt1Explode",0,0,0) Stop Death: BLT1 CDEFG 4 Bright Stop } }
ACTOR LightBolt1Explode { RENDERSTYLE ADD ExplosionDamage 3 ExplosionRadius 32 Radius 15 Height 15 Speed 0 Scale 0.6 PROJECTILE +PUFFONACTORS +NOCLIP States { Spawn: BLT1 C 4 A_Explode BLT1 DEFG 4 Bright Stop } } Еще почему-то при попытке произвести альтернативную атаку - если нет патронов - игра вылетает (у меня обычная атака не требует патронов, альтернативная - требует). Как сделать проверку на наличие патронов для альт.атаки? В декорэйте указал: Weapon.ammotype2 "Clip" Weapon.ammouse1 0 Weapon.ammouse2 2 | |
|
1 |
7 |
2 |
|
|
| |
Guest = 2nd Lieutenant =
| 1473 |
Doom Rate: 2.5 Posts quality: +182 |
Отправлено: 03.01.07 18:17:23 | | | Готового решения навскидку нет - не мог бы нужный кусок вада залить, чтоб я мог повертеть в руках? | |
|
3 |
1 |
|
|
| |