액션알피지

액알에서 동료도 같이 싸우게 하는 방법.

by 블루 posted Jan 08, 2004
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
제 포켓몬스터가 날라갔으므로, 방어적인 인공지능 제작의 예제를 보는게 불가능해,

여러분의 게임 제작 기회를 망칠것 같아,

한번 적어봅니다.



아랫쪽 비밀숙녀의 강의 언데드 스펠 제작법에 필수구요,

우리편중에서 승려나 마법사 타입에게 사용하시면 좋습니다.

적이 근처에 있으면 죽이고 다시 주인공에게 돌아오는 방식이거든요.

아래의 통상타격을 마법으로 고치시면,

마법사가 되는겁니다.

물론 궁수도 가능하구요,



노가다 형식과 알고리즘 형식이 있는데,

적의 수가 적을땐 노가다 형식이 더 편하니,

그걸로 갑니다.

알고리즘은 아직 고등학교 다니지 않으시는 분들이 보시면 머리 터져요. -_-;;

고딩이라도 수학점수 나쁜분은 머리 터져요. -_-;;




여기서 '나'는, 지금 인공지능이 움직이려고 하는 케릭터를 말합니다. 기억해두시구요.

◇ 스위치ON/OFF 동작했니?=OFF

일단 모든 동작을 하기에 앞서서 이 코드를 써야되요.
이 코드는 캐릭터가 두번세번 움직이려고 하는 습성을 방지하기 위한 겁니다.

◇ 조건분기 동작했니? 가 OFF
 ◇ 변수 hp 대입 적1의 hp
 ◇ 조건분기 hp 가 1 이상
////////////////적이 살아있나 체크한 겁니다, 죽어있는 녀석 때리러 가면 우습잖아요
  ◇ 변수 x 대입 적1의 x 좌표
  ◇ 변수 y 대입 적1의 y 좌표
////////////////폼으로 대입해놨습니다. 어쩌피 할때마다 끌어쓰는것 보단 빠르니깐
  ◇ 변수 거리1 대입 x 좌표
  ◇ 변수 거리1 감산 나x 좌표
  ◇ 조건분기 거리1 이 0 미만
   ◇ 변수 거리1 곱셈 -1
  ◇ 분기종료
////////////////x 축의 거리를 구하고
  ◇ 변수 거리2 대입 y 좌표
  ◇ 변수 거리2 감산 나y
  ◇ 조건분기 거리2 이 0 미만
   ◇ 변수 거리2 곱셈 -1
  ◇ 분기종료
//////////////// y축의 거리를 구한 후,
  ◇ 변수 거리1 가산 거리2
////////////////거리를 합칩니다.
  ◇ 조건분기 거리1 이 4 이하
   ◇ 조건분기 거리1 이 2 이상
////////////////적이 4칸 안쪽에 있고 2칸 밖깥쪽에 있다면
    ◇ 조건분기 변수x 가 나x 보다 크면
     ◇ 동작지정, 나, 우측으로 이동
    ◇ 분기종료
    ◇ 조건분기 변수x 가 나x 보다 작으면
     ◇ 동작지정, 나, 좌측으로 이동
    ◇ 분기종료
    ◇ 조건분기 변수y 가 나y 보다 크면
     ◇ 동작지정, 나, 아래으로 이동
    ◇ 분기종료
    ◇ 조건분기 변수y 가 나y 보다 작으면
     ◇ 동작지정, 나, 위으로 이동
    ◇ 분기종료
    ◇ 스위치ON/OFF 동작했니?=ON
////////////////나를 이동시킨다. 그리고 동작했다고 알린다.
   ◇ 그외의경우
    ◇ 적1 의 hp 감소
    ◇ 전투애니매이션의 표시 적1, 때리는거
    ◇ 스위치ON/OFF 동작했니?=ON
////////////////적이 1칸 내에 있다는 뜻이므로 과감히 때린다. 그리고 동작했다고 알린다.
   ◇ 분기종료
  ◇ 분기종료
 ◇ 분기종료
◇ 분기종료
대기 0.1 초
////////////////여태까지 실행시킨 코드가 너무 방대한 것이라, 운이 나쁘면 랙걸리므로 중간에 휴식을 취해줘서 랙을 방지한다, 단, 우리편이 적을 좀 느리게 감지할수도 있다. 그래도 6명의 아군을 관리하려면 이렇게 해주어야한다. 아니면 랙!!


휴우.. 이정도면 방어적으로 적을 감지해 공격하는 정도의 효과는 봤습니다.
저 코드를 이젠 복사해서, 적의 수많큼 붙여넣고,
적의 x 좌표와 y 좌표 그리고 적 데미지 주는것만 바꾸시면 됩니다.
아참, 적이 주위에(4칸이내에) 없으면 주인공쪽으로 다시 다가가야 되요.
그래야 방어적인 코드가 되는 셈이죠.
맨 밑에 이 코드를 추가해주세요.

◇ 조건분기 동작했니? 가 OFF
////////////////아직까지도 주인공이 동작을 안했으면 적이 주위에 없다는 뜻 이므로,
 ◇ 조건분기 주인공x 가 나x 보다 크면
  ◇ 동작지정, 나, 우측으로 이동
 ◇ 분기종료
 ◇ 조건분기 주인공x 가 나x 보다 작으면
  ◇ 동작지정, 나, 좌측으로 이동
 ◇ 분기종료
 ◇ 조건분기 주인공y 가 나y 보다 크면
  ◇ 동작지정, 나, 아래으로 이동
 ◇ 분기종료
 ◇ 조건분기 주인공y 가 나y 보다 작으면
  ◇ 동작지정, 나, 위으로 이동
 ◇ 분기종료
////////////////나를 주인공쪽으로이동시킨다.
 ◇ 분기종료
◇ 분기종료
◇ 스위치ON/OFF 동작했니?=OFF
////////////////이제 스위치를 다시 레시트 해줍니다.
대기 0.1
////////////////역시 랙 방지용.


이것까지 하면 모든것 완성.

이제 언데드의 수를 늘리고 싶으시면 이 코드를 복사해서,

다른 이벤트들에 붙여넣고, 나 만 수정해주시면 됩니다.

수정만 해도 상당한 노가다.

어쨋든 노가다용 인공지능 제작 완성~~~~~~~~~


출처 : 비밀소년님의 RPG강좌

Articles

1

Fatal error: Cannot access property sessionController::$lifetime in /web/old/xe/modules/session/session.controller.php on line 45