Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

Npc Fast Augment

Iniciado por Swarlog, Ago 11, 2022, 01:18 AM

Tema anterior - Siguiente tema

Swarlog

/*
 * 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.l2jhellas.gameserver.model.actor.instance;

import java.util.StringTokenizer;

import com.l2jhellas.gameserver.ai.CtrlIntention;
import com.l2jhellas.gameserver.datatables.xml.AugmentationData;
import com.l2jhellas.gameserver.model.L2Augmentation;
import com.l2jhellas.gameserver.model.L2ItemInstance;
import com.l2jhellas.gameserver.network.SystemMessageId;
import com.l2jhellas.gameserver.network.serverpackets.ActionFailed;
import com.l2jhellas.gameserver.network.serverpackets.ExShowScreenMessage;
import com.l2jhellas.gameserver.network.serverpackets.ExVariationCancelResult;
import com.l2jhellas.gameserver.network.serverpackets.ExVariationResult;
import com.l2jhellas.gameserver.network.serverpackets.InventoryUpdate;
import com.l2jhellas.gameserver.network.serverpackets.MyTargetSelected;
import com.l2jhellas.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jhellas.gameserver.network.serverpackets.SkillList;
import com.l2jhellas.gameserver.network.serverpackets.SocialAction;
import com.l2jhellas.gameserver.network.serverpackets.StatusUpdate;
import com.l2jhellas.gameserver.network.serverpackets.SystemMessage;
import com.l2jhellas.gameserver.network.serverpackets.ValidateLocation;
import com.l2jhellas.gameserver.network.serverpackets.ExShowScreenMessage.SMPOS;
import com.l2jhellas.gameserver.templates.L2NpcTemplate;
import com.l2jhellas.gameserver.templates.L2WeaponType;
import com.l2jhellas.util.Rnd;


/**
 * Author AbsolutePower
 */
public final class L2FastAugByAbsoInstance extends L2NpcInstance
{

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

@Override
public void onBypassFeedback(L2PcInstance player, String command)
{
if(player==null)
return;

final StringTokenizer st = new StringTokenizer(command, " ");
final String currentcommand = st.nextToken();

final String letsSliptIt = currentcommand;
final String[] nowTheId = letsSliptIt.split("-");

final String OurSplititCommand = nowTheId[0];
final String FinallyWeHaveObjectId = nowTheId[1];


if(OurSplititCommand.startsWith("showremlist"))
{
showListWindowForRemove(player);
player.sendPacket(new ActionFailed());
}

if(OurSplititCommand.startsWith("showauglist"))
{
showListWindow(player);
player.sendPacket(new ActionFailed());
}

if(OurSplititCommand.startsWith("tryremove"))
{
try
{

final L2ItemInstance item = player.getInventory().getItemByObjectId(Integer.parseInt(FinallyWeHaveObjectId));

if(item == null )
{
player.sendPacket(new ActionFailed());
return;
}

        if (item.isEquipped())
{
player.disarmWeapons();
player.broadcastUserInfo();
}

item.removeAugmentation();

player.sendPacket(new ExVariationCancelResult(1));

InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(item);
player.sendPacket(iu);

player.sendPacket(new SkillList());

SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.AUGMENTATION_HAS_BEEN_SUCCESSFULLY_REMOVED_FROM_YOUR_S1);
sm.addItemName(item);
player.sendPacket(sm);
showListWindowForRemove(player);
player.sendPacket(new ActionFailed());
}
catch (Exception e)
{
player.sendPacket(new ActionFailed());

}
if(OurSplititCommand.startsWith("tryaug"))
{
try
{
if (player.getInventory().getInventoryItemCount(57, 0) < 200000)
{
player.sendMessage("You do not have enough adena!");
player.sendPacket(new ActionFailed());
return;
}

final L2ItemInstance item = player.getInventory().getItemByObjectId(Integer.parseInt(FinallyWeHaveObjectId));


if(item == null )
{
player.sendPacket(new ActionFailed());
return;
}

        if (item.isEquipped())
{
player.disarmWeapons();
player.broadcastUserInfo();
}
       
final L2Augmentation aug = AugmentationData.getInstance().generateRandomAugmentation(item,2,2);
item.setAugmentation(aug);

final int stat12 = 0x0000FFFF & aug.getAugmentationId();
final int stat34 = aug.getAugmentationId() >> 16;
player.sendPacket(new ExVariationResult(stat12, stat34, 1));

InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(item);
player.sendPacket(iu);

StatusUpdate su = new StatusUpdate(player.getObjectId());
su.addAttribute(StatusUpdate.CUR_LOAD, player.getCurrentLoad());
player.sendPacket(su);

showListWindow(player);

player.getInventory().reduceAdena("FastAugh", 200000, player, null);

player.sendPacket(SystemMessageId.THE_ITEM_WAS_SUCCESSFULLY_AUGMENTED);

if(item.getAugmentation().getSkill()!=null)
{
   player.sendPacket(new ExShowScreenMessage("You have " + item.getAugmentation().getSkill().getName(), 5000, SMPOS.TOP_CENTER, true));
   player.sendPacket(new SkillList());
}

player.sendPacket(new ActionFailed());

}
catch (Exception e)
{
player.sendPacket(new ActionFailed());
}   
}

super.onBypassFeedback(player, command);
}

public void showListWindow(L2PcInstance player)
{
NpcHtmlMessage nhm = new NpcHtmlMessage(5);
StringBuilder tb = new StringBuilder("");
String Rem = "RemoveAug";

tb.append("<html><head><title>By AbsolutePower</title></head><body>");
tb.append("<center>");
tb.append("<table width=\"250\" cellpadding=\"5\" bgcolor=\"000000\">");
tb.append("<tr>");
tb.append("<td width=\"45\" valign=\"top\" align=\"center\"><img src=\"L2ui_ch3.menubutton4\" width=\"38\" height=\"38\"></td>");
tb.append("<td valign=\"top\"><font color=\"FF6600\">AugmentHelper</font>");
tb.append("<br1><font color=\"00FF00ju\">" + player.getName() + "</font>, use this menu for fast augment :)<br1></td>");
tb.append("</tr>");
tb.append("</table>");
tb.append("</center>");
tb.append("<center>");
tb.append("<br>");

for (L2ItemInstance item : player.getInventory().getItems())
{
   
       if(!item.isAugmented() && item.getItemType() instanceof L2WeaponType && item.isEquipable() && !item.isQuestItem())
       {
           if(item!=null)
   tb.append("<button value=\""+item.getItemName()+"\" action=\"bypass -h npc_" + getObjectId() + "_tryaug-"+item.getObjectId()+"\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\"><br>");
               //tb.append("<table border=0 width=\"100%\">");
              // tb.append("<tr><td><img src=\""+IconJava.getIcon(item.getItemId())+"\"width=\"32\"height=\"32\"></td>"
               //+"<td>"+"<button value=\""+item.getItemName()+"\" action=\"bypass -h npc_"+getObjectId()+"_tryaug-"+item.getObjectId()+"\"width=204 height=21 back=\"sek.cbui75\" fore=\"sek.cbui75\"><br>"+"</td>"+"<td>+"+item.getEnchantLevel()+"</td></tr></table>");
        }          


}

tb.append("<br>");
tb.append("<button value=\""+Rem+"\" action=\"bypass -h npc_" + getObjectId() + "_showremlist-1"+"\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\"><br>");
tb.append("</center>");
tb.append("</body></html>");

nhm.setHtml(tb.toString());
player.sendPacket(nhm);
}

public void showListWindowForRemove(L2PcInstance player)
{
NpcHtmlMessage nhm = new NpcHtmlMessage(5);
StringBuilder tb = new StringBuilder("");
String Rem = "GobackToAugList";

tb.append("<html><head><title>By AbsolutePower</title></head><body>");
tb.append("<center>");
tb.append("<table width=\"250\" cellpadding=\"5\" bgcolor=\"000000\">");
tb.append("<tr>");
tb.append("<td width=\"45\" valign=\"top\" align=\"center\"><img src=\"L2ui_ch3.menubutton4\" width=\"38\" height=\"38\"></td>");
tb.append("<td valign=\"top\"><font color=\"FF6600\">AugmentHelper</font>");
tb.append("<br1><font color=\"00FF00ju\">" + player.getName() + "</font>, use this menu for fast augment :)<br1></td>");
tb.append("</tr>");
tb.append("</table>");
tb.append("</center>");
tb.append("<center>");
tb.append("<br>");

for (L2ItemInstance item : player.getInventory().getItems())
{
   
       if(item.isAugmented() && item.getItemType() instanceof L2WeaponType && item.isEquipable() && !item.isQuestItem())
       {
           if(item!=null)
   tb.append("<button value=\""+item.getItemName()+"\" action=\"bypass -h npc_" + getObjectId() + "_tryremove-"+item.getObjectId()+"\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\"><br>");
               //tb.append("<table border=0 width=\"100%\">");
              // tb.append("<tr><td><img src=\""+IconJava.getIcon(item.getItemId())+"\"width=\"32\"height=\"32\"></td>"
               //+"<td>"+"<button value=\""+item.getItemName()+"\" action=\"bypass -h npc_"+getObjectId()+"_tryaug-"+item.getObjectId()+"\"width=204 height=21 back=\"sek.cbui75\" fore=\"sek.cbui75\"><br>"+"</td>"+"<td>+"+item.getEnchantLevel()+"</td></tr></table>");
        }          


}

tb.append("<br>");
tb.append("<button value=\""+Rem+"\" action=\"bypass -h npc_" + getObjectId() + "_showauglist-1"+"\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\"><br>");
tb.append("</center>");
tb.append("</body></html>");

nhm.setHtml(tb.toString());
player.sendPacket(nhm);
}
    @Override
    public void onAction(L2PcInstance player)
    {
if (this != player.getTarget())
{
player.setTarget(this);
player.sendPacket(new MyTargetSelected(getObjectId(), player.getLevel() - getLevel()));
player.sendPacket(new ValidateLocation(this));
}
else if (isInsideRadius(player, INTERACTION_DISTANCE, false, false))
{
SocialAction sa = new SocialAction(this.getObjectId(), Rnd.get(8));
broadcastPacket(sa);
player.setLastFolkNPC(this);
showListWindow(player);
player.sendPacket(ActionFailed.STATIC_PACKET);
}
else {
player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
player.sendPacket(ActionFailed.STATIC_PACKET);
}
    }
}