macmac88 Posted May 30, 2021 Group: Members Topic Count: 6 Topics Per Day: 0.00 Content Count: 21 Reputation: 0 Joined: 05/15/21 Last Seen: August 30, 2021 Share Posted May 30, 2021 (edited) //======Name======================================== // Mining NPC //======Version===================================== // 1.0 //======Author(s)=================================== // Sandbox //======Comments==================================== // In loving memory of AstralRO //================================================== prontera,163,162,3 script Hermoining 726,{ mes "[^0000FF Hermoining ^000000]"; mes "Hiya! I'm the master of Mining, ^880000Hermoining^000000!"; menu "Whoa, teach me master!",-; next; mes "[^0000FF Hermoining ^000000]"; mes "Okay, You'll be needing a ^008800Pick Axe^000000 for mining. While inside the map, you'll be able to mine mithril ores which can be sold for zeny!"; next; mes "[^0000FF Hermoining ^000000]"; mes "So, do you want to proceed?"; menu "Buy Pick Axe!",-,"Yes Master",Lpick; close2; callshop "PickShop"; close; Lpick: if(JobLevel < 50) goto Lnjob; mes "[^0000FF Hermoining ^000000]"; mes "Have fun!"; sc_end SC_ALL; warp "force_2-2",174,115; close; Lnjob: next; mes "[^0000FF Hermoining ^000000]"; mes "Sorry, you need to be atleast job 50 or higher in order to enter."; close; } - shop PickShop -1,6010:10000 force_2-2,159,177,5 script Mine Exit 848,{ mes "[^888800 Minero ^000000]"; mes "Do you want to get out of here?"; menu "Yes please!",-; next; mes "[^888800 Minero ^000000]"; mes "See you soon!"; warp "prontera",156,191; close; } force_2-2,161,184,3 script Mithril Ore 1976,{ if(#minedelay+86400 > gettimetick(2)) goto Ldelay; //Comment if you dont want to put a limit on mining if(@mining != 0) goto Lstillmine; if(.mining != 0) goto Lalreadymine; //mes "Do you want to mine this rock?"; //menu "Proceed",-; //next; if(countitem(6010) < 1) goto Lnopick; delitem 6010,1; set #MineCount,#MineCount+1; if(#MineCount == 10000) { //Comment if you dont want to put a limit on mining DEFAULT = 10,000x failed or success set #minedelay,gettimetick(2); set #MineCount,0; } set @minechance,rand(1,16); set .mining,1; set @mining,1; pcblockmove getcharid(3),1; if(MineLvl == 0) { misceffect 102; //Mining level 0 waits 4 seconds before mining sleep2 1000; //misceffect 102; //sleep2 1000; //misceffect 102; //sleep2 1000; //misceffect 102; //sleep2 1000; set .mining,0; set @mining,0; pcblockmove getcharid(3),0; if(@minechance >= 12){ set MineExp,MineExp+3; if(@minechance >= 7) set MineExp,MineExp+2; if(@minechance >= 2) set MineExp,MineExp+1; if(@minechance == 2) getitem 985,1; //elunium else if(@minechance == 3) getitem 984,1; //oridecon else if(@minechance == 4) getitem 7915,1; //bronze coin else if(@minechance == 5) getitem 6223,1; //carnium else if(@minechance == 6) getitem 6224,1; //bradium else if(@minechance == 7) getitem 7916,1; //silver coin else if(@minechance == 8) getitem 6241,1; //hd elunium else if(@minechance == 9) getitem 6240,1; //hd oridecon else if(@minechance == 10) getitem 7619,1; //enriched elunium else if(@minechance == 11) getitem 7620,1; //enriched oridecon else if(@minechance == 12) getitem 6225,1; //hd carnium else if(@minechance == 13) getitem 6226,1; //hd bradium else if(@minechance == 14) getitem 7517,1; //gold coin else if(@minechance == 15) getitem 674,1; //mithril coin else if(@minechance == 16) getitem 677,1; //platinum coin misceffect 154; goto Lsuccess; } else{ getitem 7049,1; misceffect 155; goto Lfail; } } if(MineLvl == 1) { misceffect 102; //Mining level 1 waits 3 seconds before mining sleep2 1000; misceffect 102; sleep2 1000; misceffect 102; sleep2 1000; set .mining,0; set @mining,0; pcblockmove getcharid(3),0; if(@minechance >= 12){ set MineExp,MineExp+3; if(@minechance >= 7) set MineExp,MineExp+2; if(@minechance >= 2) set MineExp,MineExp+1; if(@minechance == 2) getitem 985,1; //elunium else if(@minechance == 3) getitem 984,1; //oridecon else if(@minechance == 4) getitem 7915,1; //bronze coin else if(@minechance == 5) getitem 6223,1; //carnium else if(@minechance == 6) getitem 6224,1; //bradium else if(@minechance == 7) getitem 7916,1; //silver coin else if(@minechance == 8) getitem 6241,1; //hd elunium else if(@minechance == 9) getitem 6240,1; //hd oridecon else if(@minechance == 10) getitem 7619,1; //enriched elunium else if(@minechance == 11) getitem 7620,1; //enriched oridecon else if(@minechance == 12) getitem 6225,1; //hd carnium else if(@minechance == 13) getitem 6226,1; //hd bradium else if(@minechance == 14) getitem 7517,1; //gold coin else if(@minechance == 15) getitem 674,1; //mithril coin else if(@minechance == 16) getitem 677,1; //platinum coin misceffect 154; goto Lsuccess; } else{ getitem 7049,1; misceffect 155; goto Lfail; } } if(MineLvl == 2){ misceffect 102; //Mining level 2 waits 2 seconds before mining sleep2 1000; misceffect 102; sleep2 1000; set .mining,0; set @mining,0; pcblockmove getcharid(3),0; if(@minechance >= 12){ set MineExp,MineExp+3; if(@minechance >= 7) set MineExp,MineExp+2; if(@minechance >= 2) set MineExp,MineExp+1; if(@minechance == 2) getitem 985,1; //elunium else if(@minechance == 3) getitem 984,1; //oridecon else if(@minechance == 4) getitem 7915,1; //bronze coin else if(@minechance == 5) getitem 6223,1; //carnium else if(@minechance == 6) getitem 6224,1; //bradium else if(@minechance == 7) getitem 7916,1; //silver coin else if(@minechance == 8) getitem 6241,1; //hd elunium else if(@minechance == 9) getitem 6240,1; //hd oridecon else if(@minechance == 10) getitem 7619,1; //enriched elunium else if(@minechance == 11) getitem 7620,1; //enriched oridecon else if(@minechance == 12) getitem 6225,1; //hd carnium else if(@minechance == 13) getitem 6226,1; //hd bradium else if(@minechance == 14) getitem 7517,1; //gold coin else if(@minechance == 15) getitem 674,1; //mithril coin else if(@minechance == 16) getitem 677,1; //platinum coin misceffect 154; goto Lsuccess; } else{ getitem 7049,1; misceffect 155; goto Lfail; } } if(MineLvl == 3) { misceffect 102; //Mining level 3 waits 1 seconds before mining sleep2 1000; set .mining,0; set @mining,0; pcblockmove getcharid(3),0; if(@minechance >= 12){ set MineExp,MineExp+3; if(@minechance >= 7) set MineExp,MineExp+2; if(@minechance >= 2) set MineExp,MineExp+1; if(@minechance == 2) getitem 985,1; //elunium else if(@minechance == 3) getitem 984,1; //oridecon else if(@minechance == 4) getitem 7915,1; //bronze coin else if(@minechance == 5) getitem 6223,1; //carnium else if(@minechance == 6) getitem 6224,1; //bradium else if(@minechance == 7) getitem 7916,1; //silver coin else if(@minechance == 8) getitem 6241,1; //hd elunium else if(@minechance == 9) getitem 6240,1; //hd oridecon else if(@minechance == 10) getitem 7619,1; //enriched elunium else if(@minechance == 11) getitem 7620,1; //enriched oridecon else if(@minechance == 12) getitem 6225,1; //hd carnium else if(@minechance == 13) getitem 6226,1; //hd bradium else if(@minechance == 14) getitem 7517,1; //gold coin else if(@minechance == 15) getitem 674,1; //mithril coin else if(@minechance == 16) getitem 677,1; //platinum coin misceffect 154; goto Lsuccess; } else{ getitem 7049,1; misceffect 155; goto Lfail; } } Lsuccess: //Required experience before a player's mining level increases. dispbottom "You've successfully mined the ore."; if(MineExp < 100000 && (@minechance >= 2)) dispbottom "You've gained 1 Mining Exp."; if(MineExp < 100000 && (@minechance >= 7)) dispbottom "You've gained 2 Mining Exp."; if(MineExp < 100000 && (@minechance >= 12)) dispbottom "You've gained 3 Mining Exp."; if(MineExp == 10000) { set MineLvl,1; dispbottom "Congratulations! Your Mining Mastery is now Level 1!"; announce strcharinfo(0)+"'s Mining Mastery reached Level 1!",bc_all,0x00FFFF; } else if(MineExp == 50000) { set MineLvl,2; dispbottom "Congratulations! Your Mining Mastery is now Level 2!"; announce strcharinfo(0)+"'s Mining Mastery reached Level 2!",bc_all,0x00FFFF; } else if(MineExp == 100000) { set MineLvl,3; dispbottom "Congratulations! Your Mining Mastery is now Level 3!"; announce strcharinfo(0)+"'s Mining Mastery reached Level 3!",bc_all,0x00FFFF; } end; Lfail: dispbottom "You got junk from the ore."; end; Lnopick: mes "^FF0000*Hand Smash!!*^000000"; next; mes "Ouch! I'll be needing a ^008800Pickaxe^000000 for this.."; close; Lalreadymine: mes "Hey! Get your own spot!"; close; Lstillmine: mes "Ugh, i'm not done mining yet!"; close; Ldelay: mes "You can only mine 10,000 ores a day!"; close; OnInit: goto Lwalk; end; Lwalk: sleep 1000; npcwalkto rand(161,186),rand(119,184); goto Lwalk; end; } I'm new to scripting and the script has no errors, but It seems not doing what it supposed to post on the "dispbottom" dispbottom "You've successfully mined the ore."; if(MineExp < 100000 && (@minechance >= 2)) dispbottom "You've gained 1 Mining Exp."; if(MineExp < 100000 && (@minechance >= 7)) dispbottom "You've gained 2 Mining Exp."; if(MineExp < 100000 && (@minechance >= 12)) dispbottom "You've gained 3 Mining Exp."; I always get "You've gained 1 Mining Exp." even if I get a @minechance of >12 And can someone help me how can I put "else if" in this code below. It gives error when I add "else" if(@minechance >= 12){ set MineExp,MineExp+3; if(@minechance >= 7) set MineExp,MineExp+2; if(@minechance >= 2) set MineExp,MineExp+1; I'm using a client ver 20200401 Edited May 30, 2021 by macmac88 "else if" error Quote Link to comment Share on other sites More sharing options...
0 Emistry Posted June 12, 2021 Group: Forum Moderator Topic Count: 93 Topics Per Day: 0.02 Content Count: 10018 Reputation: 2369 Joined: 10/28/11 Last Seen: Sunday at 05:32 PM Share Posted June 12, 2021 dispbottom "You've successfully mined the ore."; if (MineExp < 100000) { if (@minechance >= 12) .@mine_exp = 3; else if (@minechance >= 7) .@mine_exp = 2; else if (@minechance >= 1) .@mine_exp = 1; } if (.@mine_exp) { MineExp += .@mine_exp; dispbottom "You've gained "+.@mine_exp+" Mining Exp."; } 1 Quote Link to comment Share on other sites More sharing options...
0 Eross Posted June 2, 2021 Group: Members Topic Count: 166 Topics Per Day: 0.09 Content Count: 377 Reputation: 12 Joined: 04/05/20 Last Seen: Yesterday at 08:11 AM Share Posted June 2, 2021 Quote dispbottom "You've successfully mined the ore."; if(MineExp < 100000 && (@minechance >= 2)) dispbottom "You've gained 1 Mining Exp."; if(MineExp < 100000 && (@minechance >= 7)) dispbottom "You've gained 2 Mining Exp."; if(MineExp < 100000 && (@minechance >= 12)) dispbottom "You've gained 3 Mining Exp."; I always get "You've gained 1 Mining Exp." even if I get a @minechance of >12 You have to write the condition statement like this .. dispbottom "You've successfully mined the ore."; if(MineExp < 100000 && (@minechance >= 2 && @minechance <= 6)) dispbottom "You've gained 1 Mining Exp."; if(MineExp < 100000 && (@minechance >= 7 && @minechance <= 11)) dispbottom "You've gained 2 Mining Exp."; if(MineExp < 100000 && (@minechance >= 12)) dispbottom "You've gained 3 Mining Exp."; in your else question always watch our for your curly brackets .. if(@minechance >= 12){ set MineExp,MineExp+3; if(@minechance >= 7) set MineExp,MineExp+2; if(@minechance >= 2) set MineExp,MineExp+1; if(@minechance == 2) getitem 985,1; //elunium else if(@minechance == 3) getitem 984,1; //oridecon else if(@minechance == 4) getitem 7915,1; //bronze coin else if(@minechance == 5) getitem 6223,1; //carnium else if(@minechance == 6) getitem 6224,1; //bradium else if(@minechance == 7) getitem 7916,1; //silver coin else if(@minechance == 8) getitem 6241,1; //hd elunium else if(@minechance == 9) getitem 6240,1; //hd oridecon else if(@minechance == 10) getitem 7619,1; //enriched elunium else if(@minechance == 11) getitem 7620,1; //enriched oridecon else if(@minechance == 12) getitem 6225,1; //hd carnium else if(@minechance == 13) getitem 6226,1; //hd bradium else if(@minechance == 14) getitem 7517,1; //gold coin else if(@minechance == 15) getitem 674,1; //mithril coin else if(@minechance == 16) getitem 677,1; //platinum coin misceffect 154; goto Lsuccess; } after 'if(@minechance >= 12)' and after 'goto Lsuccess' ... you cant add elseif in between of 2 ifs .... Quote Link to comment Share on other sites More sharing options...
0 macmac88 Posted June 13, 2021 Group: Members Topic Count: 6 Topics Per Day: 0.00 Content Count: 21 Reputation: 0 Joined: 05/15/21 Last Seen: August 30, 2021 Author Share Posted June 13, 2021 22 hours ago, Emistry said: dispbottom "You've successfully mined the ore."; if (MineExp < 100000) { if (@minechance >= 12) .@mine_exp = 3; else if (@minechance >= 7) .@mine_exp = 2; else if (@minechance >= 1) .@mine_exp = 1; } if (.@mine_exp) { MineExp += .@mine_exp; dispbottom "You've gained "+.@mine_exp+" Mining Exp."; } Actually, I've solved this following your other comments on a post. Thank you for always helping newbie's like me. Following other examples I've modified it like this and of course those curly brackets you mentioned: if(rand(1,3) >= 2){ setarray .@aitem[0],985,984,7915; set .@aitemRand,.@aitem[rand(getarraysize(.@aitem))]; getitem .@aitemRand,1; //get elunium,oridecon,bronze coin misceffect 154; }else if(rand(1,4) >= 3){ setarray .@bitem[0],6223,6224,7960; set .@bitemRand,.@bitem[rand(getarraysize(.@bitem))]; getitem .@bitemRand,1; //get carnium,bradium,silver coin misceffect 154; } Quote Link to comment Share on other sites More sharing options...
Question
macmac88
I'm new to scripting and the script has no errors, but It seems not doing what it supposed to post on the "dispbottom"
I always get "You've gained 1 Mining Exp." even if I get a @minechance of >12
And can someone help me how can I put "else if" in this code below. It gives error when I add "else"
I'm using a client ver 20200401
Edited by macmac88"else if" error
Link to comment
Share on other sites
3 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.