Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Тема для новичков. Вопросы по маппингу/моддингу - любые! Пред.  1, 2, 3 ... 188, 189, 190 ... 350, 351, 352  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!Ответить
АвторСообщение
Jurijus
- Master Sergeant -
Next rank: = Master Sergeant = after 24 points
436

Doom Rate: 0.16
Ссылка на пост №3761 Отправлено: 24.07.12 14:16:06
HellDoomer 666
Скинь вад!
LEX SAFONOV
UAC Sergeant Major
Next rank: UAC Sergeant Major after 75 points
685

Doom Rate: 1.49
Ссылка на пост №3762 Отправлено: 24.07.12 14:21:36
Народ, есть вопрос по ACS скриптам. Каким образом можно записать в переменную кол-во единиц у инвентории? Т.е. в АЦС скрипте у меня есть переменная Medikit и мне нужно записать в неё значение инвентории Medikit. В функциях по этому поводу ни чё не нашёл вроде.
Ameba
- Major -
Next rank: = Major = after 103 points
2837

Doom Rate: 2.32
Ссылка на пост №3763 Отправлено: 24.07.12 14:56:34
LEX SAFONOV :
В функциях по этому поводу ни чё не нашёл вроде

http://zdoom.org/wiki/CheckActorInventory
http://zdoom.org/wiki/CheckInventory
2 1 1
LEX SAFONOV
UAC Sergeant Major
Next rank: UAC Sergeant Major after 75 points
685

Doom Rate: 1.49
Ссылка на пост №3764 Отправлено: 24.07.12 15:15:01
Оно ж вроде для проверок, не?(Мне в действии надо)
Разобрался, но другой вопрос, я присваиваю переменной значение и потом пытаюсь выдать игроку инвенторию со значением переменной, но игра это почему то игнорит.

Вот скрипт:
script 288 ENTER
{
Medikit = CheckInventory("MedikitSWAmmo");
GiveInventory("MedikitSW", Medikit);
}




HellDoomer 666
В здуме акторы работают акумулятивно. Т.е. можно попробовать основать актор LittlePlayer на акторе AlexPlayer. В акторе мелкого игрока менять только высоту и нужные параметры(всё остальное будет браться у другого актора). Т.е. информацию о оружии будет достаточно указать только в AlexPlayer. Да и так будет меньше глюков.
Кстате не приседает скорее всего потому слишком низко.
Jurijus
- Master Sergeant -
Next rank: = Master Sergeant = after 24 points
436

Doom Rate: 0.16
Ссылка на пост №3765 Отправлено: 24.07.12 23:39:14
HellDoomer 666
На твоей карте нет оружия вообще.
И еще присутствуют непонятные глюки типа этого:



"Свичт"... Ну-ну.
HellDoomer 666
- Master Sergeant -
Next rank: = Master Sergeant = after 34 points
426

Doom Rate: 1.6
Ссылка на пост №3766 Отправлено: 25.07.12 08:47:50
Ай, ну такой глюк - не беда. А вот главное исправить с оружием... Вот перезалил исправленый вад. А дальше как ? - игрок уменьшается => достать оружие можно,но дальше при увеличении - оно пропадает.,а если у игрока 2 оружия - то переключиться на них невозможно.

http://rghost.ru/39400262
Nil
= Major =
Next rank: Lieutenant Colonel after 312 points
2978

Doom Rate: 2.34
Ссылка на пост №3767 Отправлено: 25.07.12 11:22:07
Ну надо-же, кто-то пользуется шрифтом, который я создал. Забавно. По такому случаю я даже отвечу :
http://zdoom.org/wiki/Classes:MorphProjectile


For the morph style, it is important to be aware that when given health by a normal means, a maximum of 30 health is imposed and no stamina applied on top; furthermore, various other effects such as limited (or no) weapon switching and the inability to pick up items are hardcoded into the game or affected in other ways that to a DECORATE coder seem totally unpredictable. The reason for this new functionality being added was to bring the effects of morphing under DECORATE control and make it predictable. To this end, new flags will be added from time to time.



Для стиля морфинга, важно знать, что при введении здоровья обычных средств, максимум 30 tедениц здоровья накладывается сверх максимума (и не более максимума стамины), Кроме этого, в игре (Zdoom) такие аспекты, как возможность переключать оружие и возможность подбирать те или иные предметы морфированным классом жестко заложена в исполняемый файл и это никак нельзя изменить. Это мотивировано тем, что иначе поведение морфированных классов могло оказаться неопределённым. Возможно, потом появятся флаги, позволяющие это изменить.

И напоследок. НЕ ИСПОЛЬЗУЙТЕ ДОЛБАННЫЙ KEYCONF. Забудьте о его существовании. Оружие определяется в Playerpawn производных классах. И кнопки новые тоже не создавайте, задолбало в каждом ваде их назначать-переназначать, дико бесит. Добавьте максимум одну кнопку подо всё, что-то типа меню, не более, а то половина вадов страдают тем, что добавляют по 5 кнопок для разной байды типа экспы, лога, задач и прочей мути.
1 2 1
LEX SAFONOV
UAC Sergeant Major
Next rank: UAC Sergeant Major after 75 points
685

Doom Rate: 1.49
Ссылка на пост №3768 Отправлено: 25.07.12 11:39:54
По поводу моего скрипта ни чё нельзя сделать, не?
Смысл скрипта - при входе игрока на уровень(будь то новая игра или переход на следующий), брать значение из патрон(MedikitSWAmmo) и присваивать это значение обычной инвентории (MedikitSW). Но возникает весьма стрёмная вещь - игра всё игнорирует и ни чё не присваивает. Однако если в GiveInventory записать обычное число, то срабатывает. Никто не знает как исправить эту муть?


LEX SAFONOV :

script 288 ENTER
{
Medikit = CheckInventory("MedikitSWAmmo");
GiveInventory("MedikitSW", Medikit);
}
Nil
= Major =
Next rank: Lieutenant Colonel after 312 points
2978

Doom Rate: 2.34
Ссылка на пост №3769 Отправлено: 25.07.12 11:59:06
LEX SAFONOV
Полная муть — это твой вопрос. Если ты очень хочешь получить ответ на него, то почему ты не хочешь потратить лишнюю минуту на то, чтобы его ПРАВИЛЬНО задать? Сложно написать так?
script 288 ENTER
{
Medikit = CheckInventory("MedikitSWAmmo");
print(i:Medikit);
GiveInventory("MedikitSW", Medikit);
}

Зная значение Medikit половина вопросов отсеится. Кроме того, ты узнаешь, вызывается ли твой скрипт вообще для данного игрока. и где объявлена эта переменная? Почему не написать просто :

GiveInventory("MedikitSW", CheckInventory("MedikitSWAmmo"));

В общем, в правильно заданном вопросе содержится 90% правильного ответа, и к правильным вопросам не нужны эти долбанные стены текста, что я пишу специально для тебя, мог бы и уважать чужое время.
1 2 1
LEX SAFONOV
UAC Sergeant Major
Next rank: UAC Sergeant Major after 75 points
685

Doom Rate: 1.49
Ссылка на пост №3770 Отправлено: 25.07.12 12:26:37
Выводить значение через print я уже пробовал как раз. Проблема вреале стрёмная. Значение MedikitSWAmmo как было 100, так и осталось(это максимальное значение), а вот MedikitSW не меняется вообще при переходе на другой уровень.

Nil :
GiveInventory("MedikitSW", CheckInventory("MedikitSWAmmo"));

И это я тоже пробовал, не работает. Игра опять же всё тупо игнорирует.


Задумка:
Сделать что то типа замены флага INVENTORY.PERSISTENTPOWER. В скултаге его тупо нет, а мод у меня как раз нацелен на использование всего и вся. Если у инвентории нет этого флага, то игра при переходе сбрасывает всё на единицу, что очень нервирует.

Вопрос писал выше.
Я пробовал делать ещё методом отнимания, т.е. выдавал инвентории MedikitSW сразу 100 единиц и потом отнимал сколько нужно(через TakeInventory). Этот способ работал только наполовину и то бажно. А именно баги - если у патрон 100 единиц и аптечка не заюзана(тоже 100), то игра один хрен всё сбрасывает на единицу и даже не смотрит на то, что я писал для этого случая условие(в условии естесно выдаётся прямиком 100 единиц).

Второй баг - если патечка хоть раз использована, но в ней значение не нуль и меньше 100(патроны при этом тоже отнимаются синхронно), то вроде бы срабатывает, но потом нельзя подобрать другую аптечку до тех пор, пока не заюзаешь хоть раз старую(которую скрипт накинул) и это даже не смотря на то, что у неё максимум вместимость 100, а в данный момент там допустим 73.
Nil
= Major =
Next rank: Lieutenant Colonel after 312 points
2978

Doom Rate: 2.34
Ссылка на пост №3771 Отправлено: 25.07.12 12:56:36
LEX SAFONOV, Извини, но ты тупишь. В момент выполнения скрипта 288 у плеера УЖЕ НЕТ MedikitSWAmmo, оно уже отнялось ,поэтому в Medikit будет занесено или 0, или 1. Значение надо заносить в эту переменную до выхода с предыдущего уровня. И переменную необходимо объявить как глобальную, и не просто переменную, а массив из MAXPLAYERS элементов (не знаю, чему это равно в skulltag. В соседней теме написали, что 64).
1 2 1
LEX SAFONOV
UAC Sergeant Major
Next rank: UAC Sergeant Major after 75 points
685

Doom Rate: 1.49
Ссылка на пост №3772 Отправлено: 25.07.12 13:12:39
Nil :
В момент выполнения скрипта 288 у плеера УЖЕ НЕТ MedikitSWAmmo, оно уже отнялось ,поэтому в Medikit будет занесено или 0, или 1.

Бред же, патроны при переходе на следующий уровень не сбрасываются, потому что они именно патроны, а не инвентории.
MedikitSWAmmo - патроны
MedikitSW - обыяная кастомная инвентория.

Патроны я сделал для того, чтобы игра "хоть что то запоминала" при переходе на другой уровень. От тех самых патрон я и отталкиваюсь, потому что игра их не сносит до единицы. В коде самой аптечки(кастомной инвентории) всё как полагается(в смысле значения отнимаются сразу и у инвентории и у патрон, дабы было у обоих одинаковое значение)


Nil :
И переменную необходимо объявить как глобальную, и не просто переменную, а массив из MAXPLAYERS элементов (не знаю, чему это равно в skulltag. В соседней теме написали, что 64).

Интересно зачем, объявлять переменные как глобальные я пробовал уже, тоже не помогает.

А вообще вот это:
GiveInventory("MedikitSW", CheckInventory("MedikitSWAmmo"));

Вызывает аналогичные баги, что и при отнимании.
Nil
= Major =
Next rank: Lieutenant Colonel after 312 points
2978

Doom Rate: 2.34
Ссылка на пост №3773 Отправлено: 25.07.12 13:42:16
LEX SAFONOV, Ещё раз, вся эта грёбаная писанина здесь только от того, что ты не умеешь правильно задавать вопросы. Ты выложил недостаточно кода, недостаточно данных и мы должны гадать, почему у тебя ничего не работает. Откуда мне знать, что у тебя там в декорейте? Почему из тебя надо сведенья буквально выдавливать? Кроме того, ты сам себе противоречишь, потому что п предыдущем посте ты рассказывал о том, что всё не работает из-за непереноса инвентори. Так что разбирайся сам, раз такой умный.
1 2 1
LEX SAFONOV
UAC Sergeant Major
Next rank: UAC Sergeant Major after 75 points
685

Doom Rate: 1.49
Ссылка на пост №3774 Отправлено: 25.07.12 14:21:49
Nil :
Ты выложил недостаточно кода, недостаточно данных и мы должны гадать, почему у тебя ничего не работает.


Да пжалста ёмаё, так бы сразу и сказал, что ещё нужно. Вот ты начинаешь тут со своим выпендрёжем очередным на тему, кто умничает, а кто нет и кто лучше тут знает.

Декорейт

MedikitSW(кастомная инвентория)
Скрытый текст:

ACTOR MedikitSW : CustomInventory
{
Game Doom
Inventory.PickupMessage "Medikit"
Inventory.Amount 100
Inventory.MaxAmount 100
Inventory.Icon "MEDKB0"
Inventory.PickupSound "DSITEMUP"
+INVENTORY.INVBAR
-INVENTORY.AUTOACTIVATE
-INVENTORY.INTERHUBSTRIP
States
{
Spawn:
MEDK A -1
stop
Pickup:
TNT1 A 0 A_GiveInventory("MedikitSWAmmo",100)
stop
Use:
TNT1 A 1
TNT1 A 0 A_jumpifinventory("health",100,"Spawn")
TNT1 A 0 A_JumpIfInventory("MedikitSW",1,"Use2")
Fail
Use2:
TNT1 A 1
TNT1 A 0 A_JumpIfHealthLower(100, "Use3")
Fail
Use3:
TNT1 A 1
TNT1 A 0 A_PlaySound("AHH", 3)
TNT1 A 0 A_GiveInventory("health",1)
TNT1 A 0 A_TakeInventory("MedikitSW",1)
TNT1 A 0 A_TakeInventory("MedikitSWAmmo",1)
TNT1 A 0 A_jumpifinventory("health",100,"Spawn")
Goto Use
}
}



MedikitSWAmmo(патроны для запоминания)
Скрытый текст:

ACTOR MedikitSWAmmo : Ammo
{
Inventory.MaxAmount 100
}



Ещё раз, патроны нужны для того, чтобы игра запомнила сколько единиц у аптечки осталось.

АЦС скрипты, которые я пробовал использовать:
1
Скрытый текст:

script 288 ENTER
{
GiveInventory("MedikitSW", CheckInventory("MedikitSWAmmo"));
if (CheckInventory("MedikitSWAmmo") == 100)
{
GiveInventory("MedikitSW", 100);
}


2 по принципу отнималки.
Скрытый текст:

script 288 ENTER
{
int Medikit1 = CheckInventory("MedikitSWAmmo");
if (Medikit1 > 0 && Medikit1 < 100)
{
int Medikit2 = 100 - Medikit1;
GiveInventory ("MedikitSW", 100);
TakeInventory("MedikitSW", Medikit2);
}
else
if (CheckInventory("MedikitSWAmmo") == 100)
{
GiveInventory("MedikitSW", 101);
}
}



3
Скрытый текст:

script 288 ENTER
{
Medikit = CheckInventory("MedikitSWAmmo");
GiveInventory("MedikitSW", Medikit);
}



Везде пробовал использовать глобальные переменные. Везде проверял ИМЕННО ПАТРОНЫ принтом, с патронами всё нормально и читаются как надо.

Щас проверил - баги остаются одни и те же везде, буть то с 1 и 3 скриптом или 2.

А именно баги - Если я на уровне поднимаю аптечку и не использую ни разу, но при этом перетаскиваю её на следующий уровень(т.е. у неё на максимуме 100, как и у патронов), то к кастомной инвентории ни чё не присваивается(т.е. игра обычную инвенторию сбрасывает на 1, когда как у патронов в то же время так и остаётся 100).
Второй баг - если я на уровне поднял аптечку, заюзал её, но при этом там осталось допустим 70 единиц(и в кастомной инвентории и в патронах), то при переходе на следующий уровень там так и остаётся 70 единиц, но поднять другую такую же аптечку я уже не могу, правда это до тех пор пока я не использую старую, которую в игре выдал скрипт.


Вопрос - как исправить подобные баги.

Nil :
Откуда мне знать, что у тебя там в декорейте? Почему из тебя надо сведенья буквально выдавливать?

Для чегож тогда эта тема то нужна в таком случае? Да это было трудно написать в коментах, что нужно больше информации, очень трудно.
HellDoomer 666
- Master Sergeant -
Next rank: = Master Sergeant = after 34 points
426

Doom Rate: 1.6
Ссылка на пост №3775 Отправлено: 25.07.12 18:43:15
Так получается,что решить проблему с уменьшителем невозможно.
Nil
= Major =
Next rank: Lieutenant Colonel after 312 points
2978

Doom Rate: 2.34
Ссылка на пост №3776 Отправлено: 25.07.12 18:58:12
HellDoomer 666, Возможно, если отобрать у уменьшенного персонажа оружие. Подумай сам, как выглядят уменьшенные пульки? А из маленького рокет ланчера будут вылезать здоровенные рокеты? Всё правильно игра делает :)
1 2 1
HellDoomer 666
- Master Sergeant -
Next rank: = Master Sergeant = after 34 points
426

Doom Rate: 1.6
Ссылка на пост №3777 Отправлено: 25.07.12 19:21:03
Я пробовал создать уменьшитель без оружия - тогда всё нормально идёт. С виду если игрок переключится скажем на шотган - по ходу у него будет маленький шотган, а стреляет походу как большой.

Чтоли совсем не прописывать маленькому игроку оружие?
Jurijus
- Master Sergeant -
Next rank: = Master Sergeant = after 24 points
436

Doom Rate: 0.16
Ссылка на пост №3778 Отправлено: 25.07.12 20:13:00
Blender. Кто-то умеет с ним работать? Мне нужна помощь.
Мне надо пришпандерить на спину монстра шипы.
Как это сделать?
Я не хочу изменять геометрию спины. Но при этом шипы должны двигаться вместе с руками-ногами, то есть они не должны деформироваться, но должны двигаться вслед за костями. Это вообще реально?
Archi]ASTS[
UAC General
Next rank: Unavailable after 0 points
12719

Doom Rate: 1.87
Ссылка на пост №3779 Отправлено: 25.07.12 20:32:17
Кто-то умеет(причем далеко не один или два человека). Задавай вопрос уже.
2 1 1
c4tnt
= 1st Lieutenant =
Next rank: - Captain - after 211 points
1879

Doom Rate: 1.92
Ссылка на пост №3780 Отправлено: 26.07.12 08:05:02

Мне надо пришпандерить на спину монстра шипы.


Я не хочу изменять геометрию спины.


Взаимоисключающие параграфы конечно, но на самом деле нужно просто добавить эти шипы в ту же вертексгруппу, в которой находятся вертексы спины ( это для случая, когда в skin модификаторе указаны вертексгруппы ). Если там вертексгруппы не используются, а используются envelope, то вообще по идее всё должно произойти само.
1 1
Страница 189 из 352Перейти наверх Пред.  1, 2, 3 ... 188, 189, 190 ... 350, 351, 352  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!