라그나로크 게임 내의 호문클루스의 행동은, 라그 프로그램이 설치된 폴더의 AI 폴더 안에 있는 AI.lua, Util.lua 에 의해서 조절됩니다. 라그 게이머는 자신이 원하는 인공지능을 스스로 만들 수도 있고, 다른 사람이 만든 인공지능을 사용할 수도 있게 하는 것이 목적입니다.
스크립트를 작성하는 언어는 루아(LUA) 입니다.
스크립트를 작성하는 언어는 루아(LUA) 입니다.
MoveToOwner (id)
해당 id의 호문클루스를 주인 가까이 이동시킨다.
Move (id,x,y)
해당 id의 호문클루스를 목적지로 이동시킨다.
Attack (id1,id2)
해당 id1의 호문클루스에게 id2를 공격하도록 한다.
GetV (attr,id)
해당 id의 속성 attr 을 얻는다.
GetActors ()
캐릭터 시야에 있는 캐릭터, 엔피시, 몬스터, 아이템, 스킬들의 id를 얻어온다.
GetTick ()
시간을 얻어온다.
GetMsg (id)
라그나로크 클1라이언트로부터 전달된 메시지가 루아의 table 형태로 반환된다.
GetResMsg (id)
라그나로크 클1라이언트로부터 전달된 예약 메시지가 루아의 table 형태로 반환 된다.
SkillObject (id,level,skill,target)
해당 id 에 해당하는 것이 target 에 해당하는 것에 대하여 level 값에 해당하는 어떤 스킬(skill) 을 사용한다.
SkillGround (id,level,skill,x,y)
해당 id 에 해당하는 것이 x.y 좌표에 대하여 level 값에 해당하는 skill 을 사용한다.
IsMonster (id)
id 에 해당하는 것이 몬스터이면 1을 반환하고 그렇지 않다면 0을 반환한다.
TraceAI (string)
실행중인 스크립트의 현재 상태를 기록하여 분석에 이용한다.
해당 id의 호문클루스를 주인 가까이 이동시킨다.
Move (id,x,y)
해당 id의 호문클루스를 목적지로 이동시킨다.
Attack (id1,id2)
해당 id1의 호문클루스에게 id2를 공격하도록 한다.
GetV (attr,id)
해당 id의 속성 attr 을 얻는다.
GetActors ()
캐릭터 시야에 있는 캐릭터, 엔피시, 몬스터, 아이템, 스킬들의 id를 얻어온다.
GetTick ()
시간을 얻어온다.
GetMsg (id)
라그나로크 클1라이언트로부터 전달된 메시지가 루아의 table 형태로 반환된다.
GetResMsg (id)
라그나로크 클1라이언트로부터 전달된 예약 메시지가 루아의 table 형태로 반환 된다.
SkillObject (id,level,skill,target)
해당 id 에 해당하는 것이 target 에 해당하는 것에 대하여 level 값에 해당하는 어떤 스킬(skill) 을 사용한다.
SkillGround (id,level,skill,x,y)
해당 id 에 해당하는 것이 x.y 좌표에 대하여 level 값에 해당하는 skill 을 사용한다.
IsMonster (id)
id 에 해당하는 것이 몬스터이면 1을 반환하고 그렇지 않다면 0을 반환한다.
TraceAI (string)
실행중인 스크립트의 현재 상태를 기록하여 분석에 이용한다.
GetV 함수에 사용되는 상수 값들
V_OWNER : 주인 캐릭터의 번호 반환
V_POSITION : 현재 위치 x, y 반환
V_TYPE : 어떤 객체인가? (미구현)
V_MOTION : 현재 동작 반환
V_ATTACKRANGE : 공격 범위 반환 (미구현, 임시로 1셀)
V_TARGET : 공격이나 스킬 사용 목표 반환
V_SKILLATTACKRANGE : 스킬 공격 범위 (미구현)
V_HOMUNTYPE : 호문클루스 종류 반환
V_HP : 호문클루스나 그 주인의 HP
V_SP : 호문클루스나 그 주인의 SP
V_MAXHP : 호문클루스나 그 주인의 최대 HP
V_MAXSP : 호문클루스나 그 주인의 최대 SP
V_OWNER : 주인 캐릭터의 번호 반환
V_POSITION : 현재 위치 x, y 반환
V_TYPE : 어떤 객체인가? (미구현)
V_MOTION : 현재 동작 반환
V_ATTACKRANGE : 공격 범위 반환 (미구현, 임시로 1셀)
V_TARGET : 공격이나 스킬 사용 목표 반환
V_SKILLATTACKRANGE : 스킬 공격 범위 (미구현)
V_HOMUNTYPE : 호문클루스 종류 반환
V_HP : 호문클루스나 그 주인의 HP
V_SP : 호문클루스나 그 주인의 SP
V_MAXHP : 호문클루스나 그 주인의 최대 HP
V_MAXSP : 호문클루스나 그 주인의 최대 SP
function GetMyEnemy (myid) - 나의 적을 찾는다.
local result = 0
local type = GetV (V_HOMUNTYPE,myid) -- 나는 어떤 호문클루스인가
if (type == LIF or type == LIF_H or type == AMSTR or type == AMSTR_H) then
result = GetMyEnemyA (myid) -- 비선공형 적 찾기 함수
elseif (type == FILIR or type == FILIR_H or type == VANILMIRTH) then
result = GetMyEnemyB (myid) -- 선공형 적 찾기 함수
end
return result
end
local result = 0
local type = GetV (V_HOMUNTYPE,myid) -- 나는 어떤 호문클루스인가
if (type == LIF or type == LIF_H or type == AMSTR or type == AMSTR_H) then
result = GetMyEnemyA (myid) -- 비선공형 적 찾기 함수
elseif (type == FILIR or type == FILIR_H or type == VANILMIRTH) then
result = GetMyEnemyB (myid) -- 선공형 적 찾기 함수
end
return result
end
[출처] 라그나로크 호문클루스 AI 스크립트|작성자 Wz 강냉이
'게임 관련 정보 > 라그나로크' 카테고리의 다른 글
상점관련 참고용 스크립트 (0) | 2012.12.01 |
---|---|
설문조사 관련 NPC 스크립트 (0) | 2012.12.01 |
직업 코드 관련 번호 (0) | 2012.12.01 |
무적인 운영자 아이템 관련 설명 (0) | 2012.12.01 |
아이템 관련 함수메서드 설명 (0) | 2012.12.01 |