|
|
@ -100,10 +100,10 @@ public class ActivateNPCMsgHandler extends AbstractClientMsgHandler { |
|
|
|
|
|
|
|
|
|
|
|
if (contractItem == null) |
|
|
|
if (contractItem == null) |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
if(msg.getContractItem() == 850){//runemaster
|
|
|
|
if (msg.getContractItem() == 850) {//runemaster
|
|
|
|
for(AbstractCharacter abs : building.getHirelings().keySet()) { |
|
|
|
for (AbstractCharacter abs : building.getHirelings().keySet()) { |
|
|
|
NPC npc = (NPC)abs; |
|
|
|
NPC npc = (NPC) abs; |
|
|
|
if(npc.contract.getContractID() == 850) |
|
|
|
if (npc.contract.getContractID() == 850) |
|
|
|
return false; //can only have 1 runemaster
|
|
|
|
return false; //can only have 1 runemaster
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -127,8 +127,29 @@ public class ActivateNPCMsgHandler extends AbstractClientMsgHandler { |
|
|
|
|
|
|
|
|
|
|
|
// Check if contract can be slotted in this building
|
|
|
|
// Check if contract can be slotted in this building
|
|
|
|
|
|
|
|
|
|
|
|
if (contract.canSlotinBuilding(building) == false) |
|
|
|
if (contract.canSlotinBuilding(building) == false) { |
|
|
|
|
|
|
|
boolean override = false; |
|
|
|
|
|
|
|
if (building.getBlueprint().getBuildingGroup().equals(Enum.BuildingGroup.TOL)) { |
|
|
|
|
|
|
|
if (contract.getContractID() == 899)//alchemist
|
|
|
|
|
|
|
|
override = true; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (contract.getContractID() == 866)//banker
|
|
|
|
|
|
|
|
override = true; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (contract.getContractID() == 865)//siege engineer
|
|
|
|
|
|
|
|
override = true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (building.getBlueprint().getBuildingGroup().equals(Enum.BuildingGroup.SIEGETENT)) { |
|
|
|
|
|
|
|
if (contract.getContractID() == 865)//siege engineer
|
|
|
|
|
|
|
|
override = true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if(building.getBlueprint().getBuildingGroup().equals(Enum.BuildingGroup.SIEGETENT)){ |
|
|
|
|
|
|
|
if(contract.getContractID() == 865)//siege engineer
|
|
|
|
|
|
|
|
override = true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if(override == false) |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!BuildingManager.addHireling(building, player, zone, contract, contractItem)) |
|
|
|
if (!BuildingManager.addHireling(building, player, zone, contract, contractItem)) |
|
|
|
return false; |
|
|
|
return false; |
|
|
|