Pet AI

  • The pet AI script must exist in the project folder/ServerScripts with a file name like Hello.lua to be read, just like the server script.

script
explanation

pet

Indicates the unit (ScriptUnit) of the corresponding pet.

ai

Indicates the action (ScriptPetUnitAI) that AI will execute.

event

Check the logic to be executed.

AI_INIT(-1)

Runs when registering a pet AI for the first time

AI_UPDATE(0)

Keep running every 2 seconds

예제) 서버 스크립트 - 펫 AI 설정

Server.SetPetAI(
        21, --Character id to be your pet
        function(pet,ai,event)

                -- Runs when first pet AI is registered
                if(event == AI_INIT) then
                        ai.customData.timer = 1;
                end

                --Run every 2 seconds
                if(event == AI_UPDATE) then
                        --When the distance is 200, it follows the owner.
                        --Teleports to the owner's location when the distance is 400
                        --ai.SetFollowMaster(true,200,400)

                        --If there is no target, it follows the owner.
                        if(ai.GetTargetUnit() == nil) then
                                ai.SetFollowMaster(true,200,400)
                        end

                        --basic 100, 200
                        --ai.SetFollowMaster(true)

                        --Target the nearest enemy unit.
                        ai.SetNearTarget(2,200) 

                        --Use skill when pet target exists
                        --Basically, the skill fires at the target.
                        if(ai.GetTargetUnit() ~=nil) then
                                --Once the target is set, stop following them.
                                ai.SetFollowMaster(false)
                                ai.StopMove()

                                -- Once the target is set, follow the target and attack.
                                ai.MoveToPosition(ai.GetTargetUnit().x,ai.GetTargetUnit().y)
                                -- Add a buff to the owner
                                ai.AddMasterBuff(15)
                                -- Fire at the target
                                ai.UseSkill(23) 
                                -- Fires at the target from the pet's owner's position
                                ai.UseSkill(
                                22
                                ,nil
                                ,Point(ai.GetMasterUnit().x,ai.GetMasterUnit().y))
                        end

                        --Timer using custom data to acquire dropped items around you once every 6 seconds                        
                        ai.customData.timer = ai.customData.timer + 1;
                        if(ai.customData.timer == 3) then
                                -- Obtain drop items within a 100 radius
                                ai.AcquireNearDropItem(100)
                                ai.customData.timer = 0;
                        end
                end

        end
)

Last updated