forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Загрузка обектов с помощю FineChilder (http://forum.boolean.name/showthread.php?t=3520)

Dkey 03.06.2007 15:51

Загрузка обектов с помощю FineChilder
 
Прошу помощи у знающих людей!! Я в 3d max создаю террейн и розтавляю там де должны быть (NPC, Monster, fire) кубики и именую к примеру "NPC_Gorn", а при загрузке двиг должен убирать куб и загружать етого NPC. Так вот как ето реализова в коде!!
Пожалуста погите!!

moka 03.06.2007 21:42

Re: !!!Прошу помощи!!!
 
Название темы отредактируй, и впредь пожалуста пиши название соответствующее теме.

Сделать, несложно:
Значит грузишь объект в двиге через LoadAnimMesh.
Далее цикл от 1 до CountClidren(этого меша). И проверяешь их имя (EntityName), и всё.

ЛысыЙ_Чук-Иванчук 03.06.2007 22:39

Re: !!!Прошу помощи!!!
 
Это из рабочего кода, я думаю разберешся!


Function SaveLevel(entity, mesh$, File$)
File=WriteFile(File): If file=0 End
colVo=0
For i=1 To CountChildren(entity)
e_par=GetChild(entity,i)
n_e=0 :n_e=Instr(EntityName(e_par),mesh)
If n_e<>0
colvo=colvo+1
WriteLine(File,EntityX(e_par,1))
WriteLine(File,EntityY(e_par,1))
WriteLine(File,EntityZ(e_par,1))

WriteLine(File,EntityPitch(e_par,1))
WriteLine(File,EntityYaw(e_par,1))
WriteLine(File,EntityRoll(e_par,1))
EndIf
Next
CloseFile(File)
End Function

Dkey 04.06.2007 01:17

Загрузка обектов
 
Всё понял!! Ща посмотрим что выйдет!:) :)

Dkey 08.06.2007 01:58

Загрузка обектов с помощю FineChilder
 
Больше некто помочь нехочет?!:(
Мне очень нужно:wallbash:

MoKa я извеняюсь но как редактировать название темы???:@

vlad почемуто твой код уменя в блице непроходит?!:wallbash:

moka 08.06.2007 02:15

Re: !!!Прошу помощи!!!
 
Цитата:

MoKa я извеняюсь но как редактировать название темы???
"Edit" первого поста, там будет сверху "тема". ;)

HolyDel 08.06.2007 02:17

Re: !!!Прошу помощи!!!
 
ent=loadanimmesh("a.3ds")
for i=1 to countchildren(ent)
child=getchild(ent,i)
name$=entityname(child)
cmd$=lower(mid(name,1,instr("_",name)-1))
dat$=lower(mid(name,instr("_",name)+1))
select cmd
case "npc"
select dat
case "gorn"
creategorn(entityx(child,1),entityy(child,1),entit yz(child,1))
end select
freeentity child
case "monster"
freeentity child
case "fire"
freeentity child
end select

next

Dkey 09.06.2007 23:58

Re: Загрузка обектов с помощю FineChilder
 
MoKa еще раз перепрошую за свою тупость!:@

HolyDel за код спасиба но проблема...:''(( до чого в тебе "creategorn"??? у меня на етом показуе ошибку!! может я чево непонял?!:wallbash:

ЛысыЙ_Чук-Иванчук 10.06.2007 00:36

Re: Загрузка обектов с помощю FineChilder
 
Чтобы создавался допустим Огонь, нужно написать функцию создания огня!

Dkey 11.06.2007 01:25

Re: Загрузка обектов с помощю FineChilder
 
#vlad# я понял что ето фунция.. я создал функцию но типерь проблема.. обект создается в кординатах 0.0.0. а не там де уменя куб!!! :((

У меня прозьба кто небудь может выклась весь код!!!

HolyDel 11.06.2007 01:30

Re: Загрузка обектов с помощю FineChilder
 
какой редактор?
ты уверен что куб находится именно в том месте где надо а не в корне сцены, а только вертексы его смещены в точку назначения?

Dkey 14.06.2007 01:28

Re: Загрузка обектов с помощю FineChilder
 
HolyDel
я пользуюся 3ds max8..
уверен!!
У меня Blitz 3D v1.98

Я не уверен в том что правильно написал прогу(я имею веду фунцию создания НПС).. потому прошу помощи (киньте сылку на пример или напишите код) зарание спасиба!!

ЛысыЙ_Чук-Иванчук 14.06.2007 14:08

Re: Загрузка обектов с помощю FineChilder
 
Ну вот те код который находит определеные объекты и записывает их значения в блокнот=))

Цитата:

Graphics3D 800,600,32,2
SetBuffer BackBuffer()
Global ColVo=0
Print "ЗАГРУЗКА"
baza= LoadAnimMesh("..\data\baza\baza1.b3d")
ScaleEntity baza,.23,.23,.23
SaveLevel(baza, "Zab", "..\data\baza\zab.ini")
Print "КОЛИЧЕСТВО ЗАБОРА_"+ COLVO
SaveLevel(baza, "stul", "..\data\baza\stul.ini")
Print "КОЛИЧЕСТВО СТУЛЬЕВ_"+ COLVO
SaveLevel(baza, "stol", "..\data\baza\stol.ini")
Print "КОЛИЧЕСТВО СТОЛОВ_"+ COLVO
SaveLevel(baza, "Bocha_1", "..\data\baza\meloch\bochKa\BochKa.ini")
Print "КОЛИЧЕСТВО БОЧЕГ_"+ COLVO

Print "КОНЕЦ"

Delay 2000


Function SaveLevel(entity, mesh$, File$)
File=WriteFile(File): If file=0 End
colVo=0
For i=1 To CountChildren(entity)
e_par=GetChild(entity,i)
n_e=0 :n_e=Instr(EntityName(e_par),mesh)
If n_e<>0
colvo=colvo+1
WriteLine(File,EntityX(e_par,1))
WriteLine(File,EntityY(e_par,1))
WriteLine(File,EntityZ(e_par,1))
WriteLine(File,EntityPitch(e_par,1))
WriteLine(File,EntityYaw(e_par,1))
WriteLine(File,EntityRoll(e_par,1))
EndIf
Next
CloseFile(File)


Dkey 17.06.2007 01:56

Re: Загрузка обектов с помощю FineChilder
 
vlad к чему етот код?!
подобный код я уже написал и он уменя применяется у переходе с уровня на уровень (хоть тормазнуто но работает:))

Уменя прозьба кто нибуди может выкласть сылку или пример на функцию создания огня;)


Часовой пояс GMT +4, время: 22:57.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot