#;;>>@Config.Tag_Command>>

#; Tag-Mode Command:: "Change","Partner-Assist" (v48)

#; タッグモード時操作コマンド

#;>>sys::tag_mode_cmd_reset

ignorehitpause if var(48) { var(48):=0; }

#;; change [v48=11] ; 交替

#;>>sys::tag_mode_cmd_change

ignorehitpause if roundstate=2 && numpartner && var(22)=4 && !var(48) && map(i_Assist_Interval)=0 {

ignorehitpause if var(15)!=var(49) && playeridexist(var(49)) {

ignorehitpause if ((playerid(var(49)),stateno=190192) && (playeridexist(var(15))) && (playerid(var(15)),stateno!=[2999,3999])) || (((playeridexist(var(15))) && (playerid(var(15)),stateno=[2999,3999])) && (playerid(var(15)),movetype=A)) {

##;;--- player-controlled ;; 操作交替

ignorehitpause if root,name!="BAGAN" && ((root,command="shift_fwd") || (root,command="shift_back")) {

ignorehitpause if var(51)<1 && var(28)>200 && (var(7)&1024) {

var(48):=11;

}}

##;;--- ai

if var(51)>0 && var(28)>200 && (var(7)&1024) {

if playerid(var(15)),sysfvar(4)<1 && (random%50=0) && playerid(var(15)),life<playerid(var(49)),life {

var(48):=11;

}}

##;;--- forced change (not-alive, stand-by) ;; 強制交替（終止、待機中）

if playeridexist(var(15)) {

if (playerid(var(15)),alive=0 && playerid(var(15)),stateno=5150) || (playerid(var(15)),stateno=[190191,190192]) {

var(48):=11;

}}

}}}

#;; change-interrupted [v48=21] ; 割り込み交替

#;>>sys::tag_mode_cmd_change_interrupted

#;; "Switch-Canceling"

ignorehitpause if var(48)=11 && var(15)!=var(49) && playeridexist(var(49)) {

ignorehitpause if playerid(var(49)),stateno=190192 && power>=500 {

ignorehitpause if playerid(var(15)),sysfvar(4)<1 && playerid(var(15)),alive && playerid(var(15)),stateno<3000 && playerid(var(15)),time>2 {

ignorehitpause if playerid(var(15)),movetype=A && playerid(var(15)),gethitvar(isbound)=0 && playerid(var(15)),movecontact{

var(48):=21;

}}}}

#hyper-cancel-all team members alive

if power >= 1000 && teamside = 1 && (playerID(56),Alive && playerID(57),Alive && playerID(58),Alive){

ignorehitpause if var(48)=11 && var(15)!=var(49) && playeridexist(var(49)) {

ignorehitpause if playerid(var(15)),sysfvar(4)<1 && playerid(var(15)),alive && playerid(var(15)),stateno=[2999,4000] {

ignorehitpause if playerid(var(15)),movetype=A{

var(48):=15;

}}}}

#hyper-cancel-one member or more is not alive

if power >= 1000 {

ignorehitpause if var(48)=11 && var(15)!=var(49) && playeridexist(var(49)) {

ignorehitpause if playerid(var(49)),stateno=[190190,190192] {

ignorehitpause if playerid(var(15)),sysfvar(4)<1 && playerid(var(15)),alive && playerid(var(15)),stateno=[2999,4000] {

ignorehitpause if playerid(var(15)),movetype=A{

var(48):=15;

}}}}}

#;>>sys::partner_id_search_change1

ignorehitpause if (var(48)=11 || var(48)=21 || var(48)=15) { ####will search for partner if hyper cancel var(48)=15##

let iKeyD = ifelse( root,command="shift_fwd" || root,command="assist_fwd", -1, 1);

if numpartner>0 {

let iIDme = call Fnc_IsPartnerID3(var(15)+$iKeyD);

if $iIDme { var(49):=$iIDme; }

else if numpartner>1 {

let iIDme = call Fnc_IsPartnerID3(var(15)+$iKeyD*2);

if $iIDme { var(49):=$iIDme; }

else if numpartner>2 {

let iIDme = call Fnc_IsPartnerID3(var(15)+$iKeyD*3);

if $iIDme { var(49):=$iIDme; }

else if numpartner>3 {

let iIDme = call Fnc_IsPartnerID3(var(15)+$iKeyD*4);

if $iIDme { var(49):=$iIDme; }

else if numpartner>4 {

let iIDme = call Fnc_IsPartnerID3(var(15)+$iKeyD*5);

if $iIDme { var(49):=$iIDme; }

else if numpartner>5 {

let iIDme = call Fnc_IsPartnerID3(var(15)+$iKeyD*6);

if $iIDme { var(49):=$iIDme; }

else if numpartner>6 {

let iIDme = call Fnc_IsPartnerID3(var(15)+$iKeyD*7);

if $iIDme { var(49):=$iIDme; }

}}}}}}}

}

then to the next point...#hyper-cancel _

if name="CharacterName" && power >= 1000 &&

!time && sysfvar(4)=0 && sysvar(0)>0 && playeridexist(sysvar(0)) {

if playerid(sysvar(0)),sysfvar(4)=3 {changestate{ value:3001; ctrl:1;}}

}

#;sys::-2::partners_standby

##...then theres a bunch of code right after this line, but I add in a line for the new sysfvar(4)=3, signaling hyper cancel has just happened##

ignorehitpause if (sysfvar(4)=3) && ( ctrl || stateno != [3000,4000]) { selfstate{value:190190 } }

##then this is a new loop not in the loop above##

#;sys::-2::partners_change_interrupted ; ���荞���

ignorehitpause if !ishelper && numpartner && roundstate=2 && alive && sysfvar(0)>0 && playeridexist(floor(sysfvar(0))) {

ignorehitpause if playerid(floor(sysfvar(0))),var(0)=90900 && playerid(floor(sysfvar(0))),var(48)=21 && sysfvar(4)<1 {

sysfvar(4):=2; ##;; (0:main / 1:assist / 2:switch-canceling/ 3:Hyper Cancel)

}}

#sys::-2::hyper-cancel

ignorehitpause if power>=1000 && !ishelper && numpartner && roundstate=2 && alive && sysfvar(0)>0 && playeridexist(floor(sysfvar(0))) {

ignorehitpause if playerid(floor(sysfvar(0))),var(0)=90900 && playerid(floor(sysfvar(0))),var(48)=15 && sysfvar(4)<1 {

sysfvar(4):=3; ##;; (0:main / 1:assist / 2:switch-canceling/ 3: Hyper Cancel)

}}

Basically,exit if you are no longer in state 3000-3999 (designated hyper states) if you called to cancel into your next partner.if power >= 1000 && !time && sysfvar(4)=0 && sysvar(0)>0 && playeridexist(sysvar(0)) {

if playerid(sysvar(0)),sysfvar(4)=3 {

palfx{ time:20; add:256,0,-256}

poweradd{value:0}

superpause{time:20; movetime:20; pausebg:1; darken:1}

#;sys::player_cost_sc0 ;; �p���[�����

}}