home *** CD-ROM | disk | FTP | other *** search
/ ring.yamanashi.ac.jp/pub/pc/freem/action/ / action.zip / TQAP.zip / Usr / Magic.tonyu < prev    next >
Text File  |  2007-06-04  |  2KB  |  118 lines

  1. extends DxChar;
  2.  
  3. p=-1;
  4.  
  5. anim=newAnimation();
  6.  
  7. if ($Location.sungeki!=1){
  8.   for (jiki in $chars){
  9.     if (jiki is Mychar) break;
  10.   }
  11. }
  12.  
  13. if ($Location.sungeki==1){
  14.   for (jiki in $chars){
  15.     if (jiki is Puppet) break;
  16.   }
  17. }
  18.  
  19. if (jiki.magic==0){
  20.   
  21.   _x=(jiki.x+jiki.f*32)/32;
  22.   _y= jiki.y/32;
  23.   
  24.   blockset_judge=setOKorNOT();
  25.   
  26.   if (blockset_judge && isforbidden()){
  27.     
  28.     jiki.magic=1;
  29.     $mplayer.play($se_pyoro68);
  30.     x=trunc(_x)*32+16;
  31.     y=trunc(_y)*32+16;
  32.     anim.swing($pat_effect01+0,$pat_effect01+2,3);
  33.     updateEx(30);
  34.     anim.stop();
  35.     p=-1;
  36.     $map.set(_x,_y,$pat_block+7);
  37.     updateEx(100);
  38.     if (blockset_judge==1) $map.set(_x,_y,$pat_block+0);
  39.     if (blockset_judge==2) $map.set(_x,_y,$pat_block+5);
  40.     jiki.magic=0;
  41.     
  42.   }
  43.   
  44.   else {
  45.     $mplayer.play($se_cursor00_a);
  46.     update();
  47.   }
  48. }
  49.  
  50.  
  51. function isblock(tile){
  52.   
  53.   var tile_bk1,tile_bk2;
  54.   var value;
  55.   
  56.   tile_bk1=$pat_block+30;
  57.   tile_bk2=$pat_block+59;
  58.   
  59.   value=(tile>=tile_bk1 && tile<=tile_bk2);
  60.   
  61.   return value;
  62. }
  63.  
  64. function isback(tile){
  65.   
  66.   var tile_bg1,tile_bg2;
  67.   var value;
  68.   
  69.   tile_bg1=$pat_block+0 ;
  70.   tile_bg2=$pat_block+4;
  71.   
  72.   value=(tile>=tile_bg1 && tile<=tile_bg2);
  73.   
  74.   return value;
  75. }
  76.  
  77. function isforbidden(){
  78.   
  79.   var tile_fb;
  80.   var tile1,tile2;
  81.   var value;
  82.   
  83.   tile_fb=$pat_block+2;
  84.   
  85.   tile1=$map.get( jiki.x/32,jiki.y/32);
  86.   tile2=$map.get((jiki.x+jiki.f*32)/32,jiki.y/32);
  87.   value=(tile1!=tile_fb && tile2!=tile_fb);
  88.   
  89.   return value;
  90.   
  91. }
  92.  
  93. function setOKorNOT(){
  94.   
  95.   var tile;
  96.   var OK1,OK2,OK3,OK4,OK5,OK6;
  97.   var value;
  98.   
  99.   tile=$map.get((jiki.x+jiki.f*32)/32,jiki.y/32);
  100.   OK1=$pat_block+0;
  101.   OK2=$pat_block+6;
  102.   OK3=$pat_block+8;
  103.   OK4=$pat_block+3;
  104.   OK5=$pat_block+4;
  105.   OK6=$pat_block+5;
  106.   
  107.   value=(tile==OK1 || tile==OK2 || tile==OK3);
  108.   value=(tile==OK4 || tile==OK5 || tile==OK6 || value);
  109.   if (tile==OK6) value=2;
  110.   return value;
  111. }
  112.  
  113. function onUpdate(){
  114.   
  115.   while(1) {if (jiki.pause==0) break;update();}
  116.   
  117. }
  118.