Jump to content
  • 0

Making The Code Execute


Question

Posted

Greetings mxc community,

 

This is will be the most silly question that you'd ever heard from someone and apologize for that..

 

I will try to demonstrate my issue so you guys can clearly understand it.

 

Let's say that i have the following class inside one package 

public class Demonstration {

  public Demonstration() {
    }
  
  public void doStuff() {
    //code
    }

Normally i'd create a new  Demonstration object inside the Main class to call its method. However, when it comes to l2j i dont know how to actually execute the code from inside the game.

 

I can write newbie code but i cant even test if it is actually working!

 

Any help would be highly appreciated

 

Thank you

11 answers to this question

Recommended Posts

  • 0
Posted

depends on when you want it to execute?

 

Server startup ? Gameserver.java

PvP kill? L2PcInstance dodie or increasePvPKills methods

 

keep in mind that the doStuff method must be static to be accessed or you need a new Instance of the object or more simply an instanceholder

  • 0
Posted

You have to know the action that executes what you want for example if you want a simple message to show up when you pick up whatever stuff you put your code into the pickUpMe() or whatever its name or you can put it into the addItem method since its called on inventory update or even add it to the getItem packet. Mostly you need to experiment where its better to put it but thats the wasiest way, try to avoid creating a lot of small classes for tiny bit of things.

  • 0
Posted

It entirely depends of what you want to do.

 

Basically you got the possibility to :

  • instantiate a class, such as L2PcInstance, holding different parameters for different players. You create a new object, fill infos, destroy the object.
  • "static-fied" the class using a singleton, such as any datatable holding structure, in order to get a unique reference of that class. You access it using "ClassName.getInstance().methodName()". You laso have the possibility to use static keyword on a method if all parameters are passed on the method, and it doesn't use any class variable (or until it static aswell).

Tell what you want to do.

  • 0
Posted

Oh, i see

 

Let's say that i want to PM - spam each online player over a random amount a time, Would the following code actually do something if i initialize it first in gameserver class as a thread?


public class Demonstration implements Runnable {
  
  private L2PCInstance activeChar;
 
    public Demonstration() {
      activeChar = ??? // How do i actually initialize this variable to represent each online player? :(
    }
  
  public void doStuff() {
    activeChar.sendPMMethod("This is just a test");
    }

  public void run() {
    doStuff();
    Thread.sleep(new Random().nextInt(5000));
    }
}

Thanks for your replies guys :)

  • 0
Posted (edited)

I guess you could do it like that. You could put it under doStuff() and delete Demonstaration() ? Correct me if I'm wrong.. :P

        CreatureSay cs = new CreatureSay(activeChar.getObjectId(), Say2.TELL, activeChar.getName(), text);
        
        Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
        
        for (L2PcInstance player : pls)
            player.sendPacket(cs);
        
        activeChar.sendPacket(cs);
Edited by SweeTs
  • 0
Posted

Yah.. so true, then it becomes 1 line :P

 

 

Broadcast.toAllOnlinePlayers(new CreatureSay(activeChar.getObjectId(), Say2.TELL, activeChar.getName(), text));
  • 0
Posted (edited)

TreadPoolManager.getInstance().scheduleGeneralAtFixedRate(() -> {Broadcast.toAllOnline(new CreatureSay(blabla)}); java8 

 

Oh, i see

 

Let's say that i want to PM - spam each online player over a random amount a time, Would the following code actually do something if i initialize it first in gameserver class as a thread?


public class Demonstration implements Runnable {
  
  private L2PCInstance activeChar;
 
    public Demonstration() {
      activeChar = ??? // How do i actually initialize this variable to represent each online player? :(
    }
  
  public void doStuff() {
    activeChar.sendPMMethod("This is just a test");
    }

  public void run() {
    doStuff();
    Thread.sleep(new Random().nextInt(5000));
    }
}

Thanks for your replies guys :)

 

Even if that was the way your constructor misses the L2PcInstance parameter to initialize your var

Edited by xdem
  • 0
Posted

 

Yah.. so true, then it becomes 1 line :P

Broadcast.toAllOnlinePlayers(new CreatureSay(activeChar.getObjectId(), Say2.TELL, activeChar.getName(), text));

 

 

its still the same code ;p

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • My official facebook profile!: https://www.facebook.com/spectrumL2 Specifications: Revamped L2JACIS revision FROM the core Private project!!! Revision that has been receiving corrections for over 3 years!!! Events already installed in the revision: TVT CTF KTB PARTY FARM SPOIL EVENT CRAZY RATES TOURNAMENT TIME ZONE (INSTANCE) All working correctly!!! SIEGE ESSENTIAL FEATURES: Walls fix Gates fix Flags fix 100% functional: OLYMPIADS: Implemented settings Hero receives enchanted Weapons with equal status PvP Weapons Optional /true/false Hero can acquire all Hero Weapons Optional true/false OTHER IMPLEMENTATIONS: Teleport fixed (directly to Giran) Teleport effect classic Vip skins vip collor name Pack NPCs with effect already configured BOSES already configured Mobs already configured CLASS BALANCE SPECIAL SYSTEM We have a SPECIAL system developed for Class Balance with only 1 digit in XML %tage of configurable debuffs Player limitation system in BOSES or PvP zones BS blocking system in FLEG zones or events Among others dozens of improvements made in the review... price: 390 USD !  OBS: WE CAN CHANGE THE BANNER AND NAME OF THE SERVICE TO THE ONE OF YOUR PREFERENCE BUT THE SETTINGS MUST BE KEPT ANY CHANGES REQUIRE ADDITION        
    • Server is Online – 1,000+ Active Players! We’re excited to announce the addition of a Europe Proxy to improve connectivity for our EU players! Clans can now benefit from VIP Access to help you catch up faster. 🎯 If you're a clan leader with at least 9 active members, join our Discord and open a ticket to claim your VIP rewards!  
    • The Telegram team is rolling out a new batch of Stars-only gifts you’ll be able to mint as NFTs. Don’t miss your chance to join the next Telegram trend and earn from it! Buy Telegram Stars cheap and KYC-free 1 Star from $0.0149 (min. 50 Stars, bulk discounts available) Promo code STARS5 — 5 % off Pay any way you like: bank cards · crypto · other popular methods How to purchase: ➡Online Store — Click ➡ Telegram bot — Click Other services: ➡ SMM panel — Click Regular buyers get extra discounts and promo codes. Support: ➡ Telegram: https://t.me/solomon_bog ➡ Telegram channel: https://t.me/accsforyou_shop ➡ Discord: https://discord.gg/y9AStFFsrh ➡ WhatsApp: https://wa.me/79051904467 ➡ Email: solomonbog@socnet.store Use these contacts to discuss wholesale orders, partnerships (current list: https://socnet.bgng.io/partners) or to become a supplier. SocNet — your shop for digital goods and premium subscriptions
  • 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