Jump to content

Recommended Posts

Posted (edited)

 

model/actor/instance

new file

package com.l2jfrozen.gameserver.model.actor.instance;


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;

import javolution.text.TextBuilder;

import com.l2jfrozen.Config;
import com.l2jfrozen.gameserver.ai.CtrlIntention;
import com.l2jfrozen.gameserver.communitybbs.Manager.RegionBBSManager;
import com.l2jfrozen.gameserver.datatables.sql.CharNameTable;
import com.l2jfrozen.gameserver.datatables.sql.ClanTable;
import com.l2jfrozen.gameserver.model.Inventory;
import com.l2jfrozen.gameserver.model.L2World;
import com.l2jfrozen.gameserver.network.SystemMessageId;
import com.l2jfrozen.gameserver.network.serverpackets.ActionFailed;
import com.l2jfrozen.gameserver.network.serverpackets.LeaveWorld;
import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser;
import com.l2jfrozen.gameserver.network.serverpackets.MyTargetSelected;
import com.l2jfrozen.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jfrozen.gameserver.network.serverpackets.PartySmallWindowAll;
import com.l2jfrozen.gameserver.network.serverpackets.PartySmallWindowDeleteAll;
import com.l2jfrozen.gameserver.network.serverpackets.PledgeShowMemberListAll;
import com.l2jfrozen.gameserver.network.serverpackets.PledgeShowMemberListUpdate;
import com.l2jfrozen.gameserver.network.serverpackets.SocialAction;
import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage;
import com.l2jfrozen.gameserver.network.serverpackets.ValidateLocation;
import com.l2jfrozen.gameserver.templates.L2NpcTemplate;
import com.l2jfrozen.gameserver.util.Util;
import com.l2jfrozen.util.CloseUtil;
import com.l2jfrozen.util.database.L2DatabaseFactory;


public class L2te0xServiceNpcInstance extends L2NpcInstance
{
private final static int ITEM_ID = 9989;
String INSERT_DATA = "REPLACE INTO characters_custom_data (obj_Id, char_name, hero, noble, donator, hero_end_date) VALUES (?,?,?,?,?,?)";
String INSERT_DATAA = "REPLACE INTO characters_custom_data (obj_Id, char_name, hero, noble, donator) VALUES (?,?,?,?,?)";

public L2te0xServiceNpcInstance(int objectId, L2NpcTemplate template)
{
super(objectId, template);
}

@Override
     public void onBypassFeedback(L2PcInstance player, String command)
     {


if (player == null)
{
return;
}
             else if (command.startsWith("active"))
             {
              showActiveWindow(player, 0);
             }
             else if (command.startsWith("passive"))
             {
              showPassiveWindow(player, 0);
             }
             else if (command.startsWith("back"))
             {
              showChatWindow(player, 0);
             }
             else if (command.startsWith("Refresh"))
             {
              addAugment(player, 16287, 3202, 3);
             }
             else if (command.startsWith("Ritual"))
             {
              addAugment(player, 16183, 3130, 10);
             }
             else if (command.startsWith("Heal"))
             {
              addAugment(player, 16195, 3123, 10);
             }
             else if (command.startsWith("Recharge"))
             {
              addAugment(player, 16204, 3127, 10);
             }
             else if (command.startsWith("Cheer"))
             {
              addAugment(player, 16197, 3131, 10);
             }
             else if (command.startsWith("Celestial"))
             {
              addAugment(player, 15047, 3158, 1);
             }
             else if (command.startsWith("BlessedSoul"))
             {
              addAugment(player, 16200, 3128, 10);
             }
             else if (command.startsWith("BlessedBody"))
             {
              addAugment(player, 16199, 3124, 10);
             }
             else if (command.startsWith("Empower"))
             {
              addAugment(player, 16281, 3241, 10);
             }
             else if (command.startsWith("MagicBarrier"))
             {
              addAugment(player, 16282, 3245, 10);
             }
             else if (command.startsWith("Might"))
             {
              addAugment(player, 16283, 3240, 10);
             }
             else if (command.startsWith("Shield"))
             {
              addAugment(player, 16284, 3244, 10);
             }
             else if (command.startsWith("DuelMight"))
             {
              addAugment(player, 16285, 3243, 10);
             }
             else if (command.startsWith("Focus"))
             {
              addAugment(player, 16333, 3249, 10);
             }
             else if (command.startsWith("WildMagic"))
             {
              addAugment(player, 16336, 3250, 10);
             }
             else if (command.startsWith("Agility"))
             {
              addAugment(player, 16332, 3247, 10);
             }
             else if (command.startsWith("Guidance"))
             {
              addAugment(player, 16335, 3248, 10);
             }
             else if (command.startsWith("changeName2"))
             {
              showNameWindow(player, 0);
             }
             else if (command.startsWith("changeClanName2"))
             {
              showClanNameWindow(player, 0);
             }
             else if (command.startsWith("changeName"))
             {
              String _name = command.substring(11);
                 String errorMsg = null;
                 boolean proceed = true;
                 if (_name.length() < 3)
                 {
                   errorMsg = "Names have to be at least 3 characters";
                   proceed = false;
                   showNameWindow(player, 0);
                 }
                 if (_name.length() > 16)
                 {
                   errorMsg = "Names cannot be longer than 16 characters";
                   proceed = false;
                   showNameWindow(player, 0);
                 }
                 if ((!Util.isAlphaNumeric(_name)) || (!isValidName(_name)))
                 {
                   errorMsg = "Invalid name";
                   proceed = false;
                   showNameWindow(player, 0);
                 }
                 if (CharNameTable.getInstance().doesCharNameExist(_name)) {
                     if ((!player.getName().equalsIgnoreCase(_name)) || (player.getName().equals(_name)))
                     {
                       errorMsg = "Name already exists";
                       proceed = false;
                       showNameWindow(player, 0);
                     }
                   }
                 if (!proceed)
                 {
                   player.sendMessage(errorMsg);
                   showNameWindow(player, 0);
                   return;
                 }
                 if (player.destroyItemByItemId("Consume", ITEM_ID, 10, player, true))
                 {
                      try (Connection con = L2DatabaseFactory.getInstance().getConnection();
                        PreparedStatement statement = con.prepareStatement("UPDATE characters SET char_name=? WHERE obj_Id=?"))
                       {
                        statement.setString(1, _name);
                        statement.setInt(2, player.getObjectId());
                        statement.execute();
                        statement.close();
                       }
                       catch (Exception e)
                       {
                        LOGGER.info("Error updating name for player " + player.getName() + ". Error: " + e);
                       }
  L2World.getInstance().removeFromAllPlayers(player);
player.setName(_name);
player.store();
L2World.getInstance().addToAllPlayers(player);
                    player.sendMessage("Your new character name is " + _name);
                    player.broadcastUserInfo();
                   player.sendMessage("Thank you for helping our server!");
if (player.isInParty())
{
// Delete party window for other party members
player.getParty().broadcastToPartyMembers(player, new PartySmallWindowDeleteAll());
for (final L2PcInstance member : player.getParty().getPartyMembers())
{
// And re-add
if (member != player)
{
member.sendPacket(new PartySmallWindowAll(player, player.getParty()));
}
}
}

if (player.getClan() != null)
{
player.getClan().updateClanMember(player);
player.getClan().broadcastToOnlineMembers(new PledgeShowMemberListUpdate(player));
player.sendPacket(new PledgeShowMemberListAll(player.getClan(), player));
}

RegionBBSManager.getInstance().changeCommunityBoard();
                 }
             }
             else if (command.startsWith("changeClanName"))
             {
              String _name = command.substring(15);
                 String errorMsg = null;
                 boolean proceed = true;
                 if (_name.length() < 2)
                 {
                   errorMsg = "Clan Names have to be at least 2 characters";
                   proceed = false;
                   showClanNameWindow(player, 0);
                 }
                 if (_name.length() > 16)
                 {
                   errorMsg = "Clan Names cannot be longer than 16 characters";
                   proceed = false;
                   showClanNameWindow(player, 0);
                 }
                 if ((!Util.isAlphaNumeric(_name)) || (!isValidClanName(_name)))
                 {
                   errorMsg = "Invalid name";
                   proceed = false;
                   showClanNameWindow(player, 0);
                 }
          if (ClanTable.getClanByName(_name) != null)
         {
          errorMsg = "Name already exists";
          proceed = false;
          showClanNameWindow(player, 0);
         }
                 if (!proceed)
                 {
                   player.sendMessage(errorMsg);
                   showClanNameWindow(player, 0);
                   return;
                 }
                 if (player.destroyItemByItemId("Consume", ITEM_ID, 10, player, true))
                 {
                      try (Connection con = L2DatabaseFactory.getInstance().getConnection();
                        PreparedStatement statement = con.prepareStatement("UPDATE clan_data SET clan_name=? WHERE clan_id=?"))
                       {
                        statement.setString(1, _name);
                        statement.setInt(2, player.getClan().getClanId());
                        statement.execute();
                        statement.close();
                       }
                       catch (Exception e)
                       {
                        LOGGER.info("Error updating clan name for player " + player.getName() + ". Error: " + e);
                       }
player.getClan().setName(_name);
                    player.sendMessage("Your new clan name is " + _name);
                    player.sendMessage("Thank you for helping our server!");
                    player.getClan().broadcastClanStatus();
                 }
             }
             else if (command.startsWith("setNoble"))
          {
              if (!player.isNoble())
              {
       if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) >= 10)
       {
                   player.destroyItemByItemId("Consume", ITEM_ID, 10, player, true);
                   player.getInventory().addItem("Tiara", 7694, 1, player, null);
                      player.setNoble(true);
                      player.setTarget(player);
                      player.broadcastPacket(new MagicSkillUser(player, 5103, 1, 1000, 0));
                      player.broadcastUserInfo();
                      player.broadcastPacket(new SocialAction(player.getObjectId(), 16));
                      player.sendMessage("The greatest soul of the Flame of Splendor Barakiel is now following your spirit by gifting you the Noblesse status. Status that only a few true Semi-Gods can have.");
                  }
                  else
                  {
                   player.sendMessage("You don't have enough items.");
                  }
              }
              else
              {
               player.sendMessage("The greatest soul of the Flame of Splendor Barakiel is already following your spirit and gifting it with the Noblesse status.");
              }
          }
             else if (command.startsWith("setDonator"))
          {
              if (!player.isDonator())
              {
       if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) >= 7)
       {
                   player.destroyItemByItemId("Consume", ITEM_ID, 1, player, true);
                      player.setDonator(true);
                      player.setTarget(player);
                      updateDatabasex(player, true);
                      player.broadcastPacket(new MagicSkillUser(player, 5103, 1, 1000, 0));
                      player.broadcastUserInfo();
                      player.sendMessage("You are gifted with the Donator status. Thank you for being a helpful player on our server!");
                  }
                  else
                  {
                   player.sendMessage("You don't have enough items.");
                  }
              }
              else
              {
               player.sendMessage("You already own Donator status.");
              }
          }
             else if (command.startsWith("reducePks2"))
             {
              showPksWindow(player, 0);
             }
             else if (command.startsWith("reducePks"))
             {
                 try
                 {
                     String pkReduceString = command.substring(10);
                     int pkReduceCount = Integer.parseInt(pkReduceString);
                     
                     if (player.getPkKills() != 0)
                     {
                         if (pkReduceCount == 0)
                         {
                             player.sendMessage("Please, put a higher value.");
                             showPksWindow(player, 0);
                         }
                         else
                         {
                if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) >= 1)
               {
                                 player.destroyItemByItemId("Consume", ITEM_ID, 1 * pkReduceCount, player, true);
                                 player.setPkKills(player.getPkKills() - pkReduceCount);
                                 player.sendMessage("You have successfuly cleaned " + pkReduceCount + " PKs.");
                                 player.broadcastUserInfo();
                             }
                             else
                             {
                              player.sendMessage("Not enough items.");
                             }
                         }
                     }
                     else
                     {
                      player.sendMessage("Not enough PKs.");
                     }
                 }
                 catch (Exception e)
                 {
                     player.sendMessage("Incorrect value. Please try again.");
                     showPksWindow(player, 0);
                 }
             }
             else if (command.startsWith("levelUpClan"))
             {
              if (!player.isClanLeader())
             {
              player.sendMessage("You must be a clan leader in order to use this service.");
             }
             else
             {
             if (player.getClan().getLevel() == 8)
             {
             player.sendMessage("Your clan is already level 8.");
             }
             else
             {
             if (((player.getClan().getLevel() <= 1) || (player.getClan().getLevel() == 2) || (player.getClan().getLevel() == 3) || (player.getClan().getLevel() == 4)))
             {
                 player.getClan().setLevel(player.getClan().getLevel() + 1);
                 player.getClan().broadcastClanStatus();
                 player.sendMessage("Your clan is now level " + player.getClan().getLevel() + ".");
                            player.setTarget(player);
                            player.broadcastPacket(new MagicSkillUser(player, 5103, 1, 1000, 0));
     int newCLanLevel = player.getClan().getLevel() +1;
     LOGGER.info("Updating clan ID " + player.getClan().getClanId() +" to level " + newCLanLevel + " for player " + player.getName() + ".");
     try (Connection con = L2DatabaseFactory.getInstance().getConnection();
     PreparedStatement statement = con.prepareStatement("UPDATE clan_data SET clan_level=? WHERE clan_id=?"))
     {
     statement.setInt(1, player.getClan().getLevel());
     statement.setInt(2, player.getClan().getClanId());
     statement.execute();
     statement.close();
     }
     catch (Exception e)
     {
     LOGGER.info("Error updating clan level for player " + player.getName() + ". Error: " + e);
     }
     player.sendMessage("Your clan level have been increased successfully.");
             }
             else if (player.getClan().getLevel() == 5)
             {
              if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) >= 10)
              {
              player.destroyItemByItemId("Consume", ITEM_ID, 10, player, true);
                 player.getClan().setLevel(player.getClan().getLevel() + 1);
                 player.getClan().broadcastClanStatus();
                     player.sendMessage("Your clan is now level " + player.getClan().getLevel() + ".");
                                player.setTarget(player);
                                player.broadcastPacket(new MagicSkillUser(player, 5103, 1, 1000, 0));
     int newCLanLevel = player.getClan().getLevel() +1;
     LOGGER.info("Updating clan ID " + player.getClan().getClanId() +" to level " + newCLanLevel + " for player " + player.getName() + ".");
     try (Connection con = L2DatabaseFactory.getInstance().getConnection();
     PreparedStatement statement = con.prepareStatement("UPDATE clan_data SET clan_level=? WHERE clan_id=?"))
     {
     statement.setInt(1, player.getClan().getLevel());
     statement.setInt(2, player.getClan().getClanId());
     statement.execute();
     statement.close();
     }
     catch (Exception e)
     {
     LOGGER.info("Error updating clan level for player " + player.getName() + ". Error: " + e);
     }
     player.sendMessage("Your clan level have been increased successfully.");
             }
             else
             {
             player.sendMessage("Not enough items.");
             }
             }
             else if (player.getClan().getLevel() == 6)
             {
              if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) >= 10)
              {
              player.destroyItemByItemId("Consume", ITEM_ID, 10, player, true);
                 player.getClan().setLevel(player.getClan().getLevel() + 1);
                 player.getClan().broadcastClanStatus();
                     player.sendMessage("Your clan is now level " + player.getClan().getLevel() + ".");
                                player.setTarget(player);
                                player.broadcastPacket(new MagicSkillUser(player, 5103, 1, 1000, 0));
     int newCLanLevel = player.getClan().getLevel() +1;
     LOGGER.info("Updating clan ID " + player.getClan().getClanId() +" to level " + newCLanLevel + " for player " + player.getName() + ".");
     try (Connection con = L2DatabaseFactory.getInstance().getConnection();
     PreparedStatement statement = con.prepareStatement("UPDATE clan_data SET clan_level=? WHERE clan_id=?"))
     {
     statement.setInt(1, player.getClan().getLevel());
     statement.setInt(2, player.getClan().getClanId());
     statement.execute();
     statement.close();
     }
     catch (Exception e)
     {
     LOGGER.info("Error updating clan level for player " + player.getName() + ". Error: " + e);
     }
     player.sendMessage("Your clan level have been increased successfully.");
             }
             else
             {
             player.sendMessage("Not enough items.");
             }
             }
             else if (player.getClan().getLevel() == 7)
             {
              if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) >= 10)
              {
              player.destroyItemByItemId("Consume", ITEM_ID, 10, player, true);
                 player.getClan().setLevel(player.getClan().getLevel() + 1);
                 player.getClan().broadcastClanStatus();
                     player.sendMessage("Your clan is now level " + player.getClan().getLevel() + ".");
                                player.setTarget(player);
                                player.broadcastPacket(new MagicSkillUser(player, 5103, 1, 1000, 0));
     int newCLanLevel = player.getClan().getLevel() +1;
     LOGGER.info("Updating clan ID " + player.getClan().getClanId() +" to level " + newCLanLevel + " for player " + player.getName() + ".");
     try (Connection con = L2DatabaseFactory.getInstance().getConnection();
     PreparedStatement statement = con.prepareStatement("UPDATE clan_data SET clan_level=? WHERE clan_id=?"))
     {
     statement.setInt(1, player.getClan().getLevel());
     statement.setInt(2, player.getClan().getClanId());
     statement.execute();
     statement.close();
     }
     catch (Exception e)
     {
     LOGGER.info("Error updating clan level for player " + player.getName() + ". Error: " + e);
     }
     player.sendMessage("Your clan level have been increased successfully.");
             }
             else
             {
             player.sendMessage("Not enough items.");
             }
             }
             player.getClan().broadcastClanStatus();
             }
             }
            }
             else if (command.startsWith("changeGender"))
             {
    if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) >= 5)
    {
     player.getAppearance().setSex(player.getAppearance().getSex() ? false : true);
                    player.setTarget(player);
                    player.broadcastPacket(new MagicSkillUser(player, 5103, 1, 1000, 0));
                 player.destroyItemByItemId("Consume", ITEM_ID, 10, player, true);
     L2PcInstance.setSexDB(player, 1);
     player.sendMessage("You have successfully changed your sex.");
     player.decayMe();
     player.spawnMe(player.getX(), player.getY(), player.getZ());
     player.broadcastUserInfo();
             }
               else
               {
                player.sendMessage("You don't have enough items.");
               }
             }
             else if (command.startsWith("hero"))
     {
              if (!player.isHero())
              {
       if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) >= 10)
       {
     player.broadcastPacket(new SocialAction(player.getObjectId(), 16));
     player.setHero(true);
     updateDatabase(player, 1 * 24L * 60L * 60L * 1000L);
     player.sendMessage("You have been hero for 1 day. Have a nice time!");
     player.broadcastUserInfo();
     player.destroyItemByItemId("Consume", ITEM_ID, 10, player, true);
     }
               else
               {
                player.sendMessage("You don't have enough items.");
               }
           }
           else
           {
            player.sendMessage("You already are a hero.");
           }
     }
     }


@Override
public void onAction(L2PcInstance player)
{
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
{
showChatWindow(player, 0);
}
// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
player.sendPacket(ActionFailed.STATIC_PACKET);
}

   @Override
        public void showChatWindow(L2PcInstance player, int val)
        {
                TextBuilder tb = new TextBuilder();
         tb.append("<html><head><title>Lineage II Addicted - Donate Panel</title></head><body>");
         tb.append("<center><img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("<table bgcolor=000000 width=300 height=40>");
         tb.append("<tr>");
         tb.append("<td width=\"300\" align=\"center\"><font color=\"666666\">Welcome " + player.getName() +" in Lineage II</font><font color=\"FF9900\"> -Addicted-</font></td>");
         tb.append("</tr>");
         tb.append("</table>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("<br>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("</center>");
         tb.append("<center>");
         tb.append("<table bgcolor=000000 width=300 height=12>");
         tb.append("<tr>");
         tb.append("<td width=\"300\" align=\"center\"><font color=\"FF0000\">{Donate Panel}</font></td>");
         tb.append("</tr>");
         tb.append("<tr>");
         tb.append("<td width=\"300\" align=\"center\"><font color=\"666666\">Help us to improve our server by donating!</font></td>");
         tb.append("</tr>");
         tb.append("</table>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("<br>");
         tb.append("<center>");
         tb.append("<table>");
         tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_active\">Active Augment (20 Donate coins)</a></font></td></tr>");
         tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_passive\">Passive Augment (20 Donate coins)</a></font></td></tr>");
         tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_hero\">Become Hero 24h (20 Donate coins)</a></font></td></tr>");
         tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_setNoble\">Become Noblesse (10 Donate coins)</a></font></td></tr>");
         tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_setDonator\">Become Donator (50 Donate coins)</a></font></td></tr>");
         tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_changeName2\">Change Name (10 Donate coins)</a></font></td></tr>");
         tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_changeGender\">Change Sex (10 Donate coins)</a></font></td></tr>");
         tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_reducePks2\">Remove Pks (1 pk = 1 Donate coin)</a></font></td></tr>");
         tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_changeClanName2\">Change Clan Name (10 Donate coins)</a></font></td></tr>");
         tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_levelUpClan\">Clan level up (10 Donate coins per lvl)</a></font></td></tr>");
         tb.append("</table>");
         tb.append("<br>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("<table border=0 bgcolor=000000 width=300 height=20>");
         tb.append("<tr>");
         tb.append("<td align=\"center\" width=\"300\"><font color=\"666666\">Vote for us :</font><font color=\"FF5555\"> www.l2addicted.eu</font></td>");
         tb.append("</tr>");
         tb.append("</table>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("</center>");
         tb.append("</body></html>");
               
                NpcHtmlMessage msg = new NpcHtmlMessage(this.getObjectId());
                msg.setHtml(tb.toString());
                msg.replace("%objectId%", String.valueOf(this.getObjectId()));
       
                player.sendPacket(msg);
        }
   
  
   public void showActiveWindow(L2PcInstance player, int val)
        {
                TextBuilder tb = new TextBuilder();
                
         tb.append("<html><head><title>Lineage II Addicted - Active Augment</title></head><body>");
         tb.append("<center><img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("</center>");
         tb.append("<center>");
         tb.append("<table bgcolor=000000 width=300 height=12>");
         tb.append("<tr>");
         tb.append("<td width=\"300\" align=\"center\"><font color=\"FF0000\">{Remove Pks}</font></td>");
         tb.append("</tr>");
         tb.append("<tr>");
         tb.append("<td width=\"300\" align=\"center\"><font color=\"666666\">Add a passive skill for 10 donate coins.</font></td>");
         tb.append("</tr>");
         tb.append("</table>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("<br>");
         tb.append("<center>");
         tb.append("<button value=\"Celestial\" action=\"bypass -h npc_%objectId%_Celestial\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">");
                tb.append("<button value=\"Refresh\" action=\"bypass -h npc_%objectId%_Refresh\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">");
                tb.append("<button value=\"Ritual\" action=\"bypass -h npc_%objectId%_Ritual\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">");        
                tb.append("<button value=\"Heal\" action=\"bypass -h npc_%objectId%_Heal\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">");      
                tb.append("<button value=\"Recharge\" action=\"bypass -h npc_%objectId%_Recharge\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">");  
                tb.append("<button value=\"Cheer\" action=\"bypass -h npc_%objectId%_Cheer\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">");  
                tb.append("<button value=\"Blessed Soul\" action=\"bypass -h npc_%objectId%_BlessedSoul\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">");  
                tb.append("<button value=\"Blessed Body\" action=\"bypass -h npc_%objectId%_BlessedBody\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">"); 
         tb.append("<img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>");
         tb.append("<br>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("<table border=0 bgcolor=000000 width=300 height=20>");
         tb.append("<tr>");
         tb.append("<td align=\"center\" width=\"300\"><font color=\"666666\">Vote for us :</font><font color=\"FF5555\"> www.l2addicted.eu</font></td>");
         tb.append("</tr>");
         tb.append("</table>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("</center>");
         tb.append("</body></html>");

                NpcHtmlMessage msg = new NpcHtmlMessage(this.getObjectId());
                msg.setHtml(tb.toString());
                msg.replace("%objectId%", String.valueOf(this.getObjectId()));
       
                player.sendPacket(msg);
        }
   public void showPassiveWindow(L2PcInstance player, int val)
        {
                TextBuilder tb = new TextBuilder();
         tb.append("<html><head><title>Lineage II Addicted - Passive Augment</title></head><body>");
         tb.append("<center><img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("</center>");
         tb.append("<center>");
         tb.append("<table bgcolor=000000 width=300 height=12>");
         tb.append("<tr>");
         tb.append("<td width=\"300\" align=\"center\"><font color=\"FF0000\">{Remove Pks}</font></td>");
         tb.append("</tr>");
         tb.append("<tr>");
         tb.append("<td width=\"300\" align=\"center\"><font color=\"666666\">Add a passive skill for 10 donate coins.</font></td>");
         tb.append("</tr>");
         tb.append("</table>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("<br>");
         tb.append("<center>");
                tb.append("<button value=\"Empower\" action=\"bypass -h npc_%objectId%_Empower\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">");
                tb.append("<button value=\"M.Barrier\" action=\"bypass -h npc_%objectId%_MagicBarrier\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">");        
                tb.append("<button value=\"Might\" action=\"bypass -h npc_%objectId%_Might\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">");        
                tb.append("<button value=\"Shield\" action=\"bypass -h npc_%objectId%_Shield\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">");   
                tb.append("<button value=\"Duel Might\" action=\"bypass -h npc_%objectId%_DuelMight\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">");   
                tb.append("<button value=\"Focus\" action=\"bypass -h npc_%objectId%_Focus\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">");   
                tb.append("<button value=\"Wild Magic\" action=\"bypass -h npc_%objectId%_WildMagic\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">");   
                tb.append("<button value=\"Agility\" action=\"bypass -h npc_%objectId%_Agility\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">");   
                tb.append("<button value=\"Guidance\" action=\"bypass -h npc_%objectId%_Guidance\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">");   
         tb.append("<img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>");
         tb.append("<br>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("<table border=0 bgcolor=000000 width=300 height=20>");
         tb.append("<tr>");
         tb.append("<td align=\"center\" width=\"300\"><font color=\"666666\">Vote for us :</font><font color=\"FF5555\"> www.l2addicted.eu</font></td>");
         tb.append("</tr>");
         tb.append("</table>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("</center>");
         tb.append("</body></html>");

                NpcHtmlMessage msg = new NpcHtmlMessage(this.getObjectId());
                msg.setHtml(tb.toString());
                msg.replace("%objectId%", String.valueOf(this.getObjectId()));
       
                player.sendPacket(msg);
        }
   
   public void showPksWindow(L2PcInstance player, int val)
        {
                TextBuilder tb = new TextBuilder();
                
         tb.append("<html><head><title>Lineage II Addicted - Remove PKs</title></head><body>");
         tb.append("<center><img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("</center>");
         tb.append("<center>");
         tb.append("<table bgcolor=000000 width=300 height=12>");
         tb.append("<tr>");
         tb.append("<td width=\"300\" align=\"center\"><font color=\"FF0000\">{Remove Pks}</font></td>");
         tb.append("</tr>");
         tb.append("<tr>");
         tb.append("<td width=\"300\" align=\"center\"><font color=\"666666\">Clean Pks. 1 pk = 1 Donate coin.</font></td>");
         tb.append("</tr>");
         tb.append("</table>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("<br>");
         tb.append("<center>");
                tb.append("<edit var=\"pkReduceCount\" width=80 height=15>");
                tb.append("<button value=\"Clean Pks\" action=\"bypass -h npc_%objectId%_reducePks $pkReduceCount\" back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\" width=75 height=21>");
         tb.append("<img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>");
         tb.append("<br>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("<table border=0 bgcolor=000000 width=300 height=20>");
         tb.append("<tr>");
         tb.append("<td align=\"center\" width=\"300\"><font color=\"666666\">Vote for us :</font><font color=\"FF5555\"> www.l2addicted.eu</font></td>");
         tb.append("</tr>");
         tb.append("</table>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("</center>");
         tb.append("</body></html>");
                NpcHtmlMessage msg = new NpcHtmlMessage(this.getObjectId());
                msg.setHtml(tb.toString());
                msg.replace("%objectId%", String.valueOf(this.getObjectId()));
       
                player.sendPacket(msg);
        }
   
   public void showNameWindow(L2PcInstance player, int val)
        {
                TextBuilder tb = new TextBuilder();
                
         tb.append("<html><head><title>Lineage II Addicted - Rename</title></head><body>");
         tb.append("<center><img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("</center>");
         tb.append("<center>");
         tb.append("<table bgcolor=000000 width=300 height=12>");
         tb.append("<tr>");
         tb.append("<td width=\"300\" align=\"center\"><font color=\"FF0000\">{Rename}</font></td>");
         tb.append("</tr>");
         tb.append("<tr>");
         tb.append("<td width=\"300\" align=\"center\"><font color=\"666666\">Change your name for 10 donate coins.</font></td>");
         tb.append("</tr>");
         tb.append("</table>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("<br>");
         tb.append("<center>");
                tb.append("<edit var=\"newName\" width=80 height=15>");
                tb.append("<button value=\"Rename\" action=\"bypass -h npc_%objectId%_changeName $newName\" back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\" width=75 height=21>");
         tb.append("<img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>");
         tb.append("<br>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("<table border=0 bgcolor=000000 width=300 height=20>");
         tb.append("<tr>");
         tb.append("<td align=\"center\" width=\"300\"><font color=\"666666\">Vote for us :</font><font color=\"FF5555\"> www.l2addicted.eu</font></td>");
         tb.append("</tr>");
         tb.append("</table>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("</center>");
         tb.append("</body></html>");
                NpcHtmlMessage msg = new NpcHtmlMessage(this.getObjectId());
                msg.setHtml(tb.toString());
                msg.replace("%objectId%", String.valueOf(this.getObjectId()));
       
                player.sendPacket(msg);
        }
   
   public void showClanNameWindow(L2PcInstance player, int val)
        {
                TextBuilder tb = new TextBuilder();
                
         tb.append("<html><head><title>Lineage II Addicted - Rename</title></head><body>");
         tb.append("<center><img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("</center>");
         tb.append("<center>");
         tb.append("<table bgcolor=000000 width=300 height=12>");
         tb.append("<tr>");
         tb.append("<td width=\"300\" align=\"center\"><font color=\"FF0000\">{Rename}</font></td>");
         tb.append("</tr>");
         tb.append("<tr>");
         tb.append("<td width=\"300\" align=\"center\"><font color=\"666666\">Change your clan name for 10 donate coins.</font></td>");
         tb.append("</tr>");
         tb.append("</table>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("<br>");
         tb.append("<center>");
                tb.append("<edit var=\"newClanName\" width=80 height=15>");
                tb.append("<button value=\"Rename\" action=\"bypass -h npc_%objectId%_changeClanName $newClanName\" back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\" width=75 height=21>");
         tb.append("<img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>");
         tb.append("<br>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("<table border=0 bgcolor=000000 width=300 height=20>");
         tb.append("<tr>");
         tb.append("<td align=\"center\" width=\"300\"><font color=\"666666\">Vote for us :</font><font color=\"FF5555\"> www.l2addicted.eu</font></td>");
         tb.append("</tr>");
         tb.append("</table>");
         tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>");
         tb.append("</center>");
         tb.append("</body></html>");
                NpcHtmlMessage msg = new NpcHtmlMessage(this.getObjectId());
                msg.setHtml(tb.toString());
                msg.replace("%objectId%", String.valueOf(this.getObjectId()));
       
                player.sendPacket(msg);
        }

private static void addAugment(L2PcInstance player, int attribute, int skill, int level)
{
L2ItemInstance item = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND); 
if (item == null) 
{
player.sendMessage("You have to equip a weapon.");
return;
}
if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) < 20)
{

player.sendMessage("You dont have enough item.");
return;
}
if (item.isAugmented())
{
player.sendMessage("Remove the augment first.");
return;
}

Connection con = null;
try
{
player.destroyItemByItemId("Consume", ITEM_ID, 20, player, true);
con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement statement = con.prepareStatement("REPLACE INTO augmentations VALUES(?,?,?,?)");
statement.setInt(1, item.getObjectId());

statement.setInt(2, attribute*65536+1);
statement.setInt(3, skill);
statement.setInt(4, level);


statement.executeUpdate();
player.sendPacket(new SystemMessage(SystemMessageId.THE_ITEM_WAS_SUCCESSFULLY_AUGMENTED));
statement.close();
player.sendMessage("You will be disconnected in 3 seconds to enable the security");
try
{
Thread.sleep(3000L);
}
catch (Exception e)
{
}

player.deleteMe();

player.sendPacket(new LeaveWorld());
}
catch (Exception e)
{
}
finally
{
L2DatabaseFactory.close(con);
}
}

private void updateDatabasex(L2PcInstance player, boolean newDonator)
{
Connection con = null;
try
{
if(player == null)
return;

con = L2DatabaseFactory.getInstance().getConnection(false);
PreparedStatement stmt = con.prepareStatement(INSERT_DATAA);

stmt.setInt(1, player.getObjectId());
stmt.setString(2, player.getName());
stmt.setInt(3, player.isHero() ? 1 : 0);
stmt.setInt(4, player.isNoble() ? 1 : 0);
stmt.setInt(5, 1);
stmt.execute();
stmt.close();
stmt = null;
}
catch(Exception e)
{
if(Config.ENABLE_ALL_EXCEPTIONS)
e.printStackTrace();

LOGGER.error("Error: could not update database: ", e);
}
finally
{
CloseUtil.close(con);

con = null;
}
}

private void updateDatabase(L2PcInstance player, long heroTime)
{
Connection con = null;
try
{
if(player == null)
return;

con = L2DatabaseFactory.getInstance().getConnection(false);
PreparedStatement stmt = con.prepareStatement(INSERT_DATA);

stmt.setInt(1, player.getObjectId());
stmt.setString(2, player.getName());
stmt.setInt(3, 1);
stmt.setInt(4, player.isNoble() ? 1 : 0);
stmt.setInt(5, player.isDonator() ? 1 : 0);
stmt.setLong(6, heroTime == 0 ? 0 : System.currentTimeMillis() + heroTime);
stmt.execute();
stmt.close();
stmt = null;
}
catch(Exception e)
{
if(Config.ENABLE_ALL_EXCEPTIONS)
e.printStackTrace();

LOGGER.error("Error: could not update database: ", e);
}
finally
{
CloseUtil.close(con);

con = null;
}
}

private boolean isValidName(final String text)
{
boolean result = true;
final String test = text;
Pattern pattern;

try
{
pattern = Pattern.compile(Config.CNAME_TEMPLATE);
}
catch (final PatternSyntaxException e) // case of illegal pattern
{
if (Config.ENABLE_ALL_EXCEPTIONS)
e.printStackTrace();

pattern = Pattern.compile(".*");
}

final Matcher regexp = pattern.matcher(test);
if (!regexp.matches())
result = false;

return result;
}

private boolean isValidClanName(final String text)
{
boolean result = true;
final String test = text;
Pattern pattern;

try
{
pattern = Pattern.compile(Config.CLAN_NAME_TEMPLATE);
}
catch (final PatternSyntaxException e) // case of illegal pattern
{
if (Config.ENABLE_ALL_EXCEPTIONS)
e.printStackTrace();

pattern = Pattern.compile(".*");
}

final Matcher regexp = pattern.matcher(test);
if (!regexp.matches())
result = false;

return result;
}
}
Edited by te0x
Posted (edited)

One question, why text Builder and this crappy connection close way? Frozen still java 6..?

 

Db update for set noble? Dat frozen.. :o

Edited by SweeTs
Posted (edited)

One question, why text Builder and this crappy connection close way? Frozen still java 6..?

 

Db update for set noble? Dat frozen.. :o

i dont like to mess with new files in data. how much can 5-6 text builder can effect ? ;p 

the update on set nobl it was my mistake(i though it needs too but it didnt and i forgot to remove it). anyways it needs a cleanup for sure, additionals Configs in order to change the item request easier.

although it works :3

Edited by te0x
Posted

Why hard coded it anyway? Why you don't just html file it lol

I just said it. I don't like to add more files in data.
Posted (edited)

i said it before dude. L2te0xServiceNpc 

you say that about npc type :D

But anyway...ty.

Now i add it and i test it.

Edited by GastOne

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



  • Posts

    • Hello community, I’d like to share an improved version of the L2smr editor for StaticMeshes, focused on solving some workflow issues I found in the original tool. CreditsThis project is based on the original acmi/L2smr repository https://github.com/acmi/L2smr , created by acmi, and I updated it to Java 17 with some additional features. Issues in the original L2smr Too many windows: each StaticMesh opened in a new one → cluttered desktop. No search: navigating through hundreds of StaticMeshActors was slow and tedious. Added improvements Flexible views Single Window Mode: reuse one window instead of opening new ones. Multiple Window Mode: still available for those who prefer having several views open simultaneously. Real-time Search Field Instant filtering as you type. Case-insensitive search. “Reset” button to quickly clear the search.     Installation and Execution: Clone the repository: git clone https://github.com/Jeep12/l2smr.git cd l2smr        2.Build the project:   ./gradlew build        3. Run the application:     ./run.bat      Or simply double-click on run.bat.     The run.bat script automatically extracts JavaFX from the included javafx-17.0.2.zip file in the javafx/ directory, sets up the required libraries, and launches the application. You don’t    need to install JavaFX separately.      Repository: https://github.com/Jeep12/l2smr     Maybe these features already existed in another version or fork, and they might not be very big changes, but since I didn’t know about them and found them necessary, I decided to          implement them myself and wanted to share them.      
    • no....Mobius L2Clientdat and L2FileEditor can do that...but still cant works with TaiWanese Grand Crusade ,especially Armorgrp.dat and Armorgrp-Classic.dat
    • L2GOLD - Halcyon x45 Project Classic Interlude   C6 - Classic Interlude: Protocol 110     Is a complete copy of L2Gold in Classic [110 Protocol] with L2OFF files.   Fully L2Gold Features - Daily Quest - Daily Mining Quest - Ancient Weapons -Refine System  -Rebirth System -Fully configurable everything you want -Gold stats/Gold skills/Gold items working 100% -Zones 100% alike  -Unique donations system (npc or voicedcommand .donate) - On Enchant success announcement ( if +16 for weapon, 8 for armor , 7 for jewel) - Announce of Castle Lord - Announce of Hero  - Olympiad Max A grade - Olympiad Buffs on matches changed to Gold Alike - Working fully Dreadbane   - AI Mods: Static Time for RB   Automated Events: Squash Watermelon RB Event High rate  (those are fully automated)   Server is running a Test Server: Online to anyone can test it.   Game Client: https://www.mediafire.com/file/1d8xe18rvgi04lx/L2_Classic_Interlude_Client_V2.rar/file   Game Patch: https://www.mediafire.com/file/3z4b8ezy93h2z1g/L2Halcyon+Gold+Patch.rar/file   GM Accounts: ID: root pass root [ accounts go from  root1 until root20 ]   Regular Accounts Registrations: http://84.247.164.27/?page=register   Some Screenshots: https://imgur.com/a/o7TxzTN   Contact me here via PM (only serious buyers).    Price of the product: Fully Server Pack + Source ( 250 Euros )
    • ✨ A Service with Vibes  Vibe SMS ✨   Vibe SMS is not just a platform for working with numbers. We’ve built it to be simple, convenient, and stress-free, so your tasks get done without hassle. We value real communication: we listen to your ideas, provide support, and make sure everyone feels calm and confident. With us, you’re not just a client  you’re part of a space built on trust, support, and a human touch. Vibe SMS is a place where people matter and where we create an atmosphere you’ll want to stay in.   Website link — https://vibe-sms.net/ Our Telegram channel — https://t.me/vibe_sms
  • 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