질문과 답변

Extra Form

왠만하면 혼자서 해결하고 싶었지만 하나 더 질문하게 되네요.

http://avangs.info/kin/1552659 에서 해결된 스크립트에서 전투때마다 전투 진형을 바꾸려고 한 변수를 지정해서 그 수를 조정해가며 하려고 계속 연구했습니다.

game_variables[1]랑 ACTOR_POSITION 2개는 해당 스크립트에 선언이 없는걸 보니 이미 전에서 선언 된듯 해서 c로 짠다면 이렇게 짰겠네요.

#include <stdio.h>

int main(void)

{

if (game_variables[1] == 1)

      ACTOR_POSITION =
 [[415,160, 0],[435,185, 0],[455,210, 0],[475,235, 0],[495,260, 0],[515,285, 0]]

else

~

end

}

 

if $game_variables[1] == 1

     ACTOR_POSITION =
 [[415,160, 0],[435,185, 0],[455,210, 0],[475,235, 0],[495,260, 0],[515,285, 0]]

else

~

 

if $game_variables[1] == 1?

     ACTOR_POSITION =
 [[415,160, 0],[435,185, 0],[455,210, 0],[475,235, 0],[495,260, 0],[515,285, 0]]

else

~

 

var = $game_variables[1]

if var == 1

     ACTOR_POSITION =
 [[415,160, 0],[435,185, 0],[455,210, 0],[475,235, 0],[495,260, 0],[515,285, 0]]

else

~

 

var = $game_variables[1]

if var == 1

     ACTOR_POSITION =
 [[415,160, 0],[435,185, 0],[455,210, 0],[475,235, 0],[495,260, 0],[515,285, 0]]

else

~

end

이런식으로 할 수 있는 방법이란 방법은 다 해봤는데도 성공하지 못합니다. []메소드가 없다는등, end가 뭐 어쨋다는등 어떻게 해야 할지 막막한 오류들이 뜹니다.

네이버나 질문과 답변을 보면 여러가지 스크립트를 볼 수 있어서 다 찾아봐도 단순히 if문을 쓰려니까 안되네요...

ACTOR_POSITION을 이벤트 창에다 스크립트를 붙여놔도 아무 변화가 없더군요. 도저히 답이 안보입니다. 도와주세요.

Comment '8'
  • ?
    일단 2016.03.09 17:44

    제가 질문을 잘 이해한 건지 모르겠네요. 루비 언어로 조건분기를 사용하고 싶다는 게 맞나요?

    vxa의 도움말(단축키 F1)을 누르시면 [RGSS레퍼런스 항목]이 있습니다.
    그 하위 항목에는 [Ruby의 문법]이라는 항목이 있으니, 그 부분을 참고해보세요.

     

    조건분기 등 루비 문법의 전반적인 사항이 있으니,

    한 번 전체적으로 훑어보시면,

    앞으로 스크립트 수정, 제작 관련해서 도움이 많이 되실 겁니다.

     

    혹시 도움말 한글화가 안 되어있다면,

    아방스 자료실에 해당부분에 대한 한글패치 파일이 있습니다.

    http://avangs.info/index.php?_filter=search&mid=pds_tools&search_keyword=ace&search_target=title_content&document_srl=927934

  • profile
    ifeve 2016.03.09 17:55
    사전이 영어라서 안보고 있었는데 스크립트도 있었군요. 보면서 다시 도전해 보겠습니다!
  • profile
    ifeve 2016.03.09 19:22
    도움말이 있어도 안되네요...
    도움말 써져 있는데로 class Game_Variables을 불러온다음에 game_variables[1]를 불러오려고 해도
    undefined method '[]' for nil:NilClass
    라는 오류가 뜨네요.
    분명 스크립트 에디터 Game_Variables칸에는 class에
    def []=(variable_id, value)
    @data[variable_id] = value
    on_change
    end
    라고 있으니 클래스를 불러오고 game_variables[1]을 쓰면 변수 1번의 값을 봐야하지 않나요? 2시간동안 이것만 잡고 있는데도 왜이리 안되는지 정말 답답하네요 으아...
  • ?
    일단 2016.03.09 21:19

    $game_variables[1] 로 써주셨나요? $를 붙여야합니다.
    알만툴 내에서 사용되는 변수, 스위치는 모두 전역변수로 선언되어있습니다.
    스크립트 상에서 ctrl + shift + 'F키'를 누르고,

    Game_Variables을 검색해보시면 알 수 있습니다.(아마 검색결과 첫 줄에 나올 겁니다.)

     

    참고로, 이외에도 대부분의 Game_???? 클래스들은 전역변수로 선언되어있습니다.

  • ?
    일단 2016.03.09 21:48

    아니면 혹시 $game_variables 변수가 배열로서 선언되기 이전에,
    [1] 코드를 넣으신 게 아닌가 싶네요.


    $game_variables 변수의 생성 시기는, 스크립트에디터 상에서 따지자면,
    rgss_main { SceneManager.run } 에 해당합니다. 즉 가장 끝부분이죠.

     

    추가한 코드가 만약 메소드 내부에 있지 않고 즉시 실행되는 위치에 있었다면,

    전역변수 $game_variables가 생성되기 이전에 코드가 실행되게 되며,

    배열로서 읽을 수 없다고 뜨게 됩니다.

    원하시는 코드를 스크립트에디터말고,
    일단 맵상의 이벤트 내의 [커맨드:스크립트]를 통해서 추가하신 후,
    게임을 실행하시면 되긴 될 겁니다.

    물론 전투 시작 전에 추가된 코드를 커맨드를 통해서 항상 실행시켜줘야겠죠.

    자세한 부분은, 제가 설명드리기는 어려울 거 같네요.
    도움말과 콘솔창을 통해 직접 배워가시는 걸 일단 추천해드립니다.

    저도 배우는 입장이라, 

    문법적인 부분으로 파고들게 되면 부정확한 정보를 전달할 여지가 있습니다.

    ---------------------------------------------

    그리고 ACTOR_POSITION 은 N03::ACTOR_POSITION 으로 써주세요.

    모듈 내의 정수를 외부에서 참조할 때는 모듈명::정수명, 으로 표기해야합니다.

  • profile
    ifeve 2016.03.09 23:11
    정말 감사드립니다! N03::ACTOR_POSITION을 넣고 그걸 이벤트 창의 스크립트에다 갖다 넣었더니 변수에 따라 위치가 변경되네요.
    드디어 몇일동안 계속 막히던 전투 스크립트 부분이 전부 해결되었네요. 거의 다 짜주신것이나 다름없는 수준으로 도와주셔서 감사합니다. 꼭 게임을 완성하도록 할게요!
  • ?

    이벤트창에 그대로 넣으시라는 건... 사실 미봉책으로 말씀드린 겁니다.

    원하시는 부분이 코딩하는 법이라고 생각해서 위와 같이 답변드렸던 것이고요.


    그대로 게임만드시다가 수정할 일이 발생하면 번거로워질 수 있습니다.
    일일이 이벤트페이지 찾아가서 같은 코드 수정을 반복해야되니까요.

    첨부한 파일은 효과적으로 작업하실 수 있도록 만든 스크립트입니다.
    안에 설명이 있으니 참고하세요.

  • profile
    ifeve 2016.03.10 19:17
    이렇게 애매한 질문에 스크립트까지 짜주시다니ㄷㄷ;;
    감사히 사용하겠습니다!

List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12452
RMVX 인터페이스(메뉴 스킨) 설명 7 file 뻘짓킹파야 2013.11.09 1233
RMVXA 인터페이스, 원도우 시스템을 바꿀순 없나요? 5 안안녕 2013.01.26 708
기타 인텔xdk 배포 문제 2 [team]ㅎㅅㅎ 2017.05.08 151
RMMV 인트로 영상을 넣고싶은데.... 4 file 히요리 2016.02.28 287
RMVXA 인트로가 있는 BGM을 특정부분 루프 시키려면? 3 봅쓸레이드 2013.09.19 1095
RMXP 일괄변수를 나타내는 스크립트 언어 질문!! 까멸 2012.03.29 2535
RMVXA 일괄적으로 이벤트의 이동처리는 안되나요? 9 Sonrxnu 2016.02.06 186
RMXP 일러스트 대화창 1 가츄 2010.11.28 825
RMVXA 일러스트 대화창 뒤로 가게 하는 방법이요. 10 file 은이하롄 2018.02.22 1395
기타 일러스트 모아둔 사이트 질문 inone98 2014.01.08 907
툴선택 일러스트 위주로 활동하시는 분들~ 알려주세요 15 한련 2014.01.02 1109
RMVX 일러스트 테두리 질문 드립니다 6 file 나미요 2011.09.21 2080
RMXP 일러스트그림을게임배경으로하고싶은데요 1 barojabnun 2015.03.07 315
기타 일러스트캐릭터칩하반신이잘려요 1 barojabnun 2015.02.07 292
RMMV 일반 Actor 이벤트가 공격하게 만드는 법이 있을까요 1 빠밀 2016.08.24 110
RMMV 일반 공격을 마법 피해식으로 바꿀 수 있을까요? 2 DogeMadness 2017.07.10 148
이벤트 작성 RMMZ 일반 이벤트가 두번 이상 확인해야 진행됩니다. 1 file blahdi 2024.02.11 33
RMXP 일반 초원맵칩에서요 1 인간아님 2010.12.20 666
RMVX 일반 필드에서 몬스터 사냥하는 방법 질문 4 흐므 2013.02.13 722
RMVXA 일반공격시 사용자의 체력을 소모하는 무기 옹지 2014.02.28 586
Board Pagination Prev 1 ... 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 ... 516 Next
/ 516