질문과 답변

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 12397
RMVX script 'cache' line 80 revenir 2016.03.01 155
기타 script 'cache' line 80: RGSSError ocurred. Failed to creat bitmap revenir 2016.03.02 173
RMVXA RPG VX ACE 툴로 SRPG제작 1 고빈 2016.03.02 328
RMXP 아, 어렵네요 제발 도와주세요 ㅜㅜ 13 file THE풀잎 2016.03.03 379
RMVXA 이 시스템 구현 어떻게 하나요? 10 file AccelHacker 2016.03.04 260
사이트 이용 투표소에 올린 게임은 1 꽃돼지 2016.03.05 191
RMMV (코드분석)Window_BattleLog 클래스가 잘 짜여진 건가요? 2 일단 2016.03.05 169
게임찾기 혹시 유미르짱님이 만드신 엘카르디아,전국란스vx 파일 가지고 계신분 있나요? 1 민트상 2016.03.05 580
RMVXA 갑자기 글씨가 작아졌습니다. 1 file 름씨부인 2016.03.05 250
RMVXA 이 스크립트 한글화 가능하나요? file AccelHacker 2016.03.05 162
RMVXA 루비 배우는 왕초보입니다. 세이브파일에 대하여 2가지 여쭙고싶습니다 4 Sonrxnu 2016.03.06 270
RMVXA 정보 목록? 도감? 만들기 야오타 2016.03.06 233
RMXP 문장이 나올시 한글자씩 나오게하고싶습니다. 1 네모툰 2016.03.06 255
RMVXA 전투시 액터의 최대수를 증가시키고 싶습니다. 3 file ifeve 2016.03.06 241
RMVXA 플레이어한테 이벤트 2 여왕폐하 2016.03.07 123
RMVXA 이벤트 자동 연결 가능한가요? 11 여왕폐하 2016.03.07 190
RMMV 사이드뷰 전투에서 특정기술 사용시 시전자의 배틀러 그래픽을 교체하는 방법? 4 모노 2016.03.08 281
사이트 이용 투표에서 3 꽃돼지 2016.03.09 162
RMVXA 최대 맵 사이즈 축소 1 여왕폐하 2016.03.09 110
RMVXA 스크립트 에디터 내에서 조건분기를 사용하고 싶습니다. 8 ifeve 2016.03.09 193
Board Pagination Prev 1 ... 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 ... 516 Next
/ 516