summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/003-1/ishi.txt15
1 files changed, 9 insertions, 6 deletions
diff --git a/npc/003-1/ishi.txt b/npc/003-1/ishi.txt
index 7d63c04e7..dd2127010 100644
--- a/npc/003-1/ishi.txt
+++ b/npc/003-1/ishi.txt
@@ -4,8 +4,7 @@
// Jesusalva
//
// Do not add void items to array.
-// note : the rare item system suck. Must be ordered from less rare to most rare.
-// TODO FIXME: Not reading properly from @Rares$ array, no idea how to fix that!
+// note : the rare item system suck.
003-1,97,97,0 script Ishi NPC_PLAYER,{
@@ -29,7 +28,7 @@
"Coal","SnakeSkin","CottonCloth","GrassSeeds","HardSpike","CobaltHerb","GambogeHerb",
"MauveHerb","IronOre","MaggotSlime","RawLog","ScorpionStinger","SilkCocoon","TreasureKey",
"FluffyFur","EmptyBottle","RustyKnife","TolchiArrow","Arrow","IronArrow","BlueCottonDye";
- setarray @Rares$, "BronzeGift", 120, "IronIngot", 70, "BrimedHat", 40;
+ setarray @Rares$, "BrimedHat", 5, "IronIngot", 10, "BronzeGift", 10;
mesn l("Ishi, the Rewards Master");
mesq l("Welcome! I see you have @@ Monster Points. Would you like to exchange some of those for items?", Mobpt);
@@ -122,14 +121,18 @@ L_Items:
goto L_NoPlace;
debugmes "Testing rares";
+ @lucky = rand(10000) + 1;
for (.@b = 0; .@b < getarraysize(@Rares$); .@b=.@b+2) {
- .@lucky = rand(10000); // 0 - 99999
debugmes "Checking "+@Rares$[.@b]+" - b is now "+.@b;
- debugmes l("Check @@ <= @@", .@lucky, @Rares$[.@b+1]);
- if (.@lucky <= atoi(@Rares$[.@b+1])) {
+ debugmes l("Check @@ <= @@", @lucky, @Rares$[.@b+1]);
+ if (.@b == 0)
+ @control = 0;
+ if(@lucky >= (@control + 1) && @lucky <= @control + atoi(@Rares$[.@b+1]))
+ {
.@lucked=1;
.@reward$ = @Rares$[.@b];
}
+ @control = @control + atoi(@Rares$[.@b+1]);
}
debugmes "Setting reward"; // could be if (!.@lucked) but for sanity...