Показать сообщение отдельно
Старый 17.12.2007, 00:32   #16
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Синтаксис в блице

вот кусок кода из вартич
			;Так скажем, захват зданий
			If u(t,i,style_)=uns_base
			
				If uf(t,i,protected_)>0
				
					If u(t,i,assaulted_)
										
						h=Rnd(1,3)
						If h=1
							fas=0
							eas=0
							
							maxasss=0
							For ot=0 To maxteam
								curasss=0
								For oi=1 To ttu(ot)
								
									If u(ot,oi,assault_) And u(ot,oi,intoENT_)=0
									
										If EntityDistance(u(ot,oi,ent_),ent)<40
											If dip(ot,t)
												fas=fas+1
											Else
												eas=eas+1
												curasss=curasss+1
												If curasss>maxasss Then maxasss=curasss:u(t,i,assault_team_)=ot
											EndIf
										EndIf
										
									EndIf
									
								Next
								
							Next
						
							If eas<fas-1 Or eas=0
								u(t,i,assaulted_)=0		
							EndIf
						EndIf
	
						pgrvalue=uf(t,i,cur_protect_)*200.0/uf(t,i,protect_)
						spx=uf(t,i,spx_)-100
						spy=uf(t,i,spy_)-60
						
						SetColor tm_color(t,1),tm_color(t,2),tm_color(t,3)	
						SetBlend FI_ALPHABLEND									
						For k=0 To pgrvalue-1
							DrawImageEx(gfx_assswirl,spx+k,spy,(k+MilliSecs()*0.03) Mod 12)
						Next
						
						SetColor tm_color(u(t,i,assault_team_),1),tm_color(u(t,i,assault_team_),2),tm_color(u(t,i,assault_team_),3)							
						For k=pgrvalue To 199
							DrawImageEx(gfx_assswirl,spx+k,spy,(k+MilliSecs()*0.03) Mod 12)
						Next	
						
						SetColor 255,255,255	
						SetBlend FI_LIGHTBLEND
						DrawImageEx gfx_assbar,spx,spy
						SetBlend FI_ALPHABLEND
							
						
						uf(t,i,cur_protect_)=uf(t,i,cur_protect_)-1
						
						If uf(t,i,cur_protect_)<0
							u(t,i,assaulted_)=0
							uf(t,i,cur_protect_)=1
							TransmitUnit(t,i,u(t,i,assault_team_))							
						EndIf

					Else
					
						uf(t,i,cur_protect_)=uf(t,i,cur_protect_)+5
						If uf(t,i,cur_protect_)>uf(t,i,protect_) Then uf(t,i,cur_protect_)=uf(t,i,protect_)
						h=Rnd(1,30)
						If h=1
							fas=0
							eas=0
							maxasss=0
							For ot=0 To maxteam
								curasss=0
								For oi=1 To ttu(ot)
								
									If u(ot,oi,assault_) And u(t,i,into_)=0
									
										If EntityDistance(u(ot,oi,ent_),ent)<40
											If dip(ot,t)
												fas=fas+1
											Else
												eas=eas+1
												curasss=curasss+1
												If curasss>maxasss Then maxasss=curasss:u(t,i,assault_team_)=ot
											EndIf
										EndIf
										
									EndIf
									
								Next
								
							Next
							
							If eas>fas+2
								u(t,i,assaulted_)=1								
							EndIf
							
						EndIf
						
					EndIf
					
				EndIf
				
			EndIf
			;Так скажем обработка гарнизона, когда юнит сидит внутри
			
			If u(t,i,into_)
				PositionEntity ent,EntityX(u(t,i,intoENT_),1),EntityY(u(t,i,intoENT_),1),EntityZ(u(t,i,intoENT_),1)				
			EndIf
			
			If u(t,i,maxinto_)>0 And t=myteam
				If u(t,i,nav_time_)>1
					packing=0
					idut_into=0
					
					For ot=0 To maxteam
						For oi=1 To ttu(ot)
							If u(ot,oi,intoENT_)=ent Then idut_into=idut_into+1
						Next
					Next
					
					If idut_into<u(t,i,maxinto_)
						For k=1 To ttu(myteam)
							If k<>i And u(myteam,k,sel_) And ((u(t,i,intotype_)=2 And u(myteam,k,style_)<>uns_base) Or u(myteam,k,style_)=uns_solider) Then packing=1
						Next
						If packing
							current_cur=cur_pack
							If md2
								sx_#=0
								sz_#=0
								cnt=0
								For k=1 To ttu(myteam)
									If k<>i And u(myteam,k,sel_)
										If (u(t,i,intotype_)=2 And u(myteam,k,style_)<>uns_base) Or u(myteam,k,style_)=uns_solider And cnt<(u(t,i,maxinto_)-u(t,i,uinto_))
											u(myteam,k,intoENT_)=ent
											u(myteam,k,intoI_)=i
											u(myteam,k,intoT_)=t
											u(myteam,k,intoID_)=u(t,i,id_)
											sx_#=sx_#+EntityX(u(myteam,k,ent_),1)
											sz_#=sz_#+EntityZ(u(myteam,k,ent_),1)
											cnt=cnt+1
										EndIf
									EndIf
								Next
								
								If cnt>0
									sx_#=sx_#/Float(cnt)
									sz_#=sz_#/Float(cnt)
									
									MoveUnitTo(t,i,sx_,sz_)
									
									If u(t,i,landing_)=0 Then u(t,i,eng_enabled_)=0	
	
								EndIf	
																				
							EndIf
							
						EndIf
						
					EndIf
					
				EndIf
				
			EndIf
(Offline)
 
Ответить с цитированием