Jump to content
  • 0

[HELP] Custom Titles Based on PVP points..


ZeroCool22

Question

Well first hi to all the comunity of Maxcheaters, i m starting in this of l2j servers, i m thinking in mount a l2j server last revision L2jServer rev.6007 (support for gracia final).

 

I have the basics programs like eclipse, navicat, etc...

 

My server wil lbe oriented to PVP, but i wanna put a customs titles for pvp, "not the typical NICK CHANGE OF COLOR" i wanna make something like this:

 

portablebuffscv4.jpg

 

when the player start he have the title Novice, and when start getting PVP the titles goes change example: 20 PVP's Warrior, 80 Soldier, 140 Elite Soldier, 200 Champion etc...

 

one guy give me this code bit i not see where i put the names of titles i think this code is only for the nicks colors..?

Link to comment
Share on other sites

14 answers to this question

Recommended Posts

  • 0

First of all U can make this Buffer beacuse as interpid Told me there are not distance for it only skilled devs can make some and About the rank system u want hm just go read some books and some topics about java basics maybe u understand how to start making your codes :)

 

allways friendly :P

Link to comment
Share on other sites

  • 0

about the flute , its already shared , search

 

 

about the 2nd one

 

its easy,

 

could be smth like that

 

if(activeChar.getPvpKills()>20)

{

activeChar.setTitle("Newbie");

}

else if(activeChar.getPvpKills()>20)

{

activeChar.setTitle("Veteran");

}

 

place it to l2pcinstance and modify it as you wish

Link to comment
Share on other sites

  • 0

Flute allready shared but if someone use it and someone use phx he can stole all skills ... and all items free beacuse there arent exits any distance checks for it :)

Link to comment
Share on other sites

  • 0

Flute allready shared but if someone use it and someone use phx he can stole all skills ... and all items free beacuse there arent exits any distance checks for it :)

 

if you take a code from a begginer without knowing how to stop the bypass methods then you are the noob that takes it and not the one who share it.

Link to comment
Share on other sites

  • 0

about the flute , its already shared , search

 

 

about the 2nd one

 

its easy,

 

could be smth like that

 

if(activeChar.getPvpKills()>20)

{

activeChar.setTitle("Newbie");

}

else if(activeChar.getPvpKills()>20)

{

activeChar.setTitle("Veteran");

}

 

place it to l2pcinstance and modify it as you wish

 

Thx for help me with the code i knoe some ppl here maybe think is not good give the wrok made but this is a great help for a guy like me who don't know much java i m starting in this wolrd of code's, i m trying to lern some of java "is really hard make this alone" but i know this is not a excuse, i m learning first how work all the configs for a server, for what is a every program etc.. i have reading this forum like 5 hours this is really amazing comunity a lot of ideas and creative ppl. again very thx... is good fiind some amigable comunity.

 

i m working with this:

 

version=${l2j.revision}

    builddate=20090522_0854

      detailed info:

            committed-rev="3027"

            name=""

            committed-date="2009-05-22T10:32:07.061060Z"

            url="http://www.l2jserver.com/svn/trunk/L2_GameServer"

            last-author="_DS_"

            kind="dir"

            uuid="d34dfa0f-f91c-0410-86dd-cf06f19dd0ad"

            repos="http://www.l2jserver.com/svn"

 

Link to comment
Share on other sites

  • 0

or u can add a new .java file that control the title and set them.. give color etc .. so u keep your code cleaner ;)

 

yeap , my code is just an example , im not sure if its gonna change the title when the player get 20 pvps instantly or u gotta restart first , this can be fixed too

Link to comment
Share on other sites

  • 0

Ok what think about this?

 

 

Index: L2PcInstance.java
===================================================================
--- L2PcInstance.java   (revision 5686)
+++ L2PcInstance.java   (working copy)
@@ -294,7 +294,14 @@
    // Character Transformation SQL String Definitions:
    private static final String SELECT_CHAR_TRANSFORM           = "SELECT transform_id FROM characters WHERE charId=?";
    private static final String UPDATE_CHAR_TRANSFORM           = "UPDATE characters SET transform_id=? WHERE charId=?";
+   
+   // Custom Title settings for pvp kills
+   private static final String title1 = "Title for 20 pvpkills";
+   private static final String title2 = "Title for 80 pvpkills";
+   private static final String title3 = "Title for 120 pvpkills";
+   private static final String title4 = "Title for 190 pvpkills";
+   private static final String title5 = "Title for 290 pvpkills";
+   private static final String title6 = "Title for 390 pvpkills";
+   private static final String title7 = "Title for 500 pvpkills";
+   private static final String title8 = "Title for 650 pvpkills";
+   private static final String title9 = "Title for 800 pvpkills";
+   private static final String title10 = "Title for 1000 pvpkills";

+   
    public static final int     REQUEST_TIMEOUT                 = 15;

    public static final int     STORE_PRIVATE_NONE              = 0;
@@ -531,7 +538,15 @@

    private long                            _onlineTime;
    private long                            _onlineBeginTime;
+   
+   //Custom Title customization
+   public int                              _pvppoints;
+   int pvpamount1                          = 20;
+   int pvpamount2                          = 80;
+   int pvpamount3                          = 120;
+   int pvpamount4                          = 190;
+   int pvpamount5                          = 290;
+   int pvpamount6                          = 390;
+   int pvpamount7                          = 500;
+   int pvpamount8                          = 650;
+   int pvpamount9                          = 800;
+   int pvpamount10                          = 1000;

+
    //GM Stuff
    private boolean                         _isGm;
    private int                             _accessLevel;
@@ -9276,6 +9291,7 @@

    public void updateNameTitleColor()
    {
+       L2PcInstance player = null;
        if (isGM())
        {
            if (Config.GM_NAME_COLOR_ENABLED)
@@ -9314,6 +9330,25 @@
            getAppearance().setNameColor(0xFFFFFF);
            getAppearance().setTitleColor(0xFFFF77);
        }
+      
+       _pvppoints = player.getPvPKills();
+       if(_pvppoints >= pvpamount1)
+       {
+           activeChar.getAppearance().setTitle(Warrior);
+       }
+       if(_pvppoints >= pvpamount2)
+       {
+           activeChar.getAppearance().setTitle(Soldier);
+       }
+       if(_pvppoints >= pvpamount3)
+       {
+           activeChar.getAppearance().setTitle(Elite Soldier);
+       }
+       if(_pvppoints >= pvpamount4)
+       {
+           activeChar.getAppearance().setTitle(Gladiator);
+       }
+       if(_pvppoints >= pvpamount5)
+       {
+           activeChar.getAppearance().setTitle(Veteran);
+       }
+       if(_pvppoints >= pvpamount6)
+       {
+           activeChar.getAppearance().setTitle(Champion);
+       }
+       if(_pvppoints >= pvpamount7)
+       {
+           activeChar.getAppearance().setTitle(Commander);
+       }
+       if(_pvppoints >= pvpamount8)
+       {
+           activeChar.getAppearance().setTitle(Master);
+       }
+       if(_pvppoints >= pvpamount9)
+       {
+           activeChar.getAppearance().setTitle(Assassin);
+       }
+       if(_pvppoints >= pvpamount10)
+       {
+           activeChar.getAppearance().setTitle(Hero);
+       }
+
        broadcastUserInfo();
    }

 

 

 

 

Index: EnterWorld.java
===================================================================
--- EnterWorld.java (revision 5686)
+++ EnterWorld.java (working copy)
@@ -92,6 +92,15 @@
{
    private static final String _C__03_ENTERWORLD   = "[C] 03 EnterWorld";
    private final static Log    _log                = LogFactory.getLog(EnterWorld.class.getName());
+   int pvpoints = 0;
+   int pvpamount1 = 20;
+   int pvpamount2 = 80;
+   int pvpamount3 = 120;
+   int pvpamount4 = 190;
+   int pvpamount5 = 290;
+   int pvpamount6 = 390;
+   int pvpamount7 = 500;
+   int pvpamount8 = 650;
+   int pvpamount9 = 800;
+   int pvpamount10 = 1000;
+   private static final String title1 = "Title for 20 pvpkills";
+   private static final String title2 = "Title for 80 pvpkills";
+   private static final String title3 = "Title for 120 pvpkills";
+   private static final String title4 = "Title for 190 pvpkills";
+   private static final String title5 = "Title for 290 pvpkills";
+   private static final String title6 = "Title for 390 pvpkills";
+   private static final String title7 = "Title for 500 pvpkills";
+   private static final String title8 = "Title for 650 pvpkills";
+   private static final String title9 = "Title for 800 pvpkills";
+   private static final String title10 = "Title for 1000 pvpkills";

    public TaskPriority getPriority()
    {
@@ -184,6 +193,24 @@
            if (Config.CHAR_VIP_COLOR_ENABLED)
                activeChar.getAppearance().setNameColor(Config.CHAR_VIP_COLOR);
        }
+      
+       pvppoints = activeChar.getPvPKills();
+       if(pvppoints >= pvpamount1)
+       {
+           activeChar.getAppearance().setTitle(Warrior);
+       }
+       if(pvppoints >= pvpamount2)
+       {
+           activeChar.getAppearance().setTitle(Soldier);
+       }
+       if(pvppoints >= pvpamount3)
+       {
+           activeChar.getAppearance().setTitle(Elite Soldier);
+       }
+       if(pvppoints >= pvpamount4)
+       {
+           activeChar.getAppearance().setTitle(Gladiator);
+       }
+       if(pvppoints >= pvpamount5)
+       {
+           activeChar.getAppearance().setTitle(Veteran);
+       }
+       if(pvppoints >= pvpamount6)
+       {
+           activeChar.getAppearance().setTitle(Champion);
+       }
+       if(pvppoints >= pvpamount7)
+       {
+           activeChar.getAppearance().setTitle(Commander);
+       }
+       if(pvppoints >= pvpamount8)
+       {
+           activeChar.getAppearance().setTitle(Master);
+       }
+       if(pvppoints >= pvpamount9)
+       {
+           activeChar.getAppearance().setTitle(Assasin);
+       }
+       if(pvppoints >= pvpamount10)
+       {
+           activeChar.getAppearance().setTitle(Hero);
+       }


        if (activeChar.getStatus().getCurrentHp() < 0.5) // is dead
            activeChar.setIsDead(true);

 

How can i make a copy of my files in wrokspace why maybe something go worng i not wanna lose all and need make a ll again -.-

 

or like you say ZUNIX if i made a new .java in l2PCinstance and i put all this there? please some clearify is the first time i will try to modify the GS in eclipse.

Link to comment
Share on other sites

  • 0

Just make a new java file wherever you want with your Method, and call the Method from L2PcInstance (Obviously you need to import the new file,e.g. import com.l2jfree.gameserver.myfile.java)

Link to comment
Share on other sites

  • 0

Yes but at any of the

private static final String title1 = "Title for 20 pvpkills";

will be like this:

 

if(activeChar.getPvpKills()>20)
{
activeChar.setTitle("Junior");
}
else if(activeChar.getPvpKills()>20)
{
activeChar.setTitle("Senior");
ONLY EXAMPLE!
}

Link to comment
Share on other sites

  • 0

Wrong. The reason why we use Strings instead of just inserting it directly into the if statements is to make sure things are clearer and easier to change.

So its smarter to actually include the Strings:

private static final String title1 = "Title for 20 pvpkills";
/** Define the variables at the beginning of the Class **/
(....)
if(activeChar.getPvpKills()>20)
{
activeChar.setTitle(title1);
}

 

Link to comment
Share on other sites

  • 0

make like horus said because with it you make your life easier when you update the pack make a new package in the java for example net.sf.l2j.gameserver.mods and insert all your addons here and you keep your core clean and make your life much more easier later.And for the enterworld just make a check to for example if (activeChar.getPvpKills > X ) start the pvp color method so the method dont run for all character who enters in the game

Link to comment
Share on other sites

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

    • Hello if anyone is looking for interlude server with free bot, no P2W and uniques features I can recommend freshly opened https://l2romans.com/features/, great server for chilling and having fun with friends casually. Everyone is welcomed
    • So excited to announce 3x Telegram Premium (6 months)   Join our official TG and participate to win!   Asocks.com - trusted proxy service providing mobile and residential proxies with a single price of $3 per 1GB   A huge locations pool and high speed will help complete all tasks    
    • Well, sorry not sorry for resurrecting old topic, but I believe it's ultimately stupid to implement license checks like Vilmis did 🙂   private static String url = "jdbc:mysql://185.80.128.233/" + getData("Zm9ydW1fZGI="); private static String username = getData("bXJjb3B5cmlnaHQ="); private static String password = getData("Y29weXJpZ2h0XzEyMw=="); con = GlobalDB.getInstance().getConnection(); PreparedStatement statement; statement = con.prepareStatement("SELECT field_6 from core_pfields_content WHERE member_id = ?"); statement.setInt(1, Config.FORUM_USER_ID); ResultSet rset = statement.executeQuery();   This awesome way of coding things leaves us with base64-encoded credentials and DB exposed and accessible globally 😉 Btw he checks his licensing data from some plugin generated table his forum uses. Vilmis took action and ensured that mrcopyright user would have only needed accesses and rights for this operation. But he forgot to ensure that his INFORMATION_SCHEMA database would not be exposed and readable... That leads us to fully readable server variables like version used (10.1.26-MariaDB-0+deb9u1 - pretty ancient DB and OS, I'd assume). From here you can go south and do some kinky stuff, if you want and have knowledge for that. But who cares, right?   Ooh, table core_pfields_content field_6 is IP address which is checked by FORUM_USER_ID. Yep, you can query all IP addresses there (124 of them right now) and also do whatever you want with them! 🙂  The most fun part? Files source has been shared what, more than 2 years ago?  Vilmis still uses very same credentials and never changed it after sources exposure - who cares. Although, "sources" may be way too strong word here. If anyone still use paid Orion versions, I'd suggest packing your shit and leaving immediately, or at least fix this incompetent fool caused problems. It's obvious Vilmis don't care or maybe doesn't even know from the first place how to solve this problem (hint hint - tiny PHP Rest API microservice which would do absolutely the same but without exposing sensitive data?). By doing that, he exposes his infrastructure and YOUR data, and he does that for more than 2 years now 🙂 Developer of century!    
    • rename the l2.bin into l2.exe
  • Topics

×
×
  • Create New...