예제 #1
0
    public void SetConversation(byte arg1, int npcId, string script, int delay, byte arg5, Align align)
    {
        if (npcId == 0)
        {
            IFieldActor <Player> player = Field.State.Players.Values.FirstOrDefault();
            if (player is null)
            {
                return;
            }

            Field.BroadcastPacket(CinematicPacket.BalloonTalk(player.ObjectId, false, script, delay * 1000, 0));
            return;
        }

        if (arg1 == 1) // Use npc object id?
        {
            Npc npc = Field.State.Npcs.Values.FirstOrDefault(x => x.SpawnPointId == npcId);
            if (npc is null)
            {
                return;
            }

            Field.BroadcastPacket(CinematicPacket.BalloonTalk(npc.ObjectId, false, script, delay * 1000, 0));
            return;
        }

        Field.BroadcastPacket(CinematicPacket.Conversation(npcId, npcId.ToString(), script, delay * 1000, align));
    }
 public void AddBalloonTalk(int spawnPointId, string msg, int duration, int delayTick, bool isNpcId)
 {
     if (!isNpcId)
     {
         if (spawnPointId == 0)
         {
             IFieldObject <Player> player = Field.State.Players.Values.First();
             if (player == null)
             {
                 return;
             }
             player.Value.Session.Send(CinematicPacket.BalloonTalk(player.ObjectId, isNpcId, msg, duration, delayTick));
             return;
         }
     }
 }
예제 #3
0
    public void AddBalloonTalk(int spawnPointId, string msg, int duration, int delayTick, bool isNpcId)
    {
        if (spawnPointId == 0)
        {
            IFieldObject <Player> player = Field.State.Players.Values.First();

            Field.BroadcastPacket(CinematicPacket.BalloonTalk(player.ObjectId, isNpcId, msg, duration, delayTick));
            return;
        }

        Npc npc = Field.State.Npcs.Values.FirstOrDefault(x => x.SpawnPointId == spawnPointId);

        if (npc is null)
        {
            return;
        }

        Field.BroadcastPacket(CinematicPacket.BalloonTalk(npc.ObjectId, isNpcId, msg, duration, delayTick));
    }
예제 #4
0
 public void AddCinematicTalk(int npcId, string illustId, string script, int duration, Align align, int delayTick)
 {
     Field.BroadcastPacket(CinematicPacket.Conversation(npcId, illustId, script, duration, align));
 }
예제 #5
0
 private static void HandleSkipCutscene(GameSession session)
 {
     session.FieldManager.Triggers.FirstOrDefault(x => x.HasSkipScene())?.SkipScene();
     session.Send(CinematicPacket.StartSceneSkip());
 }
 public void SetConversation(byte arg1, int npcId, string script, int delay, byte arg5, Align align)
 {
     Field.BroadcastPacket(CinematicPacket.Conversation(npcId, script, delay * 1000, align));
 }