Показать сообщение отдельно
Старый 15.08.2011, 18:13   #21
zAvaTARz
Нуждающийся
 
Аватар для zAvaTARz
 
Регистрация: 06.02.2011
Сообщений: 57
Написано 11 полезных сообщений
(для 19 пользователей)
Ответ: Система боя врага в РПГ

Сообщение от LLI.T.A.L.K.E.R. Посмотреть сообщение
Пробую написать подобную систему..
Код внутри:
Graphics3D 800,600,32,2
SetBuffer BackBuffer()

Camera=CreateCamera()

Player=CreateCube()
PositionEntity Player,5,0,-5
Player_Health%=100

Enemy=CreateCube()
EntityColor Enemy,200,100,100
Enemy_IsFight=0				; атакует
Enemy_FightFrame#=0		; задержка атаки (время размаха)

While Not KeyDown(1)
	
	If KeyDown(200) Then MoveEntity Player,0,0,0.1	; ^
	If KeyDown(208) Then MoveEntity Player,0,0,-0.1	; \/
	
	If KeyDown(203) Then MoveEntity Player,-0.1,0,0	; <
	If KeyDown(205) Then MoveEntity Player,0.1,0,0	; >
	
	PositionEntity Camera,EntityX#(Player),EntityY#(Player)+3,EntityZ#(Player)-5
	PointEntity Camera,Player
	
	PointEntity Enemy,Player
	If EntityDistance#(Enemy,Player)>3 Then
		MoveEntity Enemy,0,0,0.08
	Else
		If Enemy_IsFight=0 Then Enemy_IsFight=1
	EndIf
	
	If Enemy_IsFight=1 Then
		Enemy_FightFrame#=Enemy_FightFrame#+1
		If Enemy_FightFrame#>75 Then
			Enemy_IsFight=0
			Enemy_FightFrame#=0
			
			If EntityDistance#(Enemy,Player)<4 Then Player_Health=Player_Health-5
		EndIf
	EndIf
	
	If EntityDistance#(Enemy,Player)>5 Then
		Enemy_IsFight=0
		Enemy_FightFrame#=0
	EndIf
	
	UpdateWorld
	RenderWorld
	
	Text 5,5,Player_Health
	Text 5,25,"Dis:"+EntityDistance#(Enemy,Player)+" | Fight: "+Enemy_IsFight+" | Sum: "+Enemy_FightFrame#
	
	Flip
Wend




В отличии от глупых боёв в ЛА2 - есть проверка "игрок во время удара вблизи или нет".
(В Ла2 и ВоВ: если враг размахнулся, Ты хоть за 5 метров убегай - он тебя считай побил)


Нужно будет добавить модель противника (с мечом или кулаками). И ориентироваться по анимации.
в ла2 удар такой на 5 метров отбежал и всеравно попало
ты думаешь что твой перс которым ты управляешь это все и вся, нет там в нутри есть пивот который двигаеться как показывает сервер
ты отправляешь комманду то что ты нажал бежать, чел двигаеться на компе не отдавая на сервер анимацию движения и скорость передвижения ему отдаеться информация о том что ты нажал , на сервере показывает что ты стоишь рядом, хотя у тебя на экране показано что ты бежишь, если бы была бы система движения на компе, появилось бы много читов и.т.д а так...
(Offline)
 
Ответить с цитированием