Автор | Сообщение |
SAM = Master Corporal =
 | 276 |
 Doom Rate: 1.78
|
Отправлено: 02.05.15 19:04:53 | | | Всем привет есть вопрос на счет параметра "A_SpawnItemEx" какие параметры он несет в себе и что они значат, хочу применить для ракетницы чтобы кидала бочки на уровни идею взял из HL2 c SMOD там есть ракетница которая может кидать бочки и д.р предметы (смотря что поглотить альт. огнем) но столкнулся с не задачей оружие не тратит патронов и возможно сделать так чтобы бочка ранила монстров когда врезается в них? типа своим весом. | |
|
| |
sanek_47 Marine 1st class
 | 30 |
 Doom Rate: 2
|
Отправлено: 02.05.15 21:54:31 | | | Можно ли сделать, чтобы спрайт объекта смотрел всегда в одну сторону, а не поворачивался лицом к игроку? | |
|
| |
alekv = 2nd Lieutenant =
 | 1456 |
 Doom Rate: 1.68
|
Отправлено: 02.05.15 23:12:54 | | | SAM : | Всем привет есть вопрос на счет параметра "A_SpawnItemEx" какие параметры он несет в себе и что они значат |
A_SpawnItemEx и Action_function
В последней ссылке описание большинства функци. Если не можешь прочитать на англ. вот пояснение..
A_SpawnItemEx ("имя актора", Х координата, Y координата, Z координата, сила движения по X, сила движения по Y, сила движения по Z, угл, ФЛАЖКИ, Шанс что итем заспавнится, TID актора который получит при спавне)
Как это примерно выглядит:
Actor Barrel
{
States
{
Spawn:
MEDI A -1
Stop
}
//Примерно так можно прописать в Decorate оружия
Fire:
TNT1 A 0 A_JumpIfInventory("AmmoName",1,"Fire_On") //если в инвентаре есть хотя бы 1 патрон AmmoName прыгнет на стейт Fire_On..
TNT1 A 1 A_Print("No AmmoName!") //Если патрона нет, напечатает эти строки.
Goto Ready
Fire_On:
TNT1 B 0 A_PlaySound("") //Играет звук
TNT1 B 0 A_TakeInventory("AmmoName",1) //Забирает 1 патрон AmmoName
TNT1 BCDE 8
TNT1 F 1 A_SpawnItemEx("Barrel",0,0,25,15,0,0) //Спавнит Barrel на высоте 25мап. юнит, и летит по X координате с силой 15 чего-то там.
TNT1 GHIJ 8 A_AlertMonsters //Будим монстров
Goto Ready
Не большое примечание.. Не факт что бочка полетит по Х координате т.к. у гоззы(покрайней мере 2х) X и Y как мне кажется перепутан в функции A_SpawnItemEx.
В качестве патронов можешь прописать актора отдельно, тоесть:
Actor AmmoName : Inventory //или можно Ammo кому как удобнее наверное..
{//$Category Ammo
Inventory.MaxAmount 200
Inventory.Amount 20
+ALWAYSPICKUP
States
{
Spawn:
TNT1 A -1
Stop
}
}
Что бы бочка взрывалась, она должна быть прожектайлом. По сути ты будешь спавнить прожектайл, может удобнее было бы юзать A_ThrowGrenade вместо A_SpawnItemEx.
Как поглощать думаю придумал?  | |
|
| |
SAM = Master Corporal =
 | 276 |
 Doom Rate: 1.78
|
Отправлено: 03.05.15 09:31:19 | | | alekv
Благодарю за помощь, помог разобраться в большем чем я ожидал
| Как поглощать думаю придумал? |
не знаю может в гоззе это возможно даже если это так то я решил не заморачиваться, легче сделать пару отдельных ракетниц кидающихся каждая своим предметом чем мудрить одну с функцией "выбора предмета с последующим его спавном" да и в думе особо нечего кидать кроме бочек да снарядов.
sanek_47 : | Можно ли сделать, чтобы спрайт объекта смотрел всегда в одну сторону, а не поворачивался лицом к игроку? |
по идеи можно, ты имеешь ввиду что то вроде псевдо3д объект тогда ему нужны спрайты вида с боков с угла (слева, справа) задний вид. Я видел в моде "aeod" есть такой скелет с луком его труп не вертится за игроком сам он 2д но когда его обходишь меняет кадры. | |
|
| |
alekv = 2nd Lieutenant =
 | 1456 |
 Doom Rate: 1.68
|
Отправлено: 03.05.15 13:30:00 | | | SAM : | Благодарю за помощь, помог разобраться в большем чем я ожидал |
Не за что, если чего не понял спрашивай.
SAM : | не знаю может в гоззе это возможно даже если это так то я решил не заморачиваться, легче сделать пару отдельных ракетниц кидающихся каждая своим предметом чем мудрить одну с функцией "выбора предмета с последующим его спавном" да и в думе особо нечего кидать кроме бочек да снарядов. |
Есть такой мини мод Gravity или как-то так, в нем переделан простой пистолет под гравиган, там можно притягивать объекты и бросать в монстра нанося ему урон, в общем тебе бы не помешало на него взглянуть, только ссылку дать не могу, сам не помню где видел, но тут кто-то да знает. | |
|
| |
sanek_47 Marine 1st class
 | 30 |
 Doom Rate: 2
|
Отправлено: 03.05.15 15:54:07 | | | SAM : | по идеи можно, ты имеешь ввиду что то вроде псевдо3д объект тогда ему нужны спрайты вида с боков с угла (слева, справа) задний вид. Я видел в моде "aeod" есть такой скелет с луком его труп не вертится за игроком сам он 2д но когда его обходишь меняет кадры. |
К примеру у меня на уровне много объектов, стоящих у стены, например телевизор. При повороте камеры он тоже поворачивается и половина спрайта врезается в стену. Т.е. я хочу сделать что-то вроде плоской картонной декорации. Сделать псевдо3д конечно тоже можно, но таких объектов у меня очень много и рисовать кучу дополнительный спрайтов для каждого как-то не хочется. | |
|
| |
alekv = 2nd Lieutenant =
 | 1456 |
 Doom Rate: 1.68
|
Отправлено: 03.05.15 17:14:13 | | | sanek_47 : | Можно ли сделать, чтобы спрайт объекта смотрел всегда в одну сторону, а не поворачивался лицом к игроку? |
Увы, нельзя.. можно 3д модель(смотря какой порт) или простую линию на которую вешаешь свою текстуру имитируя спрайт(Для телевизора могло бы подойти), ну и сделать тот же телевизор из обычного пола, как зачастую и делали раньше. | |
|
| |
sanek_47 Marine 1st class
 | 30 |
 Doom Rate: 2
|
Отправлено: 03.05.15 18:31:31 | | | alekv
С линией неплохой вариант, попробую. | |
|
| |
SAM = Master Corporal =
 | 276 |
 Doom Rate: 1.78
|
Отправлено: 03.05.15 21:01:57 | | | alekv : | Не за что, если чего не понял спрашивай. |
извини за приставучисть но тут еще есть проблема гозза выкидывает ошибку "Expected ',', got '('." когда в этом параметре ввожу рандом A_SpawnItem(random("minibarels",0),0,0) чтобы периодически (не всегда) из взорванных бочек оставались минибочки к моему "бочкомету"
droopitem не работает на бочках почему то( | |
|
| |
alekv = 2nd Lieutenant =
 | 1456 |
 Doom Rate: 1.68
|
Отправлено: 03.05.15 22:22:51 | | | SAM : | извини за приставучисть но тут еще есть проблема гозза выкидывает ошибку "Expected ',', got '('." когда в этом параметре ввожу рандом A_SpawnItem(random("minibarels",0),0,0) чтобы периодически (не всегда) из взорванных бочек оставались минибочки к моему "бочкомету" |
Мне наоборот интересно ответить
Как я думаю Random в A_SpawnItemEx не работает т.к. все что в кавычках "" распознается как текст оно же str, а рендом работает с числами видать... В acs можно объявить в массиве кучу разных str, а потом юзать в рендоме, но это геморно по моему и можно сделать на пример так:
Death:
TNT1 A 1
TNT1 A 1 A_SpawnItemEx("миниБочка",0,0,0,0,0,0,0,0,111)
Stop
Там где 111 это шанс от 0 до 256 что итем заспавнится:
zdoom.org/wiki : | chance: This is the chance (out of 255) that the actor has of not spawning. If this is 0 or omitted, the actor will always spawn. If it is 255, it will never spawn. |
По идее как только бочка перейдет в стейт смерти она с шансом 111 заспавнит минибочку.
А по поводу DropItem, то это надо прописывать примерно так :
Actor xxx
{
DropItem "МиниБочка" 255
States
{
...
}
Тоесть до объявления стейтов. Я вообще dropItem почти не пользуюсь, мне проще через death дропать итемы.. потому мог чего-то забыть.
zdoom.org/wiki : | DropItem classname [, probability [, amount]]
Drops an item of type classname when dying. Optionally the probability can be specified. A probability of 255 means the item is always dropped, a probability of 0 means it is never dropped. When classname is None the drop list will be completely removed.
amount is only applicable for ammuniton. It specifies how much single rounds the dropped item contains.
RandomSpawner, BossEye, SpawnShot, Weapon and Skulltag's CustomMonsterInvasionSpot and CustomPickupInvasionSpot use this property differently.
There can be more than one dropitem definitions for an actor. The amount of definitions per actor is unlimited.
dropitem works differently with inherited actors. An actor can inherit a list of dropitem definitions from its parent but if it defines one of its own the entire parent's list is discarded. This parameter does not work for players. |
| |
|
| |
LEX SAFONOV UAC Sergeant Major
 | 685 |
 Doom Rate: 1.49
|
Отправлено: 04.05.15 15:30:01 | | | SAM : | извини за приставучисть но тут еще есть проблема гозза выкидывает ошибку "Expected ',', got '('." когда в этом параметре ввожу рандом A_SpawnItem(random("minibarels",0),0,0) чтобы периодически (не всегда) из взорванных бочек оставались минибочки к моему "бочкомету" |
Ясен пень ошибку выдаст - компилятор прямо и ясно говорит, что в коде опечатка. Присылай код сюда | |
|
| |
ZZYZX UAC Sergeant Major
 | 821 |
 Doom Rate: 1.38
|
Отправлено: 04.05.15 15:36:46 | | | | A_SpawnItem(random("minibarels",0),0,0) |
Это чё?
Ты как-то странно используешь random(). | |
|
| |
SAM = Master Corporal =
 | 276 |
 Doom Rate: 1.78
|
Отправлено: 04.05.15 17:06:00 | | | alekv
спасибо
LEX SAFONOV : | Ясен пень ошибку выдаст - компилятор прямо и ясно говорит, что в коде опечатка. Присылай код сюда |
вот он и есть тот самый код A_SpawnItem(random("minibarels",0),0,0) используется в стейте смерти бочки
ZZYZX : | Это чё? Ты как-то странно используешь random(). |
брал пример в aeoddat и повторил его. думаю alekv прав скорее всего random работает только с числами.
ладно буду искать решения своих не задач путем испытаний, опытов, проб и ошибок, может на химичу чего) | |
|
| |
alekv = 2nd Lieutenant =
 | 1456 |
 Doom Rate: 1.68
|
Отправлено: 04.05.15 20:47:19 | | | SAM
Ты хоть напиши работает, нет
SAM : | брал пример в aeoddat и повторил его. думаю alekv прав скорее всего random работает только с числами. |
Я не уверен на 100% т.к. сам лично не проверял, но random не должен на прямую работать с текстом т.к. текст изначально равен 0( или 1 уже забыл, но не суть)
и когда ты пытаешься прописать Random("А","Б"), то А = 0 и Б = 0, а в random надо писать mix, max они получается оба равны 0.
Если не сложно можешь скинуть тут код с aeoddat, просто интересно взглянуть...
SAM : | ладно буду искать решения своих не задач путем испытаний, опытов, проб и ошибок, может на химичу чего) |
Смотри, лучше лишний раз спросить, чем в пустую тратить время на освоение знаний которые спросив можно усвоить куда быстрее . | |
|
| |
YURA_111 UAC Sergeant Major
 | 736 |
 Doom Rate: 2.17
|
Отправлено: 04.05.15 20:54:55 | | | SAM
Для того чтобы в Spawnitemex сработал рандом, создай отдельный актор который будет ссылаться на RandomSpawner
ACTOR BarrelSpawner : RandomSpawner
{
DropItem "Nothing" 255 10
DropItem "SuperBarrel" 255 1
DropItem "MegaBarrel" 255 1
DropItem "MiniBarrel" 255 1
DropItem "Microbarrel" 255 1
}
Вот здесь подробнее ( http://zdoom.org/wiki/Classes:RandomSpawner )
И потом этот BarrelSpawner уже суй в A_SpawnItemEx ("BarrelSpawner"... ) | |
|
| |
SAM = Master Corporal =
 | 276 |
 Doom Rate: 1.78
|
Отправлено: 05.05.15 18:43:59 | | | alekv : | Если не сложно можешь скинуть тут код с aeoddat, просто интересно взглянуть... |
конкретно тот я уже не найду но вот такой же "A_SpawnItemEx("SkullRodBallExploSparkRed",random(4,-4),random(4,-4),random(4,-4),0,0,0,0,33)"
YURA_111 : | Для того чтобы в Spawnitemex сработал рандом, создай отдельный актор который будет ссылаться на RandomSpawner |
я уже разобрался, я воспользовался советом alekv'а применил в параметре A_SpawnItemEx последнюю циферку она то и отвечает за вероятность спавна предмета, так окозалось проще.
СПАСИБО ВАМ ЗА ПОМОЩЬ!!! | |
|
| |
alekv = 2nd Lieutenant =
 | 1456 |
 Doom Rate: 1.68
|
Отправлено: 05.05.15 19:18:18 | | | SAM : | конкретно тот я уже не найду но вот такой же "A_SpawnItemEx("SkullRodBallExploSparkRed",random(4,-4),random(4,-4),random(4,-4),0,0,0,0,33)" |
Ну так, то что в кавычках "имя актора", а Random(4,-4) это значит что актор будет спавниться в случайном диапазоне от -4, до 4 мап юнит по X,Y,Z координате, центром будет актор активатор в котором прописана эта строка.
SAM : | я уже разобрался, я воспользовался советом alekv'а применил в параметре A_SpawnItemEx последнюю циферку она то и отвечает за вероятность спавна предмета, так окозалось проще. |
Способ с RandomSpawner, больше подходит когда надо спавнить кучу предметов в случайном порядке, случайном кол. и случайным шансом на спавн как таковой, думаю его стоит иметь ввиду, хотя если применить A_SpawnItemEx вместо DropItem, то можно рендомизировать и угл и положение на карте и тид и т.д  SAM : | СПАСИБО ВАМ ЗА ПОМОЩЬ!!! |
НЕ ЗА ЧТО!!! Спрашивай еще, я хочу знать больше  | |
|
| |
MasterMind - 1st Lieutenant -
 | 1789 |
 Doom Rate: 1.92
|
Отправлено: 06.05.15 13:01:01 | | | Может кто-нибудь объяснить эти функции здум-ботов:
weaponpref
Preference of weapons in order (least fav - most fav).
Непонятно, каким номерам какие пушки соответствуют - помню делал бота, который должен был любить пистолет, а он один хрен с другими пушками шлялся.
isp
Instinct for Self Preservation; determines how brave/crazy the bot is.
Вообще не понятно.
perfection
% of bot's perfection.
Блин вообще какая-то херь, переводится как Самосовершенствование.
остальные все понятны. | |
|
1 |
3 |
 |
|
| |
ZZYZX UAC Sergeant Major
 | 821 |
 Doom Rate: 1.38
|
Отправлено: 06.05.15 13:41:50 | | | MasterMind : | perfection
% of bot's perfection. |
Аим.
MasterMind : | isp
Instinct for Self Preservation; determines how brave/crazy the bot is. |
Уровень трусливости.
MasterMind : | weaponpref
Preference of weapons in order (least fav - most fav).
Непонятно, каким номерам какие пушки соответствуют - помню делал бота, который должен был любить пистолет, а он один хрен с другими пушками шлялся. |
Это что? Там строка, массив строк, куча интов? Чего там? | |
|
| |
MasterMind - 1st Lieutenant -
 | 1789 |
 Doom Rate: 1.92
|
Отправлено: 06.05.15 15:06:19 | | |
За аим строка Aiming должна отвечать.
ZZYZX : | Уровень трусливости. |
Чем выше, тем трусливее, или наоборот?
ZZYZX : | Это что? Там строка, массив строк, куча интов? Чего там? |
Тупо 012345678 0 - стопудово фист, а вот какая цифра - двустволка хз. | |
|
1 |
3 |
 |
|
| |