diff options
Diffstat (limited to 'npc/027-3/monsters.txt')
-rwxr-xr-x | npc/027-3/monsters.txt | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/npc/027-3/monsters.txt b/npc/027-3/monsters.txt new file mode 100755 index 00000000..52a2a5eb --- /dev/null +++ b/npc/027-3/monsters.txt @@ -0,0 +1,66 @@ + +027-3,21,76,51,100 monster Zombie 1036,2,300000,120000,specialMob027-3::On1036 +027-3,21,30,51,63 monster Zombie 1036,2,200000,10000,specialMob027-3::On1036 +027-3,67,29,129,64 monster Zombie 1036,3,140000,30000,specialMob027-3::On1036 +027-3,101,65,128,93 monster Fallen 1045,3,120000,30000,specialMob027-3::On1045 + +027-3,0,0,0 script specialMob027-3 NPC32767,{ + end; + +On1036: + @mobId = 1036; + callsub S_MOBCOUNT_ZOMBIES; + callfunc "MobPoints"; + end; + +On1045: + @mobId = 1045; + callsub S_MOBCOUNT_FALLENS; + callfunc "MobPoints"; + end; + +S_MOBCOUNT_ZOMBIES: + + @Graveyard_Inn_MASK = NIBBLE_2_MASK; + @Graveyard_Inn_SHIFT = NIBBLE_2_SHIFT; + + @state = ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK) >> @Graveyard_Inn_SHIFT); + + if (@state != 1) + goto L_Return; + @ring = @ring + 1; + if (@ring < 10) + goto L_Return; + if (rand(8) != 0) + goto L_Return; + message strcharinfo(0), "You found a ring hidden in the zombie's rotten rags. Maybe this is what Aldred was looking for..."; + @state = 2; + callsub S_Update_Mask; + return; + +S_MOBCOUNT_FALLENS: + + @Graveyard_Inn_MASK = NIBBLE_2_MASK; + @Graveyard_Inn_SHIFT = NIBBLE_2_SHIFT; + + @state = ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK) >> @Graveyard_Inn_SHIFT); + + if (@state != 1) + goto L_Return; + @ring = @ring + 1; + if (@ring < 10) + goto L_Return; + if (rand(8) != 0) + goto L_Return; + message strcharinfo(0), "You found a ring inside the fallen's broken helmet. Maybe this is what Aldred was looking for..."; + @state = 2; + callsub S_Update_Mask; + return; + +L_Return: + return; + +S_Update_Mask: + QUEST_Graveyard_Inn = (QUEST_Graveyard_Inn & ~(@Graveyard_Inn_MASK)) | (@state << @Graveyard_Inn_SHIFT); + return; +} |