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


Форум TeamX » Тех. поддержка » ФИДы невидимых криттеров.

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 ] Все собщения

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

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

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

Реализация зависит от того, что именно тебе нужно. Опиши задачу. А так, навскидку, приходит такая фигня:
procedure FRM_exists(variable FID) begin
 if (FID == FID1) or
   (FID == FID 2) or
 ..... // и так очень много раз

end

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

Отправлено: 1:13 - 15 Апр., 2006
binyan
Пользователь

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

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

А задача такая:
Проверить существует ли такой ФИД. Посмотри мой предыдущий пост, по моему должно работать. Чем 100 раз писать if then or, лучше один раз while написать
Вот в чем загвоздка, так это в этой строчке:
if(obj_art_fid(self_obj)==("FID"+i) then
Вот меня интересует, будет ли он мне каждый раз писать то что нужно на месте "FID"+i . Т.е. когда i=1, то FID1, когда 2, FID2 и т.д.

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

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

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

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

Вообще-то и в БД, и в доке, приложенной к проге, описано как из FIDа получить имя файла . Так что я что-то не пойму о чём флуд . Другое дело, что проверить существует ли файл с заданным именем из скрипта ты тоже не сможешь. Так что вариант тебе подсказали правильный: полный перебор. Вопрос в том, актуальна ли задача вообще...

Отправлено: 15:11 - 15 Апр., 2006
binyan
Пользователь

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

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

Цитата:
Quote: from Wasteland Ghost on 15:11 - 15 Апр., 2006
Другое дело, что проверить существует ли файл с заданным именем из скрипта ты тоже не сможешь.


Так это не другое дело, а в этом и ДЕЛО =)
И код, который я написал двумя постами раньше, проверяет именно СУЩЕСТВУЕТ ли такой ФИД. С помощью header'а. Вот только одна строчка меня там настораживает. Постом раньше написал какая


(Добавление от  16:37 - 15 Апр., 2006.)


Итак...как мы можем узнать с каим оружием наша фрм-ка? Конечно можно зайти в калькулятор, перевести фид в HEX и посмотреть по индексам. А как это делать из скрипта? Вроде бы нашел некоторую взаимосвязь между ФИД-ом, и оружием в руках...
Для разных криттеров с разными анимациями (проверял для четырёх),ФИД фрм-ки с big gun начинается на 168100, т.е. 168100хх (где х-число от 0 до 9). Фид фрм-ки с Bazuka начинается на 168182, ФИД фрм-ки с minigun начинается на 168141.
Т.е. узнать какое оружие криттер держит в руках, каждый раз не лазия в ARTFID.h мы можем узнать просто - if(obj_art_fid(self_obj)/100==wFID) then begin
wFID это первые 6 цифр ЛЮБОГО криттера с оружием, которое мы хотим проверить.
так, для криттера с big gun, wFID=168100, с minigun wFID=168141, с bazuka wFID=168182.
Теперь можно создать header только с основными анимациями, коих 11:
0x00000000 - None
0x00000001 - Knife (D)
0x00000002 - Club (E)
0x00000003 - 2Hnd Club (F)
0x00000004 - Spear (G)
0x00000005 - Pistol (H)
0x00000006 - Uzi (I)
0x00000007 - Rifle (J)
0x00000008 - Laser (K)
0x00000009 - Minigun (L)
0x0000000A - Rocket Launcher (M)
И проблема решена. Я хочу сделать так, чтобы партийцы, в случае если на них
надета броня БС например,  и Базука, при снятии брони не пропадали, а говорили что нибудь и снимали оружие. Тепeрь это осуществимо так:

1.Создаём header вида
#define wFID1  (167772) //None
#define wFID2  (167813) //Knife
#define wFID3  (167854) //Club
#define wFID4  (167895) //2 Hand Club
#define wFID5  (167936) //Spear
#define wFID6  (167977) //Pistol
#define wFID7  (168018) //Uzi
#define wFID8  (168059) //Rifle
#define wFID9  (168100) //Laser
#define wFID10  (168141) //Minigun
#define wFID11  (168182) // Rocket Launcher

2.И в скрипте прописываем допустим для Lenny(при условии что я точно знаю, что для Ленни нет фрм-ок с big guns, bazuka и miniguns):
i:=9;
               while((i<12)and(check!=1)) do begin
                 if((obj_art_fid(self_obj)/100)=="wFID"+i) then
                 check+=1;
                 else i+=1;
               
               end
           if check==1 call My_procedure.

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

Отправлено: 15:14 - 15 Апр., 2006 | ИСПРАВЛЕНО: binyan - 17:35 - 15 Апр., 2006
binyan
Пользователь

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

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

Так, проверил =) Во первых у Ленни нет анимации также для дубинки, молота и Rifles.
Во вторых в таком виде не пашет, что абсолютно естественно =)
А вот в таком:
if (obj_art_fid(self_obj)/100==wFID3)OR
(obj_art_fid(self_obj)/100==wFID4)OR
(obj_art_fid(self_obj)/100==wFID5)OR
(obj_art_fid(self_obj)/100==wFID8)OR
(obj_art_fid(self_obj)/100==wFID9)OR
(obj_art_fid(self_obj)/100==wFID10)OR
(obj_art_fid(self_obj)/100==wFID11)
then call My_procedure
пашет


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

Отправлено: 17:43 - 15 Апр., 2006 | ИСПРАВЛЕНО: binyan - 18:50 - 15 Апр., 2006
binyan
Пользователь

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

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

Странная штука...в робе (проверенно в маппере) берётся только нож и копьё. Тем не менее, ФРМ-ки
HAROBEDx , HAROBEEx, HAROBEFx, HAROBEGx, HAROBEHx, HAROBEIx, HAROBEJx, HAROBEKx, HAROBELx, HAROBEMx (где х - буквы от A до E и от H до L включительно), существуют и преспокойно себе лежат в криттер.дат
Напомню, что 7-я буква в названии ФРМ обозначает тип оружия:

Knife (D)
Club (E)
2 Hand Club (F)
Spear (G)
Pistol (H)
Uzi (I)
Rifle (J)
Laser (K)
Minigun (L)
Rocket Launcher (M)

Вопрос:
А с какого перепугу, при существовании ФРМ-ок двиг их не проигрывает?


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

Отправлено: 17:10 - 16 Апр., 2006 | ИСПРАВЛЕНО: binyan - 11:00 - 17 Апр., 2006
binyan
Пользователь

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

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

Может у кого нибудь хотя бы догадки какие-нибудь есть?

Извиняюсь за флуд

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

Отправлено: 11:01 - 17 Апр., 2006
Wasteland Ghost
Маленькое Злое Привидение

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

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

А в листе они прописаны?

Отправлено: 9:40 - 18 Апр., 2006
binyan
Пользователь

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

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

Эх, старость не радость, 18 лет скоро, маразм замучал. Дело не в lst...Хотя именно это помогло мне найти ошибку. Я перепутал n и h...у меня в скрипте было прописано narobe а не harobe =) А то ещё думал, почему робы не сиреневые =)

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

Отправлено: 21:35 - 23 Апр., 2006
 

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 ] Все собщения


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