펫 AI 스크립팅

펫 AI 스크립트는 서버 스크립트와 같이 프로젝트 폴더/ServerScripts에 Hello.lua와 같은 파일 이름으로 존재해야 읽힙니다.

pet: 해당 펫의 유닛(ScriptUnit)을 나타낸다.
ai: ai가 실행할 행동(ScriptPetUnitAI)을 나타낸다.
event: 실행될 로직을 확인한다.
AI_INIT(-1): 최초로 펫 AI 등록 시 실행, AI_UPDATE(0) : 2초마다 계속 실행

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 Server.SetPetAI( 21, --펫이 될 캐릭터 id function(pet,ai,event) -- 최초 펫 AI 등록 시 실행 if(event == AI_INIT) then ai.customData.timer = 1; end --2초마다 실행 if(event == AI_UPDATE) then --거리가 200만큼 멀어지면 주인을 따라감 --거리가 400만큼 멀어지면 주인의 위치로 순간이동 --ai.SetFollowMaster(true,200,400) --타깃이 없으면 주인을 따라다님 if(ai.GetTargetUnit() == nil) then ai.SetFollowMaster(true,200,400) end --기본 100, 200 --ai.SetFollowMaster(true) --가장 가까운 적 유닛을 타깃으로 지정 ai.SetNearTarget(2,200) --펫의 타깃 존재 시 스킬 사용 --기본적으로 스킬은 타깃을 향해 발사 if(ai.GetTargetUnit() ~=nil) then --타깃이 정해지면 따라다니는 것을 멈춤 ai.SetFollowMaster(false) ai.StopMove() -- 타깃이 정해지면 타깃을 따라다니면서 공격 ai.MoveToPosition(ai.GetTargetUnit().x,ai.GetTargetUnit().y) -- 주인에게 버프 추가 ai.AddMasterBuff(15) -- 타깃을 향해 발사 ai.UseSkill(23) -- 펫의 주인 위치에서 타깃을 향해 발사 ai.UseSkill( 22 ,nil ,Point(ai.GetMasterUnit().x,ai.GetMasterUnit().y)) end --커스텀 데이터를 이용한 타이머 6초에 한 번씩 주위의 드롭된 아이템 획득 ai.customData.timer = ai.customData.timer + 1; if(ai.customData.timer == 3) then -- 반경 100의 거리 안에 들어오는 드롭 아이템 획득 ai.AcquireNearDropItem(100) ai.customData.timer = 0; end end end )

 

SUPERCAT Inc. All Rights Reserved.