Примитивно по твоему вопросу:
Type player
Field pl_model%
Field mouse_click_count%,hit_count%,combo_active_time%
Field idle_animation%
Field combo_animation[4]
End Type
создаем тип в котором содержится имя модели, счетчик нажатий мышки, счетчик ударов, и массив анимаций, и время, пока счетчик активен.
Окда?
идем далее.
Function CreatePlayer.player()
p.player = New player
p\pl_model = xLoadAnimMesh("Data\Mesh\Test_Actor.b3d")
p\mouse_click_count% = 0
p\hit_count% = 0
p\combo_active_time% = 0
p\idle_animation = xLoadAnimSeq(p\pl_model,"Data\Anim\Fight_Idle.b3d")
p\combo_animation[1] = xLoadAnimSeq(p\pl_model,"Data\Anim\Kombo_Hit_Leg_1.b3d")
p\combo_animation[2] = xLoadAnimSeq(p\pl_model,"Data\Anim\Kombo_Hit_Leg_1_block.b3d")
p\combo_animation[3] = xLoadAnimSeq(p\pl_model,"Data\Anim\Kombo_Hit_Leg_1.b3d")
p\combo_animation[4] = xLoadAnimSeq(p\pl_model,"Data\Anim\Kombo_Hit_Leg_1.b3d")
Return p
End Function
Выписываем за всю хурму.
как ты видишь все переменные тут обнулены по дефолту.
идем далее.
Function UpdatePlayer()
For p.player = Each player
If xMouseHit(1)
p\mouse_click_count% = p\mouse_click_count% + 1
p\hit_count% = p\hit_count% + 1
If xAnimSeq(p\pl_model)<>p\combo_animation[p\hit_count%] Then
xAnimate p\pl_model,3,1,p\combo_animation[p\hit_count%]
EndIf
If p\hit_count% >=4 Then
p\hit_count% = 0
p\mouse_click_count% = 0
EndIf
End If
If p\mouse_click_count% <> 0 Then
p\combo_active_time% = p\combo_active_time% + 1
EndIf
If p\mouse_click_count% > 0 And p\combo_active_time% > 1000
p\mouse_click_count% = 0
p\hit_count% = 0
p\combo_active_time% = 0
EndIf
If Not xAnimating(p\pl_model) Then xAnimate p\pl_model,1,1,p\idle_animation
Next
End Function
тут получается как.
Ты тыкаешь мышку. Счетчик нажатий прибавляет еденицу, и счетчик ударов прибавляет еденицу.
вместо циферки в квадратных скобках тут как раз и указана переменная "счетчик ударов" чтоб не гребстись с написанием длинного кода.
в итоге получается что каждое нажатие у тебя сопровождается порядковой анимацией которую ты прописал выше. как только ты тыкаешь кнопку первый раз, запускается счетчик активного времени таймера. как только он доходит до момента истечения, счетчик ударов и кликов обнуляется. соответственно, когда ты тычешь мышку больше скольки то там ударов( хз мож у тя там будет 99Хкомбо) то счетчик опять же обнуляется. это примитивная функция. но думаю, тебе она пригодится, как пища.