Автор | Сообщение |
Shadowman = UAC Commissar =
 | 6603 |
Doom Rate: 2.46
|
Отправлено: 02.01.07 15:58:25 | | | Думаю, лучше, если вопросы по оружию будут в отдельной теме - иначе бардак выйдет.
Вопрос такой: как заменить кулак в Думе на свое оружие, чтобы давалось автоматически при старте игры.
Пишу в декорэйт:
ACTOR MyFistX : Weapon replaces Fist
далее пишу параметры оружия (кстати, что означают +WEAPON.WIMPY_WEAPON и +WEAPON.MELEEWEAPON?), все как полагается...
В KEYCONF настраиваю слот 1 на новое оружие:
setslot 1 MyFistX Chainsaw
загружаю игру - ничего не меняется как был кулак, так и остался
В чем дело? | |
|
1 |
6 |
2 |
 |
|
| |
Tomcat[DST] - Corporal -
 | 84 |
Doom Rate: 2.71
|
Отправлено: 02.01.07 16:08:08 | | | Хм... поковыряй True Action. Вдруг чего забыл? | |
|
| |
Shadowman = UAC Commissar =
 | 6603 |
Doom Rate: 2.46
|
Отправлено: 02.01.07 16:29:21 | | | True Action ковырял уже... неясно мне там назначение следующих лумпов:
LOADACS, ACS, TA_PE (этот вообще не читается в хве). Может там как-раз собака зарыта? | |
|
1 |
6 |
2 |
 |
|
| |
SubFrozen Recruit
 | 9 |
Doom Rate: 0.09
|
|
| |
Guest - 2nd Lieutenant -
 | 1356 |
 Doom Rate: 2.77
|
Отправлено: 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 Commissar =
 | 6603 |
Doom Rate: 2.46
|
Отправлено: 02.01.07 18:23:20 | | | Попробовал по первому способу - создал скрипт, откомпилил, вставил в вад (согласно инструкции).
При запуске пишет:
ACS: I don't know what MyFistX is // то есть не понимает нового оружия MyFistX
пистолет и кулак пропали, но взамен ничего не появилось. Если же набрать idkfa то будет стандартный думовский набор.
Что за фигня?  | |
|
1 |
6 |
2 |
 |
|
| |
Guest - 2nd Lieutenant -
 | 1356 |
 Doom Rate: 2.77
|
Отправлено: 02.01.07 18:33:00 | | | Ну для начала привел бы текст твоего ACS, заочно тут ничего сказать нельзя. Да и декорейт текст тоже не помешал бы. | |
|
3 |
1 |
 |
|
| |
Shadowman = UAC Commissar =
 | 6603 |
Doom Rate: 2.46
|
Отправлено: 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 |
6 |
2 |
 |
|
| |
Guest - 2nd Lieutenant -
 | 1356 |
 Doom Rate: 2.77
|
Отправлено: 02.01.07 19:19:22 | | | Я честно воспроизвел и у меня работает. Может, у тебя старая версия порта (на страничке с описанием метода вначале указаны нужные версии)?
ЗЫ: Версию АСС тоже проверь, все это довольно новая кухня. | |
|
3 |
1 |
 |
|
| |
Shadowman = UAC Commissar =
 | 6603 |
Doom Rate: 2.46
|
Отправлено: 02.01.07 19:45:36 | | | У меня GZDoom 1.0.18, acc 1.37 (тот, что в Дум Билдере присутствует).
Значит, в самом Декорэйте ошибок нет? Странно тогда...
PS. Обнаружил у себя acc 1.40 в одтельной папке. Надо будет проверить ее... | |
|
1 |
6 |
2 |
 |
|
| |
Shadowman = UAC Commissar =
 | 6603 |
Doom Rate: 2.46
|
Отправлено: 02.01.07 20:19:39 | | | Блин, ну какой же я
Это ж надо было - декорэйт, сндинфо и кейконф ставить после маркера SS_Start
Переставил на место после закрывающего маркера SS_End и все заработало! | |
|
1 |
6 |
2 |
 |
|
| |
Justice]ASTS[ = 1st Lieutenant =
 | 1938 |
Doom Rate: 1.2
|
Отправлено: 02.01.07 20:32:54 | | | Во-во первым делом всё проверь! Не надо торопится при работе со скриптами и кодом.Из-за торопни ничего дельного не будет. | |
|
3 |
4 |
 |
|
| |
Guest - 2nd Lieutenant -
 | 1356 |
 Doom Rate: 2.77
|
Отправлено: 02.01.07 20:40:24 | | | Shadowman : | Блин, ну какой же я |
Осталось Keyconf правильно написать (если, конечно, ты его целиком привел). И для кулака (коль скоро ты все стейты полностью прописываешь) я бы написал проще:
не ACTOR MyFistX : Fist replaces Fist , а ACTOR MyFistX : weapon ибо ты ничего не замещаешь (replaces подразумевает полное замещение - типа если в консоли пишешь summon fist, чтоб при этом выпадал MyFistX) и ничего не "наследуешь" (ибо все стейты и свойства ты прописываешь заново; а так непротиворечивые прописанному флажки и свойства по умолчанию скопируются, мне кажется ты этого не подразумевал), так и не зачем усложнять ситуацию. | |
|
3 |
1 |
 |
|
| |
Shadowman = UAC Commissar =
 | 6603 |
Doom Rate: 2.46
|
Отправлено: 02.01.07 21:02:52 | | | Guest
Про наследование и замещение - спасибо, пояснил подробно.
С оружием я еще буду работать (с самой его физикой), просто мне нужно было разобраться с главным - заменой оригинальных кулака и пистолета, теперь наконец-то разобрался.
заодно хотел бы прояснить одну вещь.
A_CustomPunch(2,0,1,NONE,24)
Второй аргумент - булевая переменная norandom (на 0 - значит будет случайный урон? от 0 до 2 что ли?)
Последний аргумент - range - зона досягаемости. В каких единицах она измеряется - в маппикселях?
ЗЫ. И еще - у некоторых вепонов есть номера, у некоторых нет. Номера нужны для подбираемых оружий, которые изначально не даются? | |
|
1 |
6 |
2 |
 |
|
| |
Guest - 2nd Lieutenant -
 | 1356 |
 Doom Rate: 2.77
|
Отправлено: 02.01.07 21:41:56 | | | Shadowman : | A_CustomPunch(2,0,1,NONE,24) |
Лучше у Кости спроси, я как правило нужного результата по причине лени добиваюсь эмпирическим путем , хотя, может и зря.
Shadowman : | И еще - у некоторых вепонов есть номера, у некоторых нет. Номера нужны для подбираемых оружий, которые изначально не даются? |
Ну, номера бывают разные. Есть spawnid - внутредумовская нумерация (которую можно юзать в консольных командах), а есть цифирьки, которые пишутся в строке наименования актора - это, грубо говоря, для ДумБильдера, Здуму он нафиг не сдался  | |
|
3 |
1 |
 |
|
| |
Const]ASTS[ - Lance Corporal -
 | 148 |
Doom Rate: 1.7
|
Отправлено: 02.01.07 22:05:03 | | | Guest : | Лучше у Кости спроси, я как правило нужного результата по причине лени добиваюсь эмпирическим путем |
Я немного отошел от дел. Source Insight до сих обратно не поставил. Так что можно считать я в равных условиях | |
|
| |
Shadowman = UAC Commissar =
 | 6603 |
Doom Rate: 2.46
|
Отправлено: 03.01.07 01:46:50 | | | Guest
Я про цифирьки как раз что после Актора. Спаунид отдельно пишется - это я помню.
Просто для кулака и пистолета цифирек нет, так как их в игре негде "взять" с пола
Costja : | Так что можно считать я в равных условиях |
Значит про лечащее оружие тоже ничего рассказать не сможешь? | |
|
1 |
6 |
2 |
 |
|
| |
Const]ASTS[ - Lance Corporal -
 | 148 |
Doom Rate: 1.7
|
Отправлено: 03.01.07 02:02:10 | | | Нет, лишь что мне доступны те же источники информации. Некоторая инфа о zdoom до сих пор доступна только по исходнику, поэтому еще раз рекомендую поставить какой-нибудь браузер исходников + натравить его на исходник нужного zdoom/gzdoom.
Лечащее оружие вроде бы прекрасно делается при помощи отрицательного урона.
Насчет A_CustomPunch я похоже невнимательно прочитал сам пост, тут вроде и по докам все понятно:
Первый параметр - наносимый ущерб
Второй параметр - случайный ли наносится ущерб, если удается попасть. Случайность = damaga*random(1,8). 0 - случайный, не0 - неслучайный
Третий параметр - использовать ли патроны. 0 - использовать, не0 - не использовать.
Четвертый - имя класса паффа
Пятый - дистанция, наверняка в мапюнитах | |
|
| |
Shadowman = UAC Commissar =
 | 6603 |
Doom Rate: 2.46
|
Отправлено: 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 |
6 |
2 |
 |
|
| |
Guest - 2nd Lieutenant -
 | 1356 |
 Doom Rate: 2.77
|
Отправлено: 03.01.07 18:17:23 | | | Готового решения навскидку нет - не мог бы нужный кусок вада залить, чтоб я мог повертеть в руках? | |
|
3 |
1 |
 |
|
| |