prontera,155,185,5 script Farming Instance 1_F_MARIA,{
mes "[ ^551A8B Farming Instance ^000000 ]";
if ( has_instance2("1@def01") >= 0 ) {
mes "resume farming ?";
next;
if ( select( "Yes", "No" ) == 2 ) close;
warp has_instance("1@def01"), 0,0;
end;
}
if ( #farmroomdelay + .delayenter > gettimetick(2) ) {
mes "wait for "+( #farmroomdelay + .delayenter - gettimetick(2) )+" seconds.";
close;
}
mes "blah ... blah...";
next;
if ( select( "Yes, I want to farm", "No thanks." ) == 2 ) {
mes "Alright then, come again another time!";
close;
}
mes "Attempting to open the dimension gate to enter the realm of bountiful item farming.";
sleep2 200;
mes "The gate is OPEN! Good luck on farming!";
mes "Watch as the rift engulfs you!";
specialeffect2 EF_AGIUP2;
announce "[Entering Farming Instance]",bc_self;
sleep2 45;
specialeffect2 EF_HEALSP;
specialeffect2 EF_M05;
sleep2 20;
.@instance = instance_create( "Farming Instance", getcharid( 3 ), IOT_CHAR);
if ( .@instance < 0 ) {
dispbottom "Instance Failed.";
end;
}
dispbottom "^0000ff" + "Farming Instance" + "^000000- Attempting to create Farm Instance.";
if ( instance_attachmap("1@def01",.@instance) == "" ) {
instance_destroy( .@instance );
dispbottom "Failed to instance yuno_fild02/Instance Name: 1@def01";
end;
}
dispbottom "^0000ff" + "Farming Instance" + " attempt successful on Instance attach!";
instance_set_timeout 3600, 300;
instance_attach .@instance;
instance_init .@instance;
warp instance_mapname("1@def01"),0,0;
#farmroomdelay = gettimetick(2);
end;
OnInit:
.delayenter = 20; // how many seconds delay to enter again ?
.maxfarmitemlimit = 3; // can farm how many items before being kick out ?
.farmrate = 50; // n% chance to get an item. 50 = 50%
setarray .item, // what are the items can get from farming inside this instance ?
Flamberge,
Ring_Pommel_Saber,
Claymore,
Buster,
Two_Handed_Axe,
Stunner,
Finger,
Lance;
.itemsize = getarraysize( .item );
end;
}
1@def01,0,0,0 script FarmInstance#Ins FAKE_NPC,{
OnInstanceInit:
monster instance_mapname("1@def01"),0,0,"[ Farm Zone ] Resident",PORING,50,instance_npcname("FarmInstance#Ins")+"::OnFarmItem";
'mainnpc$ = "Farming Instance";
'maxfarmitemlimit = getvariableofnpc( .maxfarmitemlimit, "Farming Instance" );
'farmrate = getvariableofnpc( .farmrate, "Farming Instance" );
'itemsize = getvariableofnpc( .itemsize, "Farming Instance" );
copyarray 'itemid, getvariableofnpc( .item, "Farming Instance" ), 'itemsize;
end;
OnFarmItem:
monster instance_mapname("1@def01"),0,0,"[ Farm Zone ] Resident",PORING,1,instance_npcname("FarmInstance#Ins")+"::OnFarmItem";
if ( 'farmcount < 'maxfarmitemlimit && rand(100) < 'farmrate ) {
getitem 'itemid[ rand( 'itemsize ) ], 1;
dispbottom "[ Farm Zone ] : Farmed ["+( ++'farmcount )+" / "+ 'maxfarmitemlimit +"] Items";
if ( 'farmcount == 'maxfarmitemlimit ) {
message strcharinfo(0),"Limit Reach , you may join again later.";
sleep2 5000;
warp "Save", 0,0;
instance_destroy();
end;
}
}
end;
}
1@def01 mapflag nomobloot