?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

안녕하세요... 모르는게 있어 질문드립니다....

 

 

 

 

기본 변수 메소드 - $gameVariables.setValue(value,n)

셀프 변수 플러그인 - this.get_self_variable(name,n)

 

 

 

 

질문드리는 식은 아래 초록색 식입니다.

 

for (var i = 0; i < 100; i++) {

$gameVariables.setValue(146, this.get_self_variable("병렬처리대상", i))

}

 

 

 

 

이렇게 썻는데 실행하면 작동은 되는데 게임상에서는

 

$gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 1))

$gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 2))

$gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 3))

$gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 99))

$gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 100))

 

이렇게 표시나요?

 

 

 

 

 

$gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 1~100))

아니면, 빨간색갈 부분의 숫자만 바뀌나요 ..................?

 

 

 

 

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

 

 

 

 

 

$gameVariables.setValue(146, 이곳에)

 

위의 식의 '이곳에'라는 곳에 아래의 식을 다 더해서 넣어주고 싶습니다...

물론, 노가다로 1부터 100까지 직접 작성하는 방법이 있지만,

for문이나 어떠한 요약식으로 요약하여 1~100을 쉽게 더하는 방법이 있는지 질문드립니다... ㅠㅠ

 

this.get_self_variable("병렬처리대상", 1)

this.get_self_variable("병렬처리대상", 2)

this.get_self_variable("병렬처리대상", 3)

.

.

.

this.get_self_variable("병렬처리대상", 99)

this.get_self_variable("병렬처리대상", 100)

 

어떻게 써야 1~100까지 위의 문장을 반복해서 더해줄 수가 있을까요?

 

$gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 1) + .................... + this.get_self_variable("병렬처리대상", 100))

 

이런 느낌입니다...

 

도와주세요 ㅠㅠ

?
  • profile
    lklslel 2016.12.17 11:12
    흐음... 진부한 설명은 컴퓨터나 하드웨어 관련 학과의

    자료구조나 알고리즘에 대해서 이야기를 해야하겠지만요...

    그런 말을 하면 괜시리 머리만 아파오는 것이 알반적이니

    알기 쉽게 말을 풀어서 설명해드리겠습니다.

    모든 loop(반복)구문들은 { }(대괄호 : 구문의 처음과 끝을 구분짓는 기호)을

    기준으로 한 번씩 반복을 합니다.



    for (var i = 0; i < 100; i++) {

    $gameVariables.setValue(146, this.get_self_variable("병렬처리대상", i))

    }



    직접 작성하신 부분을 예로 들자면

    실행 순서는 다음과 같이 됩니다.

    (그냥 적힌 문자열의 순서대로 설명해드립니다.)


    1. 실행할 구문 : for

    -> 실행할 구문에 따라 실행하는
    방식이 다르므로 반드시 읽습니다.


    2. 현재값 : i = 0~99

    -> (초기값 0, ++연산으로 }이후에 1만큼 증가)


    3. 실행 임계 조건 : i < 100

    ->i 가 100보다 작을 때 실행됩니다.
    i 가 100이 되면 for(){} 의 구문의 실행은 하지 않습니다.


    4. 변수 값 조정부분 : i++ (after increase)

    -> for(){}가 한번 실행되고 나서 마지막으로 실행됩니다.


    5. 구문 내부 읽기 시작 : {

    -> { 괄호의 시작기호 - ( / [ / { - 를 만나면

    어떤 구문이라도 안에 있는 내용을 우선시합니다.


    6. 구문 내부 실행부분 : $gameVariables.setValue(146, this.get_self_variable("병렬처리대상", i));


    7. 구문 내부 읽기 종료 : }



    실상적인 구문의 실행은 다음과 같습니다.



    for문이 처음 실행될 때


    for (0; 0 < 100; 0++) {

    $gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 0))

    }


    ....



    for문이 100번째 실행될 때


    for (99; 99 < 100; 99++) {

    $gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 99))

    }



    for문이 종료될 때


    for (100; 100 < 100; )


    조건부분의 값이 false를 나타내기 때문에

    이후의 처리는 공백상태의 초기 형태를

    실행하는 구조로 마무리 됩니다.


    어셈블리어로 살펴보면 jump(해당 메모리 주소로 즉각이동명령어) 관련 명령어들이

    없고 다음으로 진행하도록 변경됩니다.



    ※ 어셈블리어란 기계어(0,1로 이루어진 원시언어)보다

    최소 한 단계 높은 원시언어로 메모리 영역에서

    실제적인 데이터의 처리를 하는데 쓰여집니다.


    ※ 모든 프로그래밍 언어는 해당 언어에서 어셈블리어로,

    어셈블리어에서 기계어로 변환되어서 실행됩니다.



    실행에 대한 설명은 이정도로 마무리 짓겠습니다.
  • profile
    lklslel 2016.12.17 15:09

    프로그래밍 언어마다 구문을 구분하는 괄호가

    없는 경우도 있다는 점은 참고하시기 바랍니다.


    몽롱하다님께서 말씀하신 부분은 속도적인 측면에서

    직관적인 부분을 콕 집어내셨다고 할 수 있습니다.


    for문을 일일이 실행하면서 1개의 값을

    더하는 과정은 속도 저하로 이루어집니다.


    몽롱하다님께서 쓰시려는 플러그인이 HIME_SelfVariables.js

    인듯해서 스크립트를 받아서 쓰시려는 부분에 대해서 찾아보았습니다.

    this.set_self_variable(NAME, VALUE, EVENT_ID)
    this.get_self_variable(NAME, EVENTID)

    쓰시는 부분이 eventID에 저장된 변수의

    값을 더하는 부분인 듯하여 더 필요한

    정보를 정리를 해보았습니다.



    get / set_self_variable 함수는

    각종 Interpreter 객체
    Game_Player 객체
    Game_Follower 객체
    Game_Vehicle 객체
    Game_Event 객체

    의 인스턴스에서만 사용하실 수

    있다는 점을 잊으시면 안됩니다.



    다음은 사용하는 것이 가능한

    변수들의 모음입니다.



    $gamePlayer



    $gamePlayer._followers._data[팔로워인덱스]

    팔로워인덱스

    팔로워중에 데이터를 처리할 팔로워의 인덱스번호



    $gameMap._vehicles[차량타입]

    차량타입

    0 = 보트
    1 = 배
    2 = 비행선



    $gameMap._interpreter



    $gameMap._events[이벤트Id]

    이벤트Id

    맵에서 발생하는 각종 이벤트의 Id



    위에 제가 정리해드린 부분과 각종 interpreter관련

    변수들에서는 사용하실 수 있지만 이외에는 불가합니다.

    현재 당장 생각하셔야 할 점은 다음과 같습니다.

    1. 값을 찾기 원하는 변수명

    2. 찾기 시작하는 변수의 인덱스 번호

    3. 마지막으로 찾을 변수의 인덱스 번호

    4. 원하는 기능을 구현하는 방법



    을 생각하시고 나서 즉각적으로 쓰려고 하면

    다음과 같이 작성하는 것이 제일 단순할 겁니다.

    .setValue(146, this.get_self_variable("병렬처리대상", 1) + .................... + this.get_self_variable("병렬처리대상", 100))



    이처럼 작성하실 수도 있지만 좀 더 간편하게

    사용할 함수로 만들어보도록 하겠습니다.



    function range_sum(object , variable_name , start_index , last_index){
    var i, j, k, l,reg;
    switch(true){
    case (start_index != NaN && typeof start_index === "number" && last_index != NaN && typeof last_index != "number"):
    //시작 인덱스 데이터가 숫자이고
    //끝 인덱스 데이터가 숫자가 아니면
    //끝 인덱스 데이터는 시작 인덱스 데이터와 같도록 설정합니다.
    last_index = start_index;
    break;
    case (start_index != NaN && typeof start_index != "number" && last_index != NaN && typeof last_index != "number"):
    //시작 인덱스와 끝 인덱스가 숫자가 아니면
    //에러문을 찍어주고 강제로 종료합니다.
    throw new Error('range_sum\'s\nparameter is incorrect.');
    return false;
    }
    //j 는 합을 저장할 임시 변수입니다.
    j = 0;
    //k 는 단위 처리 갯수 변수입니다.
    k = 10;
    //l 은 전체 갯수를 k로 나누었을 때 발생한 나머지 값 변수입니다.
    l = (last_index - start_index) % k;
    switch(true){
    case (last_index >= start_index):
    //끝 인덱스가 시작 인덱스보다 클 때
    for(i = start_index;i < (last_index - l) + 1;i += k){
    j += object.get_self_variable(variable_name,i) + object.get_self_variable(variable_name,i + 1) + object.get_self_variable(variable_name,i + 2) + object.get_self_variable(variable_name,i + 3) + object.get_self_variable(variable_name,i + 4) + object.get_self_variable(variable_name,i + 5) + object.get_self_variable(variable_name,i + 6) + object.get_self_variable(variable_name,i + 7) + object.get_self_variable(variable_name,i + 8) + object.get_self_variable(variable_name,i + 9);
    }
    for(;i < last_index;i++){
    j += object.get_self_variable(variable_name,i);
    }
    break;
    case (last_index < start_index):
    //끝 인덱스가 시작 인덱스보다 작을 때
    for(i = last_index;i > (start_index + l) - 1;i -= k){
    j += object.get_self_variable(variable_name,i) + object.get_self_variable(variable_name,i - 1) + object.get_self_variable(variable_name,i - 2) + object.get_self_variable(variable_name,i - 3) + object.get_self_variable(variable_name,i - 4) + object.get_self_variable(variable_name,i - 5) + object.get_self_variable(variable_name,i - 6) + object.get_self_variable(variable_name,i - 7) + object.get_self_variable(variable_name,i - 8) + object.get_self_variable(variable_name,i - 9);
    }
    for(;i > start_index - 1;i--){
    j += object.get_self_variable(variable_name,i);
    }
    break;
    }
    return j;
    };



    사용방법의 예는 다음과 같습니다.

    $gameVariables.setValue(146,range_sum($gamePlayer,"병렬처리대상",1,100));

     

    ※ $gamePlayer 는 다른 변수로 대체될 수 있습니다. ※




    range_sum함수는 HIME_SelfVariables.js에

    추가하시기 보다는 작성한 함수를 등록하는

    플러그인을 하나 만드시면 되겠습니다.


    그렇게까지는 못하시겠다면 다른 플러그인의

    주석 부분 바로 뒤쪽에 붙여넣기 하시면 됩니다.


    HIME_SelfVariables.js를 예로 들자면


    Which will return true or false depending on what the value of the variable is.

    -------------------------------------------------------------------------------
    */

    //바로 여기에

    var Imported = Imported || {} ;
    var TH = TH || {};


List of Articles
번호 제목 글쓴이 날짜 조회 수
8827 형제들이여 !!! 나를 구제해다오!! Ress 2006.01.26 223
8826 형제들이여 !!! 나를 구제해다오!! KaSsia 2006.01.25 263
8825 rpg2003에서 music음향이 작업시에는 실행되는데 게임을 실행하면 않되네요 ★샤일☆ 2007.01.03 784
8824 RPG2003의 그림들의 사이즈... MiNi'M' 2006.02.21 821
8823 RPG만들기2003에 관하여...정말 굼금해요~!~부탁드림 ∑☆メ이누∴。』 2005.08.09 577
8822 게이지바 구동 방법좀 <<게이지 유>> file 랑이a 2006.07.03 429
8821 길드는 어떻게 만드나요? 루넨스 2009.06.15 974
8820 길드는 어떻게 만드나요? 제로스 2009.06.15 1232
8819 동영상 관련및.. 급해요 ㅠ RML 2006.07.12 1483
8818 마법 연계 다시 질문!!! 제발 대답부탁!!; file 나르카이제 2005.06.15 331
8817 몬스터가없으면 다른곳으로 자동이동가능? Novelist 2006.08.29 277
8816 몬스터가없으면 다른곳으로 자동이동가능? CredMotion 2006.08.29 341
8815 스크립트로요,, 이동하는걸 보드게임처럼 할순 없나요? XLostTimesX 2006.01.09 429
8814 아이템창 같은 단축창를 만들려고하는데..[rpg2003] ScolPion 2006.04.15 572
8813 아이템창 같은 단축창를 만들려고하는데..[rpg2003] 방콕족의생활 2006.04.15 786
8812 질문! file 『Q트_아키』 2005.05.22 494
8811 "스크립트 데이터 읽기 실패" 라고 뜨는데.. 김세츠나 2009.07.31 1062
8810 "클래스가 등록되지 않았습니다"라니 -0-;;[RPG2003] Chrishyua .E 2007.03.02 700
8809 "클래스가 등록되지 않았습니다"라니 -0-;;[RPG2003] =ROD= 2007.03.07 886
8808 "파일 dmd 은 열지 않습니다" 이리저디 옮겼는데.. 윈드 2006.08.18 208
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 442 Next
/ 442


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

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