Jump to content
  • 0

Problem With Announcements!


Question

Posted
Hello all! i have a problem! when the announcements of this event appears all players can see them but is repetable! If 5 players are online 5 annoucments in each player appears...

Thanks in advance!

 

 

 

/*

* This program is free software: you can redistribute it and/or modify it under

 * the terms of the GNU General Public License as published by the Free Software

 * Foundation, either version 3 of the License, or (at your option) any later

 * version.

 *

 * This program is distributed in the hope that it will be useful, but WITHOUT

 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more

 * details.

 *

 * You should have received a copy of the GNU General Public License along with

 * this program. If not, see <http://www.gnu.org/licenses/>.

 */

package net.sf.l2j.gameserver.model.entity;

 

import java.util.Collection;

 

import net.sf.l2j.Config;

import net.sf.l2j.gameserver.ThreadPoolManager;

import net.sf.l2j.gameserver.Announcements;

import net.sf.l2j.gameserver.model.L2World;

import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;

 

 

/**

 * @creado KingBorracho69

 *

 */

public class AutoRewarder

{      

 

       public static void getInstance()

       {

               ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Runnable()

               {

                       public void run()

                       {

                               AutoReward();

                       }

                      

               }, 0,Config.AUTO_REWARD_DELAY * 1000);

       }

       public static void AutoReward()

       {

               Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();

               for (L2PcInstance p: pls)

               {

                  

                  Announcements.announceToAll("Online Time Reward!");

                       Announcements.announceToAll("Congratulations to all players!");

                       Announcements.announceToAll("Next reward in 30 minutes!");

                       p.addItem("Auto Reward Online", Config.AUTO_REWARD_ID, Config.AUTO_REWARD_COUNT, p, true);

               }

       }

 

}

8 answers to this question

Recommended Posts

  • 0
Posted (edited)

Looks terribly wrong, both writting style and idea. You want to reward any online players, even shops ? Secondly, the reward section should be a subsection of a bigger engine ; by itself it runs independently from the moment you getInstance() it, and you can't even stop it to run.

ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Runnable()
{
     public void run()
     {
          Announcements.announceToAll("Online Time Reward!");
          Announcements.announceToAll("Congratulations to all players!");
          Announcements.announceToAll("Next reward in 30 minutes!");

          for (L2PcInstance p: L2World.getInstance().getAllPlayers().values())
               p.addItem("Auto Reward Online", Config.AUTO_REWARD_ID, Config.AUTO_REWARD_COUNT, p, true);

     }
}, 0,Config.AUTO_REWARD_DELAY * 1000);
Edited by Tryskell
  • 0
Posted

i am just niwbie in java language.... i just wanna reward the online players... all of them! Everything working good but when the Announcments appears as many players are online they will see the same ammount of Announcments... 5 players online... 5 same announcments!

  • 0
Posted (edited)

Because you wrote the announce under the for loop. Use code Tk provided.

Edited by SweeTs
  • 0
Posted (edited)
 public static void AutoReward()

       {

               Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();

               for (L2PcInstance p: pls)

               {

                  

                  Announcements.announceToAll("Online Time Reward!");

                       Announcements.announceToAll("Congratulations to all players!");

                       Announcements.announceToAll("Next reward in 30 minutes!");

                       p.addItem("Auto Reward Online", Config.AUTO_REWARD_ID, Config.AUTO_REWARD_COUNT, p, true);

               }

       }

Translation of your code.

When there is a player online announce to all bla bla bla.

Announcements should happen 1 time so they dont need to be inside any loop for players. Announcements is global function, you dont need to cast it for each player. The loop should just be for the individual global reward.

 

The bad way of writing shouldnt really worry you right now because you are newbie but, try to check how other global methods are handled in your pack or even check others codes doing global stuff so your writing will get more and more optimized.

Edited by TheAllKnowing
Guest
This topic is now closed to further replies.


  • Posts

    • Running ads or working with voice verification? We provide the essential tools for arbitrage, marketing, e-commerce, and anonymous operations! Ready-to-use Google Ads and Google Voice accounts — verified, warmed up, with logs and full access. Perfect for: ✔ Media buyers launching campaigns via Google ✔ Agencies and PPC specialists ✔ Businesses needing fast and safe ad launches without bans ✔ Users working with Google Voice (2nd-step verification, US numbers, etc.) ✔ Google Ads: accounts with budgets from €10 to $1000+, with or without verification ✔ All come with 2FA, backup email, cookies, and UserAgent Promo code: GOOGLE10 (10% discount) Payment: bank cards · crypto · other popular methods How to buy: ➡ Online Store: Click ➡ Telegram Bot: Click Other services: ➡ SMM Panel: Click Assortment: ➡Google Voice Accounts (GMAIL US NEW) | Year: 2024 (random) | Phone Verified | Price from: $9.00 ➡Google Voice Accounts (GMAIL US OLD) | Year: 2006–2018 | Phone Verified | Price from: $14.00 ➡Google Ads Account USA/EUROPE (UK, Germany, France, etc.) | Manually farmed 7+ days | Created ad account | Includes 2FA, backup codes, backup email, UserAgent, Cookies | Price from: $13.00 ➡Google Ads Account USA/EUROPE | VERIFICATION COMPLETED – €10 BILL | Manually farmed 7+ days | Ad created | Includes 2FA, backup email, UserAgent, Cookies | Price from: $55.00 ➡Google Ads Account EUROPE/USA with ad campaigns and spend $100/$500/$1000+ | Verification not completed | Full access & setup | Price from: $200.00 ➡Google Ads Account EUROPE/USA with ad campaigns and spend $100/$500/$1000+ | Verification completed | Full access & setup | Price from: $400.00 Regular buyers get extra discounts and promo codes! Support: ➡ Telegram: https://t.me/solomon_bog ➡ Discord: https://discord.gg/y9AStFFsrh ➡ WhatsApp: https://wa.me/79051904467 ➡ ✉ Email: solomonbog@socnet.store ➡ Telegram Channel: https://t.me/accsforyou_shop You can also use these contacts to: — Discuss wholesale orders — Propose partnerships (current partners: https://socnet.bgng.io/partners ) — Become a supplier SocNet — Digital Goods & Premium Subscriptions Store
    • Running ads or working with voice verification? We provide the essential tools for arbitrage, marketing, e-commerce, and anonymous operations! Ready-to-use Google Ads and Google Voice accounts — verified, warmed up, with logs and full access. Perfect for: ✔ Media buyers launching campaigns via Google ✔ Agencies and PPC specialists ✔ Businesses needing fast and safe ad launches without bans ✔ Users working with Google Voice (2nd-step verification, US numbers, etc.) ✔ Google Ads: accounts with budgets from €10 to $1000+, with or without verification ✔ All come with 2FA, backup email, cookies, and UserAgent Promo code: GOOGLE10 (10% discount) Payment: bank cards · crypto · other popular methods How to buy: ➡ Online Store: Click ➡ Telegram Bot: Click Other services: ➡ SMM Panel: Click Assortment: ➡Google Voice Accounts (GMAIL US NEW) | Year: 2024 (random) | Phone Verified | Price from: $9.00 ➡Google Voice Accounts (GMAIL US OLD) | Year: 2006–2018 | Phone Verified | Price from: $14.00 ➡Google Ads Account USA/EUROPE (UK, Germany, France, etc.) | Manually farmed 7+ days | Created ad account | Includes 2FA, backup codes, backup email, UserAgent, Cookies | Price from: $13.00 ➡Google Ads Account USA/EUROPE | VERIFICATION COMPLETED – €10 BILL | Manually farmed 7+ days | Ad created | Includes 2FA, backup email, UserAgent, Cookies | Price from: $55.00 ➡Google Ads Account EUROPE/USA with ad campaigns and spend $100/$500/$1000+ | Verification not completed | Full access & setup | Price from: $200.00 ➡Google Ads Account EUROPE/USA with ad campaigns and spend $100/$500/$1000+ | Verification completed | Full access & setup | Price from: $400.00 Regular buyers get extra discounts and promo codes! Support: ➡ Telegram: https://t.me/solomon_bog ➡ Discord: https://discord.gg/y9AStFFsrh ➡ WhatsApp: https://wa.me/79051904467 ➡ ✉ Email: solomonbog@socnet.store ➡ Telegram Channel: https://t.me/accsforyou_shop You can also use these contacts to: — Discuss wholesale orders — Propose partnerships (current partners: https://socnet.bgng.io/partners ) — Become a supplier SocNet — Digital Goods & Premium Subscriptions Store
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock