k = 0; if( !sc || (sc && !sc->data[spheres[0]]) ) { //GM Unconditional Check for( i = 0; i < 4; i++ ) { switch(i) { case 1: subskill = WL_TETRAVORTEX_FIRE; k |= 1; break; case 2: subskill = WL_TETRAVORTEX_WIND; k |= 4; break; case 3: subskill = WL_TETRAVORTEX_WATER; k |= 2; break; case 4: subskill = WL_TETRAVORTEX_GROUND; k |= 8; break; } skill_addtimerskill(src, tick + i * 200, bl->id, k, 0, subskill, skill_lv, i, flag); clif_skill_nodamage(src, bl, subskill, skill_lv, 1); } } else { for( i = 0; i < 4; i++ ) { switch( sc->data[spheres[i]]->val1 ) { case WLS_FIRE: subskill = WL_TETRAVORTEX_FIRE; k |= 1; break; case WLS_WIND: subskill = WL_TETRAVORTEX_WIND; k |= 4; break; case WLS_WATER: subskill = WL_TETRAVORTEX_WATER; k |= 2; break; case WLS_STONE: subskill = WL_TETRAVORTEX_GROUND; k |= 8; break; } skill_addtimerskill(src, tick + i * 200, bl->id, k, 0, subskill, skill_lv, i, flag); clif_skill_nodamage(src, bl, subskill, skill_lv, 1); status_change_end(src, spheres[i], INVALID_TIMER); } } if (spheres[4]) // fix to remove last sphere if 5 are present, on official even though only 4 spheres are used, all spheres are removed status_change_end(src, spheres[4], INVALID_TIMER);