Jump to content

Recommended Posts

Posted

nop, theres an unclosed connecton in my code. go to ColorNameManager.loadValues and at the botton of the method add

try{ if(con != null) con.close(); } catch(Exception e){ if(Config.DEBUG) e.printStackTrace(); }

 

where exactly i must add this? cause i am a little stupid in java

Posted

where exactly i must add this? cause i am a little stupid in java

 

go to ColorNameManager.java

find the method called public static void loadValues()

at the end of the method (before the last " } " ), add the

code i posted

Posted

symbol  : variable Config
location: class com.l2jserver.gameserver.model.actor.appearance.ColorNameManager
try{ if(con != null) con.close(); } catch(Exception e){ if(Config.DEBUG) e.printStackTrace(); }
		                                           ^

 

this is the error i see now when i try to add the code that you told me in the end of the method

  • 2 months later...
Posted

System.out.println("ColorNameManager: Loaded " + _pvpColor.size() + " colors for pvp kills!");

System.out.println("ColorNameManager: Loaded " + _pkColor.size() + " colors for pk kills!");

 

try

   {

if(con != null) con.close();

}

catch(Exception e)

   {  

}

}

 

This is my code after this fix but still i have unclosed connection when i relog a char with pvp/pk color.Can u help me BB ?

 

Ah forgot to ask u say in ur last post "public static void loadValues()" but in the script is "public void loadValues()" is that a problem?

  • 2 weeks later...
Posted

I try to use it but as i see from posts i have some of the problems.1st how can i remove primary key and second pls write the fix us a code here pls cause i dodn't understans what you try to tell :/ (i don't understand verygood english so i'm a little stupid :P)

  • 4 weeks later...
Posted

B1ggBoss Here you can put the diff with the changes already made?

 

(Puedes postear aqui el diff con los cambios ya echos?

B1ggBoss eres un monstruo y perdon por eres XDDD. Gracias un autentico genio!)

Posted

look for com.l2jserver.gameserver.model.actor.appearance.ColorNameManager.java

 

and replace it for:

/*
* 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 com.l2jserver.gameserver.model.actor.appearance;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Set;

import com.l2jserver.L2DatabaseFactory;

import javolution.util.FastMap;

/**
* @author BiggBoss
*/
public class ColorNameManager
{
   private static FastMap<Integer, String> _pvpColor = new FastMap<Integer, String>();
   private static FastMap<Integer, String> _pkColor = new FastMap<Integer, String>();
   
   private ColorNameManager()
   {
   }
   
   public static ColorNameManager getInstance()
   {
      return SingletonHolder._cne;
   }
   
   /**
    * Will load all pvp count with their respective color at server start up
    * Also will set up the higher pvp/pk count rank for future purposes
    */
   public void loadValues()
   {
      Connection con = null;
      try
      {
         _pvpColor.put(0, "FFFFFF");
         _pkColor.put(0, "FFFFFF");
         con = L2DatabaseFactory.getInstance().getConnection();
         PreparedStatement pvpStatement = con.prepareStatement("SELECT * FROM pvp_color_nick WHERE type = ?");
         pvpStatement.setString(1, "pvp");
         
         ResultSet pvpRset = pvpStatement.executeQuery();
         while(pvpRset.next())
         {
            _pvpColor.put(pvpRset.getInt("pvppk_count"), pvpRset.getString("color"));
         }
         pvpRset.close();
         pvpStatement.close();
         
         PreparedStatement pkStatement = con.prepareStatement("SELECT * FROM pvp_color_nick WHERE type = ?");
         pkStatement.setString(1, "pk");
         
         ResultSet pkRset = pkStatement.executeQuery();
         while(pkRset.next())
         {
            _pkColor.put(pkRset.getInt("pvppk_count"), pkRset.getString("color"));
         }
         pkRset.close();
         pkStatement.close();
      }
      catch(SQLException sqle)
      {
         sqle.printStackTrace();
      }
      finally
      {
         try
         {
            if(con != null)
               con.close();
         }
         catch(Exception e)
         {
            e.printStackTrace();
         }
      }
      System.out.println("ColorNameManager: Loaded " + _pvpColor.size() + " colors for pvp kills!");
      System.out.println("ColorNameManager: Loaded " + _pkColor.size() + " colors for pk kills!");
   }
   
   /**
    * Returns a string-representative with the color of the rank
    * @param kills
    * @param forPvp
    * @return a String containing the Hexadecimal color
    */
   public String getColor(int kills, boolean forPvp)
   {
      String color = "";
      if(forPvp)
         color = _pvpColor.get(getValueBefore(kills, _pvpColor.keySet()));
      else
         color = _pkColor.get(getValueBefore(kills, _pkColor.keySet()));
      
      return color;
   }
   
   /**
    * Will return the value just before the given value contained
    * in the provided Set of integers
    * @param value
    * @param set
    * @return the value just before the provided one
    */
   private static int getValueBefore(int value, Set<Integer> set)
   {
      int counter = 0;
      for(int i : set)
      {
         if(i > counter && value > i)
            counter = i;
      }
      return counter;
   }
         
   static class SingletonHolder
   {
      static ColorNameManager _cne = new ColorNameManager();
   }
}

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
Reply to this topic...

×   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

    • From Salvation onwards I think you need a patched nwindow.dll that allows such modifications, try to see if you get what you need here: https://drive.google.com/drive/u/1/folders/1LLbQFGf8KlR-O0Iv5umfF-pwZgrDh9bd
    • hello everyone! I am wanting to save the files (Ini. - Data - ) of the EP5 Client: Salvation... But they generate the error "corrupt files"... I tried several versions of L2FileEditor without good results. I need help! Thank you!
    • Opening December 6th at 19:00 (GMT +3)! Open Beta Test from November 30th!   https://l2soe.com/   🌟 Introducing L2 Saga of Eternia: A Revolution in Lineage 2 High Five! 🌟   Dear Lineage 2 enthusiasts, Prepare to witness the future of private servers! L2 Saga of Eternia is not just another High Five project—it’s a game-changing experience designed to compete with the giants of the Lineage 2 private server scene. Built for the community, by the community, we’re here to raise the bar in quality, innovation, and longevity. What Sets Us Apart? 💎 No Wipes, Ever Say goodbye to the fear of losing your progress. Our server is built to last and will never close. Stability and consistency are our promises to you. ⚔️ Weekly New Content Our dedicated development team ensures fresh challenges, events, and updates every week. From custom quests to exclusive features, there will always be something exciting to explore. 💰 No Pay-to-Win Skill and strategy matter most here. Enjoy a balanced gameplay environment where your achievements come from effort, not your wallet. 🌍 A Massive Community With 2000+ players expected, join a vibrant and active community of like-minded adventurers ready to conquer the world of Aden. 🏆 Fair and Competitive Gameplay Our systems are designed to promote healthy competition while avoiding abusive mechanics and exploits. 🔧 Professional Development From advanced bug fixes to carefully curated content, we pride ourselves on smooth performance, no lag, and unparalleled server quality. Key Features Chronicle: High Five with unique interface Rate: Dynamic x10 rates Class Balance: Carefully fine-tuned for a fair experience PvP Focused: PvP Ranking & aura display effect for 3 Top PvPers every week Custom Events: Seasonal and permanent events to keep you engaged Additional Features:   Custom Endgame Content: Introduce unique dungeons, raids, or zones unavailable in other servers. Player-Driven Economy: Implement a strong market system and avoid overinflated drops or rewards. Epic Siege Battles: Announce special large-scale sieges and PvP events. Incentives for Streamers and Clans: Attract influencers and big clans to boost server publicity. Roadmap Transparency: Share a public roadmap of planned updates to build trust and excitemen   Here you can read all the features: https://l2soe.com/features   Video preview: Join the Revolution! This is your chance to be part of something legendary. L2 Saga of Eternia is not just a server; it’s a movement to redefine what Lineage 2 can be. Whether you’re a seasoned veteran or a newcomer to the world of Aden, we invite you to experience Lineage 2 at its finest.   Official Launch Date: December 6th 2024 Website: https://l2soe.com/ Facebook: https://www.facebook.com/l2soe Discord: https://discord.com/invite/l2eternia   Let’s build the ultimate Lineage 2 experience together. See you in-game! 🎮
    • That's like a tutorial on how to run l2 on MacOS Xd but good job for the investigation. 
    • small update: dc robe set sold   wts adena 1kk = 1.5$ 
  • Topics

×
×
  • Create New...