[ENGLISH] [Prrovoss] PopupNotifications menu

User Tag List

Page 3 of 5 FirstFirst 12345 LastLast
Results 31 to 45 of 75
  1. #31
    FullmetalEnvy's Avatar Member CoreCoins Purchaser
    Reputation
    8
    Join Date
    Mar 2017
    Posts
    21
    Thanks G/R
    16/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by prrovoss View Post
    oh yeah i think now i see it^^
    in the quote you used, the third line should look like this: namespace Turbo.Plugins.Prrovoss.Popups
    the one you used was from before i moved the popups into a subfolder.
    Yeah well.. that worked Thanks Prrovoss. Should have seen it but didn't ^-^
    Don't Envy the Lust and Greed that Gluttony has for eating things. Be careful about your Pride, because it can drag your Sloth to Wrath.

    [ENGLISH] [Prrovoss] PopupNotifications
  2. #32
    jaeheung09's Avatar Active Member
    Reputation
    23
    Join Date
    Nov 2017
    Posts
    109
    Thanks G/R
    8/21
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Would you consider my request and answer the question?

    1. Is there anyway to have a popup notification before 4 secs of my own CoE?

    2. What is the number "0", "1", "2" right after buff number in BuffAppliedPopup.cs?
    // BuffsToWatch.Add(new Buff(246562, 1, "Flying Dragon", "", "Buff activated", 3000));

    Thanks in advance.

  3. #33
    pagslol's Avatar Member
    Reputation
    2
    Join Date
    Oct 2017
    Posts
    7
    Thanks G/R
    11/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    How about a popup for when you Proc (GTFO)

  4. #34
    wickedazz's Avatar Member
    Reputation
    6
    Join Date
    May 2018
    Posts
    25
    Thanks G/R
    4/5
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hey together

    First, many thanks for this awesome plugin!

    I'm trying to extend the functionality to show some more Popups and even color coded ones depending on event (Goblin appeared: purple, Ancient dropped: yellow, Primal dropped: red, buff applied: green a.s.o.)

    Now I got stuck with the ActorAppearedPopup...
    I'm trying to let a popup appear when there are open Portals like "Whimsydale", Vault or such.

    I got managed to have the popup to appear, but it will appear infinite times while the portal is in range (memory).

    How can I achieve that those popups just appear once? Same behaviour btw for bringing up a popup when a Horadric Cache dropped on Floor. Just after pickung it up, the popup stopped spamming.

    My code atm (ActorAppearedPopup.cs):

    Code:
    using System.Collections.Generic;
    using System.Linq;
    using Turbo.Plugins.Default;
    
    namespace Turbo.Plugins.Prrovoss.Popups
    {
        public class ActorAppearedPopup : BasePlugin, IInGameWorldPainter
        {
            public class MyActor
            {
                public List<IWorldCoordinate> FloorCoords { get; set; }
                public uint Sno { get; set; }
                public string Name { get; set; }
                public string Hint { get; set; }
                public string Title { get; set; }
                public int Duration { get; set; }
                public string Type { get; set; }
    
                public MyActor(uint sno, string name, string hint, string title, int duration, string type)
                {
                    FloorCoords = new List<IWorldCoordinate>();
                    this.Sno = sno;
                    this.Hint = hint;
                    this.Name = name;
                    this.Title = title;
                    this.Duration = duration;
                    this.Type = type;
                }
            }
    
            public List<MyActor> ActorsToWatch { get; set; }
    
            public override void Load(IController hud)
            {
                base.Load(hud);
                ActorsToWatch = new List<MyActor>();
    
    /*
                _actorSnoList.Add(207706); // Mysterious Chest
                _actorSnoList.Add(451035); // Mysterious Chest
                _actorSnoList.Add(451028); // Mysterious Chest
                _actorSnoList.Add(451030); // Mysterious Chest
                _actorSnoList.Add(451047); // Mysterious Chest
                _actorSnoList.Add(451029); // Mysterious Chest
                _actorSnoList.Add(451038); // Mysterious Chest
                _actorSnoList.Add(451034); // Mysterious Chest
                _actorSnoList.Add(451033); // Mysterious Chest
                _actorSnoList.Add(451027); // Mysterious Chest
                _actorSnoList.Add(451039); // Mysterious Barrel
                _actorSnoList.Add(211861); // Pinata
                _actorSnoList.Add(457828); // Wirt's Stash
                _actorSnoList.Add(225782); // Bishibosh's Remains
                _actorSnoList.Add(173325); // Anvil of Fury
                _actorSnoList.Add(113845); // Fallen Shrine
     */
    
                // // Pylons
                // Shield Pylon
                ActorsToWatch.Add(new MyActor(330698, "Shield Pylon", "", "Appeared", 5000, "Pylon"));
                // Channeling Pylon
                ActorsToWatch.Add(new MyActor(330697, "Channeling Pylon", "", "Appeared", 5000, "Pylon"));
                // Power Pylon
                ActorsToWatch.Add(new MyActor(330695, "Power Pylon", "", "Appeared", 5000, "Pylon"));
                // Conduit Pylon
                ActorsToWatch.Add(new MyActor(398654, "Conduit Pylon", "", "Appeared", 5000, "Pylon"));
    
                // // Portals
                // Whimsydale
                ActorsToWatch.Add(new MyActor(405590, "Whimsydale", "", "Portal open", 5000, "Portal"));
                // Not a Cow Level
                ActorsToWatch.Add(new MyActor(434659, "Not a Cow Level", "", "Portal open", 5000, "Portal"));
                // The Vault
                //ActorsToWatch.Add(new MyActor(XXXXXX, "The Vault", "", "Portal open", 5000, "Portal"));
                // Normal Rift
                ActorsToWatch.Add(new MyActor(345935, "Normal Rift", "", "Portal open", 5000, "Portal"));
                // Greater Rift
                ActorsToWatch.Add(new MyActor(396751, "Greater Rift", "", "Portal open", 5000, "Portal"));
    
                // // Specials
                // Pinata
                ActorsToWatch.Add(new MyActor(457175, "Pinata", "", "Appeared", 5000, "Special"));
            }
    
            private bool EqualCoordinates(IWorldCoordinate a, IWorldCoordinate b)
            {
                return ((a.X == b.X) && (a.Y == b.Y) && (a.Z==b.Z));
            }
    
            public void Add(uint sno, string name, string hint, string title, int duration, string type)
            {
                ActorsToWatch.Add(new MyActor(sno, name, hint, title, duration, type));
            }
    
            public void PaintWorld(WorldLayer layer)
            {
                foreach (MyActor actor in ActorsToWatch)
                {
                    var candidates = Hud.Game.Actors.Where(a => a.SnoActor.Sno == actor.Sno && !(actor.FloorCoords.Any(c => EqualCoordinates(c, a.FloorCoordinate))));
                    if (candidates.Count() != 0)
                    {
                        foreach (IActor candidate in candidates)
                        {
                            Hud.RunOnPlugin<PopupNotificationsPlugin>(plugin =>
                            {
                                plugin.Show(actor.Name, actor.Title, actor.Duration, actor.Hint, actor.Type);
                            });
    
                            if (candidate.IsClickable) {
                                actor.FloorCoords.Add(candidate.FloorCoordinate);
                            }
                        }
                    }
                }
            }
    
            public ActorAppearedPopup()
            {
                Enabled = true;
            }
        }
    }

    Thanks in advance for your help!

    Cheers

  5. #35
    prrovoss's Avatar Contributor
    Reputation
    152
    Join Date
    Jan 2013
    Posts
    420
    Thanks G/R
    23/130
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by wickedazz View Post
    Hey together

    First, many thanks for this awesome plugin!

    I'm trying to extend the functionality to show some more Popups and even color coded ones depending on event (Goblin appeared: purple, Ancient dropped: yellow, Primal dropped: red, buff applied: green a.s.o.)

    Now I got stuck with the ActorAppearedPopup...
    I'm trying to let a popup appear when there are open Portals like "Whimsydale", Vault or such.

    I got managed to have the popup to appear, but it will appear infinite times while the portal is in range (memory).

    How can I achieve that those popups just appear once? Same behaviour btw for bringing up a popup when a Horadric Cache dropped on Floor. Just after pickung it up, the popup stopped spamming.

    My code atm (ActorAppearedPopup.cs):

    Code:
    using System.Collections.Generic;
    using System.Linq;
    using Turbo.Plugins.Default;
    
    namespace Turbo.Plugins.Prrovoss.Popups
    {
        public class ActorAppearedPopup : BasePlugin, IInGameWorldPainter
        {
            public class MyActor
            {
                public List<IWorldCoordinate> FloorCoords { get; set; }
                public uint Sno { get; set; }
                public string Name { get; set; }
                public string Hint { get; set; }
                public string Title { get; set; }
                public int Duration { get; set; }
                public string Type { get; set; }
    
                public MyActor(uint sno, string name, string hint, string title, int duration, string type)
                {
                    FloorCoords = new List<IWorldCoordinate>();
                    this.Sno = sno;
                    this.Hint = hint;
                    this.Name = name;
                    this.Title = title;
                    this.Duration = duration;
                    this.Type = type;
                }
            }
    
            public List<MyActor> ActorsToWatch { get; set; }
    
            public override void Load(IController hud)
            {
                base.Load(hud);
                ActorsToWatch = new List<MyActor>();
    
    /*
                _actorSnoList.Add(207706); // Mysterious Chest
                _actorSnoList.Add(451035); // Mysterious Chest
                _actorSnoList.Add(451028); // Mysterious Chest
                _actorSnoList.Add(451030); // Mysterious Chest
                _actorSnoList.Add(451047); // Mysterious Chest
                _actorSnoList.Add(451029); // Mysterious Chest
                _actorSnoList.Add(451038); // Mysterious Chest
                _actorSnoList.Add(451034); // Mysterious Chest
                _actorSnoList.Add(451033); // Mysterious Chest
                _actorSnoList.Add(451027); // Mysterious Chest
                _actorSnoList.Add(451039); // Mysterious Barrel
                _actorSnoList.Add(211861); // Pinata
                _actorSnoList.Add(457828); // Wirt's Stash
                _actorSnoList.Add(225782); // Bishibosh's Remains
                _actorSnoList.Add(173325); // Anvil of Fury
                _actorSnoList.Add(113845); // Fallen Shrine
     */
    
                // // Pylons
                // Shield Pylon
                ActorsToWatch.Add(new MyActor(330698, "Shield Pylon", "", "Appeared", 5000, "Pylon"));
                // Channeling Pylon
                ActorsToWatch.Add(new MyActor(330697, "Channeling Pylon", "", "Appeared", 5000, "Pylon"));
                // Power Pylon
                ActorsToWatch.Add(new MyActor(330695, "Power Pylon", "", "Appeared", 5000, "Pylon"));
                // Conduit Pylon
                ActorsToWatch.Add(new MyActor(398654, "Conduit Pylon", "", "Appeared", 5000, "Pylon"));
    
                // // Portals
                // Whimsydale
                ActorsToWatch.Add(new MyActor(405590, "Whimsydale", "", "Portal open", 5000, "Portal"));
                // Not a Cow Level
                ActorsToWatch.Add(new MyActor(434659, "Not a Cow Level", "", "Portal open", 5000, "Portal"));
                // The Vault
                //ActorsToWatch.Add(new MyActor(XXXXXX, "The Vault", "", "Portal open", 5000, "Portal"));
                // Normal Rift
                ActorsToWatch.Add(new MyActor(345935, "Normal Rift", "", "Portal open", 5000, "Portal"));
                // Greater Rift
                ActorsToWatch.Add(new MyActor(396751, "Greater Rift", "", "Portal open", 5000, "Portal"));
    
                // // Specials
                // Pinata
                ActorsToWatch.Add(new MyActor(457175, "Pinata", "", "Appeared", 5000, "Special"));
            }
    
            private bool EqualCoordinates(IWorldCoordinate a, IWorldCoordinate b)
            {
                return ((a.X == b.X) && (a.Y == b.Y) && (a.Z==b.Z));
            }
    
            public void Add(uint sno, string name, string hint, string title, int duration, string type)
            {
                ActorsToWatch.Add(new MyActor(sno, name, hint, title, duration, type));
            }
    
            public void PaintWorld(WorldLayer layer)
            {
                foreach (MyActor actor in ActorsToWatch)
                {
                    var candidates = Hud.Game.Actors.Where(a => a.SnoActor.Sno == actor.Sno && !(actor.FloorCoords.Any(c => EqualCoordinates(c, a.FloorCoordinate))));
                    if (candidates.Count() != 0)
                    {
                        foreach (IActor candidate in candidates)
                        {
                            Hud.RunOnPlugin<PopupNotificationsPlugin>(plugin =>
                            {
                                plugin.Show(actor.Name, actor.Title, actor.Duration, actor.Hint, actor.Type);
                            });
    
                            if (candidate.IsClickable) {
                                actor.FloorCoords.Add(candidate.FloorCoordinate);
                            }
                        }
                    }
                }
            }
    
            public ActorAppearedPopup()
            {
                Enabled = true;
            }
        }
    }

    Thanks in advance for your help!

    Cheers


    to answer your post, read the first post of the thread. ive reworked the popups. Note that LegendaryDroppedPopup now is called ItemDroppedPopup, so you have to create a new file and delete the old one. Or overwrite it..
    - the whole customization now takes place in your main plugin, so you dont have to redo all your customization when i update the plugin.
    - ive also added a check that prevents the popups from constantly popping up when a portal is open. there is a limitation: when you leave the scene the portal is wiped from memory. if you reenter it, the portal appears again and to thud it looks like its a new portal. there is no way to work around that as fair as i could see.
    - ive added custom decorators. so now its possible to have different looking popups for ancients, primals, rifts, grifts, activated buffs, whatever. see the example customization of the ItemDroppedPopup to get an idea on how to use them

  6. Thanks wickedazz (1 members gave Thanks to prrovoss for this useful post)
  7. #36
    wickedazz's Avatar Member
    Reputation
    6
    Join Date
    May 2018
    Posts
    25
    Thanks G/R
    4/5
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Many thanks Prrovoss! I'll have a dive into that on weekend (will be a bit more work on my side whilst I've creted an own plugin which includes all the plugins I find useful - I borrowed much plugin codes from diffrerent plugins out there and added a lot of customization to them ;-). And for everyone now wants to get this plugin: NO, I won't share this plugin, whilst most of the code isn't mine and it's on many places hard customized for my own needs ;-) )
    Last edited by wickedazz; 05-15-2018 at 12:48 PM.

  8. #37
    johnbl's Avatar Active Member
    Reputation
    33
    Join Date
    Dec 2016
    Posts
    129
    Thanks G/R
    347/16
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hi prrovoss, do you know what I'm doing wrong with this plugin?

    I'm trying to to what wickeddazz did for the cursed peat bounty, but as a generic bounty plugin using your popup notifications, but it seems I'm getting an infinite loop. Whenever one of the bounties is available, 13 popups appear for it and never disappear.

  9. #38
    KhaledSurtontorse's Avatar Member
    Reputation
    1
    Join Date
    Jun 2018
    Posts
    1
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hi prrovoss, I have a question.

    Is it possible to up the range of the popup when a legendary drop ?
    I mean, when I am at the end of the room and someone open a chest at the start so I don't have to look everysingle time on the map.

  10. #39
    prrovoss's Avatar Contributor
    Reputation
    152
    Join Date
    Jan 2013
    Posts
    420
    Thanks G/R
    23/130
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by johnbl View Post
    Hi prrovoss, do you know what I'm doing wrong with this plugin?

    I'm trying to to what wickeddazz did for the cursed peat bounty, but as a generic bounty plugin using your popup notifications, but it seems I'm getting an infinite loop. Whenever one of the bounties is available, 13 popups appear for it and never disappear.
    well, you have to keep a list of bounties that you have already created a popup for. check my other example plugins, in most of them you will find some kind of list that holds all the actors, monsters etc that have already been "shown". your plugin will be scheduled (call to the PaintTopInGame function) about 60 times a second. and every time it is scheduled, it will find a the bounty you are looking for (if its present in the game). i dont know if its possible to determine a unique bounty... maybe try the Quest.CreatedOn property. If this is the ticks since thuds startup, this will suffice to uniquely identify a bounty i guess.


    Originally Posted by KhaledSurtontorse View Post
    Hi prrovoss, I have a question.

    Is it possible to up the range of the popup when a legendary drop ?
    I mean, when I am at the end of the room and someone open a chest at the start so I don't have to look everysingle time on the map.
    nope, there is no way to do that. thud provides everything that is present in the memory of the d3 process. so if it doesnt inform my plugin about a new item, it just doesnt know about this item.

  11. Thanks johnbl (1 members gave Thanks to prrovoss for this useful post)
  12. #40
    johnbl's Avatar Active Member
    Reputation
    33
    Join Date
    Dec 2016
    Posts
    129
    Thanks G/R
    347/16
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by prrovoss View Post
    well, you have to keep a list of bounties that you have already created a popup for. check my other example plugins, in most of them you will find some kind of list that holds all the actors, monsters etc that have already been "shown". your plugin will be scheduled (call to the PaintTopInGame function) about 60 times a second. and every time it is scheduled, it will find a the bounty you are looking for (if its present in the game). i dont know if its possible to determine a unique bounty... maybe try the Quest.CreatedOn property. If this is the ticks since thuds startup, this will suffice to uniquely identify a bounty i guess.
    Thanks a lot prrovoss. I fixed it here by adding a "Displayed" variable to the bounties.

    The list can be customized with:

    Code:
    Hud.RunOnPlugin<Prrovoss.Popups.BountyAppearedPopup>(plugin =>
    {
    	//sno, name, hint, title, duration (in ms), custom decorator (ignore if not needed)
    	plugin.Add(375278, "The Cursed Peat", "", "Bounty available", 5000);
    	//plugin.Add(347095, "Kill The Dataminer", "", "Bounty available", 5000);
    	//plugin.Add(361354, "Kill Captain Clegg", "", "Bounty available", 5000);
    	//plugin.Add(361352, "Kill Radnoj", "", "Bounty available", 5000);
    	//plugin.Add(345517, "Clear The Crypt Of The Ancients", "", "Bounty available", 5000);
    	//plugin.Add(345520, "Clear Warrior's Rest", "", "Bounty available", 5000);
    	//plugin.Add(345500, "Carrion Farm", "", "Bounty available", 5000);
    	//plugin.Add(345505, "Eternal War", "", "Bounty available", 5000);
    	//plugin.Add(369944, "Last Stand Of The Ancients", "", "Bounty available", 5000);
    	//plugin.Add(345502, "The Cursed Cellar", "", "Bounty available", 5000);
    });
    Last edited by johnbl; 07-01-2018 at 05:14 PM.

  13. #41
    Darkwalker88's Avatar Member
    Reputation
    1
    Join Date
    Jan 2018
    Posts
    7
    Thanks G/R
    2/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hi all, Sorry to ask but where can i download the file?

  14. #42
    itsmylife's Avatar Active Member
    Reputation
    23
    Join Date
    Jun 2012
    Posts
    232
    Thanks G/R
    32/22
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Darkwalker88 View Post
    Hi all, Sorry to ask but where can i download the file?
    There's a link in the first post of the thread right below picture

    -->
    This plugin consists of one main file:
    /plugins/Prrovoss/Popups/PopupNotifications.cs

  15. #43
    Anthem2134's Avatar Member
    Reputation
    2
    Join Date
    Jul 2018
    Posts
    32
    Thanks G/R
    2/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    i download the file create a new folder but still the plugin don't work, any idea how to fix this?

  16. #44
    prrovoss's Avatar Contributor
    Reputation
    152
    Join Date
    Jan 2013
    Posts
    420
    Thanks G/R
    23/130
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Anthem2134 View Post
    i download the file create a new folder but still the plugin don't work, any idea how to fix this?
    can you provide a screenshot of the folder that contains the plugin?

  17. #45
    Anthem2134's Avatar Member
    Reputation
    2
    Join Date
    Jul 2018
    Posts
    32
    Thanks G/R
    2/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by prrovoss View Post
    can you provide a screenshot of the folder that contains the plugin?
    https://s33.postimg.cc/vfvvsij5r/FASDASDASD.png

Page 3 of 5 FirstFirst 12345 LastLast

Similar Threads

  1. English --> Chinese
    By Login Error in forum Community Chat
    Replies: 4
    Last Post: 02-04-2008, 07:00 PM
  2. [Guide] Proper English Language
    By aggiish in forum Community Chat
    Replies: 31
    Last Post: 02-04-2008, 02:29 PM
  3. Omg,Funniest Thing I ever saw!!! ENGLISH PWNED!!!!
    By anmer in forum Screenshot & Video Showoff
    Replies: 10
    Last Post: 11-12-2007, 10:15 AM
  4. Chinese Names in English WoW
    By pandaman in forum World of Warcraft Exploits
    Replies: 8
    Last Post: 08-12-2006, 05:40 AM
All times are GMT -5. The time now is 11:43 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search