From 4af373b44e6941ef75612d19fce12f442a70b940 Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Sat, 9 Aug 2014 17:52:54 +0200 Subject: [PATCH 1/2] Fixed RifleBug preliminarily --- scripts/character_builder_terminal.py | 16 ++++++++-------- src/services/command/CommandService.java | 11 +++++++---- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/scripts/character_builder_terminal.py b/scripts/character_builder_terminal.py index f7d8b527..d58927ff 100644 --- a/scripts/character_builder_terminal.py +++ b/scripts/character_builder_terminal.py @@ -382,13 +382,13 @@ def combatLevelDown(owner): return def rangedWeapons(owner, inventory): - #rifle = core.objectService.createObject('object/weapon/ranged/rifle/shared_rifle_e11.iff', owner.getPlanet()) - #rifle.setDamageType('energy') - #rifle.setWeaponType(WeaponType.RIFLE) - #rifle.setAttackSpeed(0.8) - #rifle.setMinDamage(518) - #rifle.setMaxDamage(1035) - #rifle.setMaxRange(64) + rifle = core.objectService.createObject('object/weapon/ranged/rifle/shared_rifle_e11.iff', owner.getPlanet()) + rifle.setDamageType('energy') + rifle.setWeaponType(WeaponType.RIFLE) + rifle.setAttackSpeed(0.8) + rifle.setMinDamage(518) + rifle.setMaxDamage(1035) + rifle.setMaxRange(64) pistol = core.objectService.createObject('object/weapon/ranged/pistol/shared_pistol_dl44.iff', owner.getPlanet()) pistol.setDamageType('energy') @@ -416,7 +416,7 @@ def rangedWeapons(owner, inventory): heavy.setStringAttribute('wpn_elemental_value', '50') heavy.setMaxRange(64) - #inventory.add(rifle) + inventory.add(rifle) inventory.add(pistol) inventory.add(carbine) inventory.add(heavy) diff --git a/src/services/command/CommandService.java b/src/services/command/CommandService.java index a8cd0210..59d2590a 100644 --- a/src/services/command/CommandService.java +++ b/src/services/command/CommandService.java @@ -94,11 +94,14 @@ public class CommandService implements INetworkDispatch { return false; } - TangibleObject weapon = (TangibleObject) core.objectService.getObject(actor.getWeaponId()); + // Causes this service method to return with false after equipping a rifle, not allowing to unequip it anymore + // because the client seems to consider rifles invalidweapons for an unkown reason - if (weapon != null && weapon instanceof WeaponObject && ((WeaponObject) weapon).getWeaponType() == command.getInvalidWeapon()) { - return false; - } +// TangibleObject weapon = (TangibleObject) core.objectService.getObject(actor.getWeaponId()); +// +// if (weapon != null && weapon instanceof WeaponObject && ((WeaponObject) weapon).getWeaponType() == command.getInvalidWeapon()) { +// return false; +// } for (long state : command.getInvalidStates()) { if ((actor.getStateBitmask() & state) == state) { From f50d0a394ab6723b7aa9b910d325d2429cd03288 Mon Sep 17 00:00:00 2001 From: tacef Date: Sat, 9 Aug 2014 17:56:50 +0200 Subject: [PATCH 2/2] Changed Several Customtemplates to use Datatable for weapontype --- scripts/object/weapon/ranged/carbine/carbine_pvp.py | 3 ++- .../ranged/carbine/weapon_acidbeam_commando_roadmap_01_02.py | 3 ++- .../weapon/ranged/carbine/weapon_carbine_bh_roadmap_01_02.py | 3 ++- .../weapon/ranged/carbine/weapon_carbine_sp_roadmap_01_02.py | 3 ++- .../weapon/ranged/carbine/weapon_npe_carbine_bh_03_01.py | 3 ++- .../weapon/ranged/carbine/weapon_npe_carbine_spy_03_01.py | 3 ++- .../ranged/carbine/weapon_npe_commando_carbine_03_01.py | 3 ++- scripts/object/weapon/ranged/heavy/heavy_pvp.py | 5 +++-- .../object/weapon/ranged/pistol/item_npe_officer_sidearm.py | 3 ++- .../weapon/ranged/pistol/item_npe_smuggler_han_solo_gun.py | 3 ++- scripts/object/weapon/ranged/pistol/pistol_pvp.py | 5 +++-- .../weapon/ranged/pistol/weapon_npe_medic_pistol_03_01.py | 3 ++- .../weapon/ranged/pistol/weapon_pistol_en_roadmap_01_02.py | 3 ++- .../weapon/ranged/pistol/weapon_pistol_sp_roadmap_01_02.py | 3 ++- .../ranged/pistol/weapon_pistol_trader_roadmap_01_02.py | 3 ++- scripts/object/weapon/ranged/rifle/rifle_pvp.py | 5 +++-- .../rifle/weapon_lightningbeam_commando_roadmap_01_02.py | 3 ++- .../weapon/ranged/rifle/weapon_rifle_bh_roadmap_01_02.py | 3 ++- 18 files changed, 39 insertions(+), 21 deletions(-) diff --git a/scripts/object/weapon/ranged/carbine/carbine_pvp.py b/scripts/object/weapon/ranged/carbine/carbine_pvp.py index df45159e..8931d99f 100644 --- a/scripts/object/weapon/ranged/carbine/carbine_pvp.py +++ b/scripts/object/weapon/ranged/carbine/carbine_pvp.py @@ -1,4 +1,5 @@ import sys +from resources.datatables import WeaponType def setup(core, object): object.setStringAttribute('tier', '6') @@ -12,7 +13,7 @@ def setup(core, object): object.setStringAttribute('faction_restriction', 'Rebel') object.setStringAttribute('required_skill', 'None') object.setDamageType("energy"); - object.setWeaponType(1); + object.setWeaponType(WeaponType.CARBINE); object.setAttackSpeed(0.6); object.setMinDamage(389); object.setMaxDamage(780); diff --git a/scripts/object/weapon/ranged/carbine/weapon_acidbeam_commando_roadmap_01_02.py b/scripts/object/weapon/ranged/carbine/weapon_acidbeam_commando_roadmap_01_02.py index b0cf2fc2..8de300bf 100644 --- a/scripts/object/weapon/ranged/carbine/weapon_acidbeam_commando_roadmap_01_02.py +++ b/scripts/object/weapon/ranged/carbine/weapon_acidbeam_commando_roadmap_01_02.py @@ -1,4 +1,5 @@ import sys +from resources.datatables import WeaponType def setup(core, object): object.setStfFilename('static_item_n') @@ -13,5 +14,5 @@ def setup(core, object): object.setDamageType("energy"); object.setMinDamage(109); object.setMaxDamage(218); - object.setWeaponType(1); + object.setWeaponType(WeaponType.CARBINE); return \ No newline at end of file diff --git a/scripts/object/weapon/ranged/carbine/weapon_carbine_bh_roadmap_01_02.py b/scripts/object/weapon/ranged/carbine/weapon_carbine_bh_roadmap_01_02.py index 0b8e2f34..df406cd0 100644 --- a/scripts/object/weapon/ranged/carbine/weapon_carbine_bh_roadmap_01_02.py +++ b/scripts/object/weapon/ranged/carbine/weapon_carbine_bh_roadmap_01_02.py @@ -1,4 +1,5 @@ import sys +from resources.datatables import WeaponType def setup(core, object): object.setStfFilename('static_item_n') @@ -13,5 +14,5 @@ def setup(core, object): object.setDamageType("energy"); object.setMinDamage(109); object.setMaxDamage(218); - object.setWeaponType(1); + object.setWeaponType(WeaponType.CARBINE); return \ No newline at end of file diff --git a/scripts/object/weapon/ranged/carbine/weapon_carbine_sp_roadmap_01_02.py b/scripts/object/weapon/ranged/carbine/weapon_carbine_sp_roadmap_01_02.py index 7dc750ef..b0cbde72 100644 --- a/scripts/object/weapon/ranged/carbine/weapon_carbine_sp_roadmap_01_02.py +++ b/scripts/object/weapon/ranged/carbine/weapon_carbine_sp_roadmap_01_02.py @@ -1,4 +1,5 @@ import sys +from resources.datatables import WeaponType def setup(core, object): object.setStfFilename('static_item_n') @@ -12,5 +13,5 @@ def setup(core, object): object.setDamageType("energy"); object.setMinDamage(195); object.setMaxDamage(392); - object.setWeaponType(1); + object.setWeaponType(WeaponType.CARBINE); return \ No newline at end of file diff --git a/scripts/object/weapon/ranged/carbine/weapon_npe_carbine_bh_03_01.py b/scripts/object/weapon/ranged/carbine/weapon_npe_carbine_bh_03_01.py index 600a05a8..4f49c8f6 100644 --- a/scripts/object/weapon/ranged/carbine/weapon_npe_carbine_bh_03_01.py +++ b/scripts/object/weapon/ranged/carbine/weapon_npe_carbine_bh_03_01.py @@ -1,4 +1,5 @@ import sys +from resources.datatables import WeaponType def setup(core, object): object.setStfFilename('static_item_n') @@ -12,5 +13,5 @@ def setup(core, object): object.setDamageType("energy"); object.setMinDamage(17); object.setMaxDamage(43); - object.setWeaponType(1); + object.setWeaponType(WeaponType.CARBINE); return \ No newline at end of file diff --git a/scripts/object/weapon/ranged/carbine/weapon_npe_carbine_spy_03_01.py b/scripts/object/weapon/ranged/carbine/weapon_npe_carbine_spy_03_01.py index bb153176..a1bfb367 100644 --- a/scripts/object/weapon/ranged/carbine/weapon_npe_carbine_spy_03_01.py +++ b/scripts/object/weapon/ranged/carbine/weapon_npe_carbine_spy_03_01.py @@ -1,4 +1,5 @@ import sys +from resources.datatables import WeaponType def setup(core, object): object.setStfFilename('static_item_n') @@ -12,5 +13,5 @@ def setup(core, object): object.setDamageType("energy"); object.setMinDamage(17); object.setMaxDamage(43); - object.setWeaponType(1); + object.setWeaponType(WeaponType.CARBINE); return \ No newline at end of file diff --git a/scripts/object/weapon/ranged/carbine/weapon_npe_commando_carbine_03_01.py b/scripts/object/weapon/ranged/carbine/weapon_npe_commando_carbine_03_01.py index e707e4f4..ffeb530b 100644 --- a/scripts/object/weapon/ranged/carbine/weapon_npe_commando_carbine_03_01.py +++ b/scripts/object/weapon/ranged/carbine/weapon_npe_commando_carbine_03_01.py @@ -1,4 +1,5 @@ import sys +from resources.datatables import WeaponType def setup(core, object): object.setStfFilename('static_item_n') @@ -12,5 +13,5 @@ def setup(core, object): object.setDamageType("energy"); object.setMinDamage(20); object.setMaxDamage(40); - object.setWeaponType(1); + object.setWeaponType(Weapon.Type.CARBINE); return \ No newline at end of file diff --git a/scripts/object/weapon/ranged/heavy/heavy_pvp.py b/scripts/object/weapon/ranged/heavy/heavy_pvp.py index 0bbf3010..d2511794 100644 --- a/scripts/object/weapon/ranged/heavy/heavy_pvp.py +++ b/scripts/object/weapon/ranged/heavy/heavy_pvp.py @@ -1,4 +1,5 @@ import sys +from resources.datatables import WeaponType def setup(core, object): object.setStfFilename('static_item_n') @@ -9,10 +10,10 @@ def setup(core, object): object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 10) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 10) - object.setStringAttribute('healing_combat_level_required', '75') + object.setStringAttribute('required_combat_level', '75') object.setStringAttribute('required_skill', 'None') object.setDamageType("energy"); - object.setWeaponType(12); + object.setWeaponType(WeaponType.HEAVYWEAPON); object.setAttackSpeed(1); object.setMinDamage(850); object.setMaxDamage(1350); diff --git a/scripts/object/weapon/ranged/pistol/item_npe_officer_sidearm.py b/scripts/object/weapon/ranged/pistol/item_npe_officer_sidearm.py index b1c7fa0f..7e3aee0b 100644 --- a/scripts/object/weapon/ranged/pistol/item_npe_officer_sidearm.py +++ b/scripts/object/weapon/ranged/pistol/item_npe_officer_sidearm.py @@ -1,4 +1,5 @@ import sys +from resources.datatables import WeaponType def setup(core, object): object.setStfFilename('static_item_n') @@ -12,5 +13,5 @@ def setup(core, object): object.setDamageType("energy"); object.setMinDamage(15); object.setMaxDamage(25); - object.setWeaponType(2); + object.setWeaponType(WeaponType.PISTOL); return \ No newline at end of file diff --git a/scripts/object/weapon/ranged/pistol/item_npe_smuggler_han_solo_gun.py b/scripts/object/weapon/ranged/pistol/item_npe_smuggler_han_solo_gun.py index baef2e0b..6aa08b78 100644 --- a/scripts/object/weapon/ranged/pistol/item_npe_smuggler_han_solo_gun.py +++ b/scripts/object/weapon/ranged/pistol/item_npe_smuggler_han_solo_gun.py @@ -1,4 +1,5 @@ import sys +from resources.datatables import WeaponType def setup(core, object): object.setStfFilename('static_item_n') @@ -12,5 +13,5 @@ def setup(core, object): object.setDamageType("energy"); object.setMinDamage(13); object.setMaxDamage(27); - object.setWeaponType(2); + object.setWeaponType(WeaponType.PISTOL); return \ No newline at end of file diff --git a/scripts/object/weapon/ranged/pistol/pistol_pvp.py b/scripts/object/weapon/ranged/pistol/pistol_pvp.py index a4f22603..73989872 100644 --- a/scripts/object/weapon/ranged/pistol/pistol_pvp.py +++ b/scripts/object/weapon/ranged/pistol/pistol_pvp.py @@ -1,4 +1,5 @@ import sys +from resources.datatables import WeaponType def setup(core, object): object.setStfFilename('static_item_n') @@ -9,10 +10,10 @@ def setup(core, object): object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 10) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 10) - object.setStringAttribute('healing_combat_level_required', '75') + object.setStringAttribute('required_combat_level', '75') object.setStringAttribute('required_skill', 'None') object.setDamageType("energy"); - object.setWeaponType(2); + object.setWeaponType(WeaponType.PISTOL); object.setAttackSpeed(0.4); object.setMinDamage(259); object.setMaxDamage(518); diff --git a/scripts/object/weapon/ranged/pistol/weapon_npe_medic_pistol_03_01.py b/scripts/object/weapon/ranged/pistol/weapon_npe_medic_pistol_03_01.py index 56169960..a96a4530 100644 --- a/scripts/object/weapon/ranged/pistol/weapon_npe_medic_pistol_03_01.py +++ b/scripts/object/weapon/ranged/pistol/weapon_npe_medic_pistol_03_01.py @@ -1,4 +1,5 @@ import sys +from resources.datatables import WeaponType def setup(core, object): object.setStfFilename('static_item_n') @@ -12,5 +13,5 @@ def setup(core, object): object.setDamageType("energy"); object.setMinDamage(13); object.setMaxDamage(27); - object.setWeaponType(2); + object.setWeaponType(WeaponType.PISTOL); return \ No newline at end of file diff --git a/scripts/object/weapon/ranged/pistol/weapon_pistol_en_roadmap_01_02.py b/scripts/object/weapon/ranged/pistol/weapon_pistol_en_roadmap_01_02.py index 04b64dd7..2f5507c3 100644 --- a/scripts/object/weapon/ranged/pistol/weapon_pistol_en_roadmap_01_02.py +++ b/scripts/object/weapon/ranged/pistol/weapon_pistol_en_roadmap_01_02.py @@ -1,4 +1,5 @@ import sys +from resources.datatables import WeaponType def setup(core, object): object.setStfFilename('static_item_n') @@ -13,5 +14,5 @@ def setup(core, object): object.setDamageType("energy"); object.setMinDamage(131); object.setMaxDamage(261); - object.setWeaponType(2); + object.setWeaponType(WeaponType.PISTOL); return \ No newline at end of file diff --git a/scripts/object/weapon/ranged/pistol/weapon_pistol_sp_roadmap_01_02.py b/scripts/object/weapon/ranged/pistol/weapon_pistol_sp_roadmap_01_02.py index 48ea9736..5e4cefa8 100644 --- a/scripts/object/weapon/ranged/pistol/weapon_pistol_sp_roadmap_01_02.py +++ b/scripts/object/weapon/ranged/pistol/weapon_pistol_sp_roadmap_01_02.py @@ -1,4 +1,5 @@ import sys +from resources.datatables import WeaponType def setup(core, object): object.setStfFilename('static_item_n') @@ -13,5 +14,5 @@ def setup(core, object): object.setDamageType("energy"); object.setMinDamage(73); object.setMaxDamage(145); - object.setWeaponType(2); + object.setWeaponType(WeaponType.PISTOL); return \ No newline at end of file diff --git a/scripts/object/weapon/ranged/pistol/weapon_pistol_trader_roadmap_01_02.py b/scripts/object/weapon/ranged/pistol/weapon_pistol_trader_roadmap_01_02.py index 160019db..160c73dd 100644 --- a/scripts/object/weapon/ranged/pistol/weapon_pistol_trader_roadmap_01_02.py +++ b/scripts/object/weapon/ranged/pistol/weapon_pistol_trader_roadmap_01_02.py @@ -1,4 +1,5 @@ import sys +from resources.datatables import WeaponType def setup(core, object): object.setStfFilename('static_item_n') @@ -12,5 +13,5 @@ def setup(core, object): object.setDamageType("energy"); object.setMinDamage(250); object.setMaxDamage(500); - object.setWeaponType(2); + object.setWeaponType(WeaponType.Pistol); return \ No newline at end of file diff --git a/scripts/object/weapon/ranged/rifle/rifle_pvp.py b/scripts/object/weapon/ranged/rifle/rifle_pvp.py index 2de5b766..75bc3fbf 100644 --- a/scripts/object/weapon/ranged/rifle/rifle_pvp.py +++ b/scripts/object/weapon/ranged/rifle/rifle_pvp.py @@ -1,4 +1,5 @@ import sys +from resources.datatables import WeaponType def setup(core, object): object.setStfFilename('static_item_n') @@ -9,10 +10,10 @@ def setup(core, object): object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 10) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 10) - object.setStringAttribute('healing_combat_level_required', '75') + object.setStringAttribute('required_combat_level', '75') object.setStringAttribute('required_skill', 'None') object.setDamageType("energy"); - object.setWeaponType(0); + object.setWeaponType(WeaponType.RIFLE); object.setAttackSpeed(0.8); object.setMinDamage(518); object.setMaxDamage(1035); diff --git a/scripts/object/weapon/ranged/rifle/weapon_lightningbeam_commando_roadmap_01_02.py b/scripts/object/weapon/ranged/rifle/weapon_lightningbeam_commando_roadmap_01_02.py index de45af3a..aa7addc7 100644 --- a/scripts/object/weapon/ranged/rifle/weapon_lightningbeam_commando_roadmap_01_02.py +++ b/scripts/object/weapon/ranged/rifle/weapon_lightningbeam_commando_roadmap_01_02.py @@ -1,4 +1,5 @@ import sys +from resources.datatables import WeaponType def setup(core, object): object.setStfFilename('static_item_n') @@ -13,5 +14,5 @@ def setup(core, object): object.setDamageType("energy"); object.setMinDamage(261); object.setMaxDamage(522); - object.setWeaponType(2); + object.setWeaponType(WeaponType.RIFLE); return \ No newline at end of file diff --git a/scripts/object/weapon/ranged/rifle/weapon_rifle_bh_roadmap_01_02.py b/scripts/object/weapon/ranged/rifle/weapon_rifle_bh_roadmap_01_02.py index 98980b19..0f91c55f 100644 --- a/scripts/object/weapon/ranged/rifle/weapon_rifle_bh_roadmap_01_02.py +++ b/scripts/object/weapon/ranged/rifle/weapon_rifle_bh_roadmap_01_02.py @@ -1,4 +1,5 @@ import sys +from resources.datatables import WeaponType def setup(core, object): object.setStfFilename('static_item_n') @@ -13,5 +14,5 @@ def setup(core, object): object.setDamageType("energy"); object.setMinDamage(261); object.setMaxDamage(522); - object.setWeaponType(2); + object.setWeaponType(WeaponType.RIFLE); return \ No newline at end of file