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

    • I have and selling the CMS that was used on the real L2Nostalgia.com server from 2012 and the PlusOneL2 project website and server files 🙂 if u are interested PM ME.  
    • Interlude x15 –  No soy el administrador de este servidor, pero es un nuevo proyecto que está muy bien configurado — ¡solo necesita una comunidad! Si estás buscando una experiencia nueva, equilibrada y emocionante en Interlude, este es el lugar. ¡Participa! Únete al servidor Trae tu clan o equipo ¡Ayuda a que el servidor crezca!   Fecha de Apertura 16 de Mayo de 2025 Horario de Apertura 19:00 GMT-3 Versión del Juego Interlude Versión de la Interfaz Classic (protocolo 166) Rates de EXP y SP Dinámicos Niveles 1 al 19: EXP 15, SP 10 Niveles 20 al 39: EXP 13, SP 7 Niveles 40 al 51: EXP 11, SP 3 Niveles 52 al 60: EXP 9, SP 3 Niveles 61 al 75: EXP 7, SP 1.5 Niveles 76+: EXP 2, SP 1 Otros Rates Adena: x1 Chance de Drop: x1 Chance de Spoil: x1 Cantidad de SealStone: x2 RB XP/SP: x3 RB Drop: x2 Configuraciones Únicas Hasta 3 cuentas por PC (2 gratis + 1 paga) Sistema de Enchant skill desactivado Sistema de Augment weapon desactivado Mana potion: efecto de 2000, reutilización de 15 segundos Sin auto-learn skill SP y Book para aprender skills Quests 1ª y 2ª Transferencia de Clase por Adena 3ª Transferencia de Clase por 700 Halisha Marks Subclase custom: solo hablar con las cajas de los 4 jefes Nobles Retail Recompensa de Transferencia de Profesión Recibe un ticket de 1ª profesión (artículos del starter pack) Recibe un ticket de 2ª profesión (Montura de Clase) Mejoras en el Auto-farm Hemos reestructurado la IA del auto-farm Corregida la zona de caza Configuraciones de alcance de la caza automática Clanes y Alianzas Máximo de miembros por clan: 25 miembros Máximo de clanes por alianza: 1 clan El clan ya inicia nivel 8, sin reputación y sin skills Comandos Dentro del Juego .cfg - Para ajustar configuraciones del juego .instancezone - Verificar el tiempo de instancias .sellbuff - Para comenzar a vender buffs .topclan - Para verificar el top clan .acp - Para usar el sistema de auto potion Bono de EXP Extra en la Party 6 miembros: 20% 7 miembros: 30% 8 miembros: 40% 9 miembros: 50% NPC Buff Duración: 1 hora Total de buffs: 24 + 4 (Divine Inspiration) Buffs básicos sin protección y sin profecías   Join  >> DISCORD <<    
    • 🚀 MoMoProxy Static Residential Proxies For Sale!     🔹 Stable, secure & high-anonymity 🔹 >10Mbps speed, <10ms latency 🔹 99.99% uptime & static IPs 🔹 Unlimited traffic & connections 🌍 30M+ clean residential IPs ✅ Whitelist & user/pass auth 💳 Flexible plans (7/30/90 days) 💰 From $3/IP (Pay-per-IP) 🔥 Perfect for: ✔️ Ad verification ✔️ E-commerce/social media ✔️ Data scraping ✔️ Anti-detect browsers 🆓 Start free trial today! 🔗 [Insert Link] #Proxy #ResidentialProxies #WebScraping #DigitalMarketing   1/ Why Choose MoMoProxy? ✅ Global ISP network (30M+ IPs) ✅ Dedicated dashboard for easy management ✅ 24/7 stable operation ✅ HTTP(S)/SOCKS5 support 2/ Use Cases: 📊 Ad fraud detection 🛒 Sneaker copping & e-com 📱 Social media automation 🌐 Travel aggregation & more! 3/ Get Started in 4 Steps: A. Pick MoMoProxy B. Grab your IP credentials C. Configure your tool D. Enjoy unlimited sessions!   https://momoproxy.com/static-residential-proxies https://momoproxy.com/static-residential-proxies https://momoproxy.com/static-residential-proxies    
    • ➡ Discount for your purchase: MAY2025 (10% discount) ➡ Our Online Shop: https://socnet.store  ➡ Our SMM-Boosting Panel: https://socnet.pro  ➡ Telegram Shop Bot: https://socnet.shop  ➡ Telegram Support: https://t.me/solomon_bog  ➡ Telegram Channel: https://t.me/accsforyou_shop  ➡ Discord Support: @AllSocialNetworksShop  ➡ Discord Server: https://discord.gg/y9AStFFsrh  ➡ WhatsApp Support: https://wa.me/79051904467 ➡ WhatsApp Channel: https://whatsapp.com/channel/0029Vau0CMX002TGkD4uHa2n  ➡ Email Support: solomonbog@socnet.store 
  • Topics

×
×
  • Create New...