55,049 DPS
내 결과와 같은 방식(같은 적, 로테이션 반복)으로, 이 로테이션을 가져온 커뮤니티 gcsim 설정의 빌드를 써서 계산한 점수입니다. 내 빌드의 점수는 다릅니다.
출처에서는 자체 조건의 로테이션 1회 기준 59,376 DPS로 보고합니다.
내 빌드로 계산하기
게임 프로필의 캐릭터 쇼케이스에 넣어 둔 캐릭터만 불러올 수 있습니다. "캐릭터 상세 정보 표시"를 켜 주세요.
출처
로테이션 스크립트 (gcsim)
active kirara;
fn doActionList() {
kirara skill;
for let r=0; r<4; r=r+1 {
furina skill, dash, burst;
bennett burst, skill;
fischl attack, skill;
kirara skill, burst;
fischl attack:2, dash, attack:2, dash, attack:2;
bennett skill;
fischl attack:2, dash, attack:2, burst;
kirara skill[hold=180];
bennett skill;
fischl attack:2, dash, attack:2;
}
}
fn printActiveHPRatio() {
if .fischl.onfield {
print("Fischl HP: ", .fischl.hpratio * 100, "%");
} else if .furina.onfield {
print("Furina HP: ", .furina.hpratio * 100, "%");
} else if .kirara.onfield {
print("Kirara HP: ", .kirara.hpratio * 100, "%");
} else {
print("Bennett HP: ", .bennett.hpratio * 100, "%");
}
}
set_on_tick(printActiveHPRatio);
fn randy(mean, standardDeviation, min, max) {
let value = randnorm() * standardDeviation + mean;
if value < min {
value = min;
} else if value > max {
value = max;
}
return value;
}
let prev_char_id = -1;
switch {
case .fischl.onfield:
prev_char_id = .keys.char.fischl;
case .furina.onfield:
prev_char_id = .keys.char.furina;
case .kirara.onfield:
prev_char_id = .keys.char.kirara;
default:
prev_char_id = .keys.char.bennett;
}
let prev_action_id = -1;
let _execute_action = execute_action;
fn execute_action(char_id number, action_id number, p map) {
if prev_char_id != char_id && action_id != .action.swap {
execute_action(char_id, .action.swap, []);
}
if action_id == .action.burst {
while .fischl.onfield && !.fischl.burst.ready {
fischl attack;
}
while .furina.onfield && !.furina.burst.ready {
furina attack;
}
while .kirara.onfield && !.kirara.burst.ready {
kirara attack;
}
while .bennett.onfield && !.bennett.burst.ready {
bennett attack;
}
}
if action_id == .action.swap {
delay(randy(9.5, 1.5, 8, 17));
} else if prev_action_id == .action.attack && action_id != .action.attack && action_id != .action.charge {
delay(randy(3, 1, 0, 6));
} else if prev_action_id != .action.attack {
delay(randy(3, 1, 0, 6));
}
prev_char_id = char_id;
prev_action_id = action_id;
return _execute_action(char_id, action_id, p);
}
doActionList();