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 petfunction(pet,ai,event)-- Runs when first pet AI is registeredif(event == AI_INIT) then ai.customData.timer =1;end--Run every 2 secondsif(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;endendend)