OSDN Git Service

厄介なバグ修正
authorKillery <Killery@kiritani-no-mac-mini.local>
Mon, 11 Apr 2016 05:14:34 +0000 (14:14 +0900)
committerKillery <Killery@kiritani-no-Mac-mini.local>
Mon, 11 Apr 2016 05:14:34 +0000 (14:14 +0900)
Awars III/BattleView.h
Awars III/BattleView.m
Awars III/FieldScene.h
Awars III/FieldScene.m

index c197ced..70a3742 100755 (executable)
@@ -31,6 +31,14 @@ bool btHitFlag1;
 bool btHitFlag2;
 int btHitFlagCnt1;
 int btHitFlagCnt2;
+bool btHitExtendFlag1;
+bool btHitExtendFlag2;
+int btHitExtendProc1;
+int btHitExtendProc2;
+int btHitExtendMove1;
+int btHitExtendMove2;
+int btHitExtendFix1;
+int btHitExtendFix2;
 
 
 NSSound *hitSoundBasic;
index 14a54b6..b891aa3 100755 (executable)
         if(btDistanceX2 >= BT_CHADISTANCEDELTA)
             btDistanceX2 = BT_CHADISTANCEDELTA;
         U = UTop;
-        while (!(DUN[1] == U->number)) {
+        while (!(DUN[DUNnum] == U->number)) {
             U = U->next;
         }
         
         if(btDistanceX1 >= BT_CHADISTANCEDELTA && btDistanceX2 >= BT_CHADISTANCEDELTA){
             baseDistanceCompFlag = true;
         }
-    }else if(BTunitAttackFlag1 && !btHitFlag1){
+    }else if(BTunitAttackFlag1 && !btHitFlag1 && !btHitExtendFlag1){
         
         U = UTop;
         while (!(DUN[1] == U->number)) {
         
         
         
-    }else if(BTunitAttackFlag2 && !btHitFlag2){
+    }else if(BTunitAttackFlag2 && !btHitFlag2 && !btHitExtendFlag1){
         
         
         U = UTop;
         }
         U = UTop;
         
-    }else if(btHitFlag1){
-    
+    }else if(btHitExtendFlag1 && !btHitFlag1){
+        
+        
+        U = UTop;
+        while (!(AUN[1] == U->number)) {
+            U = U->next;
+        }
+        
+        img = [U->C.imgb copy];
+        [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)];
+        
+        
+        [self drawImage:img x:BT_POINTX1 + btDistanceX1 y:BT_POINTY f:1.0];
+        
+        U = UTop;
+        
+        if(btHitExtendProc1 == 0){
+            btHitExtendFix1 = 0;
+            btHitExtendMove1 += 20;
+            
+            U = UTop;
+            while (!(DUN[DUNnum-1] == U->number)) {
+                U = U->next;
+            }
+            
+            img = [U->C.imgb copy];
+            [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)];
+            if(btHitExtendMove1 >= 300)
+                btHitExtendProc1 = 1;
+            
+            [self drawImage:img x:BT_POINTX2 - btDistanceX2 + btHitExtendMove1 y:BT_POINTY f:1.0];
+            
+            U = UTop;
+            
+        }else if(btHitExtendProc1 >= 1){
+            
+            if(btHitExtendProc1 == 1)
+                btHitExtendMove1 -= 20;
+            
+            if(btHitExtendMove1 <= 130 && btHitExtendProc1 < 2){
+                btHitExtendProc1 = 2;
+            }
+            
+            
+            U = UTop;
+            while (!(DUN[DUNnum - btHitExtendFix1] == U->number)) {
+                U = U->next;
+            }
+            
+            img = [U->C.imgb copy];
+            [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)];
+            
+            
+            [self drawImage:img x:BT_POINTX2 - btDistanceX2 + btHitExtendMove1 y:BT_POINTY f:1.0];
+            
+            U = UTop;
+        }
+        
+        
+        
+    }else if(btHitExtendFlag2 && !btHitFlag2){
+        
+        
+        U = UTop;
+        while (!(DUN[DUNnum] == U->number)) {
+            U = U->next;
+        }
+        
+        img = [U->C.imgb copy];
+        [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)];
+        
+        
+        [self drawImage:img x:BT_POINTX2 - btDistanceX2 y:BT_POINTY f:1.0];
+        
+        U = UTop;
+        
+        if(btHitExtendProc2 == 0){
+            
+            btHitExtendMove2 += 30;
+            
+            U = UTop;
+            while (!(AUN[1] == U->number)) {
+                U = U->next;
+            }
+            
+            img = [U->C.imgb copy];
+            [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)];
+            if(btHitExtendMove2 >= 400 && btHitExtendProc1 < 2){
+                btHitExtendProc2 = 1;
+            }
+            [self drawImage:img x:BT_POINTX1 + btDistanceX1 - btHitExtendMove2 y:BT_POINTY f:1.0];
+            
+            U = UTop;
+            
+        }else if(btHitExtendProc2 >= 1){
+            
+            if(btHitExtendProc2 == 1)
+                btHitExtendMove2 -= 30;
+            
+            U = UTop;
+            while (!(AUN[1] == U->number)) {
+                U = U->next;
+            }
+            
+            img = [U->C.imgb copy];
+            [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)];
+            if(btHitExtendMove2 <= 200 && btHitExtendProc2 < 2){
+                btHitExtendProc2 = 2;
+                
+            }
+            
+            [self drawImage:img x:BT_POINTX1 + btDistanceX1 - btHitExtendMove2 y:BT_POINTY f:1.0];
+            
+            U = UTop;
+        }
+        
+        
+        
+    }
+    if(btHitFlag1){
+        if(btHitExtendFlag1 && btHitExtendProc1 < 2)
+            return;
 
         btHitFlagCnt1++;
         
         
         if (btHitFlagCnt1 == 1)
             [hitSoundBasic play];
-        if(btHitFlagCnt1 > 10)
-            btHitFlagCnt1 = 10;
         
         
         [self drawImage:img x:BT_POINTX1 + btDistanceX1 y:BT_POINTY f:1.0];
         
         U = UTop;
 
+        int n = 0;
+        if(DUNnum > 1)
+            n = 1;
         U = UTop;
-        while (!(DUN[1] == U->number)) {
+        while (!(DUN[DUNnum-n] == U->number)) {
             U = U->next;
         }
         
         img = [U->C.imgb copy];
         [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)];
         
-        if(btHitFlagCnt1%2 == 0) [self drawImage:img x:BT_POINTX2 - btDistanceX2 y:BT_POINTY f:1.0];
+        if(btHitFlagCnt1%2 == 0) [self drawImage:img x:BT_POINTX2 - btDistanceX2 + btHitExtendMove1 y:BT_POINTY f:1.0];
         U = UTop;
 
+        if(btHitFlagCnt1 > 9){
+            btHitFlagCnt1 = 9;
+            btHitFlag1 = false;
+        }
+    }
+    if(btHitFlag2){
+        if(btHitExtendFlag2 && btHitExtendProc2 < 2)
+            return;
         
-    }else if(btHitFlag2){
         btHitFlagCnt2++;
         
         U = UTop;
-        while (!(DUN[1] == U->number)) {
+        while (!(DUN[DUNnum] == U->number)) {
             U = U->next;
         }
         
         
         if (btHitFlagCnt2 == 1)
             [hitSoundBasic play];
-        if(btHitFlagCnt2 > 10)
-            btHitFlagCnt2 = 10;
         
         
         [self drawImage:img x:BT_POINTX2 - btDistanceX2 y:BT_POINTY f:1.0];
         img = [U->C.imgb copy];
         [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)];
         
-        if(btHitFlagCnt2%2 == 0) [self drawImage:img x:BT_POINTX1 + btDistanceX1 y:BT_POINTY f:1.0];
+        if(btHitFlagCnt2%2 == 0) [self drawImage:img x:BT_POINTX1 + btDistanceX1 + btHitExtendMove1 y:BT_POINTY f:1.0];
         U = UTop;
+        
+        if(btHitFlagCnt2 > 9){
+            btHitFlagCnt2 = 9;
+            btHitFlag2 = false;
+        }
 
     }
     
index e0579ea..7844db8 100755 (executable)
@@ -159,6 +159,7 @@ int BRUindex;
 
 bool wtRdy;
 bool wtRdy2;
+bool wtRdy3;
 bool wtRdyB;
 int wtPx, wtPy, wtUnitNum;
 UNIT *unitBreak;
index 27c8837..f208e1d 100755 (executable)
         [self initGuildList];
     }
     
+    [self EventFunc];
+    if(wtRdy3)
+        return;
     
     U = UTop;
     U = unitBreak;
             eventTime++;
             U = UTop;
             pussyCumsOnlyOnceFlag = false;
-            wtRdy = true;
-            
+            wtRdy = false;
             
-            [self EventFunc];
             if(!U) break;
             
         }
     }
     }
     
+    
     w000p:
     
     if(CPUAttackSubmitFlag){
 }
 
 -(void)EventFunc{
-
+    
     if(battleBegin && !pussyLoopFlag && !pussyCumsOnlyOnceFlag){
+        wtRdy3 = true;
         bool proccessTrue = false;
         static bool onlyBigin = false;
         MAPSCRIPT MS = MF[MFselectedRow+1].MS;
         MAPSCRIPTD *MSDtop;
         MSDtop = MSDTO;
-        if(!MSDtop)
+        if(!MSDtop){
+            wtRdy3 = false;
             return;
+        }
         
         
         if(!onlyBigin){
         cpuTurnEndFlag = false;
         battleSetUpIgnore = false;
         pussyCumsOnlyOnceFlag = true;
-        wtRdy = false;
+        wtRdy3 = false;
     }
 
 
         extentMPcostFlag = false;
         DUNnum = 1;
     }
-    if(!extentBattleFlag2){
-        DUNnum = 1;
-    }
     
     switch (messageProcess) {
         case 0:
                 break;
             bLoopFlag = true;
             messageProcess++;
+            DUNnum = 1;
             break;
         case 1:
             
             if(bLoopFlag) break;
             
             
+            if(DUNnum > 1){
+                
+                
+                btHitExtendFlag1 = true;
+                
+                if(btHitExtendProc1 >= 3){
+                    btHitFlagCnt1 = 0;
+                    btHitExtendProc1 = 0;
+                }
+            }
+            
                 BTunitAttackFlag1 = true;
             if(battleDef1Flag || battleDod1Flag)
                 BTunitAttackFlag1 = false;
                 return;
             }
             
+            if(btHitExtendFlag1 && btHitExtendProc1 < 2){
+                
+                
+                
+                
+                U->C.A = aTop;
+                U = UTop;
+                
+                return;
+            }
+            
             if(!battleDef1Flag && !battleDod1Flag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->C.name, U->C.A->name]];
             
             
                  };
             messageProcess++;
             }else if(extentBattleFlag2){
+                if(btHitExtendProc1 == 2)
+                    btHitExtendProc1 = 3;
+                if(btHitExtendProc1 >= 2)
+                    btHitExtendFix1 = 1;
                 DUNnum++;
                 messageProcess = 1;
                 if(DUN[DUNnum] <= 0){
-                    DUNnum = 1;
                     messageProcess++;
                     messageProcess++;
                     extentBattleFlag2 = false;
             btHitFlag2 = false;
             btHitFlagCnt1 = 0;
             btHitFlagCnt2 = 0;
+            btHitExtendFlag1 = false;
+            btHitExtendProc1 = 0;
+            btHitExtendMove1 = 0;
+            btHitExtendFlag2 = false;
+            btHitExtendProc2 = 0;
+            btHitExtendMove2 = 0;
             baseDistanceCompFlag = false;
             battleVeryBegunFlag = false;
             break;
@@ -12419,7 +12453,6 @@ SKIP1:
 
 -(void)EventLoopBV:(NSTimer*)timer{
     
-    
     [battleView setNeedsDisplay:YES];
     
     static int aniFrame = 0;