아레스 라이즈 오브 가디언즈에서 필드보스의 경우에는 보스타임이 알람으로 떠서 좋은데, 일반 필드 네임드의 경우 알림이 뜨지 않아서 계속 보스모양을 클릭하고, 봐야하는 불편함이 있다.
그래서 만든게 바로 보스타이머!!
PC 로 게임을 하시는 경우 보스타이머를 띄워놓고 보면 좀 더 편하지 않을까 생각해서 만들어 봤다.
보통 디코로 봇을 만들어서 관리하시는분들도 많은데,
나같은 경우는 라이트 유저라서 봇으로 하기보다는 가끔 필드 네임드 잡으러갈때 사용하려고 만들었다.
1. 제작 방법
1) 구글시트를 사용하여 제작
2) 보스의 젠시간 파악 - 리젠 반복 시간 작성
3) 나왔던 시간을 값으로 변경
4) 현재시간과 비교하여 가장 가까운 값부터 정렬
5) 현재시간과 비교하여 현재시간이 지난 경우에는 리젠시간을 더해주는 앱스크립트 작성
6) 현재시간을 계속 추출하기 위한 트리거 작성
7) 웹 또는 모바일에서 잘 볼수 있도록 웹문서로 변경
2. 보스리젠시간 파악
첫시간
반복시간
위치
보스명
시
분
시
분
에단평원
은두쿠 메카버스터
13
30
1
30
에단평원
프레거
15
30
1
30
에단평원
고르곤
19
0
1
30
엘리아평원
아르고낙
21
10
1
30
엘리아평원
우르칸
12
40
1
30
엘리아평원
카락
13
10
1
30
루나산맥
디오라
12
20
2
0
루나산맥
하말
16
50
2
0
루나산맥
불칸
17
50
2
0
루나산맥
검사제로스
13
20
2
0
자리스유적지대
제노스팅거
13
20
2
40
자리스유적지대
썬더봄바드
14
0
2
40
자리스유적지대
그람
12
40
2
40
자리스유적지대
어쌔신슬로터
17
20
2
40
오쿨루스제도
켈라
13
30
2
0
오쿨루스제도
라이돈
14
10
2
0
오쿨루스제도
볼테온
16
50
2
0
갈라테아빙하
스톤피스트
13
40
2
40
갈라테아빙하
알파
13
0
2
40
갈라테아빙하
티폰
22
20
2
40
갈라테아빙하
헬기브
12
20
2
40
엘리아평원
페네트라
20
40
24
0
오쿨루스제도
에이드라
20
45
24
0
갈라테아빙하
아페칸
20
50
24
0
모리아기지1
검사 제로스
21
0
2
0
모리아기지1
고르곤
20
0
2
0
모리아기지2
아르카스
21
0
2
0
모리아기지2
어쌔신슬로터
20
0
2
0
모리아기지3
헬기브
20
0
2
0
3. 보스리젠시간을 비교하기 편하도록 값으로 변경
=C3*60+D3
와 같이 간단하게 시간에 60을 곱하여 분으로 변경 하였음
4. 변경한 값을 기준으로 제일 빠른 시간이 나오도록 정렬
=query(A3:G31,"select A,B,C,D order by G asc")
값
위치
보스명
시
분
810
엘리아평원
우르칸
12
40
930
자리스유적지대
그람
12
40
1140
갈라테아빙하
알파
13
0
1270
엘리아평원
카락
13
10
760
루나산맥
검사제로스
13
20
790
자리스유적지대
제노스팅거
13
20
860
에단평원
은두쿠 메카버스터
13
30
1010
오쿨루스제도
켈라
13
30
1070
갈라테아빙하
스톤피스트
13
40
800
자리스유적지대
썬더봄바드
14
0
800
오쿨루스제도
라이돈
14
10
840
루나산맥
디오라
14
20
760
갈라테아빙하
헬기브
15
0
1040
에단평원
프레거
15
30
810
루나산맥
하말
16
50
850
오쿨루스제도
볼테온
16
50
1010
자리스유적지대
어쌔신슬로터
17
20
820
루나산맥
불칸
17
50
780
에단평원
고르곤
19
0
1340
모리아기지1
고르곤
20
0
900
모리아기지2
어쌔신슬로터
20
0
1240
모리아기지3
헬기브
20
0
1245
엘리아평원
페네트라
20
40
1250
오쿨루스제도
에이드라
20
45
1260
갈라테아빙하
아페칸
20
50
1200
모리아기지1
검사 제로스
21
0
1260
모리아기지2
아르카스
21
0
1200
엘리아평원
아르고낙
21
10
1200
갈라테아빙하
티폰
22
20
5. 현재시간과 비교하여, 현재시간이 지난 경우에는 시간업데이트 앱스크립트 작성
function createSchedule() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("아레스");
var lastRow = sheet.getLastRow();
var currentDate = new Date();
var currentMillis = currentDate.getTime();
for (var i = 3; i <= lastRow; i++) {
var description = sheet.getRange(i, 2).getValue();
var startTime = sheet.getRange(i, 3).getValue();
var startMinute = sheet.getRange(i, 4).getValue();
var repeatHour = sheet.getRange(i, 5).getValue();
var repeatMinute = sheet.getRange(i, 6).getValue();
// 현재 시간에 시작 시간과 분을 더합니다.
var scheduledTime = new Date(currentMillis);
scheduledTime.setHours(startTime);
scheduledTime.setMinutes(startMinute);
// 현재 시간보다 시작 시간과 분이 작을 경우에만 동작
if (scheduledTime.getTime() < currentMillis) {
// 현재 시간을 기준으로 반복하는 시간을 더합니다.
scheduledTime.setHours(scheduledTime.getHours() + repeatHour);
scheduledTime.setMinutes(scheduledTime.getMinutes() + repeatMinute);
// 시작 시간과 분에 반복 시간과 분을 더한 값을 갱신합니다.
sheet.getRange(i, 3).setValue(scheduledTime.getHours());
sheet.getRange(i, 4).setValue(scheduledTime.getMinutes());
}
}
}