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: ================================================== //===== By: ==================================================
//= eAthena Dev Team //= eAthena Dev Team
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.2b //= 1.3
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= eAthena SVN //= eAthena SVN
//===== Description: ========================================= //===== Description: =========================================
@ -13,6 +13,7 @@
//= 1.1 Spell Checked [Nexon] //= 1.1 Spell Checked [Nexon]
//= 1.2 Rescripted to Aegis 10.3 standard. [L0ne_W0lf] //= 1.2 Rescripted to Aegis 10.3 standard. [L0ne_W0lf]
//= 1.2b Fixed typos in variable names [ultramage] //= 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,{ morocc_in,146,99,3 script Java Dullihan 58,{
@ -101,49 +102,57 @@ S_MakeDye:
switch(getarg(0)) { switch(getarg(0)) {
case 1: 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."; 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 .@cost,3000;
set .@dyestuff,975; set .@dyestuff,975;
break; break;
case 2: 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."; 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 .@cost,3000;
set .@dyestuff,976; set .@dyestuff,976;
break; break;
case 3: 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."; 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 .@cost,3500;
set .@dyestuff,978; set .@dyestuff,978;
break; break;
case 4: 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."; 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 .@cost,5000;
set .@dyestuff,979; set .@dyestuff,979;
break; break;
case 5: 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."; 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 .@cost,5000;
set .@dyestuff,980; set .@dyestuff,980;
break; break;
case 6: 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."; 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 .@cost,5000;
set .@dyestuff,981; set .@dyestuff,981;
break; break;
case 7: 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."; 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 .@cost,3000;
set .@dyestuff,982; set .@dyestuff,982;
break; break;
case 8: 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."; 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 .@cost,7000;
set .@dyestuff,983; set .@dyestuff,983;
break; break;
@ -158,21 +167,23 @@ S_MakeDye:
} }
next; next;
if (select("Make Dyestuffs:Cancel") == 1) { 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 "[Dye Maker Java Dullihan]";
mes "Hmmm. Not enough..."; 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...?"; 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; close;
} }
delitem .@item[0],.@item[1]; // delete items
delitem .@item[2],.@item[3]; for (set .@i, 0; .@i < .@size ; set .@i, .@i+1)
delitem .@item[4],.@item[5]; delitem .@item[.@i], .@count[.@i];
delitem .@item[6],.@item[7];
delitem .@item[8],.@item[9];
delitem 973,1; //Counteragent
delitem 713,1; //Empty Bottle
set zeny,zeny-.@cost; set zeny,zeny-.@cost;
// get dyestuff
getitem .@dyestuff,1; getitem .@dyestuff,1;
mes "[Dye Maker Java Dullihan]"; 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..."; 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; next;