언어/기타
2006.03.05 07:40

오토가드 만들기(이론만)

조회 수 605 추천 수 3 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
강의

실제로 제 게임에 투여 해 볼까 했는데, 그냥 귀찮아서 안합니다.
말인즉슨, 실제 제작된 스크립트는 없습니다.

그러니까 이론만 듣고 누가 만들어 주세요;ㅅ;
이 스크립트를 만들 시간도 없고, 완벽하게 디버깅할 실력도 없어서....

그럼 시작~


오토가드

제가 설명하려는 오토가드는 FFX식 오토가드 입니다. 하지만 일반적으로
"오토가드"라고 하면 적의 공격에 자동으로 방어하는 것입니다.
마비노기로 보자면 헤비 스텐더 정도 되겠군요.
오토가드(일반)는 크게 두가지가 있습니다.

1. 오토가드 속성이 있다.(혹은 그러한 방어구를 착용했다.)
2. 오토가드 스테이트다.

마비노기에 비유하자면, 1번은 카이트 실드를 착용하고 화살을 막아내는 것이고,
2번은 버서커 음악을 연주해서 폭주한 상태입니다.

캐릭터에 속성이 있다면 그 속성을 조건으로 해서 가드 판정을 삽입해 주시면됩니다.
그리고 속성이라면 방어력을 2배로 증가 시키거나, 스크립트로 actor 1~x 를 스테이트의
조건으로 삼아서 가드 판정을 넣어주시면 됩니다.



if self.actor.가드속성 = 2
# element_sec의 table 배열에서 2번째 것을 불러옵니다. key 사용해야할지 모르겠군요.
self.damage /= 2
# 가드 판정
end

위의 것이 "속성을 가진 캐릭터" 이론입니다.



if self.actor.armor1_id[x].가드속성 = 2
self.damage /= 2
end
if self.actor.armor2_id[y].가드속성 = 2
self.damage /= 2
end
if self.actor.armor3_id[z].가드속성 = 2
self.damage /= 2
end
if self.actor.armor4_id[w].가드속성 = 2
self.damage /= 2
end

제 생각으로는 이것도 짧게 요약하는 방법이 있을법 하지만, 모르므로 스킵합니다(....).
물론 위의 것은 "속성을 가진 방어구"의 판정 입니다.


스테이트는 간단하게 방어력 증가로만 해 주십시오. 왜냐구요? 제가 모르니까요(....).
스크립트로 대상 스테이트를 조건으로 하는 방법을 모르겠......


아무튼 이정도가 "기본 오토가드" 입니다.




그럼 이제 FFX식 오토가드에 대해서 설명해야겠죠.

자랑을 하나 하자면, 저는 FFX 초인입니다. Tidus 올스텟(행운까지) 255, 마나 999, HP 60000
칠요의 무기 다 얻었습니다. 하지만 북미판이여서 다크에이언이나 리본은.....orz

아무튼, 270 동안 플레이 해봤더니 오토가드의 원리를 알겠더군요....


바로 스크립트 먼저 쓰겠습니다.

if actor.weapon_id[a].피어싱속성 = 2 #이것 역시 element_set의 table에서 뽑음
  attack_effect(b) #attack_effect 메소드를 불러옵니다. Game_Battler3 에서 참조하세요.
else
  attack_effect(b)
  self.pdef *= 100
  self.pdef /= attacker.str #힘으로 측정해야 합니다.
  if self.pdef >= 100
    self.pdef = 100
  end
  if rand(100) <= self.pdef
    self.damage /= 2
  end
end

몇몇 빼고는 거의 맞을 것입니다.
원리를 말하자면, 적의 방어력/나의 공격력을 오토가드의 확률로 계산하는 것입니다.
하지만 피어싱이 있다면 적용 되지 않죠. 그래서 처음 if 가 있는 것입니다.
피어싱이 있다면 본래대로 데미지를 계산하고, 피어싱이 없다면 계산한 후
데미지 등을 바꾸는 원리 입니다.

마찬가지 방법으로, 방어력/공격력의 퍼센트만큼 공격력을 차감시키는 방법이 있습니다.
하지만 이 경우에는 방어력/공격력이 50 이하일때 50으로 설정 된다는 것을 추가시켜야겠죠.
안그러면 데미지가 0이 되버리니까요.


대충 해서 만들어 봤습니다.
절대로! 절대로!
위 부분의 스크립트를 그대로 사용하시면 안됩니다.
무조건 에러 납니다.

그럼 잘 쓰세요~
나중에 시간 있으면 완벽하게 만들어서 스크립트를 올리겠습니다.


※rand(x)는 0~x 까지의 수 중 아무거나 고를때 사용하는 것입니다.
?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
701 언어/기타 [마지막 3명 모집] [취업연계무료교육] VR/AR 게임 콘텐츠 전문가 양성 과정 교육생 모집 file 황금상자 2017.07.14 702
700 언어/기타 JSON parser 변환데이터 저장시 생기는 Object Too Deep 해결하기 title: 댓글러lklslel 2016.12.24 851
699 언어/기타 앙뜨프리너십에서 해커톤 부트캠프 모집중이네요 file 마나님이 2016.11.08 908
698 언어/기타 게임의 버전을 짜 보자! - 유의적 버전 2.0.0 Yanggaeng 2016.06.07 1123
697 언어/기타 RPG게임 뻔한요소들. 8 title: 천무천무 2015.10.05 1644
696 언어/기타 자바스크립트와 관련해서 참고할 만한 사이트들 3 MARCO 2015.10.04 921
695 언어/기타 꿀잼이군요! 3 사람님[대회참가] 2015.05.20 873
694 언어/기타 [강의링크] 대비법칙-색상대비-밀당의 재미 약한 반대색 설계 title: 천무천무 2015.04.02 636
693 언어/기타 오다 주웠습니다. 9 사람님[대회참가] 2015.03.30 917
692 언어/기타 무료 이미지 사이트 Pixabay! 9 file 나작소 2015.03.28 909
691 언어/기타 페인터(코럴) 브러쉬 세팅 공유 :) 8 file 샤이귤군 2015.03.28 1577
690 언어/기타 유화재료 & 기법 살짝 팁 공유 (매우 깁니다 -3-) 11 file 샤이귤군 2015.03.28 912
689 언어/기타 픽사에서 텍스쳐 꽁짜로 뿌림ㅋ 8 사람님(대회참가) 2015.03.26 912
688 언어/기타 멀티해상도에 따른 속도와 가속도 값의 조절 1 MiDtics2 2013.01.13 859
687 언어/기타 [Android] 멀티스크린 노하우 2 MiDtics2 2012.10.27 1516
686 언어/기타 [js] 코드 압축 걸음마 2 1 2012.06.12 1059
685 언어/기타 [css] css 겉핥기 핥핥 1 file 2012.05.03 938
684 언어/기타 [css, js] form - select안의 option들에 스타일 적용하기 4 file 2012.04.28 5364
683 언어/기타 게임,개발기획의 기초 5 Grand 2011.08.01 2900
682 언어/기타 지형설정에서 원경(앞, 뒤)가 가지는 역할 file Dicky 2011.07.28 2491
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 36 Next
/ 36


[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)