Files
NGECore2/scripts/commands/setgodmode.py
T
Seefo d182fea6eb Loot System changes, see extended
* Added /setgodmode genloot <lootTemplate> command
* Added the option to have a 'custom setup' of a looted object template
(see scripts/loot/lootItems/veryrareloot/rare_ankarres_sapphire.py),
procedure is same as object scripts
* Looted items no longer need custom names in order to not have an empty
name (most scripts containing a custom name can now have that method
removed)
2014-05-07 22:11:18 -04:00

129 lines
4.0 KiB
Python

import sys
from engine.resources.scene import Point3D
from protocol.swg import ObjControllerMessage
from engine.resources.objects import SWGObject
def setup():
return
def run(core, actor, target, commandString):
playerObject = actor.getSlottedObject('ghost')
if not playerObject:
return
commandArgs = commandString.split(' ')
command = commandArgs[0]
if len(commandArgs) > 1:
arg1 = commandArgs[1]
if len(commandArgs) > 2:
arg2 = commandArgs[2]
if len(commandArgs) > 3:
arg3 = commandArgs[3]
if len(commandArgs) > 4:
arg4 = commandArgs[4]
if len(commandArgs) > 5:
arg5 = commandArgs[5]
if not command:
return
if actor.getClient().isGM() is False:
return
if playerObject.getGodLevel() == 0:
actor.addAbility("admin")
playerObject.setGodLevel(50)
if command == 'giveExperience' and arg1:
core.playerService.giveExperience(actor, int(arg1))
if command == 'level' and arg1:
core.playerService.grantLevel(actor, int(arg1))
elif command == 'setSpeed' and arg1:
actor.sendSystemMessage('Your speed was ' + str(actor.getSpeedMultiplierBase()) + '. Don\'t forget to set this back or it\'ll permanently imbalance your speed. Default without buffs or mods is 1.', 2)
actor.setSpeedMultiplierBase(float(arg1))
actor.sendSystemMessage('Your new speed is ' + str(actor.getSpeedMultiplierBase()) + '.', 2)
elif command == 'teleport' and arg2 and arg3 and arg4:
position = Point3D(float(arg2), float(arg3), float(arg4))
core.simulationService.transferToPlanet(actor, core.terrainService.getPlanetByName(arg1), position, actor.getOrientation(), None)
elif command == 'teleportplayer' and arg1 and arg2 and arg3 and arg4 and arg5:
player = core.chatService.getObjectByFirstName(arg1)
if player:
position = Point3D(float(arg3), float(arg4), float(arg5))
core.simulationService.transferToPlanet(player, core.terrainService.getPlanetByName(arg2), position, player.getOrientation(), None)
elif command == 'credits' and arg1:
actor.setCashCredits(actor.getCashCredits() + int(arg1))
actor.sendSystemMessage('The Galactic Empire has transferred ' + arg1 + ' credits to you for your service.', 0)
elif command == 'addability' and arg1:
actor.addAbility(str(arg1))
actor.sendSystemMessage('You have learned ' + arg1 + '.', 0)
elif command == 'anim' and arg1:
actor.doSkillAnimation(arg1)
actor.sendSystemMessage('Performed ' + arg1 ,0)
elif command == 'changeBio' and arg1:
actor.getSlottedObject('ghost').setBiography(arg1)
elif command == 'spawn' and arg1 and arg2:
pos = actor.getWorldPosition()
core.spawnService.spawnCreature(arg1, actor.getPlanet().getName(), 0, pos.x, pos.y, pos.z, 1, 0, 1, 0, int(arg2))
elif command == 'instance' and arg1:
core.instanceService.queue(arg1, actor)
elif command == 'action' and arg1:
actor.setAction(int(arg1))
elif command == 'health' and arg1:
actor.setHealth(int(arg1))
elif command == 'id':
actor.sendSystemMessage('Your id is: ' + str(actor.getObjectId()), 0)
elif command == 'cust' and arg1 and arg2 and arg3:
obj = core.objectService.getObject(long(arg1))
obj.setCustomizationVariable(str(arg2), int(arg3))
elif command == 'buff' and arg1:
core.buffService.addBuffToCreature(actor, str(arg1), actor)
elif command == 'stealth':
if (actor.isInStealth()):
actor.setInStealth(False)
actor.setRadarVisible(True)
else:
actor.setInStealth(True)
actor.setRadarVisible(False)
elif command == 'holoEmote' and arg1:
playerObject.setHoloEmote('holoemote_' + arg1)
playerObject.setHoloEmoteUses(20)
actor.sendSystemMessage('Holo-Emote Generator set to ' + 'holoemote_' + arg1, 0)
elif command == 'off':
if playerObject.getGodLevel > 0:
actor.removeAbility("admin")
playerObject.setGodLevel(0)
elif command == 'setBounty':
core.playerService.sendSetBountyWindow(actor, actor)
return
elif command == 'genloot':
object = core.lootService.generateLootItem(actor, arg1)
inventory = actor.getSlottedObject('inventory')
if inventory:
inventory.add(object)
return