|
binyan
Пользователь
Откуда: Israel Регистрация: Март 2005
Всего: 292 сообщения
|
Тему в исследованиях побоялся создавать, опасаясь что опять не туды попаду. ИМХО, тема все же должна быть в исследованиях =) Итак, все прекрасно знают, что если например всучить (скриптово разумеется, так как через нынешний геймплей нельзя) дикарю например огнемет, то криттер просто исчезнет, потому что не нарисована анимация для дикаря с огнеметом =) Итак, разбираясь с этой проблемой у партийцев (ведь не всё оружие при выборе из диалога Вик, например, сможет взять), я наткнулся на такую фишку, как свой собственный ФИД у исчезнувшего криттера. Собственно тема в том, что ФИД Вика , и Ленни, в тот момент когда они не отображаются на карте(т.е. когда я им сую оружие с ненарисованной для него анимацией) различается. Так, у Вика он 16810075, а у Ленни 16810063. Если сравнить их оригинальные ФИДы(Вик 1677707 по моему, а Ленни 1677795), то можно проследить закономерность. 107-32 = 75 95-32 = 63 Впрочем последнее, я думаю, уже моя переразвитая фантазия. А вы об этом знали?
----- ...выражая озадаченность, граничащую с озабоченностью..
|
Отправлено: 21:47 - 11 Апр., 2006 | ИСПРАВЛЕНО: binyan - 21:47 - 11 Апр., 2006
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
Ясен пень, что разный . Базовая FRM у них разная . Опять же, проги на сайте есть всякие. Вэ тэ чэ frmid. frmPID = 0x100805b Index = 0x5b ID3 = 0x0 ID2 = 0x0 ID1 = 0x8 Suffix1 = k Suffix2 = a FRM file name is nmfattka.frm Attempt to analyse file name: N: Non-hero character M: Male FATT: Fat K: action with Big Gun frmPID = 0x100804f Index = 0x4f ID3 = 0x0 ID2 = 0x0 ID1 = 0x8 Suffix1 = k Suffix2 = a FRM file name is navgulka.frm Attempt to analyse file name: N: Non-hero character A: Any person VGUL: Ghoul #2 K: action with Big Gun Т.е. двиг FID честно вычисляет, а файла с таким именем не находит. В результате - глюк. ЗЫ Ещё советую почитать это.
|
Отправлено: 13:00 - 12 Апр., 2006
|
|
binyan
Пользователь
Откуда: Israel Регистрация: Март 2005
Всего: 292 сообщения
|
Госспади...это чтож получается, для каждого оружия этот ФИД разный? Час от часу нелегче... Ладно, спасибо за раъяснения
----- ...выражая озадаченность, граничащую с озабоченностью..
|
Отправлено: 14:57 - 12 Апр., 2006
|
|
|
binyan
Пользователь
Откуда: Israel Регистрация: Март 2005
Всего: 292 сообщения
|
Хмм...прочитал внимательно, но видимо не сообразил главного...Как из скрипта проверить существует ли анимация? Существует ли файл с нужным именем. Как мне получить из скрипта ID1,2,3? Ок, допустим ФИД - 1677795. Выдержка из доки: В общем случае FID представляет собой число следующего вида:
Код:
+--|--------|-----------|-----------------------|-----------|-----------------------------------+ |31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10|09|08|07|06|05|04|03|02|01|00| +--|--------|-----------|-----------------------|-----------|-----------------------------------+ | | | | | | | | | | | ------------------- Индекс в LST-файл | | | | ------------------------------------------- ID1 | | | ------------------------------------------------------------- ID2 | | ------------------------------------------------------------------------------- Тип объекта (ObjType) | ----------------------------------------------------------------------------------------- ID3 ------------------------------------------------------------------------------------------------ Не используется
Сколько ни стараюсь, но никак не могу связать 1677795 с ID1, ID2, ID3. Как мне его разбить на ID, и самое главное, как проверить есть ли фрм с таким ID?
----- ...выражая озадаченность, граничащую с озабоченностью..
|
Отправлено: 0:16 - 14 Апр., 2006
|
|
Anchorite
Пользователь
Откуда: Не здесь Регистрация: Янв. 2003
Всего: 283 сообщения
|
Если 1677795 задано в шестнацетиричном формате, то 0x01677795 (0.1.67.7.795) Отсюда следует: Index = 0x795 = 1941 ID1 = 0x7 = 7 (Rifle) ID2 = 0x67 = 103 ( ТАКОГО не может быть!!!) ObjectType = 0x1 (Critter) ID3 = 0x0 = 0 (Северо восток) А 1677795 это десятичное число, то это FID предмета а не существа.
|
Отправлено: 6:20 - 14 Апр., 2006 | ИСПРАВЛЕНО: Anchorite - 6:45 - 14 Апр., 2006
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
Critter FRM ID
|
Отправлено: 8:53 - 14 Апр., 2006
|
|
binyan
Пользователь
Откуда: Israel Регистрация: Март 2005
Всего: 292 сообщения
|
Цитата: Quote: from Anchorite on 6:20 - 14 Апр., 2006 Если 1677795 задано в шестнацетиричном формате, то 0x01677795 (0.1.67.7.795) Отсюда следует: Index = 0x795 = 1941 ID1 = 0x7 = 7 (Rifle) ID2 = 0x67 = 103 ( ТАКОГО не может быть!!!) ObjectType = 0x1 (Critter) ID3 = 0x0 = 0 (Северо восток) А 1677795 это десятичное число, то это FID предмета а не существа.
А разве ФИД в шеснадцатиричном формате даётся? Кстати, это ФИД Ленни без оружия. Как могло получиться что это предмет? (Добавление от 23:31 - 14 Апр., 2006.)
Цитата: Quote: from Wasteland Ghost on 8:53 - 14 Апр., 2006 Critter FRM ID
Спасибо за программу, но насколько я знаю из скриптов к программам обращаться нельзя Проблема в следующем...Мне нужно поставить проверку В СКРИПТЕ, существует ли такая ФРМ-ка. Так вот как это сделать? Есть идеи?
----- ...выражая озадаченность, граничащую с озабоченностью..
|
Отправлено: 23:28 - 14 Апр., 2006
|
|
Alan Killenger
Пользователь
Откуда: Россия, Ижевск Регистрация: Июль 2004
Всего: 404 сообщения
|
Создать хэадер, в котором тупо перечислить все существующие FRM'ки. Файлик с подобной таблицей Perceptron кажется давал. 1677795 - а это, случаем не PID? Одного нолика справа нехватает.
Код:
#define FID_HAROBE (16777247) | | | | | 16777247 | 00000001000000000000000000011111 | FID | | 0 | 0 | не исп. | | 0 | 000 | ID3 | | 1 | 0001 | ObjectType | | 0 | 00000000 | ID2 | | 0 | 0000 | ID1 | | 31 | 000000011111 | *.LST Number |
----- hit me, nail me, make me god
|
Отправлено: 0:42 - 15 Апр., 2006 | ИСПРАВЛЕНО: Alan Killenger - 1:59 - 15 Апр., 2006
|
|
binyan
Пользователь
Откуда: Israel Регистрация: Март 2005
Всего: 292 сообщения
|
Все существующие ФИДы ты имел ввиду? Потому что из скрипта мы не можем получить имя файла =) Только если ты мне скажешь как выражать имя файла, зная только ФИД А вообще, сделаю я header, в нем перечислю все FID-ы под именами ФИД1, ФИД2 и т.д., а потом просто поставить оператор цикла типа: while((i<=amount_of_FIDs)AND(check!=1) do begin if(obj_art_fid(self_obj)==("FID"+i) then check:=1; end if check==0 then begin то что мне нужно end Скрипт на деле не проверял, так что скажите мне, будет ли вот это - ("FID"+i) работать? И если нет, то как будет? (Добавление от 1:06 - 15 Апр., 2006.)
Цитата: Quote: from Alan Killenger on 0:42 - 15 Апр., 2006 1677795 - а это, случаем не PID? Одного нолика справа нехватает.
Неа, не ПИД. Посмотри ARTFID.h ,там этого ФИДа нет(я его сам в свой добавлял) , но все остальные начинаются так же.
----- ...выражая озадаченность, граничащую с озабоченностью..
|
Отправлено: 1:02 - 15 Апр., 2006
|
|
|
|