-- LUA Script - precede every function and global member with lowercase name of script local idle_delay = {} local idle_delay_init = {} local idlex = {} local idlez = {} local HP = {} local attack_delay = {} function ai_melee2_init(e) ai_soldier_state[e] = "idle" ModulateSpeed(e,1.0) idle_delay[e] = 5000 idle_delay_init[e] = idle_delay[e] CharacterControlUnarmed(e) attack_delay[e] = 0 end function ai_melee2_main(e) PlayerDist = GetPlayerDistance(e) EntObjNo = g_Entity[e]['obj'] if HP[e] == nil then HP[e] = g_Entity[e]['health'] end if ai_soldier_state[e] == "idle" then if PlayerDist < 600 then if PlayerDist > 100 then AIEntityGoToPosition(EntObjNo,g_PlayerPosX,g_PlayerPosZ) end ai_soldier_state[e] = "alerted" elseif PlayerDist > 600 then if GetTimer(e) >= idle_delay[e] then idlex[e] = math.random(0,45000) idlez[e] = math.random(0,45000) idle_delay[e] = GetTimer(e) + idle_delay_init[e] end SetCharacterToWalk(e) AIEntityGoToPosition(EntObjNo,idlex[e],idlez[e]) if g_Entity[e]['health'] < HP[e] then AIEntityGoToPosition(EntObjNo,g_PlayerPosX,g_PlayerPosZ) ai_soldier_state[e] = "alerted" end end elseif ai_soldier_state[e] == "alerted" then if g_Entity[e]['plrvisible'] == 0 then RotateToPlayer(e) else HP[e] = g_Entity[e]['health'] ai_soldier_state[e] = "combat" end elseif ai_soldier_state[e] == "combat" then SetCharacterToRun(e) RotateToPlayer(e) if PlayerDist < 100 then --AIEntityStop(EntObjNo) AIEntityGoToPosition(EntObjNo,g_Entity[e]['x'],g_Entity[e]['z']) if ai_soldier_state[e]~="attack" then if attack_delay[e] == 0 then attack_delay[e] = GetTimer(e) + 500 end --if GetAnimationFrame(e)<2981 or GetAnimationFrame(e)>3034 then ai_soldier_state[e] = "attack" CharacterControlLimbo(e) SetAnimationFrames(2981,3034) if g_Entity[e]['animating'] == 0 then PlayAnimation(e) end --end end if ai_soldier_state[e]=="attack" then CharacterControlUnarmed(e) if PlayerDist < 100 and GetTimer(e) >= attack_delay[e] then attack_delay[e] = GetTimer(e) + 500 HurtPlayer(e,50) SetAnimationFrames(2552,2603) if g_Entity[e]['animating'] == 0 then PlayAnimation(e) end end ai_soldier_state[e] = "idle" --if GetAnimationFrame(e) > 3033 then --end end else AIEntityGoToPosition(EntObjNo,g_PlayerPosX,g_PlayerPosZ) end end end