Made the checks in the dye maker npc more dynamic (also fixes missing 'countitem' bug)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11145 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
ultramage 2007-09-08 16:31:39 +00:00
parent fae1d2fb79
commit c3f5165bba

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= eAthena Dev Team
//===== Current Version: =====================================
//= 1.2b
//= 1.3
//===== Compatible With: =====================================
//= eAthena SVN
//===== Description: =========================================
@ -13,6 +13,7 @@
//= 1.1 Spell Checked [Nexon]
//= 1.2 Rescripted to Aegis 10.3 standard. [L0ne_W0lf]
//= 1.2b Fixed typos in variable names [ultramage]
//= 1.3 Made the checks more dynamic [ultramage]
//============================================================
morocc_in,146,99,3 script Java Dullihan 58,{
@ -101,49 +102,57 @@ S_MakeDye:
switch(getarg(0)) {
case 1:
mes "Mmm... I need 30 Red Herbs, 1 Counteragent, and 1 Empty Bottle to make Red Dyestuffs. The fee is only 3000 zeny to make it.";
setarray .@item[0], 507,30, 0,0, 0,0, 0,0, 0,0;
setarray .@item[0], 507, 973, 713;
setarray .@count[0], 30, 1, 1;
set .@cost,3000;
set .@dyestuff,975;
break;
case 2:
mes "Mmm... I need 30 Yellow Herbs, 1 Couneragent, and 1 Empty Bottle to make Lemon Dyestuffs. The fee is only 3000 zeny to make it.";
setarray .@item[0], 508,30, 0,0, 0,0, 0,0, 0,0;
setarray .@item[0], 508, 973, 713;
setarray .@count[0], 30, 1, 1;
set .@cost,3000;
set .@dyestuff,976;
break;
case 3:
mes "Mmm... I need 20 Blue Herbs, 1 Counteragent, and 1 Empty Bottle to make Cobaltblue Dyestuff. It's hard to use the Blue Herb, so the fee is going to be 3500 zeny.";
setarray .@item[0], 510,20, 0,0, 0,0, 0,0, 0,0;
setarray .@item[0], 510, 973, 713;
setarray .@count[0], 20, 1, 1;
set .@cost,3500;
set .@dyestuff,978;
break;
case 4:
mes "Mmm... I need 5 Blue Herbs, 20 Green Herbs, 20 Yellow Herbs, 1 Counteragent, 1 Mixture, and 1 Empty Bottle to make Darkgreen Dyestuffs. Don't get all of the materials confused. The fee is only 5000 zeny.";
setarray .@item[0], 510,5, 511,20, 508,20, 974,1, 0,0;
setarray .@item[0], 510, 511, 508, 974, 973, 713;
setarray .@count[0], 5, 20, 20, 1, 1, 1;
set .@cost,5000;
set .@dyestuff,979;
break;
case 5:
mes "Mmm... I need 20 Red Herbs, 20 Yellow Herbs, 1 Counteragent, 1 Mixture, and 1 Empty Bottle to make Orange Dyestuff. The fee is going to be 5000 zeny.";
setarray .@item[0], 507,20, 508,20, 974,1, 0,0, 0,0;
setarray .@item[0], 507, 508, 974, 973, 713;
setarray .@count[0], 20, 20, 1, 1, 1;
set .@cost,5000;
set .@dyestuff,980;
break;
case 6:
mes "Mmm... I need 10 Blue Herbs, 30 Red Herbs, 1 Counteragent, 1 Mixture, and 1 Empty Bottle to make Violet Dyestuffs. The fee will be 5000 zeny.";
setarray .@item[0], 510,10, 507,30, 974,1, 0,0, 0,0;
setarray .@item[0], 510, 507, 974, 973, 713;
setarray .@count[0], 10, 30, 1, 1, 1;
set .@cost,5000;
set .@dyestuff,981;
break;
case 7:
mes "Mmm... I need 30 White Herbs, 1 Counteragent, and 1 Empty bottle to make White Dyestuffs. The fee will be 3000 zeny.";
setarray .@item[0], 509,30, 0,0, 0,0, 0,0, 0,0;
setarray .@item[0], 509, 973, 713;
setarray .@count[0], 30, 1, 1;
set .@cost,3000;
set .@dyestuff,982;
break;
case 8:
mes "Mmm... I need 30 of each Red, Yellow, and Green Herb, 5 Blue Herbs, 1 Counteragent, 1 Mixture, and 1 Empty Bottle. The process takes longer and more effort than the others, so it is going to be 7000 zeny.";
setarray .@item[0], 507,30, 508,30, 511,30, 510,5, 974,1;
setarray .@item[0], 507, 508, 511, 510, 974, 973, 713;
setarray .@count[0], 30, 30, 30, 5, 1, 1, 1;
set .@cost,7000;
set .@dyestuff,983;
break;
@ -158,21 +167,23 @@ S_MakeDye:
}
next;
if (select("Make Dyestuffs:Cancel") == 1) {
if (.@item[0] < .@item[1] || .@item[2] < .@item[3] || .@item[4] < .@item[5] || .@item[6] < .@item[7] || .@item[8] < .@item[9] || countitem(973)== 0 || countitem(713) == 0 || Zeny < .@cost) {
set .@size, getarraysize(.@item);
// check requirements
for (set .@i,0 ; .@i < .@size ; set .@i,.@i+1)
countitem(.@item[.@i]) >= .@count[.@i];
if (.@i < .@size || Zeny < .@cost) {
mes "[Dye Maker Java Dullihan]";
mes "Hmmm. Not enough...";
mes "I don't think I'll be able to make the color you want with those materials. Why don't you go get some more materials...?";
close;
}
delitem .@item[0],.@item[1];
delitem .@item[2],.@item[3];
delitem .@item[4],.@item[5];
delitem .@item[6],.@item[7];
delitem .@item[8],.@item[9];
delitem 973,1; //Counteragent
delitem 713,1; //Empty Bottle
// delete items
for (set .@i, 0; .@i < .@size ; set .@i, .@i+1)
delitem .@item[.@i], .@count[.@i];
set zeny,zeny-.@cost;
// get dyestuff
getitem .@dyestuff,1;
mes "[Dye Maker Java Dullihan]";
mes "Hmm... It came out pretty well. A very rich color. Of course I'll be trying harder to make a more charming color...";
next;