diff --git a/README.md b/README.md index ff4c8504..abccf1b8 100644 --- a/README.md +++ b/README.md @@ -62,3 +62,5 @@ 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/ + +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. diff --git a/options.cfg b/options.cfg index 64b699db..bf00d91a 100644 --- a/options.cfg +++ b/options.cfg @@ -1,6 +1,6 @@ LOAD.SNAPSHOT_OBJECTS=1 LOAD.BUILDOUT_OBJECTS=1 -LOAD.BUILDOUT_ONLY_FOR="dathomir" +#LOAD.BUILDOUT_ONLY_FOR="dathomir" LOAD.RESOURCE.SYSTEM=1 # Misc diff --git a/scripts/commands/callforrattletrappickup.py b/scripts/commands/callforrattletrappickup.py new file mode 100644 index 00000000..3635072a --- /dev/null +++ b/scripts/commands/callforrattletrappickup.py @@ -0,0 +1,42 @@ +import sys +import time + +def setup(core, actor, target, command): + return + +def run(core, actor, target, commandstring): + + stcSvc = core.staticService + objSvc = core.objectService + object = objSvc.createObject('object/tangible/terminal/shared_terminal_travel_instant_jalopy.iff', actor.getPlanet(), (actor.getWorldPosition().x)+5, actor.getWorldPosition().z, actor.getWorldPosition().y) + + + + if core.gcwService.isInPvpZone is True: + actor.sendSystemMessage('@travel:no_pickup_in_pvp', 0) + return + + if actor.getCombatFlag() == 1: + actor.sendSystemMessage('@travel:in_combat', 0) + return + + if core.terrainService.canBuildAtPosition(actor, actor.getWorldPosition().x, actor.getWorldPosition().z) is True: + core.simulationService.add(object, (actor.getWorldPosition().x)+5, actor.getWorldPosition().z) + actor.sendSystemMessage('@travel:calling_for_pickup', 0) + else: + actor.sendSystemMessage('@travel:invalid_pickup_loc', 0) + return + + if core.simulationService.checkForObject(20, actor) is True: + actor.sendSystemMessage('@travel:no_pickup_location', 0) + return + + if actor.getWorldPosition().getDistance2D(object.getWorldPosition()) > 50: + core.travelService.checkForItvDistanceDespawn(actor, object) + return + + core.travelService.checkForItvTimedDespawn(actor, object) + + + + return diff --git a/scripts/commands/setgodmode.py b/scripts/commands/setgodmode.py index 5f67bb5e..9874cbd3 100644 --- a/scripts/commands/setgodmode.py +++ b/scripts/commands/setgodmode.py @@ -6,7 +6,9 @@ from engine.resources.objects import SWGObject from java.awt.datatransfer import StringSelection from java.awt.datatransfer import Clipboard from java.awt import Toolkit -#from decimal import Decimal +from resources.datatables import GcwRank +from services.gcw import GCWService + def setup(): return @@ -178,4 +180,9 @@ def run(core, actor, target, commandString): actor.getClient().getSession().write(packet.serialize()) actor.sendSystemMessage('Sent UnknownAbilityPacket for ability ' + arg1, 0) return + + elif command == 'rank' and arg1: + playerObject.setCurrentRank(int(arg1)) + print (playerObject.getCurrentRank()) + return return diff --git a/scripts/conversation/reb_recruiter.py b/scripts/conversation/reb_recruiter.py index d1b8a1a3..5c6ce3e7 100644 --- a/scripts/conversation/reb_recruiter.py +++ b/scripts/conversation/reb_recruiter.py @@ -126,13 +126,8 @@ def handleFirstScreen(core, actor, npc, selection): convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage("@conversation/faction_recruiter_rebel:s_332", percent, "TO", str(100 - percent))) return if selection == 2: - convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_76')) - - options = Vector() - options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_78'), 0)) - options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_360'), 1)) - convSvc.sendConversationOptions(actor, npc, options, handleSecondScreen) - + core.scriptService.callScript("scripts/", "gcw_rewards_rebel", "handleRebelItems1", core, actor, object, 0); + core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_75') return return elif actor.getFaction() == 'rebel' and actor.getFactionStatus() == FactionStatus.SpecialForces: @@ -194,7 +189,7 @@ def handleSecondScreen(core, actor, npc, selection): options = Vector() options.add(ConversationOption(outOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_78'), 0)) - options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_360'), 1)) + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_75'), 1)) convSvc.sendConversationOptions(actor, npc, options, handleThirdScreen) return diff --git a/scripts/gcw_rewards_rebel.py b/scripts/gcw_rewards_rebel.py new file mode 100644 index 00000000..24920ad2 --- /dev/null +++ b/scripts/gcw_rewards_rebel.py @@ -0,0 +1,1507 @@ +from resources.common import RadialOptions +from resources.common import OutOfBand +from protocol.swg import ResourceListForSurveyMessage +from services.sui.SUIService import MessageBoxType +from services.sui.SUIWindow import Trigger +from java.util import Vector +from java.lang import System +from java.lang import Long +from java.util import Map +from java.util import TreeMap +from resources.datatables import GcwRank +import main.NGECore +from services.gcw import GCWService +import sys +import math + + +def handleRebelItems1 (core, owner, target, option): + actor = owner.getSlottedObject('ghost') + window = core.suiService.createSUIWindow('Script.listBox', owner, owner, 0); + window.setProperty('bg.caption.lblTitle:Text', 'Rebel Item Requisition') + window.setProperty('Prompt.lblPrompt:Text', 'Items') + if actor.getCurrentRank() == GcwRank.PRIVATE: + window.addListBoxMenuItem('Private',0) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, setRebelBox1Callback) + core.suiService.openSUIWindow(window); + + if actor.getCurrentRank() == GcwRank.TROOPER: + window.addListBoxMenuItem('Private',0) + window.addListBoxMenuItem('Trooper',1) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, setRebelBox1Callback) + core.suiService.openSUIWindow(window); + + + if actor.getCurrentRank() == GcwRank.HIGHTROOPER: + window.addListBoxMenuItem('Private',0) + window.addListBoxMenuItem('Trooper',1) + window.addListBoxMenuItem('High Trooper',2) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, setRebelBox1Callback) + core.suiService.openSUIWindow(window); + + + if actor.getCurrentRank() == GcwRank.SERGEANT: + window.addListBoxMenuItem('Private',0) + window.addListBoxMenuItem('Trooper',1) + window.addListBoxMenuItem('High Trooper',2) + window.addListBoxMenuItem('Sergeant',3) + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, setRebelBox1Callback) + core.suiService.openSUIWindow(window); + + + if actor.getCurrentRank() == GcwRank.SENIORSERGEANT: + window.addListBoxMenuItem('Private',0) + window.addListBoxMenuItem('Trooper',1) + window.addListBoxMenuItem('High Trooper',2) + window.addListBoxMenuItem('Sergeant',3) + window.addListBoxMenuItem('Senior Sergeant',4) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, setRebelBox1Callback) + core.suiService.openSUIWindow(window); + + + if actor.getCurrentRank() == GcwRank.SERGEANTMAJOR: + window.addListBoxMenuItem('Private',0) + window.addListBoxMenuItem('Trooper',1) + window.addListBoxMenuItem('High Trooper',2) + window.addListBoxMenuItem('Sergeant',3) + window.addListBoxMenuItem('Senior Sergeant',4) + window.addListBoxMenuItem('Sergeant Major',5) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, setRebelBox1Callback) + core.suiService.openSUIWindow(window); + + + if actor.getCurrentRank() == GcwRank.LIEUTENANT: + window.addListBoxMenuItem('Private',0) + window.addListBoxMenuItem('Trooper',1) + window.addListBoxMenuItem('High Trooper',2) + window.addListBoxMenuItem('Sergeant',3) + window.addListBoxMenuItem('Senior Sergeant',4) + window.addListBoxMenuItem('Sergeant Major',5) + window.addListBoxMenuItem('Lieutenant',6) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, setRebelBox1Callback) + core.suiService.openSUIWindow(window); + + + if actor.getCurrentRank() == GcwRank.CAPTAIN: + window.addListBoxMenuItem('Private',0) + window.addListBoxMenuItem('Trooper',1) + window.addListBoxMenuItem('High Trooper',2) + window.addListBoxMenuItem('Sergeant',3) + window.addListBoxMenuItem('Senior Sergeant',4) + window.addListBoxMenuItem('Sergeant Major',5) + window.addListBoxMenuItem('Lieutenant',6) + window.addListBoxMenuItem('Captain',7) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, setRebelBox1Callback) + core.suiService.openSUIWindow(window); + + + if actor.getCurrentRank() == GcwRank.MAJOR: + window.addListBoxMenuItem('Private',0) + window.addListBoxMenuItem('Trooper',1) + window.addListBoxMenuItem('High Trooper',2) + window.addListBoxMenuItem('Sergeant',3) + window.addListBoxMenuItem('Senior Sergeant',4) + window.addListBoxMenuItem('Sergeant Major',5) + window.addListBoxMenuItem('Lieutenant',6) + window.addListBoxMenuItem('Captain',7) + window.addListBoxMenuItem('Major',8) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, setRebelBox1Callback) + core.suiService.openSUIWindow(window); + + + if actor.getCurrentRank() == GcwRank.COMMANDER: + window.addListBoxMenuItem('Private',0) + window.addListBoxMenuItem('Trooper',1) + window.addListBoxMenuItem('High Trooper',2) + window.addListBoxMenuItem('Sergeant',3) + window.addListBoxMenuItem('Senior Sergeant',4) + window.addListBoxMenuItem('Sergeant Major',5) + window.addListBoxMenuItem('Lieutenant',6) + window.addListBoxMenuItem('Captain',7) + window.addListBoxMenuItem('Major',8) + window.addListBoxMenuItem('Commander',9) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, setRebelBox1Callback) + core.suiService.openSUIWindow(window); + + + if actor.getCurrentRank() == GcwRank.COLONEL: + window.addListBoxMenuItem('Private',0) + window.addListBoxMenuItem('Trooper',1) + window.addListBoxMenuItem('High Trooper',2) + window.addListBoxMenuItem('Sergeant',3) + window.addListBoxMenuItem('Senior Sergeant',4) + window.addListBoxMenuItem('Sergeant Major',5) + window.addListBoxMenuItem('Lieutenant',6) + window.addListBoxMenuItem('Captain',7) + window.addListBoxMenuItem('Major',8) + window.addListBoxMenuItem('Commander',9) + window.addListBoxMenuItem('Colonel',10) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, setRebelBox1Callback) + core.suiService.openSUIWindow(window); + + + if actor.getCurrentRank() == GcwRank.GENERAL: + window.addListBoxMenuItem('Private',0) + window.addListBoxMenuItem('Trooper',1) + window.addListBoxMenuItem('High Trooper',2) + window.addListBoxMenuItem('Sergeant',3) + window.addListBoxMenuItem('Senior Sergeant',4) + window.addListBoxMenuItem('Sergeant Major',5) + window.addListBoxMenuItem('Lieutenant',6) + window.addListBoxMenuItem('Captain',7) + window.addListBoxMenuItem('Major',8) + window.addListBoxMenuItem('Commander',9) + window.addListBoxMenuItem('Colonel',10) + window.addListBoxMenuItem('General',11) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, setRebelBox1Callback) + core.suiService.openSUIWindow(window); + + +def setRebelBox1Callback(owner, window, eventType, returnList): + + if returnList.size()==0: + owner.sendSystemMessage('NULL', 0) + return + + if returnList.get(0)=='0': + privateHandler(owner) + return + if returnList.get(0)=='1': + trooperHandler(owner) + return + if returnList.get(0)=='2': + highTrooperHandler(owner) + return + if returnList.get(0)=='3': + sergeantHandler(owner) + return + if returnList.get(0)=='4': + seniorSergeantHandler(owner) + return + if returnList.get(0)=='5': + sergeantMajorHandler(owner) + return + if returnList.get(0)=='6': + lieutenantHandler(owner) + return + if returnList.get(0)=='7': + captainHandler(owner) + return + if returnList.get(0)=='8': + majorHandler(owner) + return + if returnList.get(0)=='9': + commanderHandler(owner) + return + if returnList.get(0)=='10': + colonelHandler(owner) + return + if returnList.get(0)=='11': + generalHandler(owner) + return + + return + +def privateHandler(owner): + actor = owner.getSlottedObject('ghost') + core = main.NGECore.getInstance() + window = core.suiService.createSUIWindow('Script.listBox', owner, owner, 0); + window.setProperty('bg.caption.lblTitle:Text', 'Rebel Item Requisition') + window.setProperty('Prompt.lblPrompt:Text', 'Items') + #window.addListBoxMenuItem('R2 Droid Schematic 165000',0) + #window.addListBoxMenuItem('R3 Droid Schematic 180000',1) + #window.addListBoxMenuItem('R4 Droid Schematic 195000',2) + #window.addListBoxMenuItem('Sergical Droid Schematic 16500', 3) + #window.addListBoxMenuItem('Dead Eye Prototype 15000',4) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, privateRewards) + core.suiService.openSUIWindow(window); + return + +def trooperHandler(owner): + actor = owner.getSlottedObject('ghost') + core = main.NGECore.getInstance() + window = core.suiService.createSUIWindow('Script.listBox', owner, owner, 0); + window.setProperty('bg.caption.lblTitle:Text', 'Rebel Item Requisition') + window.setProperty('Prompt.lblPrompt:Text', 'Items') + window.addListBoxMenuItem('Tech Armoire 105000',0) + window.addListBoxMenuItem('Tech Bookcase 105000',1) + window.addListBoxMenuItem('Tech Cabinet 105000',2) + window.addListBoxMenuItem('Tech Chest 75000', 3) + window.addListBoxMenuItem('Tech Couch 112500',4) + window.addListBoxMenuItem('Tech Chair 75000',5) + window.addListBoxMenuItem('Tech Coffee Table 75000',6) + window.addListBoxMenuItem('Tech End Table 75000',7) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, trooperRewards) + core.suiService.openSUIWindow(window); + return + +def highTrooperHandler(owner): + actor = owner.getSlottedObject('ghost') + core = main.NGECore.getInstance() + window = core.suiService.createSUIWindow('Script.listBox', owner, owner, 0); + window.setProperty('bg.caption.lblTitle:Text', 'Rebel Item Requisition') + window.setProperty('Prompt.lblPrompt:Text', 'Items') + window.addListBoxMenuItem('Electrobinoculars 15000',0) + window.addListBoxMenuItem('Advanced Electrobinoculars 22500',1) + window.addListBoxMenuItem('Superior Electrobinoculars 30000',2) + window.addListBoxMenuItem('Experimental Electrobinoculars 37500', 3) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, highTrooperRewards) + core.suiService.openSUIWindow(window); + return + +def sergeantHandler(owner): + actor = owner.getSlottedObject('ghost') + core = main.NGECore.getInstance() + window = core.suiService.createSUIWindow('Script.listBox', owner, owner, 0); + window.setProperty('bg.caption.lblTitle:Text', 'Rebel Item Requisition') + window.setProperty('Prompt.lblPrompt:Text', 'Items') + window.addListBoxMenuItem('Laser Carbine 187500',0) + window.addListBoxMenuItem('Scout Pistol 40500',1) + window.addListBoxMenuItem('Metal Staff',2) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, sergeantRewards) + core.suiService.openSUIWindow(window); + return + +def seniorSergeantHandler(owner): + actor = owner.getSlottedObject('ghost') + core = main.NGECore.getInstance() + window = core.suiService.createSUIWindow('Script.listBox', owner, owner, 0); + window.setProperty('bg.caption.lblTitle:Text', 'Rebel Item Requisition') + window.setProperty('Prompt.lblPrompt:Text', 'Items') + window.addListBoxMenuItem('Small Block Turret 120000',0) + window.addListBoxMenuItem('Small Dish Turret 120000',1) + window.addListBoxMenuItem('Small Tower Turret 120000',2) + #window.addListBoxMenuItem('DRX-55 Mine 12000',3) + #window.addListBoxMenuItem('SR-88 Cyro Mine 12000',4) + #window.addListBoxMenuItem('XG Mine 12000',5) + window.addListBoxMenuItem('Painting We will never surrender 375000',6) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, seniorSergeantRewards) + core.suiService.openSUIWindow(window); + return + +def sergeantMajorHandler(owner): + actor = owner.getSlottedObject('ghost') + core = main.NGECore.getInstance() + window = core.suiService.createSUIWindow('Script.listBox', owner, owner, 0); + window.setProperty('bg.caption.lblTitle:Text', 'Rebel Item Requisition') + window.setProperty('Prompt.lblPrompt:Text', 'Items') + window.addListBoxMenuItem('Medium Block Turret 150000', 0) + window.addListBoxMenuItem('Medium Tower Turret 150000', 1) + window.addListBoxMenuItem('HQ Forward Outpost 525000', 2) + window.addListBoxMenuItem('HQ Field Hospital 1050000', 3) + window.addListBoxMenuItem('SF HQ Forward Outpost 750000' ,4) + window.addListBoxMenuItem('SF HQ Field Hospital 1500000', 5) + window.addListBoxMenuItem('Crimson Phoenix Medal of the Rebel Alliance 240000', 6) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, sergeantMajorRewards) + core.suiService.openSUIWindow(window); + return + +def lieutenantHandler(owner): + actor = owner.getSlottedObject('ghost') + core = main.NGECore.getInstance() + window = core.suiService.createSUIWindow('Script.listBox', owner, owner, 0); + window.setProperty('bg.caption.lblTitle:Text', 'Rebel Item Requisition') + window.setProperty('Prompt.lblPrompt:Text', 'Items') + window.addListBoxMenuItem('Large Block Turret 210000',0) + window.addListBoxMenuItem('Large Dish Turret 210000',1) + window.addListBoxMenuItem('Large Tower Turret 210000',2) + window.addListBoxMenuItem('HQ Tactical Center 1875000', 3) + window.addListBoxMenuItem('HQ Field Hospital 3600000',4) + window.addListBoxMenuItem('SF HQ Tactical Center 2325000',5) + window.addListBoxMenuItem('SF HQ Detachment Headquarters 4500000',6) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, lieutenantRewards) + core.suiService.openSUIWindow(window); + return + +def captainHandler(owner): + actor = owner.getSlottedObject('ghost') + core = main.NGECore.getInstance() + window = core.suiService.createSUIWindow('Script.listBox', owner, owner, 0); + window.setProperty('bg.caption.lblTitle:Text', 'Rebel Item Requisition') + window.setProperty('Prompt.lblPrompt:Text', 'Items') + window.addListBoxMenuItem('Factional Banner 81600', 0) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, captainRewards) + core.suiService.openSUIWindow(window); + return + +def majorHandler(owner): + actor = owner.getSlottedObject('ghost') + core = main.NGECore.getInstance() + window = core.suiService.createSUIWindow('Script.listBox', owner, owner, 0); + window.setProperty('bg.caption.lblTitle:Text', 'Rebel Item Requisition') + window.setProperty('Prompt.lblPrompt:Text', 'Items') + window.addListBoxMenuItem('Grey Spec Ops Armor Leggings 135000', 0) + window.addListBoxMenuItem('Grey Spec Ops Armor Belt 112500', 1) + window.addListBoxMenuItem('Grey Spec Ops Armor Boots 120000', 2) + window.addListBoxMenuItem('Technical Readout of an Rebel Spec Ops Armor Dye Kit 37500', 3) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, majorRewards) + core.suiService.openSUIWindow(window); + return + +def commanderHandler(owner): + actor = owner.getSlottedObject('ghost') + core = main.NGECore.getInstance() + window = core.suiService.createSUIWindow('Script.listBox', owner, owner, 0); + window.setProperty('bg.caption.lblTitle:Text', 'Rebel Item Requisition') + window.setProperty('Prompt.lblPrompt:Text', 'Items') + window.addListBoxMenuItem('Grey Spec Ops Armor Left Bicep 120000', 0) + window.addListBoxMenuItem('Grey Spec Ops Armor Right Bicep 120000', 1) + window.addListBoxMenuItem('Grey Spec Ops Armor Left Bracer 120000', 2) + window.addListBoxMenuItem('Grey Spec Ops Armor Right Bracer 120000', 3) + window.addListBoxMenuItem('Grey Spec Ops Armor Gloves 120000', 4) + window.addListBoxMenuItem('Grey Spec Ops Armor Helmet 150000', 5) + window.addListBoxMenuItem('Grey Spec Ops Armor Chest Plate 225000', 6) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, commanderRewards) + core.suiService.openSUIWindow(window); + return + +def colonelHandler(owner): + actor = owner.getSlottedObject('ghost') + core = main.NGECore.getInstance() + window = core.suiService.createSUIWindow('Script.listBox', owner, owner, 0); + window.setProperty('bg.caption.lblTitle:Text', 'Rebel Item Requisition') + window.setProperty('Prompt.lblPrompt:Text', 'Items') + window.addListBoxMenuItem('Colonel Ring 2800000', 0) + window.addListBoxMenuItem('BARC Command Vehicle 2100000', 1) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, colonelRewards) + core.suiService.openSUIWindow(window); + return + +def generalHandler(owner): + actor = owner.getSlottedObject('ghost') + core = main.NGECore.getInstance() + window = core.suiService.createSUIWindow('Script.listBox', owner, owner, 0); + window.setProperty('bg.caption.lblTitle:Text', 'Rebel Item Requisition') + window.setProperty('Prompt.lblPrompt:Text', 'Items') + window.addListBoxMenuItem('Windu\'s Guile 2000000', 0) + window.addListBoxMenuItem('Exceptional Rebel DL44 Pistol', 1) + window.addListBoxMenuItem('The Legendary Starlight Carbine 200000', 2) + window.addListBoxMenuItem('The Legendary Crimson Nova Pistol 200000', 3) + window.addListBoxMenuItem('The Legendary Vortex Rifle 200000', 4) + window.addListBoxMenuItem('The Legendary Reaper Cannon 200000', 5) + window.setProperty('btnOk:visible', 'True') + window.setProperty('btnCancel:visible', 'True') + window.setProperty('btnOk:Text', '@ok') + window.setProperty('btnCancel:Text', '@cancel') + returnList = Vector() + returnList.add('List.lstList:SelectedRow') + window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, generalRewards) + core.suiService.openSUIWindow(window); + return + +def privateRewards(owner, window, eventType, returnList): + + if returnList.size()==0: + return + + if returnList.get(0)=='0': + r2DroidSchematic(object, owner) + return + + if returnList.get(0)=='1': + r3DroidSchematic(object, owner) + return + + if returnList.get(0)=='2': + r4DroidSchematic(object, owner) + return + + if returnList.get(0)=='3': + r5DroidSchematic(object, owner) + return + + if returnList.get(0)=='4': + sergicalDroidSchematic(object, owner) + return + + if returnList.get(0)=='5': + deadEyePrototype(object, owner) + return + +def trooperRewards(owner, window, eventType, returnList): + + if returnList.size()==0: + return + + if returnList.get(0)=='0': + techArmoire(object, owner) + return + + if returnList.get(0)=='1': + techBookcase(object, owner) + return + + if returnList.get(0)=='2': + techCabinet(object, owner) + return + + if returnList.get(0)=='3': + techChest(object, owner) + return + + if returnList.get(0)=='4': + techCouch(object, owner) + return + + if returnList.get(0)=='5': + techChair(object, owner) + return + + if returnList.get(0)=='6': + techCoffeeTable(object, owner) + return + + if returnList.get(0)=='7': + techEndTable(object, owner) + return + +def highTrooperRewards(owner, window, eventType, returnList): + + if returnList.size()==0: + return + + if returnList.get(0)=='0': + electrobinoculars(object, owner) + return + + if returnList.get(0)=='1': + advancedElectrobinoculars(object, owner) + return + + if returnList.get(0)=='2': + superiorElectrobinoculars(object, owner) + return + + if returnList.get(0)=='3': + experimentalElectrobinoculars(object, owner) + return + +def sergeantRewards(owner, window, eventType, returnList): + + if returnList.size()==0: + return + + if returnList.get(0)=='0': + laserCarbine(object, owner) + return + + if returnList.get(0)=='1': + scoutPistol(object, owner) + return + + if returnList.get(0)=='2': + metalStaff(object, owner) + return + +def seniorSergeantRewards(owner, window, eventType, returnList): + + if returnList.size()==0: + return + + if returnList.get(0)=='0': + smallBlockTurret(object, owner) + return + + if returnList.get(0)=='1': + smallDishTurret(object, owner) + return + + if returnList.get(0)=='2': + smallTowerTurret(object, owner) + return + + if returnList.get(0)=='3': + drx55Mine(object, owner) + return + + if returnList.get(0)=='4': + sr88CryoMine(object, owner) + return + + if returnList.get(0)=='5': + xgMine(object, owner) + return + + if returnList.get(0)=='6': + paintingNeverSurrender(object, owner) + return + +def sergeantMajorRewards(owner, window, eventType, returnList): + + if returnList.size()==0: + return + + if returnList.get(0)=='0': + mediumBlockTurret(object, owner) + return + + if returnList.get(0)=='1': + mediumTowerTurret(object, owner) + return + + if returnList.get(0)=='2': + hqForwardOutpost(object, owner) + return + + if returnList.get(0)=='3': + hqFieldHospital(object, owner) + return + + if returnList.get(0)=='4': + sfhqForwardOutpost(object, owner) + return + + if returnList.get(0)=='5': + sfhqFieldHospital(object, owner) + return + + if returnList.get(0)=='6': + crimsonPhoenixMedal(object, owner) + return + +def lieutenantRewards(owner, window, eventType, returnList): + + if returnList.size()==0: + return + + if returnList.get(0)=='0': + largeBlockTurret(object, owner) + return + + if returnList.get(0)=='1': + largeDishTurret(object, owner) + return + + if returnList.get(0)=='2': + largeTowerTurret(object, owner) + return + + if returnList.get(0)=='3': + hqTacticalCenter(object, owner) + return + + if returnList.get(0)=='4': + hqFieldHospital(object, owner) + return + + if returnList.get(0)=='5': + sfhqTacticalCenter(object, owner) + return + + if returnList.get(0)=='6': + sfhqDetachmentHeadquarters(object, owner) + return + +def captainRewards(owner, window, eventType, returnList): + + if returnList.size()==0: + return + + if returnList.get(0)=='0': + factionalBanner(object, owner) + return + +def majorRewards(owner, window, eventType, returnList): + + if returnList.size()==0: + return + + if returnList.get(0)=='0': + specOpsLeggings(object, owner) + return + + if returnList.get(0)=='1': + specOpsBelt(object, owner) + return + + if returnList.get(0)=='2': + specOpsBoots(object, owner) + return + + if returnList.get(0)=='3': + specOpsDyeKit(object, owner) + return + +def commanderRewards(owner, window, eventType, returnList): + + if returnList.size()==0: + return + + if returnList.get(0)=='0': + specOpsLeftBicep(object, owner) + return + + if returnList.get(0)=='1': + specOpsRightBicep(object, owner) + return + + if returnList.get(0)=='2': + specOpsLeftBracer(object, owner) + return + + if returnList.get(0)=='3': + specOpsRightBracer(object, owner) + return + + if returnList.get(0)=='4': + specOpsGloves(object, owner) + return + + if returnList.get(0)=='5': + specOpsHelmet(object, owner) + return + + if returnList.get(0)=='6': + specOpsChestPlate(object, owner) + return + +def colonelRewards(owner, window, eventType, returnList): + + if returnList.size()==0: + return + + if returnList.get(0)=='0': + colonelRing(object, owner) + return + + if returnList.get(0)=='1': + barcSpeeder(object, owner) + return + + +def generalRewards(owner, window, eventType, returnList): + + if returnList.size()==0: + owner.sendSystemMessage('NULL', 0) + return + + if returnList.get(0)=='0': + windusGuile(object, owner) + return + + if returnList.get(0)=='1': + exceptionalPistol(object, owner) + return + + if returnList.get(0)=='2': + starlightCarbine(object, owner) + return + + if returnList.get(0)=='3': + crimsonNova(object, owner) + return + + if returnList.get(0)=='4': + vortexRifle(object, owner) + return + if returnList.get(0)=='5': + reaperCannon(object, owner) + return + +def r2DroidSchematic(object, owner): + if owner.getCashCredits() >= 165000: + owner.setCashCredits(owner.getCashCredits() - 165000) + core = main.NGECore.getInstance() + r2 = core.objectService.createObject('object/draft_schematic/droid/shared_droid_r2.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(r2) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def r3DroidSchematic(object, owner): + if owner.getCashCredits() >= 180000: + owner.setCashCredits(owner.getCashCredits() - 180000) + core = main.NGECore.getInstance() + r3 = core.objectService.createObject('object/draft_schematic/droid/shared_droid_r3.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(r3) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def r4DroidSchematic(object, owner): + if owner.getCashCredits() >= 195000: + owner.setCashCredits(owner.getCashCredits() - 195000) + core = main.NGECore.getInstance() + r4 = core.objectService.createObject('object/draft_schematic/droid/shared_droid_r4.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(r4) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def r5DroidSchematic(object, owner): + if owner.getCashCredits() >= 210000: + owner.setCashCredits(owner.getCashCredits() - 210000) + core = main.NGECore.getInstance() + r5 = core.objectService.createObject('object/draft_schematic/droid/shared_droid_r5.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(r5) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def sergicalDroidSchematic(object, owner): + if owner.getCashCredits() >= 16500: + owner.setCashCredits(owner.getCashCredits() - 16500) + core = main.NGECore.getInstance() + sergical = core.objectService.createObject('object/draft_schematic/droid/shared_droid_sergical.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(sergical) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def deadEyeSchematic(object, owner): + if owner.getCashCredits() >= 16000: + owner.setCashCredits(owner.getCashCredits() - 16000) + core = main.NGECore.getInstance() + deadeye = core.objectService.createObject('object/draft_schematic/item/theme_park/alderaan/shared_dead_eye_prototype.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(deadeye) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def techArmoire(object, owner): + if owner.getCashCredits() >= 105000: + owner.setCashCredits(owner.getCashCredits() - 105000) + core = main.NGECore.getInstance() + armoire = core.objectService.createObject('object/tangible/furniture/technical/shared_armoire_s01.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(armoire) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def techBookcase(object, owner): + if owner.getCashCredits() >= 105000: + owner.setCashCredits(owner.getCashCredits() - 105000) + core = main.NGECore.getInstance() + bookcase = core.objectService.createObject('object/tangible/furniture/technical/shared_bookcase_s01.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(bookcase) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def techCabinet(object, owner): + if owner.getCashCredits() >= 105000: + owner.setCashCredits(owner.getCashCredits() - 105000) + core = main.NGECore.getInstance() + cabinet = core.objectService.createObject('object/tangible/furniture/technical/shared_cabinet_s01.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(cabinet) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def techChest(object, owner): + if owner.getCashCredits() >= 75000: + owner.setCashCredits(owner.getCashCredits() - 75000) + core = main.NGECore.getInstance() + chest = core.objectService.createObject('object/tangible/furniture/technical/shared_chest_s01.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(chest) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def techCouch(object, owner): + if owner.getCashCredits() >= 112500: + owner.setCashCredits(owner.getCashCredits() - 112500) + core = main.NGECore.getInstance() + couch = core.objectService.createObject('object/tangible/furniture/technical/shared_couch_s01.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(couch) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def techChair(object, owner): + if owner.getCashCredits() >= 75000: + owner.setCashCredits(owner.getCashCredits() - 75000) + core = main.NGECore.getInstance() + chair = core.objectService.createObject('object/tangible/furniture/technical/shared_bookcase_s01.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(chair) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def techCoffeeTable(object, owner): + if owner.getCashCredits() >= 75000: + owner.setCashCredits(owner.getCashCredits() - 75000) + core = main.NGECore.getInstance() + coffeetable = core.objectService.createObject('object/tangible/furniture/technical/shared_coffee_table_s01.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(coffeetable) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def techEndTable(object, owner): + if owner.getCashCredits() >= 75000: + owner.setCashCredits(owner.getCashCredits() - 75000) + core = main.NGECore.getInstance() + endtable = core.objectService.createObject('object/tangible/furniture/technical/shared_end_table_s01.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(endtable) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def electrobinoculars(object, owner): + if owner.getCashCredits() >= 15000: + owner.setCashCredits(owner.getCashCredits() - 15000) + core = main.NGECore.getInstance() + electrobinoculars = core.objectService.createObject('object/tangible/loot/generic_usable/shared_binoculars_s2_generic.iff', owner.getPlanet()) + electrobinoculars.setAttachment('radial_filename', 'object/usable') + electrobinoculars.setStfFilename('static_item_n') + electrobinoculars.setStfName('item_consumable_detect_hidden_02_01') + electrobinoculars.setDetailFilename('static_item_d') + electrobinoculars.setDetailName('item_consumable_detect_hidden_02_01') + inventory = owner.getSlottedObject('inventory') + inventory.add(electrobinoculars) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def advancedElectrobinoculars(object, owner): + if owner.getCashCredits() >= 22500: + owner.setCashCredits(owner.getCashCredits() - 22500) + core = main.NGECore.getInstance() + electrobinoculars = core.objectService.createObject('object/tangible/loot/generic_usable/shared_binoculars_s2_generic.iff', owner.getPlanet()) + electrobinoculars.setAttachment('radial_filename', 'object/usable') + electrobinoculars.setStfFilename('static_item_n') + electrobinoculars.setStfName('item_consumable_detect_hidden_02_02') + electrobinoculars.setDetailFilename('static_item_d') + electrobinoculars.setDetailName('item_consumable_detect_hidden_02_02') + inventory = owner.getSlottedObject('inventory') + inventory.add(electrobinoculars) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def superiorElectrobinoculars(object, owner): + if owner.getCashCredits() >= 30000: + owner.setCashCredits(owner.getCashCredits() - 30000) + core = main.NGECore.getInstance() + electrobinoculars = core.objectService.createObject('object/tangible/loot/generic_usable/shared_binoculars_s2_generic.iff', owner.getPlanet()) + electrobinoculars.setAttachment('radial_filename', 'object/usable') + electrobinoculars.setStfFilename('static_item_n') + electrobinoculars.setStfName('item_consumable_detect_hidden_02_03') + electrobinoculars.setDetailFilename('static_item_d') + electrobinoculars.setDetailName('item_consumable_detect_hidden_02_03') + inventory = owner.getSlottedObject('inventory') + inventory.add(electrobinoculars) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def experimentalElectrobinoculars(object, owner): + if owner.getCashCredits() >= 37500: + owner.setCashCredits(owner.getCashCredits() - 37500) + core = main.NGECore.getInstance() + electrobinoculars = core.objectService.createObject('object/tangible/loot/generic_usable/shared_binoculars_s1_generic.iff', owner.getPlanet()) + electrobinoculars.setAttachment('radial_filename', 'object/usable') + electrobinoculars.setStfFilename('static_item_n') + electrobinoculars.setStfName('item_consumable_detect_hidden_02_04') + electrobinoculars.setDetailFilename('static_item_d') + electrobinoculars.setDetailName('item_consumable_detect_hidden_02_04') + inventory = owner.getSlottedObject('inventory') + inventory.add(electrobinoculars) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def smallBlockTurret(object, owner): + if owner.getCashCredits() >= 120000: + owner.setCashCredits(owner.getCashCredits() - 120000) + core = main.NGECore.getInstance() + turret = core.objectService.createObject('object/tangible/deed/faction_perk/turret/shared_block_sm_deed.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(turret) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def smallDishTurret(object, owner): + if owner.getCashCredits() >= 120000: + owner.setCashCredits(owner.getCashCredits() - 120000) + core = main.NGECore.getInstance() + turret = core.objectService.createObject('object/tangible/deed/faction_perk/turret/shared_dish_sm_deed.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(turret) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def smallTowerTurret(object, owner): + if owner.getCashCredits() >= 120000: + owner.setCashCredits(owner.getCashCredits() - 120000) + core = main.NGECore.getInstance() + turret = core.objectService.createObject('object/tangible/deed/faction_perk/turret/shared_tower_sm_deed.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(turret) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def drx55Mine(object, owner): + if owner.getCashCredits() >= 12000: + owner.setCashCredits(owner.getCashCredits() - 12000) + core = main.NGECore.getInstance() + mine = core.objectService.createObject('object/weapon/mine/shared_wp_mine_drx55.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(mine) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def sr88CryoMine(object, owner): + if owner.getCashCredits() >= 12000: + owner.setCashCredits(owner.getCashCredits() - 12000) + core = main.NGECore.getInstance() + mine = core.objectService.createObject('object/weapon/mine/shared_wp_mine_anti_vehicle.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(mine) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def xgMine(object, owner): + if owner.getCashCredits() >= 12000: + owner.setCashCredits(owner.getCashCredits() - 12000) + core = main.NGECore.getInstance() + mine = core.objectService.createObject('object/weapon/mine/shared_wp_mine_xg.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(mine) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def barcSpeeder(object, owner): + if owner.getCashCredits() >= 2100000: + owner.setCashCredits(owner.getCashCredits() - 2100000) + core = main.NGECore.getInstance() + barc = core.objectService.createObject('object/tangible/deed/vehicle_deed/shared_barc_speeder_deed.iff', owner.getPlanet()) + barc.setStfFilename('static_item_n') + barc.setStfName('item_deed_barc_rebel_06_01') + barc.setDetailFilename('static_item_d') + barc.setDetailName('item_deed_barc_rebel_06_01') + barc.setIntAttribute('no_trade', 1) + inventory = owner.getSlottedObject('inventory') + inventory.add(barc) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def mediumBlockTurret(object, owner): + if owner.getCashCredits() >= 150000: + owner.setCashCredits(owner.getCashCredits() - 150000) + core = main.NGECore.getInstance() + turret = core.objectService.createObject('object/tangible/deed/faction_perk/turret/shared_block_med_deed.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(turret) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def mediumTowerTurret(object, owner): + if owner.getCashCredits() >= 150000: + owner.setCashCredits(owner.getCashCredits() - 150000) + core = main.NGECore.getInstance() + turret = core.objectService.createObject('object/tangible/deed/faction_perk/turret/shared_tower_med_deed.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(turret) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def hqForwardOutpost(object, owner): + if owner.getCashCredits() >= 525000: + owner.setCashCredits(owner.getCashCredits() - 525000) + core = main.NGECore.getInstance() + hq = core.objectService.createObject('object/tangible/deed/faction_perk/hq/shared_hq_s01.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(hq) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def hqFieldHospital(object, owner): + if owner.getCashCredits() >= 1050000: + owner.setCashCredits(owner.getCashCredits() - 4500000) + core = main.NGECore.getInstance() + hq = core.objectService.createObject('object/tangible/deed/faction_perk/hq/shared_hq_s02.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(hq) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def sfhqForwardOutpost(object, owner): + if owner.getCashCredits() >= 750000: + owner.setCashCredits(owner.getCashCredits() - 750000) + core = main.NGECore.getInstance() + hq = core.objectService.createObject('object/tangible/deed/faction_perk/hq/shared_hq_s01_pvp.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(hq) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def hqTacticalCenter(object, owner): + if owner.getCashCredits() >= 1875000: + owner.setCashCredits(owner.getCashCredits() - 1875000) + core = main.NGECore.getInstance() + hq = core.objectService.createObject('object/tangible/deed/faction_perk/hq/shared_hq_s03.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(hq) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def sfhqTacticalCenter(object, owner): + if owner.getCashCredits() >= 2325000: + owner.setCashCredits(owner.getCashCredits() - 2325000) + core = main.NGECore.getInstance() + hq = core.objectService.createObject('object/tangible/deed/faction_perk/hq/shared_hq_s03_pvp.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(hq) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def sfhqDetachmentHeadquarters(object, owner): + if owner.getCashCredits() >= 4500000: + owner.setCashCredits(owner.getCashCredits() - 4500000) + core = main.NGECore.getInstance() + hq = core.objectService.createObject('object/tangible/deed/faction_perk/hq/shared_hq_s04_pvp.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(hq) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def largeBlockTurret(object, owner): + if owner.getCashCredits() >= 210000: + owner.setCashCredits(owner.getCashCredits() - 210000) + core = main.NGECore.getInstance() + turret = core.objectService.createObject('object/tangible/deed/faction_perk/turret/shared_block_lg_deed.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(turret) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def largeDishTurret(object, owner): + if owner.getCashCredits() >= 210000: + owner.setCashCredits(owner.getCashCredits() - 210000) + core = main.NGECore.getInstance() + turret = core.objectService.createObject('object/tangible/deed/faction_perk/turret/shared_dish_lg_deed.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(turret) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def largeTowerTurret(object, owner): + if owner.getCashCredits() >= 210000: + owner.setCashCredits(owner.getCashCredits() - 210000) + core = main.NGECore.getInstance() + turret = core.objectService.createObject('object/tangible/deed/faction_perk/turret/shared_tower_lg_deed.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(turret) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def specOpsLeggings(object, owner): + if owner.getCashCredits() >= 135000: + owner.setCashCredits(owner.getCashCredits() - 135000) + core = main.NGECore.getInstance() + print ('test1') + leggings = core.objectService.createObject('object/tangible/wearables/armor/rebel_assault/shared_armor_rebel_spec_ops_leggings.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(leggings) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def specOpsBelt(object, owner): + if owner.getCashCredits() >= 112500: + owner.setCashCredits(owner.getCashCredits() - 112500) + core = main.NGECore.getInstance() + belt = core.objectService.createObject('object/tangible/wearables/armor/rebel_assault/shared_armor_rebel_spec_ops_belt.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(belt) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def specOpsBoots(object, owner): + if owner.getCashCredits() >= 120000: + owner.setCashCredits(owner.getCashCredits() - 120000) + core = main.NGECore.getInstance() + boots = core.objectService.createObject('object/tangible/wearables/armor/rebel_assault/shared_armor_rebel_spec_ops_boots.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(boots) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def specOpsLeftBicep(object, owner): + if owner.getCashCredits() >= 120000: + owner.setCashCredits(owner.getCashCredits() - 120000) + core = main.NGECore.getInstance() + bicepl = core.objectService.createObject('object/tangible/wearables/armor/rebel_assault/shared_armor_rebel_spec_ops_bicep_l.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(bicepl) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def specOpsRightBicep(object, owner): + if owner.getCashCredits() >= 120000: + owner.setCashCredits(owner.getCashCredits() - 120000) + core = main.NGECore.getInstance() + bicepr = core.objectService.createObject('object/tangible/wearables/armor/rebel_assault/shared_armor_rebel_spec_ops_bicep_r.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(bicepr) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def specOpsLeftBracer(object, owner): + if owner.getCashCredits() >= 120000: + owner.setCashCredits(owner.getCashCredits() - 120000) + core = main.NGECore.getInstance() + bracerl = core.objectService.createObject('object/tangible/wearables/armor/rebel_assault/shared_armor_rebel_spec_ops_bracer_l.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(bracerl) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def specOpsRightBracer(object, owner): + if owner.getCashCredits() >= 120000: + owner.setCashCredits(owner.getCashCredits() - 120000) + core = main.NGECore.getInstance() + bracerr = core.objectService.createObject('object/tangible/wearables/armor/rebel_assault/shared_armor_rebel_spec_ops_bracer_r.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(bracerr) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def specOpsGloves(object, owner): + if owner.getCashCredits() >= 120000: + owner.setCashCredits(owner.getCashCredits() - 120000) + core = main.NGECore.getInstance() + gloves = core.objectService.createObject('object/tangible/wearables/armor/rebel_assault/shared_armor_rebel_spec_ops_gloves.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(gloves) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def specOpsHelmet(object, owner): + if owner.getCashCredits() >= 150000: + owner.setCashCredits(owner.getCashCredits() - 150000) + core = main.NGECore.getInstance() + helmet = core.objectService.createObject('object/tangible/wearables/armor/rebel_assault/shared_armor_rebel_spec_ops_helmet.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(helmet) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def specOpsChestPlate(object, owner): + if owner.getCashCredits() >= 225000: + owner.setCashCredits(owner.getCashCredits() - 225000) + core = main.NGECore.getInstance() + chest = core.objectService.createObject('object/tangible/wearables/armor/rebel_assault/shared_armor_rebel_spec_ops_chest_plate.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(chest) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def specOpsDyeKit(object, owner): + if owner.getCashCredits() >= 37500: + owner.setCashCredits(owner.getCashCredits() - 37500) + core = main.NGECore.getInstance() + dyekit = core.objectService.createObject('object/tangible/item/shared_pvp_spec_ops_rebel_dye_kit.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(dyekit) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def paintingNeverSurrender(object, owner): + if owner.getCashCredits() >= 375000: + owner.setCashCredits(owner.getCashCredits() - 375000) + core = main.NGECore.getInstance() + painting = core.objectService.createObject('object/tangible/painting/shared_painting_pvp_reward_rebel.iff', owner.getPlanet()) + inventory = owner.getSlottedObject('inventory') + inventory.add(painting) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def crimsonPhoenixMedal(object, owner): + if owner.getCashCredits() >= 240000: + owner.setCashCredits(owner.getCashCredits() - 240000) + core = main.NGECore.getInstance() + necklace = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_deepspace_rebel_f.iff', owner.getPlanet()) + necklace.setStfFilename('static_item_n') + necklace.setStfName('item_pvp_rebel_sergeant_major_medal_03_01') + necklace.setDetailFilename('static_item_d') + necklace.setDetailName('item_pvp_rebel_sergeant_major_medal_03_01') + necklace.setIntAttribute('no_trade', 1) + necklace.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 30) + necklace.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30) + necklace.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 24) + necklace.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 24) + inventory = owner.getSlottedObject('inventory') + inventory.add(necklace) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def factionalBanner(object, owner): + if owner.getCashCredits() >= 80000: + owner.setCashCredits(owner.getCashCredits() - 80000) + core = main.NGECore.getInstance() + banner = core.objectService.createObject('object/tangible/gcw/pvp_rank_rewards/shared_pvp_rebel_battle_banner.iff', owner.getPlanet()) + banner.setIntAttribute('no_trade', 1) + inventory = owner.getSlottedObject('inventory') + inventory.add(banner) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def colonelRing(object, owner): + if owner.getCashCredits() >= 2800000: + owner.setCashCredits(owner.getCashCredits() - 2800000) + core = main.NGECore.getInstance() + ring = core.objectService.createObject('object/tangible/wearables/ring/shared_ring_s03.iff', owner.getPlanet()) + ring.setStfFilename('static_item_n') + ring.setStfName('item_pvp_rebel_colonel_signet_ring_05_01') + ring.setDetailFilename('static_item_d') + ring.setDetailName('item_pvp_rebel_colonel_signet_ring_05_01') + ring.setIntAttribute('no_trade', 1) + ring.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 24) + ring.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 60) + ring.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 24) + ring.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 24) + inventory = owner.getSlottedObject('inventory') + inventory.add(ring) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def laserCarbine(object, owner): + if owner.getCashCredits() >= 187500: + owner.setCashCredits(owner.getCashCredits() - 187500) + core = main.NGECore.getInstance() + carbine = core.objectService.createObject('object/weapon/ranged/carbine/shared_carbine_laser.iff', owner.getPlanet()) + carbine.setAttackSpeed(0.6) + carbine.setMaxRange(50) + carbine.setDamageType("energy") + carbine.setMinDamage(350) + carbine.setMaxDamage(700) + carbine.setWeaponType(1) + inventory = owner.getSlottedObject('inventory') + inventory.add(carbine) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def scoutPistol(object, owner): + if owner.getCashCredits() >= 40500: + owner.setCashCredits(owner.getCashCredits() - 40500) + core = main.NGECore.getInstance() + pistol = core.objectService.createObject('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', owner.getPlanet()) + pistol.setAttackSpeed(0.4) + pistol.setMaxRange(35); + pistol.setDamageType("kinetic"); + pistol.setMinDamage(80); + pistol.setMaxDamage(130); + pistol.setWeaponType(2); + inventory = owner.getSlottedObject('inventory') + inventory.add(pistol) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def metalStaff(object, owner): + if owner.getCashCredits() >= 30000: + owner.setCashCredits(owner.getCashCredits() - 30000) + core = main.NGECore.getInstance() + staff = core.objectService.createObject('object/weapon/melee/polearm/shared_lance_staff_metal.iff', owner.getPlanet()) + staff.setAttackSpeed(1.0); + staff.setMaxRange(35); + staff.setDamageType("kinetic"); + staff.setMinDamage(300); + staff.setMaxDamage(400); + staff.setWeaponType(2); + inventory = owner.getSlottedObject('inventory') + inventory.add(staff) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def windusGuile(object, owner): + if owner.getCashCredits() >= 2000000: + owner.setCashCredits(owner.getCashCredits() - 2000000) + core = main.NGECore.getInstance() + windu = core.objectService.createObject('object/tangible/component/weapon/lightsaber/shared_lightsaber_module_force_crystal.iff', owner.getPlanet()) + windu.setCustomizationVariable('/private/index_color_1', 20) + windu.setStfFilename('static_item_n') + windu.setStfName('item_color_crystal_02_20') + windu.setDetailFilename('static_item_d') + windu.setDetailName('item_color_crystal_02_20') + windu.setIntAttribute('no_trade', 1) + windu.setStringAttribute('condition', '1000/1000') + windu.getAttributes().put("@obj_attr_n:color", "Windu's Guile") + windu.setAttachment('radial_filename', 'item/tunable') + inventory = owner.getSlottedObject('inventory') + inventory.add(windu) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def exceptionalPistol(object, owner): + if owner.getCashCredits() >= 200000: + owner.setCashCredits(owner.getCashCredits() - 200000) + core = main.NGECore.getInstance() + core.scriptService.callScript("scripts/object/weapon/ranged/pistol/", "exceptional_pistol_rebel", "exceptionalPistol", core, object, owner); + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def starlightCarbine(object, owner): + if owner.getCashCredits() >= 200000: + owner.setCashCredits(owner.getCashCredits() - 200000) + core = main.NGECore.getInstance() + carbine = core.objectService.createObject('object/weapon/ranged/carbine/shared_carbine_pvp.iff', owner.getPlanet()) + carbine.setStringAttribute('faction_restriction', 'Rebel') + inventory = owner.getSlottedObject('inventory') + inventory.add(carbine) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def crimsonNova(object, owner): + if owner.getCashCredits() >= 200000: + owner.setCashCredits(owner.getCashCredits() - 200000) + core = main.NGECore.getInstance() + nova = core.objectService.createObject('object/weapon/ranged/pistol/shared_pistol_pvp.iff', owner.getPlanet()) + nova.setStringAttribute('faction_restriction', 'Rebel') + inventory = owner.getSlottedObject('inventory') + inventory.add(nova) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def vortexRifle(object, owner): + if owner.getCashCredits() >= 200000: + owner.setCashCredits(owner.getCashCredits() - 200000) + core = main.NGECore.getInstance() + rifle = core.objectService.createObject('object/weapon/ranged/rifle/shared_rifle_pvp.iff', owner.getPlanet()) + rifle.setStringAttribute('faction_restriction', 'Rebel') + inventory = owner.getSlottedObject('inventory') + inventory.add(rifle) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return + +def reaperCannon(object, owner): + if owner.getCashCredits() >= 200000: + owner.setCashCredits(owner.getCashCredits() - 200000) + core = main.NGECore.getInstance() + cannon = core.objectService.createObject('object/weapon/ranged/heavy/shared_heavy_pvp.iff', owner.getPlanet()) + cannon.setStringAttribute('faction_restriction', 'Rebel') + inventory = owner.getSlottedObject('inventory') + inventory.add(cannon) + elif owner.sendSystemMessage('You do not have enough credits to purchase this item.', 0): + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/dewall_paez.py b/scripts/mobiles/tatooine/dewall_paez.py new file mode 100644 index 00000000..3d5ce97b --- /dev/null +++ b/scripts/mobiles/tatooine/dewall_paez.py @@ -0,0 +1,41 @@ +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('tatooine_wayfar_spy_leader') + mobileTemplate.setLevel(19) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(False) + mobileTemplate.setScale(1) + mobileTemplate.setSocialGroup("wayfar spy") + mobileTemplate.setAssistRange(3) + mobileTemplate.setStalker(False) + #mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + + + templates = Vector() + templates.add('object/mobile/shared_tatooine_wayfar_spies_dewall_paez.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', WeaponType.PISTOL, 1.0, 15, 'energy') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('rangedShotpistol') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('dewall_paez', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/dwarf_eopie.py b/scripts/mobiles/tatooine/dwarf_eopie.py index 6f4c3a33..c6ec9210 100644 --- a/scripts/mobiles/tatooine/dwarf_eopie.py +++ b/scripts/mobiles/tatooine/dwarf_eopie.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('dwarf_eopie') mobileTemplate.setLevel(1) - mobileTemplate.setMinLevel(1) - mobileTemplate.setMaxLevel(3) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/dwarf_nuna.py b/scripts/mobiles/tatooine/dwarf_nuna.py index 0883822e..cf36c3f0 100644 --- a/scripts/mobiles/tatooine/dwarf_nuna.py +++ b/scripts/mobiles/tatooine/dwarf_nuna.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('dwarf_nuna') mobileTemplate.setLevel(1) - mobileTemplate.setMinLevel(1) - mobileTemplate.setMaxLevel(3) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/elder_zucca_boar.py b/scripts/mobiles/tatooine/elder_zucca_boar.py index d50d45c1..d0d0989d 100644 --- a/scripts/mobiles/tatooine/elder_zucca_boar.py +++ b/scripts/mobiles/tatooine/elder_zucca_boar.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('zucca_boar_elder') mobileTemplate.setLevel(8) - mobileTemplate.setMinLevel(8) - mobileTemplate.setMaxLevel(9) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/elite_dewback_cannibal.py b/scripts/mobiles/tatooine/elite_dewback_cannibal.py index d9337d98..59833596 100644 --- a/scripts/mobiles/tatooine/elite_dewback_cannibal.py +++ b/scripts/mobiles/tatooine/elite_dewback_cannibal.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('elite_dewback_canibal') mobileTemplate.setLevel(13) - mobileTemplate.setMinLevel(13) - mobileTemplate.setMaxLevel(15) mobileTemplate.setDifficulty(Difficulty.ELITE) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/elite_dragonet.py b/scripts/mobiles/tatooine/elite_dragonet.py index ab299be4..998d8d57 100644 --- a/scripts/mobiles/tatooine/elite_dragonet.py +++ b/scripts/mobiles/tatooine/elite_dragonet.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('elite_dragonet') mobileTemplate.setLevel(24) - mobileTemplate.setMinLevel(24) - mobileTemplate.setMaxLevel(26) mobileTemplate.setDifficulty(Difficulty.ELITE) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/elite_dune_lizard.py b/scripts/mobiles/tatooine/elite_dune_lizard.py index 4cdf1478..7fb4bfad 100644 --- a/scripts/mobiles/tatooine/elite_dune_lizard.py +++ b/scripts/mobiles/tatooine/elite_dune_lizard.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('elite_dune_lizard') mobileTemplate.setLevel(18) - mobileTemplate.setMinLevel(18) - mobileTemplate.setMaxLevel(19) mobileTemplate.setDifficulty(Difficulty.ELITE) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/elite_giant_sand_beetle.py b/scripts/mobiles/tatooine/elite_giant_sand_beetle.py index 1b1c5d34..b2b46f26 100644 --- a/scripts/mobiles/tatooine/elite_giant_sand_beetle.py +++ b/scripts/mobiles/tatooine/elite_giant_sand_beetle.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('elite_giant_sand_beetle') mobileTemplate.setLevel(25) - mobileTemplate.setMinLevel(25) - mobileTemplate.setMaxLevel(26) mobileTemplate.setDifficulty(Difficulty.ELITE) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/elite_mutant_womprat.py b/scripts/mobiles/tatooine/elite_mutant_womprat.py index d3029f5d..dbd81cd2 100644 --- a/scripts/mobiles/tatooine/elite_mutant_womprat.py +++ b/scripts/mobiles/tatooine/elite_mutant_womprat.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('elite_mutant_womprat') mobileTemplate.setLevel(12) - mobileTemplate.setMinLevel(12) - mobileTemplate.setMaxLevel(14) mobileTemplate.setDifficulty(Difficulty.ELITE) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/elite_ronto.py b/scripts/mobiles/tatooine/elite_ronto.py index ee2c9c85..f008f8a7 100644 --- a/scripts/mobiles/tatooine/elite_ronto.py +++ b/scripts/mobiles/tatooine/elite_ronto.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('elite_ronto_ronto') mobileTemplate.setLevel(17) - mobileTemplate.setMinLevel(17) - mobileTemplate.setMaxLevel(18) mobileTemplate.setDifficulty(Difficulty.ELITE) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/elite_scyk.py b/scripts/mobiles/tatooine/elite_scyk.py index 7108f0ba..07ffc9e3 100644 --- a/scripts/mobiles/tatooine/elite_scyk.py +++ b/scripts/mobiles/tatooine/elite_scyk.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('elite_scyk') mobileTemplate.setLevel(11) - mobileTemplate.setMinLevel(11) - mobileTemplate.setMaxLevel(13) mobileTemplate.setDifficulty(Difficulty.ELITE) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/elite_sevorrt.py b/scripts/mobiles/tatooine/elite_sevorrt.py index c8c5d222..a26f2486 100644 --- a/scripts/mobiles/tatooine/elite_sevorrt.py +++ b/scripts/mobiles/tatooine/elite_sevorrt.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('elite_sevorrt') mobileTemplate.setLevel(8) - mobileTemplate.setMinLevel(8) - mobileTemplate.setMaxLevel(9) mobileTemplate.setDifficulty(Difficulty.ELITE) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/enraged_mountain_dewback.py b/scripts/mobiles/tatooine/enraged_mountain_dewback.py index ddc0331a..77817e69 100644 --- a/scripts/mobiles/tatooine/enraged_mountain_dewback.py +++ b/scripts/mobiles/tatooine/enraged_mountain_dewback.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('elite_mountain_dewback') mobileTemplate.setLevel(22) - mobileTemplate.setMinLevel(22) - mobileTemplate.setMaxLevel(23) mobileTemplate.setDifficulty(Difficulty.ELITE) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/enraged_squill.py b/scripts/mobiles/tatooine/enraged_squill.py index cbebd009..100753f3 100644 --- a/scripts/mobiles/tatooine/enraged_squill.py +++ b/scripts/mobiles/tatooine/enraged_squill.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('elite_squill') mobileTemplate.setLevel(12) - mobileTemplate.setMinLevel(12) - mobileTemplate.setMaxLevel(14) mobileTemplate.setDifficulty(Difficulty.ELITE) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/eoni.py b/scripts/mobiles/tatooine/eoni.py index b2011903..f37f9c32 100644 --- a/scripts/mobiles/tatooine/eoni.py +++ b/scripts/mobiles/tatooine/eoni.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('elite_jundland_eopie') mobileTemplate.setLevel(21) - mobileTemplate.setMinLevel(21) - mobileTemplate.setMaxLevel(22) mobileTemplate.setDifficulty(Difficulty.ELITE) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/eopie.py b/scripts/mobiles/tatooine/eopie.py index 64f01e2c..eb46866b 100644 --- a/scripts/mobiles/tatooine/eopie.py +++ b/scripts/mobiles/tatooine/eopie.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('eopie') mobileTemplate.setLevel(4) - mobileTemplate.setMinLevel(4) - mobileTemplate.setMaxLevel(5) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/eopie_herdmaster.py b/scripts/mobiles/tatooine/eopie_herdmaster.py index 0097740e..50c118b1 100644 --- a/scripts/mobiles/tatooine/eopie_herdmaster.py +++ b/scripts/mobiles/tatooine/eopie_herdmaster.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('eopie_herdmaster') mobileTemplate.setLevel(5) - mobileTemplate.setMinLevel(5) - mobileTemplate.setMaxLevel(6) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/female_mountain_squill.py b/scripts/mobiles/tatooine/female_mountain_squill.py index e890a788..5927dc48 100644 --- a/scripts/mobiles/tatooine/female_mountain_squill.py +++ b/scripts/mobiles/tatooine/female_mountain_squill.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('female_mountain_squill') mobileTemplate.setLevel(7) - mobileTemplate.setMinLevel(7) - mobileTemplate.setMaxLevel(9) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/feral_bantha.py b/scripts/mobiles/tatooine/feral_bantha.py index 13eb1199..bb1a10eb 100644 --- a/scripts/mobiles/tatooine/feral_bantha.py +++ b/scripts/mobiles/tatooine/feral_bantha.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('feral_bantha') mobileTemplate.setLevel(5) - mobileTemplate.setMinLevel(5) - mobileTemplate.setMaxLevel(6) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/furios_ronto.py b/scripts/mobiles/tatooine/furios_ronto.py index 36cbf779..6990ed37 100644 --- a/scripts/mobiles/tatooine/furios_ronto.py +++ b/scripts/mobiles/tatooine/furios_ronto.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('ronto_furious') mobileTemplate.setLevel(18) - mobileTemplate.setMinLevel(18) - mobileTemplate.setMaxLevel(19) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/giant_canyon_krayt_dragon.py b/scripts/mobiles/tatooine/giant_canyon_krayt_dragon.py index adc875fb..1ec39852 100644 --- a/scripts/mobiles/tatooine/giant_canyon_krayt_dragon.py +++ b/scripts/mobiles/tatooine/giant_canyon_krayt_dragon.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('giant_canyon_krayt_dragon') mobileTemplate.setLevel(87) - mobileTemplate.setMinLevel(80) - mobileTemplate.setMaxLevel(89) mobileTemplate.setDifficulty(Difficulty.BOSS) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/giant_sand_beetle.py b/scripts/mobiles/tatooine/giant_sand_beetle.py index d0161f7b..e61b0ffc 100644 --- a/scripts/mobiles/tatooine/giant_sand_beetle.py +++ b/scripts/mobiles/tatooine/giant_sand_beetle.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('giant_sand_beetle') mobileTemplate.setLevel(25) - mobileTemplate.setMinLevel(25) - mobileTemplate.setMaxLevel(26) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/giant_worrt.py b/scripts/mobiles/tatooine/giant_worrt.py index 8e5b9e9b..9ca06dc1 100644 --- a/scripts/mobiles/tatooine/giant_worrt.py +++ b/scripts/mobiles/tatooine/giant_worrt.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('giant_worrt') mobileTemplate.setLevel(13) - mobileTemplate.setMinLevel(13) - mobileTemplate.setMaxLevel(15) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/gorg.py b/scripts/mobiles/tatooine/gorg.py index eb2767e2..a4d4d17d 100644 --- a/scripts/mobiles/tatooine/gorg.py +++ b/scripts/mobiles/tatooine/gorg.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('gorg') mobileTemplate.setLevel(2) - mobileTemplate.setMinLevel(1) - mobileTemplate.setMaxLevel(3) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/gorg_glutton.py b/scripts/mobiles/tatooine/gorg_glutton.py index 25c0a54d..c8d0cfd6 100644 --- a/scripts/mobiles/tatooine/gorg_glutton.py +++ b/scripts/mobiles/tatooine/gorg_glutton.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('gorg_glutton') mobileTemplate.setLevel(2) - mobileTemplate.setMinLevel(1) - mobileTemplate.setMaxLevel(3) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/grand_krayt_dragon.py b/scripts/mobiles/tatooine/grand_krayt_dragon.py index aa0b2a3f..c5010229 100644 --- a/scripts/mobiles/tatooine/grand_krayt_dragon.py +++ b/scripts/mobiles/tatooine/grand_krayt_dragon.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('krayt_dragon_grand') mobileTemplate.setLevel(87) - mobileTemplate.setMinLevel(80) - mobileTemplate.setMaxLevel(89) mobileTemplate.setDifficulty(Difficulty.BOSS) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/great_squill.py b/scripts/mobiles/tatooine/great_squill.py index b8aec65c..b395dd07 100644 --- a/scripts/mobiles/tatooine/great_squill.py +++ b/scripts/mobiles/tatooine/great_squill.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('squill_great') mobileTemplate.setLevel(13) - mobileTemplate.setMinLevel(13) - mobileTemplate.setMaxLevel(14) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/greater_desert_womprat.py b/scripts/mobiles/tatooine/greater_desert_womprat.py index ac10b567..bd392a6d 100644 --- a/scripts/mobiles/tatooine/greater_desert_womprat.py +++ b/scripts/mobiles/tatooine/greater_desert_womprat.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('greater_desert_womprat') mobileTemplate.setLevel(12) - mobileTemplate.setMinLevel(11) - mobileTemplate.setMaxLevel(14) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/grizzled_dewback.py b/scripts/mobiles/tatooine/grizzled_dewback.py index 0f560f48..4d370737 100644 --- a/scripts/mobiles/tatooine/grizzled_dewback.py +++ b/scripts/mobiles/tatooine/grizzled_dewback.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('grizzled_dewback') mobileTemplate.setLevel(18) - mobileTemplate.setMinLevel(17) - mobileTemplate.setMaxLevel(19) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/harmony_worrt.py b/scripts/mobiles/tatooine/harmony_worrt.py index b77546a5..a09ea080 100644 --- a/scripts/mobiles/tatooine/harmony_worrt.py +++ b/scripts/mobiles/tatooine/harmony_worrt.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('harmony_worrt') mobileTemplate.setLevel(18) - mobileTemplate.setMinLevel(17) - mobileTemplate.setMaxLevel(19) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/jundland_eopie.py b/scripts/mobiles/tatooine/jundland_eopie.py index 6fef1f32..e7e6ee82 100644 --- a/scripts/mobiles/tatooine/jundland_eopie.py +++ b/scripts/mobiles/tatooine/jundland_eopie.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('jundland_eopie') mobileTemplate.setLevel(21) - mobileTemplate.setMinLevel(19) - mobileTemplate.setMaxLevel(23) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/junk_battle_droid.py b/scripts/mobiles/tatooine/junk_battle_droid.py index 0b9ecf3c..42ee2cbc 100644 --- a/scripts/mobiles/tatooine/junk_battle_droid.py +++ b/scripts/mobiles/tatooine/junk_battle_droid.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('tatooine_lin_demolitionmech') mobileTemplate.setLevel(14) - mobileTemplate.setMinLevel(13) - mobileTemplate.setMaxLevel(15) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/juvenile_canyon_krayt_dragon.py b/scripts/mobiles/tatooine/juvenile_canyon_krayt_dragon.py index f5c2b1b1..8d216c83 100644 --- a/scripts/mobiles/tatooine/juvenile_canyon_krayt_dragon.py +++ b/scripts/mobiles/tatooine/juvenile_canyon_krayt_dragon.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('juvenile_canyon_krayt') mobileTemplate.setLevel(82) - mobileTemplate.setMinLevel(78) - mobileTemplate.setMaxLevel(83) mobileTemplate.setDifficulty(Difficulty.BOSS) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/krayt_dragon.py b/scripts/mobiles/tatooine/krayt_dragon.py index 43fc3d2d..5c2bcc3c 100644 --- a/scripts/mobiles/tatooine/krayt_dragon.py +++ b/scripts/mobiles/tatooine/krayt_dragon.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('krayt_dragon') mobileTemplate.setLevel(82) - mobileTemplate.setMinLevel(78) - mobileTemplate.setMaxLevel(83) mobileTemplate.setDifficulty(Difficulty.BOSS) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/krayt_dragon_ancient.py b/scripts/mobiles/tatooine/krayt_dragon_ancient.py index 7822d210..6c428173 100644 --- a/scripts/mobiles/tatooine/krayt_dragon_ancient.py +++ b/scripts/mobiles/tatooine/krayt_dragon_ancient.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('krayt_dragon_ancient') mobileTemplate.setLevel(90) - mobileTemplate.setMinLevel(89) - mobileTemplate.setMaxLevel(90) mobileTemplate.setDifficulty(Difficulty.BOSS) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/kreetle.py b/scripts/mobiles/tatooine/kreetle.py index 548e4da6..ed6bc6aa 100644 --- a/scripts/mobiles/tatooine/kreetle.py +++ b/scripts/mobiles/tatooine/kreetle.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('kreetle') mobileTemplate.setLevel(5) - mobileTemplate.setMinLevel(4) - mobileTemplate.setMaxLevel(6) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/kreetle_swarmling.py b/scripts/mobiles/tatooine/kreetle_swarmling.py index 4532284e..a4a55458 100644 --- a/scripts/mobiles/tatooine/kreetle_swarmling.py +++ b/scripts/mobiles/tatooine/kreetle_swarmling.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('kreetle_swarming') mobileTemplate.setLevel(1) - mobileTemplate.setMinLevel(1) - mobileTemplate.setMaxLevel(3) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/large_cave_beetle.py b/scripts/mobiles/tatooine/large_cave_beetle.py index 02167d4e..27e080e4 100644 --- a/scripts/mobiles/tatooine/large_cave_beetle.py +++ b/scripts/mobiles/tatooine/large_cave_beetle.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('large_cave_beetle') mobileTemplate.setLevel(21) - mobileTemplate.setMinLevel(21) - mobileTemplate.setMaxLevel(23) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/large_rock_beetle1.py b/scripts/mobiles/tatooine/large_rock_beetle1.py index 818eed47..759813b0 100644 --- a/scripts/mobiles/tatooine/large_rock_beetle1.py +++ b/scripts/mobiles/tatooine/large_rock_beetle1.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('large_rock_beetle') mobileTemplate.setLevel(18) - mobileTemplate.setMinLevel(17) - mobileTemplate.setMaxLevel(18) mobileTemplate.setDifficulty(Difficulty.ELITE) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/large_rock_beetle2.py b/scripts/mobiles/tatooine/large_rock_beetle2.py index 94b9e666..c75f348e 100644 --- a/scripts/mobiles/tatooine/large_rock_beetle2.py +++ b/scripts/mobiles/tatooine/large_rock_beetle2.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('large_rock_beetle') mobileTemplate.setLevel(19) - mobileTemplate.setMinLevel(18) - mobileTemplate.setMaxLevel(20) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/large_rock_beetle3.py b/scripts/mobiles/tatooine/large_rock_beetle3.py index d4aec4e8..7dc3d1b5 100644 --- a/scripts/mobiles/tatooine/large_rock_beetle3.py +++ b/scripts/mobiles/tatooine/large_rock_beetle3.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('large_rock_beetle') mobileTemplate.setLevel(19) - mobileTemplate.setMinLevel(18) - mobileTemplate.setMaxLevel(20) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/large_sand_beetle.py b/scripts/mobiles/tatooine/large_sand_beetle.py index 78ddb755..8cecb782 100644 --- a/scripts/mobiles/tatooine/large_sand_beetle.py +++ b/scripts/mobiles/tatooine/large_sand_beetle.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('large_sand_beetle') mobileTemplate.setLevel(24) - mobileTemplate.setMinLevel(22) - mobileTemplate.setMaxLevel(25) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/lesser_bocatt.py b/scripts/mobiles/tatooine/lesser_bocatt.py index f4fb3c9c..1a5a4a75 100644 --- a/scripts/mobiles/tatooine/lesser_bocatt.py +++ b/scripts/mobiles/tatooine/lesser_bocatt.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('lesser_bocatt') mobileTemplate.setLevel(14) - mobileTemplate.setMinLevel(13) - mobileTemplate.setMaxLevel(15) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/lesser_desert_womprat.py b/scripts/mobiles/tatooine/lesser_desert_womprat.py index bc893cc5..04b220fe 100644 --- a/scripts/mobiles/tatooine/lesser_desert_womprat.py +++ b/scripts/mobiles/tatooine/lesser_desert_womprat.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('lesser_desert_womprat') mobileTemplate.setLevel(4) - mobileTemplate.setMinLevel(3) - mobileTemplate.setMaxLevel(5) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/minor_worrt.py b/scripts/mobiles/tatooine/minor_worrt.py index 04eab9e4..3572c732 100644 --- a/scripts/mobiles/tatooine/minor_worrt.py +++ b/scripts/mobiles/tatooine/minor_worrt.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('minor_worrt') mobileTemplate.setLevel(3) - mobileTemplate.setMinLevel(2) - mobileTemplate.setMaxLevel(4) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/mound_mite.py b/scripts/mobiles/tatooine/mound_mite.py index b4ae2aff..01ac0d32 100644 --- a/scripts/mobiles/tatooine/mound_mite.py +++ b/scripts/mobiles/tatooine/mound_mite.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('mound_mite') mobileTemplate.setLevel(4) - mobileTemplate.setMinLevel(4) - mobileTemplate.setMaxLevel(7) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/mountain_dewback.py b/scripts/mobiles/tatooine/mountain_dewback.py index 478e841e..67dfbdef 100644 --- a/scripts/mobiles/tatooine/mountain_dewback.py +++ b/scripts/mobiles/tatooine/mountain_dewback.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('mountain_dewback') mobileTemplate.setLevel(22) - mobileTemplate.setMinLevel(21) - mobileTemplate.setMaxLevel(23) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/mountain_worrt.py b/scripts/mobiles/tatooine/mountain_worrt.py index ce1ad51f..ba9c6e84 100644 --- a/scripts/mobiles/tatooine/mountain_worrt.py +++ b/scripts/mobiles/tatooine/mountain_worrt.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('mountain_worrt') mobileTemplate.setLevel(19) - mobileTemplate.setMinLevel(18) - mobileTemplate.setMaxLevel(21) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/mutant_womprat.py b/scripts/mobiles/tatooine/mutant_womprat.py index 66085d99..0b260590 100644 --- a/scripts/mobiles/tatooine/mutant_womprat.py +++ b/scripts/mobiles/tatooine/mutant_womprat.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('mutant_womprat') mobileTemplate.setLevel(12) - mobileTemplate.setMinLevel(11) - mobileTemplate.setMaxLevel(13) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/overkreetle.py b/scripts/mobiles/tatooine/overkreetle.py index 6ad553ea..4fae31dd 100644 --- a/scripts/mobiles/tatooine/overkreetle.py +++ b/scripts/mobiles/tatooine/overkreetle.py @@ -12,8 +12,6 @@ def addTemplate(core): mobileTemplate.setCreatureName('kreetle_over') mobileTemplate.setLevel(11) - mobileTemplate.setMinLevel(10) - mobileTemplate.setMaxLevel(12) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/wayfar_spy.py b/scripts/mobiles/tatooine/wayfar_spy.py new file mode 100644 index 00000000..1d980f3f --- /dev/null +++ b/scripts/mobiles/tatooine/wayfar_spy.py @@ -0,0 +1,50 @@ +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('tatooine_wayfar_spy') + mobileTemplate.setLevel(19) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(False) + mobileTemplate.setScale(1) + mobileTemplate.setSocialGroup("wayfar spy") + mobileTemplate.setAssistRange(3) + mobileTemplate.setStalker(False) + #mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + + + templates = Vector() + templates.add('object/mobile/shared_moncal_male.iff') + templates.add('object/mobile/shared_moncal_female.iff') + templates.add('object/mobile/shared_rodian_male.iff') + templates.add('object/mobile/shared_rofian_female.iff') + templates.add('object/mobile/shared_zabrak_male.iff') + templates.add('object/mobile/shared_zabrak_female.iff') + templates.add('object/mobile/shared_human_male.iff') + templates.add('object/mobile/shared_human_female.iff') + templates.add('object/mobile/shared_sullustan_male.iff') + templates.add('object/mobile/shared_sullustan_female.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', WeaponType.PISTOL, 1.0, 15, 'energy') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('rangedShotpistol') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('wayfar_spy', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/object/intangible/vehicle/barc_speeder_rebel_pcd.py b/scripts/object/intangible/vehicle/barc_speeder_rebel_pcd.py index ccad8904..140a663d 100644 --- a/scripts/object/intangible/vehicle/barc_speeder_rebel_pcd.py +++ b/scripts/object/intangible/vehicle/barc_speeder_rebel_pcd.py @@ -1,4 +1,17 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'datapad/vehicle_pcd') + object.setIntAttribute('no_trade', 1) + object.setStringAttribute('faction_restriction', 'Rebel') + return + +def use(core, actor, object): + if object and actor.getAttachment('activeVehicleID') == None: + barc = core.objectService.createObject('object/mobile/vehicle/shared_barc_speeder_rebel.iff', 0, actor.getPlanet(), actor.getPosition(), actor.getOrientation()) + + barc.setOwnerId(actor.getObjectID()) + actor.setAttachment('activeVehicleID', barc.getObjectID()) + + core.simulationService.add(barc, barc.getPosition().x, barc.getPosition().z, True) return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/barc_speeder_rebel.py b/scripts/object/mobile/vehicle/barc_speeder_rebel.py index 402fab24..5713d540 100644 --- a/scripts/object/mobile/vehicle/barc_speeder_rebel.py +++ b/scripts/object/mobile/vehicle/barc_speeder_rebel.py @@ -1,8 +1,16 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return def use(core, actor, object): - core.buffService.addBuffToCreature(object, 'vehicle_pvp_barc_rebel', object) + vehicle = actor.getContainer() + + if vehicle: + if vehicle.getObjectID() == object.getObjectID(): + vehicle.remove(actor) + else: + vehicle.add(actor) + return \ No newline at end of file diff --git a/scripts/object/tangible/collection/rare_pistol_blackfalcon.py b/scripts/object/tangible/collection/rare_pistol_blackfalcon.py index 421ffda3..163da641 100644 --- a/scripts/object/tangible/collection/rare_pistol_blackfalcon.py +++ b/scripts/object/tangible/collection/rare_pistol_blackfalcon.py @@ -1,7 +1,6 @@ import sys def setup(core, object): - print ('test') object.setAttachment('CollectionItemName', 'blackfalcon_01') object.setAttachment('radial_filename', 'item/world_collection') return diff --git a/scripts/object/tangible/deed/vehicle_deed/barc_speeder_deed.py b/scripts/object/tangible/deed/vehicle_deed/barc_speeder_deed.py index af21fb67..17638f96 100644 --- a/scripts/object/tangible/deed/vehicle_deed/barc_speeder_deed.py +++ b/scripts/object/tangible/deed/vehicle_deed/barc_speeder_deed.py @@ -1,24 +1,40 @@ import sys def setup(core, object): - object.setAttachment('radial_filename', 'vehicleDeed') + object.setAttachment('radial_filename', 'deeds/vehicleDeed') return def use(core, actor, object): - datapad = actor.getSlottedObject('datapad') - pcd = core.objectService.createObject('object/intangible/vehicle/shared_barc_speeder_pcd.iff', actor.getPlanet(), actor.getPosition().x, actor.getPosition().z,actor.getPosition().y) + if object.getStfName() == ('barc_speeder'): + datapad = actor.getSlottedObject('datapad') + pcd = core.objectService.createObject('object/intangible/vehicle/shared_barc_speeder_pcd.iff', actor.getPlanet(), actor.getPosition().x, actor.getPosition().z,actor.getPosition().y) - if datapad and pcd: + if datapad and pcd: - datapad.add(pcd) - core.objectService.destroyObject(object) + datapad.add(pcd) + core.objectService.destroyObject(object) - vehicleId = actor.getAttachment('activeVehicleID') + vehicleId = actor.getAttachment('activeVehicleID') if vehicleId == None: vehicle = core.objectService.createObject('object/mobile/vehicle/shared_barc_speeder.iff', actor.getPlanet(), actor.getPosition().x, actor.getPosition().z,actor.getPosition().y) vehicle.setOwnerId(actor.getObjectID()) core.simulationService.add(vehicle, vehicle.getPosition().x, vehicle.getPosition().z, True) actor.setAttachment('activeVehicleID', vehicle.getObjectID()) + elif object.getStfName() == ('item_deed_barc_rebel_06_01'): + datapad = actor.getSlottedObject('datapad') + pcd = core.objectService.createObject('object/intangible/vehicle/shared_barc_speeder_rebel_pcd.iff', actor.getPlanet(), actor.getPosition().x, actor.getPosition().z,actor.getPosition().y) + + if datapad and pcd: + datapad.add(pcd) + core.objectService.destroyObject(object) + + vehicleId = actor.getAttachment('activeVehicleID') + + if vehicleId == None: + vehicle = core.objectService.createObject('object/mobile/vehicle/shared_barc_speeder_rebel.iff', actor.getPlanet(), actor.getPosition().x, actor.getPosition().z,actor.getPosition().y) + vehicle.setOwnerId(actor.getObjectID()) + core.simulationService.add(vehicle, vehicle.getPosition().x, vehicle.getPosition().z, True) + actor.setAttachment('activeVehicleID', vehicle.getObjectID()) return \ No newline at end of file diff --git a/scripts/object/tangible/gcw/gcw_invasion_binoculars_01.py b/scripts/object/tangible/gcw/gcw_invasion_binoculars_01.py index ccad8904..02df443d 100644 --- a/scripts/object/tangible/gcw/gcw_invasion_binoculars_01.py +++ b/scripts/object/tangible/gcw/gcw_invasion_binoculars_01.py @@ -1,4 +1,14 @@ import sys def setup(core, object): - return \ No newline at end of file + object.setIntAttribute('no_trade', 1) + object.setAttachment('radial_filename', 'object/usable') + object.setStfFilename('static_item_n') + object.setStfName('invasion_gcw_binoculars_01_01') + object.setDetailFilename('static_item_d') + object.setDetailName('invasion_gcw_binoculars_01_01') + return + +def use(core, actor, object): + core.buffService.addBuffToCreature(actor, 'gcw_invasion_binoculars', actor) + return diff --git a/scripts/object/tangible/loot/generic_usable/binoculars_s1_generic.py b/scripts/object/tangible/loot/generic_usable/binoculars_s1_generic.py index ccad8904..9124f885 100644 --- a/scripts/object/tangible/loot/generic_usable/binoculars_s1_generic.py +++ b/scripts/object/tangible/loot/generic_usable/binoculars_s1_generic.py @@ -1,4 +1,10 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'object/usable') + return + +def use(core, actor, object): + if object.getStfName() == ('item_consumable_detect_hidden_02_04'): + core.buffService.addBuffToCreature(actor, 'detectHiddenConsumable100', actor) return \ No newline at end of file diff --git a/scripts/object/tangible/loot/generic_usable/binoculars_s2_generic.py b/scripts/object/tangible/loot/generic_usable/binoculars_s2_generic.py index ccad8904..c3102575 100644 --- a/scripts/object/tangible/loot/generic_usable/binoculars_s2_generic.py +++ b/scripts/object/tangible/loot/generic_usable/binoculars_s2_generic.py @@ -1,4 +1,14 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'object/usable') + return + +def use(core, actor, object): + if object.getStfName() == ('item_consumable_detect_hidden_02_01'): + core.buffService.addBuffToCreature(actor, 'detectHiddenConsumable20', actor) + elif object.getStfName() == ('item_consumable_detect_hidden_02_02'): + core.buffService.addBuffToCreature(actor, 'detectHiddenConsumable40', actor) + elif object.getStfName() == ('item_consumable_detect_hidden_02_03'): + core.buffService.addBuffToCreature(actor, 'detectHiddenConsumable65', actor) return \ No newline at end of file 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 dd6a2c0b..2033534c 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 @@ -1,9 +1,14 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'object/usable') object.setStfFilename('static_item_n') object.setStfName('item_entertainer_clicky_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_entertainer_clicky_01_02') object.setStringAttribute('class_required', 'Entertainer') return + +def use(core, actor, object): + core.buffService.addBuffToCreature(actor, 'roadmapEntertainerClicky', actor) + 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 a9a7e24b..8567c5f0 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 @@ -1,9 +1,13 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'object/usable') object.setStfFilename('static_item_n') object.setStfName('item_medic_clicky_01_02') object.setDetailFilename('static_item_d') object.setDetailName('item_medic_clicky_01_02') object.setStringAttribute('class_required', 'Medic') return +def use(core, actor, object): + core.buffService.addBuffToCreature(actor, 'roadmapMedicClicky', actor) + return diff --git a/scripts/object/tangible/painting/painting_pvp_reward_rebel.py b/scripts/object/tangible/painting/painting_pvp_reward_rebel.py index 2113f9c2..5845be66 100644 --- a/scripts/object/tangible/painting/painting_pvp_reward_rebel.py +++ b/scripts/object/tangible/painting/painting_pvp_reward_rebel.py @@ -1,6 +1,10 @@ import sys def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_pvp_rebel_painting_03_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_pvp_rebel_painting_03_01') return - #No name (Cruiser Escort) \ No newline at end of file + #We Will Never Surrender \ No newline at end of file diff --git a/scripts/object/tangible/terminal/terminal_travel_instant_jalopy.py b/scripts/object/tangible/terminal/terminal_travel_instant_jalopy.py index ccad8904..cbeffc7a 100644 --- a/scripts/object/tangible/terminal/terminal_travel_instant_jalopy.py +++ b/scripts/object/tangible/terminal/terminal_travel_instant_jalopy.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'terminal/travel_terminal_itv') return \ No newline at end of file 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 ccad8904..e69005be 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 @@ -1,4 +1,19 @@ import sys def setup(core, object): + object.setCustomizationVariable('/private/index_color_1', 44); + object.setCustomizationVariable('/private/index_color_2', 32); + object.setStfFilename('static_item_n') + object.setStfName('armor_pvp_spec_ops_rebel_black_grey_belt_05_01') + object.setDetailFilename('static_item_d') + object.setDetailName('armor_pvp_spec_ops_rebel_black_grey_belt_05_01') + object.setIntAttribute('no_trade') + 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_bicep_l.py b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_bicep_l.py index ccad8904..b09b90f7 100644 --- a/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_bicep_l.py +++ b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_bicep_l.py @@ -1,4 +1,18 @@ import sys def setup(core, object): + object.setCustomizationVariable('/private/index_color_1', 5); + object.setCustomizationVariable('/private/index_color_2', 0); + object.setStfFilename('static_item_n') + object.setStfName('armor_pvp_spec_ops_rebel_black_grey_bicep_l_05_01') + object.setDetailFilename('static_item_d') + object.setDetailName('armor_pvp_spec_ops_rebel_black_grey_bicep_l_05_01') + 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_bicep_r.py b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_bicep_r.py index ccad8904..e232b4ad 100644 --- a/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_bicep_r.py +++ b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_bicep_r.py @@ -1,4 +1,18 @@ import sys def setup(core, object): + object.setCustomizationVariable('/private/index_color_1', 5); + object.setCustomizationVariable('/private/index_color_2', 0); + object.setStfFilename('static_item_n') + object.setStfName('armor_pvp_spec_ops_rebel_black_grey_bicep_r_05_01') + object.setDetailFilename('static_item_d') + object.setDetailName('armor_pvp_spec_ops_rebel_black_grey_bicep_r_05_01') + 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 ccad8904..05a3bb8d 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 @@ -1,4 +1,18 @@ import sys def setup(core, object): + object.setCustomizationVariable('/private/index_color_1', 0); + object.setCustomizationVariable('/private/index_color_2', 5); + object.setStfFilename('static_item_n') + object.setStfName('armor_pvp_spec_ops_rebel_black_grey_boots_05_01') + object.setDetailFilename('static_item_d') + object.setDetailName('armor_pvp_spec_ops_rebel_black_grey_boots_05_01') + 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_bracer_l.py b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_bracer_l.py index ccad8904..29c4ac03 100644 --- a/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_bracer_l.py +++ b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_bracer_l.py @@ -1,4 +1,18 @@ import sys def setup(core, object): + object.setCustomizationVariable('/private/index_color_1', 5); + object.setCustomizationVariable('/private/index_color_2', 0); + object.setStfFilename('static_item_n') + object.setStfName('armor_pvp_spec_ops_rebel_black_grey_bracer_l_05_01') + object.setDetailFilename('static_item_d') + object.setDetailName('armor_pvp_spec_ops_rebel_black_grey_bracer_l_05_01') + 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_bracer_r.py b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_bracer_r.py index ccad8904..c34a6463 100644 --- a/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_bracer_r.py +++ b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_bracer_r.py @@ -1,4 +1,18 @@ import sys def setup(core, object): + object.setCustomizationVariable('/private/index_color_1', 5); + object.setCustomizationVariable('/private/index_color_2', 0); + object.setStfFilename('static_item_n') + object.setStfName('armor_pvp_spec_ops_rebel_black_grey_bracer_r_05_01') + object.setDetailFilename('static_item_d') + object.setDetailName('armor_pvp_spec_ops_rebel_black_grey_bracer_r_05_01') + 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_chest_plate.py b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_chest_plate.py index ccad8904..c1ef4d6f 100644 --- a/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_chest_plate.py +++ b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_chest_plate.py @@ -1,4 +1,18 @@ import sys def setup(core, object): + object.setCustomizationVariable('/private/index_color_1', 5); + object.setCustomizationVariable('/private/index_color_2', 0); + object.setStfFilename('static_item_n') + object.setStfName('armor_pvp_spec_ops_rebel_black_grey_chest_plate_05_01') + object.setDetailFilename('static_item_d') + object.setDetailName('armor_pvp_spec_ops_rebel_black_grey_chest_plate_05_01') + 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 ccad8904..fa5f80ef 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 @@ -1,4 +1,18 @@ import sys def setup(core, object): + object.setCustomizationVariable('/private/index_color_1', 5); + object.setCustomizationVariable('/private/index_color_2', 0); + object.setStfFilename('static_item_n') + object.setStfName('armor_pvp_spec_ops_rebel_black_grey_gloves_05_01') + object.setDetailFilename('static_item_d') + object.setDetailName('armor_pvp_spec_ops_rebel_black_grey_gloves_05_01') + 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_helmet.py b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_helmet.py index ccad8904..5f2e7d34 100644 --- a/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_helmet.py +++ b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_helmet.py @@ -1,4 +1,18 @@ import sys def setup(core, object): + object.setCustomizationVariable('/private/index_color_1', 5); + object.setCustomizationVariable('/private/index_color_2', 0); + object.setStfFilename('static_item_n') + object.setStfName('armor_pvp_spec_ops_rebel_black_grey_helmet_05_01') + object.setDetailFilename('static_item_d') + object.setDetailName('armor_pvp_spec_ops_rebel_black_grey_helmet_05_01') + 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_leggings.py b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_leggings.py index ccad8904..4f9fe253 100644 --- a/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_leggings.py +++ b/scripts/object/tangible/wearables/armor/rebel_assault/armor_rebel_spec_ops_leggings.py @@ -1,4 +1,18 @@ import sys def setup(core, object): + object.setCustomizationVariable('/private/index_color_1', 0); + object.setCustomizationVariable('/private/index_color_2', 5); + object.setStfFilename('static_item_n') + object.setStfName('armor_pvp_spec_ops_rebel_black_grey_leggings_05_01') + object.setDetailFilename('static_item_d') + object.setDetailName('armor_pvp_spec_ops_rebel_black_grey_leggings_05_01') + 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/weapon/ranged/carbine/carbine_pvp.py b/scripts/object/weapon/ranged/carbine/carbine_pvp.py index ccad8904..df45159e 100644 --- a/scripts/object/weapon/ranged/carbine/carbine_pvp.py +++ b/scripts/object/weapon/ranged/carbine/carbine_pvp.py @@ -1,4 +1,22 @@ import sys def setup(core, object): + object.setStringAttribute('tier', '6') + object.setIntAttribute('no_trade', 1) + object.setStfFilename('static_item_n') + object.setStfName('weapon_carbine_pvp_general_reward_06_01') + object.setDetailFilename('static_item_d') + object.setDetailName('weapon_carbine_pvp_general_reward_06_01') + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 10) + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 10) + object.setStringAttribute('faction_restriction', 'Rebel') + object.setStringAttribute('required_skill', 'None') + object.setDamageType("energy"); + object.setWeaponType(1); + object.setAttackSpeed(0.6); + object.setMinDamage(389); + object.setMaxDamage(780); + object.setStringAttribute('wpn_elemental_type', 'Cold') + object.setStringAttribute('wpn_elemental_value', '20') + object.setMaxRange(50); 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 ccad8904..0bbf3010 100644 --- a/scripts/object/weapon/ranged/heavy/heavy_pvp.py +++ b/scripts/object/weapon/ranged/heavy/heavy_pvp.py @@ -1,4 +1,22 @@ import sys def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('weapon_heavy_pvp_general_reward_06_01') + object.setDetailFilename('static_item_d') + object.setDetailName('weapon_heavy_pvp_general_reward_06_01') + object.setStringAttribute('tier', '6') + 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_skill', 'None') + object.setDamageType("energy"); + object.setWeaponType(12); + object.setAttackSpeed(1); + object.setMinDamage(850); + object.setMaxDamage(1350); + object.setStringAttribute('wpn_elemental_type', 'Heat') + object.setStringAttribute('wpn_elemental_value', '50') + object.setMaxRange(64); return \ No newline at end of file diff --git a/scripts/object/weapon/ranged/pistol/exceptional_pistol_rebel.py b/scripts/object/weapon/ranged/pistol/exceptional_pistol_rebel.py new file mode 100644 index 00000000..647c61de --- /dev/null +++ b/scripts/object/weapon/ranged/pistol/exceptional_pistol_rebel.py @@ -0,0 +1,16 @@ +import sys + +def exceptionalPistol(core, object, owner): + object = core.objectService.createObject('object/weapon/ranged/pistol/shared_pistol_dl44.iff', owner.getPlanet()) + object.setStringAttribute('required_skill', 'None') + object.setStringAttribute('faction_restriction', 'Rebel') + object.setAttackSpeed(0.4); + object.setCustomName('Exceptional Rebel DL44 Pistol'); + object.setMaxRange(35); + object.setDamageType("energy"); + object.setMinDamage(275); + object.setMaxDamage(518); + object.setWeaponType(2); + inventory = owner.getSlottedObject('inventory') + inventory.add(object) + 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 ccad8904..a4f22603 100644 --- a/scripts/object/weapon/ranged/pistol/pistol_pvp.py +++ b/scripts/object/weapon/ranged/pistol/pistol_pvp.py @@ -1,4 +1,22 @@ import sys def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('weapon_pistol_pvp_general_reward_06_01') + object.setDetailFilename('static_item_d') + object.setDetailName('weapon_pistol_pvp_general_reward_06_01') + object.setStringAttribute('tier', '6') + 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_skill', 'None') + object.setDamageType("energy"); + object.setWeaponType(2); + object.setAttackSpeed(0.4); + object.setMinDamage(259); + object.setMaxDamage(518); + object.setStringAttribute('wpn_elemental_type', 'Electricity') + object.setStringAttribute('wpn_elemental_value', '20') + object.setMaxRange(35); 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 ccad8904..2de5b766 100644 --- a/scripts/object/weapon/ranged/rifle/rifle_pvp.py +++ b/scripts/object/weapon/ranged/rifle/rifle_pvp.py @@ -1,4 +1,22 @@ import sys def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('weapon_rifle_pvp_general_reward_06_01') + object.setDetailFilename('static_item_d') + object.setDetailName('weapon_rifle_pvp_general_reward_06_01') + object.setStringAttribute('tier', '6') + 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_skill', 'None') + object.setDamageType("energy"); + object.setWeaponType(0); + object.setAttackSpeed(0.8); + object.setMinDamage(518); + object.setMaxDamage(1035); + object.setStringAttribute('wpn_elemental_type', 'Acid') + object.setStringAttribute('wpn_elemental_value', '20') + object.setMaxRange(64) return \ No newline at end of file diff --git a/scripts/radial/terminal/travel_terminal_itv.py b/scripts/radial/terminal/travel_terminal_itv.py new file mode 100644 index 00000000..510d23f9 --- /dev/null +++ b/scripts/radial/terminal/travel_terminal_itv.py @@ -0,0 +1,31 @@ +from resources.common import RadialOptions +from protocol.swg import EnterTicketPurchaseModeMessage +import sys + +def createRadial(core, owner, target, radials): + return + +def handleSelection(core, owner, target, option): + + + if option == 21 and target: + + if owner is not None: + 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) + owner.getClient().getSession().write(tpm.serialize()) + return + return + +def handleSUI(owner, window, eventType, returnList): + + return + +def use(core, actor, object): + if actor.getObjectID() != object.getOwnerId(): + actor.sendSystemMessage('@travel:not_your_ship', 0) + return + return + \ No newline at end of file diff --git a/scripts/static_spawns/tatooine/jabba_tp_wayfar_camp.py b/scripts/static_spawns/tatooine/jabba_tp_wayfar_camp.py new file mode 100644 index 00000000..6c8873a7 --- /dev/null +++ b/scripts/static_spawns/tatooine/jabba_tp_wayfar_camp.py @@ -0,0 +1,25 @@ +import sys +# Project SWG: Jabba TP Alkharan Camp: Static Spawns +# (C)2014 ProjectSWG + +#pael dewall_paez + +#spy wayfar_spy + +from resources.datatables import Options +from resources.datatables import State + +def addPlanetSpawns(core, planet): + + + stcSvc = core.staticService + objSvc = core.objectService + + #temp until buildouts are fixed + stcSvc.spawnObject('object/static/item/shared_lair_wooden_tent.iff', 'tatooine', long(0), float(-5525.815), float(39.7917), float(-6625.21), float(0.983671), float(0.0816295), float(0.153112), float(0.0478033)) + stcSvc.spawnObject('object/static/item/shared_lair_wooden_tent.iff', 'tatooine', long(0), float(-5517.64), float(43.2684), float(-6635.27), float(0.731855), float(0.157236), float(0.658869), float(0.0745461)) + stcSvc.spawnObject('object/static/item/shared_lair_wooden_tent_destroyed.iff', 'tatooine', long(0), float(-5516.212), float(42.2543), float(-6604.4), float(0.832558), float(0.150685), float(0.532377), float(0.0267597)) + stcSvc.spawnObject('object/static/item/shared_lair_wooden_tent.iff', 'tatooine', long(0), float(-5491.42), float(45.0825), float(-6608.95), float(0.499163), float(-0.143837), float(0.853988), float(-0.0291871)) + + + return diff --git a/src/protocol/swg/EnterTicketPurchaseModeMessage.java b/src/protocol/swg/EnterTicketPurchaseModeMessage.java index d160f215..8ba42533 100644 --- a/src/protocol/swg/EnterTicketPurchaseModeMessage.java +++ b/src/protocol/swg/EnterTicketPurchaseModeMessage.java @@ -54,12 +54,14 @@ public class EnterTicketPurchaseModeMessage extends SWGMessage { TravelPoint nearestPoint = core.travelService.getNearestTravelPoint(player); 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(); diff --git a/src/services/SimulationService.java b/src/services/SimulationService.java index ffeae9f0..8b7822f3 100644 --- a/src/services/SimulationService.java +++ b/src/services/SimulationService.java @@ -267,6 +267,16 @@ public class SimulationService implements INetworkDispatch { } } + + public boolean checkForObject(int distance, SWGObject value ){ + AtomicBoolean checkObject = new AtomicBoolean(); + core.simulationService.get(value.getPlanet(), value.getWorldPosition().x, value.getWorldPosition().z, distance).stream().forEach((objecta) -> { + if (objecta instanceof BuildingObject) + checkObject.set(true); + } + ); + return checkObject.get(); + } public boolean move(SWGObject object, int oldX, int oldZ, int newX, int newZ) { if(quadTrees.get(object.getPlanet().getName()).remove(oldX, oldZ, object)) { diff --git a/src/services/travel/TravelService.java b/src/services/travel/TravelService.java index 74310bf3..2ac39240 100644 --- a/src/services/travel/TravelService.java +++ b/src/services/travel/TravelService.java @@ -27,6 +27,11 @@ import java.util.List; import java.util.Map; import java.util.Vector; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; + import org.apache.commons.lang3.text.WordUtils; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.core.session.IoSession; @@ -47,6 +52,7 @@ import main.NGECore; import resources.common.Console; import resources.common.Opcodes; import resources.common.SpawnPoint; +import resources.datatables.DisplayType; import resources.objects.creature.CreatureObject; import resources.objects.tangible.TangibleObject; import services.playercities.PlayerCity; @@ -61,6 +67,7 @@ public class TravelService implements INetworkDispatch { private NGECore core; private Map> travelMap = new ConcurrentHashMap>(); private Map> fareMap = new ConcurrentHashMap>(); + private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); public TravelService(NGECore core) { this.core = core; @@ -375,6 +382,8 @@ public class TravelService implements INetworkDispatch { } + + private void populateTravelFares() { try { DatatableVisitor travelFares = ClientFileManager.loadFile("datatables/travel/travel.iff", DatatableVisitor.class); @@ -424,6 +433,51 @@ public class TravelService implements INetworkDispatch { return this.travelMap; } + + //ITV Despawn + public void checkForItvDistanceDespawn(CreatureObject actor, SWGObject object){ + + scheduler.schedule(new Runnable() { + public void run() { + try { + + if (object != null){ + core.objectService.destroyObject(object); + actor.sendSystemMessage("@travel:pickup_cancel", DisplayType.Broadcast); + } + }catch (Exception e) { + e.printStackTrace(); + + } + } + }, 1, TimeUnit.SECONDS); + + } + + public void checkForItvTimedDespawn(CreatureObject actor, SWGObject object){ + + scheduler.schedule(new Runnable() { + public void run() { + try { + + if (object != null){ + Thread.sleep(60000); + core.objectService.destroyObject(object); + actor.sendSystemMessage("@travel:pickup_timeout", DisplayType.Broadcast); + } + }catch (Exception e) { + e.printStackTrace(); + + } + } + }, 1, TimeUnit.SECONDS); + + } + + + + + @Override public void shutdown() {