SHARE
TWEET

Monster Marching

johnlol May 22nd, 2019 61 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. ________________     ______            ________      
  3. ___    |_____  /________  /______      ___  __ \_____
  4. __  /| |  __  /_  __ \_  __ \  _ \     __  /_/ /  __ \
  5. _  ___ / /_/ / / /_/ /  /_/ /  __/     _  _, _// /_/ /
  6. /_/  |_\__,_/  \____//_.___/\___/      /_/ |_| \____/
  7.  
  8. */
  9.  
  10. prontera,155,175,5  script  Monster Marching    757,{
  11. if( getgmlevel() < 90 ) end;
  12.  
  13. switch( select( "Set Mob Sprite",( !$@sprite || !$@speed )?"":"Start" ) ){
  14.     Case 1:
  15.         mes "Sprite List :";
  16.         do{
  17.             input $@sprite[.@size];
  18.             .@name$ = getmonsterinfo( $@sprite[.@size],MOB_NAME );
  19.             if( .@name$ != "null" ){
  20.                 mes " ^777777> "+.@name$+"^000000";
  21.                 .@size++;
  22.             }
  23.         }while( select( "Add Another Sprite","Continue" ) == 1 );
  24.         $@sprite_size = .@size;
  25.         mes "Speed : ";
  26.         input $@speed,100,500;
  27.  
  28.     Case 2:
  29.         mes "NPC will start walk now.";
  30.         close2;
  31.         for( .@y = 0; .@y < .y_align_size; .@y++ )
  32.             for( .@x = 0; .@x < .x_align_size; .@x++ ){
  33.                 hideoffnpc "mob#"+.@count;
  34.                 movenpc "mob#"+.@count,.x_align[.@x],.y_align[.@y];
  35.                 specialeffect 344,AREA,"mob#"+.@count;
  36.                 .@count++;
  37.             }
  38.         donpcevent "::OnWalk";
  39.     default: break;
  40. }
  41. end;
  42.  
  43. OnInit:
  44. // how many step they walk everytime
  45. $@walk_step = 2;
  46. // hide npc when reach this y-coordinate
  47. $@end_y_coordinate = 142;
  48.  
  49. // npc alignment coordinate ( depend on duplicated mob npc )
  50. setarray .x_align,151,153,155,157,159,161;
  51. setarray .y_align,165,167,169,171,173;
  52. .x_align_size = getarraysize( .x_align );
  53. .y_align_size = getarraysize( .y_align );
  54.  
  55. .npc_map$ = strnpcinfo(4);
  56. // flower align ...
  57. for( .@i = 170; .@i > 140; .@i-- ){
  58.     monster .npc_map$,148,.@i,"WALL",rand( 1934,1936 ),1,"";
  59.     monster .npc_map$,163,.@i,"WALL",rand( 1934,1936 ),1,"";
  60. }
  61. end;
  62. }
  63.  
  64.  
  65.  
  66. prontera,1,1,4  script  mob 111,{
  67.     end;
  68.  
  69. OnWalk:
  70.     .@npc_name$ = strnpcinfo(0);
  71.     npcspeed $@speed;
  72.     while( .@sprite < $@sprite_size && $@sprite[.@sprite] ){
  73.         if( !setnpcdisplay( .@npc_name$,$@sprite[.@sprite] ) ){
  74.             hideoffnpc .@npc_name$;
  75.             while( 1 ){
  76.                 getmapxy( .@map$,.@x,.@y,1 );
  77.  
  78.                 if( .@y > $@end_y_coordinate ){
  79.                     npcwalkto .@x,( .@y - $@walk_step );
  80.                 }else if( .@y <= $@end_y_coordinate ){
  81.                     npcstop;
  82.                     break;
  83.                 }
  84.                 sleep 1750;
  85.             }
  86.             specialeffect 344;
  87.         }
  88.  
  89.         .@sprite++;
  90.         if( .@sprite < $@sprite_size ){
  91.             movenpc .@npc_name$,.@x,169;
  92.             specialeffect 344,AREA,.@npc_name$;
  93.         }
  94.     }
  95.     movenpc .@npc_name$,1,1;
  96.     hideonnpc .@npc_name$;
  97.     setnpcdisplay( .@npc_name$,111 );
  98.     end;
  99.  
  100. }
  101.  
  102. // duplicate more if you need ..
  103. prontera,1,1,4  duplicate(mob)  mob#0   111
  104. prontera,1,1,4  duplicate(mob)  mob#1   111
  105. prontera,1,1,4  duplicate(mob)  mob#2   111
  106. prontera,1,1,4  duplicate(mob)  mob#3   111
  107. prontera,1,1,4  duplicate(mob)  mob#4   111
  108. prontera,1,1,4  duplicate(mob)  mob#5   111
  109. prontera,1,1,4  duplicate(mob)  mob#6   111
  110. prontera,1,1,4  duplicate(mob)  mob#7   111
  111. prontera,1,1,4  duplicate(mob)  mob#8   111
  112. prontera,1,1,4  duplicate(mob)  mob#9   111
  113. prontera,1,1,4  duplicate(mob)  mob#10  111
  114. prontera,1,1,4  duplicate(mob)  mob#11  111
  115. prontera,1,1,4  duplicate(mob)  mob#12  111
  116. prontera,1,1,4  duplicate(mob)  mob#13  111
  117. prontera,1,1,4  duplicate(mob)  mob#14  111
  118. prontera,1,1,4  duplicate(mob)  mob#15  111
  119. prontera,1,1,4  duplicate(mob)  mob#16  111
  120. prontera,1,1,4  duplicate(mob)  mob#17  111
  121. prontera,1,1,4  duplicate(mob)  mob#18  111
  122. prontera,1,1,4  duplicate(mob)  mob#19  111
  123. prontera,1,1,4  duplicate(mob)  mob#20  111
  124. prontera,1,1,4  duplicate(mob)  mob#21  111
  125. prontera,1,1,4  duplicate(mob)  mob#22  111
  126. prontera,1,1,4  duplicate(mob)  mob#23  111
  127. prontera,1,1,4  duplicate(mob)  mob#24  111
  128. prontera,1,1,4  duplicate(mob)  mob#25  111
  129. prontera,1,1,4  duplicate(mob)  mob#26  111
  130. prontera,1,1,4  duplicate(mob)  mob#27  111
  131. prontera,1,1,4  duplicate(mob)  mob#28  111
  132. prontera,1,1,4  duplicate(mob)  mob#29  111
  133. prontera,1,1,4  duplicate(mob)  mob#30  111
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top