From 4d99a8493593a5ea219541b55a8e99dbe185f76f Mon Sep 17 00:00:00 2001 From: voronius Date: Tue, 5 Aug 2014 04:14:13 +0300 Subject: [PATCH 01/51] Fix for inspiration buff Buff is now properly applied, stat mods are properly computed and changes to stats are clearly visible . Sample test at https://www.youtube.com/watch?v=KOV2C4z5VAw --- scripts/buffs/buildabuff_inspiration.py | 4 -- scripts/skillMods/elemental_resistance.py | 16 +++++ .../expertise_innate_protection_acid.py | 10 +++ .../expertise_innate_protection_cold.py | 10 +++ ...expertise_innate_protection_electricity.py | 10 +++ .../expertise_innate_protection_heat.py | 10 +++ src/resources/common/BuffBuilder.java | 30 ++++++++- src/services/BuffService.java | 25 +++++++- src/services/EntertainmentService.java | 63 ++++++++++++++++--- 9 files changed, 162 insertions(+), 16 deletions(-) create mode 100644 scripts/skillMods/elemental_resistance.py create mode 100644 scripts/skillMods/expertise_innate_protection_acid.py create mode 100644 scripts/skillMods/expertise_innate_protection_cold.py create mode 100644 scripts/skillMods/expertise_innate_protection_electricity.py create mode 100644 scripts/skillMods/expertise_innate_protection_heat.py diff --git a/scripts/buffs/buildabuff_inspiration.py b/scripts/buffs/buildabuff_inspiration.py index 35a49556..0474b1d9 100644 --- a/scripts/buffs/buildabuff_inspiration.py +++ b/scripts/buffs/buildabuff_inspiration.py @@ -5,19 +5,15 @@ def setup(core, actor, buff): return def add(core, actor, buff): - buffWorkshop = actor.getAttachment('buffWorkshop') - if buffWorkshop is None: return - attached = actor.getAttachment('inspireDuration') buff.setDuration(float(actor.getAttachment('inspireDuration') * 60)) for BuffItem in buffWorkshop: core.skillModService.addSkillMod(actor, BuffItem.getSkillName(), BuffItem.getAffectAmount()) - return def remove(core, actor, buff): diff --git a/scripts/skillMods/elemental_resistance.py b/scripts/skillMods/elemental_resistance.py new file mode 100644 index 00000000..5a327427 --- /dev/null +++ b/scripts/skillMods/elemental_resistance.py @@ -0,0 +1,16 @@ +import sys + +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'acid', skillMod) + core.skillModService.addSkillMod(actor, 'heat', skillMod) + core.skillModService.addSkillMod(actor, 'cold', skillMod) + core.skillModService.addSkillMod(actor, 'electricity', skillMod) + return + +def deduct(core, actor, skillMod, divisor): + core.skillModService.deductSkillMod(actor, 'acid', skillMod) + core.skillModService.deductSkillMod(actor, 'heat', skillMod) + core.skillModService.deductSkillMod(actor, 'cold', skillMod) + core.skillModService.deductSkillMod(actor, 'electricity', skillMod) + return + \ No newline at end of file diff --git a/scripts/skillMods/expertise_innate_protection_acid.py b/scripts/skillMods/expertise_innate_protection_acid.py new file mode 100644 index 00000000..f3597431 --- /dev/null +++ b/scripts/skillMods/expertise_innate_protection_acid.py @@ -0,0 +1,10 @@ +import sys + +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'acid', skillMod) + return + +def deduct(core, actor, skillMod, divisor): + core.skillModService.deductSkillMod(actor, 'acid', skillMod) + return + \ No newline at end of file diff --git a/scripts/skillMods/expertise_innate_protection_cold.py b/scripts/skillMods/expertise_innate_protection_cold.py new file mode 100644 index 00000000..8581c26d --- /dev/null +++ b/scripts/skillMods/expertise_innate_protection_cold.py @@ -0,0 +1,10 @@ +import sys + +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'cold', skillMod) + return + +def deduct(core, actor, skillMod, divisor): + core.skillModService.deductSkillMod(actor, 'cold', skillMod) + return + \ No newline at end of file diff --git a/scripts/skillMods/expertise_innate_protection_electricity.py b/scripts/skillMods/expertise_innate_protection_electricity.py new file mode 100644 index 00000000..6174b979 --- /dev/null +++ b/scripts/skillMods/expertise_innate_protection_electricity.py @@ -0,0 +1,10 @@ +import sys + +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'electricity', skillMod) + return + +def deduct(core, actor, skillMod, divisor): + core.skillModService.deductSkillMod(actor, 'electricity', skillMod) + return + \ No newline at end of file diff --git a/scripts/skillMods/expertise_innate_protection_heat.py b/scripts/skillMods/expertise_innate_protection_heat.py new file mode 100644 index 00000000..19188fc7 --- /dev/null +++ b/scripts/skillMods/expertise_innate_protection_heat.py @@ -0,0 +1,10 @@ +import sys + +def add(core, actor, skillMod, divisor): + core.skillModService.addSkillMod(actor, 'heat', skillMod) + return + +def deduct(core, actor, skillMod, divisor): + core.skillModService.deductSkillMod(actor, 'heat', skillMod) + return + \ No newline at end of file diff --git a/src/resources/common/BuffBuilder.java b/src/resources/common/BuffBuilder.java index 83b2d9fb..cd3c48a4 100644 --- a/src/resources/common/BuffBuilder.java +++ b/src/resources/common/BuffBuilder.java @@ -30,6 +30,11 @@ public class BuffBuilder { private String statAffects; private String statName; + + public enum BuffCategory {ATTRIBUTES,RESISTANCES,TRADE,COMBAT,MISC}; + private BuffCategory catId; + + public BuffBuilder() { } @@ -42,6 +47,10 @@ public class BuffBuilder { return category; } + public BuffCategory getCategoryId() { + return catId; + } + public int getCost() { return this.cost; } @@ -66,7 +75,26 @@ public class BuffBuilder { this.affectAmount = affectAmount; } - public void setCategory(String category) { + public void setCategory(String category) + { + this.catId=BuffCategory.MISC; + if(category.equals("attributes")) + { + this.catId=BuffCategory.ATTRIBUTES; + } + else if(category.equals("trade")) + { + this.catId=BuffCategory.TRADE; + } + else if(category.equals("resistances")) + { + this.catId=BuffCategory.RESISTANCES; + } + else if(category.equals("combat")) + { + this.catId=BuffCategory.COMBAT; + } + this.category = category; } diff --git a/src/services/BuffService.java b/src/services/BuffService.java index 993c25bb..4b7c533c 100644 --- a/src/services/BuffService.java +++ b/src/services/BuffService.java @@ -89,7 +89,10 @@ public class BuffService implements INetworkDispatch { Buff buff = buffMap.get(buffName); - if(buff == null) return false; + if(buff == null) + { + return false; + } // Here the necessary checks must be placed to prevent buffs from the same buff group (e.g. Buff D) being stacked! @@ -105,6 +108,10 @@ public class BuffService implements INetworkDispatch { public Buff doAddBuff(final CreatureObject target, String buffName, final CreatureObject buffer) { + //BUG HERE !! watch it + //TODO fix this -- !! this is wrong - I can buff from 5,5 in cantina someone sitting at 20,20 in the universe/planet !!! - accross the galaxy/planet + //cause get position is relative to creature system of coordinates - when one's outside and other inside + //if you must use getPosition() check for isInCell first for both or something like that if (target.getPosition().getDistance(buffer.getPosition()) > 20) { return null; } @@ -119,7 +126,21 @@ public class BuffService implements INetworkDispatch { else buff.setTotalPlayTime(0); - if(FileUtilities.doesFileExist("scripts/buffs/" + buffName + ".py")) core.scriptService.callScript("scripts/buffs/", buffName, "setup", core, buffer, buff); + + if(FileUtilities.doesFileExist("scripts/buffs/" + buffName + ".py")) + { + if(!buffName.equals("buildabuff_inspiration")) + { + core.scriptService.callScript("scripts/buffs/", buffName, "setup", core, buffer, buff); + } + else + { + //!!! for special case inspiration , workshop is attached to target + core.scriptService.callScript("scripts/buffs/", buffName, "add", core, target, buff); + } + } + + for (final Buff otherBuff : target.getBuffList()) { if (buff.getGroup1().equals(otherBuff.getGroup1())) diff --git a/src/services/EntertainmentService.java b/src/services/EntertainmentService.java index 78c04f0d..ab1b03e3 100644 --- a/src/services/EntertainmentService.java +++ b/src/services/EntertainmentService.java @@ -62,6 +62,8 @@ public class EntertainmentService implements INetworkDispatch { private Map performanceEffects = new ConcurrentHashMap(); + + public EntertainmentService(NGECore core) { this.core = core; populateSkillCaps(); @@ -282,7 +284,8 @@ public class EntertainmentService implements INetworkDispatch { buffRecipient.getClient().getSession().write(closeMessage.serialize()); } - if (sender.getObjectId() == buffRecipient.getObjectId()) { + if (sender.getObjectId() == buffRecipient.getObjectId()) + { // send close packet to buffer BuffBuilderEndMessage end = new BuffBuilderEndMessage(sentPacket); end.setObjectId(buffer.getObjectId()); @@ -294,6 +297,8 @@ public class EntertainmentService implements INetworkDispatch { buffer.getClient().getSession().write(closeMessage.serialize()); CreatureObject cre = (CreatureObject) buffer; cre.sendSystemMessage("The buff recipient cancelled the buff builder session.", (byte) 0); + + } } } @@ -537,21 +542,61 @@ public class EntertainmentService implements INetworkDispatch { Vector availableStats = buffBuilderSkills; Vector stats = new Vector(); - for (BuffItem item : buffVector) { - for(BuffBuilder builder : availableStats) { - if(builder.getStatName().equalsIgnoreCase(item.getSkillName())) { + for (BuffItem item : buffVector) + { + for(BuffBuilder builder : availableStats) + { + + if(builder.getStatName().equalsIgnoreCase(item.getSkillName())) + { + + if(builder.getMaxTimesApplied() < item.getInvested()) return; + + int affectTotal=0; + + - // Ent. Expertise Percent + (invested points * affect amount) = stat - int bonusPoints = (int) (builder.getAffectAmount() *((float) item.getEntertainerBonus()/100f)); - int affectTotal = bonusPoints + (item.getInvested() * builder.getAffectAmount()); - BuffItem stat = new BuffItem(builder.getStatAffects(), item.getInvested(), item.getEntertainerBonus()); - stat.setAffectAmount(affectTotal); + + switch(builder.getCategoryId()) + { + + case TRADE: + case RESISTANCES: + case ATTRIBUTES: + { + affectTotal=(int)( ( (1+(float) item.getEntertainerBonus()/100f)*builder.getAffectAmount()) * item.getInvested()); + break; + + } + case COMBAT: + { + affectTotal=(int) (( builder.getAffectAmount()+item.getEntertainerBonus()) * item.getInvested()); + break; + + } + case MISC: + { + affectTotal=(int) (( builder.getAffectAmount()) * item.getInvested()); + break; + + } + default: + { + System.out.println("unhandled builder catId of "+builder.getCategoryId()); + } + + } + + stat.setAffectAmount(affectTotal); stats.add(stat); + + break; } + } } From 2e99c287e95eeed30ba7397f89648606cae8e21d Mon Sep 17 00:00:00 2001 From: tacef Date: Tue, 5 Aug 2014 07:58:58 +0200 Subject: [PATCH 02/51] Fixed Setgodmode str error(temp) Added TicketPurchaseModeMessageItv for Itv's Changed Travel_terminal_itv to use the new Purchasemode --- scripts/commands/setgodmode.py | 2 + .../radial/terminal/travel_terminal_itv.py | 4 +- .../EnterTicketPurchaseModeMessageItv.java | 70 +++++++++++++++++++ 3 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 src/protocol/swg/EnterTicketPurchaseModeMessageItv.java diff --git a/scripts/commands/setgodmode.py b/scripts/commands/setgodmode.py index 753cd3f2..e00e103d 100644 --- a/scripts/commands/setgodmode.py +++ b/scripts/commands/setgodmode.py @@ -17,6 +17,8 @@ def run(core, actor, target, commandString): playerObject = actor.getSlottedObject('ghost') + global str + if not playerObject: return diff --git a/scripts/radial/terminal/travel_terminal_itv.py b/scripts/radial/terminal/travel_terminal_itv.py index 510d23f9..269fef09 100644 --- a/scripts/radial/terminal/travel_terminal_itv.py +++ b/scripts/radial/terminal/travel_terminal_itv.py @@ -1,5 +1,5 @@ from resources.common import RadialOptions -from protocol.swg import EnterTicketPurchaseModeMessage +from protocol.swg import EnterTicketPurchaseModeMessageItv import sys def createRadial(core, owner, target, radials): @@ -14,7 +14,7 @@ def handleSelection(core, owner, target, option): if owner.getCombatFlag() == 1: owner.sendSystemMessage('You can\'t use that while in combat.', 0) return - tpm = EnterTicketPurchaseModeMessage(owner.getPlanet().getName(), core.mapService.getClosestCityName(owner), owner) + tpm = EnterTicketPurchaseModeMessageItv(owner.getPlanet().getName(), core.mapService.getClosestCityName(owner), owner) owner.getClient().getSession().write(tpm.serialize()) return return diff --git a/src/protocol/swg/EnterTicketPurchaseModeMessageItv.java b/src/protocol/swg/EnterTicketPurchaseModeMessageItv.java new file mode 100644 index 00000000..89677e95 --- /dev/null +++ b/src/protocol/swg/EnterTicketPurchaseModeMessageItv.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * Copyright (c) 2013 + * + * This File is part of NGECore2. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. + * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. + ******************************************************************************/ +package protocol.swg; + +import java.nio.ByteOrder; + +import main.NGECore; + +import org.apache.mina.core.buffer.IoBuffer; + +import services.travel.TravelPoint; +import engine.resources.objects.SWGObject; + +@SuppressWarnings("unused") +public class EnterTicketPurchaseModeMessageItv extends SWGMessage { + + private String planetName; + private String cityName; + private SWGObject player; + + public EnterTicketPurchaseModeMessageItv(String planetName, String cityName, SWGObject player) { + this.planetName = planetName; + this.cityName = cityName; + this.player = player; + } + + @Override + public void deserialize(IoBuffer data) { + + } + + @Override + public IoBuffer serialize() { + final NGECore core = NGECore.getInstance(); + TravelPoint nearestPoint = core.travelService.getNearestTravelPoint(player, 5120); + IoBuffer result = IoBuffer.allocate(11 + planetName.length() + nearestPoint.getName().length()).order(ByteOrder.LITTLE_ENDIAN); + + + result.putShort((short) 3); + result.putInt(0x904DAE1A); + + result.put(getAsciiString(planetName)); + result.put(getAsciiString(nearestPoint.getName())); + + + result.put((byte) 0); + + return result.flip(); + } + +} From 493c8faf83828f34d2a15dfc2ee3bb96020f560a Mon Sep 17 00:00:00 2001 From: Waverunner Date: Tue, 5 Aug 2014 14:13:19 -0400 Subject: [PATCH 03/51] Updated documentation location --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index abccf1b8..1523c7a5 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,6 @@ Now your changes will be reviewed by other developers and once the changes are a For more information please visit the wiki: https://github.com/ProjectSWGCore/NGECore2/wiki -Documentation can be found here: http://projectswgcore.github.io/NGECore2/doc/ +Documentation can be found here: http://projectswg.com/doc/ Please prefix all commits with Added, Changed, Removed or Fixed. If you don't have enough room for multiple changes, use the extended description. Try not to bundle multiple changes into one vague line (ie. "Changed various combat things"). Try to make all commit messages understandable by non-programmers. From fe6fc77179fc7dc14a30c9b0b0c123aeee1b94f4 Mon Sep 17 00:00:00 2001 From: tacef Date: Tue, 5 Aug 2014 20:58:16 +0200 Subject: [PATCH 04/51] Added Elevatorterminals to Mustafarian bunker For testing Purposes only --- scripts/object/building/player/player_house_mustafar_lg.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts/object/building/player/player_house_mustafar_lg.py b/scripts/object/building/player/player_house_mustafar_lg.py index c768c102..f9f7f4f9 100644 --- a/scripts/object/building/player/player_house_mustafar_lg.py +++ b/scripts/object/building/player/player_house_mustafar_lg.py @@ -8,4 +8,10 @@ def setup(core, object): structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -4.1, 0.55, 6.6, 0.714 ,0.714, 1) #structureterminal.setAttachment('radial_filename', 'structure_management_terminal') structureterminal.setAttachment('housing_parentstruct', object) + + elevatorterminal1 = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_elevator_down.iff', 0, 0.8, -0.655, -0.103, 0.998, 10) + + elevatorterminal2 = core.objectService.createChildobject(object, 'object/tangible/terminal/shared_terminal_elevator.iff', 0, -3, -0.655, 0.994, -0.103, 10) + + elevatorterminal3 = core.objectService.createChildobject(object, 'object/tangible/terminal/shared_terminal_elevator.iff', 0, -6, -0.655, 0.994, -0.103, 10) return \ No newline at end of file From 5942c71a51bbbe4cdcc21be6478096f95bfcd4da Mon Sep 17 00:00:00 2001 From: tacef Date: Tue, 5 Aug 2014 21:03:42 +0200 Subject: [PATCH 05/51] Fixed Typo in Mustafarian Bunker --- scripts/object/building/player/player_house_mustafar_lg.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/object/building/player/player_house_mustafar_lg.py b/scripts/object/building/player/player_house_mustafar_lg.py index f9f7f4f9..4fc36272 100644 --- a/scripts/object/building/player/player_house_mustafar_lg.py +++ b/scripts/object/building/player/player_house_mustafar_lg.py @@ -13,5 +13,5 @@ def setup(core, object): elevatorterminal2 = core.objectService.createChildobject(object, 'object/tangible/terminal/shared_terminal_elevator.iff', 0, -3, -0.655, 0.994, -0.103, 10) - elevatorterminal3 = core.objectService.createChildobject(object, 'object/tangible/terminal/shared_terminal_elevator.iff', 0, -6, -0.655, 0.994, -0.103, 10) + elevatorterminal3 = core.objectService.createChildobject(object, 'object/tangible/terminal/shared_terminal_elevator_up.iff', 0, -6, -0.655, 0.994, -0.103, 10) return \ No newline at end of file From 8b4aa5086f3d77814f56a9a1ff9f6eb71e4a9ca6 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Tue, 5 Aug 2014 16:26:35 -0400 Subject: [PATCH 06/51] Added constructor for EnterTicketPurchaseModeMessage, Removed duplicate travel packet --- .../radial/terminal/travel_terminal_itv.py | 2 +- .../swg/EnterTicketPurchaseModeMessage.java | 15 +++- .../EnterTicketPurchaseModeMessageItv.java | 70 ------------------- 3 files changed, 14 insertions(+), 73 deletions(-) delete mode 100644 src/protocol/swg/EnterTicketPurchaseModeMessageItv.java diff --git a/scripts/radial/terminal/travel_terminal_itv.py b/scripts/radial/terminal/travel_terminal_itv.py index 269fef09..b9356f38 100644 --- a/scripts/radial/terminal/travel_terminal_itv.py +++ b/scripts/radial/terminal/travel_terminal_itv.py @@ -14,7 +14,7 @@ def handleSelection(core, owner, target, option): if owner.getCombatFlag() == 1: owner.sendSystemMessage('You can\'t use that while in combat.', 0) return - tpm = EnterTicketPurchaseModeMessageItv(owner.getPlanet().getName(), core.mapService.getClosestCityName(owner), owner) + tpm = EnterTicketPurchaseModeMessage(owner.getPlanet().getName(), core.mapService.getClosestCityName(owner), owner, True) owner.getClient().getSession().write(tpm.serialize()) return return diff --git a/src/protocol/swg/EnterTicketPurchaseModeMessage.java b/src/protocol/swg/EnterTicketPurchaseModeMessage.java index 8ba42533..0287c55c 100644 --- a/src/protocol/swg/EnterTicketPurchaseModeMessage.java +++ b/src/protocol/swg/EnterTicketPurchaseModeMessage.java @@ -36,6 +36,14 @@ public class EnterTicketPurchaseModeMessage extends SWGMessage { private String planetName; private String cityName; private SWGObject player; + private boolean isItv = false; + + public EnterTicketPurchaseModeMessage(String planetName, String cityName, SWGObject player, boolean isItv) { + this.planetName = planetName; + this.cityName = cityName; + this.player = player; + this.isItv = true; + } public EnterTicketPurchaseModeMessage(String planetName, String cityName, SWGObject player) { this.planetName = planetName; @@ -51,9 +59,12 @@ public class EnterTicketPurchaseModeMessage extends SWGMessage { @Override public IoBuffer serialize() { final NGECore core = NGECore.getInstance(); - TravelPoint nearestPoint = core.travelService.getNearestTravelPoint(player); - IoBuffer result = IoBuffer.allocate(11 + planetName.length() + nearestPoint.getName().length()).order(ByteOrder.LITTLE_ENDIAN); + TravelPoint nearestPoint = null; + if (!isItv) nearestPoint = core.travelService.getNearestTravelPoint(player); + else nearestPoint = core.travelService.getNearestTravelPoint(player, 5120); + + IoBuffer result = IoBuffer.allocate(11 + planetName.length() + nearestPoint.getName().length()).order(ByteOrder.LITTLE_ENDIAN); result.putShort((short) 3); result.putInt(0x904DAE1A); diff --git a/src/protocol/swg/EnterTicketPurchaseModeMessageItv.java b/src/protocol/swg/EnterTicketPurchaseModeMessageItv.java deleted file mode 100644 index 89677e95..00000000 --- a/src/protocol/swg/EnterTicketPurchaseModeMessageItv.java +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2013 - * - * This File is part of NGECore2. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - * - * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. - * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. - ******************************************************************************/ -package protocol.swg; - -import java.nio.ByteOrder; - -import main.NGECore; - -import org.apache.mina.core.buffer.IoBuffer; - -import services.travel.TravelPoint; -import engine.resources.objects.SWGObject; - -@SuppressWarnings("unused") -public class EnterTicketPurchaseModeMessageItv extends SWGMessage { - - private String planetName; - private String cityName; - private SWGObject player; - - public EnterTicketPurchaseModeMessageItv(String planetName, String cityName, SWGObject player) { - this.planetName = planetName; - this.cityName = cityName; - this.player = player; - } - - @Override - public void deserialize(IoBuffer data) { - - } - - @Override - public IoBuffer serialize() { - final NGECore core = NGECore.getInstance(); - TravelPoint nearestPoint = core.travelService.getNearestTravelPoint(player, 5120); - IoBuffer result = IoBuffer.allocate(11 + planetName.length() + nearestPoint.getName().length()).order(ByteOrder.LITTLE_ENDIAN); - - - result.putShort((short) 3); - result.putInt(0x904DAE1A); - - result.put(getAsciiString(planetName)); - result.put(getAsciiString(nearestPoint.getName())); - - - result.put((byte) 0); - - return result.flip(); - } - -} From 3027a60809d943c11963f128887bd10ee0fb6859 Mon Sep 17 00:00:00 2001 From: tacef Date: Wed, 6 Aug 2014 13:55:18 +0200 Subject: [PATCH 07/51] Added Corellian Lairs Fixed Typo in existing lairs Fixed Typo in grassland slice hound npc script --- scripts/mobiles/corellia/grassland_slice_hound.py | 2 +- scripts/mobiles/lairs/corellia_bageraset_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_bageraset_lair_2.py | 10 ++++++++++ scripts/mobiles/lairs/corellia_canoid_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_canoid_lair_2.py | 11 +++++++++++ scripts/mobiles/lairs/corellia_carrion_spat_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_carrion_spat_lair_2.py | 10 ++++++++++ .../lairs/corellia_corellian_butterfly_lair_1.py | 11 +++++++++++ .../lairs/corellia_corellian_butterfly_lair_2.py | 11 +++++++++++ .../lairs/corellia_corellian_butterfly_lair_3.py | 10 ++++++++++ .../lairs/corellia_corellian_butterfly_lair_4.py | 11 +++++++++++ scripts/mobiles/lairs/corellia_crazed_durni_lair_1.py | 9 +++++++++ .../lairs/corellia_crimson_sand_panther_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_dalyrake_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_dalyrake_lair_2.py | 10 ++++++++++ .../mobiles/lairs/corellia_deranged_wrix_lair_1.py | 9 +++++++++ .../mobiles/lairs/corellia_devil_gulginaw_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_dire_cat_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_dire_cat_lair_2.py | 10 ++++++++++ .../mobiles/lairs/corellia_diseased_vrelt_lair_1.py | 10 ++++++++++ .../mobiles/lairs/corellia_diseased_vrelt_lair_2.py | 9 +++++++++ .../mobiles/lairs/corellia_diseased_vrelt_lair_3.py | 10 ++++++++++ .../mobiles/lairs/corellia_diseased_vrelt_lair_4.py | 9 +++++++++ .../mobiles/lairs/corellia_diseased_vrelt_lair_5.py | 10 ++++++++++ .../mobiles/lairs/corellia_diseased_vrelt_lair_6.py | 10 ++++++++++ .../mobiles/lairs/corellia_diseased_vrelt_lair_7.py | 10 ++++++++++ .../mobiles/lairs/corellia_diseased_vrelt_lair_8.py | 9 +++++++++ scripts/mobiles/lairs/corellia_durni_warren_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_durni_warren_lair_2.py | 10 ++++++++++ scripts/mobiles/lairs/corellia_forest_murra_lair_1.py | 9 +++++++++ .../lairs/corellia_forest_slice_hound_lair_1.py | 9 +++++++++ .../lairs/corellia_giant_carrion_spat_lair_1.py | 9 +++++++++ .../mobiles/lairs/corellia_giant_dalyrake_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_giant_gubbur_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_grand_wrix_lair_1.py | 9 +++++++++ .../lairs/corellia_grassland_slice_hound_lair_1.py | 10 ++++++++++ .../lairs/corellia_greater_gulginaw_nest_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_gronda_lair_1.py | 10 ++++++++++ scripts/mobiles/lairs/corellia_gubbur_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_gulginaw_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_gurrcat_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_humbaba_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_krahbu_lair_1.py | 9 +++++++++ .../mobiles/lairs/corellia_mountain_murra_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_murra_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_paralope_lair_1.py | 9 +++++++++ .../lairs/corellia_plumed_rasp_eyrie_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_plumed_rasp_lair_1.py | 9 +++++++++ .../mobiles/lairs/corellia_razor_cat_pride_lair_1.py | 10 ++++++++++ .../mobiles/lairs/corellia_razor_cat_pride_lair_2.py | 11 +++++++++++ .../mobiles/lairs/corellia_savage_humbaba_lair_1.py | 9 +++++++++ .../mobiles/lairs/corellia_scavenger_rat_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_sharnaff_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_sharnaff_lair_2.py | 11 +++++++++++ scripts/mobiles/lairs/corellia_slice_hound_lair_1.py | 10 ++++++++++ .../mobiles/lairs/corellia_swamp_gurrcat_lair_1.py | 9 +++++++++ .../mobiles/lairs/corellia_swamp_humbaba_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_tabage_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_tabage_lair_2.py | 9 +++++++++ .../mobiles/lairs/corellia_violent_krahbu_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_vrelt_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_vynock_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_war_gronda_lair_1.py | 9 +++++++++ .../mobiles/lairs/corellia_wooded_paralope_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/corellia_wrix_lair_1.py | 9 +++++++++ scripts/mobiles/lairs/dantooine_bol_lair_1.py | 4 +++- scripts/mobiles/lairs/dantooine_graul_lair_1.py | 4 +++- .../mobiles/lairs/dantooine_graul_mauler_lair_1.py | 3 ++- scripts/mobiles/lairs/dantooine_huurton_lair_1.py | 4 +++- scripts/mobiles/lairs/dantooine_huurton_lair_2.py | 4 +++- scripts/mobiles/lairs/dantooine_piket_lair_1.py | 3 ++- .../mobiles/lairs/dantooine_piket_longhorn_lair_1.py | 4 +++- .../lairs/dantooine_piket_plains_walker_lair_1.py | 4 +++- scripts/mobiles/lairs/dantooine_quenker_lair_1.py | 4 +++- scripts/mobiles/lairs/dantooine_thune_lair_1.py | 4 +++- scripts/mobiles/lairs/dantooine_voritor_lair_1.py | 3 ++- scripts/mobiles/lairs/dantooine_voritor_lair_2.py | 4 +++- .../mobiles/lairs/naboo_chuba_lair_neutral_small.py | 3 ++- .../lairs/tatooine_kreetle_lair_neutral_small.py | 3 ++- .../lairs/tatooine_womprat_lair_neutral_small.py | 3 ++- 80 files changed, 643 insertions(+), 16 deletions(-) create mode 100644 scripts/mobiles/lairs/corellia_bageraset_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_bageraset_lair_2.py create mode 100644 scripts/mobiles/lairs/corellia_canoid_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_canoid_lair_2.py create mode 100644 scripts/mobiles/lairs/corellia_carrion_spat_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_carrion_spat_lair_2.py create mode 100644 scripts/mobiles/lairs/corellia_corellian_butterfly_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_corellian_butterfly_lair_2.py create mode 100644 scripts/mobiles/lairs/corellia_corellian_butterfly_lair_3.py create mode 100644 scripts/mobiles/lairs/corellia_corellian_butterfly_lair_4.py create mode 100644 scripts/mobiles/lairs/corellia_crazed_durni_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_crimson_sand_panther_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_dalyrake_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_dalyrake_lair_2.py create mode 100644 scripts/mobiles/lairs/corellia_deranged_wrix_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_devil_gulginaw_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_dire_cat_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_dire_cat_lair_2.py create mode 100644 scripts/mobiles/lairs/corellia_diseased_vrelt_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_diseased_vrelt_lair_2.py create mode 100644 scripts/mobiles/lairs/corellia_diseased_vrelt_lair_3.py create mode 100644 scripts/mobiles/lairs/corellia_diseased_vrelt_lair_4.py create mode 100644 scripts/mobiles/lairs/corellia_diseased_vrelt_lair_5.py create mode 100644 scripts/mobiles/lairs/corellia_diseased_vrelt_lair_6.py create mode 100644 scripts/mobiles/lairs/corellia_diseased_vrelt_lair_7.py create mode 100644 scripts/mobiles/lairs/corellia_diseased_vrelt_lair_8.py create mode 100644 scripts/mobiles/lairs/corellia_durni_warren_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_durni_warren_lair_2.py create mode 100644 scripts/mobiles/lairs/corellia_forest_murra_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_forest_slice_hound_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_giant_carrion_spat_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_giant_dalyrake_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_giant_gubbur_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_grand_wrix_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_grassland_slice_hound_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_greater_gulginaw_nest_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_gronda_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_gubbur_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_gulginaw_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_gurrcat_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_humbaba_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_krahbu_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_mountain_murra_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_murra_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_paralope_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_plumed_rasp_eyrie_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_plumed_rasp_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_razor_cat_pride_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_razor_cat_pride_lair_2.py create mode 100644 scripts/mobiles/lairs/corellia_savage_humbaba_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_scavenger_rat_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_sharnaff_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_sharnaff_lair_2.py create mode 100644 scripts/mobiles/lairs/corellia_slice_hound_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_swamp_gurrcat_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_swamp_humbaba_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_tabage_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_tabage_lair_2.py create mode 100644 scripts/mobiles/lairs/corellia_violent_krahbu_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_vrelt_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_vynock_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_war_gronda_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_wooded_paralope_lair_1.py create mode 100644 scripts/mobiles/lairs/corellia_wrix_lair_1.py diff --git a/scripts/mobiles/corellia/grassland_slice_hound.py b/scripts/mobiles/corellia/grassland_slice_hound.py index 62709da1..e697cbd6 100644 --- a/scripts/mobiles/corellia/grassland_slice_hound.py +++ b/scripts/mobiles/corellia/grassland_slice_hound.py @@ -44,5 +44,5 @@ def addTemplate(core): mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) - core.spawnService.addMobileTemplate('gassland_slice_hound', mobileTemplate) + core.spawnService.addMobileTemplate('grassland_slice_hound', mobileTemplate) return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_bageraset_lair_1.py b/scripts/mobiles/lairs/corellia_bageraset_lair_1.py new file mode 100644 index 00000000..190463f2 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_bageraset_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('bageraset') + + core.spawnService.addLairTemplate('corellia_bageraset_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_leaf_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_bageraset_lair_2.py b/scripts/mobiles/lairs/corellia_bageraset_lair_2.py new file mode 100644 index 00000000..7416ec37 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_bageraset_lair_2.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('bageraset') + mobileTemplates.add('bageraset_bruiser') + + core.spawnService.addLairTemplate('corellia_bageraset_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_leaf_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_canoid_lair_1.py b/scripts/mobiles/lairs/corellia_canoid_lair_1.py new file mode 100644 index 00000000..214118ba --- /dev/null +++ b/scripts/mobiles/lairs/corellia_canoid_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('canoid') + + core.spawnService.addLairTemplate('corellia_canoid_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_brambles_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_canoid_lair_2.py b/scripts/mobiles/lairs/corellia_canoid_lair_2.py new file mode 100644 index 00000000..3e1ec9d7 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_canoid_lair_2.py @@ -0,0 +1,11 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('canoid') + mobileTemplates.add('canoid_hunter') + mobileTemplates.add('canoid_pack_leader') + + core.spawnService.addLairTemplate('corellia_canoid_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_brambles_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_carrion_spat_lair_1.py b/scripts/mobiles/lairs/corellia_carrion_spat_lair_1.py new file mode 100644 index 00000000..63bf9eb6 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_carrion_spat_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('carrion_spat') + + core.spawnService.addLairTemplate('corellia_carrion_spat_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_nest_large_evil_fire_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_carrion_spat_lair_2.py b/scripts/mobiles/lairs/corellia_carrion_spat_lair_2.py new file mode 100644 index 00000000..a43d423d --- /dev/null +++ b/scripts/mobiles/lairs/corellia_carrion_spat_lair_2.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('carrion_spat') + mobileTemplates.add('carrion_spat_corpsereaver') + + core.spawnService.addLairTemplate('corellia_carrion_spat_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_nest_large_evil_fire_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_corellian_butterfly_lair_1.py b/scripts/mobiles/lairs/corellia_corellian_butterfly_lair_1.py new file mode 100644 index 00000000..d1203981 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_corellian_butterfly_lair_1.py @@ -0,0 +1,11 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('corellian_butterfly') + mobileTemplates.add('corellian_butterfly_monarch') + mobileTemplates.add('corellian_butterfly_worker') + + core.spawnService.addLairTemplate('corellia_corellian_butterfly_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_insecthill_small_evil_fire_green.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_corellian_butterfly_lair_2.py b/scripts/mobiles/lairs/corellia_corellian_butterfly_lair_2.py new file mode 100644 index 00000000..2c0b447b --- /dev/null +++ b/scripts/mobiles/lairs/corellia_corellian_butterfly_lair_2.py @@ -0,0 +1,11 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('blood_thirsty_monarch') + mobileTemplates.add('corellian_butterfly_monarch') + mobileTemplates.add('corellian_butterfly_warrior') + + core.spawnService.addLairTemplate('corellia_corellian_butterfly_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_insecthill_small_fog_red.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_corellian_butterfly_lair_3.py b/scripts/mobiles/lairs/corellia_corellian_butterfly_lair_3.py new file mode 100644 index 00000000..012c38db --- /dev/null +++ b/scripts/mobiles/lairs/corellia_corellian_butterfly_lair_3.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('corellian_butterfly') + mobileTemplates.add('corellian_butterfly_warrior') + + core.spawnService.addLairTemplate('corellia_corellian_butterfly_lair_3', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_insecthill_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_corellian_butterfly_lair_4.py b/scripts/mobiles/lairs/corellia_corellian_butterfly_lair_4.py new file mode 100644 index 00000000..ab0ba8c0 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_corellian_butterfly_lair_4.py @@ -0,0 +1,11 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('corellian_butterfly_worker') + mobileTemplates.add('corellian_butterfly_defender') + mobileTemplates.add('corellian_butterfly_drone') + + core.spawnService.addLairTemplate('corellia_corellian_butterfly_lair_4', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_insecthill_small_evil_fire_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_crazed_durni_lair_1.py b/scripts/mobiles/lairs/corellia_crazed_durni_lair_1.py new file mode 100644 index 00000000..e70abe68 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_crazed_durni_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('crazed_durni') + + core.spawnService.addLairTemplate('corellia_crazed_durni_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_warren_small_fog_gray.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_crimson_sand_panther_lair_1.py b/scripts/mobiles/lairs/corellia_crimson_sand_panther_lair_1.py new file mode 100644 index 00000000..76e1a71a --- /dev/null +++ b/scripts/mobiles/lairs/corellia_crimson_sand_panther_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('crimson_razor_cat') + + core.spawnService.addLairTemplate('corellia_crimson_sand_panther_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rock_shelter_large_fog_red.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_dalyrake_lair_1.py b/scripts/mobiles/lairs/corellia_dalyrake_lair_1.py new file mode 100644 index 00000000..871fb920 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_dalyrake_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('dalyrake') + + core.spawnService.addLairTemplate('corellia_dalyrake_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_mound_large.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_dalyrake_lair_2.py b/scripts/mobiles/lairs/corellia_dalyrake_lair_2.py new file mode 100644 index 00000000..5830bcba --- /dev/null +++ b/scripts/mobiles/lairs/corellia_dalyrake_lair_2.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('dalyrake_martriarch') + mobileTemplates.add('dalyrake_harvester') + + core.spawnService.addLairTemplate('corellia_dalyrake_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_nest_large.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_deranged_wrix_lair_1.py b/scripts/mobiles/lairs/corellia_deranged_wrix_lair_1.py new file mode 100644 index 00000000..9edab76e --- /dev/null +++ b/scripts/mobiles/lairs/corellia_deranged_wrix_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('deranged_wrix') + + core.spawnService.addLairTemplate('corellia_deranged_wrix_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rocks_large_evil_fire_red.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_devil_gulginaw_lair_1.py b/scripts/mobiles/lairs/corellia_devil_gulginaw_lair_1.py new file mode 100644 index 00000000..7cec4fad --- /dev/null +++ b/scripts/mobiles/lairs/corellia_devil_gulginaw_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('devil_gulginaw') + + core.spawnService.addLairTemplate('corellia_devil_gulginaw_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_bones_evil_fire_redpoi_all_lair_bones_evil_fire_red.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_dire_cat_lair_1.py b/scripts/mobiles/lairs/corellia_dire_cat_lair_1.py new file mode 100644 index 00000000..f362da6a --- /dev/null +++ b/scripts/mobiles/lairs/corellia_dire_cat_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('dire_cat') + + core.spawnService.addLairTemplate('corellia_dire_cat_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rocks_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_dire_cat_lair_2.py b/scripts/mobiles/lairs/corellia_dire_cat_lair_2.py new file mode 100644 index 00000000..95c03604 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_dire_cat_lair_2.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('dire_cat') + mobileTemplates.add('feral_orphan') + + core.spawnService.addLairTemplate('corellia_dire_cat_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rocks_small_evil_fire_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_1.py b/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_1.py new file mode 100644 index 00000000..6635cfc0 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_1.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('diseased_vrelt') + mobileTemplates.add('diseased_vrelt_matriarch') + + core.spawnService.addLairTemplate('corellia_diseased_vrelt_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_garbage_small_evil_fire_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_2.py b/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_2.py new file mode 100644 index 00000000..613570a4 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_2.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('diseased_vrelt') + + core.spawnService.addLairTemplate('corellia_diseased_vrelt_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_garbage_small_evil_fire_green.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_3.py b/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_3.py new file mode 100644 index 00000000..649dd2fb --- /dev/null +++ b/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_3.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('diseased_vrelt') + mobileTemplates.add('noxious_vrelt_scavenger') + + core.spawnService.addLairTemplate('corellia_diseased_vrelt_lair_3', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_garbage_small_fog_mustard.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_4.py b/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_4.py new file mode 100644 index 00000000..8e645a8d --- /dev/null +++ b/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_4.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('noxious_vrelt_scavenger') + + core.spawnService.addLairTemplate('corellia_diseased_vrelt_lair_4', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_garbage_small_fog_green.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_5.py b/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_5.py new file mode 100644 index 00000000..e77375e6 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_5.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('diseased_vrelt') + mobileTemplates.add('diseased_vrelt_matriarch') + + core.spawnService.addLairTemplate('corellia_diseased_vrelt_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_garbage_small_fog_gray.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_6.py b/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_6.py new file mode 100644 index 00000000..1617ec61 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_6.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('diseased_vrelt') + mobileTemplates.add('diseased_vrelt_matriarch') + + core.spawnService.addLairTemplate('corellia_diseased_vrelt_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_garbage_small_fog_mustard.iff') + return diff --git a/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_7.py b/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_7.py new file mode 100644 index 00000000..bc6f56ca --- /dev/null +++ b/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_7.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('diseased_vrelt') + mobileTemplates.add('diseased_vrelt_matriarch') + + core.spawnService.addLairTemplate('corellia_diseased_vrelt_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_garbage_small_fog_green.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_8.py b/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_8.py new file mode 100644 index 00000000..b6682cb2 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_diseased_vrelt_lair_8.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('diseased_vrelt') + + core.spawnService.addLairTemplate('corellia_diseased_vrelt_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_garbage_small_evil_fire_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_durni_warren_lair_1.py b/scripts/mobiles/lairs/corellia_durni_warren_lair_1.py new file mode 100644 index 00000000..721a5b3c --- /dev/null +++ b/scripts/mobiles/lairs/corellia_durni_warren_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('durni') + + core.spawnService.addLairTemplate('corellia_durni_warren_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_warren_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_durni_warren_lair_2.py b/scripts/mobiles/lairs/corellia_durni_warren_lair_2.py new file mode 100644 index 00000000..2fc3d415 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_durni_warren_lair_2.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('durni') + mobileTemplates.add('vehement_warrior') + + core.spawnService.addLairTemplate('corellia_durni_warren_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_warren_small_evil_fire_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_forest_murra_lair_1.py b/scripts/mobiles/lairs/corellia_forest_murra_lair_1.py new file mode 100644 index 00000000..ddfe6a0a --- /dev/null +++ b/scripts/mobiles/lairs/corellia_forest_murra_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('forest_murra') + + core.spawnService.addLairTemplate('corellia_forest_murra_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_dead_log_small_evil_fire_green.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_forest_slice_hound_lair_1.py b/scripts/mobiles/lairs/corellia_forest_slice_hound_lair_1.py new file mode 100644 index 00000000..95e39849 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_forest_slice_hound_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('forest_slice_hound') + + core.spawnService.addLairTemplate('corellia_forest_slice_hound_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_bones_evil_fire_green.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_giant_carrion_spat_lair_1.py b/scripts/mobiles/lairs/corellia_giant_carrion_spat_lair_1.py new file mode 100644 index 00000000..e5906408 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_giant_carrion_spat_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('giant_carrion_spat') + + core.spawnService.addLairTemplate('corellia_giant_carrion_spat_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_nest_large_evil_fire_red.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_giant_dalyrake_lair_1.py b/scripts/mobiles/lairs/corellia_giant_dalyrake_lair_1.py new file mode 100644 index 00000000..d64384f0 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_giant_dalyrake_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('giant_dalyrake') + + core.spawnService.addLairTemplate('corellia_giant_dalyrake_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_mound_large_evil_fire_green.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_giant_gubbur_lair_1.py b/scripts/mobiles/lairs/corellia_giant_gubbur_lair_1.py new file mode 100644 index 00000000..44d5d5bd --- /dev/null +++ b/scripts/mobiles/lairs/corellia_giant_gubbur_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('giant_gubbur') + + core.spawnService.addLairTemplate('corellia_giant_gubbur_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_leaf_small_evil_fire_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_grand_wrix_lair_1.py b/scripts/mobiles/lairs/corellia_grand_wrix_lair_1.py new file mode 100644 index 00000000..8e66fb6c --- /dev/null +++ b/scripts/mobiles/lairs/corellia_grand_wrix_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('grand_wrix') + + core.spawnService.addLairTemplate('corellia_grand_wrix_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rocks_large_evil_fire_green.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_grassland_slice_hound_lair_1.py b/scripts/mobiles/lairs/corellia_grassland_slice_hound_lair_1.py new file mode 100644 index 00000000..954062f4 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_grassland_slice_hound_lair_1.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('grassland_slice_hound') + mobileTemplates.add('female_grassland_slice_hound') + + core.spawnService.addLairTemplate('corellia_grassland_slice_hound_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_bones_large_evil_fire_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_greater_gulginaw_nest_lair_1.py b/scripts/mobiles/lairs/corellia_greater_gulginaw_nest_lair_1.py new file mode 100644 index 00000000..bd8bc324 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_greater_gulginaw_nest_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('greater_gulginaw') + + core.spawnService.addLairTemplate('corellia_greater_gulginaw_nest_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_bones_evil_fire_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_gronda_lair_1.py b/scripts/mobiles/lairs/corellia_gronda_lair_1.py new file mode 100644 index 00000000..66a08f7d --- /dev/null +++ b/scripts/mobiles/lairs/corellia_gronda_lair_1.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('gronda') + mobileTemplates.add('dwarf_gronda') + + core.spawnService.addLairTemplate('corellia_gronda_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rocks_large.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_gubbur_lair_1.py b/scripts/mobiles/lairs/corellia_gubbur_lair_1.py new file mode 100644 index 00000000..c494d670 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_gubbur_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('gubbur') + + core.spawnService.addLairTemplate('corellia_gubbur_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_leaf_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_gulginaw_lair_1.py b/scripts/mobiles/lairs/corellia_gulginaw_lair_1.py new file mode 100644 index 00000000..e0963caf --- /dev/null +++ b/scripts/mobiles/lairs/corellia_gulginaw_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('gulginaw') + + core.spawnService.addLairTemplate('corellia_gulginaw_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rock_shelter_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_gurrcat_lair_1.py b/scripts/mobiles/lairs/corellia_gurrcat_lair_1.py new file mode 100644 index 00000000..698cffef --- /dev/null +++ b/scripts/mobiles/lairs/corellia_gurrcat_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('gurrcat') + + core.spawnService.addLairTemplate('corellia_gurrcat_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_bones.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_humbaba_lair_1.py b/scripts/mobiles/lairs/corellia_humbaba_lair_1.py new file mode 100644 index 00000000..b27337e2 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_humbaba_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('humbaba') + + core.spawnService.addLairTemplate('corellia_humbaba_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_brambles_large.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_krahbu_lair_1.py b/scripts/mobiles/lairs/corellia_krahbu_lair_1.py new file mode 100644 index 00000000..a563fe60 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_krahbu_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('krahbu') + + core.spawnService.addLairTemplate('corellia_krahbu_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_thicket_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_mountain_murra_lair_1.py b/scripts/mobiles/lairs/corellia_mountain_murra_lair_1.py new file mode 100644 index 00000000..74117320 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_mountain_murra_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('mountain_murra') + + core.spawnService.addLairTemplate('corellia_mountain_murra_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_dead_log_small_evil_fire_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_murra_lair_1.py b/scripts/mobiles/lairs/corellia_murra_lair_1.py new file mode 100644 index 00000000..29f569d0 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_murra_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('murra') + + core.spawnService.addLairTemplate('corellia_murra_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_dead_log_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_paralope_lair_1.py b/scripts/mobiles/lairs/corellia_paralope_lair_1.py new file mode 100644 index 00000000..e09caee7 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_paralope_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('paralope') + + core.spawnService.addLairTemplate('corellia_paralope_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_thicket_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_plumed_rasp_eyrie_lair_1.py b/scripts/mobiles/lairs/corellia_plumed_rasp_eyrie_lair_1.py new file mode 100644 index 00000000..91214c21 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_plumed_rasp_eyrie_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('majestic_plumed_rasp') + + core.spawnService.addLairTemplate('corellia_plumed_rasp_eyrie_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_nest_small_evil_fire_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_plumed_rasp_lair_1.py b/scripts/mobiles/lairs/corellia_plumed_rasp_lair_1.py new file mode 100644 index 00000000..a731a40f --- /dev/null +++ b/scripts/mobiles/lairs/corellia_plumed_rasp_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('plumed_rasp') + + core.spawnService.addLairTemplate('corellia_plumed_rasp_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_nest_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_razor_cat_pride_lair_1.py b/scripts/mobiles/lairs/corellia_razor_cat_pride_lair_1.py new file mode 100644 index 00000000..b89d4d16 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_razor_cat_pride_lair_1.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('razor_cat') + mobileTemplates.add('female_razor_cat') + + core.spawnService.addLairTemplate('corellia_razor_cat_pride_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rock_shelter_large.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_razor_cat_pride_lair_2.py b/scripts/mobiles/lairs/corellia_razor_cat_pride_lair_2.py new file mode 100644 index 00000000..fd2edaad --- /dev/null +++ b/scripts/mobiles/lairs/corellia_razor_cat_pride_lair_2.py @@ -0,0 +1,11 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('razor_cat') + mobileTemplates.add('female_razor_cat') + mobileTemplates.add('razor_cat_eviscerator') + + core.spawnService.addLairTemplate('corellia_razor_cat_pride_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rock_shelter_large_evil_fire_red.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_savage_humbaba_lair_1.py b/scripts/mobiles/lairs/corellia_savage_humbaba_lair_1.py new file mode 100644 index 00000000..70263416 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_savage_humbaba_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('savage_humbaba') + + core.spawnService.addLairTemplate('corellia_savage_humbaba_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_brambles_large_evil_fire_red.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_scavenger_rat_lair_1.py b/scripts/mobiles/lairs/corellia_scavenger_rat_lair_1.py new file mode 100644 index 00000000..85d0f31f --- /dev/null +++ b/scripts/mobiles/lairs/corellia_scavenger_rat_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('scavenger_rat') + + core.spawnService.addLairTemplate('corellia_scavenger_rat_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_garbage_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_sharnaff_lair_1.py b/scripts/mobiles/lairs/corellia_sharnaff_lair_1.py new file mode 100644 index 00000000..e0cb4bd8 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_sharnaff_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('sharnaff') + + core.spawnService.addLairTemplate('corellia_sharnaff_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rocks_large.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_sharnaff_lair_2.py b/scripts/mobiles/lairs/corellia_sharnaff_lair_2.py new file mode 100644 index 00000000..efc1ae28 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_sharnaff_lair_2.py @@ -0,0 +1,11 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('sharnaff') + mobileTemplates.add('sharnaff_reckless_ravager') + mobileTemplates.add('sharnaff_bull') + + core.spawnService.addLairTemplate('corellia_sharnaff_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rocks_large_evil_fire_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_slice_hound_lair_1.py b/scripts/mobiles/lairs/corellia_slice_hound_lair_1.py new file mode 100644 index 00000000..f13589a4 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_slice_hound_lair_1.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('female_slice_hound') + mobileTemplates.add('slice_hound') + + core.spawnService.addLairTemplate('corellia_grassland_slice_hound_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_bones.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_swamp_gurrcat_lair_1.py b/scripts/mobiles/lairs/corellia_swamp_gurrcat_lair_1.py new file mode 100644 index 00000000..baa213cc --- /dev/null +++ b/scripts/mobiles/lairs/corellia_swamp_gurrcat_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('gulginaw') + + core.spawnService.addLairTemplate('corellia_gulginaw_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_bones.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_swamp_humbaba_lair_1.py b/scripts/mobiles/lairs/corellia_swamp_humbaba_lair_1.py new file mode 100644 index 00000000..5f5c5074 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_swamp_humbaba_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('swamp_humbaba') + + core.spawnService.addLairTemplate('corellia_swamp_humbaba_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_brambles_large_fog_red.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_tabage_lair_1.py b/scripts/mobiles/lairs/corellia_tabage_lair_1.py new file mode 100644 index 00000000..6c292c2d --- /dev/null +++ b/scripts/mobiles/lairs/corellia_tabage_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('tabage') + + core.spawnService.addLairTemplate('corellia_tabage_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_brambles_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_tabage_lair_2.py b/scripts/mobiles/lairs/corellia_tabage_lair_2.py new file mode 100644 index 00000000..0707c004 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_tabage_lair_2.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('tabage_scavenger') + + core.spawnService.addLairTemplate('corellia_tabage_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_brambles_small_evil_fire_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_violent_krahbu_lair_1.py b/scripts/mobiles/lairs/corellia_violent_krahbu_lair_1.py new file mode 100644 index 00000000..c9a90909 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_violent_krahbu_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('violent_krahbu') + + core.spawnService.addLairTemplate('corellia_krahbu_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_thicket_small_evil_fire_red..iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_vrelt_lair_1.py b/scripts/mobiles/lairs/corellia_vrelt_lair_1.py new file mode 100644 index 00000000..04053b94 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_vrelt_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('vrelt') + + core.spawnService.addLairTemplate('corellia_vrelt_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_garbage_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_vynock_lair_1.py b/scripts/mobiles/lairs/corellia_vynock_lair_1.py new file mode 100644 index 00000000..749d161d --- /dev/null +++ b/scripts/mobiles/lairs/corellia_vynock_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('vynock') + + core.spawnService.addLairTemplate('corellia_vynock_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_nest_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_war_gronda_lair_1.py b/scripts/mobiles/lairs/corellia_war_gronda_lair_1.py new file mode 100644 index 00000000..86e0c220 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_war_gronda_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('war_gronda') + + core.spawnService.addLairTemplate('corellia_war_gronda_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rocks_large_evil_fire_green.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_wooded_paralope_lair_1.py b/scripts/mobiles/lairs/corellia_wooded_paralope_lair_1.py new file mode 100644 index 00000000..fd1356b1 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_wooded_paralope_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('wooded_paralope') + + core.spawnService.addLairTemplate('corellia_wooded_paralope_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_thicket_small_evil_fire_green.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/corellia_wrix_lair_1.py b/scripts/mobiles/lairs/corellia_wrix_lair_1.py new file mode 100644 index 00000000..c61b1eb8 --- /dev/null +++ b/scripts/mobiles/lairs/corellia_wrix_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('wrix') + + core.spawnService.addLairTemplate('corellia_wrix_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rocks_large.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_bol_lair_1.py b/scripts/mobiles/lairs/dantooine_bol_lair_1.py index 953c80f5..68c895b0 100644 --- a/scripts/mobiles/lairs/dantooine_bol_lair_1.py +++ b/scripts/mobiles/lairs/dantooine_bol_lair_1.py @@ -6,4 +6,6 @@ def addTemplate(core): mobileTemplates.add('lesser_plains_bol') mobileTemplates.add('seething_bol_crusher') mobileTemplates.add('swift_charging_bol') - core.spawnService.addLairTemplate('dantooine_bol_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') \ No newline at end of file + + core.spawnService.addLairTemplate('dantooine_bol_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_graul_lair_1.py b/scripts/mobiles/lairs/dantooine_graul_lair_1.py index 953c80f5..68c895b0 100644 --- a/scripts/mobiles/lairs/dantooine_graul_lair_1.py +++ b/scripts/mobiles/lairs/dantooine_graul_lair_1.py @@ -6,4 +6,6 @@ def addTemplate(core): mobileTemplates.add('lesser_plains_bol') mobileTemplates.add('seething_bol_crusher') mobileTemplates.add('swift_charging_bol') - core.spawnService.addLairTemplate('dantooine_bol_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') \ No newline at end of file + + core.spawnService.addLairTemplate('dantooine_bol_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_graul_mauler_lair_1.py b/scripts/mobiles/lairs/dantooine_graul_mauler_lair_1.py index dfad5707..7de29fa4 100644 --- a/scripts/mobiles/lairs/dantooine_graul_mauler_lair_1.py +++ b/scripts/mobiles/lairs/dantooine_graul_mauler_lair_1.py @@ -2,4 +2,5 @@ import sys from java.util import Vector def addTemplate(core): - core.spawnService.addLairTemplate('dantooine_graul_mauler_lair_1', 'graul_mauler', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') \ No newline at end of file + core.spawnService.addLairTemplate('dantooine_graul_mauler_lair_1', 'graul_mauler', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_huurton_lair_1.py b/scripts/mobiles/lairs/dantooine_huurton_lair_1.py index 68fe6e33..6b3e89e2 100644 --- a/scripts/mobiles/lairs/dantooine_huurton_lair_1.py +++ b/scripts/mobiles/lairs/dantooine_huurton_lair_1.py @@ -6,4 +6,6 @@ def addTemplate(core): mobileTemplates.add('huurton') mobileTemplates.add('huurton_howler') mobileTemplates.add('huurton_matron') - core.spawnService.addLairTemplate('dantooine_huurton_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') \ No newline at end of file + + core.spawnService.addLairTemplate('dantooine_huurton_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_huurton_lair_2.py b/scripts/mobiles/lairs/dantooine_huurton_lair_2.py index a94d718e..03eb120a 100644 --- a/scripts/mobiles/lairs/dantooine_huurton_lair_2.py +++ b/scripts/mobiles/lairs/dantooine_huurton_lair_2.py @@ -6,4 +6,6 @@ def addTemplate(core): mobileTemplates.add('huurton_pub') mobileTemplates.add('huurton_reaper') mobileTemplates.add('huurton_stalker') - core.spawnService.addLairTemplate('dantooine_huurton_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') \ No newline at end of file + + core.spawnService.addLairTemplate('dantooine_huurton_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_piket_lair_1.py b/scripts/mobiles/lairs/dantooine_piket_lair_1.py index a6ccd8a6..baff7b2c 100644 --- a/scripts/mobiles/lairs/dantooine_piket_lair_1.py +++ b/scripts/mobiles/lairs/dantooine_piket_lair_1.py @@ -1,4 +1,5 @@ import sys def addTemplate(core): - core.spawnService.addLairTemplate('dantooine_piket_lair_1', 'piket', 15, 'object/tangible/lair/base/shared_earthmound_light.iff') \ No newline at end of file + core.spawnService.addLairTemplate('dantooine_piket_lair_1', 'piket', 15, 'object/tangible/lair/base/shared_earthmound_light.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_piket_longhorn_lair_1.py b/scripts/mobiles/lairs/dantooine_piket_longhorn_lair_1.py index 1e24cef1..d84eb45b 100644 --- a/scripts/mobiles/lairs/dantooine_piket_longhorn_lair_1.py +++ b/scripts/mobiles/lairs/dantooine_piket_longhorn_lair_1.py @@ -6,4 +6,6 @@ def addTemplate(core): mobileTemplates.add('piket_longhorn') mobileTemplates.add('piket_longhorn_female') mobileTemplates.add('piket_plains_walker') - core.spawnService.addLairTemplate('dantooine_piket_longhorn_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_earthmound_light.iff') \ No newline at end of file + + core.spawnService.addLairTemplate('dantooine_piket_longhorn_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_earthmound_light.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_piket_plains_walker_lair_1.py b/scripts/mobiles/lairs/dantooine_piket_plains_walker_lair_1.py index b837fe8c..88314728 100644 --- a/scripts/mobiles/lairs/dantooine_piket_plains_walker_lair_1.py +++ b/scripts/mobiles/lairs/dantooine_piket_plains_walker_lair_1.py @@ -4,4 +4,6 @@ from java.util import Vector def addTemplate(core): mobileTemplates = Vector() mobileTemplates.add('piket_plains_walker') - core.spawnService.addLairTemplate('dantooine_piket_plains_walker_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_earthmound_light.iff') \ No newline at end of file + + core.spawnService.addLairTemplate('dantooine_piket_plains_walker_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_earthmound_light.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_quenker_lair_1.py b/scripts/mobiles/lairs/dantooine_quenker_lair_1.py index 4856d31e..3ebe353c 100644 --- a/scripts/mobiles/lairs/dantooine_quenker_lair_1.py +++ b/scripts/mobiles/lairs/dantooine_quenker_lair_1.py @@ -6,4 +6,6 @@ def addTemplate(core): mobileTemplates.add('quenker') mobileTemplates.add('quenker_ravager') mobileTemplates.add('quenker_relic_reaper') - core.spawnService.addLairTemplate('dantooine_quenker_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') \ No newline at end of file + + core.spawnService.addLairTemplate('dantooine_quenker_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_thune_lair_1.py b/scripts/mobiles/lairs/dantooine_thune_lair_1.py index 93962a7a..c5cea1ec 100644 --- a/scripts/mobiles/lairs/dantooine_thune_lair_1.py +++ b/scripts/mobiles/lairs/dantooine_thune_lair_1.py @@ -6,4 +6,6 @@ def addTemplate(core): mobileTemplates.add('thune') mobileTemplates.add('thune_grassland_guardian') mobileTemplates.add('thune_herd_leader') - core.spawnService.addLairTemplate('dantooine_thune_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_earthmound_light.iff') \ No newline at end of file + + core.spawnService.addLairTemplate('dantooine_thune_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_earthmound_light.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_voritor_lair_1.py b/scripts/mobiles/lairs/dantooine_voritor_lair_1.py index 8e1afee4..8fd066b5 100644 --- a/scripts/mobiles/lairs/dantooine_voritor_lair_1.py +++ b/scripts/mobiles/lairs/dantooine_voritor_lair_1.py @@ -2,4 +2,5 @@ import sys from java.util import Vector def addTemplate(core): - core.spawnService.addLairTemplate('dantooine_voritor_lair_1', 'voritor_lizard', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') \ No newline at end of file + core.spawnService.addLairTemplate('dantooine_voritor_lair_1', 'voritor_lizard', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_voritor_lair_2.py b/scripts/mobiles/lairs/dantooine_voritor_lair_2.py index 9352c9f3..976aa49d 100644 --- a/scripts/mobiles/lairs/dantooine_voritor_lair_2.py +++ b/scripts/mobiles/lairs/dantooine_voritor_lair_2.py @@ -8,4 +8,6 @@ def addTemplate(core): mobileTemplates.add('vexed_voritor_lizard') mobileTemplates.add('voritor_dasher') mobileTemplates.add('spiked_slasher') - core.spawnService.addLairTemplate('dantooine_voritor_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') \ No newline at end of file + + core.spawnService.addLairTemplate('dantooine_voritor_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/naboo_chuba_lair_neutral_small.py b/scripts/mobiles/lairs/naboo_chuba_lair_neutral_small.py index ac408bdb..8b1f2057 100644 --- a/scripts/mobiles/lairs/naboo_chuba_lair_neutral_small.py +++ b/scripts/mobiles/lairs/naboo_chuba_lair_neutral_small.py @@ -1,4 +1,5 @@ import sys def addTemplate(core): - core.spawnService.addLairTemplate('naboo_chuba_lair_neutral_small', 'chuba', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') \ No newline at end of file + core.spawnService.addLairTemplate('naboo_chuba_lair_neutral_small', 'chuba', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/tatooine_kreetle_lair_neutral_small.py b/scripts/mobiles/lairs/tatooine_kreetle_lair_neutral_small.py index 76e76ebe..c50994d2 100644 --- a/scripts/mobiles/lairs/tatooine_kreetle_lair_neutral_small.py +++ b/scripts/mobiles/lairs/tatooine_kreetle_lair_neutral_small.py @@ -1,4 +1,5 @@ import sys def addTemplate(core): - core.spawnService.addLairTemplate('tatooine_kreetle_lair_neutral_small', 'kreetle', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') \ No newline at end of file + core.spawnService.addLairTemplate('tatooine_kreetle_lair_neutral_small', 'kreetle', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/tatooine_womprat_lair_neutral_small.py b/scripts/mobiles/lairs/tatooine_womprat_lair_neutral_small.py index 60400598..6de07bc2 100644 --- a/scripts/mobiles/lairs/tatooine_womprat_lair_neutral_small.py +++ b/scripts/mobiles/lairs/tatooine_womprat_lair_neutral_small.py @@ -1,4 +1,5 @@ import sys def addTemplate(core): - core.spawnService.addLairTemplate('tatooine_womprat_lair_neutral_small', 'womprat', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') \ No newline at end of file + core.spawnService.addLairTemplate('tatooine_womprat_lair_neutral_small', 'womprat', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') + return \ No newline at end of file From 3b1568339d69dd5a6d3ae4003bc08c6994ce7a7d Mon Sep 17 00:00:00 2001 From: voronius Date: Wed, 6 Aug 2014 20:05:04 +0300 Subject: [PATCH 08/51] Fix for issue 136 Fix for issue 136. Inspiration buffs should no longer stack. --- scripts/commands/inspire.py | 3 +- src/services/BuffService.java | 74 ++++++++++++++++++++------ src/services/EntertainmentService.java | 9 +++- src/services/spawn/CreatureSkill.java | 65 ++++++++++++++++++++++ 4 files changed, 132 insertions(+), 19 deletions(-) create mode 100644 src/services/spawn/CreatureSkill.java diff --git a/scripts/commands/inspire.py b/scripts/commands/inspire.py index 282fe64a..15948e9e 100644 --- a/scripts/commands/inspire.py +++ b/scripts/commands/inspire.py @@ -10,13 +10,12 @@ def run(core, actor, target, commandString): if not playerObject or playerObject.getProfession() != "entertainer_1a": return - if target is None or actor.getObjectId() == target.getObjectId(): openBuffWindow = BuffBuilderStartMessage(actor.getObjectId(), actor.getObjectId(), actor.getObjectId()) objController = ObjControllerMessage(11, openBuffWindow) actor.getClient().getSession().write(objController.serialize()) return - + if target is None and commandString is not None: target = core.chatService.getObjectByFirstName(commandString) if target is None: diff --git a/src/services/BuffService.java b/src/services/BuffService.java index 4b7c533c..70a24957 100644 --- a/src/services/BuffService.java +++ b/src/services/BuffService.java @@ -143,7 +143,7 @@ public class BuffService implements INetworkDispatch { for (final Buff otherBuff : target.getBuffList()) { - if (buff.getGroup1().equals(otherBuff.getGroup1())) + if (buff.getGroup1().equals(otherBuff.getGroup1())) if (buff.getPriority() >= otherBuff.getPriority()) { if (buff.getBuffName().equals(otherBuff.getBuffName())) { @@ -164,11 +164,11 @@ public class BuffService implements INetworkDispatch { if (otherBuff.getRemainingDuration() > buff.getDuration() && otherBuff.getStacks() >= otherBuff.getMaxStacks()) return null; } - removeBuffFromCreature(target, otherBuff); break; - } else { - System.out.println("buff not added:" + buffName); + } else + { + return null; } } @@ -239,9 +239,12 @@ public class BuffService implements INetworkDispatch { } @SuppressWarnings("unused") - public void removeBuffFromCreature(CreatureObject creature, Buff buff) { + public void removeBuffFromCreature(CreatureObject creature, Buff buff) + { if(!creature.getBuffList().contains(buff)) - return; + { + return; + } DamageOverTime dot = creature.getDotByBuff(buff); if(dot != null) { dot.getTask().cancel(true); @@ -251,14 +254,40 @@ public class BuffService implements INetworkDispatch { /* if(FileUtilities.doesFileExist("scripts/buffs/" + buff.getBuffName() + ".py")) core.scriptService.callScript("scripts/buffs/", buff.getBuffName(), "remove", core, creature, buff); else {*/ - if(buff.getEffect1Name().length() > 0) core.skillModService.deductSkillMod(creature, buff.getEffect1Name(), (int) buff.getEffect1Value()); - if(buff.getEffect2Name().length() > 0) core.skillModService.deductSkillMod(creature, buff.getEffect2Name(), (int) buff.getEffect2Value()); - if(buff.getEffect1Name().length() > 0) core.skillModService.deductSkillMod(creature, buff.getEffect3Name(), (int) buff.getEffect3Value()); - if(buff.getEffect1Name().length() > 0) core.skillModService.deductSkillMod(creature, buff.getEffect4Name(), (int) buff.getEffect4Value()); - if(buff.getEffect1Name().length() > 0) core.skillModService.deductSkillMod(creature, buff.getEffect5Name(), (int) buff.getEffect5Value()); -// } - if (!buff.getCallback().equals("none") && !buff.getCallback().equals("")) { + if(buff.getEffect1Name().length() > 0) + { + + core.skillModService.deductSkillMod(creature, buff.getEffect1Name(), (int) buff.getEffect1Value()); + + } + + if(buff.getEffect2Name().length() > 0) + { + core.skillModService.deductSkillMod(creature, buff.getEffect2Name(), (int) buff.getEffect2Value()); + } + + if(buff.getEffect3Name().length() > 0) + { + core.skillModService.deductSkillMod(creature, buff.getEffect3Name(), (int) buff.getEffect3Value()); + + } + + if(buff.getEffect4Name().length() > 0) + { + core.skillModService.deductSkillMod(creature, buff.getEffect4Name(), (int) buff.getEffect4Value()); + + } + + if(buff.getEffect5Name().length() > 0) + { + core.skillModService.deductSkillMod(creature, buff.getEffect5Name(), (int) buff.getEffect5Value()); + } +// } + + // ??? callback for what ? toggle buff ? + if (!buff.getCallback().equals("none") && !buff.getCallback().equals("")) + { if (FileUtilities.doesFileExist("scripts/buffs/" + buff.getBuffName() + ".py")) { PyObject method = core.scriptService.getMethod("scripts/buffs/", buff.getBuffName(), buff.getCallback()); @@ -267,6 +296,19 @@ public class BuffService implements INetworkDispatch { } } } + //remove method is more like it + else + { + if (FileUtilities.doesFileExist("scripts/buffs/" + buff.getBuffName() + ".py")) + { + PyObject method = core.scriptService.getMethod("scripts/buffs/", buff.getBuffName(), "remove"); + + if (method != null && method.isCallable()) + { + method.__call__(Py.java2py(core), Py.java2py(creature), Py.java2py(buff)); + } + } + } creature.removeBuff(buff); for (String effect : buff.getParticleEffect().split(",")) { @@ -352,14 +394,16 @@ public class BuffService implements INetworkDispatch { public void addGroupBuff(CreatureObject target, String buffName, CreatureObject buffer) { - if(buffer.getGroupId() == 0) { + if(buffer.getGroupId() == 0) + { doAddBuff(target, buffName, buffer); return; } GroupObject group = (GroupObject) core.objectService.getObject(buffer.getGroupId()); - if(group == null) { + if(group == null) + { doAddBuff(target, buffName, buffer); return; } diff --git a/src/services/EntertainmentService.java b/src/services/EntertainmentService.java index ab1b03e3..645dcd8d 100644 --- a/src/services/EntertainmentService.java +++ b/src/services/EntertainmentService.java @@ -539,6 +539,12 @@ public class EntertainmentService implements INetworkDispatch { public void giveInspirationBuff(CreatureObject reciever, CreatureObject buffer, Vector buffVector) { + + if (reciever.hasBuff("buildabuff_inspiration")) + { + core.buffService.removeBuffFromCreature(reciever, reciever.getBuffByName("buildabuff_inspiration")); + } + Vector availableStats = buffBuilderSkills; Vector stats = new Vector(); @@ -611,8 +617,7 @@ public class EntertainmentService implements INetworkDispatch { //if (reciever.getAttachment("buffWorkshopTimestamp") != null) //timeStamp = (long) reciever.getAttachment("buffWorkshopTimestamp"); - if (reciever.hasBuff("buildabuff_inspiration")) - core.buffService.removeBuffFromCreature(reciever, reciever.getBuffByName("buildabuff_inspiration")); + core.buffService.addBuffToCreature(reciever, "buildabuff_inspiration", buffer); /*if (core.buffService.addBuffToCreature(reciever, "buildabuff_inspiration", buffer) && !rPlayer.getProfession().equals("entertainer_1a")) { diff --git a/src/services/spawn/CreatureSkill.java b/src/services/spawn/CreatureSkill.java new file mode 100644 index 00000000..0a647ac1 --- /dev/null +++ b/src/services/spawn/CreatureSkill.java @@ -0,0 +1,65 @@ +/******************************************************************************* + * Copyright (c) 2013 + * + * This File is part of NGECore2. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. + * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. + ******************************************************************************/ +package services.spawn; + +public class CreatureSkill +{ + public String name; + public long cooldown; + public long usage; + public Integer mask; + public CreatureSkill(String name, long cooldown, Integer mask) + { + this.name=name; + this.cooldown=cooldown; + this.mask=mask; + } + public String getName() + { + return name; + } + public long getCooldown() + { + return cooldown; + } + public Integer getMask() + { + return mask; + } + public void setUsage(long usage) + { + this.usage=usage; + } + public long getUsage() + { + return usage; + } + public static final byte BUFF_SKILL=1; + public static final byte DAMAGE_SKILL=2; + public static final byte DEFENSE_SKILL=4; + public static final byte DRAIN_SKILL=8; + public static final byte HEAL_SKILL=16; + +} + + + From 76b552bc29748f879587bae73a65700f403d8d56 Mon Sep 17 00:00:00 2001 From: voronius Date: Wed, 6 Aug 2014 20:20:29 +0300 Subject: [PATCH 09/51] Fix for 139 part 2 Inspiration buffs should no longer stack - https://www.youtube.com/upload. Removed a new file I shouldn't have commited. --- src/services/spawn/CreatureSkill.java | 65 --------------------------- 1 file changed, 65 deletions(-) delete mode 100644 src/services/spawn/CreatureSkill.java diff --git a/src/services/spawn/CreatureSkill.java b/src/services/spawn/CreatureSkill.java deleted file mode 100644 index 0a647ac1..00000000 --- a/src/services/spawn/CreatureSkill.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2013 - * - * This File is part of NGECore2. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - * - * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. - * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. - ******************************************************************************/ -package services.spawn; - -public class CreatureSkill -{ - public String name; - public long cooldown; - public long usage; - public Integer mask; - public CreatureSkill(String name, long cooldown, Integer mask) - { - this.name=name; - this.cooldown=cooldown; - this.mask=mask; - } - public String getName() - { - return name; - } - public long getCooldown() - { - return cooldown; - } - public Integer getMask() - { - return mask; - } - public void setUsage(long usage) - { - this.usage=usage; - } - public long getUsage() - { - return usage; - } - public static final byte BUFF_SKILL=1; - public static final byte DAMAGE_SKILL=2; - public static final byte DEFENSE_SKILL=4; - public static final byte DRAIN_SKILL=8; - public static final byte HEAL_SKILL=16; - -} - - - From 92cf0136298c6f053888d358c9237fdcc78eb44b Mon Sep 17 00:00:00 2001 From: tacef Date: Wed, 6 Aug 2014 19:52:58 +0200 Subject: [PATCH 10/51] Added Dantooine Lairs Added Baby Bol NPC's Changed Several Lairs to be more acurate to Live --- scripts/mobiles/dantooine/baby_bol.py | 45 +++++++++++++++++++ .../lairs/dantooine_ancient_graul_lair_1.py | 10 +++++ scripts/mobiles/lairs/dantooine_bol_lair_1.py | 8 ++-- scripts/mobiles/lairs/dantooine_bol_lair_2.py | 11 +++++ scripts/mobiles/lairs/dantooine_bol_lair_3.py | 11 +++++ scripts/mobiles/lairs/dantooine_bol_lair_4.py | 11 +++++ scripts/mobiles/lairs/dantooine_bol_lair_5.py | 9 ++++ scripts/mobiles/lairs/dantooine_bol_lair_6.py | 9 ++++ scripts/mobiles/lairs/dantooine_bol_lair_7.py | 9 ++++ scripts/mobiles/lairs/dantooine_bol_lair_8.py | 9 ++++ .../lairs/dantooine_frenzied_graul_lair_1.py | 10 +++++ .../mobiles/lairs/dantooine_graul_lair_1.py | 7 +-- .../lairs/dantooine_graul_mauler_lair_1.py | 2 +- .../lairs/dantooine_graul_mauler_lair_2.py | 11 +++++ .../lairs/dantooine_huurton_howler_lair_1.py | 9 ++++ .../lairs/dantooine_huurton_howler_lair_2.py | 10 +++++ .../lairs/dantooine_huurton_matron_lair_1.py | 10 +++++ .../lairs/dantooine_piket_longhorn_lair_1.py | 3 +- .../lairs/dantooine_piket_longhorn_lair_2.py | 10 +++++ .../lairs/dantooine_piket_protector_lair_1.py | 5 +++ .../lairs/dantooine_quenker_bile_lair_1.py | 9 ++++ .../lairs/dantooine_quenker_bile_lair_2.py | 9 ++++ .../mobiles/lairs/dantooine_quenker_lair_1.py | 4 +- .../lairs/dantooine_quenker_ravager_lair_1.py | 9 ++++ .../dantooine_quenker_relic_reaper_lair_1.py | 9 ++++ .../lairs/dantooine_quenker_savage_lair_1.py | 9 ++++ .../lairs/dantooine_quenker_savage_lair_2.py | 10 +++++ .../mobiles/lairs/dantooine_thune_lair_1.py | 4 +- .../dantooine_voritor_horned_lizard_lair_1.py | 6 +++ .../dantooine_voritor_horned_lizard_lair_2.py | 6 +++ .../lairs/dantooine_voritor_hunter_lair_1.py | 6 +++ .../lairs/dantooine_voritor_hunter_lair_2.py | 6 +++ .../lairs/dantooine_voritor_jungle_lair_1.py | 10 +++++ .../lairs/dantooine_voritor_jungle_lair_2.py | 10 +++++ .../mobiles/lairs/dantooine_voritor_lair_1.py | 5 ++- .../mobiles/lairs/dantooine_voritor_lair_2.py | 8 +--- .../lairs/dantooine_voritor_tracker_lair_1.py | 9 ++++ 37 files changed, 312 insertions(+), 26 deletions(-) create mode 100644 scripts/mobiles/dantooine/baby_bol.py create mode 100644 scripts/mobiles/lairs/dantooine_ancient_graul_lair_1.py create mode 100644 scripts/mobiles/lairs/dantooine_bol_lair_2.py create mode 100644 scripts/mobiles/lairs/dantooine_bol_lair_3.py create mode 100644 scripts/mobiles/lairs/dantooine_bol_lair_4.py create mode 100644 scripts/mobiles/lairs/dantooine_bol_lair_5.py create mode 100644 scripts/mobiles/lairs/dantooine_bol_lair_6.py create mode 100644 scripts/mobiles/lairs/dantooine_bol_lair_7.py create mode 100644 scripts/mobiles/lairs/dantooine_bol_lair_8.py create mode 100644 scripts/mobiles/lairs/dantooine_frenzied_graul_lair_1.py create mode 100644 scripts/mobiles/lairs/dantooine_graul_mauler_lair_2.py create mode 100644 scripts/mobiles/lairs/dantooine_huurton_howler_lair_1.py create mode 100644 scripts/mobiles/lairs/dantooine_huurton_howler_lair_2.py create mode 100644 scripts/mobiles/lairs/dantooine_huurton_matron_lair_1.py create mode 100644 scripts/mobiles/lairs/dantooine_piket_longhorn_lair_2.py create mode 100644 scripts/mobiles/lairs/dantooine_piket_protector_lair_1.py create mode 100644 scripts/mobiles/lairs/dantooine_quenker_bile_lair_1.py create mode 100644 scripts/mobiles/lairs/dantooine_quenker_bile_lair_2.py create mode 100644 scripts/mobiles/lairs/dantooine_quenker_ravager_lair_1.py create mode 100644 scripts/mobiles/lairs/dantooine_quenker_relic_reaper_lair_1.py create mode 100644 scripts/mobiles/lairs/dantooine_quenker_savage_lair_1.py create mode 100644 scripts/mobiles/lairs/dantooine_quenker_savage_lair_2.py create mode 100644 scripts/mobiles/lairs/dantooine_voritor_horned_lizard_lair_1.py create mode 100644 scripts/mobiles/lairs/dantooine_voritor_horned_lizard_lair_2.py create mode 100644 scripts/mobiles/lairs/dantooine_voritor_hunter_lair_1.py create mode 100644 scripts/mobiles/lairs/dantooine_voritor_hunter_lair_2.py create mode 100644 scripts/mobiles/lairs/dantooine_voritor_jungle_lair_1.py create mode 100644 scripts/mobiles/lairs/dantooine_voritor_jungle_lair_2.py create mode 100644 scripts/mobiles/lairs/dantooine_voritor_tracker_lair_1.py diff --git a/scripts/mobiles/dantooine/baby_bol.py b/scripts/mobiles/dantooine/baby_bol.py new file mode 100644 index 00000000..e51cde50 --- /dev/null +++ b/scripts/mobiles/dantooine/baby_bol.py @@ -0,0 +1,45 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty +from resources.datatables import Options +from java.util import Vector + + +def addTemplate(core): + mobileTemplate = MobileTemplate() + mobileTemplate.setCreatureName('baby_bol') + mobileTemplate.setLevel(58) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(5) + mobileTemplate.setMaxSpawnDistance(10) + mobileTemplate.setDeathblow(False) + mobileTemplate.setScale(1) + mobileTemplate.setMeatType("Wild Meat") + mobileTemplate.setMeatAmount(0) + mobileTemplate.setHideType("Leathery Hide") + mobileTemplate.setBoneAmount(300) + mobileTemplate.setBoneType("Animal Bone") + mobileTemplate.setHideAmount(180) + mobileTemplate.setSocialGroup("bol") + mobileTemplate.setAssistRange(12) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) + + templates = Vector() + templates.add('object/mobile/shared_baby_bol.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('baby_bol', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_ancient_graul_lair_1.py b/scripts/mobiles/lairs/dantooine_ancient_graul_lair_1.py new file mode 100644 index 00000000..cc31937a --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_ancient_graul_lair_1.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('ancient_graul') + + + core.spawnService.addLairTemplate('dantooine_ancient_graul_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/cave_small_light.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_bol_lair_1.py b/scripts/mobiles/lairs/dantooine_bol_lair_1.py index 68c895b0..0bbd1300 100644 --- a/scripts/mobiles/lairs/dantooine_bol_lair_1.py +++ b/scripts/mobiles/lairs/dantooine_bol_lair_1.py @@ -3,9 +3,9 @@ from java.util import Vector def addTemplate(core): mobileTemplates = Vector() - mobileTemplates.add('lesser_plains_bol') - mobileTemplates.add('seething_bol_crusher') - mobileTemplates.add('swift_charging_bol') + mobileTemplates.add('bol') + mobileTemplates.add('bol_pack_runner') + mobileTemplates.add('baby_bol') - core.spawnService.addLairTemplate('dantooine_bol_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') + core.spawnService.addLairTemplate('dantooine_bol_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rock_shelter_large.iff') return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_bol_lair_2.py b/scripts/mobiles/lairs/dantooine_bol_lair_2.py new file mode 100644 index 00000000..617b642e --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_bol_lair_2.py @@ -0,0 +1,11 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('bol') + mobileTemplates.add('bol_pack_runner') + mobileTemplates.add('baby_bol') + + core.spawnService.addLairTemplate('dantooine_bol_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rocks_large.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_bol_lair_3.py b/scripts/mobiles/lairs/dantooine_bol_lair_3.py new file mode 100644 index 00000000..acdf2eac --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_bol_lair_3.py @@ -0,0 +1,11 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('bol') + mobileTemplates.add('bol_pack_runner') + mobileTemplates.add('swift_charging_bol') + + core.spawnService.addLairTemplate('dantooine_bol_lair_3', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rocks_large.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_bol_lair_4.py b/scripts/mobiles/lairs/dantooine_bol_lair_4.py new file mode 100644 index 00000000..a219678b --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_bol_lair_4.py @@ -0,0 +1,11 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('bol') + mobileTemplates.add('bol_pack_runner') + mobileTemplates.add('swift_charging_bol') + + core.spawnService.addLairTemplate('dantooine_bol_lair_4', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rock_shelter_large.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_bol_lair_5.py b/scripts/mobiles/lairs/dantooine_bol_lair_5.py new file mode 100644 index 00000000..e4ba26a7 --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_bol_lair_5.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('lesser_plains_bol') + + core.spawnService.addLairTemplate('dantooine_bol_lair_5', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rock_shelter_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_bol_lair_6.py b/scripts/mobiles/lairs/dantooine_bol_lair_6.py new file mode 100644 index 00000000..e5787a02 --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_bol_lair_6.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('lesser_plains_bol') + + core.spawnService.addLairTemplate('dantooine_bol_lair_6', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rocks_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_bol_lair_7.py b/scripts/mobiles/lairs/dantooine_bol_lair_7.py new file mode 100644 index 00000000..9e6d793c --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_bol_lair_7.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('seething_bol_crusher') + + core.spawnService.addLairTemplate('dantooine_bol_lair_6', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rocks_large.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_bol_lair_8.py b/scripts/mobiles/lairs/dantooine_bol_lair_8.py new file mode 100644 index 00000000..bb17c668 --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_bol_lair_8.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('seething_bol_crusher') + + core.spawnService.addLairTemplate('dantooine_bol_lair_6', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rock_shelter_large.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_frenzied_graul_lair_1.py b/scripts/mobiles/lairs/dantooine_frenzied_graul_lair_1.py new file mode 100644 index 00000000..55991920 --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_frenzied_graul_lair_1.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('frenzied_graul') + + + core.spawnService.addLairTemplate('dantooine_frenzied_graul_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/cave_small_dark.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_graul_lair_1.py b/scripts/mobiles/lairs/dantooine_graul_lair_1.py index 68c895b0..f8c2d409 100644 --- a/scripts/mobiles/lairs/dantooine_graul_lair_1.py +++ b/scripts/mobiles/lairs/dantooine_graul_lair_1.py @@ -2,10 +2,5 @@ import sys from java.util import Vector def addTemplate(core): - mobileTemplates = Vector() - mobileTemplates.add('lesser_plains_bol') - mobileTemplates.add('seething_bol_crusher') - mobileTemplates.add('swift_charging_bol') - - core.spawnService.addLairTemplate('dantooine_bol_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') + core.spawnService.addLairTemplate('dantooine_graul_mauler_lair_1', 'graul', 15, 'object/tangible/lair/base/poi_all_lair_rocks_large.iff') return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_graul_mauler_lair_1.py b/scripts/mobiles/lairs/dantooine_graul_mauler_lair_1.py index 7de29fa4..88845099 100644 --- a/scripts/mobiles/lairs/dantooine_graul_mauler_lair_1.py +++ b/scripts/mobiles/lairs/dantooine_graul_mauler_lair_1.py @@ -2,5 +2,5 @@ import sys from java.util import Vector def addTemplate(core): - core.spawnService.addLairTemplate('dantooine_graul_mauler_lair_1', 'graul_mauler', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') + core.spawnService.addLairTemplate('dantooine_graul_mauler_lair_1', 'graul_mauler', 15, 'object/tangible/lair/base/poi_all_lair_rocks_large_evil_fire_red.iff') return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_graul_mauler_lair_2.py b/scripts/mobiles/lairs/dantooine_graul_mauler_lair_2.py new file mode 100644 index 00000000..ca0b46d3 --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_graul_mauler_lair_2.py @@ -0,0 +1,11 @@ +import sys +from java.util import Vector + +def addTemplate(core): + + mobileTemplates = Vector() + mobileTemplates.add('graul_mauler') + mobileTemplates.add('graul_mangler') + + core.spawnService.addLairTemplate('dantooine_graul_mauler_lair_1', mobileTemplates , 15, 'object/tangible/lair/base/poi_all_lair_rocks_large_evil_fire_red.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_huurton_howler_lair_1.py b/scripts/mobiles/lairs/dantooine_huurton_howler_lair_1.py new file mode 100644 index 00000000..12dc3b54 --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_huurton_howler_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('huurton_howler') + + core.spawnService.addLairTemplate('dantooine_huurton_howler_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/bramble_light.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_huurton_howler_lair_2.py b/scripts/mobiles/lairs/dantooine_huurton_howler_lair_2.py new file mode 100644 index 00000000..9ed66794 --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_huurton_howler_lair_2.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('huurton_howler') + mobileTemplates.add('huurton_bloodhunter') + + core.spawnService.addLairTemplate('dantooine_huurton_howler_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_brambles_large_fog_mustard.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_huurton_matron_lair_1.py b/scripts/mobiles/lairs/dantooine_huurton_matron_lair_1.py new file mode 100644 index 00000000..176637aa --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_huurton_matron_lair_1.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('huurton_matron') + + + core.spawnService.addLairTemplate('dantooine_huurton_matron_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/bramble_light.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_piket_longhorn_lair_1.py b/scripts/mobiles/lairs/dantooine_piket_longhorn_lair_1.py index d84eb45b..d4f0229e 100644 --- a/scripts/mobiles/lairs/dantooine_piket_longhorn_lair_1.py +++ b/scripts/mobiles/lairs/dantooine_piket_longhorn_lair_1.py @@ -5,7 +5,6 @@ def addTemplate(core): mobileTemplates = Vector() mobileTemplates.add('piket_longhorn') mobileTemplates.add('piket_longhorn_female') - mobileTemplates.add('piket_plains_walker') - core.spawnService.addLairTemplate('dantooine_piket_longhorn_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_earthmound_light.iff') + core.spawnService.addLairTemplate('dantooine_piket_longhorn_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/lair_base_mound_bramble_dark.iff') return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_piket_longhorn_lair_2.py b/scripts/mobiles/lairs/dantooine_piket_longhorn_lair_2.py new file mode 100644 index 00000000..7bad6b0e --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_piket_longhorn_lair_2.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('piket_longhorn') + mobileTemplates.add('piket_longhorn_female') + + core.spawnService.addLairTemplate('dantooine_piket_longhorn_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rocks_large.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_piket_protector_lair_1.py b/scripts/mobiles/lairs/dantooine_piket_protector_lair_1.py new file mode 100644 index 00000000..fd64b4e1 --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_piket_protector_lair_1.py @@ -0,0 +1,5 @@ +import sys + +def addTemplate(core): + core.spawnService.addLairTemplate('dantooine_piket_protector_lair_1', 'fierce_piket_protector', 15, 'object/tangible/lair/base/poi_all_lair_rocks_large.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_quenker_bile_lair_1.py b/scripts/mobiles/lairs/dantooine_quenker_bile_lair_1.py new file mode 100644 index 00000000..166c54d3 --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_quenker_bile_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('bile_drenched_quenker') + + core.spawnService.addLairTemplate('dantooine_quenker_bile_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_thicket_small_fog_green.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_quenker_bile_lair_2.py b/scripts/mobiles/lairs/dantooine_quenker_bile_lair_2.py new file mode 100644 index 00000000..061d5ffa --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_quenker_bile_lair_2.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('bile_drenched_quenker') + + core.spawnService.addLairTemplate('dantooine_quenker_bile_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_warren_small_fog_green.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_quenker_lair_1.py b/scripts/mobiles/lairs/dantooine_quenker_lair_1.py index 3ebe353c..204cc448 100644 --- a/scripts/mobiles/lairs/dantooine_quenker_lair_1.py +++ b/scripts/mobiles/lairs/dantooine_quenker_lair_1.py @@ -4,8 +4,6 @@ from java.util import Vector def addTemplate(core): mobileTemplates = Vector() mobileTemplates.add('quenker') - mobileTemplates.add('quenker_ravager') - mobileTemplates.add('quenker_relic_reaper') - core.spawnService.addLairTemplate('dantooine_quenker_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') + core.spawnService.addLairTemplate('dantooine_quenker_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rocks_large_fog_green.iff') return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_quenker_ravager_lair_1.py b/scripts/mobiles/lairs/dantooine_quenker_ravager_lair_1.py new file mode 100644 index 00000000..9fba4007 --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_quenker_ravager_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('quenker_ravager') + + core.spawnService.addLairTemplate('dantooine_quenker_ravager_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_warren_small_evil_fire_green.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_quenker_relic_reaper_lair_1.py b/scripts/mobiles/lairs/dantooine_quenker_relic_reaper_lair_1.py new file mode 100644 index 00000000..a4a8011f --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_quenker_relic_reaper_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('quenker_relic_reaper') + + core.spawnService.addLairTemplate('dantooine_quenker_relic_reaper_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_warren_small_fog_green.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_quenker_savage_lair_1.py b/scripts/mobiles/lairs/dantooine_quenker_savage_lair_1.py new file mode 100644 index 00000000..bbce9ee6 --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_quenker_savage_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('savage_quenker') + + core.spawnService.addLairTemplate('dantooine_quenker_savage_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_warren_small_fog_green.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_quenker_savage_lair_2.py b/scripts/mobiles/lairs/dantooine_quenker_savage_lair_2.py new file mode 100644 index 00000000..3b58cfdb --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_quenker_savage_lair_2.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('savage_quenker') + mobileTemplates.add('terrible_quenker') + + core.spawnService.addLairTemplate('dantooine_quenker_savage_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_warren_small_evil_fire_red.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_thune_lair_1.py b/scripts/mobiles/lairs/dantooine_thune_lair_1.py index c5cea1ec..1ab7ea01 100644 --- a/scripts/mobiles/lairs/dantooine_thune_lair_1.py +++ b/scripts/mobiles/lairs/dantooine_thune_lair_1.py @@ -4,8 +4,6 @@ from java.util import Vector def addTemplate(core): mobileTemplates = Vector() mobileTemplates.add('thune') - mobileTemplates.add('thune_grassland_guardian') - mobileTemplates.add('thune_herd_leader') - core.spawnService.addLairTemplate('dantooine_thune_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_earthmound_light.iff') + core.spawnService.addLairTemplate('dantooine_thune_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_rocks_large_fog_green.iff') return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_voritor_horned_lizard_lair_1.py b/scripts/mobiles/lairs/dantooine_voritor_horned_lizard_lair_1.py new file mode 100644 index 00000000..0db9d437 --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_voritor_horned_lizard_lair_1.py @@ -0,0 +1,6 @@ +import sys +from java.util import Vector + +def addTemplate(core): + core.spawnService.addLairTemplate('dantooine_voritor_horned_lizard_lair_1', 'horned_voritor_jungle_lizard', 15, 'object/tangible/lair/base/poi_all_lair_leaf_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_voritor_horned_lizard_lair_2.py b/scripts/mobiles/lairs/dantooine_voritor_horned_lizard_lair_2.py new file mode 100644 index 00000000..5b387af4 --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_voritor_horned_lizard_lair_2.py @@ -0,0 +1,6 @@ +import sys +from java.util import Vector + +def addTemplate(core): + core.spawnService.addLairTemplate('dantooine_voritor_horned_lizard_lair_1', 'horned_voritor_jungle_lizard', 15, 'object/tangible/lair/base/poi_all_lair_thicket_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_voritor_hunter_lair_1.py b/scripts/mobiles/lairs/dantooine_voritor_hunter_lair_1.py new file mode 100644 index 00000000..e466f3fd --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_voritor_hunter_lair_1.py @@ -0,0 +1,6 @@ +import sys +from java.util import Vector + +def addTemplate(core): + core.spawnService.addLairTemplate('dantooine_voritor_hunter_lair_2', 'slinking_voritor_hunter', 15, 'object/tangible/lair/base/poi_all_lair_bones.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_voritor_hunter_lair_2.py b/scripts/mobiles/lairs/dantooine_voritor_hunter_lair_2.py new file mode 100644 index 00000000..2df263de --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_voritor_hunter_lair_2.py @@ -0,0 +1,6 @@ +import sys +from java.util import Vector + +def addTemplate(core): + core.spawnService.addLairTemplate('dantooine_voritor_hunter_lair_1', 'slinking_voritor_hunter', 15, 'object/tangible/lair/base/poi_all_lair_dead_log_small.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_voritor_jungle_lair_1.py b/scripts/mobiles/lairs/dantooine_voritor_jungle_lair_1.py new file mode 100644 index 00000000..332d53a1 --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_voritor_jungle_lair_1.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('horned_voritor_jungle_lizard') + mobileTemplates.add('spiked_slasher') + + core.spawnService.addLairTemplate('dantooine_voritor_jungle_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_leaf_small_fog_red.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_voritor_jungle_lair_2.py b/scripts/mobiles/lairs/dantooine_voritor_jungle_lair_2.py new file mode 100644 index 00000000..9dc8a02a --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_voritor_jungle_lair_2.py @@ -0,0 +1,10 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('horned_voritor_jungle_lizard') + mobileTemplates.add('spiked_slasher') + + core.spawnService.addLairTemplate('dantooine_voritor_jungle_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_thicket_small_fog_red.iff') + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_voritor_lair_1.py b/scripts/mobiles/lairs/dantooine_voritor_lair_1.py index 8fd066b5..cb1f3fbf 100644 --- a/scripts/mobiles/lairs/dantooine_voritor_lair_1.py +++ b/scripts/mobiles/lairs/dantooine_voritor_lair_1.py @@ -2,5 +2,8 @@ import sys from java.util import Vector def addTemplate(core): - core.spawnService.addLairTemplate('dantooine_voritor_lair_1', 'voritor_lizard', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') + mobileTemplates = Vector() + mobileTemplates.add('voritor_lizard') + + core.spawnService.addLairTemplate('dantooine_voritor_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_leaf_small.iff') return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_voritor_lair_2.py b/scripts/mobiles/lairs/dantooine_voritor_lair_2.py index 976aa49d..8ec37571 100644 --- a/scripts/mobiles/lairs/dantooine_voritor_lair_2.py +++ b/scripts/mobiles/lairs/dantooine_voritor_lair_2.py @@ -3,11 +3,7 @@ from java.util import Vector def addTemplate(core): mobileTemplates = Vector() - mobileTemplates.add('voritor_lizard') - mobileTemplates.add('horned_voritor_jungle_lizard') - mobileTemplates.add('vexed_voritor_lizard') - mobileTemplates.add('voritor_dasher') - mobileTemplates.add('spiked_slasher') + mobileTemplates.add('voritor_lizard') - core.spawnService.addLairTemplate('dantooine_voritor_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff') + core.spawnService.addLairTemplate('dantooine_voritor_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_thicket_small.iff') return \ No newline at end of file diff --git a/scripts/mobiles/lairs/dantooine_voritor_tracker_lair_1.py b/scripts/mobiles/lairs/dantooine_voritor_tracker_lair_1.py new file mode 100644 index 00000000..c144818b --- /dev/null +++ b/scripts/mobiles/lairs/dantooine_voritor_tracker_lair_1.py @@ -0,0 +1,9 @@ +import sys +from java.util import Vector + +def addTemplate(core): + mobileTemplates = Vector() + mobileTemplates.add('grassland_voritor_tracker') + + core.spawnService.addLairTemplate('dantooine_voritor_tracker_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/poi_all_lair_thicket_small_fog_green.iff') + return \ No newline at end of file From aabe5c5b9a565400778a9fb307addb35af5e3a82 Mon Sep 17 00:00:00 2001 From: tacef Date: Thu, 7 Aug 2014 19:34:45 +0200 Subject: [PATCH 11/51] Fixed Readded Frogbuilding in Mos Espa --- src/main/NGECore.java | 3 + src/services/DevService.java | 107 +++++++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 src/services/DevService.java diff --git a/src/main/NGECore.java b/src/main/NGECore.java index 2bd40112..3e14ffb4 100644 --- a/src/main/NGECore.java +++ b/src/main/NGECore.java @@ -62,6 +62,7 @@ import services.BuffService; import services.CharacterService; import services.ConnectionService; import services.ConversationService; +import services.DevService; import services.EntertainmentService; import services.GroupService; import services.housing.HousingService; @@ -196,6 +197,7 @@ public class NGECore { public AIService aiService; public MissionService missionService; public InstanceService instanceService; + public DevService devService; public SurveyService surveyService; public ResourceService resourceService; public ConversationService conversationService; @@ -552,6 +554,7 @@ public class NGECore { browserService = new BrowserService(this); //battlefieldService = new BattlefieldService(this); + devService = new DevService(this); DevLogQueuer devLogQueuer = new DevLogQueuer(); diff --git a/src/services/DevService.java b/src/services/DevService.java new file mode 100644 index 00000000..c53201fe --- /dev/null +++ b/src/services/DevService.java @@ -0,0 +1,107 @@ +/******************************************************************************* + * Copyright (c) 2013 + * + * This File is part of NGECore2. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. + * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. + ******************************************************************************/ +package services; + +import java.nio.ByteOrder; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.Vector; + +import org.apache.mina.core.buffer.IoBuffer; +import org.apache.mina.core.session.IoSession; + +import resources.common.Console; +import resources.common.FileUtilities; +import resources.common.Forager; +import resources.common.Opcodes; +import resources.common.SpawnPoint; +import resources.datatables.Posture; +import resources.datatables.WeaponType; +import resources.harvest.SurveyTool; +import resources.objects.building.BuildingObject; +import resources.objects.creature.CreatureObject; +import resources.objects.player.PlayerObject; +import resources.objects.tangible.TangibleObject; +import resources.objects.weapon.WeaponObject; +import services.sui.SUIWindow; +import services.sui.SUIService.ListBoxType; +import services.sui.SUIWindow.SUICallback; +import services.sui.SUIWindow.Trigger; +import main.NGECore; +import engine.clientdata.ClientFileManager; +import engine.clientdata.visitors.DatatableVisitor; +import engine.clients.Client; +import engine.resources.container.CreatureContainerPermissions; +import engine.resources.container.CreaturePermissions; +import engine.resources.container.NullPermissions; +import engine.resources.objects.SWGObject; +import engine.resources.scene.Planet; +import engine.resources.scene.Point3D; +import engine.resources.scene.Quaternion; +import engine.resources.service.INetworkDispatch; +import engine.resources.service.INetworkRemoteEvent; + +@SuppressWarnings("unused") +public class DevService implements INetworkDispatch { + + private NGECore core; + private long frogBuildingId = 0; + + public DevService(NGECore core) { + this.core = core; + loadFrogBuilding(); + } + + private void loadFrogBuilding() { + BuildingObject building = (BuildingObject) core.objectService.createObject("object/building/tatooine/shared_association_hall_civilian_tatooine_02.iff", 0, core.terrainService.getPlanetByName("tatooine"), + new Point3D(-3308, 5, 2174), new Quaternion((float) 0.7323, 0, (float) 0.680961, 0)); + + core.simulationService.add(building, building.getPosition().x, building.getPosition().z); + + this.frogBuildingId = building.getObjectID(); + + building.setAttachment("structureOwner", 0); + + TangibleObject frog = (TangibleObject) core.objectService.createObject("object/tangible/terminal/shared_terminal_character_builder.iff", core.terrainService.getPlanetByID(building.getPlanetId())); + frog.setPosition(new Point3D((float)-1.10475, (float)0.51, (float)-4.3665)); + frog.setOrientation(new Quaternion((float) 0.9965, 0, (float)-0.09, 0)); + building.getCellByCellNumber(2).add(frog); + } + + public long getFrogBuildingId() { + return this.frogBuildingId; + } + + @Override + public void insertOpcodes(Map swgOpcodes, Map objControllerOpcodes) { + } + + + @Override + public void shutdown() { + + } + +} + From 83d97679a72babed8d8472ecc3d240b40480564b Mon Sep 17 00:00:00 2001 From: tacef Date: Thu, 7 Aug 2014 20:16:41 +0200 Subject: [PATCH 12/51] Changed Removed Frogbuilding placed Frog only --- .../static_spawns/tatooine/mos_espa_frog.py | 14 +++ src/main/NGECore.java | 3 - src/services/DevService.java | 107 ------------------ 3 files changed, 14 insertions(+), 110 deletions(-) create mode 100644 scripts/static_spawns/tatooine/mos_espa_frog.py delete mode 100644 src/services/DevService.java diff --git a/scripts/static_spawns/tatooine/mos_espa_frog.py b/scripts/static_spawns/tatooine/mos_espa_frog.py new file mode 100644 index 00000000..8f87f45c --- /dev/null +++ b/scripts/static_spawns/tatooine/mos_espa_frog.py @@ -0,0 +1,14 @@ +# Project SWG: Mos Espa: Frogbuilding +# (C)2014 ProjectSWG + +import sys + +def addPlanetSpawns(core, planet): + + + stcSvc = core.staticService + objSvc = core.objectService + + stcSvc.spawnObject('object/tangible/terminal/shared_terminal_character_builder.iff', 'tatooine', long(0), float(-3308), float(5.4), float(2174), float(0.70), float(0.71)) + return + diff --git a/src/main/NGECore.java b/src/main/NGECore.java index 3e14ffb4..2bd40112 100644 --- a/src/main/NGECore.java +++ b/src/main/NGECore.java @@ -62,7 +62,6 @@ import services.BuffService; import services.CharacterService; import services.ConnectionService; import services.ConversationService; -import services.DevService; import services.EntertainmentService; import services.GroupService; import services.housing.HousingService; @@ -197,7 +196,6 @@ public class NGECore { public AIService aiService; public MissionService missionService; public InstanceService instanceService; - public DevService devService; public SurveyService surveyService; public ResourceService resourceService; public ConversationService conversationService; @@ -554,7 +552,6 @@ public class NGECore { browserService = new BrowserService(this); //battlefieldService = new BattlefieldService(this); - devService = new DevService(this); DevLogQueuer devLogQueuer = new DevLogQueuer(); diff --git a/src/services/DevService.java b/src/services/DevService.java deleted file mode 100644 index c53201fe..00000000 --- a/src/services/DevService.java +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2013 - * - * This File is part of NGECore2. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - * - * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. - * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. - ******************************************************************************/ -package services; - -import java.nio.ByteOrder; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; -import java.util.Vector; - -import org.apache.mina.core.buffer.IoBuffer; -import org.apache.mina.core.session.IoSession; - -import resources.common.Console; -import resources.common.FileUtilities; -import resources.common.Forager; -import resources.common.Opcodes; -import resources.common.SpawnPoint; -import resources.datatables.Posture; -import resources.datatables.WeaponType; -import resources.harvest.SurveyTool; -import resources.objects.building.BuildingObject; -import resources.objects.creature.CreatureObject; -import resources.objects.player.PlayerObject; -import resources.objects.tangible.TangibleObject; -import resources.objects.weapon.WeaponObject; -import services.sui.SUIWindow; -import services.sui.SUIService.ListBoxType; -import services.sui.SUIWindow.SUICallback; -import services.sui.SUIWindow.Trigger; -import main.NGECore; -import engine.clientdata.ClientFileManager; -import engine.clientdata.visitors.DatatableVisitor; -import engine.clients.Client; -import engine.resources.container.CreatureContainerPermissions; -import engine.resources.container.CreaturePermissions; -import engine.resources.container.NullPermissions; -import engine.resources.objects.SWGObject; -import engine.resources.scene.Planet; -import engine.resources.scene.Point3D; -import engine.resources.scene.Quaternion; -import engine.resources.service.INetworkDispatch; -import engine.resources.service.INetworkRemoteEvent; - -@SuppressWarnings("unused") -public class DevService implements INetworkDispatch { - - private NGECore core; - private long frogBuildingId = 0; - - public DevService(NGECore core) { - this.core = core; - loadFrogBuilding(); - } - - private void loadFrogBuilding() { - BuildingObject building = (BuildingObject) core.objectService.createObject("object/building/tatooine/shared_association_hall_civilian_tatooine_02.iff", 0, core.terrainService.getPlanetByName("tatooine"), - new Point3D(-3308, 5, 2174), new Quaternion((float) 0.7323, 0, (float) 0.680961, 0)); - - core.simulationService.add(building, building.getPosition().x, building.getPosition().z); - - this.frogBuildingId = building.getObjectID(); - - building.setAttachment("structureOwner", 0); - - TangibleObject frog = (TangibleObject) core.objectService.createObject("object/tangible/terminal/shared_terminal_character_builder.iff", core.terrainService.getPlanetByID(building.getPlanetId())); - frog.setPosition(new Point3D((float)-1.10475, (float)0.51, (float)-4.3665)); - frog.setOrientation(new Quaternion((float) 0.9965, 0, (float)-0.09, 0)); - building.getCellByCellNumber(2).add(frog); - } - - public long getFrogBuildingId() { - return this.frogBuildingId; - } - - @Override - public void insertOpcodes(Map swgOpcodes, Map objControllerOpcodes) { - } - - - @Override - public void shutdown() { - - } - -} - From 79de1c89ce53b4a6c48e5ac58246e068bd577e8a Mon Sep 17 00:00:00 2001 From: Waverunner Date: Thu, 7 Aug 2014 17:21:52 -0400 Subject: [PATCH 13/51] Fixed group decline message being sent to invited instead of leader --- src/services/GroupService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/services/GroupService.java b/src/services/GroupService.java index 13b46c7b..a311d9e5 100644 --- a/src/services/GroupService.java +++ b/src/services/GroupService.java @@ -126,7 +126,8 @@ public class GroupService implements INetworkDispatch { invited.setInviteSenderName(""); invited.sendSystemMessage(OutOfBand.ProsePackage("TT", leader.getObjectID(), "@group:decline_self"), (byte) 0); invited.updateGroupInviteInfo(); - invited.sendSystemMessage(OutOfBand.ProsePackage("TT", invited.getObjectID(), "@group:decline_leader"), (byte) 0); + + leader.sendSystemMessage(OutOfBand.ProsePackage("TT", invited.getObjectID(), "@group:decline_leader"), (byte) 0); } From d9ca531c5d002d5ae394f15aa526ca54658e6976 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Thu, 7 Aug 2014 17:56:30 -0400 Subject: [PATCH 14/51] Removed printAnalysis for CREO3 baseline, Added SWGList for Skills --- .../creature/CreatureMessageBuilder.java | 6 +-- .../objects/creature/CreatureObject.java | 39 +++++++++++++++++-- 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/src/resources/objects/creature/CreatureMessageBuilder.java b/src/resources/objects/creature/CreatureMessageBuilder.java index 33367160..80bd3f58 100644 --- a/src/resources/objects/creature/CreatureMessageBuilder.java +++ b/src/resources/objects/creature/CreatureMessageBuilder.java @@ -138,10 +138,10 @@ public class CreatureMessageBuilder extends TangibleMessageBuilder { buffer.putLong(creature.getOwnerId()); - float height = creature.getHeight(); + //float height = creature.getHeight(); //if (height < 0.7 || height > 1.5) // height = 1; - buffer.putFloat(height); + buffer.putFloat(creature.getHeight()); buffer.putInt(0); // battle fatigue buffer.putLong(creature.getStateBitmask()); int size = buffer.position(); @@ -150,8 +150,6 @@ public class CreatureMessageBuilder extends TangibleMessageBuilder { buffer.flip(); buffer = createBaseline("CREO", (byte) 3, buffer, size); - tools.CharonPacketUtils.printAnalysis(buffer, "CREO 3"); - return buffer; } diff --git a/src/resources/objects/creature/CreatureObject.java b/src/resources/objects/creature/CreatureObject.java index 332d1731..f0cb1bdc 100644 --- a/src/resources/objects/creature/CreatureObject.java +++ b/src/resources/objects/creature/CreatureObject.java @@ -24,6 +24,7 @@ package resources.objects.creature; import java.io.Serializable; import java.lang.System; import java.util.ArrayList; +import java.util.BitSet; import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -55,6 +56,7 @@ import resources.objects.ObjectMessageBuilder; import resources.objects.SWGList; import resources.objects.SWGMap; import engine.resources.common.CRC; +import engine.resources.objects.Baseline; import engine.resources.objects.SWGObject; import engine.resources.scene.Planet; import engine.resources.scene.Point3D; @@ -72,7 +74,7 @@ public class CreatureObject extends TangibleObject implements Serializable { // CREO 1 private int bankCredits = 0; private int cashCredits = 0; - private List skills; + private SWGList skills; @NotPersistent private transient int skillsUpdateCounter = 0; @@ -192,7 +194,7 @@ public class CreatureObject extends TangibleObject implements Serializable { super(objectID, planet, position, orientation, Template); messageBuilder = new CreatureMessageBuilder(this); loadTemplateData(); - skills = new ArrayList(); + skills = new SWGList(); skillMods = new SWGMap(this, 4, 3, true); abilities = new SWGMap(this, 4, 14, true); missionCriticalObjects = new SWGMap(this, 4, 13, false); @@ -235,7 +237,38 @@ public class CreatureObject extends TangibleObject implements Serializable { setTurnRadius((float) getTemplateData().getAttribute("turnRate"));*/ } + + /*@Override + public Baseline getBaseline1() { + Baseline baseline = super.getBaseline1(); + baseline.put("bankCredits", 0); + baseline.put("cashCredits", 0); + + // HAM base list stuff + baseline.put("baseHAM", 6); // list size + baseline.put("unk1", 0); // udpate count? + baseline.put("health", 1000); + baseline.put("spacer1", 0); + baseline.put("action", 300); + baseline.put("spacer2", 0); + baseline.put("unk2", 0x2C01); + baseline.put("unk3", 0); + + baseline.put("skills", new SWGList()); + return baseline; + } + @Override + public Baseline getBaseline3() { + Baseline baseline = super.getBaseline3(); + baseline.put("posture", (byte) 0); + baseline.put("creo3unk1", (byte) 0); + baseline.put("ownerId", (long) 0); + baseline.put("height", (float) 1.3); + baseline.put("battleFatigue", 0); + baseline.put("stateBitmask", new BitSet()); + return baseline; + }*/ public int getBankCredits() { synchronized(objectMutex) { return bankCredits; @@ -299,7 +332,7 @@ public class CreatureObject extends TangibleObject implements Serializable { } } - public List getSkills() { + public SWGList getSkills() { return skills; } From 5f72a08f922a2c4101ea673a66f4d31c5f384bda Mon Sep 17 00:00:00 2001 From: Iosnowore Kun Date: Thu, 7 Aug 2014 22:06:57 -0400 Subject: [PATCH 15/51] Removed Level Restriction From GCW Scout Trooper Boots and Gloves And Added Armor Restriction Like They Were On Live --- .../armor/scout_trooper/armor_scout_trooper_boots_gcw.py | 2 +- .../armor/scout_trooper/armor_scout_trooper_gloves_gcw.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_boots_gcw.py b/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_boots_gcw.py index fa511268..26cd7460 100644 --- a/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_boots_gcw.py +++ b/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_boots_gcw.py @@ -1,6 +1,6 @@ import sys def setup(core, object): - object.setIntAttribute('required_combat_level', 22) object.setStringAttribute('required_faction', 'Imperial') + object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_gloves_gcw.py b/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_gloves_gcw.py index fa511268..26cd7460 100644 --- a/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_gloves_gcw.py +++ b/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_gloves_gcw.py @@ -1,6 +1,6 @@ import sys def setup(core, object): - object.setIntAttribute('required_combat_level', 22) object.setStringAttribute('required_faction', 'Imperial') + object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') return \ No newline at end of file From d6d78dcbb71a9bc5e64ee10aa4cff92877e69f36 Mon Sep 17 00:00:00 2001 From: Iosnowore Kun Date: Thu, 7 Aug 2014 22:14:26 -0400 Subject: [PATCH 16/51] Fixed Officer Pistol Roadmap Reward --- scripts/roadmap/officer_1a.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/roadmap/officer_1a.py b/scripts/roadmap/officer_1a.py index 3a139591..9c89974f 100644 --- a/scripts/roadmap/officer_1a.py +++ b/scripts/roadmap/officer_1a.py @@ -101,7 +101,7 @@ def getRewards(name): if name == 'armor_ithorian_roadmap_gloves_02_03': return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_gloves.iff" - if name == 'weapon_pistol_sp_roadmap_01_02': + if name == 'weapon_pistol_of_roadmap_01_02': return "object/weapon/ranged/pistol/shared_pistol_dl44.iff" if name == 'item_officer_ring_01_02': From 3ee4733c41cfe49d9e8c22b584ff03d410c4877d Mon Sep 17 00:00:00 2001 From: Ziggeh Date: Fri, 8 Aug 2014 04:32:44 +0200 Subject: [PATCH 17/51] Revert "Removed Level Restriction From GCW Scout Trooper Boots and Gloves And Added Armor Restriction Like They Were On Live" --- .../armor/scout_trooper/armor_scout_trooper_boots_gcw.py | 2 +- .../armor/scout_trooper/armor_scout_trooper_gloves_gcw.py | 2 +- scripts/roadmap/officer_1a.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_boots_gcw.py b/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_boots_gcw.py index 26cd7460..fa511268 100644 --- a/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_boots_gcw.py +++ b/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_boots_gcw.py @@ -1,6 +1,6 @@ import sys def setup(core, object): + object.setIntAttribute('required_combat_level', 22) object.setStringAttribute('required_faction', 'Imperial') - object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_gloves_gcw.py b/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_gloves_gcw.py index 26cd7460..fa511268 100644 --- a/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_gloves_gcw.py +++ b/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_gloves_gcw.py @@ -1,6 +1,6 @@ import sys def setup(core, object): + object.setIntAttribute('required_combat_level', 22) object.setStringAttribute('required_faction', 'Imperial') - object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') return \ No newline at end of file diff --git a/scripts/roadmap/officer_1a.py b/scripts/roadmap/officer_1a.py index 9c89974f..3a139591 100644 --- a/scripts/roadmap/officer_1a.py +++ b/scripts/roadmap/officer_1a.py @@ -101,7 +101,7 @@ def getRewards(name): if name == 'armor_ithorian_roadmap_gloves_02_03': return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_gloves.iff" - if name == 'weapon_pistol_of_roadmap_01_02': + if name == 'weapon_pistol_sp_roadmap_01_02': return "object/weapon/ranged/pistol/shared_pistol_dl44.iff" if name == 'item_officer_ring_01_02': From 72fba9b5bcade67fbc48baf4f8cb42cd3f80e88b Mon Sep 17 00:00:00 2001 From: Iosnowore Kun Date: Thu, 7 Aug 2014 22:45:36 -0400 Subject: [PATCH 18/51] Revert "Revert "Removed Level Restriction From GCW Scout Trooper Boots and Gloves And Added Armor Restriction Like They Were On Live"" This reverts commit 3ee4733c41cfe49d9e8c22b584ff03d410c4877d. --- .../armor/scout_trooper/armor_scout_trooper_boots_gcw.py | 2 +- .../armor/scout_trooper/armor_scout_trooper_gloves_gcw.py | 2 +- scripts/roadmap/officer_1a.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_boots_gcw.py b/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_boots_gcw.py index fa511268..26cd7460 100644 --- a/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_boots_gcw.py +++ b/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_boots_gcw.py @@ -1,6 +1,6 @@ import sys def setup(core, object): - object.setIntAttribute('required_combat_level', 22) object.setStringAttribute('required_faction', 'Imperial') + object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_gloves_gcw.py b/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_gloves_gcw.py index fa511268..26cd7460 100644 --- a/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_gloves_gcw.py +++ b/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_gloves_gcw.py @@ -1,6 +1,6 @@ import sys def setup(core, object): - object.setIntAttribute('required_combat_level', 22) object.setStringAttribute('required_faction', 'Imperial') + object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') return \ No newline at end of file diff --git a/scripts/roadmap/officer_1a.py b/scripts/roadmap/officer_1a.py index 3a139591..9c89974f 100644 --- a/scripts/roadmap/officer_1a.py +++ b/scripts/roadmap/officer_1a.py @@ -101,7 +101,7 @@ def getRewards(name): if name == 'armor_ithorian_roadmap_gloves_02_03': return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_gloves.iff" - if name == 'weapon_pistol_sp_roadmap_01_02': + if name == 'weapon_pistol_of_roadmap_01_02': return "object/weapon/ranged/pistol/shared_pistol_dl44.iff" if name == 'item_officer_ring_01_02': From 298fd1694e4278fcb32bf83a6d515dbd8fb5f7bb Mon Sep 17 00:00:00 2001 From: Iosnowore Kun Date: Thu, 7 Aug 2014 23:06:45 -0400 Subject: [PATCH 19/51] Removed Stats for Scout Trooper Helmet Considering It's a Crafted Armor Piece --- .../armor/scout_trooper/armor_scout_trooper_helmet.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_helmet.py b/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_helmet.py index 08216793..2c2f76b9 100644 --- a/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_helmet.py +++ b/scripts/object/tangible/wearables/armor/scout_trooper/armor_scout_trooper_helmet.py @@ -1,12 +1,4 @@ import sys def setup(core, object): - object.setStringAttribute('faction_required', 'Imperial') - object.setStringAttribute('armor_category', 'Reconnaissance') - object.setIntAttribute('cat_armor_standard_protection.kinetic', 4608) - object.setIntAttribute('cat_armor_standard_protection.energy', 6608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 5608) return \ No newline at end of file From 73621353a5ef851d9c002f10d793671ad8e77d83 Mon Sep 17 00:00:00 2001 From: Iosnowore Kun Date: Thu, 7 Aug 2014 23:19:17 -0400 Subject: [PATCH 20/51] Fixed Some More Officer Roadmap Reward Mistakes --- scripts/roadmap/officer_1a.py | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/scripts/roadmap/officer_1a.py b/scripts/roadmap/officer_1a.py index 9c89974f..28dfda55 100644 --- a/scripts/roadmap/officer_1a.py +++ b/scripts/roadmap/officer_1a.py @@ -56,52 +56,52 @@ def getRewards(name): if name == 'armor_officer_roadmap_leggings_02_01': return "object/tangible/wearables/armor/composite/shared_armor_composite_leggings.iff" - if name == 'armor_wookiee_roadmap_chest_02_03': + if name == 'armor_wookiee_roadmap_chest_02_02': return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_chestplate.iff" - if name == 'armor_wookiee_roadmap_leggings_02_03': + if name == 'armor_wookiee_roadmap_leggings_02_02': return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_leggings.iff" - if name == 'armor_wookiee_roadmap_bicep_l_02_03': + if name == 'armor_wookiee_roadmap_bicep_l_02_02': return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bicep_l.iff" - if name == 'armor_wookiee_roadmap_bicep_r_02_03': + if name == 'armor_wookiee_roadmap_bicep_r_02_02': return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bicep_r.iff" - if name == 'armor_wookiee_roadmap_bracer_l_02_03': + if name == 'armor_wookiee_roadmap_bracer_l_02_02': return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bracer_l.iff" - if name == 'armor_wookiee_roadmap_bracer_r_02_03': + if name == 'armor_wookiee_roadmap_bracer_r_02_02': return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bracer_r.iff" - if name == 'armor_ithorian_roadmap_chest_02_03': + if name == 'armor_ithorian_roadmap_chest_02_02': return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_chest_plate.iff" - if name == 'armor_ithorian_roadmap_leggings_02_03': + if name == 'armor_ithorian_roadmap_leggings_02_02': return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_leggings.iff" - if name == 'armor_ithorian_roadmap_helmet_02_03': + if name == 'armor_ithorian_roadmap_helmet_02_02': return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_helmet.iff" - if name == 'armor_ithorian_roadmap_bicep_l_02_03': + if name == 'armor_ithorian_roadmap_bicep_l_02_02': return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bicep_l.iff" - if name == 'armor_ithorian_roadmap_bicep_r_02_03': + if name == 'armor_ithorian_roadmap_bicep_r_02_02': return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bicep_r.iff" - if name == 'armor_ithorian_roadmap_bracer_l_02_03': + if name == 'armor_ithorian_roadmap_bracer_l_02_02': return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bracer_l.iff" - if name == 'armor_ithorian_roadmap_bracer_r_02_03': + if name == 'armor_ithorian_roadmap_bracer_r_02_02': return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bracer_r.iff" - if name == 'armor_ithorian_roadmap_boots_02_03': + if name == 'armor_ithorian_roadmap_boots_02_02': return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_boots.iff" - if name == 'armor_ithorian_roadmap_gloves_02_03': + if name == 'armor_ithorian_roadmap_gloves_02_02': return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_gloves.iff" - if name == 'weapon_pistol_of_roadmap_01_02': + if name == 'weapon_pistol_officer_roadmap_01_02': return "object/weapon/ranged/pistol/shared_pistol_dl44.iff" if name == 'item_officer_ring_01_02': From 8ae66375da0201ff0a5e7663fdce75557fe4fff9 Mon Sep 17 00:00:00 2001 From: Viaron Date: Thu, 7 Aug 2014 23:27:21 -0400 Subject: [PATCH 21/51] Added Transfer of Several Admin Commands by Zing --- scripts/commands/adjustLotCount.py | 15 +++++++++++ scripts/commands/broadcastGalaxy.py | 12 +++++++++ scripts/commands/broadcastPlanet.py | 11 ++++++++ scripts/commands/credits.py | 20 ++++++++++++++ scripts/commands/invulnerable.py | 33 +++++++++++++++++++++++ scripts/commands/setRank.py | 41 +++++++++++++++++++++++++++++ 6 files changed, 132 insertions(+) create mode 100644 scripts/commands/adjustLotCount.py create mode 100644 scripts/commands/broadcastGalaxy.py create mode 100644 scripts/commands/broadcastPlanet.py create mode 100644 scripts/commands/credits.py create mode 100644 scripts/commands/invulnerable.py create mode 100644 scripts/commands/setRank.py diff --git a/scripts/commands/adjustLotCount.py b/scripts/commands/adjustLotCount.py new file mode 100644 index 00000000..4d20f4c7 --- /dev/null +++ b/scripts/commands/adjustLotCount.py @@ -0,0 +1,15 @@ +import sys + +def run(core, actor, target, commandString): + commandArgs = commandString.split(' ') + arg1 = commandArgs[0] + + if target is None: + target = actor + + if target: + playerObject = target.getSlottedObject('ghost') + playerObject.setLotsRemaining(playerObject.getLotsRemaining() + int(arg1)) + print(playerObject.getLotsRemaining()) + actor.sendSystemMessage('GM: Adjust Lot Count: Completed Successfully for ' + target.getFirstName(), 0) + return \ No newline at end of file diff --git a/scripts/commands/broadcastGalaxy.py b/scripts/commands/broadcastGalaxy.py new file mode 100644 index 00000000..04a1ae09 --- /dev/null +++ b/scripts/commands/broadcastGalaxy.py @@ -0,0 +1,12 @@ + +from services.sui import SUIWindow +from services.sui.SUIWindow import Trigger +from java.util import Vector +import sys + +def setup(): + return + +def run(core, actor, target, commandString): + core.chatService.broadcastGalaxy(commandString) + return \ No newline at end of file diff --git a/scripts/commands/broadcastPlanet.py b/scripts/commands/broadcastPlanet.py new file mode 100644 index 00000000..cb2956d2 --- /dev/null +++ b/scripts/commands/broadcastPlanet.py @@ -0,0 +1,11 @@ +from services.sui import SUIWindow +from services.sui.SUIWindow import Trigger +from java.util import Vector +import sys + +def setup(): + return + +def run(core, actor, target, commandString): + core.chatService.broadcastPlanet(commandString, actor.getPlanet()) + return \ No newline at end of file diff --git a/scripts/commands/credits.py b/scripts/commands/credits.py new file mode 100644 index 00000000..11d28a36 --- /dev/null +++ b/scripts/commands/credits.py @@ -0,0 +1,20 @@ +import sys + + + +def run(core, actor, target, commandString): + commandArgs = commandString.split(' ') + arg1 = commandArgs[0] + playerObject = actor.getSlottedObject('ghost') + + if actor: + actor.setCashCredits(actor.getCashCredits() + int(arg1)) + actor.sendSystemMessage(actor.getFirstName() + ' has removed ' + arg1 + ' credits from Project SWG\'s bank.', 0) + + if actor and target: + target.setCashCredits(target.getCashCredits() + int(arg1)) + target.sendSystemMessage('You have recieved ' + arg1 + ' credits from ' + actor.getFirstName(), 0) + actor.sendSystemMessage('You have transferred ' + arg1 + ' credits to ' + target.getFirstName(), 0) + + + return \ No newline at end of file diff --git a/scripts/commands/invulnerable.py b/scripts/commands/invulnerable.py new file mode 100644 index 00000000..90aab004 --- /dev/null +++ b/scripts/commands/invulnerable.py @@ -0,0 +1,33 @@ +import sys +from resources.datatables import Options + +def run(core, actor, target, commandString): + commandArgs = commandString.split(' ') + command = commandArgs[0] + + + if command == 'invisible': + if (actor.isInStealth()): + actor.setInStealth(False) + actor.setRadarVisible(True) + actor.sendSystemMessage('GM Command Successfull: You are no longer Invisible.', 0) + + else: + actor.setInStealth(True) + actor.setRadarVisible(False) + actor.sendSystemMessage('GM Command Successfull: You are now Invisible.', 0) + + if actor.getOptionsBitmask() == 128: + actor.setOptionsBitmask(Options.NONE) + actor.sendSystemMessage('GM Command Successfull: You are now Invulnerable.', 0) + + + elif actor.getOptionsBitmask() == 0: + actor.setOptionsBitmask(Options.ATTACKABLE) + print(actor.getOptionsBitmask()) + + actor.sendSystemMessage('GM Command Successfull: You are no longer Invulnerable.', 0) + + return + + \ No newline at end of file diff --git a/scripts/commands/setRank.py b/scripts/commands/setRank.py new file mode 100644 index 00000000..afdc5b16 --- /dev/null +++ b/scripts/commands/setRank.py @@ -0,0 +1,41 @@ +import sys +from resources.datatables import GcwRank +from services.gcw import GCWService + +def run(core, actor, target, commandString): + commandArgs = commandString.split(' ') + arg1 = commandArgs[0] + if len(commandArgs) > 1: + arg2 = commandArgs[1] + + if target is None: + target = actor + + if target.getFaction() == 'rebel' or 'imperial' and arg1 == 'up': + playerObject = target.getSlottedObject('ghost') + playerObject.setCurrentRank(int(arg2)) + newrank = playerObject.getCurrentRank() + core.scriptService.callScript("scripts/collections/", "gcwrank_" + target.getFaction(), "handleRankUp", core, target, newrank) + actor.sendSystemMessage('GM: Set Rank: Completed Successfully', 0) + if target.getFaction() == 'rebel' or 'imperial' and arg1 == 'down': + playerObject = target.getSlottedObject('ghost') + playerObject.setCurrentRank(int(arg2)) + newrank = playerObject.getCurrentRank() + core.scriptService.callScript("scripts/collections/", "gcwrank_" + target.getFaction(), "handleRankDown", target, newrank) + actor.sendSystemMessage('GM: Set Rank: Completed Successfully', 0) + +# if target.getFaction() == 'imperial' and arg1 == 'up': +# if arg1 == 'up': +# playerObject = actor.getSlottedObject('ghost') +# playerObject.setCurrentRank(int(arg2)) +# newrank = playerObject.getCurrentRank() +# core.scriptService.callScript("scripts/collections/", "gcwrank_" + target.getFaction(), "handleRankUp", core, target, newrank) +# actor.sendSystemMessage('GM: Set Rank: Completed Successfully', 0) +# if target.getFaction() == 'imperial' and arg1 == 'down': +# playerObject = actor.getSlottedObject('ghost') +# playerObject.setCurrentRank(int(arg2)) +# newrank = playerObject.getCurrentRank() +# core.scriptService.callScript("scripts/collections/", "gcwrank_" + target.getFaction(), "handleRankDown", target, newrank) +# actor.sendSystemMessage('GM: Set Rank: Completed Successfully', 0) + + return \ No newline at end of file From 435a774ed4cfa8c7bb2546973fb08685f3ebd06b Mon Sep 17 00:00:00 2001 From: Viaron Date: Thu, 7 Aug 2014 23:35:09 -0400 Subject: [PATCH 22/51] Changed GCW Collection Scripts Transfer of commits by Zing --- scripts/collections/gcwrank_imperial.py | 20 ++++++++++---------- scripts/collections/gcwrank_rebel.py | 20 ++++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/scripts/collections/gcwrank_imperial.py b/scripts/collections/gcwrank_imperial.py index 19e67fe5..584d18a6 100644 --- a/scripts/collections/gcwrank_imperial.py +++ b/scripts/collections/gcwrank_imperial.py @@ -3,23 +3,23 @@ from resources.datatables import GcwRank def handleRankUp(core, actor, newrank): if newrank >= GcwRank.LIEUTENANT: - actor.addAbility('pvp_retaliation_ability') + actor.addAbility('command_pvp_retaliation_ability') core.collectionService.addCollection(actor, 'pvp_imperial_lieutenant') if newrank >= GcwRank.CAPTAIN: - actor.addAbility('pvp_adrenaline_ability') + actor.addAbility('command_pvp_adrenaline_ability') core.collectionService.addCollection(actor, 'pvp_imperial_captain') if newrank >= GcwRank.MAJOR: - actor.addAbility('pvp_unstoppable_ability') + actor.addAbility('command_pvp_unstoppable_ability') core.collectionService.addCollection(actor, 'pvp_imperial_major') if newrank >= GcwRank.LTCOLONEL: - actor.addAbility('pvp_last_man_ability') + actor.addAbility('command_pvp_last_man_ability') core.collectionService.addCollection(actor, 'pvp_imperial_lt_colonel') if newrank >= GcwRank.COLONEL: - actor.addAbility('pvp_aura_buff_self_ability') + actor.addAbility('pvp_aura_buff_imperial_self') core.collectionService.addCollection(actor, 'pvp_imperial_colonel') if newrank >= GcwRank.GENERAL: @@ -30,19 +30,19 @@ def handleRankUp(core, actor, newrank): def handleRankDown(actor, newrank): if newrank < GcwRank.LIEUTENANT: - actor.removeAbility('pvp_retaliation_ability') + actor.removeAbility('command_pvp_retaliation_ability') if newrank < GcwRank.CAPTAIN: - actor.removeAbility('pvp_adrenaline_ability') + actor.removeAbility('command_pvp_adrenaline_ability') if newrank < GcwRank.MAJOR: - actor.removeAbility('pvp_unstoppable_ability') + actor.removeAbility('command_pvp_unstoppable_ability') if newrank < GcwRank.LTCOLONEL: - actor.removeAbility('pvp_last_man_ability') + actor.removeAbility('command_pvp_last_man_ability') if newrank < GcwRank.COLONEL: - actor.removeAbility('pvp_aura_buff_self_ability') + actor.removeAbility('pvp_aura_buff_imperial_self') if newrank < GcwRank.GENERAL: actor.removeAbility('pvp_airstrike_ability') diff --git a/scripts/collections/gcwrank_rebel.py b/scripts/collections/gcwrank_rebel.py index 7cd757fc..3ba4222b 100644 --- a/scripts/collections/gcwrank_rebel.py +++ b/scripts/collections/gcwrank_rebel.py @@ -3,23 +3,23 @@ from resources.datatables import GcwRank def handleRankUp(core, actor, newrank): if newrank >= GcwRank.LIEUTENANT: - actor.addAbility('pvp_retaliation_rebel_ability') + actor.addAbility('command_pvp_retaliation_rebel_ability') core.collectionService.addCollection(actor, 'pvp_rebel_lieutenant') if newrank >= GcwRank.CAPTAIN: - actor.addAbility('pvp_adrenaline_rebel_ability') + actor.addAbility('command_pvp_adrenaline_rebel_ability') core.collectionService.addCollection(actor, 'pvp_rebel_captain') if newrank >= GcwRank.MAJOR: - actor.addAbility('pvp_unstoppable_rebel_ability') + actor.addAbility('command_pvp_unstoppable_rebel_ability') core.collectionService.addCollection(actor, 'pvp_rebel_major') if newrank >= GcwRank.COMMANDER: - actor.addAbility('pvp_last_man_rebel_ability') + actor.addAbility('command_pvp_last_man_rebel_ability') core.collectionService.addCollection(actor, 'pvp_rebel_commander') if newrank >= GcwRank.COLONEL: - actor.addAbility('pvp_aura_buff_self_rebel_ability') + actor.addAbility('pvp_aura_buff_rebel_self') core.collectionService.addCollection(actor, 'pvp_rebel_colonel') if newrank >= GcwRank.GENERAL: @@ -30,19 +30,19 @@ def handleRankUp(core, actor, newrank): def handleRankDown(actor, newrank): if newrank < GcwRank.LIEUTENANT: - actor.removeAbility('pvp_retaliation_rebel_ability') + actor.removeAbility('command_pvp_retaliation_rebel_ability') if newrank < GcwRank.CAPTAIN: - actor.removeAbility('pvp_adrenaline_rebel_ability') + actor.removeAbility('command_pvp_adrenaline_rebel_ability') if newrank < GcwRank.MAJOR: - actor.removeAbility('pvp_unstoppable_rebel_ability') + actor.removeAbility('command_pvp_unstoppable_rebel_ability') if newrank < GcwRank.COMMANDER: - actor.removeAbility('pvp_last_man_rebel_ability') + actor.removeAbility('command_pvp_last_man_rebel_ability') if newrank < GcwRank.COLONEL: - actor.removeAbility('pvp_aura_buff_self_rebel_ability') + actor.removeAbility('pvp_aura_buff_rebel_self') if newrank < GcwRank.GENERAL: actor.removeAbility('pvp_airstrike_rebel_ability') From bae95657d8efb8f5ce8ebfc41ed6695d48aa13d8 Mon Sep 17 00:00:00 2001 From: Zing Date: Thu, 7 Aug 2014 21:15:05 -0700 Subject: [PATCH 23/51] Fixed GCW rank commands not being rewarded, Fixed GCW rank armor stats. --- scripts/collections/gcwrank_imperial.py | 20 +++++++++---------- scripts/collections/gcwrank_rebel.py | 20 +++++++++---------- .../armor_rebel_spec_ops_belt.py | 6 ------ .../armor_rebel_spec_ops_boots.py | 6 ------ .../armor_rebel_spec_ops_gloves.py | 6 ------ ..._pvp_spec_ops_imperial_black_belt_05_01.py | 6 ------ ...pvp_spec_ops_imperial_black_boots_05_01.py | 6 ------ ...vp_spec_ops_imperial_black_gloves_05_01.py | 6 ------ 8 files changed, 20 insertions(+), 56 deletions(-) diff --git a/scripts/collections/gcwrank_imperial.py b/scripts/collections/gcwrank_imperial.py index 19e67fe5..584d18a6 100644 --- a/scripts/collections/gcwrank_imperial.py +++ b/scripts/collections/gcwrank_imperial.py @@ -3,23 +3,23 @@ from resources.datatables import GcwRank def handleRankUp(core, actor, newrank): if newrank >= GcwRank.LIEUTENANT: - actor.addAbility('pvp_retaliation_ability') + actor.addAbility('command_pvp_retaliation_ability') core.collectionService.addCollection(actor, 'pvp_imperial_lieutenant') if newrank >= GcwRank.CAPTAIN: - actor.addAbility('pvp_adrenaline_ability') + actor.addAbility('command_pvp_adrenaline_ability') core.collectionService.addCollection(actor, 'pvp_imperial_captain') if newrank >= GcwRank.MAJOR: - actor.addAbility('pvp_unstoppable_ability') + actor.addAbility('command_pvp_unstoppable_ability') core.collectionService.addCollection(actor, 'pvp_imperial_major') if newrank >= GcwRank.LTCOLONEL: - actor.addAbility('pvp_last_man_ability') + actor.addAbility('command_pvp_last_man_ability') core.collectionService.addCollection(actor, 'pvp_imperial_lt_colonel') if newrank >= GcwRank.COLONEL: - actor.addAbility('pvp_aura_buff_self_ability') + actor.addAbility('pvp_aura_buff_imperial_self') core.collectionService.addCollection(actor, 'pvp_imperial_colonel') if newrank >= GcwRank.GENERAL: @@ -30,19 +30,19 @@ def handleRankUp(core, actor, newrank): def handleRankDown(actor, newrank): if newrank < GcwRank.LIEUTENANT: - actor.removeAbility('pvp_retaliation_ability') + actor.removeAbility('command_pvp_retaliation_ability') if newrank < GcwRank.CAPTAIN: - actor.removeAbility('pvp_adrenaline_ability') + actor.removeAbility('command_pvp_adrenaline_ability') if newrank < GcwRank.MAJOR: - actor.removeAbility('pvp_unstoppable_ability') + actor.removeAbility('command_pvp_unstoppable_ability') if newrank < GcwRank.LTCOLONEL: - actor.removeAbility('pvp_last_man_ability') + actor.removeAbility('command_pvp_last_man_ability') if newrank < GcwRank.COLONEL: - actor.removeAbility('pvp_aura_buff_self_ability') + actor.removeAbility('pvp_aura_buff_imperial_self') if newrank < GcwRank.GENERAL: actor.removeAbility('pvp_airstrike_ability') diff --git a/scripts/collections/gcwrank_rebel.py b/scripts/collections/gcwrank_rebel.py index 7cd757fc..3ba4222b 100644 --- a/scripts/collections/gcwrank_rebel.py +++ b/scripts/collections/gcwrank_rebel.py @@ -3,23 +3,23 @@ from resources.datatables import GcwRank def handleRankUp(core, actor, newrank): if newrank >= GcwRank.LIEUTENANT: - actor.addAbility('pvp_retaliation_rebel_ability') + actor.addAbility('command_pvp_retaliation_rebel_ability') core.collectionService.addCollection(actor, 'pvp_rebel_lieutenant') if newrank >= GcwRank.CAPTAIN: - actor.addAbility('pvp_adrenaline_rebel_ability') + actor.addAbility('command_pvp_adrenaline_rebel_ability') core.collectionService.addCollection(actor, 'pvp_rebel_captain') if newrank >= GcwRank.MAJOR: - actor.addAbility('pvp_unstoppable_rebel_ability') + actor.addAbility('command_pvp_unstoppable_rebel_ability') core.collectionService.addCollection(actor, 'pvp_rebel_major') if newrank >= GcwRank.COMMANDER: - actor.addAbility('pvp_last_man_rebel_ability') + actor.addAbility('command_pvp_last_man_rebel_ability') core.collectionService.addCollection(actor, 'pvp_rebel_commander') if newrank >= GcwRank.COLONEL: - actor.addAbility('pvp_aura_buff_self_rebel_ability') + actor.addAbility('pvp_aura_buff_rebel_self') core.collectionService.addCollection(actor, 'pvp_rebel_colonel') if newrank >= GcwRank.GENERAL: @@ -30,19 +30,19 @@ def handleRankUp(core, actor, newrank): def handleRankDown(actor, newrank): if newrank < GcwRank.LIEUTENANT: - actor.removeAbility('pvp_retaliation_rebel_ability') + actor.removeAbility('command_pvp_retaliation_rebel_ability') if newrank < GcwRank.CAPTAIN: - actor.removeAbility('pvp_adrenaline_rebel_ability') + actor.removeAbility('command_pvp_adrenaline_rebel_ability') if newrank < GcwRank.MAJOR: - actor.removeAbility('pvp_unstoppable_rebel_ability') + actor.removeAbility('command_pvp_unstoppable_rebel_ability') if newrank < GcwRank.COMMANDER: - actor.removeAbility('pvp_last_man_rebel_ability') + actor.removeAbility('command_pvp_last_man_rebel_ability') if newrank < GcwRank.COLONEL: - actor.removeAbility('pvp_aura_buff_self_rebel_ability') + actor.removeAbility('pvp_aura_buff_rebel_self') if newrank < GcwRank.GENERAL: actor.removeAbility('pvp_airstrike_rebel_ability') diff --git a/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_belt.py b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_belt.py index 1be134b6..b589b6e8 100644 --- a/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_belt.py +++ b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_belt.py @@ -10,10 +10,4 @@ def setup(core, object): object.setIntAttribute('no_trade', 1) object.setStringAttribute('faction_restriction', 'Rebel') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') - object.setIntAttribute('cat_armor_standard_protection.kinetic', 6608) - object.setIntAttribute('cat_armor_standard_protection.energy', 4608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 5608) return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_boots.py b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_boots.py index f7d17219..c79a2747 100644 --- a/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_boots.py +++ b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_boots.py @@ -10,10 +10,4 @@ def setup(core, object): object.setIntAttribute('no_trade', 1) object.setStringAttribute('faction_restriction', 'Rebel') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') - object.setIntAttribute('cat_armor_standard_protection.kinetic', 6608) - object.setIntAttribute('cat_armor_standard_protection.energy', 4608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 5608) return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_gloves.py b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_gloves.py index 2e0a2417..ff30b43a 100644 --- a/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_gloves.py +++ b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_gloves.py @@ -10,10 +10,4 @@ def setup(core, object): object.setIntAttribute('no_trade', 1) object.setStringAttribute('faction_restriction', 'Rebel') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') - object.setIntAttribute('cat_armor_standard_protection.kinetic', 6608) - object.setIntAttribute('cat_armor_standard_protection.energy', 4608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 5608) return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/armor/stormtrooper/armor_pvp_spec_ops_imperial_black_belt_05_01.py b/scripts/object/tangible/wearables/armor/stormtrooper/armor_pvp_spec_ops_imperial_black_belt_05_01.py index 3c98941f..3ebc0dbf 100644 --- a/scripts/object/tangible/wearables/armor/stormtrooper/armor_pvp_spec_ops_imperial_black_belt_05_01.py +++ b/scripts/object/tangible/wearables/armor/stormtrooper/armor_pvp_spec_ops_imperial_black_belt_05_01.py @@ -11,10 +11,4 @@ def setup(core, object): object.setIntAttribute('no_trade', 1) object.setStringAttribute('faction_restriction', 'Imperial') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') - object.setIntAttribute('cat_armor_standard_protection.kinetic', 6608) - object.setIntAttribute('cat_armor_standard_protection.energy', 4608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 5608) return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/armor/stormtrooper/armor_pvp_spec_ops_imperial_black_boots_05_01.py b/scripts/object/tangible/wearables/armor/stormtrooper/armor_pvp_spec_ops_imperial_black_boots_05_01.py index 5e993cf8..ffcc1157 100644 --- a/scripts/object/tangible/wearables/armor/stormtrooper/armor_pvp_spec_ops_imperial_black_boots_05_01.py +++ b/scripts/object/tangible/wearables/armor/stormtrooper/armor_pvp_spec_ops_imperial_black_boots_05_01.py @@ -11,10 +11,4 @@ def setup(core, object): object.setIntAttribute('no_trade', 1) object.setStringAttribute('faction_restriction', 'Imperial') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') - object.setIntAttribute('cat_armor_standard_protection.kinetic', 6608) - object.setIntAttribute('cat_armor_standard_protection.energy', 4608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 5608) return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/armor/stormtrooper/armor_pvp_spec_ops_imperial_black_gloves_05_01.py b/scripts/object/tangible/wearables/armor/stormtrooper/armor_pvp_spec_ops_imperial_black_gloves_05_01.py index bfcbba83..8781ee28 100644 --- a/scripts/object/tangible/wearables/armor/stormtrooper/armor_pvp_spec_ops_imperial_black_gloves_05_01.py +++ b/scripts/object/tangible/wearables/armor/stormtrooper/armor_pvp_spec_ops_imperial_black_gloves_05_01.py @@ -11,10 +11,4 @@ def setup(core, object): object.setIntAttribute('no_trade', 1) object.setStringAttribute('faction_restriction', 'Imperial') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') - object.setIntAttribute('cat_armor_standard_protection.kinetic', 6608) - object.setIntAttribute('cat_armor_standard_protection.energy', 4608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 5608) - object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 5608) return \ No newline at end of file From f4bf11522bfff858c75fc654455a7526eee3006c Mon Sep 17 00:00:00 2001 From: Iosnowore Kun Date: Fri, 8 Aug 2014 00:22:48 -0400 Subject: [PATCH 24/51] Added No Trade To Most Roadmap Rewards and Added More Trader Rewards Also removed the spy roadmap belt because it doesn't have one in the item_rewards ToC --- ...mor_bounty_hunter_roadmap_bicep_l_02_01.py | 1 + ...mor_bounty_hunter_roadmap_bicep_r_02_01.py | 1 + ...armor_bounty_hunter_roadmap_boots_02_01.py | 1 + ...or_bounty_hunter_roadmap_bracer_l_02_01.py | 1 + ...or_bounty_hunter_roadmap_bracer_r_02_01.py | 1 + ...armor_bounty_hunter_roadmap_chest_02_01.py | 1 + ...rmor_bounty_hunter_roadmap_gloves_02_01.py | 1 + ...rmor_bounty_hunter_roadmap_helmet_02_01.py | 1 + ...or_bounty_hunter_roadmap_leggings_02_01.py | 1 + .../armor_commando_roadmap_bicep_l_02_01.py | 1 + .../armor_commando_roadmap_bicep_r_02_01.py | 1 + .../armor_commando_roadmap_boots_02_01.py | 1 + .../armor_commando_roadmap_bracer_l_02_01.py | 1 + .../armor_commando_roadmap_bracer_r_02_01.py | 1 + .../armor_commando_roadmap_chest_02_01.py | 1 + .../armor_commando_roadmap_gloves_02_01.py | 1 + .../armor_commando_roadmap_helmet_02_01.py | 1 + .../armor_commando_roadmap_leggings_02_01.py | 1 + .../armor_officer_roadmap_bicep_l_02_01.py | 1 + .../armor_officer_roadmap_bicep_r_02_01.py | 1 + .../armor_officer_roadmap_boots_02_01.py | 1 + .../armor_officer_roadmap_bracer_l_02_01.py | 1 + .../armor_officer_roadmap_bracer_r_02_01.py | 1 + .../armor_officer_roadmap_chest_02_01.py | 1 + .../armor_officer_roadmap_gloves_02_01.py | 1 + .../armor_officer_roadmap_helmet_02_01.py | 1 + .../armor_officer_roadmap_leggings_02_01.py | 1 + .../padded/armor_spy_roadmap_belt_02_01.py | 10 ------- .../padded/armor_spy_roadmap_bicep_l_02_01.py | 1 + .../padded/armor_spy_roadmap_bicep_r_02_01.py | 1 + .../padded/armor_spy_roadmap_boots_02_01.py | 1 + .../armor_spy_roadmap_bracer_l_02_01.py | 1 + .../armor_spy_roadmap_bracer_r_02_01.py | 1 + .../padded/armor_spy_roadmap_chest_02_01.py | 1 + .../padded/armor_spy_roadmap_gloves_02_01.py | 1 + .../padded/armor_spy_roadmap_helmet_02_01.py | 1 + .../armor_spy_roadmap_leggings_02_01.py | 1 + .../armor_medic_roadmap_bicep_l_02_01.py | 1 + .../armor_medic_roadmap_bicep_r_02_01.py | 1 + .../tantel/armor_medic_roadmap_boots_02_01.py | 1 + .../armor_medic_roadmap_bracer_l_02_01.py | 1 + .../armor_medic_roadmap_bracer_r_02_01.py | 1 + .../tantel/armor_medic_roadmap_chest_02_01.py | 1 + .../armor_medic_roadmap_gloves_02_01.py | 1 + .../armor_medic_roadmap_helmet_02_01.py | 1 + .../armor_medic_roadmap_leggings_02_01.py | 1 + .../armor_smuggler_roadmap_bicep_l_02_01.py | 1 + .../armor_smuggler_roadmap_bicep_r_02_01.py | 1 + .../armor_smuggler_roadmap_boots_02_01.py | 1 + .../armor_smuggler_roadmap_bracer_l_02_01.py | 1 + .../armor_smuggler_roadmap_bracer_r_02_01.py | 1 + .../armor_smuggler_roadmap_chest_02_01.py | 1 + .../armor_smuggler_roadmap_gloves_02_01.py | 1 + .../armor_smuggler_roadmap_helmet_02_01.py | 1 + .../armor_smuggler_roadmap_leggings_02_01.py | 1 + .../item_roadmap_belt_bounty_hunter_01_02.py | 1 + .../zam/item_roadmap_belt_commando_01_02.py | 1 + .../item_roadmap_belt_entertainer_01_02.py | 1 + ...item_roadmap_belt_force_sensitive_01_02.py | 1 + .../zam/item_roadmap_belt_medic_01_02.py | 1 + .../zam/item_roadmap_belt_officer_01_02.py | 1 + .../zam/item_roadmap_belt_smuggler_01_02.py | 1 + .../armor/zam/item_roadmap_belt_spy_01_02.py | 1 + .../zam/item_roadmap_belt_trader_01_02.py | 1 + .../item_bounty_hunter_backpack_01_02.py | 1 + .../backpack/item_commando_backpack_01_02.py | 1 + .../item_entertainer_backpack_01_02.py | 1 + .../backpack/item_medic_backpack_01_02.py | 1 + .../backpack/item_officer_backpack_01_02.py | 1 + .../backpack/item_smuggler_backpack_01_02.py | 1 + .../backpack/item_spy_backpack_01_02.py | 1 + .../backpack/item_trader_backpack_01_02.py | 1 + .../ithorian/item_trader_roadmap_hat_02_01.py | 4 +++ ...em_trader_roadmap_jumpsuit_02_02 - Copy.py | 4 +++ .../item_trader_roadmap_gloves_02_02.py | 11 ++++++++ .../item_trader_roadmap_shoulder_pad_02_01.py | 11 ++++++++ scripts/roadmap/entertainer_1a.py | 4 +-- scripts/roadmap/trader_0a.py | 27 ++++++++++++++++--- scripts/roadmap/trader_0b.py | 24 +++++++++++++++-- scripts/roadmap/trader_0c.py | 23 +++++++++++++++- scripts/roadmap/trader_0d.py | 23 +++++++++++++++- 81 files changed, 193 insertions(+), 19 deletions(-) delete mode 100644 scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_belt_02_01.py create mode 100644 scripts/object/tangible/wearables/ithorian/item_trader_roadmap_hat_02_01.py create mode 100644 scripts/object/tangible/wearables/ithorian/item_trader_roadmap_jumpsuit_02_02 - Copy.py create mode 100644 scripts/object/tangible/wearables/wookiee/item_trader_roadmap_gloves_02_02.py create mode 100644 scripts/object/tangible/wearables/wookiee/item_trader_roadmap_shoulder_pad_02_01.py diff --git a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bicep_l_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bicep_l_02_01.py index eca97b55..48fcbde1 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bicep_l_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bicep_l_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_bounty_hunter_roadmap_bicep_l_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_bounty_hunter_roadmap_bicep_l_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bicep_r_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bicep_r_02_01.py index 620162e6..18778491 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bicep_r_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bicep_r_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_bounty_hunter_roadmap_bicep_r_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_bounty_hunter_roadmap_bicep_r_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_boots_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_boots_02_01.py index 02901aa8..01913d13 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_boots_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_boots_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_bounty_hunter_roadmap_boots_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_bounty_hunter_roadmap_boots_02_01') + object.setIntAttribute('no_trade', 1) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') return diff --git a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bracer_l_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bracer_l_02_01.py index 9cc31a18..32ca34fb 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bracer_l_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bracer_l_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_bounty_hunter_roadmap_bracer_l_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_bounty_hunter_roadmap_bracer_l_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bracer_r_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bracer_r_02_01.py index 9d568858..34c21636 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bracer_r_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bracer_r_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_bounty_hunter_roadmap_bracer_r_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_bounty_hunter_roadmap_bracer_r_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_chest_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_chest_02_01.py index 0aa599e3..02e45e85 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_chest_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_chest_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_bounty_hunter_roadmap_chest_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_bounty_hunter_roadmap_chest_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_gloves_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_gloves_02_01.py index 2dea0b31..44a518f0 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_gloves_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_gloves_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_bounty_hunter_roadmap_gloves_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_bounty_hunter_roadmap_gloves_02_01') + object.setIntAttribute('no_trade', 1) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') return diff --git a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_helmet_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_helmet_02_01.py index e51b6216..6e2f1fb7 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_helmet_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_helmet_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_bounty_hunter_roadmap_helmet_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_bounty_hunter_roadmap_helmet_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_leggings_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_leggings_02_01.py index fcb345da..58f96dcc 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_leggings_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_leggings_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_bounty_hunter_roadmap_leggings_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_bounty_hunter_roadmap_leggings_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bicep_l_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bicep_l_02_01.py index ab6643d1..9636c70c 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bicep_l_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bicep_l_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_commando_roadmap_bicep_l_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_commando_roadmap_bicep_l_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Commando') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bicep_r_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bicep_r_02_01.py index ade79d6e..49d07ed6 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bicep_r_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bicep_r_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_commando_roadmap_bicep_r_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_commando_roadmap_bicep_r_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Commando') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_boots_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_boots_02_01.py index 6c0d8c60..6ef00772 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_boots_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_boots_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_commando_roadmap_boots_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_commando_roadmap_boots_02_01') + object.setIntAttribute('no_trade', 1) object.setStringAttribute('class_required', 'Commando') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') return diff --git a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bracer_l_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bracer_l_02_01.py index 868cc082..660b3a6e 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bracer_l_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bracer_l_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_commando_roadmap_bracer_l_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_commando_roadmap_bracer_l_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Commando') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bracer_r_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bracer_r_02_01.py index a51da683..02c8cbe7 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bracer_r_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bracer_r_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_commando_roadmap_bracer_r_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_commando_roadmap_bracer_r_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Commando') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_chest_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_chest_02_01.py index c6ffaa48..1690021b 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_chest_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_chest_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_commando_roadmap_chest_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_commando_roadmap_chest_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Commando') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_gloves_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_gloves_02_01.py index 3bb5dde3..7ebff097 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_gloves_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_gloves_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_commando_roadmap_gloves_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_commando_roadmap_gloves_02_01') + object.setIntAttribute('no_trade', 1) object.setStringAttribute('class_required', 'Commando') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') return diff --git a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_helmet_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_helmet_02_01.py index 724dabb0..2651b355 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_helmet_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_helmet_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_commando_roadmap_helmet_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_commando_roadmap_helmet_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Commando') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_leggings_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_leggings_02_01.py index 039b9ab4..b1c733f2 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_leggings_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_leggings_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_commando_roadmap_leggings_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_commando_roadmap_leggings_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Commando') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_bicep_l_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_bicep_l_02_01.py index 367b6b0f..77e5a82c 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_bicep_l_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_bicep_l_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_officer_roadmap_bicep_l_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_officer_roadmap_bicep_l_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Officer') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_bicep_r_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_bicep_r_02_01.py index 34a0b3e0..4292509c 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_bicep_r_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_bicep_r_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_officer_roadmap_bicep_r_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_officer_roadmap_bicep_r_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Officer') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_boots_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_boots_02_01.py index 22ac3210..571e40a7 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_boots_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_boots_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_officer_roadmap_boots_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_officer_roadmap_boots_02_01') + object.setIntAttribute('no_trade', 1) object.setStringAttribute('class_required', 'Officer') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') return diff --git a/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_bracer_l_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_bracer_l_02_01.py index 91127698..8a96a9e9 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_bracer_l_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_bracer_l_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_officer_roadmap_bracer_l_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_officer_roadmap_bracer_l_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Officer') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_bracer_r_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_bracer_r_02_01.py index 5b388ff8..e5b2ffce 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_bracer_r_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_bracer_r_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_officer_roadmap_bracer_r_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_officer_roadmap_bracer_r_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Officer') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_chest_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_chest_02_01.py index 42da84a6..484e8680 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_chest_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_chest_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_officer_roadmap_chest_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_officer_roadmap_chest_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Officer') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_gloves_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_gloves_02_01.py index 0693bb14..c1013e71 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_gloves_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_gloves_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_officer_roadmap_gloves_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_officer_roadmap_gloves_02_01') + object.setIntAttribute('no_trade', 1) object.setStringAttribute('class_required', 'Officer') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') return diff --git a/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_helmet_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_helmet_02_01.py index b7b499d5..9b4ac6bd 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_helmet_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_helmet_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_officer_roadmap_helmet_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_officer_roadmap_helmet_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Officer') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_leggings_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_leggings_02_01.py index 570e11ae..57fabef2 100644 --- a/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_leggings_02_01.py +++ b/scripts/object/tangible/wearables/armor/composite/armor_officer_roadmap_leggings_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_officer_roadmap_leggings_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_officer_roadmap_leggings_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Officer') object.setStringAttribute('armor_category', '@obj_attr_n:armor_assault') diff --git a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_belt_02_01.py b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_belt_02_01.py deleted file mode 100644 index bd693ed0..00000000 --- a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_belt_02_01.py +++ /dev/null @@ -1,10 +0,0 @@ -import sys - -def setup(core, object): - object.setStfFilename('static_item_n') - object.setStfName('armor_spy_roadmap_boots_02_01') - object.setDetailFilename('static_item_d') - object.setDetailName('armor_spy_roadmap_boots_02_01') - object.setStringAttribute('class_required', 'Spy') - object.setStringAttribute('armor_category', '@obj_attr_n:armor_battle') - return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_bicep_l_02_01.py b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_bicep_l_02_01.py index 83011087..614cfaaa 100644 --- a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_bicep_l_02_01.py +++ b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_bicep_l_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_spy_roadmap_bicep_l_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_spy_roadmap_bicep_l_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Spy') object.setStringAttribute('armor_category', '@obj_attr_n:armor_battle') diff --git a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_bicep_r_02_01.py b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_bicep_r_02_01.py index 22974eb8..6439de0e 100644 --- a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_bicep_r_02_01.py +++ b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_bicep_r_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_spy_roadmap_bicep_r_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_spy_roadmap_bicep_r_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Spy') object.setStringAttribute('armor_category', '@obj_attr_n:armor_battle') diff --git a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_boots_02_01.py b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_boots_02_01.py index bd693ed0..00f664b1 100644 --- a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_boots_02_01.py +++ b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_boots_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_spy_roadmap_boots_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_spy_roadmap_boots_02_01') + object.setIntAttribute('no_trade', 1) object.setStringAttribute('class_required', 'Spy') object.setStringAttribute('armor_category', '@obj_attr_n:armor_battle') return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_bracer_l_02_01.py b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_bracer_l_02_01.py index bc0cbb14..1a75853f 100644 --- a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_bracer_l_02_01.py +++ b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_bracer_l_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_spy_roadmap_bracer_l_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_spy_roadmap_bracer_l_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Spy') object.setStringAttribute('armor_category', '@obj_attr_n:armor_battle') diff --git a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_bracer_r_02_01.py b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_bracer_r_02_01.py index af5e6c49..5dbe00a0 100644 --- a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_bracer_r_02_01.py +++ b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_bracer_r_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_spy_roadmap_bracer_r_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_spy_roadmap_bracer_r_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Spy') object.setStringAttribute('armor_category', '@obj_attr_n:armor_battle') diff --git a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_chest_02_01.py b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_chest_02_01.py index dd1bd6fb..06ad9fe9 100644 --- a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_chest_02_01.py +++ b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_chest_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_spy_roadmap_chest_plate_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_spy_roadmap_chest_plate_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Spy') object.setStringAttribute('armor_category', '@obj_attr_n:armor_battle') diff --git a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_gloves_02_01.py b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_gloves_02_01.py index 1cf2d36e..33770962 100644 --- a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_gloves_02_01.py +++ b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_gloves_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_spy_roadmap_gloves_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_spy_roadmap_gloves_02_01') + object.setIntAttribute('no_trade', 1) object.setStringAttribute('class_required', 'Spy') object.setStringAttribute('armor_category', '@obj_attr_n:armor_battle') return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_helmet_02_01.py b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_helmet_02_01.py index e9051900..d492b352 100644 --- a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_helmet_02_01.py +++ b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_helmet_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_spy_roadmap_helmet_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_spy_roadmap_helmet_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Spy') object.setStringAttribute('armor_category', '@obj_attr_n:armor_battle') diff --git a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_leggings_02_01.py b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_leggings_02_01.py index 8ab9eade..f2f0cde4 100644 --- a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_leggings_02_01.py +++ b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_leggings_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_spy_roadmap_leggings_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_spy_roadmap_leggings_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Spy') object.setStringAttribute('armor_category', '@obj_attr_n:armor_battle') diff --git a/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_bicep_l_02_01.py b/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_bicep_l_02_01.py index efcf7879..60903312 100644 --- a/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_bicep_l_02_01.py +++ b/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_bicep_l_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_medic_roadmap_bicep_l_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_medic_roadmap_bicep_l_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Medic') object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') diff --git a/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_bicep_r_02_01.py b/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_bicep_r_02_01.py index f20698ec..fc70e44e 100644 --- a/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_bicep_r_02_01.py +++ b/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_bicep_r_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_medic_roadmap_bicep_r_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_medic_roadmap_bicep_r_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Medic') object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') diff --git a/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_boots_02_01.py b/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_boots_02_01.py index 9062ccca..4cc0860a 100644 --- a/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_boots_02_01.py +++ b/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_boots_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_medic_roadmap_boots_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_medic_roadmap_boots_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Medic') object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') diff --git a/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_bracer_l_02_01.py b/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_bracer_l_02_01.py index b4911dfb..2326a65e 100644 --- a/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_bracer_l_02_01.py +++ b/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_bracer_l_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_medic_roadmap_bracer_l_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_medic_roadmap_bracer_l_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Medic') object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') diff --git a/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_bracer_r_02_01.py b/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_bracer_r_02_01.py index 4a5aa536..83680392 100644 --- a/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_bracer_r_02_01.py +++ b/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_bracer_r_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_medic_roadmap_bracer_r_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_medic_roadmap_bicep_r_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Medic') object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') diff --git a/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_chest_02_01.py b/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_chest_02_01.py index 4d0bb1c6..0644f14f 100644 --- a/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_chest_02_01.py +++ b/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_chest_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_medic_roadmap_chest_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_medic_roadmap_chest_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Medic') object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') diff --git a/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_gloves_02_01.py b/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_gloves_02_01.py index 0030a3f4..ddf8d518 100644 --- a/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_gloves_02_01.py +++ b/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_gloves_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_medic_roadmap_gloves_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_medic_roadmap_gloves_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Medic') object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') diff --git a/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_helmet_02_01.py b/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_helmet_02_01.py index dc80455a..050b9a49 100644 --- a/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_helmet_02_01.py +++ b/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_helmet_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_medic_roadmap_helmet_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_medic_roadmap_helmet_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Medic') object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') diff --git a/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_leggings_02_01.py b/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_leggings_02_01.py index c56989d1..7433eba6 100644 --- a/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_leggings_02_01.py +++ b/scripts/object/tangible/wearables/armor/tantel/armor_medic_roadmap_leggings_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_medic_roadmap_leggings_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_medic_roadmap_leggings_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Medic') object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') diff --git a/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_bicep_l_02_01.py b/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_bicep_l_02_01.py index 9e0b3774..7498dadf 100644 --- a/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_bicep_l_02_01.py +++ b/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_bicep_l_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_smuggler_roadmap_bicep_l_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_smuggler_roadmap_bicep_l_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Smuggler') object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') diff --git a/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_bicep_r_02_01.py b/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_bicep_r_02_01.py index bbf860be..c1fff4a0 100644 --- a/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_bicep_r_02_01.py +++ b/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_bicep_r_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_smuggler_roadmap_bicep_r_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_smuggler_roadmap_bicep_r_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Smuggler') object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') diff --git a/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_boots_02_01.py b/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_boots_02_01.py index 061183b7..d39b7e0a 100644 --- a/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_boots_02_01.py +++ b/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_boots_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_smuggler_roadmap_boots_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_smuggler_roadmap_boots_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Smuggler') object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') diff --git a/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_bracer_l_02_01.py b/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_bracer_l_02_01.py index 80ff5147..562a47f5 100644 --- a/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_bracer_l_02_01.py +++ b/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_bracer_l_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_smuggler_roadmap_bracer_l_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_smuggler_roadmap_bracer_l_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Smuggler') object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') diff --git a/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_bracer_r_02_01.py b/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_bracer_r_02_01.py index b6dd73e9..304313b3 100644 --- a/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_bracer_r_02_01.py +++ b/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_bracer_r_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_smuggler_roadmap_bracer_r_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_smuggler_roadmap_bicep_r_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Smuggler') object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') diff --git a/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_chest_02_01.py b/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_chest_02_01.py index 9cd47af2..54689dbd 100644 --- a/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_chest_02_01.py +++ b/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_chest_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_smuggler_roadmap_chest_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_smuggler_roadmap_chest_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Smuggler') object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') diff --git a/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_gloves_02_01.py b/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_gloves_02_01.py index f9d19a1b..3841d2aa 100644 --- a/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_gloves_02_01.py +++ b/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_gloves_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_smuggler_roadmap_gloves_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_smuggler_roadmap_gloves_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Smuggler') object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') diff --git a/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_helmet_02_01.py b/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_helmet_02_01.py index 45b096a3..016ebbb7 100644 --- a/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_helmet_02_01.py +++ b/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_helmet_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_smuggler_roadmap_helmet_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_smuggler_roadmap_helmet_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Smuggler') object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') diff --git a/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_leggings_02_01.py b/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_leggings_02_01.py index 4d079a82..d9c91bce 100644 --- a/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_leggings_02_01.py +++ b/scripts/object/tangible/wearables/armor/tantel/armor_smuggler_roadmap_leggings_02_01.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_smuggler_roadmap_leggings_02_01') object.setDetailFilename('static_item_d') object.setDetailName('armor_smuggler_roadmap_leggings_02_01') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Smuggler') object.setStringAttribute('armor_category', '@obj_attr_n:armor_reconnaissance') diff --git a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_bounty_hunter_01_02.py b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_bounty_hunter_01_02.py index c845f9fb..d9c51e17 100644 --- a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_bounty_hunter_01_02.py +++ b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_bounty_hunter_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_roadmap_belt_bounty_hunter_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_roadmap_belt_bounty_hunter_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 15) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 15) diff --git a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_commando_01_02.py b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_commando_01_02.py index 03d3b4ae..d562d8d4 100644 --- a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_commando_01_02.py +++ b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_commando_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_roadmap_belt_commando_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_roadmap_belt_commando_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 15) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 15) diff --git a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_entertainer_01_02.py b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_entertainer_01_02.py index b5195564..499bfb20 100644 --- a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_entertainer_01_02.py +++ b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_entertainer_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_roadmap_belt_entertainer_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_roadmap_belt_entertainer_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 15) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 15) diff --git a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_force_sensitive_01_02.py b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_force_sensitive_01_02.py index e383382b..33a6b820 100644 --- a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_force_sensitive_01_02.py +++ b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_force_sensitive_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_roadmap_belt_force_sensitive_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_roadmap_belt_force_sensitive_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 15) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 15) diff --git a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_medic_01_02.py b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_medic_01_02.py index 9f5b8eb7..13e4b137 100644 --- a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_medic_01_02.py +++ b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_medic_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_roadmap_belt_medic_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_roadmap_belt_medic_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 15) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 15) diff --git a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_officer_01_02.py b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_officer_01_02.py index 3534213e..400f2576 100644 --- a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_officer_01_02.py +++ b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_officer_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_roadmap_belt_officer_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_roadmap_belt_officer_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 15) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 15) diff --git a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_smuggler_01_02.py b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_smuggler_01_02.py index 0f3db47c..f4bc7ecb 100644 --- a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_smuggler_01_02.py +++ b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_smuggler_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_roadmap_belt_smuggler_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_roadmap_belt_smuggler_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 15) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 15) diff --git a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_spy_01_02.py b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_spy_01_02.py index 71012ad3..eb353047 100644 --- a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_spy_01_02.py +++ b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_spy_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_roadmap_belt_spy_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_roadmap_belt_spy_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 15) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 15) diff --git a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_trader_01_02.py b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_trader_01_02.py index 3716a5a6..80a162fc 100644 --- a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_trader_01_02.py +++ b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_trader_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_roadmap_belt_trader_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_roadmap_belt_trader_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 15) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 15) diff --git a/scripts/object/tangible/wearables/backpack/item_bounty_hunter_backpack_01_02.py b/scripts/object/tangible/wearables/backpack/item_bounty_hunter_backpack_01_02.py index b1bdc206..fcf2cb83 100644 --- a/scripts/object/tangible/wearables/backpack/item_bounty_hunter_backpack_01_02.py +++ b/scripts/object/tangible/wearables/backpack/item_bounty_hunter_backpack_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_bounty_hunter_backpack_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_bounty_hunter_backpack_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 5) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5) object.setStringAttribute('class_required', 'Bounty Hunter') diff --git a/scripts/object/tangible/wearables/backpack/item_commando_backpack_01_02.py b/scripts/object/tangible/wearables/backpack/item_commando_backpack_01_02.py index ffc76111..937245ae 100644 --- a/scripts/object/tangible/wearables/backpack/item_commando_backpack_01_02.py +++ b/scripts/object/tangible/wearables/backpack/item_commando_backpack_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_commando_backpack_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_commando_backpack_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 5) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5) object.setStringAttribute('class_required', 'Commando') diff --git a/scripts/object/tangible/wearables/backpack/item_entertainer_backpack_01_02.py b/scripts/object/tangible/wearables/backpack/item_entertainer_backpack_01_02.py index 4e424485..85b5e20e 100644 --- a/scripts/object/tangible/wearables/backpack/item_entertainer_backpack_01_02.py +++ b/scripts/object/tangible/wearables/backpack/item_entertainer_backpack_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_entertainer_backpack_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_entertainer_backpack_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 5) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5) object.setStringAttribute('class_required', 'Entertainer') diff --git a/scripts/object/tangible/wearables/backpack/item_medic_backpack_01_02.py b/scripts/object/tangible/wearables/backpack/item_medic_backpack_01_02.py index 4b0acdb8..562fd93a 100644 --- a/scripts/object/tangible/wearables/backpack/item_medic_backpack_01_02.py +++ b/scripts/object/tangible/wearables/backpack/item_medic_backpack_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_medic_backpack_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_medic_backpack_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 5) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5) object.setStringAttribute('class_required', 'Medic') diff --git a/scripts/object/tangible/wearables/backpack/item_officer_backpack_01_02.py b/scripts/object/tangible/wearables/backpack/item_officer_backpack_01_02.py index 3121849f..fb8e83c2 100644 --- a/scripts/object/tangible/wearables/backpack/item_officer_backpack_01_02.py +++ b/scripts/object/tangible/wearables/backpack/item_officer_backpack_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_officer_backpack_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_officer_backpack_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 5) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5) object.setStringAttribute('class_required', 'Officer') diff --git a/scripts/object/tangible/wearables/backpack/item_smuggler_backpack_01_02.py b/scripts/object/tangible/wearables/backpack/item_smuggler_backpack_01_02.py index f9d08aaf..87c208f1 100644 --- a/scripts/object/tangible/wearables/backpack/item_smuggler_backpack_01_02.py +++ b/scripts/object/tangible/wearables/backpack/item_smuggler_backpack_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_smuggler_backpack_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_smuggler_backpack_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 5) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5) object.setStringAttribute('class_required', 'Smuggler') diff --git a/scripts/object/tangible/wearables/backpack/item_spy_backpack_01_02.py b/scripts/object/tangible/wearables/backpack/item_spy_backpack_01_02.py index f6412dee..a69f3ec4 100644 --- a/scripts/object/tangible/wearables/backpack/item_spy_backpack_01_02.py +++ b/scripts/object/tangible/wearables/backpack/item_spy_backpack_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_spy_backpack_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_spy_backpack_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 5) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5) object.setStringAttribute('class_required', 'Spy') diff --git a/scripts/object/tangible/wearables/backpack/item_trader_backpack_01_02.py b/scripts/object/tangible/wearables/backpack/item_trader_backpack_01_02.py index 9eb23a37..97c76849 100644 --- a/scripts/object/tangible/wearables/backpack/item_trader_backpack_01_02.py +++ b/scripts/object/tangible/wearables/backpack/item_trader_backpack_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_trader_backpack_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_trader_backpack_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:expertise_assembly_increase_artisan', 5) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:hiring', 3) object.setStringAttribute('class_required', 'Trader') diff --git a/scripts/object/tangible/wearables/ithorian/item_trader_roadmap_hat_02_01.py b/scripts/object/tangible/wearables/ithorian/item_trader_roadmap_hat_02_01.py new file mode 100644 index 00000000..ccad8904 --- /dev/null +++ b/scripts/object/tangible/wearables/ithorian/item_trader_roadmap_hat_02_01.py @@ -0,0 +1,4 @@ +import sys + +def setup(core, object): + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/ithorian/item_trader_roadmap_jumpsuit_02_02 - Copy.py b/scripts/object/tangible/wearables/ithorian/item_trader_roadmap_jumpsuit_02_02 - Copy.py new file mode 100644 index 00000000..ccad8904 --- /dev/null +++ b/scripts/object/tangible/wearables/ithorian/item_trader_roadmap_jumpsuit_02_02 - Copy.py @@ -0,0 +1,4 @@ +import sys + +def setup(core, object): + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/wookiee/item_trader_roadmap_gloves_02_02.py b/scripts/object/tangible/wearables/wookiee/item_trader_roadmap_gloves_02_02.py new file mode 100644 index 00000000..0bd5279f --- /dev/null +++ b/scripts/object/tangible/wearables/wookiee/item_trader_roadmap_gloves_02_02.py @@ -0,0 +1,11 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_trader_roadmap_gloves_02_02') + object.setDetailFilename('static_item_d') + object.setDetailName('item_trader_roadmap_gloves_02_02') + object.setIntAttribute('no_trade', 1) + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) + object.setStringAttribute('class_required', 'Trader) + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/wookiee/item_trader_roadmap_shoulder_pad_02_01.py b/scripts/object/tangible/wearables/wookiee/item_trader_roadmap_shoulder_pad_02_01.py new file mode 100644 index 00000000..cd074181 --- /dev/null +++ b/scripts/object/tangible/wearables/wookiee/item_trader_roadmap_shoulder_pad_02_01.py @@ -0,0 +1,11 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_trader_roadmap_shoulder_pad_02_02') + object.setDetailFilename('static_item_d') + object.setDetailName('item_trader_roadmap_shoulder_pad_02_02') + object.setIntAttribute('no_trade', 1) + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) + object.setStringAttribute('class_required', 'Trader) + return \ No newline at end of file diff --git a/scripts/roadmap/entertainer_1a.py b/scripts/roadmap/entertainer_1a.py index 9e9368ba..8aedc930 100644 --- a/scripts/roadmap/entertainer_1a.py +++ b/scripts/roadmap/entertainer_1a.py @@ -30,7 +30,7 @@ def getRewards(name): return "object/tangible/wearables/backpack/shared_backpack_s01.iff" if name == 'armor_entertainer_roadmap_cloak_02_01': - return "object/tangible/wearables/robe/shared_robe_s01.iff" + return "object/tangible/wearables/robe/shared_robe_s05.iff" if name == 'armor_entertainer_roadmap_boots_02_01': return "object/tangible/wearables/boots/shared_boots_s03.iff" @@ -41,7 +41,7 @@ def getRewards(name): if name == 'armor_entertainer_roadmap_pants_02_01': return "object/tangible/wearables/pants/shared_pants_s01.iff" - if name == 'weapon_vibro_en_roadmap_01_02': + if name == 'weapon_knuckler_ent_roadmap_02_02': return "object/weapon/melee/special/shared_vibroknuckler.iff" if name == 'weapon_pistol_en_roadmap_01_02': diff --git a/scripts/roadmap/trader_0a.py b/scripts/roadmap/trader_0a.py index c0ae1ee4..436f9d4b 100644 --- a/scripts/roadmap/trader_0a.py +++ b/scripts/roadmap/trader_0a.py @@ -33,12 +33,33 @@ def getRewards(name): if name == 'weapon_knife_trader_roadmap_01_02': return "object/weapon/melee/knife/shared_knife_dagger.iff" - + if name == 'item_trader_ring_01_02': return "object/tangible/wearables/ring/shared_ring_s02.iff" - + + # Human Clothing + if name == 'item_trader_roadmap_jumpsuit_02_01': + return "object/tangible/wearables/bodysuit/shared_bodysuit_s13.iff" + + if name == 'item_trader_roadmap_boots_02_01': + return "object/tangible/wearables/boots/shared_boots_s03.iff" + + if name == 'item_trader_roadmap_gloves_02_01': + return "object/tangible/wearables/gloves/shared_gloves_s02.iff" + + # Wookiee Clothing + if name == 'item_trader_roadmap_shoulder_pad_02_01': + return "object/tangible/wearables/wookiee/shared_wke_shoulder_pad_s01.iff" + + if name == 'item_trader_roadmap_gloves_02_02': + return "object/tangible/wearables/wookiee/shared_wke_gloves_s01.iff" + + # Ithorian Clothing if name == 'item_trader_roadmap_jumpsuit_02_02': - return "object/tangible/wearables/bodysuit/shared_bodysuit_s01.iff" + return "object/tangible/wearables/ithorian/shared_ith_bodysuit_s03.iff" + + if name == 'item_trader_roadmap_hat_02_01': + return "object/tangible/wearables/ithorian/shared_ith_hat_s03.iff" if name == 'weapon_pistol_trader_roadmap_01_02': return "object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff" diff --git a/scripts/roadmap/trader_0b.py b/scripts/roadmap/trader_0b.py index c3a7e4ec..436f9d4b 100644 --- a/scripts/roadmap/trader_0b.py +++ b/scripts/roadmap/trader_0b.py @@ -24,7 +24,6 @@ def getHealth(): def getAction(): return 75 - def getRewards(name): if name == 'item_npe_gen_craft_tool_trader_03_01': return "object/tangible/crafting/base/shared_generic_base_tool.iff" @@ -37,9 +36,30 @@ def getRewards(name): if name == 'item_trader_ring_01_02': return "object/tangible/wearables/ring/shared_ring_s02.iff" + + # Human Clothing + if name == 'item_trader_roadmap_jumpsuit_02_01': + return "object/tangible/wearables/bodysuit/shared_bodysuit_s13.iff" + if name == 'item_trader_roadmap_boots_02_01': + return "object/tangible/wearables/boots/shared_boots_s03.iff" + + if name == 'item_trader_roadmap_gloves_02_01': + return "object/tangible/wearables/gloves/shared_gloves_s02.iff" + + # Wookiee Clothing + if name == 'item_trader_roadmap_shoulder_pad_02_01': + return "object/tangible/wearables/wookiee/shared_wke_shoulder_pad_s01.iff" + + if name == 'item_trader_roadmap_gloves_02_02': + return "object/tangible/wearables/wookiee/shared_wke_gloves_s01.iff" + + # Ithorian Clothing if name == 'item_trader_roadmap_jumpsuit_02_02': - return "object/tangible/wearables/bodysuit/shared_bodysuit_s01.iff" + return "object/tangible/wearables/ithorian/shared_ith_bodysuit_s03.iff" + + if name == 'item_trader_roadmap_hat_02_01': + return "object/tangible/wearables/ithorian/shared_ith_hat_s03.iff" if name == 'weapon_pistol_trader_roadmap_01_02': return "object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff" diff --git a/scripts/roadmap/trader_0c.py b/scripts/roadmap/trader_0c.py index 7ac4a0d7..436f9d4b 100644 --- a/scripts/roadmap/trader_0c.py +++ b/scripts/roadmap/trader_0c.py @@ -36,9 +36,30 @@ def getRewards(name): if name == 'item_trader_ring_01_02': return "object/tangible/wearables/ring/shared_ring_s02.iff" + + # Human Clothing + if name == 'item_trader_roadmap_jumpsuit_02_01': + return "object/tangible/wearables/bodysuit/shared_bodysuit_s13.iff" + if name == 'item_trader_roadmap_boots_02_01': + return "object/tangible/wearables/boots/shared_boots_s03.iff" + + if name == 'item_trader_roadmap_gloves_02_01': + return "object/tangible/wearables/gloves/shared_gloves_s02.iff" + + # Wookiee Clothing + if name == 'item_trader_roadmap_shoulder_pad_02_01': + return "object/tangible/wearables/wookiee/shared_wke_shoulder_pad_s01.iff" + + if name == 'item_trader_roadmap_gloves_02_02': + return "object/tangible/wearables/wookiee/shared_wke_gloves_s01.iff" + + # Ithorian Clothing if name == 'item_trader_roadmap_jumpsuit_02_02': - return "object/tangible/wearables/bodysuit/shared_bodysuit_s01.iff" + return "object/tangible/wearables/ithorian/shared_ith_bodysuit_s03.iff" + + if name == 'item_trader_roadmap_hat_02_01': + return "object/tangible/wearables/ithorian/shared_ith_hat_s03.iff" if name == 'weapon_pistol_trader_roadmap_01_02': return "object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff" diff --git a/scripts/roadmap/trader_0d.py b/scripts/roadmap/trader_0d.py index 7ac4a0d7..436f9d4b 100644 --- a/scripts/roadmap/trader_0d.py +++ b/scripts/roadmap/trader_0d.py @@ -36,9 +36,30 @@ def getRewards(name): if name == 'item_trader_ring_01_02': return "object/tangible/wearables/ring/shared_ring_s02.iff" + + # Human Clothing + if name == 'item_trader_roadmap_jumpsuit_02_01': + return "object/tangible/wearables/bodysuit/shared_bodysuit_s13.iff" + if name == 'item_trader_roadmap_boots_02_01': + return "object/tangible/wearables/boots/shared_boots_s03.iff" + + if name == 'item_trader_roadmap_gloves_02_01': + return "object/tangible/wearables/gloves/shared_gloves_s02.iff" + + # Wookiee Clothing + if name == 'item_trader_roadmap_shoulder_pad_02_01': + return "object/tangible/wearables/wookiee/shared_wke_shoulder_pad_s01.iff" + + if name == 'item_trader_roadmap_gloves_02_02': + return "object/tangible/wearables/wookiee/shared_wke_gloves_s01.iff" + + # Ithorian Clothing if name == 'item_trader_roadmap_jumpsuit_02_02': - return "object/tangible/wearables/bodysuit/shared_bodysuit_s01.iff" + return "object/tangible/wearables/ithorian/shared_ith_bodysuit_s03.iff" + + if name == 'item_trader_roadmap_hat_02_01': + return "object/tangible/wearables/ithorian/shared_ith_hat_s03.iff" if name == 'weapon_pistol_trader_roadmap_01_02': return "object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff" From 8fecec9d56dc3a1516a6f8b48abc88c0034b4fa9 Mon Sep 17 00:00:00 2001 From: Iosnowore Kun Date: Fri, 8 Aug 2014 00:26:30 -0400 Subject: [PATCH 25/51] Fixed Some Errors In Previous Commit --- .../ithorian/item_trader_roadmap_hat_02_01.py | 9 ++++++++- .../item_trader_roadmap_jumpsuit_02_02 - Copy.py | 4 ---- .../ithorian/item_trader_roadmap_jumpsuit_02_02.py | 11 +++++++++++ .../wookiee/item_trader_roadmap_shoulder_pad_02_01.py | 4 ++-- 4 files changed, 21 insertions(+), 7 deletions(-) delete mode 100644 scripts/object/tangible/wearables/ithorian/item_trader_roadmap_jumpsuit_02_02 - Copy.py create mode 100644 scripts/object/tangible/wearables/ithorian/item_trader_roadmap_jumpsuit_02_02.py diff --git a/scripts/object/tangible/wearables/ithorian/item_trader_roadmap_hat_02_01.py b/scripts/object/tangible/wearables/ithorian/item_trader_roadmap_hat_02_01.py index ccad8904..29c119e3 100644 --- a/scripts/object/tangible/wearables/ithorian/item_trader_roadmap_hat_02_01.py +++ b/scripts/object/tangible/wearables/ithorian/item_trader_roadmap_hat_02_01.py @@ -1,4 +1,11 @@ import sys def setup(core, object): - return \ No newline at end of file + object.setStfFilename('static_item_n') + object.setStfName('item_trader_roadmap_hat_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_trader_roadmap_hat_02_01') + object.setIntAttribute('no_trade', 1) + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) + object.setStringAttribute('class_required', 'Trader) + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/ithorian/item_trader_roadmap_jumpsuit_02_02 - Copy.py b/scripts/object/tangible/wearables/ithorian/item_trader_roadmap_jumpsuit_02_02 - Copy.py deleted file mode 100644 index ccad8904..00000000 --- a/scripts/object/tangible/wearables/ithorian/item_trader_roadmap_jumpsuit_02_02 - Copy.py +++ /dev/null @@ -1,4 +0,0 @@ -import sys - -def setup(core, object): - return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/ithorian/item_trader_roadmap_jumpsuit_02_02.py b/scripts/object/tangible/wearables/ithorian/item_trader_roadmap_jumpsuit_02_02.py new file mode 100644 index 00000000..b513df81 --- /dev/null +++ b/scripts/object/tangible/wearables/ithorian/item_trader_roadmap_jumpsuit_02_02.py @@ -0,0 +1,11 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_trader_roadmap_jumpsuit_02_02') + object.setDetailFilename('static_item_d') + object.setDetailName('item_trader_roadmap_jumpsuit_02_02') + object.setIntAttribute('no_trade', 1) + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) + object.setStringAttribute('class_required', 'Trader) + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/wookiee/item_trader_roadmap_shoulder_pad_02_01.py b/scripts/object/tangible/wearables/wookiee/item_trader_roadmap_shoulder_pad_02_01.py index cd074181..7100ff42 100644 --- a/scripts/object/tangible/wearables/wookiee/item_trader_roadmap_shoulder_pad_02_01.py +++ b/scripts/object/tangible/wearables/wookiee/item_trader_roadmap_shoulder_pad_02_01.py @@ -2,9 +2,9 @@ import sys def setup(core, object): object.setStfFilename('static_item_n') - object.setStfName('item_trader_roadmap_shoulder_pad_02_02') + object.setStfName('item_trader_roadmap_shoulder_pad_02_01') object.setDetailFilename('static_item_d') - object.setDetailName('item_trader_roadmap_shoulder_pad_02_02') + object.setDetailName('item_trader_roadmap_shoulder_pad_02_01') object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Trader) From 04f41a0f41fdc8190c7518a5b2634dcde08b0a57 Mon Sep 17 00:00:00 2001 From: Zing Date: Thu, 7 Aug 2014 21:47:43 -0700 Subject: [PATCH 26/51] Revert "Removed printAnalysis for CREO3 baseline, Added SWGList for Skills" This reverts commit d9ca531c5d002d5ae394f15aa526ca54658e6976. --- .../creature/CreatureMessageBuilder.java | 6 ++- .../objects/creature/CreatureObject.java | 39 ++----------------- 2 files changed, 7 insertions(+), 38 deletions(-) diff --git a/src/resources/objects/creature/CreatureMessageBuilder.java b/src/resources/objects/creature/CreatureMessageBuilder.java index 80bd3f58..33367160 100644 --- a/src/resources/objects/creature/CreatureMessageBuilder.java +++ b/src/resources/objects/creature/CreatureMessageBuilder.java @@ -138,10 +138,10 @@ public class CreatureMessageBuilder extends TangibleMessageBuilder { buffer.putLong(creature.getOwnerId()); - //float height = creature.getHeight(); + float height = creature.getHeight(); //if (height < 0.7 || height > 1.5) // height = 1; - buffer.putFloat(creature.getHeight()); + buffer.putFloat(height); buffer.putInt(0); // battle fatigue buffer.putLong(creature.getStateBitmask()); int size = buffer.position(); @@ -150,6 +150,8 @@ public class CreatureMessageBuilder extends TangibleMessageBuilder { buffer.flip(); buffer = createBaseline("CREO", (byte) 3, buffer, size); + tools.CharonPacketUtils.printAnalysis(buffer, "CREO 3"); + return buffer; } diff --git a/src/resources/objects/creature/CreatureObject.java b/src/resources/objects/creature/CreatureObject.java index f0cb1bdc..332d1731 100644 --- a/src/resources/objects/creature/CreatureObject.java +++ b/src/resources/objects/creature/CreatureObject.java @@ -24,7 +24,6 @@ package resources.objects.creature; import java.io.Serializable; import java.lang.System; import java.util.ArrayList; -import java.util.BitSet; import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -56,7 +55,6 @@ import resources.objects.ObjectMessageBuilder; import resources.objects.SWGList; import resources.objects.SWGMap; import engine.resources.common.CRC; -import engine.resources.objects.Baseline; import engine.resources.objects.SWGObject; import engine.resources.scene.Planet; import engine.resources.scene.Point3D; @@ -74,7 +72,7 @@ public class CreatureObject extends TangibleObject implements Serializable { // CREO 1 private int bankCredits = 0; private int cashCredits = 0; - private SWGList skills; + private List skills; @NotPersistent private transient int skillsUpdateCounter = 0; @@ -194,7 +192,7 @@ public class CreatureObject extends TangibleObject implements Serializable { super(objectID, planet, position, orientation, Template); messageBuilder = new CreatureMessageBuilder(this); loadTemplateData(); - skills = new SWGList(); + skills = new ArrayList(); skillMods = new SWGMap(this, 4, 3, true); abilities = new SWGMap(this, 4, 14, true); missionCriticalObjects = new SWGMap(this, 4, 13, false); @@ -237,38 +235,7 @@ public class CreatureObject extends TangibleObject implements Serializable { setTurnRadius((float) getTemplateData().getAttribute("turnRate"));*/ } - - /*@Override - public Baseline getBaseline1() { - Baseline baseline = super.getBaseline1(); - baseline.put("bankCredits", 0); - baseline.put("cashCredits", 0); - - // HAM base list stuff - baseline.put("baseHAM", 6); // list size - baseline.put("unk1", 0); // udpate count? - baseline.put("health", 1000); - baseline.put("spacer1", 0); - baseline.put("action", 300); - baseline.put("spacer2", 0); - baseline.put("unk2", 0x2C01); - baseline.put("unk3", 0); - - baseline.put("skills", new SWGList()); - return baseline; - } - @Override - public Baseline getBaseline3() { - Baseline baseline = super.getBaseline3(); - baseline.put("posture", (byte) 0); - baseline.put("creo3unk1", (byte) 0); - baseline.put("ownerId", (long) 0); - baseline.put("height", (float) 1.3); - baseline.put("battleFatigue", 0); - baseline.put("stateBitmask", new BitSet()); - return baseline; - }*/ public int getBankCredits() { synchronized(objectMutex) { return bankCredits; @@ -332,7 +299,7 @@ public class CreatureObject extends TangibleObject implements Serializable { } } - public SWGList getSkills() { + public List getSkills() { return skills; } From dff394c077c5dcc78d665a3dda5a606a313c5bc3 Mon Sep 17 00:00:00 2001 From: Zing Date: Thu, 7 Aug 2014 23:49:20 -0700 Subject: [PATCH 27/51] Configured /server admin command for server related needs. Added initiateStop to NGECore. --- scripts/commands/server.py | 14 +++++++++----- src/main/NGECore.java | 20 +++++++++++++++++++- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/scripts/commands/server.py b/scripts/commands/server.py index 09765edc..fc7b1f5c 100644 --- a/scripts/commands/server.py +++ b/scripts/commands/server.py @@ -28,14 +28,18 @@ def run(core, actor, target, commandString): if command == 'lockServer': core.setGalaxyStatus(GalaxyStatus.Locked) + actor.sendSystemMessage('GM: Command completed successfully, Server is now in Locked Status', 0) if command == 'unlockServer': core.setGalaxyStatus(GalaxyStatus.Online) - if command == 'info': - actor.sendSystemMessage(str(core.getActiveZoneClients()) + ' online characters.', 0) + actor.sendSystemMessage('GM: Command completed successfully, Server is now in Online Status', 0) + #if command == 'restart': //This command currently causes an error at NGEcore.java like 593 whole attempting to close databaseConnection2 + #core.restart() + #actor.sendSystemMessage('GM: Command completed successfully, Server restart initiated', 0) if command == 'shutdown': core.initiateShutdown() - if command == 'getheight': - actor.sendSystemMessage(str(core.terrainService.getHeight(actor.getPlanetId(), actor.getWorldPosition().x, actor.getWorldPosition().z)), 0) - + actor.sendSystemMessage('GM: Command completed successfully, Server shutdown initiated', 0) + if command == 'stop': + core.initiateStop() + actor.sendSystemMessage('GM: Command completed successfully, Emergency server shutdown initiated', 0) return diff --git a/src/main/NGECore.java b/src/main/NGECore.java index 2bd40112..8e47a007 100644 --- a/src/main/NGECore.java +++ b/src/main/NGECore.java @@ -796,8 +796,26 @@ public class NGECore { } catch (InterruptedException e) { e.printStackTrace(); } + } - + public void initiateStop() { + if(isShuttingDown) + return; + try { + chatService.broadcastGalaxy("You will now be disconnected so the server can perform a final save before shutting down."); + Thread.sleep(10000); + synchronized(getActiveConnectionsMap()) { + for(Client client : getActiveConnectionsMap().values()) { + client.getSession().close(true); + connectionService.disconnect(client); + } + } + + System.exit(0); + + } catch (InterruptedException e) { + e.printStackTrace(); + } } From 3003a3b62ee3c423d2e47dfa378fd7bb00ba1a06 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Fri, 8 Aug 2014 10:02:48 -0400 Subject: [PATCH 28/51] Fixed wrong SWG collection type for Skills and added missing params causing a crash --- src/resources/objects/creature/CreatureObject.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/resources/objects/creature/CreatureObject.java b/src/resources/objects/creature/CreatureObject.java index f0cb1bdc..814dca39 100644 --- a/src/resources/objects/creature/CreatureObject.java +++ b/src/resources/objects/creature/CreatureObject.java @@ -55,6 +55,7 @@ import resources.common.OutOfBand; import resources.objects.ObjectMessageBuilder; import resources.objects.SWGList; import resources.objects.SWGMap; +import resources.objects.SWGSet; import engine.resources.common.CRC; import engine.resources.objects.Baseline; import engine.resources.objects.SWGObject; @@ -74,7 +75,7 @@ public class CreatureObject extends TangibleObject implements Serializable { // CREO 1 private int bankCredits = 0; private int cashCredits = 0; - private SWGList skills; + private SWGSet skills; @NotPersistent private transient int skillsUpdateCounter = 0; @@ -194,7 +195,7 @@ public class CreatureObject extends TangibleObject implements Serializable { super(objectID, planet, position, orientation, Template); messageBuilder = new CreatureMessageBuilder(this); loadTemplateData(); - skills = new SWGList(); + skills = new SWGSet(this, 1, 4, false); skillMods = new SWGMap(this, 4, 3, true); abilities = new SWGMap(this, 4, 14, true); missionCriticalObjects = new SWGMap(this, 4, 13, false); @@ -332,7 +333,7 @@ public class CreatureObject extends TangibleObject implements Serializable { } } - public SWGList getSkills() { + public SWGSet getSkills() { return skills; } From 891af42ddd66166b875a92f768913f2c9df10201 Mon Sep 17 00:00:00 2001 From: "pressinger.gene66@gmail.com" Date: Fri, 8 Aug 2014 11:56:27 -0400 Subject: [PATCH 29/51] Added No Trade to More Roadmap Rewards --- .../loot/generic_usable/item_bounty_hunter_clicky_01_02.py | 1 + .../tangible/loot/generic_usable/item_commando_clicky_01_02.py | 1 + .../loot/generic_usable/item_entertainer_clicky_01_02.py | 1 + .../loot/generic_usable/item_force_sensitive_clicky_01_02.py | 1 + .../tangible/loot/generic_usable/item_medic_clicky_01_02.py | 1 + .../tangible/loot/generic_usable/item_officer_clicky_01_02.py | 1 + .../tangible/loot/generic_usable/item_smuggler_clicky_01_02.py | 1 + .../tangible/loot/generic_usable/item_spy_clicky_01_02.py | 1 + .../ithorian_sentinel/armor_ithorian_roadmap_bicep_l_02_03.py | 1 + .../ithorian_sentinel/armor_ithorian_roadmap_bicep_r_02_03.py | 1 + .../ithorian_sentinel/armor_ithorian_roadmap_boots_02_03.py | 1 + .../ithorian_sentinel/armor_ithorian_roadmap_bracer_l_02_03.py | 1 + .../ithorian_sentinel/armor_ithorian_roadmap_bracer_r_02_03.py | 1 + .../ithorian_sentinel/armor_ithorian_roadmap_chest_02_03.py | 1 + .../ithorian_sentinel/armor_ithorian_roadmap_gloves_02_03.py | 1 + .../ithorian_sentinel/armor_ithorian_roadmap_helmet_02_03.py | 1 + .../ithorian_sentinel/armor_ithorian_roadmap_leggings_02_03.py | 1 + .../kashyyykian_hunting/armor_wookiee_roadmap_bicep_l_02_03.py | 1 + .../kashyyykian_hunting/armor_wookiee_roadmap_bicep_r_02_03.py | 1 + .../armor_wookiee_roadmap_bracer_l_02_03.py | 1 + .../armor_wookiee_roadmap_bracer_r_02_03.py | 1 + .../kashyyykian_hunting/armor_wookiee_roadmap_chest_02_03.py | 1 + .../armor_wookiee_roadmap_leggings_02_03.py | 1 + .../wearables/necklace/item_bounty_hunter_pendant_01_02.py | 1 + .../tangible/wearables/necklace/item_commando_pendant_01_02.py | 1 + .../tangible/wearables/necklace/item_spy_pendant_01_02.py | 1 + .../tangible/wearables/ring/item_bounty_hunter_ring_01_02.py | 1 + .../object/tangible/wearables/ring/item_commando_ring_01_02.py | 3 ++- scripts/object/tangible/wearables/ring/item_spy_ring_01_02.py | 1 + .../ranged/carbine/weapon_acidbeam_commando_roadmap_01_02.py | 1 + .../weapon/ranged/carbine/weapon_carbine_bh_roadmap_01_02.py | 1 + .../weapon/ranged/carbine/weapon_carbine_sp_roadmap_01_02.py | 1 + .../weapon/ranged/pistol/weapon_pistol_sp_roadmap_01_02.py | 1 + .../rifle/weapon_lightningbeam_commando_roadmap_01_02.py | 1 + .../weapon/ranged/rifle/weapon_rifle_bh_roadmap_01_02.py | 1 + 35 files changed, 36 insertions(+), 1 deletion(-) diff --git a/scripts/object/tangible/loot/generic_usable/item_bounty_hunter_clicky_01_02.py b/scripts/object/tangible/loot/generic_usable/item_bounty_hunter_clicky_01_02.py index f65bc0a3..d8a79549 100644 --- a/scripts/object/tangible/loot/generic_usable/item_bounty_hunter_clicky_01_02.py +++ b/scripts/object/tangible/loot/generic_usable/item_bounty_hunter_clicky_01_02.py @@ -6,6 +6,7 @@ def setup(core, object): object.setStfName('item_bounty_hunter_clicky_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_bounty_hunter_clicky_01_02') + object.setIntAttribute('no_trade', 1) object.setStringAttribute('class_required', 'Bounty Hunter') return diff --git a/scripts/object/tangible/loot/generic_usable/item_commando_clicky_01_02.py b/scripts/object/tangible/loot/generic_usable/item_commando_clicky_01_02.py index 165755c5..ad443d0f 100644 --- a/scripts/object/tangible/loot/generic_usable/item_commando_clicky_01_02.py +++ b/scripts/object/tangible/loot/generic_usable/item_commando_clicky_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfFilename('static_item_n') object.setStfName('item_commando_clicky_01_02') object.setDetailFilename('static_item_d') + object.setIntAttribute('no_trade', 1) object.setDetailName('item_commando_clicky_01_02') object.setStringAttribute('class_required', 'Commando') return diff --git a/scripts/object/tangible/loot/generic_usable/item_entertainer_clicky_01_02.py b/scripts/object/tangible/loot/generic_usable/item_entertainer_clicky_01_02.py index 2033534c..d9ccdb3b 100644 --- a/scripts/object/tangible/loot/generic_usable/item_entertainer_clicky_01_02.py +++ b/scripts/object/tangible/loot/generic_usable/item_entertainer_clicky_01_02.py @@ -6,6 +6,7 @@ def setup(core, object): object.setStfName('item_entertainer_clicky_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_entertainer_clicky_01_02') + object.setIntAttribute('no_trade', 1) object.setStringAttribute('class_required', 'Entertainer') return diff --git a/scripts/object/tangible/loot/generic_usable/item_force_sensitive_clicky_01_02.py b/scripts/object/tangible/loot/generic_usable/item_force_sensitive_clicky_01_02.py index 261d9930..64023ec6 100644 --- a/scripts/object/tangible/loot/generic_usable/item_force_sensitive_clicky_01_02.py +++ b/scripts/object/tangible/loot/generic_usable/item_force_sensitive_clicky_01_02.py @@ -6,6 +6,7 @@ def setup(core, object): object.setStfName('item_force_sensitive_clicky_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_force_sensitive_clicky_01_02') + object.setIntAttribute('no_trade', 1) object.setStringAttribute('class_required', 'Jedi') return diff --git a/scripts/object/tangible/loot/generic_usable/item_medic_clicky_01_02.py b/scripts/object/tangible/loot/generic_usable/item_medic_clicky_01_02.py index 8567c5f0..fab14c4c 100644 --- a/scripts/object/tangible/loot/generic_usable/item_medic_clicky_01_02.py +++ b/scripts/object/tangible/loot/generic_usable/item_medic_clicky_01_02.py @@ -6,6 +6,7 @@ def setup(core, object): object.setStfName('item_medic_clicky_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_medic_clicky_01_02') + object.setIntAttribute('no_trade', 1) object.setStringAttribute('class_required', 'Medic') return def use(core, actor, object): diff --git a/scripts/object/tangible/loot/generic_usable/item_officer_clicky_01_02.py b/scripts/object/tangible/loot/generic_usable/item_officer_clicky_01_02.py index 712c17ba..8319db18 100644 --- a/scripts/object/tangible/loot/generic_usable/item_officer_clicky_01_02.py +++ b/scripts/object/tangible/loot/generic_usable/item_officer_clicky_01_02.py @@ -6,6 +6,7 @@ def setup(core, object): object.setStfName('item_officer_clicky_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_officer_clicky_01_02') + object.setIntAttribute('no_trade', 1) object.setStringAttribute('class_required', 'Officer') return diff --git a/scripts/object/tangible/loot/generic_usable/item_smuggler_clicky_01_02.py b/scripts/object/tangible/loot/generic_usable/item_smuggler_clicky_01_02.py index 2c0614bc..a0c4226c 100644 --- a/scripts/object/tangible/loot/generic_usable/item_smuggler_clicky_01_02.py +++ b/scripts/object/tangible/loot/generic_usable/item_smuggler_clicky_01_02.py @@ -6,6 +6,7 @@ def setup(core, object): object.setStfName('item_smuggler_clicky_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_smuggler_clicky_01_02') + object.setIntAttribute('no_trade', 1) object.setStringAttribute('class_required', 'Smuggler') return diff --git a/scripts/object/tangible/loot/generic_usable/item_spy_clicky_01_02.py b/scripts/object/tangible/loot/generic_usable/item_spy_clicky_01_02.py index d55d710d..6a4c717f 100644 --- a/scripts/object/tangible/loot/generic_usable/item_spy_clicky_01_02.py +++ b/scripts/object/tangible/loot/generic_usable/item_spy_clicky_01_02.py @@ -6,6 +6,7 @@ def setup(core, object): object.setStfName('item_spy_clicky_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_spy_clicky_01_02') + object.setIntAttribute('no_trade', 1) object.setStringAttribute('class_required', 'Spy') return diff --git a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bicep_l_02_03.py b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bicep_l_02_03.py index 67da6ef4..173c23f6 100644 --- a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bicep_l_02_03.py +++ b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bicep_l_02_03.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_ithorian_roadmap_bicep_l_02_03') object.setDetailFilename('static_item_d') object.setDetailName('armor_ithorian_roadmap_bicep_l_02_03') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', 'Assault') diff --git a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bicep_r_02_03.py b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bicep_r_02_03.py index 53f0fb21..e1b578ab 100644 --- a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bicep_r_02_03.py +++ b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bicep_r_02_03.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_ithorian_roadmap_bicep_r_02_03') object.setDetailFilename('static_item_d') object.setDetailName('armor_ithorian_roadmap_bicep_r_02_03') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', 'Assault') diff --git a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_boots_02_03.py b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_boots_02_03.py index 5822a2dc..63671ab1 100644 --- a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_boots_02_03.py +++ b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_boots_02_03.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_ithorian_roadmap_boots_02_03') object.setDetailFilename('static_item_d') object.setDetailName('armor_ithorian_roadmap_boots_02_03') + object.setIntAttribute('no_trade', 1) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', 'Assault') return diff --git a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bracer_l_02_03.py b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bracer_l_02_03.py index 2c96e2dd..c7d9f8f6 100644 --- a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bracer_l_02_03.py +++ b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bracer_l_02_03.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_ithorian_roadmap_bracer_l_02_03') object.setDetailFilename('static_item_d') object.setDetailName('armor_ithorian_roadmap_bracer_l_02_03') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', 'Assault') diff --git a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bracer_r_02_03.py b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bracer_r_02_03.py index 1fee94a5..7a72f952 100644 --- a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bracer_r_02_03.py +++ b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bracer_r_02_03.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_ithorian_roadmap_bracer_r_02_03') object.setDetailFilename('static_item_d') object.setDetailName('armor_ithorian_roadmap_bracer_r_02_03') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', 'Assault') diff --git a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_chest_02_03.py b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_chest_02_03.py index b17b98cc..5bc36496 100644 --- a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_chest_02_03.py +++ b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_chest_02_03.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_ithorian_roadmap_chest_02_03') object.setDetailFilename('static_item_d') object.setDetailName('armor_ithorian_roadmap_chest_02_03') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', 'Assault') diff --git a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_gloves_02_03.py b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_gloves_02_03.py index 54aab0ca..0fdc1d48 100644 --- a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_gloves_02_03.py +++ b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_gloves_02_03.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_ithorian_roadmap_gloves_02_03') object.setDetailFilename('static_item_d') object.setDetailName('armor_ithorian_roadmap_gloves_02_03') + object.setIntAttribute('no_trade', 1) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', 'Assault') return diff --git a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_helmet_02_03.py b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_helmet_02_03.py index 91f77a60..88ec64f6 100644 --- a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_helmet_02_03.py +++ b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_helmet_02_03.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_ithorian_roadmap_helmet_02_03') object.setDetailFilename('static_item_d') object.setDetailName('armor_ithorian_roadmap_helmet_02_03') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', 'Assault') diff --git a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_leggings_02_03.py b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_leggings_02_03.py index e77eef3a..22d2ce94 100644 --- a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_leggings_02_03.py +++ b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_leggings_02_03.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_ithorian_roadmap_leggings_02_03') object.setDetailFilename('static_item_d') object.setDetailName('armor_ithorian_roadmap_leggings_02_03') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', 'Assault') diff --git a/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bicep_l_02_03.py b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bicep_l_02_03.py index 765a3379..c7c83735 100644 --- a/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bicep_l_02_03.py +++ b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bicep_l_02_03.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_wookiee_roadmap_bicep_l_02_03') object.setDetailFilename('static_item_d') object.setDetailName('armor_wookiee_roadmap_bicep_l_02_03') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', 'Assault') diff --git a/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bicep_r_02_03.py b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bicep_r_02_03.py index f25225df..4dab83e8 100644 --- a/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bicep_r_02_03.py +++ b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bicep_r_02_03.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_wookiee_roadmap_bicep_r_02_03') object.setDetailFilename('static_item_d') object.setDetailName('armor_wookiee_roadmap_bicep_r_02_03') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', 'Assault') diff --git a/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bracer_l_02_03.py b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bracer_l_02_03.py index 808e135d..c06ec287 100644 --- a/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bracer_l_02_03.py +++ b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bracer_l_02_03.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_wookiee_roadmap_bracer_l_02_03') object.setDetailFilename('static_item_d') object.setDetailName('armor_wookiee_roadmap_bracer_l_02_03') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', 'Assault') diff --git a/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bracer_r_02_03.py b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bracer_r_02_03.py index a2b95572..640deb4f 100644 --- a/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bracer_r_02_03.py +++ b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bracer_r_02_03.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_wookiee_roadmap_bracer_r_02_03') object.setDetailFilename('static_item_d') object.setDetailName('armor_wookiee_roadmap_bracer_r_02_03') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', 'Assault') diff --git a/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_chest_02_03.py b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_chest_02_03.py index 15500015..7d1fa6c9 100644 --- a/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_chest_02_03.py +++ b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_chest_02_03.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_wookiee_roadmap_chest_02_03') object.setDetailFilename('static_item_d') object.setDetailName('armor_wookiee_roadmap_chest_02_03') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', 'Assault') diff --git a/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_leggings_02_03.py b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_leggings_02_03.py index ca4b2cfa..facb2b9b 100644 --- a/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_leggings_02_03.py +++ b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_leggings_02_03.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('armor_wookiee_roadmap_leggings_02_03') object.setDetailFilename('static_item_d') object.setDetailName('armor_wookiee_roadmap_leggings_02_03') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3) object.setStringAttribute('class_required', 'Bounty Hunter') object.setStringAttribute('armor_category', 'Assault') diff --git a/scripts/object/tangible/wearables/necklace/item_bounty_hunter_pendant_01_02.py b/scripts/object/tangible/wearables/necklace/item_bounty_hunter_pendant_01_02.py index 46555e1f..bdcbfb2d 100644 --- a/scripts/object/tangible/wearables/necklace/item_bounty_hunter_pendant_01_02.py +++ b/scripts/object/tangible/wearables/necklace/item_bounty_hunter_pendant_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_bounty_hunter_pendant_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_bounty_hunter_pendant_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 12) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 12) object.setStringAttribute('class_required', 'Bounty Hunter') diff --git a/scripts/object/tangible/wearables/necklace/item_commando_pendant_01_02.py b/scripts/object/tangible/wearables/necklace/item_commando_pendant_01_02.py index 716905e2..196a4bab 100644 --- a/scripts/object/tangible/wearables/necklace/item_commando_pendant_01_02.py +++ b/scripts/object/tangible/wearables/necklace/item_commando_pendant_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_commando_pendant_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_commando_pendant_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 12) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 12) object.setStringAttribute('class_required', 'Commando') diff --git a/scripts/object/tangible/wearables/necklace/item_spy_pendant_01_02.py b/scripts/object/tangible/wearables/necklace/item_spy_pendant_01_02.py index f46a52b8..2302a9e2 100644 --- a/scripts/object/tangible/wearables/necklace/item_spy_pendant_01_02.py +++ b/scripts/object/tangible/wearables/necklace/item_spy_pendant_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_spy_pendant_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_spy_pendant_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 12) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 12) object.setStringAttribute('class_required', 'Spy') diff --git a/scripts/object/tangible/wearables/ring/item_bounty_hunter_ring_01_02.py b/scripts/object/tangible/wearables/ring/item_bounty_hunter_ring_01_02.py index 110a5ec1..44c67cbc 100644 --- a/scripts/object/tangible/wearables/ring/item_bounty_hunter_ring_01_02.py +++ b/scripts/object/tangible/wearables/ring/item_bounty_hunter_ring_01_02.py @@ -6,6 +6,7 @@ def setup(core, object): object.setStfName('item_bounty_hunter_ring_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_bounty_hunter_ring_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 6) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 6) object.setStringAttribute('class_required', 'Bounty Hunter') diff --git a/scripts/object/tangible/wearables/ring/item_commando_ring_01_02.py b/scripts/object/tangible/wearables/ring/item_commando_ring_01_02.py index 5e4f73c1..8ec06176 100644 --- a/scripts/object/tangible/wearables/ring/item_commando_ring_01_02.py +++ b/scripts/object/tangible/wearables/ring/item_commando_ring_01_02.py @@ -1,4 +1,4 @@ -import sys +aimport sys def setup(core, object): object.setAttachment('objType', 'ring') @@ -6,6 +6,7 @@ def setup(core, object): object.setStfName('item_commando_ring_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_commando_ring_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 6) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 6) object.setStringAttribute('class_required', 'Commando') diff --git a/scripts/object/tangible/wearables/ring/item_spy_ring_01_02.py b/scripts/object/tangible/wearables/ring/item_spy_ring_01_02.py index e6d4aafb..faa88931 100644 --- a/scripts/object/tangible/wearables/ring/item_spy_ring_01_02.py +++ b/scripts/object/tangible/wearables/ring/item_spy_ring_01_02.py @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('item_spy_ring_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_spy_ring_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 6) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 6) object.setStringAttribute('class_required', 'Spy') 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..f7369163 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 @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('weapon_acidbeam_commando_roadmap_01_02') object.setDetailFilename('static_item_d') object.setDetailName('weapon_acidbeam_commando_roadmap_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5) object.setStringAttribute('class_required', 'Commando') object.setIntAttribute('required_combat_level', 30) 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..d1940a77 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 @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('weapon_carbine_bh_roadmap_01_02') object.setDetailFilename('static_item_d') object.setDetailName('weapon_carbine_bh_roadmap_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5) object.setStringAttribute('class_required', 'Bounty Hunter') object.setIntAttribute('required_combat_level', 30) 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..83d234f8 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 @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('weapon_carbine_sp_roadmap_01_02') object.setDetailFilename('static_item_d') object.setDetailName('weapon_carbine_sp_roadmap_01_02') + object.setIntAttribute('no_trade', 1) object.setStringAttribute('class_required', 'Spy') object.setIntAttribute('required_combat_level', 50) object.setAttackSpeed(0.6); 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..e49dba23 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 @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('weapon_pistol_sp_roadmap_01_02') object.setDetailFilename('static_item_d') object.setDetailName('weapon_pistol_sp_roadmap_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5) object.setStringAttribute('class_required', 'Spy') object.setIntAttribute('required_combat_level', 30) 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..b1c94181 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 @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('weapon_lightningbeam_commando_roadmap_01_02') object.setDetailFilename('static_item_d') object.setDetailName('weapon_lightningbeam_commando_roadmap_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5) object.setStringAttribute('class_required', 'commando') object.setIntAttribute('required_combat_level', 30) 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..870f5639 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 @@ -5,6 +5,7 @@ def setup(core, object): object.setStfName('weapon_rifle_bh_roadmap_01_02') object.setDetailFilename('static_item_d') object.setDetailName('weapon_rifle_bh_roadmap_01_02') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5) object.setStringAttribute('class_required', 'Bounty Hunter') object.setIntAttribute('required_combat_level', 50) From 0fececd1d76cfdb44deabc5af8f0b7bedf8f7fd4 Mon Sep 17 00:00:00 2001 From: Iosnowore-Kun Date: Fri, 8 Aug 2014 12:00:09 -0400 Subject: [PATCH 30/51] Fixed Mistake In Previous Commit --- .../object/tangible/wearables/ring/item_commando_ring_01_02.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/object/tangible/wearables/ring/item_commando_ring_01_02.py b/scripts/object/tangible/wearables/ring/item_commando_ring_01_02.py index 8ec06176..ecbc5a20 100644 --- a/scripts/object/tangible/wearables/ring/item_commando_ring_01_02.py +++ b/scripts/object/tangible/wearables/ring/item_commando_ring_01_02.py @@ -1,4 +1,4 @@ -aimport sys +import sys def setup(core, object): object.setAttachment('objType', 'ring') From d3a7d47b1ac9ddd9797f86bf515c45054623df96 Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Fri, 8 Aug 2014 18:25:57 +0200 Subject: [PATCH 31/51] Added Lair template overloads and Boss spawns for lairs - Content devs can now add lairCRC vectors and bosses - The boss spawns will only work after the invasion commit because then lairs will get health bars and the lair will spawn more waves --- scripts/mobiles/lairgroups/lok_bosstest.py | 11 +++++ scripts/mobiles/lairs/lok_gurk_lair.py | 8 ++++ scripts/mobiles/lok/lok_gurk.py | 46 ++++++++++++++++++ scripts/mobiles/lok/reclusive_gurk_king.py | 46 ++++++++++++++++++ .../mobiles/spawnareas/lok_lair_bosstest_1.py | 6 +++ scripts/radial/npc/untamable.py | 2 +- .../objects/creature/CreatureObject.java | 4 ++ src/services/LootService.java | 2 +- src/services/ai/LairActor.java | 16 ++++++- src/services/spawn/LairTemplate.java | 48 +++++++++++++++++++ src/services/spawn/SpawnService.java | 25 +++++++++- 11 files changed, 210 insertions(+), 4 deletions(-) create mode 100644 scripts/mobiles/lairgroups/lok_bosstest.py create mode 100644 scripts/mobiles/lairs/lok_gurk_lair.py create mode 100644 scripts/mobiles/lok/lok_gurk.py create mode 100644 scripts/mobiles/lok/reclusive_gurk_king.py create mode 100644 scripts/mobiles/spawnareas/lok_lair_bosstest_1.py diff --git a/scripts/mobiles/lairgroups/lok_bosstest.py b/scripts/mobiles/lairgroups/lok_bosstest.py new file mode 100644 index 00000000..bc781ff8 --- /dev/null +++ b/scripts/mobiles/lairgroups/lok_bosstest.py @@ -0,0 +1,11 @@ +import sys +from services.spawn import LairSpawnTemplate +from java.util import Vector + +def addLairGroup(core): + spawnTemplate1 = LairSpawnTemplate(-1, 'lok_gurk_lair', 5, 20) + spawnTemplates = Vector() + spawnTemplates.add(spawnTemplate1) + + core.spawnService.addLairGroup('lok_bosstest', spawnTemplates) + return \ No newline at end of file diff --git a/scripts/mobiles/lairs/lok_gurk_lair.py b/scripts/mobiles/lairs/lok_gurk_lair.py new file mode 100644 index 00000000..9c7997b3 --- /dev/null +++ b/scripts/mobiles/lairs/lok_gurk_lair.py @@ -0,0 +1,8 @@ +import sys +from java.util import Vector + +def addTemplate(core): + lairCRCs = Vector() + lairCRCs.add('object/tangible/terminal/shared_terminal_character_builder.iff') + core.spawnService.addLairTemplate('lok_gurk_lair', 'lok_gurk', 15, lairCRCs,'reclusive_gurk_king') + return \ No newline at end of file diff --git a/scripts/mobiles/lok/lok_gurk.py b/scripts/mobiles/lok/lok_gurk.py new file mode 100644 index 00000000..fa561007 --- /dev/null +++ b/scripts/mobiles/lok/lok_gurk.py @@ -0,0 +1,46 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty +from resources.datatables import Options +from java.util import Vector + + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCustomName('A gurk') + mobileTemplate.setLevel(79) + mobileTemplate.setMinLevel(79) + mobileTemplate.setMaxLevel(80) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(True) + mobileTemplate.setScale(1) + mobileTemplate.setMeatType("Carnivore Meat") + mobileTemplate.setMeatAmount(1450) + mobileTemplate.setHideType("Leathery Hide") + mobileTemplate.setHideAmount(1350) + mobileTemplate.setSocialGroup("kimogila") + mobileTemplate.setAssistRange(12) + mobileTemplate.setStalker(True) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + + templates = Vector() + templates.add('object/mobile/shared_voritor_dasher.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('lok_gurk', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/lok/reclusive_gurk_king.py b/scripts/mobiles/lok/reclusive_gurk_king.py new file mode 100644 index 00000000..754ca0fe --- /dev/null +++ b/scripts/mobiles/lok/reclusive_gurk_king.py @@ -0,0 +1,46 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty +from resources.datatables import Options +from java.util import Vector + + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCustomName('Gurk King') + mobileTemplate.setLevel(79) + mobileTemplate.setMinLevel(79) + mobileTemplate.setMaxLevel(80) + mobileTemplate.setDifficulty(Difficulty.BOSS) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(True) + mobileTemplate.setScale(1) + mobileTemplate.setMeatType("Carnivore Meat") + mobileTemplate.setMeatAmount(1450) + mobileTemplate.setHideType("Leathery Hide") + mobileTemplate.setHideAmount(1350) + mobileTemplate.setSocialGroup("kimogila") + mobileTemplate.setAssistRange(12) + mobileTemplate.setStalker(True) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + + templates = Vector() + templates.add('object/mobile/shared_recluse_gurk_king.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('reclusive_gurk_king', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/spawnareas/lok_lair_bosstest_1.py b/scripts/mobiles/spawnareas/lok_lair_bosstest_1.py new file mode 100644 index 00000000..64d88a8d --- /dev/null +++ b/scripts/mobiles/spawnareas/lok_lair_bosstest_1.py @@ -0,0 +1,6 @@ +# Spawn Area file created with PSWG Planetary Spawn Tool +import sys + +def addSpawnArea(core): + core.spawnService.addLairSpawnArea('lok_bosstest', -2400, 3600, 1800, 'lok') + return diff --git a/scripts/radial/npc/untamable.py b/scripts/radial/npc/untamable.py index 420fb6d0..e75e088f 100644 --- a/scripts/radial/npc/untamable.py +++ b/scripts/radial/npc/untamable.py @@ -7,6 +7,6 @@ def createRadial(core, owner, target, radials): return def handleSelection(core, owner, target, option): + return - \ No newline at end of file diff --git a/src/resources/objects/creature/CreatureObject.java b/src/resources/objects/creature/CreatureObject.java index 332d1731..432bbf70 100644 --- a/src/resources/objects/creature/CreatureObject.java +++ b/src/resources/objects/creature/CreatureObject.java @@ -1487,6 +1487,10 @@ public class CreatureObject extends TangibleObject implements Serializable { getClient().getSession().write(new PlayMusicMessage(sndFile, targetId, 1, false).serialize()); } + public void playMusicSelf(String sndFile, long targetId, int repetitions, boolean flag) { + getClient().getSession().write(new PlayMusicMessage(sndFile, targetId, 1, false).serialize()); + } + public boolean getGroupDance() { synchronized(objectMutex) { return groupDance; diff --git a/src/services/LootService.java b/src/services/LootService.java index 6811ee64..3ac9ee45 100644 --- a/src/services/LootService.java +++ b/src/services/LootService.java @@ -242,7 +242,7 @@ public class LootService implements INetworkDispatch { if (droppedItem.getAttachment("LootItemName").toString().contains("Loot Chest")){ lootedObject.playEffectObject("appearance/pt_rare_chest.prt", ""); - requester.playMusic("sound/rare_loot_chest.snd"); + requester.playMusicSelf("sound/rare_loot_chest.snd", requester.getObjectID(),1,false); } } diff --git a/src/services/ai/LairActor.java b/src/services/ai/LairActor.java index 56fa0ac5..1bb1e4b8 100644 --- a/src/services/ai/LairActor.java +++ b/src/services/ai/LairActor.java @@ -42,6 +42,8 @@ public class LairActor { private Vector creatureTemplates; private volatile int spawnWave = 0; private short level; + private String bossTemplate; + private boolean bossSpawned = false; public LairActor(TangibleObject lairObject, String creatureTemplate) { this.lairObject = lairObject; @@ -118,6 +120,10 @@ public class LairActor { } break; case 3: + if (bossTemplate!=null && ! bossSpawned){ + CreatureObject boss = (CreatureObject)NGECore.getInstance().spawnService.spawnCreature(bossTemplate, lairObject.getPlanet().getName(), 0L, lairObject.getPosition().x + 3, lairObject.getPosition().y, lairObject.getPosition().z, lairObject.getOrientation().w, lairObject.getOrientation().x, lairObject.getOrientation().y,lairObject.getOrientation().z,-1); + bossSpawned = true; + } return; default: @@ -139,7 +145,7 @@ public class LairActor { creatureTemplate = creatureTemplates.get(new Random().nextInt(creatureTemplates.size())); float babyChance = new Random().nextFloat(); CreatureObject creature = null; - if (babyChance>0.9){ + if (babyChance>0.1){ creature = NGECore.getInstance().spawnService.spawnCreature(creatureTemplate, lairObject.getPlanet().getName(), 0, position.x, position.y, position.z, level); } else { creature = NGECore.getInstance().spawnService.spawnCreatureBaby(creatureTemplate, lairObject.getPlanet().getName(), 0, position.x, position.y, position.z, level); @@ -197,4 +203,12 @@ public class LairActor { public void setLevel(short level) { this.level = level; } + + public String getBossTemplate() { + return bossTemplate; + } + + public void setBossTemplate(String bossTemplate) { + this.bossTemplate = bossTemplate; + } } diff --git a/src/services/spawn/LairTemplate.java b/src/services/spawn/LairTemplate.java index 04741351..c94dfe50 100644 --- a/src/services/spawn/LairTemplate.java +++ b/src/services/spawn/LairTemplate.java @@ -29,7 +29,9 @@ public class LairTemplate { private String lairCRC; private String mobileName; private Vector mobiles; + private Vector lairCRCs; private int mobileLimit; + private String bossTemplate; public LairTemplate(String name, String mobile, int mobileLimit, String lairCRC) { this.name = name; @@ -45,6 +47,36 @@ public class LairTemplate { this.lairCRC = lairCRC; } + public LairTemplate(String name, Vector mobiles, int mobileLimit, Vector lairCRCs) { + this.name = name; + this.mobiles = mobiles; + this.mobileLimit = mobileLimit; + this.lairCRCs = lairCRCs; + } + + public LairTemplate(String name, Vector mobiles, int mobileLimit, Vector lairCRCs, String bossTemplate) { + this.name = name; + this.mobiles = mobiles; + this.mobileLimit = mobileLimit; + this.lairCRCs = lairCRCs; + this.bossTemplate = bossTemplate; + } + + public LairTemplate(String name, String mobile, int mobileLimit, Vector lairCRCs, String bossTemplate) { + this.name = name; + this.mobileName = mobile; + this.mobileLimit = mobileLimit; + this.lairCRCs = lairCRCs; + this.bossTemplate = bossTemplate; + } + + public LairTemplate(String name, String mobile, int mobileLimit, Vector lairCRCs) { + this.name = name; + this.mobileName = mobile; + this.mobileLimit = mobileLimit; + this.lairCRCs = lairCRCs; + } + public String getLairCRC() { return lairCRC; } @@ -85,4 +117,20 @@ public class LairTemplate { this.mobiles = mobiles; } + public Vector getLairCRCs() { + return lairCRCs; + } + + public void setLairCRCs(Vector lairCRCs) { + this.lairCRCs = lairCRCs; + } + + public String getBossTemplate() { + return bossTemplate; + } + + public void setBossTemplate(String bossTemplate) { + this.bossTemplate = bossTemplate; + } + } diff --git a/src/services/spawn/SpawnService.java b/src/services/spawn/SpawnService.java index 1a612118..0fc22032 100644 --- a/src/services/spawn/SpawnService.java +++ b/src/services/spawn/SpawnService.java @@ -436,7 +436,15 @@ public class SpawnService { LairTemplate lairTemplate = lairTemplates.get(lairSpawnTemplate); if(lairTemplate == null) return null; - TangibleObject lairObject = (TangibleObject) core.objectService.createObject(lairTemplate.getLairCRC(), 0, planet, position, new Quaternion(1, 0, 0, 0)); + + TangibleObject lairObject = null; + if (lairTemplate.getLairCRC()==null){ + String lairCRC = lairTemplate.getLairCRCs().get(new Random().nextInt(lairTemplate.getLairCRCs().size())); + System.out.println("Lair CRC " + lairCRC); + lairObject = (TangibleObject) core.objectService.createObject(lairCRC, 0, planet, position, new Quaternion(1, 0, 0, 0)); + } else { + lairObject = (TangibleObject) core.objectService.createObject(lairTemplate.getLairCRC().trim(), 0, planet, position, new Quaternion(1, 0, 0, 0)); + } if(lairObject == null) return null; @@ -452,6 +460,9 @@ public class SpawnService { lairObject.setAttachment("AI", lairActor); + if (lairTemplate.getBossTemplate()!=null) + lairActor.setBossTemplate(lairTemplate.getBossTemplate()); + core.simulationService.add(lairObject, position.x, position.z, true); lairActor.spawnNewCreatures(); @@ -506,6 +517,18 @@ public class SpawnService { lairTemplates.put(name, new LairTemplate(name, mobiles, mobileLimit, lairCRC)); } + public void addLairTemplate(String name, Vector mobiles, int mobileLimit, Vector lairCRCs) { + lairTemplates.put(name, new LairTemplate(name, mobiles, mobileLimit, lairCRCs)); + } + + public void addLairTemplate(String name, Vector mobiles, int mobileLimit, Vector lairCRCs, String bossTemplate) { + lairTemplates.put(name, new LairTemplate(name, mobiles, mobileLimit, lairCRCs)); + } + + public void addLairTemplate(String name, String mobile, int mobileLimit, Vector lairCRCs, String bossTemplate) { + lairTemplates.put(name, new LairTemplate(name, mobile, mobileLimit, lairCRCs)); + } + public void loadLairGroups() { Path p = Paths.get("scripts/mobiles/lairgroups"); FileVisitor fv = new SimpleFileVisitor() { From 6b8461f1a59106849dc8aa41e73e87c2839c4e4e Mon Sep 17 00:00:00 2001 From: Treeku Date: Fri, 8 Aug 2014 20:21:26 +0100 Subject: [PATCH 32/51] Refactored WeaponObject --- .../objects/weapon/WeaponMessageBuilder.java | 103 -------- .../objects/weapon/WeaponObject.java | 232 +++++++++++------- 2 files changed, 145 insertions(+), 190 deletions(-) diff --git a/src/resources/objects/weapon/WeaponMessageBuilder.java b/src/resources/objects/weapon/WeaponMessageBuilder.java index a67444cd..03377c62 100644 --- a/src/resources/objects/weapon/WeaponMessageBuilder.java +++ b/src/resources/objects/weapon/WeaponMessageBuilder.java @@ -21,14 +21,10 @@ ******************************************************************************/ package resources.objects.weapon; -import java.nio.ByteOrder; import java.util.Map; -import org.apache.mina.core.buffer.IoBuffer; - import engine.resources.objects.Builder; import resources.objects.tangible.TangibleMessageBuilder; -import resources.datatables.Elemental; public class WeaponMessageBuilder extends TangibleMessageBuilder { @@ -40,105 +36,6 @@ public class WeaponMessageBuilder extends TangibleMessageBuilder { super(); } - public IoBuffer buildBaseline3() { - WeaponObject weapon = (WeaponObject) object; - IoBuffer buffer = bufferPool.allocate(100, false).order(ByteOrder.LITTLE_ENDIAN); - buffer.setAutoExpand(true); - buffer.putShort((short) 0x14); - buffer.putFloat(0); - buffer.put(getAsciiString(weapon.getStfFilename())); - buffer.putInt(0); - buffer.put(getAsciiString(weapon.getStfName())); - if(weapon.getCustomName() == null || weapon.getCustomName().length() < 1) - buffer.putInt(0); - else - buffer.put(getUnicodeString(weapon.getCustomName())); - buffer.putInt(object.getVolume()); - buffer.putInt(0); - buffer.putInt(0); // unknowns - if(weapon.getCustomization() == null || weapon.getCustomization().length < 1) - buffer.putShort((short) 0); - else { - buffer.putShort((short) weapon.getCustomization().length); - buffer.put(weapon.getCustomization()); - } - buffer.putInt(0); - buffer.putInt(0); - buffer.putInt(weapon.getOptionsBitmask()); - buffer.putInt(0); - buffer.putInt(weapon.getConditionDamage()); - buffer.putInt(0x64); - buffer.put((byte) (weapon.isStaticObject() ? 1 : 0)); - buffer.putFloat(weapon.getAttackSpeed()); - buffer.putInt(0); - buffer.putInt(0); - buffer.putFloat(weapon.getMaxRange()); - buffer.putInt(0); - if( weapon.getElementalType() != null) // Weapon particle effect - buffer.putInt(Elemental.getElementalNum(weapon.getElementalType())); - else - buffer.putInt(Elemental.getElementalNum(weapon.getDamageType())); - buffer.putInt(0); - - int size = buffer.position(); - buffer = bufferPool.allocate(size, false).put(buffer.array(), 0, size); - - buffer.flip(); - buffer = createBaseline("WEAO", (byte) 3, buffer, size); - - return buffer; - } - - public IoBuffer buildBaseline6() { - WeaponObject weapon = (WeaponObject) object; - IoBuffer buffer = bufferPool.allocate(100, false).order(ByteOrder.LITTLE_ENDIAN); - buffer.setAutoExpand(true); - buffer.putShort((short) 9); - buffer.putInt(0x43); - buffer.put(getAsciiString(weapon.getDetailFilename())); - buffer.putInt(0); - buffer.put(getAsciiString(weapon.getDetailName())); - buffer.put((byte) 0); - buffer.putLong(0); - buffer.putInt(0); - buffer.putLong(0); - buffer.putLong(0); // unks - buffer.putLong(0); - buffer.putInt(weapon.getWeaponType()); - - int size = buffer.position(); - buffer = bufferPool.allocate(size, false).put(buffer.array(), 0, size); - - buffer.flip(); - buffer = createBaseline("WEAO", (byte) 6, buffer, size); - - return buffer; - } - - public IoBuffer buildBaseline8() { - IoBuffer buffer = bufferPool.allocate(2, false).order(ByteOrder.LITTLE_ENDIAN); - buffer.putShort((short) 0); - int size = buffer.position(); - buffer = IoBuffer.allocate(size).put(buffer.array(), 0, size); - - buffer.flip(); - buffer = createBaseline("WEAO", (byte) 8, buffer, size); - - return buffer; - } - - public IoBuffer buildBaseline9() { - IoBuffer buffer = bufferPool.allocate(2, false).order(ByteOrder.LITTLE_ENDIAN); - buffer.putShort((short) 0); - int size = buffer.position(); - buffer = IoBuffer.allocate(size).put(buffer.array(), 0, size); - - buffer.flip(); - buffer = createBaseline("WEAO", (byte) 9, buffer, size); - - return buffer; - } - @Override public void buildBaseline3(Map baselineBuilders, Map deltaBuilders) { super.buildBaseline3(baselineBuilders, deltaBuilders); diff --git a/src/resources/objects/weapon/WeaponObject.java b/src/resources/objects/weapon/WeaponObject.java index a06010ec..4f7402b6 100644 --- a/src/resources/objects/weapon/WeaponObject.java +++ b/src/resources/objects/weapon/WeaponObject.java @@ -22,13 +22,13 @@ package resources.objects.weapon; import java.io.Serializable; -import java.util.Vector; +import org.apache.mina.core.buffer.IoBuffer; + +import engine.resources.objects.Baseline; +import resources.datatables.Elemental; import resources.datatables.WeaponType; import resources.objects.tangible.TangibleObject; - -import com.sleepycat.persist.model.NotPersistent; - import engine.clients.Client; import engine.resources.scene.Planet; import engine.resources.scene.Point3D; @@ -37,36 +37,115 @@ import engine.resources.scene.Quaternion; public class WeaponObject extends TangibleObject implements Serializable { private static final long serialVersionUID = 1L; - - // TODO: Thread safety - @NotPersistent private transient WeaponMessageBuilder messageBuilder; public WeaponObject(long objectID, Planet planet, String template) { super(objectID, planet, new Point3D(0, 0, 0), new Quaternion(1, 0, 1, 0), template); - messageBuilder = new WeaponMessageBuilder(this); if (this.getClass().getSimpleName().equals("WeaponObject")) setIntAttribute("volume", 1); setStringAttribute("cat_wpn_damage.damage", "0-0"); } - + public WeaponObject(long objectID, Planet planet, Point3D position, Quaternion orientation, String template) { super(objectID, planet, position, orientation, template); - messageBuilder = new WeaponMessageBuilder(this); if (this.getClass().getSimpleName().equals("WeaponObject")) setIntAttribute("volume", 1); setStringAttribute("cat_wpn_damage.damage", "0-0"); } public WeaponObject() { super(); - messageBuilder = new WeaponMessageBuilder(this); + } + + public void initAfterDBLoad() { + super.initAfterDBLoad(); } @Override - public void initAfterDBLoad() { - super.init(); - messageBuilder = new WeaponMessageBuilder(this); - defendersList = new Vector(); + public Baseline getOtherVariables() { + Baseline baseline = super.getOtherVariables(); + return baseline; + } + + @Override + public Baseline getBaseline3() { + Baseline baseline = super.getBaseline3(); + baseline.put("attackSpeed", (float) 0); + baseline.put("14", 0); + baseline.put("15", 0); + baseline.put("maxRange", (float) 0); + baseline.put("17", 0); // Could be lightsaber color? Seen as 2 on a saber + baseline.put("weaponParticleEffect", 0); + baseline.put("19", 0); // something to do with particle color + return baseline; + } + + @Override + public Baseline getBaseline6() { + Baseline baseline = super.getBaseline6(); + baseline.put("weaponType", 6); + return baseline; + } + + @Override + public Baseline getBaseline8() { + Baseline baseline = super.getBaseline8(); + return baseline; + } + + @Override + public Baseline getBaseline9() { + Baseline baseline = super.getBaseline9(); + return baseline; + } + + public float getAttackSpeed() { + return (float) getBaseline(3).get("attackSpeed"); + } + + public void setAttackSpeed(float attackSpeed) { + if ((int) attackSpeed != attackSpeed) { + setFloatAttribute("cat_wpn_damage.wpn_attack_speed", attackSpeed); + } else { + setIntAttribute("cat_wpn_damage.wpn_attack_speed", (int) attackSpeed); + } + + setIntAttribute("cat_wpn_damage.dps", getDamagePerSecond()); + notifyClients(getBaseline(3).set("attackSpeed", attackSpeed), false); + } + + public float getMaxRange() { + return (float) getBaseline(3).get("maxRange"); + } + + public void setMaxRange(float maxRange) { + if ((int) maxRange != maxRange) { + setStringAttribute("cat_wpn_damage.wpn_range", "0-" + String.valueOf(maxRange) + "m"); + } else { + setStringAttribute("cat_wpn_damage.wpn_range", "0-" + String.valueOf((int) maxRange) + "m"); + } + + notifyClients(getBaseline(3).set("maxRange", maxRange), false); + } + + public int getWeaponParticleEffect() { + return (int) getBaseline(3).get("weaponParticleEffect"); + } + + public void setWeaponParticleEffect(int weaponParticleEffect) { + notifyClients(getBaseline(3).set("weaponParticleEffect", weaponParticleEffect), false); + } + + public int getWeaponType() { + if (getStringAttribute("cat_wpn_damage.wpn_category") == null) { + System.err.println("Error: Weapon Type not defined for " + getTemplate()); + } + + return (int) getBaseline(6).get("weaponType"); + } + + public void setWeaponType(int weaponType) { + setStringAttribute("cat_wpn_damage.wpn_category", "@obj_attr_n:wpn_category_" + weaponType); + notifyClients(getBaseline(6).set("weaponType", weaponType), false); } public int getMaxDamage() { @@ -81,9 +160,8 @@ public class WeaponObject extends TangibleObject implements Serializable { public int getMinDamage() { return Integer.parseInt(getStringAttribute("cat_wpn_damage.damage").split("-")[0]); } - + public void setMinDamage(int minDamage) { - setStringAttribute("cat_wpn_damage.damage", String.valueOf(minDamage) + "-" + String.valueOf(getMaxDamage())); setIntAttribute("cat_wpn_damage.dps", getDamagePerSecond()); } @@ -91,20 +169,23 @@ public class WeaponObject extends TangibleObject implements Serializable { public int getElementalDamage() { return getIntAttribute("cat_wpn_damage.wpn_elemental_value"); } - + public void setElementalDamage(int elementalDamage) { setIntAttribute("cat_wpn_damage.wpn_elemental_value", elementalDamage); setIntAttribute("cat_wpn_damage.dps", getDamagePerSecond()); } - + public String getElementalType() { - if (getStringAttribute("cat_wpn_damage.wpn_elemental_type") != null ) + if (getStringAttribute("cat_wpn_damage.wpn_elemental_type") != null) { return getStringAttribute("cat_wpn_damage.wpn_elemental_type").replace("@obj_attr_n:elemental_", ""); + } + return null; } public void setElementalType(String elementalType) { setStringAttribute("cat_wpn_damage.wpn_elemental_type", "@obj_attr_n:elemental_" + elementalType); + setWeaponParticleEffect(Elemental.getElementalNum(getElementalType())); } public String getDamageType() { @@ -113,93 +194,70 @@ public class WeaponObject extends TangibleObject implements Serializable { public void setDamageType(String damageType) { setStringAttribute("cat_wpn_damage.wpn_damage_type", "@obj_attr_n:armor_eff_" + damageType); + setWeaponParticleEffect(Elemental.getElementalNum(getDamageType())); } public int getDamagePerSecond() { - if(getAttributes().containsKey("cat_wpn_damage.damage") && getAttributes().containsKey("cat_wpn_damage.wpn_attack_speed")) { - - if (getElementalType() != null ) + if (getAttributes().containsKey("cat_wpn_damage.damage") && getAttributes().containsKey("cat_wpn_damage.wpn_attack_speed")) { + if (getElementalType() != null) { return (int) (((getMaxDamage() + getElementalDamage() + getMinDamage() + getElementalDamage()) / 2 + getElementalDamage()) * (1 / getAttackSpeed())); - else + } else { return (int) (((getMaxDamage() + getMinDamage()) / 2 ) * (1 / getAttackSpeed())); - } else - return 0; - } - - public int getWeaponType() { - if (getStringAttribute("cat_wpn_damage.wpn_category") == null) { - System.err.println("Error: Weapon Type not defined for " + getTemplate()); - return 6; + } + } else { + return 0; } - - return Integer.parseInt(getStringAttribute("cat_wpn_damage.wpn_category").replace("@obj_attr_n:wpn_category_", "")); } - public void setWeaponType(int weaponType) { - setStringAttribute("cat_wpn_damage.wpn_category", "@obj_attr_n:wpn_category_" + weaponType); - } - - @Override - public void sendBaselines(Client destination) { - - if(destination == null || destination.getSession() == null) - return; - - destination.getSession().write(messageBuilder.buildBaseline3()); - destination.getSession().write(messageBuilder.buildBaseline6()); - destination.getSession().write(messageBuilder.buildBaseline8()); - destination.getSession().write(messageBuilder.buildBaseline9()); - - - } - - public float getAttackSpeed() { - return getFloatAttribute("cat_wpn_damage.wpn_attack_speed"); - } - - public void setAttackSpeed(float attackSpeed) { - if((int) attackSpeed != attackSpeed) - setFloatAttribute("cat_wpn_damage.wpn_attack_speed", attackSpeed); - else - setIntAttribute("cat_wpn_damage.wpn_attack_speed", (int) attackSpeed); - - setIntAttribute("cat_wpn_damage.dps", getDamagePerSecond()); - } - - public WeaponMessageBuilder getMessageBuilder() { - return messageBuilder; - } - - public float getMaxRange() { - return Float.parseFloat(getStringAttribute("cat_wpn_damage.wpn_range").replace("0-", "").replace("m", "")); - } - - public void setMaxRange(float maxRange) { - if((int) maxRange != maxRange) - setStringAttribute("cat_wpn_damage.wpn_range", "0-" + String.valueOf(maxRange) + "m"); - else - setStringAttribute("cat_wpn_damage.wpn_range", "0-" + String.valueOf((int) maxRange) + "m"); - } - public boolean isMelee() { - int weaponType = getWeaponType(); - if(weaponType == WeaponType.ONEHANDEDMELEE || weaponType == WeaponType.TWOHANDEDMELEE || weaponType == WeaponType.UNARMED || weaponType == WeaponType.POLEARMMELEE || weaponType == WeaponType.ONEHANDEDSABER || weaponType == WeaponType.TWOHANDEDSABER || weaponType == WeaponType.POLEARMSABER) + if (weaponType == WeaponType.ONEHANDEDMELEE || weaponType == WeaponType.TWOHANDEDMELEE || weaponType == WeaponType.UNARMED || weaponType == WeaponType.POLEARMMELEE || weaponType == WeaponType.ONEHANDEDSABER || weaponType == WeaponType.TWOHANDEDSABER || weaponType == WeaponType.POLEARMSABER) { return true; + } return false; - } public boolean isRanged() { - int weaponType = getWeaponType(); - if(weaponType == WeaponType.RIFLE || weaponType == WeaponType.CARBINE || weaponType == WeaponType.PISTOL || weaponType == WeaponType.FLAMETHROWER || weaponType == WeaponType.HEAVYWEAPON) + if (weaponType == WeaponType.RIFLE || weaponType == WeaponType.CARBINE || weaponType == WeaponType.PISTOL || weaponType == WeaponType.FLAMETHROWER || weaponType == WeaponType.HEAVYWEAPON) { return true; - + } + return false; - } + + @Override + public void notifyClients(IoBuffer buffer, boolean notifySelf) { + notifyObservers(buffer, notifySelf); + } + + @Override + public WeaponMessageBuilder getMessageBuilder() { + synchronized(objectMutex) { + if (messageBuilder == null) { + messageBuilder = new WeaponMessageBuilder(this); + } + + return messageBuilder; + } + } + + @Override + public void sendBaselines(Client destination) { + if (destination != null && destination.getSession() != null) { + destination.getSession().write(getBaseline(3).getBaseline()); + destination.getSession().write(getBaseline(6).getBaseline()); + + Client parent = ((getGrandparent() == null) ? null : getGrandparent().getClient()); + + if (parent != null && destination == parent) { + destination.getSession().write(getBaseline(8).getBaseline()); + destination.getSession().write(getBaseline(9).getBaseline()); + } + } + } + } From 51c14284eb1bde2d2fc3fbc1eab4bc9219962802 Mon Sep 17 00:00:00 2001 From: Treeku Date: Fri, 8 Aug 2014 21:53:18 +0100 Subject: [PATCH 33/51] Revert "Refactored WeaponObject" This reverts commit 6b8461f1a59106849dc8aa41e73e87c2839c4e4e. --- .../objects/weapon/WeaponMessageBuilder.java | 103 ++++++++ .../objects/weapon/WeaponObject.java | 232 +++++++----------- 2 files changed, 190 insertions(+), 145 deletions(-) diff --git a/src/resources/objects/weapon/WeaponMessageBuilder.java b/src/resources/objects/weapon/WeaponMessageBuilder.java index 03377c62..a67444cd 100644 --- a/src/resources/objects/weapon/WeaponMessageBuilder.java +++ b/src/resources/objects/weapon/WeaponMessageBuilder.java @@ -21,10 +21,14 @@ ******************************************************************************/ package resources.objects.weapon; +import java.nio.ByteOrder; import java.util.Map; +import org.apache.mina.core.buffer.IoBuffer; + import engine.resources.objects.Builder; import resources.objects.tangible.TangibleMessageBuilder; +import resources.datatables.Elemental; public class WeaponMessageBuilder extends TangibleMessageBuilder { @@ -36,6 +40,105 @@ public class WeaponMessageBuilder extends TangibleMessageBuilder { super(); } + public IoBuffer buildBaseline3() { + WeaponObject weapon = (WeaponObject) object; + IoBuffer buffer = bufferPool.allocate(100, false).order(ByteOrder.LITTLE_ENDIAN); + buffer.setAutoExpand(true); + buffer.putShort((short) 0x14); + buffer.putFloat(0); + buffer.put(getAsciiString(weapon.getStfFilename())); + buffer.putInt(0); + buffer.put(getAsciiString(weapon.getStfName())); + if(weapon.getCustomName() == null || weapon.getCustomName().length() < 1) + buffer.putInt(0); + else + buffer.put(getUnicodeString(weapon.getCustomName())); + buffer.putInt(object.getVolume()); + buffer.putInt(0); + buffer.putInt(0); // unknowns + if(weapon.getCustomization() == null || weapon.getCustomization().length < 1) + buffer.putShort((short) 0); + else { + buffer.putShort((short) weapon.getCustomization().length); + buffer.put(weapon.getCustomization()); + } + buffer.putInt(0); + buffer.putInt(0); + buffer.putInt(weapon.getOptionsBitmask()); + buffer.putInt(0); + buffer.putInt(weapon.getConditionDamage()); + buffer.putInt(0x64); + buffer.put((byte) (weapon.isStaticObject() ? 1 : 0)); + buffer.putFloat(weapon.getAttackSpeed()); + buffer.putInt(0); + buffer.putInt(0); + buffer.putFloat(weapon.getMaxRange()); + buffer.putInt(0); + if( weapon.getElementalType() != null) // Weapon particle effect + buffer.putInt(Elemental.getElementalNum(weapon.getElementalType())); + else + buffer.putInt(Elemental.getElementalNum(weapon.getDamageType())); + buffer.putInt(0); + + int size = buffer.position(); + buffer = bufferPool.allocate(size, false).put(buffer.array(), 0, size); + + buffer.flip(); + buffer = createBaseline("WEAO", (byte) 3, buffer, size); + + return buffer; + } + + public IoBuffer buildBaseline6() { + WeaponObject weapon = (WeaponObject) object; + IoBuffer buffer = bufferPool.allocate(100, false).order(ByteOrder.LITTLE_ENDIAN); + buffer.setAutoExpand(true); + buffer.putShort((short) 9); + buffer.putInt(0x43); + buffer.put(getAsciiString(weapon.getDetailFilename())); + buffer.putInt(0); + buffer.put(getAsciiString(weapon.getDetailName())); + buffer.put((byte) 0); + buffer.putLong(0); + buffer.putInt(0); + buffer.putLong(0); + buffer.putLong(0); // unks + buffer.putLong(0); + buffer.putInt(weapon.getWeaponType()); + + int size = buffer.position(); + buffer = bufferPool.allocate(size, false).put(buffer.array(), 0, size); + + buffer.flip(); + buffer = createBaseline("WEAO", (byte) 6, buffer, size); + + return buffer; + } + + public IoBuffer buildBaseline8() { + IoBuffer buffer = bufferPool.allocate(2, false).order(ByteOrder.LITTLE_ENDIAN); + buffer.putShort((short) 0); + int size = buffer.position(); + buffer = IoBuffer.allocate(size).put(buffer.array(), 0, size); + + buffer.flip(); + buffer = createBaseline("WEAO", (byte) 8, buffer, size); + + return buffer; + } + + public IoBuffer buildBaseline9() { + IoBuffer buffer = bufferPool.allocate(2, false).order(ByteOrder.LITTLE_ENDIAN); + buffer.putShort((short) 0); + int size = buffer.position(); + buffer = IoBuffer.allocate(size).put(buffer.array(), 0, size); + + buffer.flip(); + buffer = createBaseline("WEAO", (byte) 9, buffer, size); + + return buffer; + } + @Override public void buildBaseline3(Map baselineBuilders, Map deltaBuilders) { super.buildBaseline3(baselineBuilders, deltaBuilders); diff --git a/src/resources/objects/weapon/WeaponObject.java b/src/resources/objects/weapon/WeaponObject.java index 4f7402b6..a06010ec 100644 --- a/src/resources/objects/weapon/WeaponObject.java +++ b/src/resources/objects/weapon/WeaponObject.java @@ -22,13 +22,13 @@ package resources.objects.weapon; import java.io.Serializable; +import java.util.Vector; -import org.apache.mina.core.buffer.IoBuffer; - -import engine.resources.objects.Baseline; -import resources.datatables.Elemental; import resources.datatables.WeaponType; import resources.objects.tangible.TangibleObject; + +import com.sleepycat.persist.model.NotPersistent; + import engine.clients.Client; import engine.resources.scene.Planet; import engine.resources.scene.Point3D; @@ -37,115 +37,36 @@ import engine.resources.scene.Quaternion; public class WeaponObject extends TangibleObject implements Serializable { private static final long serialVersionUID = 1L; + + // TODO: Thread safety + @NotPersistent private transient WeaponMessageBuilder messageBuilder; public WeaponObject(long objectID, Planet planet, String template) { super(objectID, planet, new Point3D(0, 0, 0), new Quaternion(1, 0, 1, 0), template); + messageBuilder = new WeaponMessageBuilder(this); if (this.getClass().getSimpleName().equals("WeaponObject")) setIntAttribute("volume", 1); setStringAttribute("cat_wpn_damage.damage", "0-0"); } - + public WeaponObject(long objectID, Planet planet, Point3D position, Quaternion orientation, String template) { super(objectID, planet, position, orientation, template); + messageBuilder = new WeaponMessageBuilder(this); if (this.getClass().getSimpleName().equals("WeaponObject")) setIntAttribute("volume", 1); setStringAttribute("cat_wpn_damage.damage", "0-0"); } public WeaponObject() { super(); + messageBuilder = new WeaponMessageBuilder(this); } + @Override public void initAfterDBLoad() { - super.initAfterDBLoad(); - } - - @Override - public Baseline getOtherVariables() { - Baseline baseline = super.getOtherVariables(); - return baseline; - } - - @Override - public Baseline getBaseline3() { - Baseline baseline = super.getBaseline3(); - baseline.put("attackSpeed", (float) 0); - baseline.put("14", 0); - baseline.put("15", 0); - baseline.put("maxRange", (float) 0); - baseline.put("17", 0); // Could be lightsaber color? Seen as 2 on a saber - baseline.put("weaponParticleEffect", 0); - baseline.put("19", 0); // something to do with particle color - return baseline; - } - - @Override - public Baseline getBaseline6() { - Baseline baseline = super.getBaseline6(); - baseline.put("weaponType", 6); - return baseline; - } - - @Override - public Baseline getBaseline8() { - Baseline baseline = super.getBaseline8(); - return baseline; - } - - @Override - public Baseline getBaseline9() { - Baseline baseline = super.getBaseline9(); - return baseline; - } - - public float getAttackSpeed() { - return (float) getBaseline(3).get("attackSpeed"); - } - - public void setAttackSpeed(float attackSpeed) { - if ((int) attackSpeed != attackSpeed) { - setFloatAttribute("cat_wpn_damage.wpn_attack_speed", attackSpeed); - } else { - setIntAttribute("cat_wpn_damage.wpn_attack_speed", (int) attackSpeed); - } - - setIntAttribute("cat_wpn_damage.dps", getDamagePerSecond()); - notifyClients(getBaseline(3).set("attackSpeed", attackSpeed), false); - } - - public float getMaxRange() { - return (float) getBaseline(3).get("maxRange"); - } - - public void setMaxRange(float maxRange) { - if ((int) maxRange != maxRange) { - setStringAttribute("cat_wpn_damage.wpn_range", "0-" + String.valueOf(maxRange) + "m"); - } else { - setStringAttribute("cat_wpn_damage.wpn_range", "0-" + String.valueOf((int) maxRange) + "m"); - } - - notifyClients(getBaseline(3).set("maxRange", maxRange), false); - } - - public int getWeaponParticleEffect() { - return (int) getBaseline(3).get("weaponParticleEffect"); - } - - public void setWeaponParticleEffect(int weaponParticleEffect) { - notifyClients(getBaseline(3).set("weaponParticleEffect", weaponParticleEffect), false); - } - - public int getWeaponType() { - if (getStringAttribute("cat_wpn_damage.wpn_category") == null) { - System.err.println("Error: Weapon Type not defined for " + getTemplate()); - } - - return (int) getBaseline(6).get("weaponType"); - } - - public void setWeaponType(int weaponType) { - setStringAttribute("cat_wpn_damage.wpn_category", "@obj_attr_n:wpn_category_" + weaponType); - notifyClients(getBaseline(6).set("weaponType", weaponType), false); + super.init(); + messageBuilder = new WeaponMessageBuilder(this); + defendersList = new Vector(); } public int getMaxDamage() { @@ -160,8 +81,9 @@ public class WeaponObject extends TangibleObject implements Serializable { public int getMinDamage() { return Integer.parseInt(getStringAttribute("cat_wpn_damage.damage").split("-")[0]); } - + public void setMinDamage(int minDamage) { + setStringAttribute("cat_wpn_damage.damage", String.valueOf(minDamage) + "-" + String.valueOf(getMaxDamage())); setIntAttribute("cat_wpn_damage.dps", getDamagePerSecond()); } @@ -169,23 +91,20 @@ public class WeaponObject extends TangibleObject implements Serializable { public int getElementalDamage() { return getIntAttribute("cat_wpn_damage.wpn_elemental_value"); } - + public void setElementalDamage(int elementalDamage) { setIntAttribute("cat_wpn_damage.wpn_elemental_value", elementalDamage); setIntAttribute("cat_wpn_damage.dps", getDamagePerSecond()); } - + public String getElementalType() { - if (getStringAttribute("cat_wpn_damage.wpn_elemental_type") != null) { + if (getStringAttribute("cat_wpn_damage.wpn_elemental_type") != null ) return getStringAttribute("cat_wpn_damage.wpn_elemental_type").replace("@obj_attr_n:elemental_", ""); - } - return null; } public void setElementalType(String elementalType) { setStringAttribute("cat_wpn_damage.wpn_elemental_type", "@obj_attr_n:elemental_" + elementalType); - setWeaponParticleEffect(Elemental.getElementalNum(getElementalType())); } public String getDamageType() { @@ -194,70 +113,93 @@ public class WeaponObject extends TangibleObject implements Serializable { public void setDamageType(String damageType) { setStringAttribute("cat_wpn_damage.wpn_damage_type", "@obj_attr_n:armor_eff_" + damageType); - setWeaponParticleEffect(Elemental.getElementalNum(getDamageType())); } public int getDamagePerSecond() { - if (getAttributes().containsKey("cat_wpn_damage.damage") && getAttributes().containsKey("cat_wpn_damage.wpn_attack_speed")) { - if (getElementalType() != null) { + if(getAttributes().containsKey("cat_wpn_damage.damage") && getAttributes().containsKey("cat_wpn_damage.wpn_attack_speed")) { + + if (getElementalType() != null ) return (int) (((getMaxDamage() + getElementalDamage() + getMinDamage() + getElementalDamage()) / 2 + getElementalDamage()) * (1 / getAttackSpeed())); - } else { + else return (int) (((getMaxDamage() + getMinDamage()) / 2 ) * (1 / getAttackSpeed())); - } - } else { - return 0; + } else + return 0; + } + + public int getWeaponType() { + if (getStringAttribute("cat_wpn_damage.wpn_category") == null) { + System.err.println("Error: Weapon Type not defined for " + getTemplate()); + return 6; } + + return Integer.parseInt(getStringAttribute("cat_wpn_damage.wpn_category").replace("@obj_attr_n:wpn_category_", "")); } + public void setWeaponType(int weaponType) { + setStringAttribute("cat_wpn_damage.wpn_category", "@obj_attr_n:wpn_category_" + weaponType); + } + + @Override + public void sendBaselines(Client destination) { + + if(destination == null || destination.getSession() == null) + return; + + destination.getSession().write(messageBuilder.buildBaseline3()); + destination.getSession().write(messageBuilder.buildBaseline6()); + destination.getSession().write(messageBuilder.buildBaseline8()); + destination.getSession().write(messageBuilder.buildBaseline9()); + + + } + + public float getAttackSpeed() { + return getFloatAttribute("cat_wpn_damage.wpn_attack_speed"); + } + + public void setAttackSpeed(float attackSpeed) { + if((int) attackSpeed != attackSpeed) + setFloatAttribute("cat_wpn_damage.wpn_attack_speed", attackSpeed); + else + setIntAttribute("cat_wpn_damage.wpn_attack_speed", (int) attackSpeed); + + setIntAttribute("cat_wpn_damage.dps", getDamagePerSecond()); + } + + public WeaponMessageBuilder getMessageBuilder() { + return messageBuilder; + } + + public float getMaxRange() { + return Float.parseFloat(getStringAttribute("cat_wpn_damage.wpn_range").replace("0-", "").replace("m", "")); + } + + public void setMaxRange(float maxRange) { + if((int) maxRange != maxRange) + setStringAttribute("cat_wpn_damage.wpn_range", "0-" + String.valueOf(maxRange) + "m"); + else + setStringAttribute("cat_wpn_damage.wpn_range", "0-" + String.valueOf((int) maxRange) + "m"); + } + public boolean isMelee() { + int weaponType = getWeaponType(); - if (weaponType == WeaponType.ONEHANDEDMELEE || weaponType == WeaponType.TWOHANDEDMELEE || weaponType == WeaponType.UNARMED || weaponType == WeaponType.POLEARMMELEE || weaponType == WeaponType.ONEHANDEDSABER || weaponType == WeaponType.TWOHANDEDSABER || weaponType == WeaponType.POLEARMSABER) { + if(weaponType == WeaponType.ONEHANDEDMELEE || weaponType == WeaponType.TWOHANDEDMELEE || weaponType == WeaponType.UNARMED || weaponType == WeaponType.POLEARMMELEE || weaponType == WeaponType.ONEHANDEDSABER || weaponType == WeaponType.TWOHANDEDSABER || weaponType == WeaponType.POLEARMSABER) return true; - } return false; + } public boolean isRanged() { + int weaponType = getWeaponType(); - if (weaponType == WeaponType.RIFLE || weaponType == WeaponType.CARBINE || weaponType == WeaponType.PISTOL || weaponType == WeaponType.FLAMETHROWER || weaponType == WeaponType.HEAVYWEAPON) { + if(weaponType == WeaponType.RIFLE || weaponType == WeaponType.CARBINE || weaponType == WeaponType.PISTOL || weaponType == WeaponType.FLAMETHROWER || weaponType == WeaponType.HEAVYWEAPON) return true; - } - + return false; + } - - @Override - public void notifyClients(IoBuffer buffer, boolean notifySelf) { - notifyObservers(buffer, notifySelf); - } - - @Override - public WeaponMessageBuilder getMessageBuilder() { - synchronized(objectMutex) { - if (messageBuilder == null) { - messageBuilder = new WeaponMessageBuilder(this); - } - - return messageBuilder; - } - } - - @Override - public void sendBaselines(Client destination) { - if (destination != null && destination.getSession() != null) { - destination.getSession().write(getBaseline(3).getBaseline()); - destination.getSession().write(getBaseline(6).getBaseline()); - - Client parent = ((getGrandparent() == null) ? null : getGrandparent().getClient()); - - if (parent != null && destination == parent) { - destination.getSession().write(getBaseline(8).getBaseline()); - destination.getSession().write(getBaseline(9).getBaseline()); - } - } - } - } From e79d1ad9d01ae3e907fab83ba75cf544e067ceb3 Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Sat, 9 Aug 2014 01:33:01 +0200 Subject: [PATCH 34/51] Fix of Rifle bug part1 --- scripts/character_builder_terminal.py | 18 +++++++------- scripts/commands/transferitemweapon.py | 13 ++++------ src/services/equipment/EquipmentService.java | 25 +++++++++++++++++--- 3 files changed, 37 insertions(+), 19 deletions(-) diff --git a/scripts/character_builder_terminal.py b/scripts/character_builder_terminal.py index 29675e3f..c46fb1cf 100644 --- a/scripts/character_builder_terminal.py +++ b/scripts/character_builder_terminal.py @@ -378,13 +378,15 @@ 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) + + core.equipmentService.addRifle(owner, inventory) pistol = core.objectService.createObject('object/weapon/ranged/pistol/shared_pistol_dl44.iff', owner.getPlanet()) pistol.setDamageType("energy"); @@ -412,7 +414,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/scripts/commands/transferitemweapon.py b/scripts/commands/transferitemweapon.py index c75635a3..5a521e0b 100644 --- a/scripts/commands/transferitemweapon.py +++ b/scripts/commands/transferitemweapon.py @@ -4,8 +4,6 @@ def setup(): return def run(core, actor, target, commandString): - - parsedMsg = commandString.split(' ', 3) objService = core.objectService @@ -14,8 +12,8 @@ def run(core, actor, target, commandString): if target and container and target.getContainer(): oldContainer = target.getContainer() if container == oldContainer: - print 'Error: New container is same as old container.' - return; + print 'Error: New container is same as old container.' + return canEquip = core.equipmentService.canEquip(actor, target) @@ -27,19 +25,18 @@ def run(core, actor, target, commandString): slotName = None replacedObjects = [] slotNames = None - + if actor == container: slotNames = container.getSlotNamesForObject(target) - + for slotName in slotNames: object = container.getSlottedObject(slotName) - + if not object in replacedObjects and not object == None: replacedObjects.append(object) if object != None: container.transferTo(actor, container, object) - if target.getTemplate().find('/wearables/') or target.getTemplate().find('/weapon/'): core.equipmentService.equip(actor, target) diff --git a/src/services/equipment/EquipmentService.java b/src/services/equipment/EquipmentService.java index f5220c53..827478ce 100644 --- a/src/services/equipment/EquipmentService.java +++ b/src/services/equipment/EquipmentService.java @@ -39,6 +39,7 @@ import org.python.core.Py; import org.python.core.PyObject; import resources.datatables.FactionStatus; +import resources.datatables.WeaponType; import resources.objects.creature.CreatureObject; import main.NGECore; import engine.resources.container.Traverser; @@ -160,14 +161,19 @@ public class EquipmentService implements INetworkDispatch { { String template = ((item.getAttachment("customServerTemplate") == null) ? item.getTemplate() : (item.getTemplate().split("shared_")[0] + "shared_" + ((String) item.getAttachment("customServerTemplate")) + ".iff")); String serverTemplate = template.replace(".iff", ""); - + System.out.println("scripts/" + serverTemplate.split("shared_" , 2)[0].replace("shared_", "")); PyObject func = core.scriptService.getMethod("scripts/" + serverTemplate.split("shared_" , 2)[0].replace("shared_", ""), serverTemplate.split("shared_" , 2)[1], "equip"); if(func != null) func.__call__(Py.java2py(core), Py.java2py(actor), Py.java2py(item)); if(!actor.getEquipmentList().contains(item.getObjectID())) { - if(item instanceof WeaponObject) actor.setWeaponId(item.getObjectID()); - actor.addObjectToEquipList(item); + if(item instanceof WeaponObject){ + System.out.println(item.getTemplate() + " setWeaponId(item.getObjectID() " + item.getObjectID()); + actor.setWeaponId(item.getObjectID()); + } + + actor.addObjectToEquipList(item); processItemAtrributes(actor, item, true); + System.out.println("Item added " + item.getTemplate()); } } @@ -198,7 +204,9 @@ public class EquipmentService implements INetworkDispatch { if(equipping) { + System.out.println("Equipping"); if(item.getStringAttribute("cat_wpn_damage.wpn_category") != null) { + System.out.println("cat_wpn_damage.wpn_category"); core.skillModService.addSkillMod(creature, "display_only_critical", getWeaponCriticalChance(creature, item)); creature.setAttachment("EquippedWeapon", item.getObjectID()); @@ -518,4 +526,15 @@ public class EquipmentService implements INetworkDispatch { } catch (IOException e) { e.printStackTrace(); } } + + public void addRifle(CreatureObject actor, SWGObject inventory){ + WeaponObject rifle = (WeaponObject) core.objectService.createObject("object/weapon/ranged/rifle/shared_rifle_e11.iff", actor.getPlanet()); + rifle.setDamageType("energy"); + rifle.setWeaponType(WeaponType.RIFLE); + rifle.setAttackSpeed(0.8F); + rifle.setMinDamage(518); + rifle.setMaxDamage(1035); + rifle.setMaxRange(64); + inventory.add(rifle); + } } From 560df308deacfa4403dbef93d693b2af1f1ce751 Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Sat, 9 Aug 2014 01:35:47 +0200 Subject: [PATCH 35/51] Revert "Fix of Rifle bug part1" This reverts commit e79d1ad9d01ae3e907fab83ba75cf544e067ceb3. --- scripts/character_builder_terminal.py | 18 +++++++------- scripts/commands/transferitemweapon.py | 13 ++++++---- src/services/equipment/EquipmentService.java | 25 +++----------------- 3 files changed, 19 insertions(+), 37 deletions(-) diff --git a/scripts/character_builder_terminal.py b/scripts/character_builder_terminal.py index c46fb1cf..29675e3f 100644 --- a/scripts/character_builder_terminal.py +++ b/scripts/character_builder_terminal.py @@ -378,15 +378,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) - - core.equipmentService.addRifle(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) pistol = core.objectService.createObject('object/weapon/ranged/pistol/shared_pistol_dl44.iff', owner.getPlanet()) pistol.setDamageType("energy"); @@ -414,7 +412,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/scripts/commands/transferitemweapon.py b/scripts/commands/transferitemweapon.py index 5a521e0b..c75635a3 100644 --- a/scripts/commands/transferitemweapon.py +++ b/scripts/commands/transferitemweapon.py @@ -4,6 +4,8 @@ def setup(): return def run(core, actor, target, commandString): + + parsedMsg = commandString.split(' ', 3) objService = core.objectService @@ -12,8 +14,8 @@ def run(core, actor, target, commandString): if target and container and target.getContainer(): oldContainer = target.getContainer() if container == oldContainer: - print 'Error: New container is same as old container.' - return + print 'Error: New container is same as old container.' + return; canEquip = core.equipmentService.canEquip(actor, target) @@ -25,18 +27,19 @@ def run(core, actor, target, commandString): slotName = None replacedObjects = [] slotNames = None - + if actor == container: slotNames = container.getSlotNamesForObject(target) - + for slotName in slotNames: object = container.getSlottedObject(slotName) - + if not object in replacedObjects and not object == None: replacedObjects.append(object) if object != None: container.transferTo(actor, container, object) + if target.getTemplate().find('/wearables/') or target.getTemplate().find('/weapon/'): core.equipmentService.equip(actor, target) diff --git a/src/services/equipment/EquipmentService.java b/src/services/equipment/EquipmentService.java index 827478ce..f5220c53 100644 --- a/src/services/equipment/EquipmentService.java +++ b/src/services/equipment/EquipmentService.java @@ -39,7 +39,6 @@ import org.python.core.Py; import org.python.core.PyObject; import resources.datatables.FactionStatus; -import resources.datatables.WeaponType; import resources.objects.creature.CreatureObject; import main.NGECore; import engine.resources.container.Traverser; @@ -161,19 +160,14 @@ public class EquipmentService implements INetworkDispatch { { String template = ((item.getAttachment("customServerTemplate") == null) ? item.getTemplate() : (item.getTemplate().split("shared_")[0] + "shared_" + ((String) item.getAttachment("customServerTemplate")) + ".iff")); String serverTemplate = template.replace(".iff", ""); - System.out.println("scripts/" + serverTemplate.split("shared_" , 2)[0].replace("shared_", "")); + PyObject func = core.scriptService.getMethod("scripts/" + serverTemplate.split("shared_" , 2)[0].replace("shared_", ""), serverTemplate.split("shared_" , 2)[1], "equip"); if(func != null) func.__call__(Py.java2py(core), Py.java2py(actor), Py.java2py(item)); if(!actor.getEquipmentList().contains(item.getObjectID())) { - if(item instanceof WeaponObject){ - System.out.println(item.getTemplate() + " setWeaponId(item.getObjectID() " + item.getObjectID()); - actor.setWeaponId(item.getObjectID()); - } - - actor.addObjectToEquipList(item); + if(item instanceof WeaponObject) actor.setWeaponId(item.getObjectID()); + actor.addObjectToEquipList(item); processItemAtrributes(actor, item, true); - System.out.println("Item added " + item.getTemplate()); } } @@ -204,9 +198,7 @@ public class EquipmentService implements INetworkDispatch { if(equipping) { - System.out.println("Equipping"); if(item.getStringAttribute("cat_wpn_damage.wpn_category") != null) { - System.out.println("cat_wpn_damage.wpn_category"); core.skillModService.addSkillMod(creature, "display_only_critical", getWeaponCriticalChance(creature, item)); creature.setAttachment("EquippedWeapon", item.getObjectID()); @@ -526,15 +518,4 @@ public class EquipmentService implements INetworkDispatch { } catch (IOException e) { e.printStackTrace(); } } - - public void addRifle(CreatureObject actor, SWGObject inventory){ - WeaponObject rifle = (WeaponObject) core.objectService.createObject("object/weapon/ranged/rifle/shared_rifle_e11.iff", actor.getPlanet()); - rifle.setDamageType("energy"); - rifle.setWeaponType(WeaponType.RIFLE); - rifle.setAttackSpeed(0.8F); - rifle.setMinDamage(518); - rifle.setMaxDamage(1035); - rifle.setMaxRange(64); - inventory.add(rifle); - } } From e634b5e62e8b8b7b52adea03f8d751fd5f344f06 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sat, 9 Aug 2014 01:04:47 +0100 Subject: [PATCH 36/51] Refactored WeaponObject --- .../objects/weapon/WeaponMessageBuilder.java | 103 -------- .../objects/weapon/WeaponObject.java | 232 +++++++++++------- 2 files changed, 145 insertions(+), 190 deletions(-) diff --git a/src/resources/objects/weapon/WeaponMessageBuilder.java b/src/resources/objects/weapon/WeaponMessageBuilder.java index a67444cd..03377c62 100644 --- a/src/resources/objects/weapon/WeaponMessageBuilder.java +++ b/src/resources/objects/weapon/WeaponMessageBuilder.java @@ -21,14 +21,10 @@ ******************************************************************************/ package resources.objects.weapon; -import java.nio.ByteOrder; import java.util.Map; -import org.apache.mina.core.buffer.IoBuffer; - import engine.resources.objects.Builder; import resources.objects.tangible.TangibleMessageBuilder; -import resources.datatables.Elemental; public class WeaponMessageBuilder extends TangibleMessageBuilder { @@ -40,105 +36,6 @@ public class WeaponMessageBuilder extends TangibleMessageBuilder { super(); } - public IoBuffer buildBaseline3() { - WeaponObject weapon = (WeaponObject) object; - IoBuffer buffer = bufferPool.allocate(100, false).order(ByteOrder.LITTLE_ENDIAN); - buffer.setAutoExpand(true); - buffer.putShort((short) 0x14); - buffer.putFloat(0); - buffer.put(getAsciiString(weapon.getStfFilename())); - buffer.putInt(0); - buffer.put(getAsciiString(weapon.getStfName())); - if(weapon.getCustomName() == null || weapon.getCustomName().length() < 1) - buffer.putInt(0); - else - buffer.put(getUnicodeString(weapon.getCustomName())); - buffer.putInt(object.getVolume()); - buffer.putInt(0); - buffer.putInt(0); // unknowns - if(weapon.getCustomization() == null || weapon.getCustomization().length < 1) - buffer.putShort((short) 0); - else { - buffer.putShort((short) weapon.getCustomization().length); - buffer.put(weapon.getCustomization()); - } - buffer.putInt(0); - buffer.putInt(0); - buffer.putInt(weapon.getOptionsBitmask()); - buffer.putInt(0); - buffer.putInt(weapon.getConditionDamage()); - buffer.putInt(0x64); - buffer.put((byte) (weapon.isStaticObject() ? 1 : 0)); - buffer.putFloat(weapon.getAttackSpeed()); - buffer.putInt(0); - buffer.putInt(0); - buffer.putFloat(weapon.getMaxRange()); - buffer.putInt(0); - if( weapon.getElementalType() != null) // Weapon particle effect - buffer.putInt(Elemental.getElementalNum(weapon.getElementalType())); - else - buffer.putInt(Elemental.getElementalNum(weapon.getDamageType())); - buffer.putInt(0); - - int size = buffer.position(); - buffer = bufferPool.allocate(size, false).put(buffer.array(), 0, size); - - buffer.flip(); - buffer = createBaseline("WEAO", (byte) 3, buffer, size); - - return buffer; - } - - public IoBuffer buildBaseline6() { - WeaponObject weapon = (WeaponObject) object; - IoBuffer buffer = bufferPool.allocate(100, false).order(ByteOrder.LITTLE_ENDIAN); - buffer.setAutoExpand(true); - buffer.putShort((short) 9); - buffer.putInt(0x43); - buffer.put(getAsciiString(weapon.getDetailFilename())); - buffer.putInt(0); - buffer.put(getAsciiString(weapon.getDetailName())); - buffer.put((byte) 0); - buffer.putLong(0); - buffer.putInt(0); - buffer.putLong(0); - buffer.putLong(0); // unks - buffer.putLong(0); - buffer.putInt(weapon.getWeaponType()); - - int size = buffer.position(); - buffer = bufferPool.allocate(size, false).put(buffer.array(), 0, size); - - buffer.flip(); - buffer = createBaseline("WEAO", (byte) 6, buffer, size); - - return buffer; - } - - public IoBuffer buildBaseline8() { - IoBuffer buffer = bufferPool.allocate(2, false).order(ByteOrder.LITTLE_ENDIAN); - buffer.putShort((short) 0); - int size = buffer.position(); - buffer = IoBuffer.allocate(size).put(buffer.array(), 0, size); - - buffer.flip(); - buffer = createBaseline("WEAO", (byte) 8, buffer, size); - - return buffer; - } - - public IoBuffer buildBaseline9() { - IoBuffer buffer = bufferPool.allocate(2, false).order(ByteOrder.LITTLE_ENDIAN); - buffer.putShort((short) 0); - int size = buffer.position(); - buffer = IoBuffer.allocate(size).put(buffer.array(), 0, size); - - buffer.flip(); - buffer = createBaseline("WEAO", (byte) 9, buffer, size); - - return buffer; - } - @Override public void buildBaseline3(Map baselineBuilders, Map deltaBuilders) { super.buildBaseline3(baselineBuilders, deltaBuilders); diff --git a/src/resources/objects/weapon/WeaponObject.java b/src/resources/objects/weapon/WeaponObject.java index a06010ec..4f7402b6 100644 --- a/src/resources/objects/weapon/WeaponObject.java +++ b/src/resources/objects/weapon/WeaponObject.java @@ -22,13 +22,13 @@ package resources.objects.weapon; import java.io.Serializable; -import java.util.Vector; +import org.apache.mina.core.buffer.IoBuffer; + +import engine.resources.objects.Baseline; +import resources.datatables.Elemental; import resources.datatables.WeaponType; import resources.objects.tangible.TangibleObject; - -import com.sleepycat.persist.model.NotPersistent; - import engine.clients.Client; import engine.resources.scene.Planet; import engine.resources.scene.Point3D; @@ -37,36 +37,115 @@ import engine.resources.scene.Quaternion; public class WeaponObject extends TangibleObject implements Serializable { private static final long serialVersionUID = 1L; - - // TODO: Thread safety - @NotPersistent private transient WeaponMessageBuilder messageBuilder; public WeaponObject(long objectID, Planet planet, String template) { super(objectID, planet, new Point3D(0, 0, 0), new Quaternion(1, 0, 1, 0), template); - messageBuilder = new WeaponMessageBuilder(this); if (this.getClass().getSimpleName().equals("WeaponObject")) setIntAttribute("volume", 1); setStringAttribute("cat_wpn_damage.damage", "0-0"); } - + public WeaponObject(long objectID, Planet planet, Point3D position, Quaternion orientation, String template) { super(objectID, planet, position, orientation, template); - messageBuilder = new WeaponMessageBuilder(this); if (this.getClass().getSimpleName().equals("WeaponObject")) setIntAttribute("volume", 1); setStringAttribute("cat_wpn_damage.damage", "0-0"); } public WeaponObject() { super(); - messageBuilder = new WeaponMessageBuilder(this); + } + + public void initAfterDBLoad() { + super.initAfterDBLoad(); } @Override - public void initAfterDBLoad() { - super.init(); - messageBuilder = new WeaponMessageBuilder(this); - defendersList = new Vector(); + public Baseline getOtherVariables() { + Baseline baseline = super.getOtherVariables(); + return baseline; + } + + @Override + public Baseline getBaseline3() { + Baseline baseline = super.getBaseline3(); + baseline.put("attackSpeed", (float) 0); + baseline.put("14", 0); + baseline.put("15", 0); + baseline.put("maxRange", (float) 0); + baseline.put("17", 0); // Could be lightsaber color? Seen as 2 on a saber + baseline.put("weaponParticleEffect", 0); + baseline.put("19", 0); // something to do with particle color + return baseline; + } + + @Override + public Baseline getBaseline6() { + Baseline baseline = super.getBaseline6(); + baseline.put("weaponType", 6); + return baseline; + } + + @Override + public Baseline getBaseline8() { + Baseline baseline = super.getBaseline8(); + return baseline; + } + + @Override + public Baseline getBaseline9() { + Baseline baseline = super.getBaseline9(); + return baseline; + } + + public float getAttackSpeed() { + return (float) getBaseline(3).get("attackSpeed"); + } + + public void setAttackSpeed(float attackSpeed) { + if ((int) attackSpeed != attackSpeed) { + setFloatAttribute("cat_wpn_damage.wpn_attack_speed", attackSpeed); + } else { + setIntAttribute("cat_wpn_damage.wpn_attack_speed", (int) attackSpeed); + } + + setIntAttribute("cat_wpn_damage.dps", getDamagePerSecond()); + notifyClients(getBaseline(3).set("attackSpeed", attackSpeed), false); + } + + public float getMaxRange() { + return (float) getBaseline(3).get("maxRange"); + } + + public void setMaxRange(float maxRange) { + if ((int) maxRange != maxRange) { + setStringAttribute("cat_wpn_damage.wpn_range", "0-" + String.valueOf(maxRange) + "m"); + } else { + setStringAttribute("cat_wpn_damage.wpn_range", "0-" + String.valueOf((int) maxRange) + "m"); + } + + notifyClients(getBaseline(3).set("maxRange", maxRange), false); + } + + public int getWeaponParticleEffect() { + return (int) getBaseline(3).get("weaponParticleEffect"); + } + + public void setWeaponParticleEffect(int weaponParticleEffect) { + notifyClients(getBaseline(3).set("weaponParticleEffect", weaponParticleEffect), false); + } + + public int getWeaponType() { + if (getStringAttribute("cat_wpn_damage.wpn_category") == null) { + System.err.println("Error: Weapon Type not defined for " + getTemplate()); + } + + return (int) getBaseline(6).get("weaponType"); + } + + public void setWeaponType(int weaponType) { + setStringAttribute("cat_wpn_damage.wpn_category", "@obj_attr_n:wpn_category_" + weaponType); + notifyClients(getBaseline(6).set("weaponType", weaponType), false); } public int getMaxDamage() { @@ -81,9 +160,8 @@ public class WeaponObject extends TangibleObject implements Serializable { public int getMinDamage() { return Integer.parseInt(getStringAttribute("cat_wpn_damage.damage").split("-")[0]); } - + public void setMinDamage(int minDamage) { - setStringAttribute("cat_wpn_damage.damage", String.valueOf(minDamage) + "-" + String.valueOf(getMaxDamage())); setIntAttribute("cat_wpn_damage.dps", getDamagePerSecond()); } @@ -91,20 +169,23 @@ public class WeaponObject extends TangibleObject implements Serializable { public int getElementalDamage() { return getIntAttribute("cat_wpn_damage.wpn_elemental_value"); } - + public void setElementalDamage(int elementalDamage) { setIntAttribute("cat_wpn_damage.wpn_elemental_value", elementalDamage); setIntAttribute("cat_wpn_damage.dps", getDamagePerSecond()); } - + public String getElementalType() { - if (getStringAttribute("cat_wpn_damage.wpn_elemental_type") != null ) + if (getStringAttribute("cat_wpn_damage.wpn_elemental_type") != null) { return getStringAttribute("cat_wpn_damage.wpn_elemental_type").replace("@obj_attr_n:elemental_", ""); + } + return null; } public void setElementalType(String elementalType) { setStringAttribute("cat_wpn_damage.wpn_elemental_type", "@obj_attr_n:elemental_" + elementalType); + setWeaponParticleEffect(Elemental.getElementalNum(getElementalType())); } public String getDamageType() { @@ -113,93 +194,70 @@ public class WeaponObject extends TangibleObject implements Serializable { public void setDamageType(String damageType) { setStringAttribute("cat_wpn_damage.wpn_damage_type", "@obj_attr_n:armor_eff_" + damageType); + setWeaponParticleEffect(Elemental.getElementalNum(getDamageType())); } public int getDamagePerSecond() { - if(getAttributes().containsKey("cat_wpn_damage.damage") && getAttributes().containsKey("cat_wpn_damage.wpn_attack_speed")) { - - if (getElementalType() != null ) + if (getAttributes().containsKey("cat_wpn_damage.damage") && getAttributes().containsKey("cat_wpn_damage.wpn_attack_speed")) { + if (getElementalType() != null) { return (int) (((getMaxDamage() + getElementalDamage() + getMinDamage() + getElementalDamage()) / 2 + getElementalDamage()) * (1 / getAttackSpeed())); - else + } else { return (int) (((getMaxDamage() + getMinDamage()) / 2 ) * (1 / getAttackSpeed())); - } else - return 0; - } - - public int getWeaponType() { - if (getStringAttribute("cat_wpn_damage.wpn_category") == null) { - System.err.println("Error: Weapon Type not defined for " + getTemplate()); - return 6; + } + } else { + return 0; } - - return Integer.parseInt(getStringAttribute("cat_wpn_damage.wpn_category").replace("@obj_attr_n:wpn_category_", "")); } - public void setWeaponType(int weaponType) { - setStringAttribute("cat_wpn_damage.wpn_category", "@obj_attr_n:wpn_category_" + weaponType); - } - - @Override - public void sendBaselines(Client destination) { - - if(destination == null || destination.getSession() == null) - return; - - destination.getSession().write(messageBuilder.buildBaseline3()); - destination.getSession().write(messageBuilder.buildBaseline6()); - destination.getSession().write(messageBuilder.buildBaseline8()); - destination.getSession().write(messageBuilder.buildBaseline9()); - - - } - - public float getAttackSpeed() { - return getFloatAttribute("cat_wpn_damage.wpn_attack_speed"); - } - - public void setAttackSpeed(float attackSpeed) { - if((int) attackSpeed != attackSpeed) - setFloatAttribute("cat_wpn_damage.wpn_attack_speed", attackSpeed); - else - setIntAttribute("cat_wpn_damage.wpn_attack_speed", (int) attackSpeed); - - setIntAttribute("cat_wpn_damage.dps", getDamagePerSecond()); - } - - public WeaponMessageBuilder getMessageBuilder() { - return messageBuilder; - } - - public float getMaxRange() { - return Float.parseFloat(getStringAttribute("cat_wpn_damage.wpn_range").replace("0-", "").replace("m", "")); - } - - public void setMaxRange(float maxRange) { - if((int) maxRange != maxRange) - setStringAttribute("cat_wpn_damage.wpn_range", "0-" + String.valueOf(maxRange) + "m"); - else - setStringAttribute("cat_wpn_damage.wpn_range", "0-" + String.valueOf((int) maxRange) + "m"); - } - public boolean isMelee() { - int weaponType = getWeaponType(); - if(weaponType == WeaponType.ONEHANDEDMELEE || weaponType == WeaponType.TWOHANDEDMELEE || weaponType == WeaponType.UNARMED || weaponType == WeaponType.POLEARMMELEE || weaponType == WeaponType.ONEHANDEDSABER || weaponType == WeaponType.TWOHANDEDSABER || weaponType == WeaponType.POLEARMSABER) + if (weaponType == WeaponType.ONEHANDEDMELEE || weaponType == WeaponType.TWOHANDEDMELEE || weaponType == WeaponType.UNARMED || weaponType == WeaponType.POLEARMMELEE || weaponType == WeaponType.ONEHANDEDSABER || weaponType == WeaponType.TWOHANDEDSABER || weaponType == WeaponType.POLEARMSABER) { return true; + } return false; - } public boolean isRanged() { - int weaponType = getWeaponType(); - if(weaponType == WeaponType.RIFLE || weaponType == WeaponType.CARBINE || weaponType == WeaponType.PISTOL || weaponType == WeaponType.FLAMETHROWER || weaponType == WeaponType.HEAVYWEAPON) + if (weaponType == WeaponType.RIFLE || weaponType == WeaponType.CARBINE || weaponType == WeaponType.PISTOL || weaponType == WeaponType.FLAMETHROWER || weaponType == WeaponType.HEAVYWEAPON) { return true; - + } + return false; - } + + @Override + public void notifyClients(IoBuffer buffer, boolean notifySelf) { + notifyObservers(buffer, notifySelf); + } + + @Override + public WeaponMessageBuilder getMessageBuilder() { + synchronized(objectMutex) { + if (messageBuilder == null) { + messageBuilder = new WeaponMessageBuilder(this); + } + + return messageBuilder; + } + } + + @Override + public void sendBaselines(Client destination) { + if (destination != null && destination.getSession() != null) { + destination.getSession().write(getBaseline(3).getBaseline()); + destination.getSession().write(getBaseline(6).getBaseline()); + + Client parent = ((getGrandparent() == null) ? null : getGrandparent().getClient()); + + if (parent != null && destination == parent) { + destination.getSession().write(getBaseline(8).getBaseline()); + destination.getSession().write(getBaseline(9).getBaseline()); + } + } + } + } From d010a6b3f30c5c37eee1db971a81f50e69d6de7a Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Sat, 9 Aug 2014 02:20:58 +0200 Subject: [PATCH 37/51] Analyzed rifle bug --- scripts/character_builder_terminal.py | 44 +++++++++---------- .../objects/creature/CreatureObject.java | 2 +- src/services/equipment/EquipmentService.java | 7 ++- 3 files changed, 29 insertions(+), 24 deletions(-) diff --git a/scripts/character_builder_terminal.py b/scripts/character_builder_terminal.py index 29675e3f..7478d353 100644 --- a/scripts/character_builder_terminal.py +++ b/scripts/character_builder_terminal.py @@ -379,35 +379,35 @@ def combatLevelDown(owner): 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.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"); - pistol.setWeaponType(WeaponType.PISTOL); - pistol.setAttackSpeed(0.4); - pistol.setMinDamage(259); - pistol.setMaxDamage(518); - pistol.setMaxRange(35); + pistol.setDamageType('energy') + pistol.setWeaponType(WeaponType.PISTOL) + pistol.setAttackSpeed(0.4) + pistol.setMinDamage(259) + pistol.setMaxDamage(518) + pistol.setMaxRange(35) carbine = core.objectService.createObject('object/weapon/ranged/carbine/shared_carbine_e11.iff', owner.getPlanet()) - carbine.setDamageType("energy"); - carbine.setWeaponType(WeaponType.CARBINE); - carbine.setAttackSpeed(0.6); - carbine.setMinDamage(389); - carbine.setMaxDamage(780); - carbine.setMaxRange(50); + carbine.setDamageType('energy') + carbine.setWeaponType(WeaponType.CARBINE) + carbine.setAttackSpeed(0.6) + carbine.setMinDamage(389) + carbine.setMaxDamage(780) + carbine.setMaxRange(50) heavy = core.objectService.createObject('object/weapon/ranged/heavy/shared_som_lava_cannon.iff', owner.getPlanet()) - heavy.setDamageType("energy"); - heavy.setWeaponType(WeaponType.HEAVYWEAPON); - heavy.setAttackSpeed(1); - heavy.setMinDamage(850); - heavy.setMaxDamage(1350); + heavy.setDamageType('energy') + heavy.setWeaponType(WeaponType.HEAVYWEAPON) + heavy.setAttackSpeed(1) + heavy.setMinDamage(850) + heavy.setMaxDamage(1350) heavy.setStringAttribute('wpn_elemental_type', 'Heat') heavy.setStringAttribute('wpn_elemental_value', '50') heavy.setMaxRange(64) diff --git a/src/resources/objects/creature/CreatureObject.java b/src/resources/objects/creature/CreatureObject.java index b61a7f72..a84a3a73 100644 --- a/src/resources/objects/creature/CreatureObject.java +++ b/src/resources/objects/creature/CreatureObject.java @@ -901,7 +901,7 @@ public class CreatureObject extends TangibleObject implements Serializable { } IoBuffer weaponIdDelta = messageBuilder.buildWeaponIdDelta(weaponId); - + tools.CharonPacketUtils.printAnalysis(weaponIdDelta, "buildWeaponIdDelta"); notifyObservers(weaponIdDelta, true); } diff --git a/src/services/equipment/EquipmentService.java b/src/services/equipment/EquipmentService.java index f5220c53..e0dbc024 100644 --- a/src/services/equipment/EquipmentService.java +++ b/src/services/equipment/EquipmentService.java @@ -165,7 +165,12 @@ public class EquipmentService implements INetworkDispatch { if(func != null) func.__call__(Py.java2py(core), Py.java2py(actor), Py.java2py(item)); if(!actor.getEquipmentList().contains(item.getObjectID())) { - if(item instanceof WeaponObject) actor.setWeaponId(item.getObjectID()); + //if(item instanceof WeaponObject){ + //A rifle is not identified as a true WeaponObject ?!?!?!?! + if (item.getTemplate().contains("object/weapon/")){ + actor.setWeaponId(item.getObjectID()); + System.out.println("WEAPON IDENTIFIED!"); + } actor.addObjectToEquipList(item); processItemAtrributes(actor, item, true); } From 05dca03015b0f447e9efcbfb70e64ab6428a8d6a Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Sat, 9 Aug 2014 02:36:10 +0200 Subject: [PATCH 38/51] Little fix for WeaponObject Commit --- .../objects/creature/CreatureMessageBuilder.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/resources/objects/creature/CreatureMessageBuilder.java b/src/resources/objects/creature/CreatureMessageBuilder.java index 33367160..93c58e5e 100644 --- a/src/resources/objects/creature/CreatureMessageBuilder.java +++ b/src/resources/objects/creature/CreatureMessageBuilder.java @@ -336,8 +336,10 @@ public class CreatureMessageBuilder extends TangibleMessageBuilder { buffer.putInt(CRC.StringtoCRC(weapon.getTemplate())); buffer.put((byte) 1); - buffer.put(weapon.getMessageBuilder().buildBaseline3()); - buffer.put(weapon.getMessageBuilder().buildBaseline6()); +// buffer.put(weapon.getMessageBuilder().buildBaseline3()); +// buffer.put(weapon.getMessageBuilder().buildBaseline6()); + buffer.put(weapon.getBaseline(3).getBaseline()); + buffer.put(weapon.getBaseline(6).getBaseline()); } else { System.out.println("Bad equipment object"); } @@ -1050,8 +1052,10 @@ public class CreatureMessageBuilder extends TangibleMessageBuilder { if(item instanceof WeaponObject) { WeaponObject weapon = (WeaponObject) item; buffer.put((byte) 1); - buffer.put(weapon.getMessageBuilder().buildBaseline3()); - buffer.put(weapon.getMessageBuilder().buildBaseline6()); +// buffer.put(weapon.getMessageBuilder().buildBaseline3()); +// buffer.put(weapon.getMessageBuilder().buildBaseline6()); + buffer.put(weapon.getBaseline(3).getBaseline()); + buffer.put(weapon.getBaseline(6).getBaseline()); } else { buffer.put((byte) 0); } From 73180b5f83ddf50cfd7eab793a9a2e2ef752159a Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Sat, 9 Aug 2014 02:48:14 +0200 Subject: [PATCH 39/51] Removed rifles from frog temorarily to prevent client-lockups --- scripts/character_builder_terminal.py | 16 ++++++++-------- src/services/equipment/EquipmentService.java | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/scripts/character_builder_terminal.py b/scripts/character_builder_terminal.py index 7478d353..7b5326ce 100644 --- a/scripts/character_builder_terminal.py +++ b/scripts/character_builder_terminal.py @@ -378,13 +378,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') @@ -412,7 +412,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/equipment/EquipmentService.java b/src/services/equipment/EquipmentService.java index e0dbc024..7d735229 100644 --- a/src/services/equipment/EquipmentService.java +++ b/src/services/equipment/EquipmentService.java @@ -169,7 +169,7 @@ public class EquipmentService implements INetworkDispatch { //A rifle is not identified as a true WeaponObject ?!?!?!?! if (item.getTemplate().contains("object/weapon/")){ actor.setWeaponId(item.getObjectID()); - System.out.println("WEAPON IDENTIFIED!"); + //System.out.println("WEAPON IDENTIFIED!"); } actor.addObjectToEquipList(item); processItemAtrributes(actor, item, true); From 0ce705ec8a4b83699e6ea49a1a985886f814a9d5 Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Sat, 9 Aug 2014 02:53:02 +0200 Subject: [PATCH 40/51] Commit to kick pull request (Github bug) self-explanatory --- src/services/equipment/EquipmentService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/equipment/EquipmentService.java b/src/services/equipment/EquipmentService.java index 7d735229..d1cf09ae 100644 --- a/src/services/equipment/EquipmentService.java +++ b/src/services/equipment/EquipmentService.java @@ -168,7 +168,7 @@ public class EquipmentService implements INetworkDispatch { //if(item instanceof WeaponObject){ //A rifle is not identified as a true WeaponObject ?!?!?!?! if (item.getTemplate().contains("object/weapon/")){ - actor.setWeaponId(item.getObjectID()); + actor.setWeaponId(item.getObjectID()); // This line causes the rifle lockup //System.out.println("WEAPON IDENTIFIED!"); } actor.addObjectToEquipList(item); From 79ab866a69f76289501c7a9bc1e7864001f4c41b Mon Sep 17 00:00:00 2001 From: Viaron Date: Sat, 9 Aug 2014 01:13:47 -0400 Subject: [PATCH 41/51] Changed /server System Messages --- scripts/commands/server.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/scripts/commands/server.py b/scripts/commands/server.py index fc7b1f5c..815739da 100644 --- a/scripts/commands/server.py +++ b/scripts/commands/server.py @@ -24,22 +24,23 @@ def run(core, actor, target, commandString): arg4 = commandArgs[4] if not command: + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Server: Invalid Syntax. Syntax is: /server .', 0) return if command == 'lockServer': core.setGalaxyStatus(GalaxyStatus.Locked) - actor.sendSystemMessage('GM: Command completed successfully, Server is now in Locked Status', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Server lockServer: Command completed successfully. Server is now in Locked Status.', 0) if command == 'unlockServer': core.setGalaxyStatus(GalaxyStatus.Online) - actor.sendSystemMessage('GM: Command completed successfully, Server is now in Online Status', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Server unlockServer: Command completed successfully. Server is now in Online Status.', 0) #if command == 'restart': //This command currently causes an error at NGEcore.java like 593 whole attempting to close databaseConnection2 #core.restart() - #actor.sendSystemMessage('GM: Command completed successfully, Server restart initiated', 0) + #actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Server restart: Command completed successfully. Server restart initiated.', 0) if command == 'shutdown': core.initiateShutdown() - actor.sendSystemMessage('GM: Command completed successfully, Server shutdown initiated', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Server shutdown: Command completed successfully. Server shutdown initiated.', 0) if command == 'stop': core.initiateStop() - actor.sendSystemMessage('GM: Command completed successfully, Emergency server shutdown initiated', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Server stop: Command completed successfully. Emergency server shutdown initiated.', 0) return From 01406dbce056a4604ebcc47e02863d4a32b03d3e Mon Sep 17 00:00:00 2001 From: Viaron Date: Sat, 9 Aug 2014 01:22:49 -0400 Subject: [PATCH 42/51] Changed Teleport Command(s) System Messages --- scripts/commands/teleport.py | 10 +++++----- scripts/commands/teleporttarget.py | 4 ++-- scripts/commands/teleportto.py | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/scripts/commands/teleport.py b/scripts/commands/teleport.py index fb35c621..1b2e4112 100644 --- a/scripts/commands/teleport.py +++ b/scripts/commands/teleport.py @@ -23,24 +23,24 @@ def run(core, actor, target, commandString): if arg1 and arg2 and arg3 and arg4 is not None: try: - actor.sendSystemMessage('gm: teleport: Command completed successfully.', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Teleport: Command completed successfully.', 0) position = Point3D(float(arg1), float(arg2), float(arg3)) core.simulationService.transferToPlanet(actor, core.terrainService.getPlanetByName(arg4), position, actor.getOrientation(), None) except: - actor.sendSystemMessage('Invalid Syntax. Syntax is: /teleport [] ', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Teleport: Invalid Syntax. Syntax is: /teleport [] .', 0) return return elif arg1 and arg2 and arg3: try: - actor.sendSystemMessage('gm: teleport: Command completed successfully.', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Teleport: Command completed successfully.', 0) position = Point3D(float(arg1), 0, float(arg2)) core.simulationService.transferToPlanet(actor, core.terrainService.getPlanetByName(arg3), position, actor.getOrientation(), None) except: - actor.sendSystemMessage('Invalid Syntax. Syntax is: /teleport [] ', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Teleport: Invalid Syntax. Syntax is: /teleport [] .', 0) return else: - actor.sendSystemMessage('Invalid Syntax. Syntax is: /teleport [] ', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Teleport: Invalid Syntax. Syntax is: /teleport [] .', 0) return return \ No newline at end of file diff --git a/scripts/commands/teleporttarget.py b/scripts/commands/teleporttarget.py index 4b69ecdb..9a9fde95 100644 --- a/scripts/commands/teleporttarget.py +++ b/scripts/commands/teleporttarget.py @@ -12,11 +12,11 @@ def run(core, actor, target, commandString): return if target and target.getSlottedObject('ghost') is not None: - actor.sendSystemMessage('gm: teleporttarget: Command completed successfully.', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF teleportTarget: Command completed successfully.', 0) core.simulationService.teleport(target, actor.getPosition(), actor.getOrientation(), 0) return else: - actor.sendSystemMessage('Invalid Syntax. Syntax is: /teleporttarget ', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF teleportTarget: Invalid Syntax. Syntax is: /teleportTarget ', 0) return return diff --git a/scripts/commands/teleportto.py b/scripts/commands/teleportto.py index cf0b9a59..8ffc85a0 100644 --- a/scripts/commands/teleportto.py +++ b/scripts/commands/teleportto.py @@ -15,7 +15,7 @@ def run(core, actor, target, commandString): target = core.objectService.getObjectByFirstName(commandString) if target and target.getSlottedObject('ghost') is not None: - actor.sendSystemMessage('gm: teleportto: Command completed successfully.', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF teleportTo: Command completed successfully.', 0) if target.getPlanetId() == actor.getPlanetId(): core.simulationService.teleport(actor, target.getPosition(), target.getOrientation(), target.getParentId()) else: @@ -25,6 +25,6 @@ def run(core, actor, target, commandString): core.simulationService.transferToPlanet(actor, core.terrainService.getPlanetById(target.getPlanetId()), target.getPosition(), target.getOrientation(), core.objectService.getObject(target.getParentId())) return else: - actor.sendSystemMessage('Invalid Syntax. Syntax is: /teleportto ', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF teleportTo: Invalid Syntax. Syntax is: /teleportTo ', 0) return return From b67ba22d75eca9d111f16412668cab9dd886f748 Mon Sep 17 00:00:00 2001 From: Viaron Date: Sat, 9 Aug 2014 01:31:45 -0400 Subject: [PATCH 43/51] Updated other Admin Command System Messages --- scripts/commands/adjustLotCount.py | 2 +- scripts/commands/invulnerable.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/commands/adjustLotCount.py b/scripts/commands/adjustLotCount.py index 4d20f4c7..736323da 100644 --- a/scripts/commands/adjustLotCount.py +++ b/scripts/commands/adjustLotCount.py @@ -11,5 +11,5 @@ def run(core, actor, target, commandString): playerObject = target.getSlottedObject('ghost') playerObject.setLotsRemaining(playerObject.getLotsRemaining() + int(arg1)) print(playerObject.getLotsRemaining()) - actor.sendSystemMessage('GM: Adjust Lot Count: Completed Successfully for ' + target.getFirstName(), 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF adjustLotCount: Command completed successfully for: ' + target.getFirstName(), 0) return \ No newline at end of file diff --git a/scripts/commands/invulnerable.py b/scripts/commands/invulnerable.py index 90aab004..f9865d9f 100644 --- a/scripts/commands/invulnerable.py +++ b/scripts/commands/invulnerable.py @@ -10,23 +10,23 @@ def run(core, actor, target, commandString): if (actor.isInStealth()): actor.setInStealth(False) actor.setRadarVisible(True) - actor.sendSystemMessage('GM Command Successfull: You are no longer Invisible.', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Invulnerable invisible: Command completed successfully. You are no longer Invisible.', 0) else: actor.setInStealth(True) actor.setRadarVisible(False) - actor.sendSystemMessage('GM Command Successfull: You are now Invisible.', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Invulnerable invisible: Command completed successfully. You are now Invisible.', 0) if actor.getOptionsBitmask() == 128: actor.setOptionsBitmask(Options.NONE) - actor.sendSystemMessage('GM Command Successfull: You are now Invulnerable.', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Invulnerable: Command completed successfully. You are now Invulnerable.', 0) elif actor.getOptionsBitmask() == 0: actor.setOptionsBitmask(Options.ATTACKABLE) print(actor.getOptionsBitmask()) - actor.sendSystemMessage('GM Command Successfull: You are no longer Invulnerable.', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Invulnerable: Command completed successfully. You are no longer Invulnerable.', 0) return From d0ee346f02f006364ca42fd26443e7de15398947 Mon Sep 17 00:00:00 2001 From: Viaron Date: Sat, 9 Aug 2014 01:54:32 -0400 Subject: [PATCH 44/51] Changed Admin Command System Messages Changed /broadcastGalaxy Changed /broadcastPlanet Temporarily disabled /broadcast --- scripts/commands/broadcast.py | 26 ++++++++++++++------------ scripts/commands/broadcastGalaxy.py | 1 + scripts/commands/broadcastPlanet.py | 1 + 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/scripts/commands/broadcast.py b/scripts/commands/broadcast.py index afcaebef..130ad5a6 100644 --- a/scripts/commands/broadcast.py +++ b/scripts/commands/broadcast.py @@ -1,12 +1,14 @@ -from services.sui import SUIWindow -from services.sui.SUIWindow import Trigger -from java.util import Vector -import sys - -def setup(): - return - -def run(core, actor, target, commandString): - core.chatService.broadcastGalaxy(commandString) - return - +# -- This file will be used at a later date. It's plans are for /broadcast . (Where imperial/rebel broadcasts to their respective factions). +#from services.sui import SUIWindow +#from services.sui.SUIWindow import Trigger +#from java.util import Vector +#import sys +# +#def setup(): +# return +# +#def run(core, actor, target, commandString): +# core.chatService.broadcastGalaxy(commandString) + #return +# +# \ No newline at end of file diff --git a/scripts/commands/broadcastGalaxy.py b/scripts/commands/broadcastGalaxy.py index 04a1ae09..990c80ef 100644 --- a/scripts/commands/broadcastGalaxy.py +++ b/scripts/commands/broadcastGalaxy.py @@ -9,4 +9,5 @@ def setup(): def run(core, actor, target, commandString): core.chatService.broadcastGalaxy(commandString) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF broadcastGalaxy: Command completed successfully.', 0) return \ No newline at end of file diff --git a/scripts/commands/broadcastPlanet.py b/scripts/commands/broadcastPlanet.py index cb2956d2..da40f608 100644 --- a/scripts/commands/broadcastPlanet.py +++ b/scripts/commands/broadcastPlanet.py @@ -8,4 +8,5 @@ def setup(): def run(core, actor, target, commandString): core.chatService.broadcastPlanet(commandString, actor.getPlanet()) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF broadcastPlanet: Command completed successfully.', 0) return \ No newline at end of file From 9ab377d5eee039f4332cc44813500671afa2c701 Mon Sep 17 00:00:00 2001 From: Viaron Date: Sat, 9 Aug 2014 02:08:04 -0400 Subject: [PATCH 45/51] Changed /credits Command --- scripts/commands/credits.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/scripts/commands/credits.py b/scripts/commands/credits.py index 11d28a36..2ba1d840 100644 --- a/scripts/commands/credits.py +++ b/scripts/commands/credits.py @@ -9,12 +9,10 @@ def run(core, actor, target, commandString): if actor: actor.setCashCredits(actor.getCashCredits() + int(arg1)) - actor.sendSystemMessage(actor.getFirstName() + ' has removed ' + arg1 + ' credits from Project SWG\'s bank.', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Credits: Command completed successfully. You have given yourself ' + arg1 + 'credits.', 0) if actor and target: target.setCashCredits(target.getCashCredits() + int(arg1)) - target.sendSystemMessage('You have recieved ' + arg1 + ' credits from ' + actor.getFirstName(), 0) - actor.sendSystemMessage('You have transferred ' + arg1 + ' credits to ' + target.getFirstName(), 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Credits: Command completed successfully. You have transferred ' + arg1 + ' credits to ' + target.getFirstName() + '.', 0) - return \ No newline at end of file From 611ab2f1199d081cd8c25eeb333cad4761b808ea Mon Sep 17 00:00:00 2001 From: Viaron Date: Sat, 9 Aug 2014 02:11:04 -0400 Subject: [PATCH 46/51] Changed /setRank System Messages --- scripts/commands/setRank.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/commands/setRank.py b/scripts/commands/setRank.py index afdc5b16..8ea9d2a7 100644 --- a/scripts/commands/setRank.py +++ b/scripts/commands/setRank.py @@ -16,13 +16,13 @@ def run(core, actor, target, commandString): playerObject.setCurrentRank(int(arg2)) newrank = playerObject.getCurrentRank() core.scriptService.callScript("scripts/collections/", "gcwrank_" + target.getFaction(), "handleRankUp", core, target, newrank) - actor.sendSystemMessage('GM: Set Rank: Completed Successfully', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF setRank: Command completed successfully.', 0) if target.getFaction() == 'rebel' or 'imperial' and arg1 == 'down': playerObject = target.getSlottedObject('ghost') playerObject.setCurrentRank(int(arg2)) newrank = playerObject.getCurrentRank() core.scriptService.callScript("scripts/collections/", "gcwrank_" + target.getFaction(), "handleRankDown", target, newrank) - actor.sendSystemMessage('GM: Set Rank: Completed Successfully', 0) + actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF setRank: Command completed successfully.', 0) # if target.getFaction() == 'imperial' and arg1 == 'up': # if arg1 == 'up': @@ -30,12 +30,12 @@ def run(core, actor, target, commandString): # playerObject.setCurrentRank(int(arg2)) # newrank = playerObject.getCurrentRank() # core.scriptService.callScript("scripts/collections/", "gcwrank_" + target.getFaction(), "handleRankUp", core, target, newrank) -# actor.sendSystemMessage('GM: Set Rank: Completed Successfully', 0) +# actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF setRank: Command completed successfully.', 0) # if target.getFaction() == 'imperial' and arg1 == 'down': # playerObject = actor.getSlottedObject('ghost') # playerObject.setCurrentRank(int(arg2)) # newrank = playerObject.getCurrentRank() # core.scriptService.callScript("scripts/collections/", "gcwrank_" + target.getFaction(), "handleRankDown", target, newrank) -# actor.sendSystemMessage('GM: Set Rank: Completed Successfully', 0) +# actor.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF setRank: Command completed successfully.', 0) return \ No newline at end of file From f03b39cc7ef0164bccf3335b9f58b20c12bdc4e8 Mon Sep 17 00:00:00 2001 From: tacef Date: Sat, 9 Aug 2014 09:09:43 +0200 Subject: [PATCH 47/51] Added Standard Issued Clothing box Todo: Custom scripts for some items. --- scripts/character_builder_terminal.py | 9 ++ .../item_npe_gen_craft_tool_trader_03_01.py | 11 ++ .../object/tangible/npe/npe_uniform_box.py | 145 +++++++++++++++++- .../melee/polearm/weapon_polearm_02_03.py | 1 + src/services/PlayerService.java | 13 ++ 5 files changed, 178 insertions(+), 1 deletion(-) create mode 100644 scripts/object/tangible/crafting/station/item_npe_gen_craft_tool_trader_03_01.py diff --git a/scripts/character_builder_terminal.py b/scripts/character_builder_terminal.py index 29675e3f..5c8b11b2 100644 --- a/scripts/character_builder_terminal.py +++ b/scripts/character_builder_terminal.py @@ -306,6 +306,7 @@ def miscHandler(owner): window.addListBoxMenuItem('Backpack', 0) window.addListBoxMenuItem('Heroism Jewelry Set', 1) window.addListBoxMenuItem('Belt of Master Bodo Baas', 2) + window.addListBoxMenuItem('Starter Equipment Box', 3) core.suiService.openSUIWindow(window); def miscHandlerCallback(owner, window, eventType, returnList): @@ -323,6 +324,9 @@ def miscHandlerCallback(owner, window, eventType, returnList): if returnList.get(0)=='2': jediBelt(owner, inventory) return + if returnList.get(0)=='3': + starterEquipmentBox(owner, inventory) + return return def combatLevel(owner): @@ -605,6 +609,11 @@ def backpack(owner, inventory): inventory.add(core.objectService.createObject("object/tangible/wearables/backpack/shared_backpack_s01.iff", owner.getPlanet())) screenOne(core, owner) return + +def starterEquipmentBox(owner, inventory): + inventory.add(core.objectService.createObject("object/tangible/npe/shared_npe_uniform_box.iff", owner.getPlanet())) + screenOne(core, owner) + return def heroismJewelry(owner, inventory): heroismBand = core.objectService.createObject("object/tangible/wearables/ring/shared_ring_s04.iff", owner.getPlanet(), "item_band_set_hero_01_01") diff --git a/scripts/object/tangible/crafting/station/item_npe_gen_craft_tool_trader_03_01.py b/scripts/object/tangible/crafting/station/item_npe_gen_craft_tool_trader_03_01.py new file mode 100644 index 00000000..c8257a29 --- /dev/null +++ b/scripts/object/tangible/crafting/station/item_npe_gen_craft_tool_trader_03_01.py @@ -0,0 +1,11 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_npe_gen_craft_tool_trader_03_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_npe_gen_craft_tool_trader_03_01') + object.setIntAttribute('no_trade', 1) + object.setIntAttribute('required_combat_level', 1) + + return diff --git a/scripts/object/tangible/npe/npe_uniform_box.py b/scripts/object/tangible/npe/npe_uniform_box.py index ccad8904..e0de3869 100644 --- a/scripts/object/tangible/npe/npe_uniform_box.py +++ b/scripts/object/tangible/npe/npe_uniform_box.py @@ -1,4 +1,147 @@ import sys +from java.util import Vector def setup(core, object): - return \ No newline at end of file + object.setAttachment('radial_filename', 'object/usable') + return + +def use(core, actor, object): + + profession = actor.getSlottedObject('ghost').getProfession() + items = Vector() + + if profession =='force_sensitive_1a': + robe = core.objectService.createObject('object/tangible/wearables/robe/shared_robe_jedi_padawan.iff', actor.getPlanet(), 'item_npe_fs_robe_02_01') + items.add(robe) + + elif profession =='entertainer_1a': + shoes = core.objectService.createObject('object/tangible/wearables/shoes/shared_shoes_s01.iff', actor.getPlanet()) + pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s13.iff', actor.getPlanet()) + shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s04.iff', actor.getPlanet()) + belt = core.objectService.createObject('object/tangible/wearables/belt/shared_belt_s01.iff', actor.getPlanet()) + hat = core.objectService.createObject('object/tangible/wearables/hat/shared_hat_s02.iff', actor.getPlanet()) + items.add(shoes) + items.add(pants) + items.add(shirt) + items.add(belt) + items.add(hat) + + elif profession =='officer_1a': + boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s22.iff', actor.getPlanet()) + pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s15.iff', actor.getPlanet()) + shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s34.iff', actor.getPlanet()) + belt = core.objectService.createObject('object/tangible/wearables/belt/shared_belt_s11.iff', actor.getPlanet()) + items.add(boots) + items.add(pants) + items.add(shirt) + items.add(belt) + + elif profession =='bounty_hunter_1a': + boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s12.iff', actor.getPlanet()) + pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s08.iff', actor.getPlanet()) + shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s42.iff', actor.getPlanet()) + vest = core.objectService.createObject('object/tangible/wearables/vest/shared_vest_s09.iff', actor.getPlanet()) + items.add(boots) + items.add(pants) + items.add(shirt) + items.add(vest) + + elif profession =='smuggler_1a': + boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s15.iff', actor.getPlanet(), 'item_smuggler_boots_02_01') + pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s05.iff', actor.getPlanet(), 'item_smuggler_pants_02_01') + shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s16.iff', actor.getPlanet(), 'item_smuggler_shirt_02_01') + vest = core.objectService.createObject('object/tangible/wearables/vest/shared_vest_s15.iff', actor.getPlanet(), 'item_smuggler_vest_02_01') + items.add(boots) + items.add(pants) + items.add(shirt) + items.add(vest) + + elif profession =='commando_1a': + boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s22.iff', actor.getPlanet()) + pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s05.iff', actor.getPlanet()) + shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s42.iff', actor.getPlanet()) + vest = core.objectService.createObject('object/tangible/wearables/vest/shared_vest_s04.iff', actor.getPlanet()) + bandolier = core.objectService.createObject('object/tangible/wearables/bandolier/shared_bandolier_s04.iff', actor.getPlanet()) + items.add(boots) + items.add(pants) + items.add(shirt) + items.add(vest) + items.add(bandolier) + + elif profession =='spy_1a': + boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s12.iff', actor.getPlanet(), 'item_spy_boots_02_01') + gloves = core.objectService.createObject('object/tangible/wearables/gloves/shared_gloves_s12.iff', actor.getPlanet(), 'item_spy_gloves_02_01') + pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s30.iff', actor.getPlanet(), 'item_spy_pants_02_01') + shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s30.iff', actor.getPlanet(), 'item_spy_shirt_02_01') + items.add(boots) + items.add(gloves) + items.add(pants) + items.add(shirt) + + elif profession == 'medic_1a': + shoes = core.objectService.createObject('object/tangible/wearables/shoes/shared_shoes_s02.iff', actor.getPlanet()) + pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s08.iff', actor.getPlanet()) + shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s27.iff', actor.getPlanet()) + vest = core.objectService.createObject('object/tangible/wearables/vest/shared_vest_s05.iff', actor.getPlanet()) + items.add(shoes) + items.add(pants) + items.add(shirt) + items.add(vest) + + elif "trader" in profession: + boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s15.iff', actor.getPlanet()) + pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s15.iff', actor.getPlanet()) + shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s05.iff', actor.getPlanet()) + gloves = core.objectService.createObject('object/tangible/wearables/gloves/shared_gloves_s12.iff', actor.getPlanet()) + belt = core.objectService.createObject('object/tangible/wearables/armor/zam/shared_armor_zam_wesell_belt.iff', actor.getPlanet()) + items.add(boots) + items.add(pants) + items.add(shirt) + items.add(gloves) + items.add(belt) + + else: + actor.sendSystemMessage('@base_player:not_correct_skill', 0) + + items.add(createProfessionItem(core, actor)) + core.playerService.giveItems(actor, items) + core.objectService.destroyObject(object) + return + + +def createProfessionItem(core, actor): + profession = actor.getSlottedObject('ghost').getProfession() + + if profession == 'bounty_hunter_1a': + return core.objectService.createObject('object/weapon/ranged/carbine/shared_carbine_dh17_black_npe.iff', actor.getPlanet(), 'weapon_npe_carbine_bh_03_01') + + elif profession == 'commando_1a': + return core.objectService.createObject('object/weapon/ranged/carbine/shared_carbine_dh17_black_npe.iff', actor.getPlanet(), 'weapon_npe_commando_carbine_03_01') + + elif profession == 'entertainer_1a': + print("Entertainer Professionitem disabled for now") + #return core.objectService.createObject('object/tangible/dance_prob/shared_prop_sparkler_l.iff', actor.getPlanet()) + + elif profession == 'force_sensitive_1a': + return core.objectService.createObject('object/weapon/melee/polearm/shared_polearm_vibro_axe_npe.iff', actor.getPlanet(), 'weapon_polearm_02_03') + + elif profession == 'medic_1a': + return core.objectService.createObject('object/weapon/ranged/pistol/shared_pistol_scout_blaster_npe.iff', actor.getPlanet(), 'weapon_npe_medic_pistol_03_01') + + elif profession == 'officer_1a': + return core.objectService.createObject('object/weapon/ranged/pistol/shared_pistol_scout_blaster_npe.iff', actor.getPlanet(), 'item_npe_officer_sidearm') + + elif profession == 'smuggler_1a': + return core.objectService.createObject('object/weapon/ranged/pistol/shared_pistol_dl44_metal.iff', actor.getPlanet(), 'item_npe_smuggler_han_solo_gun') + + elif profession == 'spy_1a': + return core.objectService.createObject('object/weapon/ranged/carbine/shared_carbine_dh17_black_npe.iff', actor.getPlanet(), 'weapon_npe_carbine_spy_03_01') + + elif "trader" in profession: + print("Trader Professionitem disabled until crafting is in") + #return core.objectService.createObject('object/tangible/crafting/station/shared_generic_generic_tool.iff', actor.getPlanet(), 'item_npe_gen_craft_tool_trader_03_01') + + + return + + \ No newline at end of file diff --git a/scripts/object/weapon/melee/polearm/weapon_polearm_02_03.py b/scripts/object/weapon/melee/polearm/weapon_polearm_02_03.py index 7d70c44f..242d16b4 100644 --- a/scripts/object/weapon/melee/polearm/weapon_polearm_02_03.py +++ b/scripts/object/weapon/melee/polearm/weapon_polearm_02_03.py @@ -6,6 +6,7 @@ def setup(core, object): object.setStfName('weapon_polearm_02_03') object.setDetailFilename('static_item_d') object.setDetailName('weapon_polearm_02_03') + object.setIntAttribute('no_trade', 1) object.setIntAttribute('required_combat_level', 1) object.setAttackSpeed(1); object.setMaxRange(5); diff --git a/src/services/PlayerService.java b/src/services/PlayerService.java index e65d989c..04d1b18c 100644 --- a/src/services/PlayerService.java +++ b/src/services/PlayerService.java @@ -1468,6 +1468,19 @@ public class PlayerService implements INetworkDispatch { return formalName; } + public String checkForGender(CreatureObject object) { + String gender =""; + if(object.getTemplate().contains("_female")){ + gender = "female"; + }else if(object.getTemplate().contains("_male")){ + gender = "male"; + }else{ + System.out.println("Error: No Gender"); + gender = "no_gender"; + } + return gender; + } + @Override public void shutdown() { // TODO Auto-generated method stub From d7e768c898d8087b8e7ce93fb1c54aecb593de94 Mon Sep 17 00:00:00 2001 From: tacef Date: Sat, 9 Aug 2014 15:13:00 +0200 Subject: [PATCH 48/51] Added Customscripts for Starter clothings Removed NoTrade from Jedi Training Polearm --- .../object/tangible/npe/npe_uniform_box.py | 58 +++++++++---------- .../belt/item_bounty_hunter_boots_02_01.py | 10 ++++ .../boots/item_bounty_hunter_boots_02_01.py | 10 ++++ .../boots/item_commando_pants_02_01.py | 10 ++++ .../wearables/boots/item_medic_boots_02_01.py | 10 ++++ .../boots/item_officer_boots_02_01.py | 10 ++++ .../hat/item_entertainer_hat_02_01.py | 10 ++++ .../pants/item_bounty_hunter_pants_02_01.py | 10 ++++ .../pants/item_commando_pants_02_01.py | 10 ++++ .../pants/item_entertainer_pants_02_01.py | 11 ++++ .../wearables/pants/item_medic_pants_02_01.py | 10 ++++ .../pants/item_officer_pants_02_01.py | 10 ++++ .../pants/item_trader_pants_02_01.py | 10 ++++ .../shirt/item_bounty_hunter_shirt_02_01.py | 10 ++++ .../shirt/item_commando_shirt_02_01.py | 10 ++++ .../shirt/item_entertainer_shirt_02_01.py | 10 ++++ .../wearables/shirt/item_medic_shirt_02_01.py | 10 ++++ .../shirt/item_officer_shirt_02_01.py | 10 ++++ .../shirt/item_trader_shirt_02_01.py | 10 ++++ .../shoes/item_trader_shoes_02_01.py | 10 ++++ .../vest/item_bounty_hunter_vest_02_01.py | 10 ++++ .../vest/item_commando_vest_02_01.py | 10 ++++ .../wearables/vest/item_medic_vest_02_01.py | 10 ++++ .../melee/polearm/weapon_polearm_02_03.py | 1 - 24 files changed, 247 insertions(+), 33 deletions(-) create mode 100644 scripts/object/tangible/wearables/belt/item_bounty_hunter_boots_02_01.py create mode 100644 scripts/object/tangible/wearables/boots/item_bounty_hunter_boots_02_01.py create mode 100644 scripts/object/tangible/wearables/boots/item_commando_pants_02_01.py create mode 100644 scripts/object/tangible/wearables/boots/item_medic_boots_02_01.py create mode 100644 scripts/object/tangible/wearables/boots/item_officer_boots_02_01.py create mode 100644 scripts/object/tangible/wearables/hat/item_entertainer_hat_02_01.py create mode 100644 scripts/object/tangible/wearables/pants/item_bounty_hunter_pants_02_01.py create mode 100644 scripts/object/tangible/wearables/pants/item_commando_pants_02_01.py create mode 100644 scripts/object/tangible/wearables/pants/item_entertainer_pants_02_01.py create mode 100644 scripts/object/tangible/wearables/pants/item_medic_pants_02_01.py create mode 100644 scripts/object/tangible/wearables/pants/item_officer_pants_02_01.py create mode 100644 scripts/object/tangible/wearables/pants/item_trader_pants_02_01.py create mode 100644 scripts/object/tangible/wearables/shirt/item_bounty_hunter_shirt_02_01.py create mode 100644 scripts/object/tangible/wearables/shirt/item_commando_shirt_02_01.py create mode 100644 scripts/object/tangible/wearables/shirt/item_entertainer_shirt_02_01.py create mode 100644 scripts/object/tangible/wearables/shirt/item_medic_shirt_02_01.py create mode 100644 scripts/object/tangible/wearables/shirt/item_officer_shirt_02_01.py create mode 100644 scripts/object/tangible/wearables/shirt/item_trader_shirt_02_01.py create mode 100644 scripts/object/tangible/wearables/shoes/item_trader_shoes_02_01.py create mode 100644 scripts/object/tangible/wearables/vest/item_bounty_hunter_vest_02_01.py create mode 100644 scripts/object/tangible/wearables/vest/item_commando_vest_02_01.py create mode 100644 scripts/object/tangible/wearables/vest/item_medic_vest_02_01.py diff --git a/scripts/object/tangible/npe/npe_uniform_box.py b/scripts/object/tangible/npe/npe_uniform_box.py index e0de3869..959298b9 100644 --- a/scripts/object/tangible/npe/npe_uniform_box.py +++ b/scripts/object/tangible/npe/npe_uniform_box.py @@ -15,32 +15,30 @@ def use(core, actor, object): items.add(robe) elif profession =='entertainer_1a': - shoes = core.objectService.createObject('object/tangible/wearables/shoes/shared_shoes_s01.iff', actor.getPlanet()) - pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s13.iff', actor.getPlanet()) - shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s04.iff', actor.getPlanet()) - belt = core.objectService.createObject('object/tangible/wearables/belt/shared_belt_s01.iff', actor.getPlanet()) - hat = core.objectService.createObject('object/tangible/wearables/hat/shared_hat_s02.iff', actor.getPlanet()) - items.add(shoes) + boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s15.iff', actor.getPlanet(), 'item_entertainer_boots_02_01') + pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s13.iff', actor.getPlanet(), 'item_entertainer_pants_02_01') + shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s04.iff', actor.getPlanet(), 'item_entertainer_shirt_02_01') + hat = core.objectService.createObject('object/tangible/wearables/hat/shared_hat_s02.iff', actor.getPlanet(), 'item_entertainer_hat_02_01') + items.add(boots) items.add(pants) items.add(shirt) - items.add(belt) items.add(hat) elif profession =='officer_1a': - boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s22.iff', actor.getPlanet()) - pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s15.iff', actor.getPlanet()) - shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s34.iff', actor.getPlanet()) - belt = core.objectService.createObject('object/tangible/wearables/belt/shared_belt_s11.iff', actor.getPlanet()) + boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s22.iff', actor.getPlanet(), 'item_officer_boots_02_01') + pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s15.iff', actor.getPlanet(), 'item_officer_pants_02_01') + shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s34.iff', actor.getPlanet(), 'item_officer_shirt_02_01') + belt = core.objectService.createObject('object/tangible/wearables/belt/shared_belt_s11.iff', actor.getPlanet(), 'item_officer_belt_02_01') items.add(boots) items.add(pants) items.add(shirt) items.add(belt) elif profession =='bounty_hunter_1a': - boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s12.iff', actor.getPlanet()) - pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s08.iff', actor.getPlanet()) - shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s42.iff', actor.getPlanet()) - vest = core.objectService.createObject('object/tangible/wearables/vest/shared_vest_s09.iff', actor.getPlanet()) + boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s12.iff', actor.getPlanet(), 'item_bounty_hunter_boots_02_01') + pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s08.iff', actor.getPlanet(), 'item_bounty_hunter_pants_02_01') + shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s42.iff', actor.getPlanet(), 'item_bounty_hunter_shirt_02_01') + vest = core.objectService.createObject('object/tangible/wearables/vest/shared_vest_s09.iff', actor.getPlanet(), 'item_bounty_hunter_vest_02_01') items.add(boots) items.add(pants) items.add(shirt) @@ -57,17 +55,15 @@ def use(core, actor, object): items.add(vest) elif profession =='commando_1a': - boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s22.iff', actor.getPlanet()) - pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s05.iff', actor.getPlanet()) - shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s42.iff', actor.getPlanet()) - vest = core.objectService.createObject('object/tangible/wearables/vest/shared_vest_s04.iff', actor.getPlanet()) - bandolier = core.objectService.createObject('object/tangible/wearables/bandolier/shared_bandolier_s04.iff', actor.getPlanet()) + boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s22.iff', actor.getPlanet(), 'item_commando_boots_02_01') + pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s05.iff', actor.getPlanet(), 'item_commando_pants_02_01') + shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s42.iff', actor.getPlanet(), 'item_commando_shirt_02_01') + vest = core.objectService.createObject('object/tangible/wearables/vest/shared_vest_s04.iff', actor.getPlanet(), 'item_commando_vest_02_01') items.add(boots) items.add(pants) items.add(shirt) items.add(vest) - items.add(bandolier) - + elif profession =='spy_1a': boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s12.iff', actor.getPlanet(), 'item_spy_boots_02_01') gloves = core.objectService.createObject('object/tangible/wearables/gloves/shared_gloves_s12.iff', actor.getPlanet(), 'item_spy_gloves_02_01') @@ -79,25 +75,23 @@ def use(core, actor, object): items.add(shirt) elif profession == 'medic_1a': - shoes = core.objectService.createObject('object/tangible/wearables/shoes/shared_shoes_s02.iff', actor.getPlanet()) - pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s08.iff', actor.getPlanet()) - shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s27.iff', actor.getPlanet()) - vest = core.objectService.createObject('object/tangible/wearables/vest/shared_vest_s05.iff', actor.getPlanet()) + boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s22.iff', actor.getPlanet(), 'item_medic_boots_02_01') + pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s08.iff', actor.getPlanet(), 'item_medic_pants_02_01') + shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s27.iff', actor.getPlanet(), 'item_medic_shirt_02_01') + vest = core.objectService.createObject('object/tangible/wearables/vest/shared_vest_s05.iff', actor.getPlanet(), 'item_medic_vest_02_01') items.add(shoes) items.add(pants) items.add(shirt) items.add(vest) elif "trader" in profession: - boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s15.iff', actor.getPlanet()) - pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s15.iff', actor.getPlanet()) - shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s05.iff', actor.getPlanet()) - gloves = core.objectService.createObject('object/tangible/wearables/gloves/shared_gloves_s12.iff', actor.getPlanet()) + shoes = core.objectService.createObject('object/tangible/wearables/shoes/shared_shoes_s01.iff', actor.getPlanet(), 'item_trader_shoes_02_01') + pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s15.iff', actor.getPlanet(), 'item_trader_pants_02_01') + shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s05.iff', actor.getPlanet(), 'item_trader_shirt_02_01') belt = core.objectService.createObject('object/tangible/wearables/armor/zam/shared_armor_zam_wesell_belt.iff', actor.getPlanet()) - items.add(boots) + items.add(shoes) items.add(pants) items.add(shirt) - items.add(gloves) items.add(belt) else: diff --git a/scripts/object/tangible/wearables/belt/item_bounty_hunter_boots_02_01.py b/scripts/object/tangible/wearables/belt/item_bounty_hunter_boots_02_01.py new file mode 100644 index 00000000..093bcef0 --- /dev/null +++ b/scripts/object/tangible/wearables/belt/item_bounty_hunter_boots_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_officer_belt_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_officer_belt_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Officer') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/boots/item_bounty_hunter_boots_02_01.py b/scripts/object/tangible/wearables/boots/item_bounty_hunter_boots_02_01.py new file mode 100644 index 00000000..367ee7ce --- /dev/null +++ b/scripts/object/tangible/wearables/boots/item_bounty_hunter_boots_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_bounty_hunter_boots_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_bounty_hunter_boots_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Bounty Hunter') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/boots/item_commando_pants_02_01.py b/scripts/object/tangible/wearables/boots/item_commando_pants_02_01.py new file mode 100644 index 00000000..d1c2dbaa --- /dev/null +++ b/scripts/object/tangible/wearables/boots/item_commando_pants_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_commando_boots_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_commando_boots_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Commando') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/boots/item_medic_boots_02_01.py b/scripts/object/tangible/wearables/boots/item_medic_boots_02_01.py new file mode 100644 index 00000000..53c3e8f3 --- /dev/null +++ b/scripts/object/tangible/wearables/boots/item_medic_boots_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_medic_boots_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_medic_boots_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Medic') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/boots/item_officer_boots_02_01.py b/scripts/object/tangible/wearables/boots/item_officer_boots_02_01.py new file mode 100644 index 00000000..b545fb1f --- /dev/null +++ b/scripts/object/tangible/wearables/boots/item_officer_boots_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_officer_boots_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_officer_boots_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Officer') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/hat/item_entertainer_hat_02_01.py b/scripts/object/tangible/wearables/hat/item_entertainer_hat_02_01.py new file mode 100644 index 00000000..c8a61881 --- /dev/null +++ b/scripts/object/tangible/wearables/hat/item_entertainer_hat_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_entertainer_hat_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_entertainer_hat_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Entertainer') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/pants/item_bounty_hunter_pants_02_01.py b/scripts/object/tangible/wearables/pants/item_bounty_hunter_pants_02_01.py new file mode 100644 index 00000000..72be2264 --- /dev/null +++ b/scripts/object/tangible/wearables/pants/item_bounty_hunter_pants_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_bounty_hunter_pants_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_bounty_hunter_pants_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Bounty Hunter') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/pants/item_commando_pants_02_01.py b/scripts/object/tangible/wearables/pants/item_commando_pants_02_01.py new file mode 100644 index 00000000..5e58f989 --- /dev/null +++ b/scripts/object/tangible/wearables/pants/item_commando_pants_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_commando_pants_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_commando_pants_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Commando') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/pants/item_entertainer_pants_02_01.py b/scripts/object/tangible/wearables/pants/item_entertainer_pants_02_01.py new file mode 100644 index 00000000..07594377 --- /dev/null +++ b/scripts/object/tangible/wearables/pants/item_entertainer_pants_02_01.py @@ -0,0 +1,11 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_entertainer_pants_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_entertainer_pants_02_01') + #object.setCustomizationVariable('/private/index_color_1', 44); + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Entertainer') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/pants/item_medic_pants_02_01.py b/scripts/object/tangible/wearables/pants/item_medic_pants_02_01.py new file mode 100644 index 00000000..e9c590ea --- /dev/null +++ b/scripts/object/tangible/wearables/pants/item_medic_pants_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_medic_pants_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_medic_pants_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Medic') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/pants/item_officer_pants_02_01.py b/scripts/object/tangible/wearables/pants/item_officer_pants_02_01.py new file mode 100644 index 00000000..666fc886 --- /dev/null +++ b/scripts/object/tangible/wearables/pants/item_officer_pants_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_officer_pants_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_officer_pants_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Officer') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/pants/item_trader_pants_02_01.py b/scripts/object/tangible/wearables/pants/item_trader_pants_02_01.py new file mode 100644 index 00000000..20459a52 --- /dev/null +++ b/scripts/object/tangible/wearables/pants/item_trader_pants_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_trader_pants_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_trader_pants_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Trader') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/shirt/item_bounty_hunter_shirt_02_01.py b/scripts/object/tangible/wearables/shirt/item_bounty_hunter_shirt_02_01.py new file mode 100644 index 00000000..077c13bc --- /dev/null +++ b/scripts/object/tangible/wearables/shirt/item_bounty_hunter_shirt_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_bounty_hunter_shirt_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_bounty_hunter_shirt_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Bounty Hunter') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/shirt/item_commando_shirt_02_01.py b/scripts/object/tangible/wearables/shirt/item_commando_shirt_02_01.py new file mode 100644 index 00000000..1bdd8f9f --- /dev/null +++ b/scripts/object/tangible/wearables/shirt/item_commando_shirt_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_commando_shirt_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_commando_shirt_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Commando') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/shirt/item_entertainer_shirt_02_01.py b/scripts/object/tangible/wearables/shirt/item_entertainer_shirt_02_01.py new file mode 100644 index 00000000..e2c47968 --- /dev/null +++ b/scripts/object/tangible/wearables/shirt/item_entertainer_shirt_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_officer_shirt_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_officer_shirt_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Officer') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/shirt/item_medic_shirt_02_01.py b/scripts/object/tangible/wearables/shirt/item_medic_shirt_02_01.py new file mode 100644 index 00000000..b7a24faf --- /dev/null +++ b/scripts/object/tangible/wearables/shirt/item_medic_shirt_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_medic_shirt_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_medic_shirt_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Medic') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/shirt/item_officer_shirt_02_01.py b/scripts/object/tangible/wearables/shirt/item_officer_shirt_02_01.py new file mode 100644 index 00000000..7d9fc542 --- /dev/null +++ b/scripts/object/tangible/wearables/shirt/item_officer_shirt_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_entertainer_shirt_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_entertainer_shirt_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Entertainer') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/shirt/item_trader_shirt_02_01.py b/scripts/object/tangible/wearables/shirt/item_trader_shirt_02_01.py new file mode 100644 index 00000000..b7a24faf --- /dev/null +++ b/scripts/object/tangible/wearables/shirt/item_trader_shirt_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_medic_shirt_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_medic_shirt_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Medic') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/shoes/item_trader_shoes_02_01.py b/scripts/object/tangible/wearables/shoes/item_trader_shoes_02_01.py new file mode 100644 index 00000000..c15979e3 --- /dev/null +++ b/scripts/object/tangible/wearables/shoes/item_trader_shoes_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_trader_shoes_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_trader_shoes_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Trader') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/vest/item_bounty_hunter_vest_02_01.py b/scripts/object/tangible/wearables/vest/item_bounty_hunter_vest_02_01.py new file mode 100644 index 00000000..09c0b935 --- /dev/null +++ b/scripts/object/tangible/wearables/vest/item_bounty_hunter_vest_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_bounty_hunter_vest_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_bounty_hunter_vest_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Bounty Hunter') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/vest/item_commando_vest_02_01.py b/scripts/object/tangible/wearables/vest/item_commando_vest_02_01.py new file mode 100644 index 00000000..80685679 --- /dev/null +++ b/scripts/object/tangible/wearables/vest/item_commando_vest_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_commando_vest_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_commando_vest_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Commando') + return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/vest/item_medic_vest_02_01.py b/scripts/object/tangible/wearables/vest/item_medic_vest_02_01.py new file mode 100644 index 00000000..c889ee17 --- /dev/null +++ b/scripts/object/tangible/wearables/vest/item_medic_vest_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_medic_vest_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_medic_vest_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Medic') + return \ No newline at end of file diff --git a/scripts/object/weapon/melee/polearm/weapon_polearm_02_03.py b/scripts/object/weapon/melee/polearm/weapon_polearm_02_03.py index 242d16b4..7d70c44f 100644 --- a/scripts/object/weapon/melee/polearm/weapon_polearm_02_03.py +++ b/scripts/object/weapon/melee/polearm/weapon_polearm_02_03.py @@ -6,7 +6,6 @@ def setup(core, object): object.setStfName('weapon_polearm_02_03') object.setDetailFilename('static_item_d') object.setDetailName('weapon_polearm_02_03') - object.setIntAttribute('no_trade', 1) object.setIntAttribute('required_combat_level', 1) object.setAttackSpeed(1); object.setMaxRange(5); From b9a17dd384a276a60945c44c2005c83136a7d867 Mon Sep 17 00:00:00 2001 From: tacef Date: Sat, 9 Aug 2014 15:13:12 +0200 Subject: [PATCH 49/51] Added Customscript for Entertainer boots --- .../wearables/boots/item_entertainer_boots_02_01.py | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 scripts/object/tangible/wearables/boots/item_entertainer_boots_02_01.py diff --git a/scripts/object/tangible/wearables/boots/item_entertainer_boots_02_01.py b/scripts/object/tangible/wearables/boots/item_entertainer_boots_02_01.py new file mode 100644 index 00000000..7032e034 --- /dev/null +++ b/scripts/object/tangible/wearables/boots/item_entertainer_boots_02_01.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_entertainer_boots_02_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_entertainer_boots_02_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3) + object.setStringAttribute('class_required', 'Entertainer') + return \ No newline at end of file From 4af373b44e6941ef75612d19fce12f442a70b940 Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Sat, 9 Aug 2014 17:52:54 +0200 Subject: [PATCH 50/51] 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 51/51] 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