@ -100,10 +100,10 @@ public class ActivateNPCMsgHandler extends AbstractClientMsgHandler {
@@ -100,10 +100,10 @@ public class ActivateNPCMsgHandler extends AbstractClientMsgHandler {
if ( contractItem = = null )
return false ;
if ( msg . getContractItem ( ) = = 850 ) { //runemaster
for ( AbstractCharacter abs : building . getHirelings ( ) . keySet ( ) ) {
NPC npc = ( NPC ) abs ;
if ( npc . contract . getContractID ( ) = = 850 )
if ( msg . getContractItem ( ) = = 850 ) { //runemaster
for ( AbstractCharacter abs : building . getHirelings ( ) . keySet ( ) ) {
NPC npc = ( NPC ) abs ;
if ( npc . contract . getContractID ( ) = = 850 )
return false ; //can only have 1 runemaster
}
}
@ -127,8 +127,29 @@ public class ActivateNPCMsgHandler extends AbstractClientMsgHandler {
@@ -127,8 +127,29 @@ public class ActivateNPCMsgHandler extends AbstractClientMsgHandler {
// Check if contract can be slotted in this building
if ( contract . canSlotinBuilding ( building ) = = false )
return 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 ;
}
if ( ! BuildingManager . addHireling ( building , player , zone , contract , contractItem ) )
return false ;