Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- monsta,137,166,5 script Farm Zone 848,{
- function RandomizeItem;
- while( 1 ){
- mes "How can i help you ?";
- switch( select( "Information:Farm Items" )){
- Case 1:
- mes "This is a Farm Zone.";
- mes "You are able to Hunt Monster inside this Room.";
- mes "Every Monster will award you random items.";
- next;
- mes "But there is some Condition..";
- mes "You can only go in ^FF0000once every "+.RoomCleanMin+" minutes for 1 times.^000000";
- mes "And Maximum of ^FF0000"+.MaxPlayers+" Players per "+.RoomCleanMin+" Minutes.^000000";
- mes "Maximum Hunting Limit ^FF0000"+.MaxItemLimit+"^000000";
- next;
- mes "There will be a ^FF0000Room Cleaning^000000 from time to time...";
- mes "All players will be kicked out, it is your bad luck if you meet this.";
- mes "Delay will still apply even though you just go in for 1 Seconds..";
- next;
- break;
- Case 2:
- if( #HuntRoomDelay > gettimetick(2) && getgmlevel() < 0 ){
- set .last,#HuntRoomDelay - gettimetick(2);
- set .@min, .last % ( 24 * 3600 ) % 3600 / (60);
- mes "Wait for ^FF0000"+.@min+" Minutes^000000.";
- close;
- }else if( getarraysize( .Hunter ) >= .MaxPlayers ){
- mes "Currently the Room is Full. Please try again later.";
- close;
- }else{
- warp .Map$,0,0;
- set .Hunter[getarraysize( .Hunter )],strcharinfo(0);
- set #HuntRoomDelay,gettimetick(2) + ( .DelayMin * 60 );
- set #FarmHunt,0;
- end;
- }
- }
- }
- OnInit:
- // Maximum Player can join per X Minutes.
- set .MaxPlayers,5;
- // Adding X Minutes of Delay before can go in again.
- set .DelayMin,15;
- // Maximum Hunt Limit per round inside the Zone.
- set .MaxItemLimit,1000;
- // Map that will be used in thos Zone.
- set .Map$,"moc_fild19";
- // Clear Map Every X Minutes.
- set .RoomCleanMin,15;
- // Mapflag Initialization
- setmapflag .Map$,mf_nogo;
- setmapflag .Map$,mf_nomobloot;
- setmapflag .Map$,mf_nomvploot;
- setmapflag .Map$,mf_nowarpto;
- setmapflag .Map$,mf_nochat;
- setmapflag .Map$,mf_novending;
- setmapflag .Map$,mf_nocommand,60;
- setmapflag .Map$,mf_nogo;
- setmapflag .Map$,mf_nojobexp;
- setmapflag .Map$,mf_nobaseexp;
- while( 1 ){
- killmonster .Map$,"All";
- mapwarp .Map$,"prontera",155,181;
- monster .Map$,0,0,"[ Farm Zone ] Resident",-1,80,strnpcinfo(0)+"::OnNormalKill";
- monster .Map$,0,0,"[ Farm Zone ] Guardian",-3,5,strnpcinfo(0)+"::OnBossKill";
- deletearray .Hunter,getarraysize( .Hunter );
- announce "[ Farm Zone ] : Farming Zone has been Cleaned up, another 5 Players may go in now.",bc_blue;
- sleep ( .RoomCleanMin * 60000 );
- mapannounce .Map$,"[ Farm Zone ] : Room Clean Up now...All Users will be warped Out.",0;
- killmonster .Map$,"All";
- sleep 3000;
- }
- end;
- OnNormalKill:
- RandomizeItem( 0,rand(1,5) );
- monster .Map$,0,0,"--ja--",-1,1,strnpcinfo(0)+"::OnNormalKill";
- end;
- OnBossKill:
- RandomizeItem( 1,rand(1,3) );
- monster .Map$,0,0,"--ja--",-3,1,strnpcinfo(0)+"::OnBossKill";
- end;
- // Function that used to Generate Random Items
- function RandomizeItem {
- set #FarmHunt,#FarmHunt + getarg(1);
- // Normal Monster in Zone Drops Lists
- if( getarg(0) == 0 ) setarray .ItemList[0],13989;
- // Normal Boss in Zone Drops Lists
- if( getarg(0) == 1 ) setarray .ItemList[0],7539;
- for( set .@i,1; .@i <= getarg(1); set .@i,.@i + 1 ){
- getitem .ItemList[ rand( getarraysize( .ItemList ) ) ],1;
- }
- deletearray .ItemList,getarraysize( .ItemList );
- dispbottom "[ Farm Zone ] : Farmed "+#FarmHunt+" / "+.MaxItemLimit+" Items";
- if( #FarmHunt >= .MaxItemLimit ){
- message strcharinfo(0),"Limit Reach , you may join again later.";
- sleep2 2000;
- warp "prontera",155,181;
- }
- return;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement