Показать сообщение отдельно
Старый 21.02.2006, 01:03   #47
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Квази-интеллект2
Слегка погонял ботов и понял, что чего-то не хватает.
Подправим алгоритм поведения:
Если бот получил урон от выстрела он начинает двигаться в строну выстрела. Причём игрок, если выстрел

был совершён с дальнего расстояния, может успеть смениь локацию.
Function update_shot()
	v#=0.1
	max_dist#=1000
	For a.shot=Each shot
	;=
 If a\time=0 a\time=MilliSecs()
 new_time=MilliSecs()
 delta_t=new_time-a\time
 a\time=new_time
 vs#=v*delta_t
	;=
 MoveEntity a\entity,0,0,vs#
 a\dist#=a\dist#+vs#
 bot_h=EntityCollided(a\entity,BOTT)
 If a\dist#>max_dist#
 	FreeEntity a\entity
 	Delete a
 ElseIf EntityCollided(a\entity,TERRT)<>0
 	FreeEntity a\entity
 	Delete a
 ElseIf bot_h<>0
 	FreeEntity a\entity
 	Delete a
 	bhandle=EntityName(bot_h)
 	bc.bot=Object.bot(bhandle)
 	bc\Survivability=bc\Survivability-16
 ;=
 	PositionEntity bc\point,EntityX(user,1),EntityY(bc\point,1),EntityZ(user,1)
 ;=
 	If bc\Survivability<=0
  Delete bc
  FreeEntity bot_h
  create_bot(EntityX(user)+Rnd(-100,100),2,EntityZ(user)+Rnd(-100,100))
 	EndIf
 EndIf
	Next
End Function
Как видите - дописали ВСЕГО одну строчку,
PositionEntity bc\point,EntityX(user,1),EntityY(bc\point,1),Entit yZ(user,1)
но какой эффект =)
И ещё кое-что: пусть бот становится красным, если он "навёлся" на игрока.
Function update_bot()
	Rdist#=15
	v#=0.01
	For a.bot=Each bot
	;=
 If a\time=0 a\time=MilliSecs()
 new_time=MilliSecs()
 delta_t=new_time-a\time
 a\time=new_time
	;=
 If EntityDistance(user,a\entity)<Rdist#
 	PointEntity a\entity,user
 	EntityColor a\entity,255,0,0
 Else
 	EntityColor a\entity,255,255,255
 	If EntityDistance(a\entity,a\point)<2
  PositionEntity 

a\point,EntityX(a\point)+Rnd(-40,40),EntityY(a\point),EntityZ(a\point)+Rnd(-40,40)
 	EndIf
 	PointEntity a\entity,a\point
 EndIf
	;===========
 MoveEntity a\entity,0,0,v#*delta_t
 TranslateEntity user,0,-G#*delta_t,0
	Next
End Function
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pitonms (16.06.2009)