diff options
author | Jesusaves <cpntb1@ymail.com> | 2019-01-26 12:20:31 -0200 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2019-01-26 12:20:31 -0200 |
commit | 48a26f15ebb747e4835e57a3f5ae66e8527b7247 (patch) | |
tree | 85efb8171986fa11197d2937c7997c90a267a5b1 /npc/007-1/treasure.txt | |
parent | ac8f3668ca43b427c55911c4403a4042633b1313 (diff) | |
download | serverdata-48a26f15ebb747e4835e57a3f5ae66e8527b7247.tar.gz serverdata-48a26f15ebb747e4835e57a3f5ae66e8527b7247.tar.bz2 serverdata-48a26f15ebb747e4835e57a3f5ae66e8527b7247.tar.xz serverdata-48a26f15ebb747e4835e57a3f5ae66e8527b7247.zip |
The Great Krists Experiment - let's hope it works...
Diffstat (limited to 'npc/007-1/treasure.txt')
-rw-r--r-- | npc/007-1/treasure.txt | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/npc/007-1/treasure.txt b/npc/007-1/treasure.txt new file mode 100644 index 000000000..6547ae8ee --- /dev/null +++ b/npc/007-1/treasure.txt @@ -0,0 +1,115 @@ +// TMW2 scripts. +// Author: +// Jesusalva +// Description: +// Fishing and Treasure Box + +007-1,155,163,0 script #fishing_00710 NPC_WATER_SPLASH,{ + + .@regen_time=200; + fishing(2, CommonCarp, RustyKnife, + ScorpionStinger, FatesPotion, GrassCarp); // begin or continue fishing + close; + +OnInit: + .sex = G_OTHER; + .distance = 4; + .cooldown = 200; + end; +} + +/* +007-1,87,73,0 duplicate(#fishing_00710) #fishing_00711 NPC_WATER_SPLASH +007-1,31,52,0 duplicate(#fishing_00710) #fishing_00712 NPC_WATER_SPLASH +007-1,30,63,0 duplicate(#fishing_00710) #fishing_00713 NPC_WATER_SPLASH +007-1,64,127,0 duplicate(#fishing_00710) #fishing_00714 NPC_WATER_SPLASH +*/ + +// Animation code by Evol Team +// 4144, gumi, Hal9000, Reid +007-1,0,0,0 script #chest_00710 NPC_CHEST,{ + + if (!.busy && !.empty) { + mesc l("Open the chest?"); + mesc l("Cost: 1 @@", getitemlink(TreasureKey)), 1; + if (!countitem(TreasureKey)) + close; + next; + if (askyesno() == ASK_NO) + close; + + delitem TreasureKey, 1; + mesc l("You open the chest!"); + if (!.empty) { + TREASURE_OPEN=TREASURE_OPEN+1; + .@t=TREASURE_OPEN; + .@r=rand(0,10000); + + // Select treasure list + // You're warranted an ultra rare (0.1%) every 99 open chests + // You're warranted a super rare (1%) every 50 open chests + // There's also rares (10%), uncommons (40%) and commons (60%) + if (.@t % 99 == 0 || .@r < 10) + .@loot=any(AtroposMixture, GoldenApple, DivineApple, MercBoxA, PirateShorts, SilverGift, Shemagh, FluoPowder, IridiumOre, PlatinumOre); + else if (.@t % 50 == 0 || .@r < 100) + .@loot=any(Grenade, SnakeEgg, LachesisBrew, ArrowAmmoBox, Coal, CoinBag, BronzeGift, TerraniteOre, LeadOre, TinOre, SilverOre, GoldOre, TitaniumOre, EverburnPowder); + else if (.@r < 1000) + .@loot=any(MoubooSteak, ClothoLiquor, Coal, SmallMushroom, HastePotion, StrengthPotion, Dagger, StrangeCoin, IronOre, CopperOre); + else if (.@r < 4000) + .@loot=any(Croconut, Potatoz, MoubooSteak, ClothoLiquor, Coal, SmallMushroom, HastePotion, StrengthPotion, StrangeCoin); + else + .@loot=any(FatesPotion, ChocolateBar, Plushroom, Chagashroom, RawLog, LeatherPatch); + + + inventoryplace .@loot, 1; + mesc l("You find @@ inside!", getitemlink(.@loot)); + getitem .@loot, 1; + } else { + mesc l("You find @@ inside!", l("nothing")); + } + + .empty=true; + specialeffect(.dir == 0 ? 24 : 25, AREA, getnpcid()); // closed ? opening : closing + .dir = .dir == 0 ? 2 : 6; // closed ? opening : closing + .busy = true; // lock until available again + initnpctimer; + } + end; + +OnTimer160: + .dir = .dir == 6 ? 0 : 4; // closing ? closed : open + end; + +OnTimer500: + .busy = false; // unlock + if (.dir == 0 || .dir == 4) + stopnpctimer; // stop here if the chest is closed + end; + +OnInit: + .busy = false; + .distance = 2; + .empty = false; + end; + +OnClock0156: +OnClock1356: + // Try to warp randomly to a walkable spot, up to 30 attempts + .@e=0; .@x=0; .@y=0; + while (!checkcell(.mp$, .@x, .@y, cell_chkpass)) + { + if (.@e == 30) { + .@x=.x; + .@y=.y; + break; + } + // Remember the +20 -20 margin adjustment + .@x = rand(20, 185); + .@y = rand(20, 180); + ++.@e; + } + .busy=false; + .empty=false; + movenpc .name$, .@x, .@y, 0; + end; +} |