Jump to content
  • 0

dispbottom not correct - Edited Mining Script


macmac88

Question


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.01
  • Content Count:  21
  • Reputation:   0
  • Joined:  05/15/21
  • Last Seen:  

//======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
Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10013
  • Reputation:   2346
  • Joined:  10/28/11
  • Last Seen:  

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
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  155
  • Topics Per Day:  0.11
  • Content Count:  349
  • Reputation:   12
  • Joined:  04/05/20
  • Last Seen:  

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 .... 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.01
  • Content Count:  21
  • Reputation:   0
  • Joined:  05/15/21
  • Last Seen:  

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;
         		}

 

Link to comment
Share on other sites

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.

×
×
  • Create New...