Показать сообщение отдельно
Старый 11.10.2011, 22:19   #10
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,371
Написано 2,477 полезных сообщений
(для 6,865 пользователей)
Ответ: Подскажите пожалуйста

Примерно так:

Тут грузим модель твоего уровня
Обрати внимание что тут используется LoadAnimMesh
Если грузить через LoadMesh то у нас весь уровень будет единой модельюа нам надо другое

Global LEVEL LoadAnimMesh("MyLevel.b3d")

Наш уровень загружен и теперь можно пробежаться по его кускам (Чилдам)
SeekChilds(LEVEL)


Эта ф-ция перебирает все куски уровня
Function SeekChilds(ent)  
    
Local ichild 
     
    
For i=1 To CountChildren(ent)  
        
child=GetChild(ent,i)  
        If 
child<>0  
            
If CountChildren(child)>0 Then SeekChilds(child)
           
            ; 
Выполняем операции над чилдом
            
То есть вызывается та самая нужная нам ф-ция ApplyChild
            
Которая ставит бронюоружие и тд
            ApplyChild
(child
        
           EndIf  
    
Next  
End 
Function 


Вот сама эта ф-ция
Function ApplyChild(child)
    
Local name$=Lower(EntityName(child))
    If 
Instr(name$,"startplaer")>0 Then 
   filein 
ReadFile("startpaer.dat")
    
x# = ReadFloat( filein )
    
y# = ReadFloat( filein )
    
z# = ReadFloat( filein )
PositionEntity plaer,x#,y#,z# 
CloseFilefilein )
    EndIf
    If 
Instr(name$,"shield")>0 Then 
        
ставим броню в месте этого чилда
    
EndIf
    If 
Instr(name$,"enemy")>0 Then 
        
ставим врага в месте этого чилда
    
EndIf
End Function

Всё это делаем до главного цикла 
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 4090 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
LLI.T.A.L.K.E.R. (11.10.2011)