로그인 유지
프로그래밍 언어마다 구문을 구분하는 괄호가 없는 경우도 있다는 점은 참고하시기 바랍니다. 몽롱하다님께서 말씀하신 부분은 속도적인 측면에서 직관적인 부분을 콕 집어내셨다고 할 수 있습니다. 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 || {};
여기에 파일을 끌어 놓거나 파일 첨부 버튼을 클릭하세요.
파일 크기 제한 : 0MB (허용 확장자 : *.*)
파일 업로드 중... (0%)
프로그래밍 언어마다 구문을 구분하는 괄호가
없는 경우도 있다는 점은 참고하시기 바랍니다.
몽롱하다님께서 말씀하신 부분은 속도적인 측면에서
직관적인 부분을 콕 집어내셨다고 할 수 있습니다.
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 || {};