mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-09-11 21:45:43 -04:00
@@ -17,92 +17,38 @@ def run(core, actor, target, commandString):
|
||||
actorObject = actor
|
||||
entSvc = core.entertainmentService
|
||||
|
||||
instrumentObj = entSvc.getInstrument(actor)
|
||||
|
||||
#TODO: Determine if player has an instrument
|
||||
if instrumentObj is not None:
|
||||
#If player does have an instrument then determine what type of instrument the player has
|
||||
instrumentStfName = instrumentObj.getStfName()
|
||||
instrumentCode = -1
|
||||
#If type is traz then audioID is 1
|
||||
if instrumentStfName == "obj_traz_classic":
|
||||
instrumentCode = 1
|
||||
#if type is slitherhorn then audioID is 2
|
||||
elif instrumentStfName == "obj_slitherhorn_classic":
|
||||
instrumentCode = 2
|
||||
#if type is fanfar then audioID is 3
|
||||
elif instrumentStfName == "obj_fanfar_classic":
|
||||
instrumentCode = 3
|
||||
#if type is flutedroopy then audioID is 4
|
||||
#FIXME: I don't know what this is yet, but I suspect it's "obj_chidinkalu_horn_classic"
|
||||
instrumentCode = entSvc.getInstrumentAudioId(actor)
|
||||
|
||||
#print('instrumentCode: ' , instrumentCode)
|
||||
if instrumentCode > 0:
|
||||
#Parse command string
|
||||
if len(commandString) > 0:
|
||||
params = commandString.split(" ")
|
||||
performance = entSvc.getPerformance(params[0], instrumentCode)
|
||||
#print('line number: ', performance.getLineNumber())
|
||||
if performance is None:
|
||||
#Not a proper song
|
||||
actor.sendSystemMessage('@performance:music_invalid_song', 0)
|
||||
return
|
||||
|
||||
#if type is kloohorn then audioID is 5
|
||||
elif instrumentStfName == "obj_kloo_horn_classic":
|
||||
instrumentCode = 5
|
||||
#if type is fizz then audioID is 6
|
||||
elif instrumentStfName == "obj_fizzz_classic":
|
||||
instrumentCode = 6
|
||||
#if type is bandfill then audioID is 7
|
||||
elif instrumentStfName == "obj_bandfill_classic":
|
||||
instrumentCode = 7
|
||||
|
||||
#if type is omnibox then audioID is 8
|
||||
#FIXME: This instrument isn't equipped when played
|
||||
|
||||
#if type is nalargon then audioID is 9
|
||||
#FIXME: This instrument isn't equipped when played
|
||||
|
||||
#if type is mandoviol then audioID is 10
|
||||
elif instrumentStfName == "obj_mandoviol_classic":
|
||||
instrumentCode = 10
|
||||
#if type is xantha then audioID is 11
|
||||
elif instrumentStfName == "xantha_n":
|
||||
instrumentCode = 11
|
||||
#if type is flangedjessoon then audioID is 12
|
||||
elif instrumentStfName == "obj_jessoon":
|
||||
instrumentCode = 12
|
||||
#if type is valahorn then audioID is 13
|
||||
elif instrumentStfName == "obj_valahorn":
|
||||
instrumentCode = 13
|
||||
#if type is downeybox then audioID is 14
|
||||
#FIXME: This instrument isn't equipped when played
|
||||
|
||||
#TODO: Handle instruments that are placed on the ground
|
||||
|
||||
print('instrumentCode: ' , instrumentCode)
|
||||
if instrumentCode > 0:
|
||||
#Parse command string
|
||||
if len(commandString) > 0:
|
||||
params = commandString.split(" ")
|
||||
performance = entSvc.getPerformance(params[0], instrumentCode)
|
||||
print('line number: ', performance.getLineNumber())
|
||||
if performance is None:
|
||||
#Not a proper song
|
||||
actor.sendSystemMessage('@performance:music_invalid_song', 0)
|
||||
return
|
||||
|
||||
#Handle lack of skill
|
||||
if not entSvc.canPerform(actor, performance):
|
||||
actor.sendSystemMessage('@performance:music_lack_skill_self',0)
|
||||
return
|
||||
startMusic(core, actor, performance.getLineNumber())
|
||||
else:
|
||||
availableSongs = entSvc.getAvailableSongs(actor, instrumentCode)
|
||||
|
||||
suiSvc = core.suiService
|
||||
suiWindow = suiSvc.createListBox(ListBoxType.LIST_BOX_OK_CANCEL, "@performance:select_song", "@performance:available_songs", availableSongs, actor, None, 10)
|
||||
|
||||
returnList = Vector()
|
||||
returnList.add("List.lstList:SelectedRow")
|
||||
suiWindow.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleStartMusic)
|
||||
|
||||
suiSvc.openSUIWindow(suiWindow)
|
||||
#Handle lack of skill
|
||||
if not entSvc.canPerform(actor, performance):
|
||||
actor.sendSystemMessage('@performance:music_lack_skill_self',0)
|
||||
return
|
||||
startMusic(core, actor, performance.getLineNumber())
|
||||
else:
|
||||
#Equipped item is not an instrument
|
||||
actor.sendSystemMessage('@performance:music_no_instrument', 0)
|
||||
pass
|
||||
availableSongs = entSvc.getAvailableSongs(actor, instrumentCode)
|
||||
|
||||
suiSvc = core.suiService
|
||||
suiWindow = suiSvc.createListBox(ListBoxType.LIST_BOX_OK_CANCEL, "@performance:select_song", "@performance:available_songs", availableSongs, actor, None, 10)
|
||||
|
||||
returnList = Vector()
|
||||
returnList.add("List.lstList:SelectedRow")
|
||||
suiWindow.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleStartMusic)
|
||||
|
||||
suiSvc.openSUIWindow(suiWindow)
|
||||
else:
|
||||
#No instrument equipped
|
||||
#Equipped item is not an instrument
|
||||
actor.sendSystemMessage('@performance:music_no_instrument', 0)
|
||||
pass
|
||||
'''
|
||||
@@ -119,7 +65,7 @@ def handleStartMusic(core, owner, eventType, returnList):
|
||||
pass
|
||||
|
||||
def startMusic(core, actor, performanceLineNumber):
|
||||
if actor.getPosture == 0x09:
|
||||
if actor.getPosture() == 0x09:
|
||||
actor.sendSystemMessage('@performance:already_performing_self', 0)
|
||||
pass
|
||||
|
||||
@@ -154,7 +100,7 @@ def startMusic(core, actor, performanceLineNumber):
|
||||
elif audioId < 15:
|
||||
songAnim = "music_4" #downeybox (Don't think this was ever added)
|
||||
|
||||
print(songAnim)
|
||||
#print(songAnim)
|
||||
|
||||
|
||||
actor.sendSystemMessage('@performance:music_start_self',0)
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStringAttribute("required_combat_level", "50")
|
||||
object.setStringAttribute("class_required", "Entertainer")
|
||||
return
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStringAttribute("required_combat_level", "74")
|
||||
object.setStringAttribute("class_required", "Entertainer")
|
||||
return
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStringAttribute("required_combat_level", "7")
|
||||
object.setStringAttribute("class_required", "Entertainer")
|
||||
return
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStringAttribute("required_combat_level", "1")
|
||||
object.setStringAttribute("class_required", "Entertainer")
|
||||
return
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStringAttribute("required_combat_level", "50")
|
||||
object.setStringAttribute("class_required", "Entertainer")
|
||||
return
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStringAttribute("required_combat_level", "62")
|
||||
object.setStringAttribute("class_required", "Entertainer")
|
||||
return
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStringAttribute("required_combat_level", "14")
|
||||
object.setStringAttribute("class_required", "Entertainer")
|
||||
return
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStringAttribute("required_combat_level", "38")
|
||||
object.setStringAttribute("class_required", "Entertainer")
|
||||
return
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStringAttribute("required_combat_level", "86")
|
||||
object.setStringAttribute("class_required", "Entertainer")
|
||||
return
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStringAttribute("required_combat_level", "74")
|
||||
object.setStringAttribute("class_required", "Entertainer")
|
||||
return
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStringAttribute("required_combat_level", "26")
|
||||
object.setStringAttribute("class_required", "Entertainer")
|
||||
return
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStringAttribute("required_combat_level", "90")
|
||||
object.setStringAttribute("class_required", "Entertainer")
|
||||
return
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStringAttribute("required_combat_level", "90")
|
||||
object.setStringAttribute("class_required", "Entertainer")
|
||||
return
|
||||
@@ -76,7 +76,7 @@ public class EntertainmentService implements INetworkDispatch {
|
||||
populateSkillCaps();
|
||||
populatePerformanceTable();
|
||||
|
||||
System.out.printf("[DEBUG] number_of_performances: %d\n", performances.size());
|
||||
//System.out.printf("[DEBUG] number_of_performances: %d\n", performances.size());
|
||||
|
||||
populatePerformanceEffects();
|
||||
registerCommands();
|
||||
@@ -456,11 +456,13 @@ public class EntertainmentService implements INetworkDispatch {
|
||||
}
|
||||
|
||||
//TODO: Remove
|
||||
/*
|
||||
Set<PerformanceUID> debugSet = performances.keySet();
|
||||
for(PerformanceUID uid : debugSet)
|
||||
{
|
||||
System.out.println(uid.toString());
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
@@ -872,7 +874,7 @@ public class EntertainmentService implements INetworkDispatch {
|
||||
performer.sendSystemMessage("@performance:flourish_wait_self", (byte) 0);
|
||||
return;
|
||||
}
|
||||
//FIXME: I don't think this will work.
|
||||
|
||||
Performance performance = getPerformanceByIndex(performer.getPerformanceId());
|
||||
|
||||
if(performance == null)
|
||||
@@ -887,6 +889,7 @@ public class EntertainmentService implements INetworkDispatch {
|
||||
performer.setPerformingFlourish(true);
|
||||
performer.sendSystemMessage("@performance:flourish_perform", (byte) 0);
|
||||
performer.doSkillAnimation(anmFlo);
|
||||
performer.playMusic(performance.getFlourish1());
|
||||
|
||||
scheduler.schedule(() -> {
|
||||
try {
|
||||
@@ -1112,6 +1115,50 @@ public class EntertainmentService implements INetworkDispatch {
|
||||
return actor.getSlottedObject("hold_r");
|
||||
}
|
||||
|
||||
/**
|
||||
* @param actor
|
||||
* @return The InstrumentAudioId of the instrument being played or zero if there is no instrument being played
|
||||
*/
|
||||
public int getInstrumentAudioId(CreatureObject actor)
|
||||
{
|
||||
SWGObject instrument = getInstrument(actor);
|
||||
if(instrument != null)
|
||||
{
|
||||
switch(instrument.getStfName())
|
||||
{
|
||||
case "obj_traz_classic":
|
||||
return 1;
|
||||
case "obj_slitherhorn_classic":
|
||||
return 2;
|
||||
case "obj_fanfar_classic":
|
||||
return 3;
|
||||
case "obj_chidinkalu_horn_classic"://FIXME: Not 100% certain on this one, but I think it's flootdroopy
|
||||
return 4;
|
||||
case "obj_kloo_horn_classic":
|
||||
return 5;
|
||||
case "obj_fizzz_classic":
|
||||
return 6;
|
||||
case "obj_bandfill_classic":
|
||||
return 7;
|
||||
case "obj_modoviol_classic":
|
||||
return 10;
|
||||
case "obj_xanta_n":
|
||||
return 11;
|
||||
case "obj_jessoon":
|
||||
return 12;
|
||||
case "obj_valahorn":
|
||||
return 13;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
//TODO: The following instruments are placed and then played instead of being held.
|
||||
//TODO: omnibox audioID is 8.
|
||||
//TODO: nargalon audioID is 9.
|
||||
//TODO: downeybox audioID is 14.
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void shutdown() {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user