SIXTH AFTER ROLLBACK: mob rune and contract drop annouces local

This commit is contained in:
2024-06-03 19:25:54 -05:00
parent 1798a8f170
commit 8ccdbf8cc9
+13 -4
View File
@@ -14,6 +14,7 @@ import engine.net.DispatchMessage;
import engine.net.client.msg.ErrorPopupMsg; import engine.net.client.msg.ErrorPopupMsg;
import engine.net.client.msg.chat.ChatSystemMsg; import engine.net.client.msg.chat.ChatSystemMsg;
import engine.objects.*; import engine.objects.*;
import engine.server.MBServerStatics;
import org.pmw.tinylog.Logger; import org.pmw.tinylog.Logger;
import java.util.ArrayList; import java.util.ArrayList;
@@ -99,8 +100,8 @@ public enum LootManager {
} }
private static void RunBootySet(ArrayList<BootySetEntry> entries, Mob mob) { private static void RunBootySet(ArrayList<BootySetEntry> entries, Mob mob) {
mob.runeCounter++; mob.runeCounter++;
mob.contractCounter++; mob.contractCounter++;
float dropRate = NORMAL_DROP_RATE; float dropRate = NORMAL_DROP_RATE;
//roll the geenric world drop table //roll the geenric world drop table
if(mob.parentZone.getSafeZone() == 0) { if(mob.parentZone.getSafeZone() == 0) {
@@ -123,12 +124,12 @@ mob.contractCounter++;
case "LOOT": case "LOOT":
if (ThreadLocalRandom.current().nextInt(1, 100 + 1) < (bse.dropChance * dropRate)) if (ThreadLocalRandom.current().nextInt(1, 100 + 1) < (bse.dropChance * dropRate))
GenerateLootDrop(mob, bse.genTable); //generate normal loot drop GenerateLootDrop(mob, bse.genTable); //generate normal loot drop
if(mob.contractCounter >= 250){ if(mob.contractCounter * dropRate >= 250){
MobLoot extraLoot = rollForContract(bse.genTable, mob); MobLoot extraLoot = rollForContract(bse.genTable, mob);
if (extraLoot != null) if (extraLoot != null)
mob.getCharItemManager().addItemToInventory(extraLoot); mob.getCharItemManager().addItemToInventory(extraLoot);
} }
if(mob.runeCounter >= 250){ if(mob.runeCounter * dropRate >= 250){
MobLoot extraLoot = rollForRune(bse.genTable, mob); MobLoot extraLoot = rollForRune(bse.genTable, mob);
if (extraLoot != null) if (extraLoot != null)
mob.getCharItemManager().addItemToInventory(extraLoot); mob.getCharItemManager().addItemToInventory(extraLoot);
@@ -575,6 +576,10 @@ mob.contractCounter++;
MobLoot outItem = new MobLoot(mob, ItemBase.getItemBase(itemUUID), false); MobLoot outItem = new MobLoot(mob, ItemBase.getItemBase(itemUUID), false);
if(outItem != null) { if(outItem != null) {
mob.contractCounter = 0; mob.contractCounter = 0;
ChatSystemMsg chatMsg = new ChatSystemMsg(null, mob.getName() + " looks like he found something special");
chatMsg.setMessageType(10);
chatMsg.setChannel(Enum.ChatChannelType.SYSTEM.getChannelID());
DispatchMessage.dispatchMsgToInterestArea(mob,chatMsg, Enum.DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE,false,false);
return outItem; return outItem;
} }
return null; return null;
@@ -604,6 +609,10 @@ mob.contractCounter++;
MobLoot outItem = new MobLoot(mob, ItemBase.getItemBase(itemUUID), false); MobLoot outItem = new MobLoot(mob, ItemBase.getItemBase(itemUUID), false);
if(outItem != null) { if(outItem != null) {
mob.runeCounter = 0; mob.runeCounter = 0;
ChatSystemMsg chatMsg = new ChatSystemMsg(null, mob.getName() + " looks like he found something special");
chatMsg.setMessageType(10);
chatMsg.setChannel(Enum.ChatChannelType.SYSTEM.getChannelID());
DispatchMessage.dispatchMsgToInterestArea(mob,chatMsg, Enum.DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE,false,false);
return outItem; return outItem;
} }
return null; return null;