11-17-2015, 05:57 PM
.java
/*
* 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());
}
else if(OurSplititCommand.startsWith("showauglist"))
{
showListWindow(player);
player.sendPacket(new ActionFailed());
}
else if(OurSplititCommand.startsWith("tryremove"))
{
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());
}
else if(OurSplititCommand.startsWith("tryaug"))
{
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());
}
super.onBypassFeedback(player, command);
player.sendPacket(new ActionFailed());
}
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);
}
}
}
* 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());
}
else if(OurSplititCommand.startsWith("showauglist"))
{
showListWindow(player);
player.sendPacket(new ActionFailed());
}
else if(OurSplititCommand.startsWith("tryremove"))
{
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());
}
else if(OurSplititCommand.startsWith("tryaug"))
{
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());
}
super.onBypassFeedback(player, command);
player.sendPacket(new ActionFailed());
}
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
![Smile Smile](https://forum.zone-game.info/images/smilies/smile.png)
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
![Smile Smile](https://forum.zone-game.info/images/smilies/smile.png)
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);
}
}
}
как зделатъ НПС траде скил Life Stone сборка L2JHellas