Blue Jem Posted October 13, 2013 Group: Members Topic Count: 151 Topics Per Day: 0.04 Content Count: 393 Reputation: 3 Joined: 09/16/13 Last Seen: June 4, 2014 Share Posted October 13, 2013 prontera,170,171,5 script Monster Marching 757,{ if( getgmlevel() < 90 ) end; .@flower_count = mobcount( .npc_map$,$@npc_name$+"::OnFlowerDied" ); switch( select( ( $@marching_status )?"":"Set Mob Sprite",( $@marching_status )?"Stop:":( ( !$@sprite_size )?"":"Start" ),( .@flower_count )?"Hide Flower Wall":"Display Flower Wall" ) ){ Case 1: mes "Sprite List :"; do{ if( @menu == 3 ){ do{ $@sprite[.@size] = rand( 1001,2300 ); }while( getmonsterinfo( $@sprite[.@size],MOB_NAME ) == "null" ); }else{ input $@sprite[.@size],0,2300; if( !$@sprite[.@size] ) close; } .@name$ = getmonsterinfo( $@sprite[.@size],MOB_NAME ); if( .@name$ != "null" ){ mes " ^777777> "+.@name$+"^000000"; .@size++; } }while( select( "Add Another Sprite","Continue","Random Mob" ) != 2 ); $@sprite_size = .@size; mes "Speed : "; input $@speed,100,500; Case 2: if( $@marching_status ){ mes "Marching Cancelled."; $@marching_status = 0; close2; donpcevent "::OnEnd"; }else{ mes "Marching Started."; close2; if( callsub( OnSetupNPC ) ){ if( !.@flower_count ) donpcevent "::OnFlowerWall"; donpcevent "::OnWalk"; }else{ npctalk "Marching Failed to start."; donpcevent "::OnEnd"; } } break; Case 3: mes "Flower Wall "+( ( !.@flower_count )?"Summoned":"Removed" ); if( !.@flower_count ) donpcevent "::OnFlowerWall"; else killmonster .npc_map$,$@npc_name$+"::OnFlowerDied"; default: break; } end; OnSetupNPC: $@marching_status = 0; for( .@y = 0; .@y < .y_align_size; .@y++ ) for( .@x = 0; .@x < .x_align_size; .@x++ ){ if( checkcell( .npc_map$,( .x_align[.@x] + .x_align_offset ),( .y_align[.@y] + .y_align_offset ),cell_chkpass ) ){ hideoffnpc "mob#"+$@marching_status; movenpc "mob#"+$@marching_status,( .x_align[.@x] + .x_align_offset ),( .y_align[.@y] + .y_align_offset ); specialeffect 344,AREA,"mob#"+$@marching_status; $@marching_status++; } } return $@marching_status; OnEnd: announce "Marching End.",0; sleep 1000; donpcevent "::OnHide"; killmonster .npc_map$,$@npc_name$+"::OnFlowerDied"; end; // auto start marching if admin configured the npc. OnMinute00: OnMinute30: if( $@sprite_size ){ announce "Marching Started at "+.npc_map$,0; sleep 5000; if( callsub( OnSetupNPC ) ){ if( !mobcount( .npc_map$,$@npc_name$+"::OnFlowerDied" ) ) donpcevent "::OnFlowerWall"; donpcevent "::OnWalk"; } } end; OnInit: // how many step they walk everytime $@walk_step = 2; // hide npc when reach this y-coordinate $@end_y_coordinate = 129; // offset align for coordinate x and y .x_align_offset = 0; .y_align_offset = 0; // npc alignment coordinate ( prefer write in ascending order ) setarray .x_align,151,153,155,157,159,161; setarray .y_align,165,167,169,171,173; .x_align_size = getarraysize( .x_align ); .y_align_size = getarraysize( .y_align ); $@y_restart = .y_align[ .y_align_size-1 ] + .y_align_offset; $@npc_name$ = strnpcinfo(0); .npc_map$ = strnpcinfo(4); OnWalk: OnFlowerDied: end; OnFlowerWall: killmonster .npc_map$,$@npc_name$+"::OnFlowerDied"; for( .@i = 175; .@i > 131; .@i-- ){ monster .npc_map$,147,.@i,"WALL",rand( 1934,1936 ),1,$@npc_name$+"::OnFlowerDied"; monster .npc_map$,164,.@i,"WALL",rand( 1934,1936 ),1,$@npc_name$+"::OnFlowerDied"; } end; } prontera,1,1,4 script mob 111,{ end; OnHide: .@npc_name$ = strnpcinfo(0); setnpcdisplay( .@npc_name$,.@npc_name$,111 ); movenpc .@npc_name$,1,1; hideonnpc .@npc_name$; end; OnWalk: .@npc_name$ = strnpcinfo(0); npcspeed $@speed; while( .@sprite < $@sprite_size && $@sprite[.@sprite] && $@marching_status ){ if( !setnpcdisplay( .@npc_name$,getmonsterinfo( $@sprite[.@sprite],MOB_NAME ),$@sprite[.@sprite] ) ){ hideoffnpc .@npc_name$; while( $@marching_status ){ getmapxy( .@map$,.@x,.@y,1 ); if( .@y > $@end_y_coordinate ){ npcwalkto .@x,( .@y - $@walk_step ); }else if( .@y <= $@end_y_coordinate ){ npcstop; break; } sleep 1750; } specialeffect 344; } .@sprite++; if( .@sprite < $@sprite_size && $@marching_status ){ movenpc .@npc_name$,.@x,$@y_restart; specialeffect 344,AREA,.@npc_name$; } } movenpc .@npc_name$,1,1; hideonnpc .@npc_name$; setnpcdisplay( .@npc_name$,.@npc_name$,111 ); if( $@marching_status > 0 ){ $@marching_status--; if( $@marching_status == 0 ) donpcevent $@npc_name$+"::OnEnd"; } end; } // duplicate more if you need .. prontera,1,1,4 duplicate(mob) mob#0 111 prontera,1,1,4 duplicate(mob) mob#1 111 prontera,1,1,4 duplicate(mob) mob#2 111 prontera,1,1,4 duplicate(mob) mob#3 111 prontera,1,1,4 duplicate(mob) mob#4 111 prontera,1,1,4 duplicate(mob) mob#5 111 prontera,1,1,4 duplicate(mob) mob#6 111 prontera,1,1,4 duplicate(mob) mob#7 111 prontera,1,1,4 duplicate(mob) mob#8 111 prontera,1,1,4 duplicate(mob) mob#9 111 prontera,1,1,4 duplicate(mob) mob#10 111 prontera,1,1,4 duplicate(mob) mob#11 111 prontera,1,1,4 duplicate(mob) mob#12 111 prontera,1,1,4 duplicate(mob) mob#13 111 prontera,1,1,4 duplicate(mob) mob#14 111 prontera,1,1,4 duplicate(mob) mob#15 111 prontera,1,1,4 duplicate(mob) mob#16 111 prontera,1,1,4 duplicate(mob) mob#17 111 prontera,1,1,4 duplicate(mob) mob#18 111 prontera,1,1,4 duplicate(mob) mob#19 111 prontera,1,1,4 duplicate(mob) mob#20 111 prontera,1,1,4 duplicate(mob) mob#21 111 prontera,1,1,4 duplicate(mob) mob#22 111 prontera,1,1,4 duplicate(mob) mob#23 111 prontera,1,1,4 duplicate(mob) mob#24 111 prontera,1,1,4 duplicate(mob) mob#25 111 prontera,1,1,4 duplicate(mob) mob#26 111 prontera,1,1,4 duplicate(mob) mob#27 111 prontera,1,1,4 duplicate(mob) mob#28 111 prontera,1,1,4 duplicate(mob) mob#29 111 prontera,1,1,4 duplicate(mob) mob#30 111 Quote Link to comment Share on other sites More sharing options...
Emistry Posted October 13, 2013 Group: Forum Moderator Topic Count: 93 Topics Per Day: 0.02 Content Count: 10018 Reputation: 2372 Joined: 10/28/11 Last Seen: 17 hours ago Share Posted October 13, 2013 obviously your error doesnt come from my monster marching script...it's from your other script...quest shop.. Quote Link to comment Share on other sites More sharing options...
Blue Jem Posted October 13, 2013 Group: Members Topic Count: 151 Topics Per Day: 0.04 Content Count: 393 Reputation: 3 Joined: 09/16/13 Last Seen: June 4, 2014 Author Share Posted October 13, 2013 there no error from my Quest from Script. when start the marching script then stop the marching event that the result Quote Link to comment Share on other sites More sharing options...
Emistry Posted October 13, 2013 Group: Forum Moderator Topic Count: 93 Topics Per Day: 0.02 Content Count: 10018 Reputation: 2372 Joined: 10/28/11 Last Seen: 17 hours ago Share Posted October 13, 2013 there no error from my Quest from Script. when start the marching script then stop the marching event that the result does "quest_shop" sound like "monster marching" ?? lol ... Quote Link to comment Share on other sites More sharing options...
Blue Jem Posted October 13, 2013 Group: Members Topic Count: 151 Topics Per Day: 0.04 Content Count: 393 Reputation: 3 Joined: 09/16/13 Last Seen: June 4, 2014 Author Share Posted October 13, 2013 prontera,149,207,5 script Quest NPC#1 666,{ callfunc "qshop"; } // Script Core //============================================================ - script quest_shop -1,{ function Add; function Chk; function Slot; function A_An; OnInit: freeloop(1); // ----------------------------------------------------------- // Basic shop settings. // ----------------------------------------------------------- set .Announce,1; // Announce quest completion? (1: yes / 0: no) set .ShowSlot,1; // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never) set .ShowID,0; // Show item IDs? (1: yes / 0: no) set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no) set .MaxStack,100; // Max number of quest items purchased at one time. // ----------------------------------------------------------- // Points variable -- optional quest requirement. // setarray .Points$[0],"<variable name>","<display name>"; // ----------------------------------------------------------- setarray .Points$[0],"#CASHPOINTS","Cash Points"; // ----------------------------------------------------------- // Shop IDs -- to add shops, copy dummy data at bottom of file. // setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...}; // ----------------------------------------------------------- setarray .Shops$[1],"Quest Item","Rare Quest","Quest For Stat"; // ----------------------------------------------------------- // Quest items -- do NOT use a reward item more than once! // Add(<shop ID>,<reward ID>,<reward amount>, // <Zeny cost>,<point cost>, // <required item ID>,<required item amount>{,...}); // ----------------------------------------------------------- Add(1,5596,1,0,0,949,100,723,50,706,10,7227,5); Add(1,5389,1,0,0,1030,2,1026,100,923,50,7227,5); Add(1,5490,1,0,0,7227,10,1054,150,943,200); Add(1,5264,1,0,0,7227,20,1044,100,729,100); Add(1,5531,1,0,0,7227,3,7018,5,753,10); Add(1,5401,1,0,0,7227,3,7038,15,7577,10); Add(1,5776,1,0,0,7227,5,7149,50,7099,100); Add(1,5756,1,0,0,7227,10,7762,50,7222,100); Add(1,5466,1,0,0,7227,5,7189,50,955,100); Add(1,5498,1,0,0,7227,10,7036,5,7153,100); Add(1,5289,1,0,0,7227,5,1056,100,1009,50); Add(1,5272,1,0,0,7227,10,7345,100,7115,150); Add(1,5462,1,0,0,7227,10,7116,150,7209,70); Add(1,5288,1,0,0,7227,3,720,50,1068,70); Add(1,5520,1,0,0,7227,3,948,100,939,70); Add(1,5463,1,0,0,7227,3,925,100,7206,20); Add(1,5118,1,0,0,7227,3,1020,100,737,30); Add(1,5532,1,0,0,7227,20,7023,10,7449,30); Add(2,5137,1,0,0,7211,100,5162,1,7451,10,7227,100,7754,10); Add(2,5321,1,0,0,7227,70,7018,15,7448,100,7754,10); Add(2,5518,1,0,0,7227,150,7018,15,7448,200,7754,10); Add(2,5834,1,0,0,7227,100,7018,15,7447,100,7754,10); Add(3,5600,1,0,0,7227,70,1552,15,7165,20); Add(3,5581,1,0,0,7227,70,1552,15,7165,20); Add(3,5300,1,0,0,7227,70,1552,15,7165,20); Add(3,5609,1,0,0,7227,70,1552,15,7165,20); Add(3,5142,1,0,0,7227,70,1552,15,7165,20); Add(3,5564,1,0,0,7227,70,1552,15,7165,20); // ----------------------------------------------------------- freeloop(0); set .menu$,""; for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) { set .menu$, .menu$+.Shops$[.@i]+":"; npcshopdelitem "qshop"+.@i,909; } end; OnMenu: set .@size, getarraysize(@i); if (!.@size) set .@i, select(.menu$); else if (.@size == 1) set .@i, @i[0]; else { for(set .@j,0; .@j<.@size; set .@j,.@j+1) set .@menu$, .@menu$+.Shops$[@i[.@j]]+":"; set .@i, @i[select(.@menu$)-1]; } deletearray @i[0],getarraysize(@i); if (.Shops$[.@i] == "") { message strcharinfo(0),"An error has occurred."; end; } dispbottom "Select one item at a time."; callshop "qshop"+.@i,1; npcshopattach "qshop"+.@i; end; OnBuyItem: // .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... } setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]); copyarray .@q[3],getd(".q_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+.@q[0])); set .@q[2],.@q[1]*.@q[3]; if (!.@q[2] || .@q[2] > 30000) { message strcharinfo(0),"You can't purchase that many "+getitemname(.@q[0])+"."; end; } mes "[Quest Shop]"; mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000"; mes "Requirements:"; if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000"; if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000"; if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2) mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000"; next; setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11); if (@qe[2] > 0 && ((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512) || (@qe[1] & 1024) || (@qe[1] & 2048) || (@qe[1] & 4096) || (@qe[1] & 4) || (@qe[1] & 8192))) set .@preview,1; addtimer 1000, strnpcinfo(0)+"::OnEnd"; while(1) { switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[7])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) { case 1: if (@qe[0]) { mes "[Quest Shop]"; mes "You're missing one or more quest requirements."; close; } if (!checkweight(.@q[0],.@q[2])) { mes "[Quest Shop]"; mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000"; close; } if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]); if (.@q[5]) setd .Points$[0], getd(.Points$[0])-(.@q[5]*.@q[1]); if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2) delitem .@q[.@i],.@q[.@i+1]*.@q[1]; getitem .@q[0],.@q[2]; if (.Announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):A_An(getitemname(.@q[0])))+"!",0; specialeffect2 699; close; case 2: setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), getlook(LOOK_ROBE), 1; if ((@qe[1] & 1) || (@qe[1] & 4096)) changelook LOOK_HEAD_BOTTOM, @qe[2]; else if ((@qe[1] & 256) || (@qe[1] & 1024)) changelook LOOK_HEAD_TOP, @qe[2]; else if ((@qe[1] & 512) || (@qe[1] & 2048)) changelook LOOK_HEAD_MID, @qe[2]; else if ((@qe[1] & 4) || (@qe[1] & 8192)) changelook LOOK_ROBE, @qe[2]; break; case 3: close; } } OnEnd: if (@qe[7]) { changelook LOOK_HEAD_BOTTOM, @qe[3]; changelook LOOK_HEAD_TOP, @qe[4]; changelook LOOK_HEAD_MID, @qe[5]; changelook LOOK_ROBE, @qe[6]; } deletearray @qe[0],8; end; function Add { if (getitemname(getarg(1)) == "null") { debugmes "Quest reward #"+getarg(1)+" invalid (skipped)."; return; } setarray .@j[0],getarg(2),getarg(3),getarg(4); for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) { if (getitemname(getarg(.@i)) == "null") { debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped)."; return; } else setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1); } copyarray getd(".q_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j); npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0); return; } function Chk { if (getarg(0) < getarg(1)) { set @qe[0],1; return "^FF0000"; } else return "^00FF00"; } function Slot { set .@s$,getitemname(getarg(0)); switch(.ShowSlot) { case 1: if (!getitemslots(getarg(0))) return .@s$; case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]"; default: return .@s$; } } function A_An { setarray .@A$[0],"a","e","i","o","u"; set .@B$, "_"+getarg(0); for(set .@i,0; .@i<5; set .@i,.@i+1) if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0); return "a "+getarg(0); } } function script qshop { deletearray @i[0],getarraysize(@i); for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set @i[.@i],getarg(.@i); doevent "quest_shop::OnMenu"; end; } // Dummy shop data -- copy as needed. //============================================================ // Dummy shop data -- copy as needed. //============================================================ - shop qshop1 -1,909:-1 - shop qshop2 -1,909:-1 - shop qshop3 -1,909:-1 - shop qshop4 -1,909:-1 - shop qshop5 -1,909:-1 im sorry Quote Link to comment Share on other sites More sharing options...
Question
Blue Jem
prontera,170,171,5 script Monster Marching 757,{
if( getgmlevel() < 90 ) end;
.@flower_count = mobcount( .npc_map$,$@npc_name$+"::OnFlowerDied" );
switch( select( ( $@marching_status )?"":"Set Mob Sprite",( $@marching_status )?"Stop:":( ( !$@sprite_size )?"":"Start" ),( .@flower_count )?"Hide Flower Wall":"Display Flower Wall" ) ){
Case 1:
mes "Sprite List :";
do{
if( @menu == 3 ){
do{
$@sprite[.@size] = rand( 1001,2300 );
}while( getmonsterinfo( $@sprite[.@size],MOB_NAME ) == "null" );
}else{
input $@sprite[.@size],0,2300;
if( !$@sprite[.@size] ) close;
}
.@name$ = getmonsterinfo( $@sprite[.@size],MOB_NAME );
if( .@name$ != "null" ){
mes " ^777777> "+.@name$+"^000000";
.@size++;
}
}while( select( "Add Another Sprite","Continue","Random Mob" ) != 2 );
$@sprite_size = .@size;
mes "Speed : ";
input $@speed,100,500;
Case 2:
if( $@marching_status ){
mes "Marching Cancelled.";
$@marching_status = 0;
close2;
donpcevent "::OnEnd";
}else{
mes "Marching Started.";
close2;
if( callsub( OnSetupNPC ) ){
if( !.@flower_count ) donpcevent "::OnFlowerWall";
donpcevent "::OnWalk";
}else{
npctalk "Marching Failed to start.";
donpcevent "::OnEnd";
}
}
break;
Case 3:
mes "Flower Wall "+( ( !.@flower_count )?"Summoned":"Removed" );
if( !.@flower_count )
donpcevent "::OnFlowerWall";
else
killmonster .npc_map$,$@npc_name$+"::OnFlowerDied";
default: break;
}
end;
OnSetupNPC:
$@marching_status = 0;
for( .@y = 0; .@y < .y_align_size; .@y++ )
for( .@x = 0; .@x < .x_align_size; .@x++ ){
if( checkcell( .npc_map$,( .x_align[.@x] + .x_align_offset ),( .y_align[.@y] + .y_align_offset ),cell_chkpass ) ){
hideoffnpc "mob#"+$@marching_status;
movenpc "mob#"+$@marching_status,( .x_align[.@x] + .x_align_offset ),( .y_align[.@y] + .y_align_offset );
specialeffect 344,AREA,"mob#"+$@marching_status;
$@marching_status++;
}
}
return $@marching_status;
OnEnd:
announce "Marching End.",0;
sleep 1000;
donpcevent "::OnHide";
killmonster .npc_map$,$@npc_name$+"::OnFlowerDied";
end;
// auto start marching if admin configured the npc.
OnMinute00:
OnMinute30:
if( $@sprite_size ){
announce "Marching Started at "+.npc_map$,0;
sleep 5000;
if( callsub( OnSetupNPC ) ){
if( !mobcount( .npc_map$,$@npc_name$+"::OnFlowerDied" ) ) donpcevent "::OnFlowerWall";
donpcevent "::OnWalk";
}
}
end;
OnInit:
// how many step they walk everytime
$@walk_step = 2;
// hide npc when reach this y-coordinate
$@end_y_coordinate = 129;
// offset align for coordinate x and y
.x_align_offset = 0;
.y_align_offset = 0;
// npc alignment coordinate ( prefer write in ascending order )
setarray .x_align,151,153,155,157,159,161;
setarray .y_align,165,167,169,171,173;
.x_align_size = getarraysize( .x_align );
.y_align_size = getarraysize( .y_align );
$@y_restart = .y_align[ .y_align_size-1 ] + .y_align_offset;
$@npc_name$ = strnpcinfo(0);
.npc_map$ = strnpcinfo(4);
OnWalk:
OnFlowerDied: end;
OnFlowerWall:
killmonster .npc_map$,$@npc_name$+"::OnFlowerDied";
for( .@i = 175; .@i > 131; .@i-- ){
monster .npc_map$,147,.@i,"WALL",rand( 1934,1936 ),1,$@npc_name$+"::OnFlowerDied";
monster .npc_map$,164,.@i,"WALL",rand( 1934,1936 ),1,$@npc_name$+"::OnFlowerDied";
}
end;
}
prontera,1,1,4 script mob 111,{
end;
OnHide:
.@npc_name$ = strnpcinfo(0);
setnpcdisplay( .@npc_name$,.@npc_name$,111 );
movenpc .@npc_name$,1,1;
hideonnpc .@npc_name$;
end;
OnWalk:
.@npc_name$ = strnpcinfo(0);
npcspeed $@speed;
while( .@sprite < $@sprite_size && $@sprite[.@sprite] && $@marching_status ){
if( !setnpcdisplay( .@npc_name$,getmonsterinfo( $@sprite[.@sprite],MOB_NAME ),$@sprite[.@sprite] ) ){
hideoffnpc .@npc_name$;
while( $@marching_status ){
getmapxy( .@map$,.@x,.@y,1 );
if( .@y > $@end_y_coordinate ){
npcwalkto .@x,( .@y - $@walk_step );
}else if( .@y <= $@end_y_coordinate ){
npcstop;
break;
}
sleep 1750;
}
specialeffect 344;
}
.@sprite++;
if( .@sprite < $@sprite_size && $@marching_status ){
movenpc .@npc_name$,.@x,$@y_restart;
specialeffect 344,AREA,.@npc_name$;
}
}
movenpc .@npc_name$,1,1;
hideonnpc .@npc_name$;
setnpcdisplay( .@npc_name$,.@npc_name$,111 );
if( $@marching_status > 0 ){
$@marching_status--;
if( $@marching_status == 0 )
donpcevent $@npc_name$+"::OnEnd";
}
end;
}
// duplicate more if you need ..
prontera,1,1,4 duplicate(mob) mob#0 111
prontera,1,1,4 duplicate(mob) mob#1 111
prontera,1,1,4 duplicate(mob) mob#2 111
prontera,1,1,4 duplicate(mob) mob#3 111
prontera,1,1,4 duplicate(mob) mob#4 111
prontera,1,1,4 duplicate(mob) mob#5 111
prontera,1,1,4 duplicate(mob) mob#6 111
prontera,1,1,4 duplicate(mob) mob#7 111
prontera,1,1,4 duplicate(mob) mob#8 111
prontera,1,1,4 duplicate(mob) mob#9 111
prontera,1,1,4 duplicate(mob) mob#10 111
prontera,1,1,4 duplicate(mob) mob#11 111
prontera,1,1,4 duplicate(mob) mob#12 111
prontera,1,1,4 duplicate(mob) mob#13 111
prontera,1,1,4 duplicate(mob) mob#14 111
prontera,1,1,4 duplicate(mob) mob#15 111
prontera,1,1,4 duplicate(mob) mob#16 111
prontera,1,1,4 duplicate(mob) mob#17 111
prontera,1,1,4 duplicate(mob) mob#18 111
prontera,1,1,4 duplicate(mob) mob#19 111
prontera,1,1,4 duplicate(mob) mob#20 111
prontera,1,1,4 duplicate(mob) mob#21 111
prontera,1,1,4 duplicate(mob) mob#22 111
prontera,1,1,4 duplicate(mob) mob#23 111
prontera,1,1,4 duplicate(mob) mob#24 111
prontera,1,1,4 duplicate(mob) mob#25 111
prontera,1,1,4 duplicate(mob) mob#26 111
prontera,1,1,4 duplicate(mob) mob#27 111
prontera,1,1,4 duplicate(mob) mob#28 111
prontera,1,1,4 duplicate(mob) mob#29 111
prontera,1,1,4 duplicate(mob) mob#30 111
Link to comment
Share on other sites
4 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.