Jump to content
  • 0

dispbottom not correct - Edited Mining Script


Question

Posted (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 by macmac88
"else if" error

3 answers to this question

Recommended Posts

  • 0
Posted
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.";
}

 

  • Upvote 1
  • 0
Posted
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 .... 

  • 0
Posted
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;
         		}

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...