» TeamX (Архив Форума)«


Форум TeamX » Тех. поддержка » слоты брони и оружия (Где?!?)

Переход по темам
<< Пред. След. >>
Единственная страница этой темы

 
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

В прошнике нету. Вроде и не может быть. Попытался почитать описание *.map формата - там тоже нету, для криттеров определены только CurrentHP, CurrentRL, CurrentPL плюс несколько неизвестных флагов. Так вот, subj, где?

-----
hit me, nail me, make me god

Отправлено: 0:13 - 22 Марта, 2006
Anchorite
Пользователь

Откуда: Не здесь
Регистрация: Янв. 2003

Всего: 283 сообщения

В флаге предмета выставляется специальные флажки, определющие положение этого предмета в инвентаре криттера.

Отправлено: 5:59 - 22 Марта, 2006 | ИСПРАВЛЕНО: Anchorite - 6:01 - 22 Марта, 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

Имеется в виду эти флаги зашиты внутри *.map файла?

5.3. Дополнительные поля для оружия (Weapon)
Смещение Размер Описание
0x0054 4 Некие дополнительные флаги (в движке: updated_flags).
0x0058 4 Количество заряженных патронов.
0x005C 4 PID (Proto ID) патронов.


То есть броню "по-челоечески" может носить только сам чузен?

-----
hit me, nail me, make me god

Отправлено: 17:31 - 22 Марта, 2006 | ИСПРАВЛЕНО: Alan Killenger - 18:33 - 22 Марта, 2006
Anchorite
Пользователь

Откуда: Не здесь
Регистрация: Янв. 2003

Всего: 283 сообщения

Ну не "зашиты", а скорее выставлены.
А надеть броню и вложить в руки оружие ты можешь для в принципе для любого криттера. Во всякм случае для большинства гуманоидов.

Отправлено: 22:12 - 22 Марта, 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

Цитата:
А надеть броню и вложить в руки оружие ты можешь для в принципе для любого криттера. Во всякм случае для большинства гуманоидов.

Хм... в том то и дело, разве можно?
Код:
 
5. Область объектов

     5.1. Размер объектов
     5.2. Общая для всех объектов часть
     5.3. Дополнительные поля для оружия (Weapon)
     5.4. Дополнительные поля для патронов (Ammo)
     5.5. Дополнительные поля для прочих предметов (Misc)
     5.6. Дополнительные поля для ключей (Key)
     5.7. Дополнительные поля для существ (Critters)
     5.8. Дополнительные поля для порталов (Portal)
     5.9. Дополнительные поля для лестниц (Stairs)
     5.10. Дополнительные поля для лифтов (Elevators)
     5.11. Дополнительные поля основания лестницы (Ladder Bottom)
     5.12. Дополнительные поля вершины лестницы (Ladder Top)
     5.13. Дополнительные поля для зон выхода (Exit Grids)


О броне тут ни слова, хотя есть и об оружии, и о патронах. Да... я конечно назойлив, но все-таки:

1. Как мне надеть броню на одного конкретного криттера?

2. Какой скриптовой функцией мне можно нормально надеть броню на криттера или вложить ему в руки оружие?

Причем нужно, чтобы это оружие и броня вроде как действительно были (после смерти криттера они оставались). Я сызнова прошелся по этой доке о функциях... не нашел.

-----
hit me, nail me, make me god

Отправлено: 0:54 - 23 Марта, 2006 | ИСПРАВЛЕНО: Alan Killenger - 1:55 - 23 Марта, 2006
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

1. Только подменой прошника. "Одеть" броню на криттера нельзя.
2. void wield_obj_critter(ObjectPtr who, ObjectPtr obj) - "дать в руки" оружие.

ЗЫ Вообще-то я никогда не пробовала "подсунуть" функции wield_obj_critter указатель на броник. Однако, сильно сомневаюсь, что криттер в этом случае оденет броню. Скорее просто возьмёт её "в руку" (активный слот).

Отправлено: 9:21 - 23 Марта, 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

Собственно, почему я и сказал что ничего подходящего не нашел:

void wield_obj_critter(pointer soldier, pointer equpment)

Часть 1. equpment - указатель на броню. Функция соответствующим броне образом изменяет данные всех криттеров на карте, имеющих PID такой же, как и у soldier и только у них. Причем эти изменения нигде не фиксируются. Если мы уйдем с карты и вернемся на нее или сохранимся и загрузимся, то прошники вернутся в нормальное состояние (т.е. каким они были до вызова этой функции). Тестировалось в самой игре.

Часть 2. equipment - указатель на оружие (я брал копье). Функция дает в ркуи soldier и только ему одному виртуальное копье. Мы его видим, но когда мы убиваем soldier и обыскиваем его труп - копья нету.

Еще раз протестировал. Брал SMG 10 mm (AI NCR Rangers).
Цитата:
wield_obj_critter(self_obj, create_object_sid(PID_10MM_SMG, 0, 0, -1));

Функция дает в ркуи soldier и только ему одному (т.е. не всем криттерам с тем же прошником) виртуальную пушку (криттер выглядит как криттер с пушкой, и думает он так же, но никакой пушки нет). При выходе с карты эффект сохранялся. Пушкой этой он воспользоваться не может. Во время боя soldier просто нервно проигрывает, анимацию вытаскивания ствола. Начинаются глюки когда пытаешься в него (soldier) целиться. Если посмотреть на него с "осведомленностью",   то будет выдана инфоа, как будто бы он без ствола.

ИМХО, функция к использованию непригодна. Помимо этой функции, никак иначе нельзя вложить оружие в руки криттеру? Не считая варианта засунуть в маппере или засунуть в инвентарь и надеятся, что криттер догадается вытащить пушку.

-----
hit me, nail me, make me god

Отправлено: 11:12 - 23 Марта, 2006 | ИСПРАВЛЕНО: Alan Killenger - 13:15 - 23 Марта, 2006
Anchorite
Пользователь

Откуда: Не здесь
Регистрация: Янв. 2003

Всего: 283 сообщения

Надеть броню на криттера однозначно можно.
Вопрос только в том найдет ли движок нужный ФРМ для того чтобы его нарисать.

В BIS-овом маппере я благополучно надел обычный Pоwer Armor на Enclave Patrol. Но картинка криттера как была с APA, так в ней и осталась.

Если попробовать пошмонать у такого криттера в корманах, то брони вы там не найдете. А сняв ее - она появится.

Отправлено: 12:54 - 23 Марта, 2006
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Анхорит, я немного не о том . Одеть броньку в маппере можно. Только ФРМ не изменится. Кстати, на всех криттерах в Ф1 броня "одета" именно этим способом. На ФРМ и характеристики не влияет, зато после смерти остаётся. А вот скриптово её одеть нельзя.

wield_obj_critter - штука полезная. Я ей пользовалась и глюков не замечала, если сначала оружие создавать, а потом "давать в руки". А броня на игроке и НПС, скорее всего, обрабатывается движком "узкоспециально", так что облачение криттера в броню динамически тебе всё равно ничего не даст.

Отправлено: 13:10 - 23 Марта, 2006
binyan
Пользователь

Откуда: Israel
Регистрация: Март 2005

Всего: 292 сообщения

Цитата:
Quote: from Wasteland Ghost on 9:21 - 23 Марта, 2006
1. Только подменой прошника. "Одеть" броню на криттера нельзя.
2. void wield_obj_critter(ObjectPtr who, ObjectPtr obj) - "дать в руки" оружие.

ЗЫ Вообще-то я никогда не пробовала "подсунуть" функции wield_obj_critter указатель на броник. Однако, сильно сомневаюсь, что криттер в этом случае оденет броню. Скорее просто возьмёт её "в руку" (активный слот).



Вообще то, при скриптовой замене брони на партийцах, я использовал именно wield_obj и всё замечательно работало.
Так что подтверждаю - да, если wield_obj(ARMOR_PID), то криттер оденет броню.

-----
...выражая озадаченность, граничащую с озабоченностью..

Отправлено: 14:20 - 23 Марта, 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

Ууу... шаманы.
Цитата:
А броня на игроке и НПС, скорее всего, обрабатывается движком "узкоспециально", так что облачение криттера в броню динамически тебе всё равно ничего не даст.

Люди, вы о чем? Какое облачение? FRM'ку криттера wield_obj_critter при указателе на броню не меняет. Она меняет именно свойства всех криттеров на карте с тем же PID. Или я так запудрил всем мозги? Причем меняет свойства хоть и только до ухода с карты, но убить криттера с такой броней становиться действительно тяжелее (я это проверял).
Цитата:
wield_obj_critter - штука полезная. Я ей пользовалась и глюков не замечала, если сначала оружие создавать, а потом "давать в руки".

Это как? Можно хотя бы условно набросать кусочек кода? Как вооружить криттера не виртуальным оружием? Как, разве есть еще какая-нибудь функция, чтобы "давать в руки"?

-----
hit me, nail me, make me god

Отправлено: 18:35 - 23 Марта, 2006
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Цитата:
wield_obj(ARMOR_PID)

Таки ПИД или указатель?

Алан, извини, времени нет копать целенаправленно. Однако, что-то у тебя в последнее время призраков много развелось . Может, не призраки это вовсе, а жуки?

Для примера посмотри сырца НВ, ферму Дженнингсов.

ЗЫ Кстати, на партийцах бронька может по-другому обрабатываться...

Отправлено: 20:33 - 23 Марта, 2006
Pavel
Модератор

Откуда: Одесса Украина
Регистрация: Май 2004

Всего: 368 сообщений

Действительно, партийцы и обычные криттеры - абсолютно разные вещи. На партийцах, броня сразу становится активной (появляются все её характеристики), а на криттерах нужно менять прошник. Но можно действовать по другому.
Если я понял проблему, то её можно решить так:
приписать еще одного партийца, и этому криттеру в скрипте создать оружие, броню и все что еще захочется. При таком раскладе появится еще один плюс - можно приписать нормальное поведение (как у обычного партийца), даже если он против чуза.

-----
В жизни нельзя быть уверенным на 100%, ведь никогда не знаешь когда...

Отправлено: 22:32 - 23 Марта, 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

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

Тоже думал об этом. Заранее отверг этот вариант так как там вроде бы не вызывается функция из скрипта, а функция связана с обработчиком кнопочки "лучшее оружие" или "лучшая броня". Или я не все знаю.

Человек без жуков как человек без мыслей . А насчет wield_obj(ARMOR_PID) - там, наверное, binyan имел в виду один популярный макрос от нашей же функции. Вот сейчас посмотрю сырцы, тогда держитесь .

-----
hit me, nail me, make me god

Отправлено: 22:41 - 23 Марта, 2006
binyan
Пользователь

Откуда: Israel
Регистрация: Март 2005

Всего: 292 сообщения

Цитата:
приписать еще одного партийца, и этому криттеру в скрипте создать оружие, броню и все что еще захочется.


Да, но несколько таких криттеров = +несколько партийцев

Цитата:
А насчет wield_obj(ARMOR_PID) - там, наверное, binyan имел в виду один популярный макрос от нашей же функции


Ага, именно его. Только не помню действительно что там - ПИД или ПТР

Цитата:
Тоже думал об этом. Заранее отверг этот вариант так как там вроде бы не вызывается функция из скрипта, а функция связана с обработчиком кнопочки "лучшее оружие" или "лучшая броня". Или я не все знаю.



Да, но функцию лучшее оружие/броня можно сделать самому В скрипте.


-----
...выражая озадаченность, граничащую с озабоченностью..

Отправлено: 22:42 - 23 Марта, 2006 | ИСПРАВЛЕНО: binyan - 22:48 - 23 Марта, 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

Цитата:
Да, но функцию лучшее оружие/броня можно сделать самому  В скрипте.

В том то и дело, что нет! Народ, либо у меня тут на самом деле голова тараканами переполнена, либо меня весьма конкретно не понимают. В этом и вся тема. Как заставить криттера именно взять в активную руку нужное оружие (броню)?

P.S. WG на будующее, это была очень информативная ссылка на ферму Дженнингсов. Ведь для того, чтобы посмотреть как именно это все работает в игре мне теперь весь мод НВ прийдется проходить вплоть до этой фермы? Нет, исходники я сейчас конечно читаю, но как мне хотя бы узнать у какого криттера что-либо должно "вкладываться в руки"?

-----
hit me, nail me, make me god

Отправлено: 23:50 - 23 Марта, 2006
binyan
Пользователь

Откуда: Israel
Регистрация: Март 2005

Всего: 292 сообщения

Цитата:
В том то и дело, что нет! Народ, либо у меня тут на самом деле голова тараканами переполнена, либо меня весьма конкретно не понимают. В этом и вся тема. Как заставить криттера именно взять в активную руку нужное оружие (броню)?



Как это нельзя? У меня есть скрипт с функциями лучшее оружие/броня(кстати, там ещё реализован выбор оружия из диалога )...И всё работает. Причем криттер не партиец. Если хочешь пошлю на мыло. А реализовывается это с помощью wield_obj. Или я опять чего то не понял?

-----
...выражая озадаченность, граничащую с озабоченностью..

Отправлено: 23:58 - 23 Марта, 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

Так. Кхм... вкладывать нормальное оружие в прямо руки криттеров все-таки можно. Делается это с помощью макроса give_obj_weapon (command.h), который в свою очередь тоже опирается на функцию wield_obj_critter. Тем не менее, оружие, выданное этим макросом является весьма реальным. Видимо, тут есть некоторые узкие моменты, о которых могли знать только создатели движка. Это как раз тот несчастливы случай.

Немного о макросе give_obj_weapon, который я сейчас и начал исследовать.
1. Одетая таким образом броня: не видна при попытке украсть, но появляется на трупе; эффект защиты криттера присутствует (т.е. криттера с такой броней убить сложнее), но длится этот эффект только до выхода с карты или save/load'а, хотя и после этого сама броня будет доступна с трупа, но не будет доступна при воровстве.
2. Взятое таким макаром оружие: первый образец кладется в активную руку, все остальные - стопкой в инвентарь; оружие никуда не пропадает, даже после ухода с карты ничего не меняется.

Глюки у этого макроса все-таки есть, но они не слишком фатальные (хехе, как сказал). Тут я пытался сам собрать то, что делает этот макрос. Не получилось, какие-то костыли и особенности в реализации этих функций, в частности wield_obj_critter. Будем разбираться :/.

-----
hit me, nail me, make me god

Отправлено: 2:00 - 24 Марта, 2006
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Цитата:
приписать еще одного партийца

Скажешь как сделать полноценный экземпляр - подарю пирожок . Там ещё столько вопросов осталось...

2Алан А контекстный поиск на что? Сделай поиск wield_obj по всем исходникам, и будет тебе "щастье" .

Ещё 2Алан. У меня есть стойкое подозрение, что ты не кладёшь созданный объект в инвентарь перед тем как вызвать wield_obj. А надо бы . Т.е. сначала создаёшь объект, потом помещаешь в инвентарь, потом "напяливаешь".

Отправлено: 7:05 - 24 Марта, 2006
binyan
Пользователь

Откуда: Israel
Регистрация: Март 2005

Всего: 292 сообщения

Очень правильное подозрение Судя по всему так оно и есть

-----
...выражая озадаченность, граничащую с озабоченностью..

Отправлено: 13:29 - 24 Марта, 2006
 

Переход по темам
<< Пред. След. >>
Единственная страница этой темы


Powered by Ikonboard 2.1.9 RUS
Modified by RU.Board Team
© 2000 Ikonboard.com