Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Тема для новичков. Вопросы по маппингу/моддингу - любые! Пред.  1, 2, 3 ... 148, 149, 150 ... 350, 351, 352  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!Ответить
АвторСообщение
ZZYZX
UAC Sergeant Major
Next rank: Chief Petty Officer after 29 points
821

Doom Rate: 1.38
Ссылка на пост №2961 Отправлено: 24.12.11 14:24:01
Я думаю, это можно сделать следующим образом: подымание "аптечки" даёт 100 итемов XMedikit, к примеру. При использовании любого из них считается кол-во итемов в инвентаре, кол-во хелсов у игрока, если последних меньше 100, забрать <100> итемов XMedikit из пака и добавить то же кол-во хелсов игроку.
1
LEX SAFONOV
UAC Sergeant Major
Next rank: UAC Sergeant Major after 75 points
685

Doom Rate: 1.49
Ссылка на пост №2962 Отправлено: 24.12.11 15:42:40
Не, это не то. Я как то думал использовать подобный принцип, но это не то совершенно. В дюке медикит действует совершенно по иному принципу, при его использовании вычисляется сколько жизней у игрока и потом это кол-во вычитается у итема.
DOOMadept
Marine
Next rank: Marine 1st class after 4 points
26

Doom Rate: 0.93
Ссылка на пост №2963 Отправлено: 24.12.11 16:49:04
А вот и йа.
Пытался делать раздвижные двери. Скачал вад-пример, прочитал инструкцию, попытался все сделать как вроде бы мне показалось правильно.
Когда сделал выяснил, что это не так. Открываю вад, тыкаюсь в кнопку - нифига. Переставляю кнопку на дверь - нифига. Все стираю, переделываю. Запускаю оно мне заявляет типа 0-й не существует.
Ладно, открываю карту, делаю этот 0-й нажимаю сохранить и оп - все висит. На табличке только написано 2 слова на нерусском языке Building nodes... и так я оставлял ком на час так ничего и не произошло.
Это руки-крюки или чего другое?
LEX SAFONOV
UAC Sergeant Major
Next rank: UAC Sergeant Major after 75 points
685

Doom Rate: 1.49
Ссылка на пост №2964 Отправлено: 24.12.11 17:19:55
народ, никто не знает где можно надыбать конвертер карт с build игр в дум?(Если таковой вообще есть на свете)
YURA_111
UAC Sergeant Major
Next rank: UAC Sergeant Major after 24 points
736

Doom Rate: 2.17
Ссылка на пост №2965 Отправлено: 24.12.11 23:39:22
1) Помогите разобраться с синтаксисом. Вот есть функция A_SpawnItemEx (http://zdoom.org/wiki/A_SpawnItemEx) - я ее собираюсь использовать полностью все параметры КРОМЕ параметра FLAGS - и понятно что можно его просто не писать было бы - но мне нужен еще один параметр который идет после него. А что же прописать на месте FLAGS если я не хочу ничего ставить (может просто цифру 0 ?) - в инструкции не написано :(


2) Можно ли сделать монстра который был бы агрессивен как к игроку, так и к монстрам одновременно (т.е. не придерживался чьей то стороны). Конечно я понимаю что можно использовать A_jump совместно с A_ChangeFlag таким образом создавать эмуляцию его нейтрального поведения путем отключения\включения влага Friendly - но это не совсем то...
VladGuardian
= Major =
Next rank: Lieutenant Colonel after 196 points
3094

Doom Rate: 1.17
Ссылка на пост №2966 Отправлено: 24.12.11 23:51:05
zdoom wiki :
The following flags can be combined by using the | character between the constant names

Эта штука уже подразумевает, чтобы не указывать никаких опций, надо поставить просто 0.
1 7 13
YURA_111
UAC Sergeant Major
Next rank: UAC Sergeant Major after 24 points
736

Doom Rate: 2.17
Ссылка на пост №2967 Отправлено: 25.12.11 03:01:37
VladGuardian :
Эта штука уже подразумевает, чтобы не указывать никаких опций, надо поставить просто 0.


Видимо и вы и я ошибаемся - почему же тогда в функции A_Teleport я проставляю вместо флага TF_Telefrag - цифру 0, а функция все равно работает как будто этот флаг включен ?
(http://zdoom.org/wiki/A_Teleport)
ведь там тоже описано:
flags: The following flags can be combined by using the | character between the constant names: - хотя я и не понимаю причем тут это и к чему вы это упомянули... Если я не ошибаюсь, то эта штука (как вы её назвали) показывает только что можно перечислять флаги разделяя их вот этим | символом...
VladGuardian
= Major =
Next rank: Lieutenant Colonel after 196 points
3094

Doom Rate: 1.17
Ссылка на пост №2968 Отправлено: 25.12.11 04:13:29
YURA_111 :
хотя я и не понимаю причем тут это и к чему вы это упомянули

Ну правильно, по канонам языка C/C++ этот значок означает, что разные константы (т.е. фактически разные сочетания единичек) можно объединить в единую сущность через логическую операцию OR (|), уникальность которой в том, что нули "0" не портят при записи единицы "1", зато единицы спокойно перезаписывают нули... (Капитан Очевидность отакует не по-детски, да)

Т.е. если читать ГЗдумовскую документацию "между строк", то если туда НИЧЕГО не подставить, то все флаги будут сброшены (не установлены / неактивны), что нам как раз и нужно. И я честно говоря не могу понять, отчего "0" именно здесь не прокатывает...

Может, пойти от обратного и тупо подставить туда значение "-1"?
В двоичной записи "-1" выглядит как все биты включены: "11111111" (для 8-битного целого, например).
YURA_111 :
я собираюсь использовать полностью все параметры КРОМЕ параметра FLAGS

Другой путь - попробовать найти вот эти самые константы (SXF_TRANSFERTRANSLATION, SXF_ABSOLUTEPOSITION, ......), где они объявляются?
Я не нашел таких подстрок ни в файлах папки Билдера, ни в файлах папки GZDoom :hmm: фантастика какая-то...
Так вот, если найдешь, поищи там возможно (слабая надежда есть) есть константа, ответственная за СБРОС ВСЕГО (что-то на манер SXF_NOFLAGS, или SXF_IGNOREFLAGS - это я фантазирую).
Ну и на крайняк если совсем полная труба будет - написать разрабам гневное письмо! или на форуме ZDoom спросить.
YURA_111 :
(http://zdoom.org/wiki/A_SpawnItemEx)

Чтобы ссылки работали, надо отделять их от скобок пробелами:
( http://zdoom.org/wiki/A_SpawnItemEx )
Скрытый текст:

И давай на "ты", а то аж мурашки по коже... :)

1 7 13
YURA_111
UAC Sergeant Major
Next rank: UAC Sergeant Major after 24 points
736

Doom Rate: 2.17
Ссылка на пост №2969 Отправлено: 25.12.11 07:07:29
VladGuardian :
И давай на "ты", а то аж мурашки по коже...


Договорились.

VladGuardian :
Чтобы ссылки работали, надо отделять их от скобок пробелами:

Извиняюсь - что то я тормознул...

По теме:
Все что ты описал это про A_SpawnItemEx который меня сейчас меньше волнует и к которому может действительно подходит подставка цифры 0 вместо флага. Меня сейчас больше интересует A_Teleport - хоть я конечно понимаю что там должны быть те же правила к флагам, все же названия тамошних флагов отличаются и возможно есть БАГИ которые разработчики не учли. Ноль там не прокатывает. И там всего 2 Флага - TF_TELEFRAG и TF_RANDOMDECIDE...

Про "0" на A_SpawnItemEx я еще не пробовал - т.к. частенько обхожусь вот этим когда нужно что то поставить - SXF_NOCHECKPOSITION - он мне сильно не мешает, поэтому вопрос сильно не стоит, но вот с A_Teleport просто беда... :(
ZZYZX
UAC Sergeant Major
Next rank: Chief Petty Officer after 29 points
821

Doom Rate: 1.38
Ссылка на пост №2970 Отправлено: 25.12.11 08:39:13
ZZYZX[B0S] :
Я думаю, это можно сделать следующим образом: подымание "аптечки" даёт 100 итемов XMedikit, к примеру. При использовании любого из них считается кол-во итемов в инвентаре, кол-во хелсов у игрока, если последних меньше 100, забрать <100> итемов XMedikit из пака и добавить то же кол-во хелсов игроку.
LEX SAFONOV :
Не, это не то. Я как то думал использовать подобный принцип, но это не то совершенно. В дюке медикит действует совершенно по иному принципу, при его использовании вычисляется сколько жизней у игрока и потом это кол-во вычитается у итема.

Ты чего-то не понял. Я этого тоже не понял. Что произошло с моим постом? Кто над ним надругался, или это движок phpBB2? Там было написано не <100>, а
ZZYZX[B0S] :
100-текущие хелсы


Добавлено спустя 27 минут 8 секунд:

Скорее всего телепортация без телефрага невозможна и/или не предусмотрена, а флаг оставлен по недосмотру и/или с рассчетом на последующие версии. Поэтому твой пример с A_Teleport инвалиден... В большинстве случаев сказанное Владом является чистейшей правдой.

По поводу нейтрального монстра.

Spawn:
SPRT AB 6 A_Look
TNT1 A 0 A_ChangeFlag("FRIENDLY", 1)
SPRT CD 6 A_Look
TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)
loop
1
YURA_111
UAC Sergeant Major
Next rank: UAC Sergeant Major after 24 points
736

Doom Rate: 2.17
Ссылка на пост №2971 Отправлено: 25.12.11 16:43:53
ZZYZX[B0S] :
Поэтому твой пример с A_Teleport инвалиден...

Это не пример - это то что я сейчас использую, и конкретно спрашиваю про A_Teleport - в чем Invalid ?. В своем первом вопросе я назвал A_SpawnItemEx только потому что считал что это больше пользователей знает чем тот же A_Teleport + мне A_SpawnItemEx тоже нужен конечно...


ZZYZX[B0S] :
По поводу нейтрального монстра.


Ну я же писал сам в своем вопросе - что такой код это не то... Если не трудно прочитай внимательно - я и сам упоминал это чтобы никто такого не предлагал.
LEX SAFONOV
UAC Sergeant Major
Next rank: UAC Sergeant Major after 75 points
685

Doom Rate: 1.49
Ссылка на пост №2972 Отправлено: 25.12.11 19:20:12
Где то слышал, если сделать у монстра ТИД отличный от остальных, то он будет сам по себе(вроде как раз нейтральный).
Jurijus
- Master Sergeant -
Next rank: = Master Sergeant = after 24 points
436

Doom Rate: 0.16
Ссылка на пост №2973 Отправлено: 26.12.11 04:14:09
Страйфовские крестьяне не могут нанести урона никому. Но при этом технически они враждебны игроку. Мне всегда было интересно почему так, даже учитывая что в коде есть атака кулаком, жрущая хиты.
Я как-то пытался сделать такого монстра, но кончилось все тем что при присутствии пятерых на карте ЦП загружался почти полностью. Поэтому прежде всего нужно думать о производительности. В таком случае A_Jump'ы неприемлемы, но другого способа осуществить монстра, атакующего обе стороны, нет.
Однако, есть способ создать монстра, который не атакует никого и сохраняет нейтралитет. Ему нужно не назначать стейт атаки как Melee или Missile. Вместо этого следует назначить PainChance 255 и в конце стейта боли вставить прыжок на стейт атаки (имя стейта атаки не должно быть Melee/Missile, я это уже говорил). Тогда монстр будет нейтрален до атаки против него. Если же кто-нибудь его атакует, он нанесет ответный удар, прописанный в стейте, на который ссылается команда в конце стейта боли.
ZZYZX
UAC Sergeant Major
Next rank: Chief Petty Officer after 29 points
821

Doom Rate: 1.38
Ссылка на пост №2974 Отправлено: 26.12.11 07:31:24
YURA_111 :
Это не пример - это то что я сейчас использую, и конкретно спрашиваю про A_Teleport - в чем Invalid ?. В своем первом вопросе я назвал A_SpawnItemEx только потому что считал что это больше пользователей знает чем тот же A_Teleport + мне A_SpawnItemEx тоже нужен конечно...

Инвалидность в том, что флаги работают по разному и багнутость A_Teleport не повод сомневаться в его словах по поводу "0 = флаги не установлены".

С A_SpawnItemEx все работает как надо.

YURA_111 :
Ну я же писал сам в своем вопросе - что такой код это не то... Если не трудно прочитай внимательно - я и сам упоминал это чтобы никто такого не предлагал.

Я прочитал. Тебе надо, чтобы монстр нападал и на тех, и на других, или чтобы он ни на кого не нападал до нанесения ему урона? Если второе, тогда это делается примерно так:


actor NeutralImp : DoomImp
{
   PainChance 255

   var int u_attacking;
   
   States   
   {
      Spawn:
         TNT1 A 0 A_SetUserVar("u_attacking", 0)
         TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)
         TROO AB 10 A_Look
         loop

      Pain:
         TNT1 A 0 A_JumpIfInTargetInventory("Pistol", 1, "AttackPlayer")

      AttackMonster:
         TNT1 A 0 A_ChangeFlag("FRIENDLY", 1)
         TNT1 A 0 A_Jump(128, "Missile")
         fail // go to previous state? untested

      AttackPlayer:
         TNT1 A 0 A_ChangeFlag("FRIENDLY", 0)
         TNT1 A 0 A_Jump(128, "Missile")
         fail

      Missile:
         TNT1 A 0 A_JumpIf(!u_attacking, "See") // stop attack if "no target"
         goto Super::Missile
   }
}


Суть примерно та же, что и в предыдущем посте, но с той разницей, что если у него монстр только один раз ударит цель, то в приведенном примере он будет её иметь, пока не сдохнет (монстр или его цель). Как только цель сдыхает, монстр всегда переходит на стейт Spawn, где ему отрубается "атака", после чего он дальше бродит по карте. A_Jump в стейте боли нужен для того, чтобы имитировать PainChance 128 (в противном случае при стрельбе из пулемета монстр будет залочен в этом самом стейте боли). Писал в блокноте, не тестил.

LEX SAFONOV :
Где то слышал, если сделать у монстра ТИД отличный от остальных, то он будет сам по себе(вроде как раз нейтральный).

А это бред, надавай сказавшему это тебе по морде за дезинформацию :ha:
1
Ameba
- Major -
Next rank: = Major = after 103 points
2837

Doom Rate: 2.32
Ссылка на пост №2975 Отправлено: 26.12.11 09:51:18
FLYBAT :
Мне всегда было интересно почему так, даже учитывая что в коде есть атака кулаком, жрущая хиты.

A_Wander - волшебная функция. Удар кулаком у крестьян - не атака, а формально стейт боли, так же как и у нищих оттуда же.
2 1 1
c4tnt
= 1st Lieutenant =
Next rank: - Captain - after 211 points
1879

Doom Rate: 1.92
Ссылка на пост №2976 Отправлено: 26.12.11 12:27:56

Где то слышал, если сделать у монстра ТИД отличный от остальных, то он будет сам по себе(вроде как раз нейтральный).


Это скорее для Doom III :o

А вообще действительно интересно, можно ли сделать монстра, атакующего всех. Особенно в DM скуллтага, а то переносная турель в стандартной сборке прекрасно атакует монстров, но игроков-мастеров не трогает. Пока что подумываю о том чтобы в отдельном скрипте проверять наличие мастеров около турели и при их наличии перенаправлять таргет турели на них.
1 1
YURA_111
UAC Sergeant Major
Next rank: UAC Sergeant Major after 24 points
736

Doom Rate: 2.17
Ссылка на пост №2977 Отправлено: 26.12.11 18:20:55
ZZYZX[B0S] :
Тебе надо, чтобы монстр нападал и на тех, и на других,


Именно это нужно...

Вариант который ты описал не подходит (но учту). Я планирую (если здесь не помогут) делать при помощи A_JumpIfCloser. Монстр видит игрока и если тот не дальше, например, расстояния в 512, то монстр атакует игрока, если же игрок дальше 512 - то кидается (ищет) другого монстра...


Я видимо не правильно выразился - монстр не просто должен быть нейтрален - он именно должен быть агрессивен ко всем - не важно игрок это или другой монстр (хочу сообразить "Чужого" которому пофиг кого жрать ).
HellDoomer 666
- Master Sergeant -
Next rank: = Master Sergeant = after 34 points
426

Doom Rate: 1.6
Ссылка на пост №2978 Отправлено: 26.12.11 19:35:55
Боюсь спросить, но может кто поможет справиться с задачей.

Вот код декорейта:

Actor Fuel : Ammo 10001
{
Inventory.PickupMessage "You pick up Fuel for ChainSaw"
Inventory.Icon "FUEL"
Inventory.Amount 50
Inventory.MaxAmount 100
Ammo.BackpackAmount 0
Ammo.BackpackMaxAmount 800

States
{
Spawn:
BAH A -1
Stop
}
}

Есть спрайт с названием "FUEL" для бензопилы.

Так вот в чём ошибка: при тестинге на уровне вместо нужного изображения спрайта стоит восклицательный знак. Где и что нужно подправить,чтобы этого знака не было, а был спрайт "FUEL" ?
YURA_111
UAC Sergeant Major
Next rank: UAC Sergeant Major after 24 points
736

Doom Rate: 2.17
Ссылка на пост №2979 Отправлено: 26.12.11 19:43:57
В коде декорейта у названия спрайта должно быть 4 символа !

поставь например так BAH1 A -1


Соответственно сам спрайт должен обзываться BAH1A0
Nil
= Major =
Next rank: Lieutenant Colonel after 312 points
2978

Doom Rate: 2.34
Ссылка на пост №2980 Отправлено: 26.12.11 19:44:28
Прочитай-ка это
http://zdoom.org/wiki/DECORATE
Узнаешь может быть, что куда надо писать, чтобы что-нибудь получалось.
В добавление, узнай значение таких слов как icon, Inventory на этом сайте
http://translate.google.com/?hl=ru
Я считаю, что этот совет лучше, чем просто сказать где ошибка в твоём тексе, потому что тут проблема не в опечатке, а в непонимании сути вещей и попытке сделать что-нибудь при помощи бессмысленных манипуляций, не понимая, что и зачем надо делать.
1 2 1
Страница 149 из 352Перейти наверх Пред.  1, 2, 3 ... 148, 149, 150 ... 350, 351, 352  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!