Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Nostale
You last visited: Today at 01:36

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



raid / Ts?

Discussion on raid / Ts? within the Nostale forum part of the MMORPGs category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jun 2020
Posts: 21
Received Thanks: 0
raid / Ts?

Can I set the number of raids/TS per day?
For example: Witch Laurena can only start raids 3 times a day
loktaisong is offline  
Old 09/07/2020, 13:02   #2


 
Kravos's Avatar
 
elite*gold: 100
The Black Market: 269/0/0
Join Date: Dec 2017
Posts: 1,030
Received Thanks: 458
Yes you can. Working on NosQuest for example (afaik)
Kravos is offline  
Old 09/07/2020, 13:10   #3
 
elite*gold: 0
Join Date: Jun 2020
Posts: 21
Received Thanks: 0
how to do
loktaisong is offline  
Old 09/07/2020, 15:18   #4
 
elite*gold: 0
Join Date: Jul 2017
Posts: 380
Received Thanks: 60
in ScriptedInstancePacketHandler (WreqPacket)

Code:
 /// <summary>
        /// wreq packet
        /// </summary>
        /// <param name="packet"></param>
        public void GetWreq(WreqPacket packet)
        {
            short CharPositionX = Session.Character.PositionX;
            short CharPositionY = Session.Character.PositionY;
            foreach (ScriptedInstance portal in Session.CurrentMapInstance.ScriptedInstances)
            {
                if (CharPositionY >= portal.PositionY - 1 && CharPositionY
                                                                        <= portal.PositionY + 1
                                                                        && CharPositionX
                                                                        >= portal.PositionX - 1
                                                                        && CharPositionX
                                                                        <= portal.PositionX + 1)
                {
                    switch (packet.Value)
                    {
                        case 0:
                            if (packet.Param != 1
                                && Session.Character.Group?.Sessions.Find(s =>
                                    s.CurrentMapInstance.InstanceBag?.Lock == false
                                    && s.CurrentMapInstance.MapInstanceType == MapInstanceType.TimeSpaceInstance
                                    && s.Character.CharacterId != Session.Character.CharacterId
                                    && s.Character.Timespace?.Id == portal.Id
                                    && !s.Character.Timespace.IsIndividual) is ClientSession TeamMemberInInstance)
                            {
                                if (portal.DailyEntries > 0)
                                {
                                    var entries = portal.DailyEntries - Session.Character.GeneralLogs.CountLinq(s => s.LogType == "InstanceEntry" && short.Parse(s.LogData) == portal.Id && s.Timestamp.Date == DateTime.Today);
                                    Session.SendPacket(Session.Character.GenerateSay(string.Format(Language.Instance.GetMessageFromKey("INSTANCE_ENTRIES"), entries), 10));
                                }
                                Session.SendPacket(UserInterfaceHelper.GenerateDialog(
                                    $"#wreq^3^{TeamMemberInInstance.Character.CharacterId} #wreq^0^1 {Language.Instance.GetMessageFromKey("ASK_JOIN_TEAM_TS")}"));
                            }
                            else
                            {
                                if (portal.DailyEntries > 0)
                                {
                                    var entries = portal.DailyEntries - Session.Character.GeneralLogs.CountLinq(s => s.LogType == "InstanceEntry" && short.Parse(s.LogData) == portal.Id && s.Timestamp.Date == DateTime.Today);
                                    Session.SendPacket(Session.Character.GenerateSay(string.Format(Language.Instance.GetMessageFromKey("INSTANCE_ENTRIES"), entries), 10));
                                }
                                Session.SendPacket(portal.GenerateRbr());
                            }

                            break;

                        case 1:
                            if (!packet.Param.HasValue)
                            {
                                Session.Character.EnterInstance(portal);
                            }
                            break;

                        case 3:
                            ClientSession clientSession =
                                Session.Character.Group?.Sessions.Find(s => s.Character.CharacterId == packet.Param);
                            if (clientSession != null && clientSession.CurrentMapInstance.InstanceBag?.Lock == false && clientSession.Character?.Timespace is ScriptedInstance TeamTimeSpace && !TeamTimeSpace.IsIndividual)
                            {
                                if (portal.Id == TeamTimeSpace.Id)
                                {
                                    if (Session.Character.Level < TeamTimeSpace.LevelMinimum)
                                    {
                                        Session.SendPacket(
                                            UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("TOO_LOW_LVL"), 0));
                                        return;
                                    }
                                    if (Session.Character.Level > TeamTimeSpace.LevelMaximum)
                                    {
                                        Session.SendPacket(
                                            UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("TOO_HIGH_LVL"), 0));
                                        return;
                                    }

                                    var entries = TeamTimeSpace.DailyEntries - Session.Character.GeneralLogs.CountLinq(s => s.LogType == "InstanceEntry" && short.Parse(s.LogData) == TeamTimeSpace.Id && s.Timestamp.Date == DateTime.Today);
                                    if (TeamTimeSpace.DailyEntries == 0 || entries > 0)
                                    {
                                        foreach (Gift gift in TeamTimeSpace.RequiredItems)
                                        {
                                            if (Session.Character.Inventory.CountItem(gift.VNum) < gift.Amount)
                                            {
                                                Session.SendPacket(UserInterfaceHelper.GenerateMsg(
                                                    string.Format(Language.Instance.GetMessageFromKey("NO_ITEM_REQUIRED"),
                                                        ServerManager.GetItem(gift.VNum).Name), 0));
                                                return;
                                            }

                                            Session.Character.Inventory.RemoveItemAmount(gift.VNum, gift.Amount);
                                        }
                                        Session?.SendPackets(TeamTimeSpace.GenerateMinimap());
                                        Session?.SendPacket(TeamTimeSpace.GenerateMainInfo());
                                        Session?.SendPacket(TeamTimeSpace.FirstMap.InstanceBag.GenerateScore());
                                        if (TeamTimeSpace.StartX != 0 || TeamTimeSpace.StartY != 0)
                                        {
                                            ServerManager.Instance.ChangeMapInstance(Session.Character.CharacterId,
                                                clientSession.CurrentMapInstance.MapInstanceId, TeamTimeSpace.StartX, TeamTimeSpace.StartY);
                                        }
                                        else
                                        {
                                            ServerManager.Instance.TeleportOnRandomPlaceInMap(Session, clientSession.CurrentMapInstance.MapInstanceId);
                                        }
                                        Session.Character.Timespace = TeamTimeSpace;
                                    }
                                    else
                                    {
                                        Session.SendPacket(UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("INSTANCE_NO_MORE_ENTRIES"), 0));
                                        Session.SendPacket(Session.Character.GenerateSay(Language.Instance.GetMessageFromKey("INSTANCE_NO_MORE_ENTRIES"), 10));
                                    }
                                }
                            }
                            else
                            {
                                GetWreq(new WreqPacket { Value = 0, Param = 1 });
                            }

                            // TODO: Implement
                            break;
                    }
                }
            }
        }
in ScriptedInstancePacketHandler (mkRaidPacket)

Code:
 /// <summary>
        /// mkraid packet
        /// </summary>
        /// <param name="mkRaidPacket"></param>
        public void GenerateRaid(MkRaidPacket mkRaidPacket)
        {
            if (Session.Character.Group?.Raid != null && Session.Character.Group.IsLeader(Session))
            {
                if (Session.Character.MapId == Session.Character.Group.Raid.MapId
                    && Map.GetDistance(
                        new MapCell { X = Session.Character.PositionX, Y = Session.Character.PositionY },
                        new MapCell { X = Session.Character.Group.Raid.PositionX, Y = Session.Character.Group.Raid.PositionY }) < 2)
                {
                    if ((Session.Character.Group.SessionCount > 0 || Session.Character.Authority >= AuthorityType.TGM)
                    && Session.Character.Group.Sessions.All(s => s.CurrentMapInstance == Session.CurrentMapInstance))
                    {
                        if (Session.Character.Group.Raid.FirstMap == null)
                        {
                            Session.Character.Group.Raid.LoadScript(MapInstanceType.RaidInstance, Session.Character);
                        }

                        if (Session.Character.Group.Raid.FirstMap == null)
                        {
                            return;
                        }

                        Session.Character.Group.Raid.InstanceBag.Lock = true;

                        /*Session.Character.Group.Characters.Where(s => s.CurrentMapInstance != Session.CurrentMapInstance).ToList().ForEach(
                        session =>
                        {
                            Session.Character.Group.LeaveGroup(session);
                            session.SendPacket(session.Character.GenerateRaid(1, true));
                            session.SendPacket(session.Character.GenerateRaid(2, true));
                        });*/

                        Session.Character.Group.Raid.InstanceBag.Lives = (short)Session.Character.Group.SessionCount;

                        foreach (ClientSession session in Session.Character.Group.Sessions.GetAllItems())
                        {
                            if (session != null)
                            {
                                ServerManager.Instance.ChangeMapInstance(session.Character.CharacterId,
                                    session.Character.Group.Raid.FirstMap.MapInstanceId,
                                    session.Character.Group.Raid.StartX, session.Character.Group.Raid.StartY);
                                session.SendPacket("raidbf 0 0 25");
                                session.SendPacket(session.Character.Group.GeneraterRaidmbf(session));
                                session.SendPacket(session.Character.GenerateRaid(5));
                                session.SendPacket(session.Character.GenerateRaid(4));
                                session.SendPacket(session.Character.GenerateRaid(3));
                                if (session.Character.Group.Raid.DailyEntries > 0)
                                {
                                    var entries = session.Character.Group.Raid.DailyEntries - session.Character.GeneralLogs.CountLinq(s => s.LogType == "InstanceEntry" && short.Parse(s.LogData) == session.Character.Group.Raid.Id && s.Timestamp.Date == DateTime.Today);
                                    session.SendPacket(session.Character.GenerateSay(string.Format(Language.Instance.GetMessageFromKey("INSTANCE_ENTRIES"), entries), 10));
                                }
                                
                            }
                        }

                        ServerManager.Instance.GroupList.Remove(Session.Character.Group);

                        Logger.LogUserEvent("RAID_START", Session.GenerateIdentity(),
                            $"RaidId: {Session.Character.Group.GroupId}");
                    }
                    else
                    {
                        Session.SendPacket(UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("RAID_TEAM_NOT_READY"), 0));
                    }
                }
                else
                {
                    if (Session.Character.Group.Raid.IsSinglePortal == true)
                    {
                        if ((Session.Character.Group.SessionCount > 2 || Session.Character.Authority >= AuthorityType.TGM)
                        && Session.Character.Group.Sessions.All(s => s.CurrentMapInstance == Session.CurrentMapInstance))
                        {
                            if (Session.Character.Group.Raid.FirstMap == null)
                            {
                                Session.Character.Group.Raid.LoadScript(MapInstanceType.RaidInstance, Session.Character);
                            }

                            if (Session.Character.Group.Raid.FirstMap == null)
                            {
                                return;
                            }

                            Session.Character.Group.Raid.InstanceBag.Lock = true;

                            Session.Character.Group.Sessions.Where(s => s.CurrentMapInstance != Session.CurrentMapInstance).ToList().ForEach(
                            session =>
                            {
                                Session.Character.Group.LeaveGroup(session);
                                session.SendPacket(session.Character.GenerateRaid(1, true));
                                session.SendPacket(session.Character.GenerateRaid(2, true));
                            });

                            Session.Character.Group.Raid.InstanceBag.Lives = (short)Session.Character.Group.SessionCount;

                            foreach (ClientSession session in Session.Character.Group.Sessions.GetAllItems())
                            {
                                if (session != null)
                                {
                                    ServerManager.Instance.ChangeMapInstance(session.Character.CharacterId,
                                        session.Character.Group.Raid.FirstMap.MapInstanceId,
                                        session.Character.Group.Raid.StartX, session.Character.Group.Raid.StartY);
                                    session.SendPacket("raidbf 0 0 25");
                                    session.SendPacket(session.Character.Group.GeneraterRaidmbf(session));
                                    session.SendPacket(session.Character.GenerateRaid(5));
                                    session.SendPacket(session.Character.GenerateRaid(4));
                                    session.SendPacket(session.Character.GenerateRaid(3));
                                    if (session.Character.Group.Raid.DailyEntries > 0)
                                    {
                                        var entries = session.Character.Group.Raid.DailyEntries - session.Character.GeneralLogs.CountLinq(s => s.LogType == "InstanceEntry" && short.Parse(s.LogData) == session.Character.Group.Raid.Id && s.Timestamp.Date == DateTime.Today);
                                        session.SendPacket(session.Character.GenerateSay(string.Format(Language.Instance.GetMessageFromKey("INSTANCE_ENTRIES"), entries), 10));
                                    }
                                }
                            }

                            ServerManager.Instance.GroupList.Remove(Session.Character.Group);

                            Logger.LogUserEvent("RAID_START", Session.GenerateIdentity(),
                                $"RaidId: {Session.Character.Group.GroupId}");
                        }
                        else
                        {
                            Session.SendPacket(UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("RAID_TEAM_NOT_READY"), 0));
                        }
                    }
                    else
                    {
                        Session.SendPacket(UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("WRONG_PORTAL"), 0));
                    }

                }
            }
        }
in raid add line: DailyEntries Value="3" />

ps: i copy paste all code It will be easier for you
redbull2905 is offline  
Old 09/07/2020, 17:03   #5
 
elite*gold: 0
Join Date: Jun 2020
Posts: 21
Received Thanks: 0
<DailyEntries Value="3" /> Add to XML?
loktaisong is offline  
Old 09/08/2020, 10:20   #6
 
elite*gold: 0
Join Date: Jul 2017
Posts: 380
Received Thanks: 60
Quote:
Originally Posted by loktaisong View Post
<DailyEntries Value="3" /> Add to XML?
yes
redbull2905 is offline  
Old 09/22/2020, 21:12   #7
 
elite*gold: 0
Join Date: Sep 2020
Posts: 33
Received Thanks: 1
Quote:
Originally Posted by loktaisong View Post
<DailyEntries Value="3" /> Add to XML?
But why u want to set entry for laurena
NosSupreme is offline  
Reply


Similar Threads Similar Threads
[Selling] [RAID BOOSTING] $1/RAID [LEAVES RAID WITH FULL GEAR]
10/14/2021 - Escape from Tarkov Trading - 3 Replies
:rtfm: You will leave raid with an inventory full of gear! You can bring whatever you want! I'd suggest a big 6sh118 raid backpack which I can provide. I accept PayPal, BTC or Skrill! $1/usd for first raid! Bulk raid discounts available!
Savage Raid Reborn [Factions] [Raid] [PVP] [Classes] [Rpg] [Bosses]
06/18/2014 - Minecraft Server Advertising - 1 Replies
:lol: Savage Raid Reborn :lol: IP: Play.SavageRaid.org Owners: Klowe10 & Louis1 Hello Enjin Forum Member! Welcome to a page dedicated to Savage Raid Reborn displaying its signifying great features. Please check out this amazing server and join a amazing community filled with hardcore raiders, excellent pvpers and competitive people. Become a member of this community and thrive with us. History: Savage Realms Raid has been around for 3 years. Over those 3 years, hundreds enjoyed Savage...
[Selling] Power lvling/ Looking for raid/ Proffesion lvling/ Flex raid
12/07/2013 - World of Warcraft Trading - 0 Replies
we offer a wide veriaty of services includeing power lvling, looking for raid, proffesion lvling, flex raid, mount farming and alot more upon request. we also sell gold for the cheapest price around (only on zul'jin server) . we are quick and at the same time very preffesional with getting the job done. we also have a site that you can follow up on at owowitems.com that explains all prices and forms of services. always available on skype at proofmoney2418 i have skype on my phone too so...
Apropros Huhn Raid (Dark) Ich suche Stammi Spieler auf S3 Für den Huhn Raid^^
04/27/2011 - Nostale - 3 Replies
Die Spieler sollten Eier haben, Holly, Gunner, Wk, Ice, Dg, Jäger, Bersi oder Crusi haben^^ Ansonsten Spiele ich heute den Ganzen tag Nos durch T.T Und da kommt schon a bissl lw auf^^ Wenn wir genug sind, könnt ihr auch eure Lows mitnehmen (Ihr kriegt dann 2 Kissten) Aber das Können nicht alle tun! Habe schon ein paar Ig leute die klar mitmachen würden (ca 3-5 Leute) also Meldet euch^^ Ach ja Ich bin in Mom Lv 46 mit Jäger +5 aber mache so gut wie jeden Tag dauerraids auf Ch5 oder 3! ...



All times are GMT +2. The time now is 01:36.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.