Advertisement
johnlol

Monster Marching

May 22nd, 2019
276
0
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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement