// Lumina RO Mining System // ========================= // By the Lumina RO Development team // // Epoque, Convolution, Inochi, Luciar //====================================== // // ver 1.0 - 5/16/10 // ver 1.1 - Added shops - Convo :) // ver 1.2 - moved everything into funds - Ino // ver 1.3 - cleaned npc foods - Adhelle anthell01,115,149,4 shop Tool Shop#mine1 813,17026:12000,17027:62000,17028:184000,5031:67000,7204:320,17029:280 mjolnir_02,86,358,4 shop Tool Shop#mine2 813,17026:12000,17027:62000,17028:184000,5031:67000,7204:320,17029:280 einbech,142,246,4 shop Tool Shop#mine3 813,17026:12000,17027:62000,17028:184000,5031:67000,7204:320,17029:280 - script mineres -1,{ OnWhisperGlobal: OnInit: OnClock0000: OnClock0200: OnClock0400: OnClock0600: OnClock0800: OnClock1000: OnClock1200: OnClock1400: OnClock1600: OnClock1800: OnClock2000: OnClock2200: set $res1,rand(50,90); set $@res2,rand(50,90); set $@res3,rand(50,90); set $@res4,rand(50,90); set $@res5,rand(50,90); set $@res6,rand(50,90); set $@res7,rand(50,90); set $@res8,rand(50,90); set $@res9,rand(50,90); set $@res10,rand(50,90); set $@res11,rand(50,90); set $@res12,rand(50,90); set $@res13,rand(50,90); set $@res14,rand(50,90); set $@res15,rand(50,90); set $@res16,rand(20,50); set $@res17,rand(20,50); set $@res18,rand(20,50); set $@res19,rand(20,50); set $@res20,rand(20,50); set $@res21,rand(20,50); set $@res22,rand(20,50); set $@res23,rand(20,50); set $@res24,rand(20,50); set $@res25,rand(50,90); set $@res26,rand(50,90); set $@res27,rand(50,90); set $@res28,rand(50,90); set $@res29,rand(50,90); set $@res30,rand(50,90); set $@res31,rand(60,100); set $@res32,rand(60,100); set $@res33,rand(60,100); set $@res34,rand(60,100); set $@res35,rand(60,100); set $@res36,rand(70,100); set $@res37,rand(70,100); set $@res38,rand(70,100); set $@res39,rand(70,100); set $@res40,rand(70,100); set $@res41,rand(70,100); set $@res42,rand(70,100); set $@res43,rand(70,100); set $@res44,rand(70,100); set $@res45,rand(70,100); set $@res46,rand(70,100); set $@res47,rand(70,100); set $@res48,rand(70,100); set $@res49,rand(70,100); set $@res50,rand(70,100); set $@res51,rand(70,100); set $@res52,rand(70,100); set $@res53,rand(70,100); set $@res54,rand(70,100); set $@res55,rand(70,100); set $@res56,rand(70,100); set $@res57,rand(70,100); //setd "$@res"+.mineno,rand(50,100); end; OnPCDieEvent: if(mining==1){ set playerminedead,1; end; } OnPCLogoutEvent: if(mining==1){ set mining,0; end; } } mjo_dun01,222,193,4 script Mine#1 1614,{ OnTouch: set .mineno,1; //oiiii blahblah callfunc "minefunc",1; end; } mjo_dun01,78,219,4 script Mine#2 1614,1,1,{ OnTouch: set .mineno,2; callfunc "minefunc",2; end; } mjo_dun01,225,60,4 script Mine#3 1614,1,1,{ OnTouch: set .mineno,3; callfunc "minefunc",3; end; } mjo_dun01,209,110,4 script Mine#4 1614,1,1,{ OnTouch: set .mineno,4; callfunc "minefunc",4; end; } mjo_dun01,182,48,4 script Mine#5 1614,1,1,{ OnTouch: set .mineno,5; callfunc "minefunc",5; end; } mjo_dun01,37,115,4 script Mine#6 1614,1,1,{ OnTouch: set .mineno,6; callfunc "minefunc",6; end; } mjo_dun01,156,239,4 script Mine#7 1614,1,1,{ OnTouch: set .mineno,7; callfunc "minefunc",7; end; } mjo_dun01,35,292,4 script Mine#8 1614,1,1,{ OnTouch: set .mineno,8; callfunc "minefunc",8; end; } mjo_dun01,210,286,4 script Mine#9 1614,1,1,{ OnTouch: set .mineno,9; callfunc "minefunc",9; end; } mjo_dun01,112,141,4 script Mine#10 1614,1,1,{ OnTouch: set .mineno,10; callfunc "minefunc",10; end; } mjo_dun01,117,105,4 script Mine#11 1614,1,1,{ OnTouch: set .mineno,11; callfunc "minefunc",11; end; } mjo_dun01,108,303,4 script Mine#12 1614,1,1,{ OnTouch: set .mineno,12; callfunc "minefunc",12; end; } mjo_dun01,77,233,4 script Mine#13 1614,1,1,{ OnTouch: set .mineno,13; callfunc "minefunc",13; end; } mjo_dun01,25,149,4 script Mine#14 1614,1,1,{ OnTouch: set .mineno,14; callfunc "minefunc",14; end; } mjo_dun01,109,75,4 script Mine#15 1614,1,1,{ OnTouch: set .mineno,15; callfunc "minefunc",15; end; } anthell01,43,263,4 script Mine#16 1614,1,1,{ OnTouch: set .mineno,16; callfunc "minefunc",16; end; } anthell01,29,266,4 script Mine#17 1614,1,1,{ OnTouch: set .mineno,17; callfunc "minefunc",17; end; } anthell01,30,261,4 script Mine#18 1614,1,1,{ OnTouch: set .mineno,18; callfunc "minefunc",18; end; } anthell01,37,193,4 script Mine#19 1614,1,1,{ OnTouch: set .mineno,19; callfunc "minefunc",19; end; } anthell01,29,195,4 script Mine#20 1614,1,1,{ OnTouch: set .mineno,20; callfunc "minefunc",20; end; } anthell01,35,182,4 script Mine#21 1614,1,1,{ OnTouch: set .mineno,21; callfunc "minefunc",21; end; } anthell01,93,121,4 script Mine#22 1614,1,1,{ OnTouch: set .mineno,22; callfunc "minefunc",22; end; } anthell01,106,116,4 script Mine#23 1614,1,1,{ OnTouch: set .mineno,23; callfunc "minefunc",23; end; } anthell01,100,141,4 script Mine#24 1614,1,1,{ OnTouch: set .mineno,24; callfunc "minefunc",24; end; } mjo_dun01,26,34,4 script Mine#25 1614,1,1,{ OnTouch: set .mineno,25; callfunc "minefunc",25; end; } mjo_dun01,56,116,4 script Mine#26 1614,1,1,{ OnTouch: set .mineno,26; callfunc "minefunc",26; end; } mjo_dun01,159,97,4 script Mine#27 1614,1,1,{ OnTouch: set .mineno,27; callfunc "minefunc",27; end; } mjo_dun01,152,175,4 script Mine#28 1614,1,1,{ OnTouch: set .mineno,28; callfunc "minefunc",28; end; } mjo_dun01,255,237,4 script Mine#29 1614,1,1,{ OnTouch: set .mineno,29; callfunc "minefunc",29; end; } mjo_dun01,134,36,4 script Mine#30 1614,1,1,{ OnTouch: set .mineno,30; callfunc "minefunc",30; end; } mjo_dun02,123,112,4 script Mine#31 1614,1,1,{ OnTouch: set .mineno,31; callfunc "minefunc",31; end; } mjo_dun02,120,104,4 script Mine#32 1614,1,1,{ OnTouch: set .mineno,32; callfunc "minefunc",32; end; } mjo_dun02,113,108,4 script Mine#33 1614,1,1,{ OnTouch: set .mineno,33; callfunc "minefunc",33; end; } mjo_dun02,114,115,4 script Mine#34 1614,1,1,{ OnTouch: set .mineno,34; callfunc "minefunc",34; end; } mjo_dun02,118,119,4 script Mine#35 1614,1,1,{ OnTouch: set .mineno,35; callfunc "minefunc",35; end; } mjo_dun03,81,196,4 script Mine#36 1614,1,1,{ OnTouch: set .mineno,36; callfunc "minefunc",36; end; } mjo_dun03,92,195,4 script Mine#37 1614,1,1,{ OnTouch: set .mineno,37; callfunc "minefunc",37; end; } mjo_dun03,222,94,4 script Mine#38 1614,1,1,{ OnTouch: set .mineno,38; callfunc "minefunc",38; end; } mjo_dun03,216,91,4 script Mine#39 1614,1,1,{ OnTouch: set .mineno,39; callfunc "minefunc",39; end; } mjo_dun03,211,87,4 script Mine#40 1614,1,1,{ OnTouch: set .mineno,40; callfunc "minefunc",40; end; } ein_dun01,86,140,4 script Mine#41 1614,1,1,{ OnTouch: set .mineno,41; callfunc "minefunc",41; end; } ein_dun01,44,273,4 script Mine#42 1614,1,1,{ OnTouch: set .mineno,42; callfunc "minefunc",42; end; } ein_dun01,47,268,4 script Mine#43 1614,1,1,{ OnTouch: set .mineno,43; callfunc "minefunc",43; end; } ein_dun01,101,108,4 script Mine#44 1614,1,1,{ OnTouch: set .mineno,44; callfunc "minefunc",44; end; } ein_dun01,117,108,4 script Mine#45 1614,1,1,{ OnTouch: set .mineno,45; callfunc "minefunc",45; end; } ein_dun01,220,162,4 script Mine#46 1614,1,1,{ OnTouch: set .mineno,46; callfunc "minefunc",46; end; } ein_dun01,224,129,4 script Mine#47 1614,1,1,{ OnTouch: set .mineno,47; callfunc "minefunc",47; end; } ein_dun01,218,124,4 script Mine#48 1614,1,1,{ OnTouch: set .mineno,48; callfunc "minefunc",48; end; } ein_dun01,191,158,4 script Mine#49 1614,1,1,{ OnTouch: set .mineno,49; callfunc "minefunc",49; end; } ein_dun01,67,58,4 script Mine#50 1614,1,1,{ OnTouch: set .mineno,50; callfunc "minefunc",50; end; } ein_dun01,103,40,4 script Mine#51 1614,1,1,{ OnTouch: set .mineno,51; callfunc "minefunc",51; end; } ein_dun01,108,31,4 script Mine#52 1614,1,1,{ OnTouch: set .mineno,52; callfunc "minefunc",52; end; } ein_dun01,111,40,4 script Mine#53 1614,1,1,{ OnTouch: set .mineno,53; callfunc "minefunc",53; end; } ein_dun01,118,31,4 script Mine#54 1614,1,1,{ OnTouch: set .mineno,54; callfunc "minefunc",54; end; } ein_dun01,273,92,4 script Mine#55 1614,1,1,{ OnTouch: set .mineno,55; callfunc "minefunc",55; end; } ein_dun01,235,247,4 script Mine#56 1614,1,1,{ OnTouch: set .mineno,56; callfunc "minefunc",56; end; } ein_dun01,239,256,4 script Mine#57 1614,1,1,{ OnTouch: set .mineno,57; callfunc "minefunc",57; end; } - script MineGM -1,{ OnWhisperGlobal: set .mineno,100; dispbottom "ok."+.mineno; callfunc "minefunc",100; end; } function script minefunc { if(((isequipped(17026)) || (isequipped(17027)) || (isequipped(17028))) && (isequipped(5031)) && (countitem(17029)>=1) && (countitem(7204)>=1)){ if(isequippedcnt(17026)==1){ set mpower,300; set msleep,8000; } if(isequippedcnt(17026)==2){ set mpower,600; set msleep,4332; } if(isequippedcnt(17027)==1){ set mpower,800; set msleep,3500; } if(isequippedcnt(17027)==2){ set mpower,1600; set msleep,2000; } if(isequippedcnt(17028)==1){ set mpower,2000; set msleep,1700; } if(isequippedcnt(17028)==2){ set mpower,4000; set msleep,1000; } if(isequipped(17026,17027)){ set mpower,1100; set msleep,2724; } if(isequipped(17026,17028)){ set mpower,2300; set msleep,1564; } if(isequipped(17027,17028)){ set mpower,2800; set msleep,1356; } mes "^FF0000["+strcharinfo(0)+"]^000000"; set @mineno,getarg(0); mes "This mine resource is at "+getd("$@res"+@mineno)+" %."; if(getd("$@res"+@mineno)<1) close; mes "Let's start mining?"; switch(select("Yes.","No.")){ case 1: if (mining==1){ set mining,0; mes "You can't mine twice, please relog and try to do it correctly."; close; } set mfuel,6; set playerminedead,0; next; mes "^FF0000["+strcharinfo(0)+"]^000000"; mes "Your character will remain mining as long as you have resources for it and the mine still has minerals"; mes "To interrupt mining action before it, its needed to log out or to die."; close2; getmapxy(@map$,@x,@y,0); set mining,1; atcommand "@option 64 0 0"; //mes "^FF0000["+strcharinfo(0)+"]^000000"; //mes "debug "+mpower; //mes "debug "+msleep; //mes "you have "+countitem(7204)+"x gunpowder"; //next; Blast: getmapxy(@map2$,@x2,@y2,0); if(@map2$!=@map$){ mes "^FF0000["+strcharinfo(0)+"]^000000"; mes "Where the hell am I?"; set mining,0; set playerminedead,0; atcommand "@option 0 0 0"; undisguise; close; } if(playerminedead==1){ mes "^FF0000["+strcharinfo(0)+"]^000000"; mes "I'm dead =("; set mining,0; set playerminedead,0; atcommand "@option 0 0 0"; undisguise; close; } if(countitem(7204)>=1){ npctalk "Blasting..."; specialeffect2 17; delitem 7204,1; sleep2 1500; if(rand(1,100) < 11){ dispbottom "Failed, blasting again.."; sleep2 1500; goto Blast; } else{ if(rand(200)==1){ announce "Earthquake!",bc_self; mes "^FF0000["+strcharinfo(0)+"]^000000"; mes "Earthquake!!!"; soundeffect "earth_quake.wav",0; percentheal -rand(80,100),-100; set mining,0; set playerminedead,1; atcommand "@option 0 0 0"; undisguise; close; } set mblast,15; npctalk "Perforating!"; dispbottom countitem(7204) + " " + getitemname(7204) + ( (countitem(7204)>1)?"s":"") + " left."; dispbottom countitem(17029) + " " + getitemname(17029) + ( (countitem(17029)>1)?"s":"") + " left."; Perfurate: getmapxy(@map2$,@x2,@y2,0); if(@map2$!=@map$){ mes "^FF0000["+strcharinfo(0)+"]^000000"; mes "Where the hell am I?"; set mining,0; set playerminedead,0; atcommand "@option 0 0 0"; undisguise; close; } if(playerminedead==1){ mes "^FF0000["+strcharinfo(0)+"]^000000"; mes "I'm dead =("; set mining,0; set playerminedead,0; atcommand "@option 0 0 0"; undisguise; close; } if(countitem(17029)>=1){ if (checkweight(1002,2) == 0 ){ mes "^FF0000["+strcharinfo(0)+"]^000000"; mes "Ooops... I'm overweight"; set mining,0; atcommand "@option 0 0 0"; undisguise; close; } disguise 848; if(mfuel==0){ delitem 17029,1; set mfuel,6; } sleep2 msleep; specialeffect2 5; set mfuel,mfuel-1; setarray @minelvl1,7067,7067,909,0,0; setarray @minelvl2,1002,7710,7521,7315,7095,910,7799,7522,7597,7523,912,724,7582,7577,7430,7430,7430,7430,7426,7426,7426,7426,7429,7429,7429,7429,7427,7427,7427,7427; setarray @minelvl3,757,756,7232,7231,17101,7178,7233,996,990,1000,7263,7300,999,7578,991,993,640,7575,7576,7758,722,729,723,726,725,728,7807,727,721,718,719,720; setarray @minelvl4,2665,2645,2688,2695,2685,2683,2670,2682,2684,2620,2637,2715,2673,2665,2645,2688,2695,2685,2683,2670,2682,2684,2620,2637,2715,2673,2665,2645,2688,2695,2685,2683,2670,2682,2684,2620,2637,2715,2673,17611,17612,17613,17614,17615,17616; set @mchance,rand(10000); if(@mchance < 4){ getitem @minelvl4[rand(getarraysize(@minelvl4))],1; setd "$@res"+@mineno,getd("$@res"+@mineno)-5; dispbottom "The mine resource is at "+getd("$@res"+@mineno)+" %."; } if((@mchance > 3) && (@mchance < 101)){ getitem @minelvl3[rand(getarraysize(@minelvl3))],2; setd "$@res"+@mineno,getd("$@res"+@mineno)-2; dispbottom "The mine resource is at "+getd("$@res"+@mineno)+" %."; } if((@mchance > 100) && (@mchance < 1701)){ getitem @minelvl2[rand(getarraysize(@minelvl2))],2; } if((@mchance > 1700) && (@mchance < 10000)){ getitem @minelvl1[rand(getarraysize(@minelvl1))],2; } if(getd("$@res"+@mineno)<1){ mes "^FF0000["+strcharinfo(0)+"]^000000"; mes "This mine is empty."; set mining,0; atcommand "@option 0 0 0"; undisguise; close; } if(rand(300)==1){ announce "Accident!",bc_self; soundeffect "die_male.wav",0; percentheal -rand(5,10),-rand(5,10); } set mblast,mblast-1; if(mblast==0) goto Blast; goto Perfurate; }else{ mes "^FF0000["+strcharinfo(0)+"]^000000"; mes "Oh, I need more Fuel."; set mining,0; atcommand "@option 0 0 0"; undisguise; close; } } } else{ mes "^FF0000["+strcharinfo(0)+"]^000000"; mes "Oh, my Gunpowder is over."; set mining,0; atcommand "@option 0 0 0"; undisguise; close; } case 2: close; } } else{ mes "^FF0000["+strcharinfo(0)+"]^000000"; mes "Oh, I think I forgot my equipment!"; mes "^FF0000Required:^000000 Mining Tool, Mine Hat, Gunpowder and Mining Tool Fuel."; close; } }