예제 #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));
    }
예제 #2
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));
 }
 public void SetConversation(byte arg1, int npcId, string script, int delay, byte arg5, Align align)
 {
     Field.BroadcastPacket(CinematicPacket.Conversation(npcId, script, delay * 1000, align));
 }