AbstractPlayerInteraction has:
PHP Code:
public final void changeMusic(final String songName) {
getPlayer().getMap().broadcastMessage(CField.musicChange(songName)); }
So you can use with npc/reactor/portal(cm/rm/pi).changeMusic("Bgm00/Florallife") because they extends AbstractPlayerInteraction but EventInstanceManager does not.
@Novak
Do you know what the differences are?
EventInstanceManager:
PHP Code:
public final void changeMusic(final MapleCharacter chr, final String songName) {
//chr.getClient().getSession().write(CField.musicChange(songName)); whats the difference?
chr.getMap().broadcastMessage(CField.musicChange(songName)); }
Event Script:
1.
PHP Code:
importPackage(Packages.client.MapleCharacter);
function scheduledTimeout(eim) {
eim.changeMusic(chr, CField.musicChange("Bgm00/Florallife"));
eim.broadcastPlayerMsg(6, "Music Change"); }
Is better than these?
2.
PHP Code:
importPackage(Packages.client.MapleCharacter);
function scheduledTimeout(eim) {
//chr.getClient().getSession().write(CField.musicChange("Bgm00/Florallife")); whats the difference?
chr.getMap().broadcastMessage(CField.musicChange("Bgm00/Florallife"));
eim.broadcastPlayerMsg(6, "Music Change"); }
3.
PHP Code:
function scheduledTimeout(eim) {
eim.broadcastPacket(CField.musicChange("Bgm00/Florallife"));
eim.broadcastPlayerMsg(6, "Music Change"); }
4. add "player"?
https://forum.ragezone.com/f566/help...8/#post8502078 or?
4.1. add "player"?
PHP Code:
public void timeOut(final long delay, final EventInstanceManager eim, final MapleCharacter player) {
...
em.getIv().invokeFunction("scheduledTimeout", eim, player); }
public void restartEventTimer(long time, MapleCharacter player) {
...
timeOut(time, this, player); }
public void startEventTimer(long time, MapleCharacter player) {
restartEventTimer(time, player); }
PHP Code:
function scheduledTimeout(eim, player) {
eim.changeMusic(player, CField.musicChange("Bgm00/Florallife"));
eim.broadcastPlayerMsg(6, "Music Change"); }
5. add "mapid"
PHP Code:
public void timeOut(final long delay, final EventInstanceManager eim, final int mapid) {
...
em.getIv().invokeFunction("scheduledTimeout", eim, mapid); }
public void restartEventTimer(long time, int mapid) {
...
timeOut(time, this, mapid); }
public void startEventTimer(long time, int mapid) {
restartEventTimer(time, mapid); }
PHP Code:
function scheduledTimeout(eim, mapid) {
var map = eim.getMapInstance(mapid);
//or var map = getMap(eim);?
//or var map = em.getChannelServer().getMapFactory().getMap(mapid);?
map.broadcastMessage(CField.musicChange("Bgm00/Florallife"));
eim.broadcastPlayerMsg(6, "Music Change"); }