Jump to content

Recommended Posts

Posted

Paidia pragmatika kanete poly wraia douleia ;)

Thelw an ginete kai mporeite vevaia enan code gia c6 Anti Afk dld

otan enas paixtis kathete akinitos gia peripou 5 min na trwei critical kai pernei ena msg.

Brika to Anti Afk Tvt alla einai gia Tvt to thelw na douleuei genika mesa ston server.

Tnx

Posted

Geia sas paidia twra teleuta mpeike enas filos mou ston l2 vitality

kai me eipe oti exoun ta PcBang Points kserw o kwdikas exei gunei eidi share edw sto forum

auto pou me eipe eitan to endiaferon

exoun kanei mia alagi pou kathe 3 wres opoios exei parapanw apo 1.000 pc bang points

gunete automata ena event  kai osoi exoun parapanw apo 1.000 pc bang points pernoun meros

kai stin tuxi dialegete enas char kai pairnei alla 100.000 pc bang points

 

mporei na grapsei kapoios auton edw ton kwdika ?

 

 


### Eclipse Workspace Patch 1.0
#P Chr.6GMS
Index: java/net/sf/l2j/gameserver/model/PcBangEvent.java
===================================================================
--- java/net/sf/l2j/gameserver/model/PcBangEvent.java	(revision 0)
+++ java/net/sf/l2j/gameserver/model/PcBangEvent.java	(revision 0)
@@ -0,0 +1,137 @@
+/* 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 2, 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+package net.sf.l2j.gameserver.model;
+
+import java.util.Collection;
+
+import net.sf.l2j.gameserver.Announcements;
+import net.sf.l2j.gameserver.ThreadPoolManager;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+import net.sf.l2j.util.Rnd;
+import javolution.util.FastList;
+
+/**
+ *
+ * @author  iracundus
+ */
+public class PcBangEvent
+{
+	private FastList<L2PcInstance> playersBangs = new FastList<L2PcInstance>();
+	private boolean canStart = false;
+	
+	private PcBangEvent()
+	{
+		ThreadPoolManager.getInstance().scheduleEffectAtFixedRate(new Event(), 10800000, 10800000);
+	}
+	
+	private class Event implements Runnable{
+		public void run()
+		{
+			checkPlayers();
+			broadCastInfo();
+			if(canStart == true)
+			{
+				waitSeconds(25);
+				progressEvent();
+			}
+			endEvent();				
+		}
+	}
+	
+	private void checkPlayers()
+	{
+		Collection<L2PcInstance> allPlayers = L2World.getInstance().getAllPlayers();
+		
+	   
+		for(L2PcInstance player : allPlayers)
+		{
+			if(player == null || player.getPcBangScore() < 1000)
+				continue;
+			
+			playersBangs.add(player);
+		}
+	}
+	
+	private void broadCastInfo()
+	{
+		if(playersBangs.isEmpty() || playersBangs.size() == 1){
+			canStart = false;
+			Announcements.getInstance().announceToAll("Pc Bang Event Cancelled due to no registrations");
+			return;
+		}
+		
+		for(L2PcInstance player : playersBangs){
+			if(player == null)
+				continue;
+			
+			canStart = true;
+			player.sendMessage("You are in the pc bang event now , in 25 seconds winner will be announced");
+		}
+	}
+	
+	private void progressEvent()
+	{
+		//select the lucky player
+		
+		L2PcInstance lucky = playersBangs.get(Rnd.get(playersBangs.size()));
+		
+		if(lucky == null)
+			return;
+		
+		lucky.sendMessage("You are the winner!");
+		lucky.addPcBangScore(100000000);
+	}
+	
+	private void endEvent(){
+		if(playersBangs.isEmpty() == false)
+		playersBangs.clear();
+		
+		canStart = false;
+		
+		Announcements.getInstance().announceToAll("Pc Bang Event Ended");
+	}
+	
+	private void waitSeconds(int seconds){
+		long start,end;
+		
+		start = System.currentTimeMillis();
+		end = start * 1000;
+		end *= seconds;
+		
+		while(System.currentTimeMillis() < end){
+			
+		}
+	}
+	
+	private PcBangEvent getInstance(){
+		return SingletonHolder._instance;
+	}
+	
+	@SuppressWarnings("synthetic-access")
+	private static class SingletonHolder
+	{
+		protected static final PcBangEvent _instance = new PcBangEvent();
+	}
+	
+	public static void main(String[] args)
+	{
+		PcBangEvent e = new PcBangEvent();
+		
+		e.getInstance();
+	}
+}

 

Waiting.

Posted

Ena NPC ( Raid Bosses Info ) ginetai?

Me endiaferei apla na leei an einai alive h dead ta raidboss ( xwris respawn times ktl gia pio easy ), an ginetai kati tetoio ;) eyxaristw!

 

Edit : ton kwdika xreiazomai eite se java eite se python, to npc ktl 8a ta fix monos mou ( kai to html ) den exw prob. Client interlude.

Posted

kapios coder gia npc gia siege gia ola ta castle?????

kai an ginete ena code gia [.changepassword CurrentPass NewPass NewPass]

vrika auto:

/* 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 2, 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, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* http://www.gnu.org/copyleft/gpl.html
*/
package com.l2jfrozen.gameserver.model.actor.instance;

import com.l2jfrozen.crypt.Base64;
import com.l2jfrozen.gameserver.ai.CtrlIntention;
import com.l2jfrozen.gameserver.network.serverpackets.ActionFailed;
import com.l2jfrozen.gameserver.network.serverpackets.LeaveWorld;
import com.l2jfrozen.gameserver.network.serverpackets.MyTargetSelected;
import com.l2jfrozen.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jfrozen.gameserver.network.serverpackets.ValidateLocation;
import com.l2jfrozen.gameserver.templates.L2NpcTemplate;
import com.l2jfrozen.util.database.L2DatabaseFactory;

import java.security.MessageDigest;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.StringTokenizer;
import javolution.text.TextBuilder;

public class L2PasswordChangerInstance extends L2FolkInstance
{
  public L2PasswordChangerInstance(int objectId, L2NpcTemplate template)
  {
    super(objectId, template);
  }

  public void onBypassFeedback(L2PcInstance player, String command)
  {
    if (command.startsWith("change_password"))
    {
      StringTokenizer st = new StringTokenizer(command);
      st.nextToken();
      String currPass = null;
      String newPass = null;
      String repeatNewPass = null;
      try
      {
        if (st.hasMoreTokens())
        {
          currPass = st.nextToken();
          newPass = st.nextToken();
          repeatNewPass = st.nextToken();
        }
        else
        {
          player.sendMessage("Please fill in all the blanks before requesting for a password change.");
          return;
        }
        changePassword(currPass, newPass, repeatNewPass, player);
      }
      catch (StringIndexOutOfBoundsException e)
      {
      }
    }
  }

  public void onAction(L2PcInstance player)
  {
    if (!canTarget(player)) {
      return;
    }

    if (this != player.getTarget())
    {
      player.setTarget(this);

      player.sendPacket(new MyTargetSelected(getObjectId(), 0));

      player.sendPacket(new ValidateLocation(this));
    }
    else if (!canInteract(player))
    {
      player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
    }
    else
    {
      showHtmlWindow(player);
    }

    player.sendPacket(new ActionFailed());
  }

  private void showHtmlWindow(L2PcInstance activeChar)
  {
    NpcHtmlMessage nhm = new NpcHtmlMessage(5);
    TextBuilder replyMSG = new TextBuilder("");

    replyMSG.append("<html><title>L2 InStadia Account Manager</title>");
    replyMSG.append("<body><center>");
    replyMSG.append("To change your password:<br1> First fill in your current password and then your new!</font><br>");
    replyMSG.append("Current Password: <edit var=\"cur\" width=100 height=15><br>");
    replyMSG.append("New Password: <edit var=\"new\" width=100 height=15><br>");
    replyMSG.append("Repeat New Password: <edit var=\"repeatnew\" width=100 height=15><br><br>");
    replyMSG.append("<button value=\"Change Password\" action=\"bypass -h npc_" + getObjectId() + "_change_password $cur $new $repeatnew\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\">");
    replyMSG.append("</center></body></html>");

    nhm.setHtml(replyMSG.toString());
    activeChar.sendPacket(nhm);

    activeChar.sendPacket(new ActionFailed());
  }

  public static boolean changePassword(String currPass, String newPass, String repeatNewPass, L2PcInstance activeChar)
  {
    if (newPass.length() < 5)
    {
      activeChar.sendMessage("The new password is too short!");
      return false;
    }
    if (newPass.length() > 20)
    {
      activeChar.sendMessage("The new password is too long!");
      return false;
    }
    if (!newPass.equals(repeatNewPass))
    {
      activeChar.sendMessage("Repeated password doesn't match the new password.");
      return false;
    }

    Connection con = null;
    String password = null;
    try
    {
      MessageDigest md = MessageDigest.getInstance("SHA");
      byte[] raw = currPass.getBytes("UTF-8");
      raw = md.digest(raw);
      String currPassEncoded = Base64.encodeBytes(raw);

      con = L2DatabaseFactory.getInstance().getConnection();
      PreparedStatement statement = con.prepareStatement("SELECT password FROM accounts WHERE login=?");
      statement.setString(1, activeChar.getAccountName());
      ResultSet rset = statement.executeQuery();
      while (rset.next())
      {
        password = rset.getString("password");
      }
      rset.close();
      statement.close();
      byte[] password2 =
   null;
      if (currPassEncoded.equals(password))
      {
        password2 = newPass.getBytes("UTF-8");
        password2 = md.digest(password2);

        PreparedStatement statement2 = con.prepareStatement("UPDATE accounts SET password=? WHERE login=?");
        statement2.setString(1, Base64.encodeBytes(password2));
        statement2.setString(2, activeChar.getAccountName());
        statement2.executeUpdate();
        statement2.close();

        activeChar.sendMessage("Congratulations! Your password has been changed succesfully. You will now be disconnected for security reasons. Please login again!");
        try
        {
          Thread.sleep(3000L);
        }
        catch (Exception e)
        {
        }

        activeChar.deleteMe();

        activeChar.sendPacket(new LeaveWorld());
      }
      else
      {
        activeChar.sendMessage("The current password you've inserted is incorrect! Please try again!");
       
        return password2 != null;
      }
    }
    catch (Exception e)
    {
      _log.warning("could not update the password of account: " + activeChar.getAccountName());
    }
    finally
    {
      try
      {
        if (con != null)
          con.close();
      }
      catch (SQLException e)
      {
        _log.warning("Failed to close database connection!");
      }

    }

    return true;
  }
}

alla opwte allazw pwta trow exit kai prp na ksanampw.. ginete na to allaksw se logout anti gia exit?

Posted

kapios coder gia npc gia siege gia ola ta castle?????

kai an ginete ena code gia [.changepassword CurrentPass NewPass NewPass]

vrika auto:

/* 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 2, 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, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* http://www.gnu.org/copyleft/gpl.html
*/
package com.l2jfrozen.gameserver.model.actor.instance;

import com.l2jfrozen.crypt.Base64;
import com.l2jfrozen.gameserver.ai.CtrlIntention;
import com.l2jfrozen.gameserver.network.serverpackets.ActionFailed;
import com.l2jfrozen.gameserver.network.serverpackets.LeaveWorld;
import com.l2jfrozen.gameserver.network.serverpackets.MyTargetSelected;
import com.l2jfrozen.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jfrozen.gameserver.network.serverpackets.ValidateLocation;
import com.l2jfrozen.gameserver.templates.L2NpcTemplate;
import com.l2jfrozen.util.database.L2DatabaseFactory;

import java.security.MessageDigest;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.StringTokenizer;
import javolution.text.TextBuilder;

public class L2PasswordChangerInstance extends L2FolkInstance
{
  public L2PasswordChangerInstance(int objectId, L2NpcTemplate template)
  {
    super(objectId, template);
  }

  public void onBypassFeedback(L2PcInstance player, String command)
  {
    if (command.startsWith("change_password"))
    {
      StringTokenizer st = new StringTokenizer(command);
      st.nextToken();
      String currPass = null;
      String newPass = null;
      String repeatNewPass = null;
      try
      {
        if (st.hasMoreTokens())
        {
          currPass = st.nextToken();
          newPass = st.nextToken();
          repeatNewPass = st.nextToken();
        }
        else
        {
          player.sendMessage("Please fill in all the blanks before requesting for a password change.");
          return;
        }
        changePassword(currPass, newPass, repeatNewPass, player);
      }
      catch (StringIndexOutOfBoundsException e)
      {
      }
    }
  }

  public void onAction(L2PcInstance player)
  {
    if (!canTarget(player)) {
      return;
    }

    if (this != player.getTarget())
    {
      player.setTarget(this);

      player.sendPacket(new MyTargetSelected(getObjectId(), 0));

      player.sendPacket(new ValidateLocation(this));
    }
    else if (!canInteract(player))
    {
      player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
    }
    else
    {
      showHtmlWindow(player);
    }

    player.sendPacket(new ActionFailed());
  }

  private void showHtmlWindow(L2PcInstance activeChar)
  {
    NpcHtmlMessage nhm = new NpcHtmlMessage(5);
    TextBuilder replyMSG = new TextBuilder("");

    replyMSG.append("<html><title>L2 InStadia Account Manager</title>");
    replyMSG.append("<body><center>");
    replyMSG.append("To change your password:<br1> First fill in your current password and then your new!</font><br>");
    replyMSG.append("Current Password: <edit var=\"cur\" width=100 height=15><br>");
    replyMSG.append("New Password: <edit var=\"new\" width=100 height=15><br>");
    replyMSG.append("Repeat New Password: <edit var=\"repeatnew\" width=100 height=15><br><br>");
    replyMSG.append("<button value=\"Change Password\" action=\"bypass -h npc_" + getObjectId() + "_change_password $cur $new $repeatnew\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\">");
    replyMSG.append("</center></body></html>");

    nhm.setHtml(replyMSG.toString());
    activeChar.sendPacket(nhm);

    activeChar.sendPacket(new ActionFailed());
  }

  public static boolean changePassword(String currPass, String newPass, String repeatNewPass, L2PcInstance activeChar)
  {
    if (newPass.length() < 5)
    {
      activeChar.sendMessage("The new password is too short!");
      return false;
    }
    if (newPass.length() > 20)
    {
      activeChar.sendMessage("The new password is too long!");
      return false;
    }
    if (!newPass.equals(repeatNewPass))
    {
      activeChar.sendMessage("Repeated password doesn't match the new password.");
      return false;
    }

    Connection con = null;
    String password = null;
    try
    {
      MessageDigest md = MessageDigest.getInstance("SHA");
      byte[] raw = currPass.getBytes("UTF-8");
      raw = md.digest(raw);
      String currPassEncoded = Base64.encodeBytes(raw);

      con = L2DatabaseFactory.getInstance().getConnection();
      PreparedStatement statement = con.prepareStatement("SELECT password FROM accounts WHERE login=?");
      statement.setString(1, activeChar.getAccountName());
      ResultSet rset = statement.executeQuery();
      while (rset.next())
      {
        password = rset.getString("password");
      }
      rset.close();
      statement.close();
      byte[] password2 =
   null;
      if (currPassEncoded.equals(password))
      {
        password2 = newPass.getBytes("UTF-8");
        password2 = md.digest(password2);

        PreparedStatement statement2 = con.prepareStatement("UPDATE accounts SET password=? WHERE login=?");
        statement2.setString(1, Base64.encodeBytes(password2));
        statement2.setString(2, activeChar.getAccountName());
        statement2.executeUpdate();
        statement2.close();

        activeChar.sendMessage("Congratulations! Your password has been changed succesfully. You will now be disconnected for security reasons. Please login again!");
        try
        {
          Thread.sleep(3000L);
        }
        catch (Exception e)
        {
        }

        activeChar.deleteMe();

        activeChar.sendPacket(new LeaveWorld());
      }
      else
      {
        activeChar.sendMessage("The current password you've inserted is incorrect! Please try again!");
       
        return password2 != null;
      }
    }
    catch (Exception e)
    {
      _log.warning("could not update the password of account: " + activeChar.getAccountName());
    }
    finally
    {
      try
      {
        if (con != null)
          con.close();
      }
      catch (SQLException e)
      {
        _log.warning("Failed to close database connection!");
      }

    }

    return true;
  }
}

alla opwte allazw pwta trow exit kai prp na ksanampw.. ginete na to allaksw se logout anti gia exit?

Γιατί δεν χρησιμοποιείς το Password Changer NPC που είναι bugless από το command?
Posted

kapios coder gia npc gia siege gia ola ta castle?????

kai an ginete ena code gia [.changepassword CurrentPass NewPass NewPass]

vrika auto:

/* 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 2, 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, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* http://www.gnu.org/copyleft/gpl.html
*/
package com.l2jfrozen.gameserver.model.actor.instance;

import com.l2jfrozen.crypt.Base64;
import com.l2jfrozen.gameserver.ai.CtrlIntention;
import com.l2jfrozen.gameserver.network.serverpackets.ActionFailed;
import com.l2jfrozen.gameserver.network.serverpackets.LeaveWorld;
import com.l2jfrozen.gameserver.network.serverpackets.MyTargetSelected;
import com.l2jfrozen.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jfrozen.gameserver.network.serverpackets.ValidateLocation;
import com.l2jfrozen.gameserver.templates.L2NpcTemplate;
import com.l2jfrozen.util.database.L2DatabaseFactory;

import java.security.MessageDigest;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.StringTokenizer;
import javolution.text.TextBuilder;

public class L2PasswordChangerInstance extends L2FolkInstance
{
  public L2PasswordChangerInstance(int objectId, L2NpcTemplate template)
  {
    super(objectId, template);
  }

  public void onBypassFeedback(L2PcInstance player, String command)
  {
    if (command.startsWith("change_password"))
    {
      StringTokenizer st = new StringTokenizer(command);
      st.nextToken();
      String currPass = null;
      String newPass = null;
      String repeatNewPass = null;
      try
      {
        if (st.hasMoreTokens())
        {
          currPass = st.nextToken();
          newPass = st.nextToken();
          repeatNewPass = st.nextToken();
        }
        else
        {
          player.sendMessage("Please fill in all the blanks before requesting for a password change.");
          return;
        }
        changePassword(currPass, newPass, repeatNewPass, player);
      }
      catch (StringIndexOutOfBoundsException e)
      {
      }
    }
  }

  public void onAction(L2PcInstance player)
  {
    if (!canTarget(player)) {
      return;
    }

    if (this != player.getTarget())
    {
      player.setTarget(this);

      player.sendPacket(new MyTargetSelected(getObjectId(), 0));

      player.sendPacket(new ValidateLocation(this));
    }
    else if (!canInteract(player))
    {
      player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
    }
    else
    {
      showHtmlWindow(player);
    }

    player.sendPacket(new ActionFailed());
  }

  private void showHtmlWindow(L2PcInstance activeChar)
  {
    NpcHtmlMessage nhm = new NpcHtmlMessage(5);
    TextBuilder replyMSG = new TextBuilder("");

    replyMSG.append("<html><title>L2 InStadia Account Manager</title>");
    replyMSG.append("<body><center>");
    replyMSG.append("To change your password:<br1> First fill in your current password and then your new!</font><br>");
    replyMSG.append("Current Password: <edit var=\"cur\" width=100 height=15><br>");
    replyMSG.append("New Password: <edit var=\"new\" width=100 height=15><br>");
    replyMSG.append("Repeat New Password: <edit var=\"repeatnew\" width=100 height=15><br><br>");
    replyMSG.append("<button value=\"Change Password\" action=\"bypass -h npc_" + getObjectId() + "_change_password $cur $new $repeatnew\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\">");
    replyMSG.append("</center></body></html>");

    nhm.setHtml(replyMSG.toString());
    activeChar.sendPacket(nhm);

    activeChar.sendPacket(new ActionFailed());
  }

  public static boolean changePassword(String currPass, String newPass, String repeatNewPass, L2PcInstance activeChar)
  {
    if (newPass.length() < 5)
    {
      activeChar.sendMessage("The new password is too short!");
      return false;
    }
    if (newPass.length() > 20)
    {
      activeChar.sendMessage("The new password is too long!");
      return false;
    }
    if (!newPass.equals(repeatNewPass))
    {
      activeChar.sendMessage("Repeated password doesn't match the new password.");
      return false;
    }

    Connection con = null;
    String password = null;
    try
    {
      MessageDigest md = MessageDigest.getInstance("SHA");
      byte[] raw = currPass.getBytes("UTF-8");
      raw = md.digest(raw);
      String currPassEncoded = Base64.encodeBytes(raw);

      con = L2DatabaseFactory.getInstance().getConnection();
      PreparedStatement statement = con.prepareStatement("SELECT password FROM accounts WHERE login=?");
      statement.setString(1, activeChar.getAccountName());
      ResultSet rset = statement.executeQuery();
      while (rset.next())
      {
        password = rset.getString("password");
      }
      rset.close();
      statement.close();
      byte[] password2 =
   null;
      if (currPassEncoded.equals(password))
      {
        password2 = newPass.getBytes("UTF-8");
        password2 = md.digest(password2);

        PreparedStatement statement2 = con.prepareStatement("UPDATE accounts SET password=? WHERE login=?");
        statement2.setString(1, Base64.encodeBytes(password2));
        statement2.setString(2, activeChar.getAccountName());
        statement2.executeUpdate();
        statement2.close();

        activeChar.sendMessage("Congratulations! Your password has been changed succesfully. You will now be disconnected for security reasons. Please login again!");
        try
        {
          Thread.sleep(3000L);
        }
        catch (Exception e)
        {
        }

        activeChar.deleteMe();

        activeChar.sendPacket(new LeaveWorld());
      }
      else
      {
        activeChar.sendMessage("The current password you've inserted is incorrect! Please try again!");
       
        return password2 != null;
      }
    }
    catch (Exception e)
    {
      _log.warning("could not update the password of account: " + activeChar.getAccountName());
    }
    finally
    {
      try
      {
        if (con != null)
          con.close();
      }
      catch (SQLException e)
      {
        _log.warning("Failed to close database connection!");
      }

    }

    return true;
  }
}

alla opwte allazw pwta trow exit kai prp na ksanampw.. ginete na to allaksw se logout anti gia exit?

 

activeChar.deleteMe();

 

        activeChar.sendPacket(new LeaveWorld());

 

σβησε αυτες τις σειρες αν δε θες να τρως exit.

Posted

activeChar.deleteMe();

 

        activeChar.sendPacket(new LeaveWorld());

 

σβησε αυτες τις σειρες αν δε θες να τρως exit.

 

okey se euxaristw :) leitourgei mia xara :D

twra to mono p menei an kapios kserei code gia enan npc gia ola ta castle gia regisrer/defend siege pliz na to share :)

Posted

File mporeis na ftiakseis ena npc sto opoio tha paizoun poker ?

Poker Game Dld ...?

εχει γινει Share, ψαξτο.

επισης δεν γνωριζω καν πως παιζεται το Poker, πραγμα που σημαινει οτι δε μπορω να κανω κατι που δεν ξερω καν πως λειτουργει.

Guest
This topic is now closed to further replies.



  • Posts

    • ============================================================               CLExt Classic Interlude: v7.80 ============================================================   01. Fixed ValidateLocation handling and player/client position synchronization. 02. Added protection against invalid coordinates and characters falling under the map. 03. Improved XY/Z position and heading validation. 04. Fixed MoveToLocation and MoveToPawn packet conversion and target validation. 05. Fixed TargetSelected, TargetUnselected and MyTargetSelected packet handling. 06. Improved GeoData Z-location handling and disabled unsafe PathNode modifications. 07. Added ExUserInfoInventoryWeight support. 08. Fixed inventory weight and maximum load synchronization. 09. Fixed incorrect 0% inventory weight after character login. 10. Added automatic inventory weight updates after EnterWorld and inventory changes. 11. Added inventory weight packet spam protection and safe weight caching. 12. Fixed BuyList and SellList inventory, slot and weight synchronization. 13. Improved NPC target and Buy/Sell packet validation. 14. Reworked mail attachment inventory and weight validation. 15. Added all-or-nothing mail attachment receiving and safe retry handling. 16. Fixed stackable mail attachment validation and INT_MAX overflow protection. 17. Improved COD Adena validation and post-mail inventory weight refresh. 18. Improved Warehouse Deposit and Withdraw validation. 19. Added protection against malformed warehouse item counts, DBIDs and amounts. 20. Added warehouse INT_MAX, CItem and pSID validation. 21. Improved warehouse anti-dupe protection. 22. Reworked the HTML Cache system for improved stability and memory usage. 23. Added lazy HTML loading instead of loading ~20,000 files during startup. 24. Fixed HTML Cache startup crashes with large HTML collections. 25. Added thread-safe HTML Cache access and Clear/Reload support. 26. Added bad allocation, invalid HTML and oversized HTML protection. 27. Reduced HTML Cache RAM usage, startup allocations and disk I/O. 28. Added HTML Caching ON/OFF with live HTM loading support. 29. Fixed ToggleCachingHook and added VS2005-compatible live HTML handling. 30. Fixed ShortcutInit processing and skill synchronization order. 31. Improved shortcut item validation, augmentation handling and va_list safety. 32. Added LiveMode Ability Point system. 33. Added inventory-item-based Ability Points with configurable pointItemId. 34. Preserved the original level-based Ability Point system as fallback. 35. Fixed incorrect Ability Point display and inventory synchronization. 36. Improved Ability skill learning and point validation. 37. Improved OfflineShopRestore loading and FakePC/DBID handling. 38. Added safer OfflineShopRestore socket limits and batch processing. 39. Prevented thousands of restore sockets from loading simultaneously. 40. Added delayed, non-blocking OfflineShopRestore after server startup. 41. Improved OnEnterWorld initialization order and stability. 42. Improved inventory weight, SkillList and acquired-skill initialization after login. 43. Added VIP integration to the EnterWorld process. 44. Added safe UserExtData initialization without modifying the native User structure. 45. Improved duplicate Bronch Jewel and equipped-slot protection. 46. Improved Bracelet, Belt, Bronch and general UseItem validation. 47. Improved general packet, UserSocket, User, pSD and Creature validation. 48. Added safer INT32/INT64 packet handling and malformed-packet protection. 49. Improved L2Server startup memory usage and lazy resource loading. 50. Reduced unnecessary startup allocations. 51. Improved account-only KeyEngine authentication and remote account validation. 52. Removed account expiration-time requirements. 53. Added updater/restart design without requiring CLExtUpdate.exe. 54. Improved CLIEXT HWID, shared-memory and client/server version validation. 55. Improved ReadFile/WriteFile hooks and MemoryProtector handling. 56. Added UoPilot and Extreme Injector detection handling. 57. Reworked VIP point loading, saving and database synchronization. 58. Fixed VIP Level 0 initialization and first VIP activation. 59. Fixed vip.htm activation after login and from party-shared points. 60. Fixed VIP points being incorrectly reset before successful activation. 61. Improved VIP progression from Level 1 through Level 7. 62. Added proper VIP Level 7 MAX/DONE behavior with no Level 8 requirement. 63. Disabled further VIP point collection after reaching maximum level. 64. Reworked VIP BonusInfo/ReceiveVipInfo packet synchronization. 65. Fixed VIP tier, points, duration and level requirement packet fields. 66. Added VIP duration, tier, point and User validation protections. 67. Added safer 64-bit VIP EXP and party EXP calculations. 68. Preserved subclass maximum EXP protection. 69. Improved ItemDataEx validation during character loading. 70. Fixed augmentation loss during login, relog and server restart. 71. Added safe restoration of augmentation IDs directly from the database. 72. Added CItem, pSID, pExItem and User validation during ItemDataEx loading. 73. Improved Shadow Item mana and item lifetime loading. 74. Preserved item protection timeout data during character loading. 75. Added augmentation loading diagnostics and protected valid augmentation data. 76. Preserved database value 0 for genuinely non-augmented items. 77. Added RaidBoss Status synchronization with the World Map. 78. Fixed alive/dead RaidBoss status updates after spawn and death. 79. Added RaidBossStatus as the source of truth for RaidBoss map packets. 80. Fixed RaidBoss map status synchronization after server/database loading.
    • 🚀 L2AQUILA — GRAND OPENING TOMORROW! Lineage 2 Gracia Final — Like L2 Pride, but fresh. The server you've been waiting for opens tomorrow, Saturday 19/09, 16:00 (Greek time) — No Wipe · 24/7 · Anti-DDoS. ⚔️ What's inside: • EXP 9300x · SP 3000x · Adena 5500x · High drop • Max enchant +20 · Safe +3 · 24 buffs / 3 debuffs • 20 free Custom Coins for every new player on day one! • Custom farming zones (Cave of Trials, Cemetery, Ruins of Despair + more) • PvP Events · Olympiads · Offline Trading · Weddings · Balanced classes • Starter + Dynasty shops in every town — playable from minute one 📥 Download: Client + Patch at https://l2aquila.com/index.html 💬 Discord: discord.gg/5ZyBRvG4k · Facebook: facebook.com/l2aquila Be there at opening hour — bring your squad. See you at the Grand Opening! 🔥
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..