029-2,33,88,24,7 monster HouseMaggot 1050,2,100000,30000,Barrel#0::OnMaggotDeath - script #BarrelConfig NPC32767,{ end; OnInit: setarray $@BarrelBits, (1 << 20), (1 << 21), (1 << 22), (1 << 23), (1 << 24), (1 << 25), (1 << 26), (1 << 27); setarray $@BarrelRewards, 533, 507, 505, 518, 537, 526; $@BarrelSpawnCnt = 1; $@BarrelSpawnId = 1050; $@BarrelSpawnName$ = "House Maggot"; $@BarrelMax = getarraysize($@BarrelBits); end; } function script CountBarrels { @barrel_count = 0; @count_tmp = 0; goto L_Loop; L_Loop: if (STARTAREA & $@BarrelBits[@barrel_count]) goto L_AddOne; goto L_LoopAgain; L_AddOne: @barrel_count = (@barrel_count + 1); goto L_LoopAgain; L_LoopAgain: @count_tmp = (@count_tmp + 1); if (@count_tmp == getarraysize($@BarrelBits)) goto L_BarrelTally; goto L_Loop; L_BarrelTally: return; } function script CheckBarrel { @npc_distance = 2; callfunc "PCtoNPCRange"; if(@npc_check) goto L_Return; if (!(QL_ZEGAS == 2)) goto L_NoI; if (STARTAREA & $@BarrelBits[@barrel]) goto L_Empty; STARTAREA = STARTAREA | $@BarrelBits[@barrel]; callfunc "CountBarrels"; if (@barrel_count == $@BarrelMax) goto L_QuestReward; @player_random = rand(@barrel_count * 10); @barrel_random = rand(@barrel_count * $@BarrelMax); if (@barrel_random > @player_random) goto L_Spawn; goto L_Reward; L_NoI: message strcharinfo(0), "Nothing interesting here."; goto L_Return; L_Empty: message strcharinfo(0), "You've already searched this barrel."; goto L_Return; L_QuestReward: message strcharinfo(0), "You found the bug bomb."; misceffect 33; QL_ZEGAS = 3; killmonster getmapname() + "", "Barrel#0::OnMaggotDeath"; goto L_Return; L_Spawn: message strcharinfo(0), "Uck, More Maggots!"; setarray @npc_loc, getnpcx(), getnpcy(); areamonster getmapname(), @npc_loc[0], @npc_loc[1], (@npc_loc[0] + 1), (@npc_loc[1] + 1), $@BarrelSpawnName$, $@BarrelSpawnId, $@BarrelSpawnCnt, "Barrel#0::OnMaggotDeath"; cleararray @npc_loc, 0, 2; goto L_Return; L_Reward: getitem $@BarrelRewards[rand(getarraysize($@BarrelRewards))], 1; goto L_Return; L_Return: return; }