From 01fb25db36ab54e89aa3c909dd94a2734321d703 Mon Sep 17 00:00:00 2001 From: Mesagoppinmypants Date: Sun, 20 Apr 2014 10:49:48 -0400 Subject: [PATCH 01/10] Updated Dark Jedi Council Robe --- .../wearables/robe/robe_jedi_dark_s05.py | 45 ++++++++----------- 1 file changed, 18 insertions(+), 27 deletions(-) diff --git a/scripts/object/tangible/wearables/robe/robe_jedi_dark_s05.py b/scripts/object/tangible/wearables/robe/robe_jedi_dark_s05.py index f4e46790..80081dce 100644 --- a/scripts/object/tangible/wearables/robe/robe_jedi_dark_s05.py +++ b/scripts/object/tangible/wearables/robe/robe_jedi_dark_s05.py @@ -1,31 +1,22 @@ import sys def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_jedi_robe_dark_04_05') + object.setDetailFilename('static_item_d') + object.setDetailName('item_jedi_robe_dark_04_05') + + object.setStringAttribute('protection_level', 'Radiant') + object.setStringAttribute('class_required', 'Jedi') + object.setIntAttribute('required_combat_level', 20) + + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 250) + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 250) + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 250) + + object.setStringAttribute('proc_name', '@ui_buff:proc_old_dark_jedi_gift') + object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1') + + object.setAttachment('type', 'jedi_robe') + object.setAttachment('setBonus', 'set_bonus_jedi_robe') return - -def equip(core, actor, target): - core.skillModService.addSkillMod(actor, 'constitution_modified', 250) - core.skillModService.addSkillMod(actor, 'precision_modified', 250) - core.skillModService.addSkillMod(actor, 'luck_modified', 250) - - Buff = actor.getBuffByName('proc_old_dark_jedi_gift') - if actor.getBuffList().contains(Buff): - core.buffService.removeBuffFromCreature(actor, Buff) - return - - if actor: - core.buffService.addBuffToCreature(actor, 'proc_old_dark_jedi_gift') - return - return - -def unequip(core, actor, target): - core.skillModService.deductSkillMod(actor, 'constitution_modified', 250) - core.skillModService.deductSkillMod(actor, 'precision_modified', 250) - core.skillModService.deductSkillMod(actor, 'luck_modified', 250) - - Buff = actor.getBuffByName('proc_old_dark_jedi_gift') - if actor.getBuffList().contains(Buff): - core.buffService.removeBuffFromCreature(actor, Buff) - return - return - From f280459c55c228ff274962c55dfbff5b6ba54c32 Mon Sep 17 00:00:00 2001 From: Mesagoppinmypants Date: Sun, 20 Apr 2014 10:58:02 -0400 Subject: [PATCH 02/10] Updated Light Jedi Council Robe --- .../wearables/robe/robe_jedi_light_s05.py | 50 ++++++++----------- 1 file changed, 21 insertions(+), 29 deletions(-) diff --git a/scripts/object/tangible/wearables/robe/robe_jedi_light_s05.py b/scripts/object/tangible/wearables/robe/robe_jedi_light_s05.py index 9c60f170..0b850eec 100644 --- a/scripts/object/tangible/wearables/robe/robe_jedi_light_s05.py +++ b/scripts/object/tangible/wearables/robe/robe_jedi_light_s05.py @@ -1,34 +1,26 @@ import sys def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_jedi_robe_light_04_05') + object.setDetailFilename('static_item_d') + object.setDetailName('item_jedi_robe_light_04_05') + + object.setStringAttribute('protection_level', 'Radiant') + object.setStringAttribute('class_required', 'Jedi') + object.setIntAttribute('required_combat_level', 20) + + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 250) + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 250) + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 250) + + + object.setStringAttribute('proc_name', '@ui_buff:proc_old_light_jedi_gift') + object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1') + + object.setAttachment('type', 'jedi_robe') + object.setAttachment('setBonus', 'set_bonus_jedi_robe') + return - -def equip(core, actor, target): - core.skillModService.addSkillMod(actor, 'agility_modified', 250) - core.skillModService.addSkillMod(actor, 'constitution_modified', 250) - core.skillModService.addSkillMod(actor, 'strength_modified', 250) - - Buff = actor.getBuffByName('proc_old_light_jedi_gift') - if actor.getBuffList().contains(Buff): - core.buffService.removeBuffFromCreature(actor, Buff) - return - - if actor: - core.buffService.addBuffToCreature(actor, 'proc_old_light_jedi_gift') - return - return - -def unequip(core, actor, target): - core.skillModService.deductSkillMod(actor, 'agility_modified', 250) - core.skillModService.deductSkillMod(actor, 'constitution_modified', 250) - core.skillModService.deductSkillMod(actor, 'strength_modified', 250) - - Buff = actor.getBuffByName('proc_old_light_jedi_gift') - if actor.getBuffList().contains(Buff): - core.buffService.removeBuffFromCreature(actor, Buff) - return - return - import sys -def setup(core, object): - return \ No newline at end of file + From 3abe70681c6a847ac51f03a254bd9a3b36f645f9 Mon Sep 17 00:00:00 2001 From: LordAlfonso Date: Thu, 24 Apr 2014 00:13:02 +0200 Subject: [PATCH 03/10] Added - Rancor, NS Slave --- scripts/mobiles/dathomir/nightsister_slave.py | 23 +++++++++++++++++++ scripts/mobiles/dathomir/rancor.py | 22 ++++++++++++++++++ .../dressed_dathomir_nightsister_slave.py | 6 +++++ scripts/object/mobile/rancor.py | 6 +++++ 4 files changed, 57 insertions(+) create mode 100644 scripts/mobiles/dathomir/nightsister_slave.py create mode 100644 scripts/mobiles/dathomir/rancor.py diff --git a/scripts/mobiles/dathomir/nightsister_slave.py b/scripts/mobiles/dathomir/nightsister_slave.py new file mode 100644 index 00000000..7ce31682 --- /dev/null +++ b/scripts/mobiles/dathomir/nightsister_slave.py @@ -0,0 +1,23 @@ +import sys +from services.spawn import MobileTemplate +from java.util import Vector + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('nightsister_slave') + mobileTemplate.setLevel(86) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(5) + mobileTemplate.setAttackSpeed(1.0) + + templates = Vector() + templates.add('object/mobile/shared_dressed_dathomir_nightsister_slave.iff') + mobileTemplate.setTemplates(templates) + + + attacks = Vector() + mobileTemplate.setDefaultAttack('meleehit') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('nightsister_slave', mobileTemplate) \ No newline at end of file diff --git a/scripts/mobiles/dathomir/rancor.py b/scripts/mobiles/dathomir/rancor.py new file mode 100644 index 00000000..975e6869 --- /dev/null +++ b/scripts/mobiles/dathomir/rancor.py @@ -0,0 +1,22 @@ +import sys +from services.spawn import MobileTemplate +from java.util import Vector + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('rancor') + mobileTemplate.setLevel(50) + mobileTemplate.setDifficulty(1) + mobileTemplate.setAttackRange(5) + + templates = Vector() + templates.add('object/mobile/shared_rancor.iff') + mobileTemplate.setTemplates(templates) + + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('rancor', mobileTemplate) \ No newline at end of file diff --git a/scripts/object/mobile/dressed_dathomir_nightsister_slave.py b/scripts/object/mobile/dressed_dathomir_nightsister_slave.py index ccad8904..32ec3471 100644 --- a/scripts/object/mobile/dressed_dathomir_nightsister_slave.py +++ b/scripts/object/mobile/dressed_dathomir_nightsister_slave.py @@ -1,4 +1,10 @@ import sys def setup(core, object): + + lootPoolNames_1 = ['rareloot'] + lootPoolChances_1 = [100] + lootGroupChance_1 = 5 + object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1) + return \ No newline at end of file diff --git a/scripts/object/mobile/rancor.py b/scripts/object/mobile/rancor.py index ccad8904..8d5d1819 100644 --- a/scripts/object/mobile/rancor.py +++ b/scripts/object/mobile/rancor.py @@ -1,4 +1,10 @@ import sys def setup(core, object): + + lootPoolNames_1 = ['Junk'] + lootPoolChances_1 = [100] + lootGroupChance_1 = 90 + object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1) + return \ No newline at end of file From 91c487be08171c123b443668dc8f02cf2267254b Mon Sep 17 00:00:00 2001 From: Bronco69 Date: Thu, 24 Apr 2014 16:31:52 +0200 Subject: [PATCH 04/10] Fixed bonus sets equip message Added system message for all bonus sets when activating bonus --- .../equipment/bonus_sets/set_bonus_bh_dps.py | 3 ++ .../bonus_sets/set_bonus_bh_utility_a.py | 3 ++ .../equipment/bonus_sets/set_bonus_co_dps.py | 3 ++ .../bonus_sets/set_bonus_co_utility_a.py | 3 ++ scripts/equipment/bonus_sets/set_bonus_ent.py | 31 +++++++++++++++++++ .../bonus_sets/set_bonus_jedi_dps.py | 3 ++ .../bonus_sets/set_bonus_jedi_utility_a.py | 3 ++ .../bonus_sets/set_bonus_medic_dps.py | 3 ++ .../bonus_sets/set_bonus_medic_utility_a.py | 3 ++ .../bonus_sets/set_bonus_medic_utility_b.py | 4 ++- .../bonus_sets/set_bonus_officer_dps.py | 3 ++ .../bonus_sets/set_bonus_officer_utility_a.py | 3 ++ .../bonus_sets/set_bonus_smuggler_dps.py | 3 ++ .../set_bonus_smuggler_utility_a.py | 3 ++ .../equipment/bonus_sets/set_bonus_spy_dps.py | 3 ++ .../bonus_sets/set_bonus_spy_utility_a.py | 3 ++ .../bonus_sets/set_bonus_spy_utility_b.py | 3 ++ 17 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 scripts/equipment/bonus_sets/set_bonus_ent.py diff --git a/scripts/equipment/bonus_sets/set_bonus_bh_dps.py b/scripts/equipment/bonus_sets/set_bonus_bh_dps.py index 61b48b47..4a18c18e 100644 --- a/scripts/equipment/bonus_sets/set_bonus_bh_dps.py +++ b/scripts/equipment/bonus_sets/set_bonus_bh_dps.py @@ -18,10 +18,13 @@ def handleChange(core, creature, set): if wornItems == 3: core.buffService.addBuffToCreature(creature, "set_bonus_bh_dps_1", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_bh_dps_1_sys', 0) elif wornItems == 4: core.buffService.addBuffToCreature(creature, "set_bonus_bh_dps_2", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_bh_dps_2_sys', 0) elif wornItems == 5: core.buffService.addBuffToCreature(creature, "set_bonus_bh_dps_3", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_bh_dps_3_sys', 0) else: core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_bh_dps_1") core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_bh_dps_2") diff --git a/scripts/equipment/bonus_sets/set_bonus_bh_utility_a.py b/scripts/equipment/bonus_sets/set_bonus_bh_utility_a.py index 609c2d28..6dd6bfb8 100644 --- a/scripts/equipment/bonus_sets/set_bonus_bh_utility_a.py +++ b/scripts/equipment/bonus_sets/set_bonus_bh_utility_a.py @@ -18,10 +18,13 @@ def handleChange(core, creature, set): if wornItems == 3: core.buffService.addBuffToCreature(creature, "set_bonus_bh_utility_a_1", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_bh_utility_a_1_sys', 0) elif wornItems == 4: core.buffService.addBuffToCreature(creature, "set_bonus_bh_utility_a_2", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_bh_utility_a_2_sys', 0) elif wornItems == 5: core.buffService.addBuffToCreature(creature, "set_bonus_bh_utility_a_3", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_bh_utility_a_3_sys', 0) else: core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_bh_utility_a_1") core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_bh_utility_a_2") diff --git a/scripts/equipment/bonus_sets/set_bonus_co_dps.py b/scripts/equipment/bonus_sets/set_bonus_co_dps.py index 50588030..fa3533b2 100644 --- a/scripts/equipment/bonus_sets/set_bonus_co_dps.py +++ b/scripts/equipment/bonus_sets/set_bonus_co_dps.py @@ -18,10 +18,13 @@ def handleChange(core, creature, set): if wornItems == 3: core.buffService.addBuffToCreature(creature, "set_bonus_co_dps_1", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_co_dps_1_sys', 0) elif wornItems == 4: core.buffService.addBuffToCreature(creature, "set_bonus_co_dps_2", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_co_dps_2_sys', 0) elif wornItems == 5: core.buffService.addBuffToCreature(creature, "set_bonus_co_dps_3", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_co_dps_3_sys', 0) else: core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_co_dps_1") core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_co_dps_2") diff --git a/scripts/equipment/bonus_sets/set_bonus_co_utility_a.py b/scripts/equipment/bonus_sets/set_bonus_co_utility_a.py index 28d058d1..f70cd5c3 100644 --- a/scripts/equipment/bonus_sets/set_bonus_co_utility_a.py +++ b/scripts/equipment/bonus_sets/set_bonus_co_utility_a.py @@ -18,10 +18,13 @@ def handleChange(core, creature, set): if wornItems == 3: core.buffService.addBuffToCreature(creature, "set_bonus_co_utility_a_1", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_co_utility_a_1_sys', 0) elif wornItems == 4: core.buffService.addBuffToCreature(creature, "set_bonus_co_utility_a_2", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_co_utility_a_2_sys', 0) elif wornItems == 5: core.buffService.addBuffToCreature(creature, "set_bonus_co_utility_a_3", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_co_utility_a_3_sys', 0) else: core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_co_utility_a_1") core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_co_utility_a_2") diff --git a/scripts/equipment/bonus_sets/set_bonus_ent.py b/scripts/equipment/bonus_sets/set_bonus_ent.py new file mode 100644 index 00000000..b0f90f98 --- /dev/null +++ b/scripts/equipment/bonus_sets/set_bonus_ent.py @@ -0,0 +1,31 @@ +import sys +from services.equipment import BonusSetTemplate +from java.util import Vector + +def addBonusSet(core): + bonusSet = BonusSetTemplate("set_bonus_ent") + + bonusSet.addRequiredItem("item_band_set_ent_01_01") + bonusSet.addRequiredItem("item_ring_set_ent_01_01") + bonusSet.addRequiredItem("item_necklace_set_ent_01_01") + bonusSet.addRequiredItem("item_bracelet_r_set_ent_01_01") + bonusSet.addRequiredItem("item_bracelet_l_set_ent_01_01") + + core.equipmentService.addBonusSetTemplate(bonusSet) + +def handleChange(core, creature, set): + wornItems = set.getWornTemplateCount(creature) + + if wornItems == 3: + core.buffService.addBuffToCreature(creature, "set_bonus_ent_1", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_ent_1_sys', 0) + elif wornItems == 4: + core.buffService.addBuffToCreature(creature, "set_bonus_ent_2", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_ent_2_sys', 0) + elif wornItems == 5: + core.buffService.addBuffToCreature(creature, "set_bonus_ent_3", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_ent_3_sys', 0) + else: + core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_ent_1") + core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_ent_2") + core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_ent_3") \ No newline at end of file diff --git a/scripts/equipment/bonus_sets/set_bonus_jedi_dps.py b/scripts/equipment/bonus_sets/set_bonus_jedi_dps.py index 3a08c9e9..6b127317 100644 --- a/scripts/equipment/bonus_sets/set_bonus_jedi_dps.py +++ b/scripts/equipment/bonus_sets/set_bonus_jedi_dps.py @@ -18,10 +18,13 @@ def handleChange(core, creature, set): if wornItems == 3: core.buffService.addBuffToCreature(creature, "set_bonus_jedi_dps_1", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_jedi_dps_1_sys', 0) elif wornItems == 4: core.buffService.addBuffToCreature(creature, "set_bonus_jedi_dps_2", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_jedi_dps_2_sys', 0) elif wornItems == 5: core.buffService.addBuffToCreature(creature, "set_bonus_jedi_dps_3", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_jedi_dps_3_sys', 0) else: core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_jedi_dps_1") core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_jedi_dps_2") diff --git a/scripts/equipment/bonus_sets/set_bonus_jedi_utility_a.py b/scripts/equipment/bonus_sets/set_bonus_jedi_utility_a.py index 52ebf5ce..ec88e7bb 100644 --- a/scripts/equipment/bonus_sets/set_bonus_jedi_utility_a.py +++ b/scripts/equipment/bonus_sets/set_bonus_jedi_utility_a.py @@ -18,10 +18,13 @@ def handleChange(core, creature, set): if wornItems == 3: core.buffService.addBuffToCreature(creature, "set_bonus_jedi_utility_a_1", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_jedi_utility_a_1_sys', 0) elif wornItems == 4: core.buffService.addBuffToCreature(creature, "set_bonus_jedi_utility_a_2", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_jedi_utility_a_2_sys', 0) elif wornItems == 5: core.buffService.addBuffToCreature(creature, "set_bonus_jedi_utility_a_3", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_jedi_utility_a_3_sys', 0) else: core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_jedi_utility_a_1") core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_jedi_utility_a_2") diff --git a/scripts/equipment/bonus_sets/set_bonus_medic_dps.py b/scripts/equipment/bonus_sets/set_bonus_medic_dps.py index f1966755..8d6c1346 100644 --- a/scripts/equipment/bonus_sets/set_bonus_medic_dps.py +++ b/scripts/equipment/bonus_sets/set_bonus_medic_dps.py @@ -18,10 +18,13 @@ def handleChange(core, creature, set): if wornItems == 3: core.buffService.addBuffToCreature(creature, "set_bonus_medic_dps_1", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_medic_dps_1_sys', 0) elif wornItems == 4: core.buffService.addBuffToCreature(creature, "set_bonus_medic_dps_2", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_medic_dps_2_sys', 0) elif wornItems == 5: core.buffService.addBuffToCreature(creature, "set_bonus_medic_dps_3", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_medic_dps_3_sys', 0) else: core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_medic_dps_1") core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_medic_dps_2") diff --git a/scripts/equipment/bonus_sets/set_bonus_medic_utility_a.py b/scripts/equipment/bonus_sets/set_bonus_medic_utility_a.py index c21b2adb..6853e429 100644 --- a/scripts/equipment/bonus_sets/set_bonus_medic_utility_a.py +++ b/scripts/equipment/bonus_sets/set_bonus_medic_utility_a.py @@ -18,10 +18,13 @@ def handleChange(core, creature, set): if wornItems == 3: core.buffService.addBuffToCreature(creature, "set_bonus_medic_utility_a_1", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_medic_utility_a_1_sys', 0) elif wornItems == 4: core.buffService.addBuffToCreature(creature, "set_bonus_medic_utility_a_2", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_medic_utility_a_2_sys', 0) elif wornItems == 5: core.buffService.addBuffToCreature(creature, "set_bonus_medic_utility_a_3", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_medic_utility_a_3_sys', 0) else: core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_medic_utility_a_1") core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_medic_utility_a_2") diff --git a/scripts/equipment/bonus_sets/set_bonus_medic_utility_b.py b/scripts/equipment/bonus_sets/set_bonus_medic_utility_b.py index ced4b40f..a46fe246 100644 --- a/scripts/equipment/bonus_sets/set_bonus_medic_utility_b.py +++ b/scripts/equipment/bonus_sets/set_bonus_medic_utility_b.py @@ -1,4 +1,3 @@ - import sys from services.equipment import BonusSetTemplate from java.util import Vector @@ -19,10 +18,13 @@ def handleChange(core, creature, set): if wornItems == 3: core.buffService.addBuffToCreature(creature, "set_bonus_medic_utility_b_1", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_medic_utility_b_1_sys', 0) elif wornItems == 4: core.buffService.addBuffToCreature(creature, "set_bonus_medic_utility_b_2", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_medic_utility_b_2_sys', 0) elif wornItems == 5: core.buffService.addBuffToCreature(creature, "set_bonus_medic_utility_b_3", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_medic_utility_b_3_sys', 0) else: core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_medic_utility_b_1") core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_medic_utility_b_2") diff --git a/scripts/equipment/bonus_sets/set_bonus_officer_dps.py b/scripts/equipment/bonus_sets/set_bonus_officer_dps.py index 26d8f62a..d990eae6 100644 --- a/scripts/equipment/bonus_sets/set_bonus_officer_dps.py +++ b/scripts/equipment/bonus_sets/set_bonus_officer_dps.py @@ -18,10 +18,13 @@ def handleChange(core, creature, set): if wornItems == 3: core.buffService.addBuffToCreature(creature, "set_bonus_officer_dps_1", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_officer_dps_1_sys', 0) elif wornItems == 4: core.buffService.addBuffToCreature(creature, "set_bonus_officer_dps_2", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_officer_dps_2_sys', 0) elif wornItems == 5: core.buffService.addBuffToCreature(creature, "set_bonus_officer_dps_3", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_officer_dps_3_sys', 0) else: core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_officer_dps_1") core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_officer_dps_2") diff --git a/scripts/equipment/bonus_sets/set_bonus_officer_utility_a.py b/scripts/equipment/bonus_sets/set_bonus_officer_utility_a.py index 7e9a33d7..16558a5c 100644 --- a/scripts/equipment/bonus_sets/set_bonus_officer_utility_a.py +++ b/scripts/equipment/bonus_sets/set_bonus_officer_utility_a.py @@ -18,10 +18,13 @@ def handleChange(core, creature, set): if wornItems == 3: core.buffService.addBuffToCreature(creature, "set_bonus_officer_utility_a_1", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_officer_utility_a_1_sys', 0) elif wornItems == 4: core.buffService.addBuffToCreature(creature, "set_bonus_officer_utility_a_2", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_officer_utility_a_2_sys', 0) elif wornItems == 5: core.buffService.addBuffToCreature(creature, "set_bonus_officer_utility_a_3", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_officer_utility_a_3_sys', 0) else: core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_officer_utility_a_1") core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_officer_utility_a_2") diff --git a/scripts/equipment/bonus_sets/set_bonus_smuggler_dps.py b/scripts/equipment/bonus_sets/set_bonus_smuggler_dps.py index 99ac8ecf..d29d0981 100644 --- a/scripts/equipment/bonus_sets/set_bonus_smuggler_dps.py +++ b/scripts/equipment/bonus_sets/set_bonus_smuggler_dps.py @@ -18,10 +18,13 @@ def handleChange(core, creature, set): if wornItems == 3: core.buffService.addBuffToCreature(creature, "set_bonus_smuggler_dps_1", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_smuggler_dps_1_sys', 0) elif wornItems == 4: core.buffService.addBuffToCreature(creature, "set_bonus_smuggler_dps_2", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_smuggler_dps_2_sys', 0) elif wornItems == 5: core.buffService.addBuffToCreature(creature, "set_bonus_smuggler_dps_3", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_smuggler_dps_3_sys', 0) else: core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_smuggler_dps_1") core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_smuggler_dps_2") diff --git a/scripts/equipment/bonus_sets/set_bonus_smuggler_utility_a.py b/scripts/equipment/bonus_sets/set_bonus_smuggler_utility_a.py index 9b3d928f..94bec671 100644 --- a/scripts/equipment/bonus_sets/set_bonus_smuggler_utility_a.py +++ b/scripts/equipment/bonus_sets/set_bonus_smuggler_utility_a.py @@ -18,10 +18,13 @@ def handleChange(core, creature, set): if wornItems == 3: core.buffService.addBuffToCreature(creature, "set_bonus_smuggler_utility_a_1", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_smuggler_utility_a_1_sys', 0) elif wornItems == 4: core.buffService.addBuffToCreature(creature, "set_bonus_smuggler_utility_a_2", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_smuggler_utility_a_2_sys', 0) elif wornItems == 5: core.buffService.addBuffToCreature(creature, "set_bonus_smuggler_utility_a_3", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_smuggler_utility_a_3_sys', 0) else: core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_smuggler_utility_a_1") core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_smuggler_utility_a_2") diff --git a/scripts/equipment/bonus_sets/set_bonus_spy_dps.py b/scripts/equipment/bonus_sets/set_bonus_spy_dps.py index 0cd1747e..3da099f0 100644 --- a/scripts/equipment/bonus_sets/set_bonus_spy_dps.py +++ b/scripts/equipment/bonus_sets/set_bonus_spy_dps.py @@ -18,10 +18,13 @@ def handleChange(core, creature, set): if wornItems == 3: core.buffService.addBuffToCreature(creature, "set_bonus_spy_dps_1", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_spy_dps_1_sys', 0) elif wornItems == 4: core.buffService.addBuffToCreature(creature, "set_bonus_spy_dps_2", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_spy_dps_2_sys', 0) elif wornItems == 5: core.buffService.addBuffToCreature(creature, "set_bonus_spy_dps_3", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_spy_dps_3_sys', 0) else: core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_spy_dps_1") core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_spy_dps_2") diff --git a/scripts/equipment/bonus_sets/set_bonus_spy_utility_a.py b/scripts/equipment/bonus_sets/set_bonus_spy_utility_a.py index 7ecc68fa..629ce660 100644 --- a/scripts/equipment/bonus_sets/set_bonus_spy_utility_a.py +++ b/scripts/equipment/bonus_sets/set_bonus_spy_utility_a.py @@ -18,10 +18,13 @@ def handleChange(core, creature, set): if wornItems == 3: core.buffService.addBuffToCreature(creature, "set_bonus_spy_utility_a_1", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_spy_utility_a_1_sys', 0) elif wornItems == 4: core.buffService.addBuffToCreature(creature, "set_bonus_spy_utility_a_2", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_spy_utility_a_2_sys', 0) elif wornItems == 5: core.buffService.addBuffToCreature(creature, "set_bonus_spy_utility_a_3", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_spy_utility_a_3_sys', 0) else: core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_spy_utility_a_1") core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_spy_utility_a_2") diff --git a/scripts/equipment/bonus_sets/set_bonus_spy_utility_b.py b/scripts/equipment/bonus_sets/set_bonus_spy_utility_b.py index 09536bd4..b60b1c8f 100644 --- a/scripts/equipment/bonus_sets/set_bonus_spy_utility_b.py +++ b/scripts/equipment/bonus_sets/set_bonus_spy_utility_b.py @@ -18,10 +18,13 @@ def handleChange(core, creature, set): if wornItems == 3: core.buffService.addBuffToCreature(creature, "set_bonus_spy_utility_b_1", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_spy_utility_b_1_sys', 0) elif wornItems == 4: core.buffService.addBuffToCreature(creature, "set_bonus_spy_utility_b_2", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_spy_utility_b_2_sys', 0) elif wornItems == 5: core.buffService.addBuffToCreature(creature, "set_bonus_spy_utility_b_3", creature) + creature.sendSystemMessage('@set_bonus:set_bonus_spy_utility_b_3_sys', 0) else: core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_spy_utility_b_1") core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_spy_utility_b_2") From f712a234527189fe414c20074c3e4a057f730755 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Thu, 24 Apr 2014 18:02:10 -0400 Subject: [PATCH 05/10] Fixed #497: Talus Imperial Outpost wrong spawn point --- src/services/travel/TravelService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/travel/TravelService.java b/src/services/travel/TravelService.java index a6929851..addfbfe1 100644 --- a/src/services/travel/TravelService.java +++ b/src/services/travel/TravelService.java @@ -320,7 +320,7 @@ public class TravelService implements INetworkDispatch { public void doTransport(SWGObject actor, TravelPoint tp) { Planet planet = core.terrainService.getPlanetByName(tp.getPlanetName()); - Point3D spawnLocation = SpawnPoint.getRandomPosition(tp.getShuttle().getPosition(), 5, 20, actor.getPlanetId()); + Point3D spawnLocation = SpawnPoint.getRandomPosition(tp.getLocation(), 5, 20, actor.getPlanetId()); core.simulationService.transferToPlanet(actor, planet, spawnLocation, new Quaternion(0, 0, 0, 0), null); } From 1c62db1305ffdc449b21e490ff185fca15f891e1 Mon Sep 17 00:00:00 2001 From: Mesagoppinmypants Date: Thu, 24 Apr 2014 20:43:58 -0400 Subject: [PATCH 06/10] Added "a Storm Commando" NPC Added http://swg.wikia.com/wiki/Imperial_Storm_Commando Tested and works. --- scripts/mobiles/canon/storm_commando.py | 33 +++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 scripts/mobiles/canon/storm_commando.py diff --git a/scripts/mobiles/canon/storm_commando.py b/scripts/mobiles/canon/storm_commando.py new file mode 100644 index 00000000..b6bf6523 --- /dev/null +++ b/scripts/mobiles/canon/storm_commando.py @@ -0,0 +1,33 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from java.util import Vector + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('storm_commando') + mobileTemplate.setLevel(71) + mobileTemplate.setDifficulty(0) + mobileTemplate.setAttackRange(24) + mobileTemplate.setAttackSpeed(0.4) + mobileTemplate.setWeaponType(1) + + templates = Vector() + templates.add('object/mobile/shared_dressed_scout_trooper_black_black.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 0, 1.0) + weaponTemplates.add(weapontemplate) + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_dx2.iff', 0, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + + attacks = Vector() + mobileTemplate.setDefaultAttack('rangedShot') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('storm_commando', mobileTemplate) + From 061787e2c64e1b14255a8448d911c9c2c1b7dc56 Mon Sep 17 00:00:00 2001 From: Mesagoppinmypants Date: Thu, 24 Apr 2014 20:55:11 -0400 Subject: [PATCH 07/10] Added Loot to Imperial Storm Commando --- .../object/mobile/dressed_scout_trooper_black_black.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/object/mobile/dressed_scout_trooper_black_black.py b/scripts/object/mobile/dressed_scout_trooper_black_black.py index ccad8904..7334127c 100644 --- a/scripts/object/mobile/dressed_scout_trooper_black_black.py +++ b/scripts/object/mobile/dressed_scout_trooper_black_black.py @@ -1,4 +1,10 @@ import sys def setup(core, object): - return \ No newline at end of file + + lootPoolNames_1 = ['Junk'] + lootPoolChances_1 = [100] + lootGroupChance_1 = 90 + object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1) + + return From 4d119f3069ae9f21fd831b840a377543375d2480 Mon Sep 17 00:00:00 2001 From: Freddiec Date: Thu, 24 Apr 2014 20:45:46 -0500 Subject: [PATCH 08/10] Added: N-K Necrosis and Kashyyyk mobile folder --- scripts/mobiles/kashyyyk/general_grievous.py | 30 ++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 scripts/mobiles/kashyyyk/general_grievous.py diff --git a/scripts/mobiles/kashyyyk/general_grievous.py b/scripts/mobiles/kashyyyk/general_grievous.py new file mode 100644 index 00000000..c6b18095 --- /dev/null +++ b/scripts/mobiles/kashyyyk/general_grievous.py @@ -0,0 +1,30 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from java.util import Vector + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('ep3_general_grievous') + mobileTemplate.setLevel(80) + mobileTemplate.setDifficulty(2) + mobileTemplate.setAttackRange(6) + mobileTemplate.setAttackSpeed(1.0) + mobileTemplate.setWeaponType(9) + + templates = Vector() + templates.add('object/mobile/ep3/shared_general_grievous.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff', 10, 1.0) + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('saberHit') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('general_grievous', mobileTemplate) + \ No newline at end of file From 9c8677556bb7d3d34da1f9d89d4ac7e1a9bcaa42 Mon Sep 17 00:00:00 2001 From: Treeku Date: Fri, 25 Apr 2014 10:51:21 +0100 Subject: [PATCH 09/10] Cleaned some vehicle stuff --- src/services/pet/MountService.java | 148 ++++++++++------------------- 1 file changed, 50 insertions(+), 98 deletions(-) diff --git a/src/services/pet/MountService.java b/src/services/pet/MountService.java index 2c0b636d..c7d68706 100644 --- a/src/services/pet/MountService.java +++ b/src/services/pet/MountService.java @@ -393,37 +393,31 @@ public class MountService implements INetworkDispatch { } public void mount(CreatureObject rider, CreatureObject mount) { - // FIXME like above, movement skillmod should be used instead of creo4 vars and never be 0, otherwise it thinks we are always rooted - //if (rider.getSkillModBase("movement") == 0) { - //rider.sendSystemMessage(OutOfBand.ProsePackage("@pet_menu:cant_mount_rooted"), DisplayType.Broadcast); - //return; - //} + // Check if mount may be mounted // This is already checked in canMount - // Check if mount may be mounted - if (rider == null) - { + if (rider == null) { return; } - if (mount == null) - { + + if (mount == null) { return; } - if (!mount.getOption(Options.MOUNT)) - { + + if (!mount.getOption(Options.MOUNT)) { return; } - if (mount.getOption(Options.DISABLED)) - { + + if (mount.getOption(Options.DISABLED)) { rider.sendSystemMessage(OutOfBand.ProsePackage("@pet_menu:cant_mount_veh_disabled"), DisplayType.Broadcast); return; } - if (rider.isInStealth()) - { + + if (rider.isInStealth()) { rider.sendSystemMessage(OutOfBand.ProsePackage("@pet_menu:no_mount_stealth"), DisplayType.Broadcast); return; } - if (!canMount(rider, mount)) - { + + if (!canMount(rider, mount)) { rider.sendSystemMessage(OutOfBand.ProsePackage("@pet_menu:cant_mount"), DisplayType.Broadcast); return; } @@ -432,12 +426,10 @@ public class MountService implements INetworkDispatch { mount._add(rider); // Set mount states and stuff - mount.setStateBitmask(mount.getStateBitmask() | State.MountedCreature); mount.setState(State.MountedCreature, true); mount.setPosture(Posture.DrivingVehicle); // Set rider states and stuff - rider.setStateBitmask(rider.getStateBitmask() | State.RidingMount); rider.setState(StateStatus.RidingMount, true); // Notify observers and update quadtree @@ -524,44 +516,20 @@ public class MountService implements INetworkDispatch { return false; } - if(mount.getSlottedObject("rider") == rider) return true; - - if(mount.getAttachment("passenger") == null) return false; - - for(int i = 1; i < (int) mount.getAttachment("passenger"); i++) - { - if (mount.getSlottedObject("rider" + i) != rider) return true; - } - - return false; + return true; } public boolean isMounted(SWGObject actor, CreatureObject mount) { return actor.getContainer() == mount; } - public int getPassengerCount(CreatureObject mount) - { - mount.setAttachment("passengers", 0); - - mount.viewChildren(mount, false, false, new Traverser() - { - public void process(SWGObject passenger) - { - if (passenger instanceof CreatureObject) mount.setAttachment("passengers", (int) mount.getAttachment("passengers") + 1); - } - }); - - return (int)mount.getAttachment("passengers"); - } - public boolean canMount(CreatureObject rider, CreatureObject mount) { if (mount == null) { return false; } if (!mount.getOption(Options.MOUNT)) { - // return false; + return false; } if (isMounted(rider)) { @@ -579,23 +547,28 @@ public class MountService implements INetworkDispatch { return false; } - int passengers = 0; + // Check if there are any passenger slots left - if (mount.getAttachment("passengers") != null){ - passengers = getPassengerCount(mount); - } + LongAdder adder = new LongAdder(); - int passengerSlot = 0; + mount.getSlottedObject("inventory").viewChildren(owner, false, false, (obj) -> adder.increment()); - for (int i = 1; i <= passengers; i++) { - if (mount.getSlottedObject("rider" + i) == null) { - passengerSlot = i; - break; + int passengers = adder.intValue(); + + try { + DatatableVisitor visitor = ClientFileManager.loadFile("datatables/mount/saddle_appearance_map.iff", DatatableVisitor.class); + + for (int i = 0; i < visitor.getRowCount(); i++) { + if (visitor.getObject(i, 2).equals(mount.getAttachment("pcdAppearanceFilename"))) { // saddle_appearance_filename + if (passengers >= (int) visitor.getObject(i, 1)) { // saddle_capacity + return false; + } + + break; + } } - } - - if (passengerSlot == 0) { - // return false; + } catch (Exception e) { + e.printStackTrace(); } CreatureObject owner = (CreatureObject) NGECore.getInstance().objectService.getObject(mount.getOwnerId()); @@ -612,50 +585,31 @@ public class MountService implements INetworkDispatch { return false; } - try - { - DatatableVisitor visitor = ClientFileManager.loadFile("datatables/mount/saddle_appearance_map.iff", DatatableVisitor.class); - for(int i = 0; i < visitor.getRowCount(); i++) - { - if(visitor.getObject(i, 2).equals(mount.getAttachment("pcdAppearanceFilename"))) // saddle_appearance_name - { - if(passengers < (int) visitor.getObject(i, 1)) return true; // saddle_capacity - break; - } - } - } - catch (Exception e) { e.printStackTrace(); } - - if(passengers > 0) return false; - return true; } public void dismount(CreatureObject rider, CreatureObject mount) { + // Check if mount is currently mounted // Not necessary since nobody'll be dismounted if so - // Check if mount is currently mounted - if (rider == null || mount == null) - { + if (rider == null || mount == null) { return; } - if (!isMounted(rider)) - { + + if (!isMounted(rider)) { return; - } - if (!mount.getOption(Options.MOUNT)) - { + } + + if (!mount.getOption(Options.MOUNT)) { return; } // Dismount all passengers - - if (rider.getObjectID() == mount.getOwnerId()) - { + if (rider.getObjectID() == mount.getOwnerId()) { CreatureObject owner = rider; - mount.viewChildren(owner, false, false, new Traverser() - { - public void process(SWGObject passenger) - { + + mount.viewChildren(owner, false, false, new Traverser() { + + public void process(SWGObject passenger) { if (passenger != owner) dismount(rider, mount); } @@ -666,25 +620,23 @@ public class MountService implements INetworkDispatch { mount._remove(rider); // Set mount states and stuff - if (rider.getObjectID() == mount.getOwnerId()) - { - mount.setStateBitmask(0); + if (rider.getObjectID() == mount.getOwnerId()) { + //mount.setStateBitmask(0); mount.setState(State.MountedCreature, false); } // Set rider states and stuff - rider.setStateBitmask(0); + //rider.setStateBitmask(0); rider.setState(StateStatus.RidingMount, false); - rider.setPosture((byte) 0); - + rider.setPosture(Posture.Upright); + // Update observers and quadtree mount.notifyObservers(new UpdateContainmentMessage(rider.getObjectID(), 0, -1), true); core.simulationService.teleport(rider, mount.getWorldPosition(), mount.getOrientation(), 0); core.simulationService.add(rider, mount.getWorldPosition().x, mount.getWorldPosition().z, false); // Store mount if it's a creature - if (!mount.getTemplate().contains("vehicle") && rider.getObjectID() == mount.getOwnerId()) - { + if (!mount.getTemplate().contains("vehicle") && rider.getObjectID() == mount.getOwnerId()) { store(rider, mount); } } From 6aa1295eb9d8d398feae14dac516b6d53bd7607a Mon Sep 17 00:00:00 2001 From: Treeku Date: Fri, 25 Apr 2014 12:19:35 +0100 Subject: [PATCH 10/10] Updated variable labeling a bit for CREOs --- .../creature/CreatureMessageBuilder.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/resources/objects/creature/CreatureMessageBuilder.java b/src/resources/objects/creature/CreatureMessageBuilder.java index 8d6a01c6..69e0ef11 100644 --- a/src/resources/objects/creature/CreatureMessageBuilder.java +++ b/src/resources/objects/creature/CreatureMessageBuilder.java @@ -23,8 +23,6 @@ package resources.objects.creature; import java.nio.ByteOrder; - - import org.apache.mina.core.buffer.IoBuffer; import com.sleepycat.persist.model.Persistent; @@ -96,6 +94,8 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder { } buffer.putShort((short) 19); // Object Count + + // BaseObject buffer.putFloat(1); buffer.put(getAsciiString(creature.getStfFilename())); buffer.putInt(0); @@ -104,6 +104,8 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder { buffer.put(getUnicodeString(creature.getCustomName())); // buffer.putInt(0x000F4240); // volume buffer.putInt(1); + + // TangibleObject buffer.putInt(CRC.StringtoCRC(creature.getFaction())); buffer.putInt(creature.getFactionStatus()); @@ -126,6 +128,8 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder { buffer.putInt(0x3A98); buffer.put((byte) 1); + + // CreatureObject buffer.put((byte) creature.getPosture()); buffer.put((byte) 0); @@ -216,20 +220,21 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder { IoBuffer buffer = bufferPool.allocate(100, false).order(ByteOrder.LITTLE_ENDIAN); buffer.setAutoExpand(true); buffer.putShort((short) 0x23); + + // BaseObject buffer.putInt(0x43); // serverId buffer.putShort((short) 0); // detaiLStfFilename buffer.putInt(0); // detailStfSpacer buffer.putShort((short) 0); // detailStfName - // TANO 6 lists TODO: research - + // TangibleObject buffer.put(creature.getCombatFlag()); - buffer.putLong(0); //List possibly defenders list + buffer.putLong(0); //Set cloakViewers (set of objectIds of who can see a cloaked spy) buffer.putInt(0); //Int buffer.putLong(0); //List - buffer.putLong(0); //List + buffer.putLong(0); //List buffer.putLong(0); //List buffer.putShort(creature.getLevel());