Thalion Posted June 15, 2013 Posted June 15, 2013 Hello averyone! I want to edit an Admin command (//create_item). The problem is that only create items to me. I need that this commando be able to create the items to the target too. Thank you!
0 xdem Posted June 17, 2013 Posted June 17, 2013 Okey, thanks for answer but considering that its doing nothing why is there? Maybe for protection logs
0 MissingNo. Posted June 17, 2013 Posted June 17, 2013 Yup "maybe" Well, actually, it is for logging.
0 Thalion Posted June 18, 2013 Author Posted June 18, 2013 package handlers.admincommandhandlers; import java.util.StringTokenizer; import net.sf.l2j.gameserver.datatables.ItemTable; import net.sf.l2j.gameserver.handler.IAdminCommandHandler; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.network.serverpackets.ItemList; import net.sf.l2j.gameserver.templates.item.L2Item; /** * This class handles following admin commands: * - itemcreate = show menu * - create_item <id> [num] = creates num items with respective id, if num is not specified, assumes 1. * * @version $Revision: 1.2.2.2.2.3 $ $Date: 2005/04/11 10:06:06 $ */ public class AdminCreateItem implements IAdminCommandHandler { private static final String[] ADMIN_COMMANDS = { "admin_itemcreate", "admin_create_item" }; public boolean useAdminCommand(String command, L2PcInstance activeChar) { if (command.equals("admin_itemcreate")) { AdminHelpPage.showHelpPage(activeChar, "itemcreation.htm"); } else if (command.startsWith("admin_create_item")) { try { L2PcInstance p = activeChar; if (activeChar.getTarget() != null && instanceof L2PcInstance) p = activeChar.getTarget(); String val = command.substring(17); StringTokenizer st = new StringTokenizer(val); if (st.countTokens() == 2) { String id = st.nextToken(); int idval = Integer.parseInt(id); String num = st.nextToken(); long numval = Long.parseLong(num); createItem(p, idval, numval); } else if (st.countTokens() == 1) { String id = st.nextToken(); int idval = Integer.parseInt(id); createItem(p, idval, 1); } } catch (StringIndexOutOfBoundsException e) { activeChar.sendMessage("Usage: //itemcreate <itemId> [amount]"); } catch (NumberFormatException nfe) { activeChar.sendMessage("Specify a valid number."); } AdminHelpPage.showHelpPage(activeChar, "itemcreation.htm"); } return true; } public String[] getAdminCommandList() { return ADMIN_COMMANDS; } private void createItem(L2PcInstance activeChar, int id, long num) { L2Item template = ItemTable.getInstance().getTemplate(id); if (template == null) { activeChar.sendMessage("This item doesn't exist."); return; } if (num > 20) { if (!template.isStackable()) { activeChar.sendMessage("This item does not stack - Creation aborted."); return; } } activeChar.getInventory().addItem("Admin", id, num, activeChar, null); ItemList il = new ItemList(activeChar, true); activeChar.sendPacket(il); activeChar.sendMessage("You have spawned " + num + " item(s) number " + id + " in your inventory."); } } This will be ok Thanks for help! It returned an error: Thanks!
0 Thalion Posted June 18, 2013 Author Posted June 18, 2013 O.o wait... activeChar.getInventory().addItem("Admin", id, num, activeChar, null); "Admin" I'm not sure what this does exacly... remove it and check if smth changed :D It did not work. Thanks anyway!
0 Erlandys Posted June 18, 2013 Posted June 18, 2013 Thanks for help! It returned an error: Thanks! That was okay, just simply do this: This line: if (activeChar.getTarget() != null && instanceof L2PcInstance) Replace with this: if (activeChar.getTarget() != null && activeChar.getTarget() instanceof L2PcInstance)
0 Setekh Posted June 18, 2013 Posted June 18, 2013 the post is from 2009, u both got tricked by a spammer XD edit: damn wifi, opened the wrong topic.. ignore what u just read >.>
0 An4rchy Posted June 18, 2013 Posted June 18, 2013 the post is from 2009, u both got tricked by a spammer XD edit: damn wifi, opened the wrong topic.. ignore what u just read >.> ahahahha xdem nice baloni code :X
0 xdem Posted June 18, 2013 Posted June 18, 2013 xdem nice baloni code :X nothing wrong with the code just a mistake I made cause I didnt had eclipse and wrote it here direcrtly :P
0 Thalion Posted June 18, 2013 Author Posted June 18, 2013 That was okay, just simply do this: This line: if (activeChar.getTarget() != null && instanceof L2PcInstance) Replace with this: if (activeChar.getTarget() != null && activeChar.getTarget() instanceof L2PcInstance) Thank you again! Well I changed it and now I got this error:
0 xdem Posted June 18, 2013 Posted June 18, 2013 yea you need to cast this p = activeChar.getTarget(); to p = (L2PcInstance) activeChar.getTarget(); OR (more secure) but still you have the instanceof above =p p = activeChar.getTarget().getActingPlayer();
0 Thalion Posted June 18, 2013 Author Posted June 18, 2013 yea you need to cast this p = activeChar.getTarget(); to p = (L2PcInstance) activeChar.getTarget(); OR (more secure) but still you have the instanceof above =p p = activeChar.getTarget().getActingPlayer(); Now it works! Thank you very much, you are amazing! P.D.: Is working with "p = (L2PcInstance) activeChar.getTarget();"
0 xdem Posted June 18, 2013 Posted June 18, 2013 Now it works! Thank you very much, you are amazing! your welcome
Question
Thalion
Hello averyone!
I want to edit an Admin command (//create_item). The problem is that only create items to me. I need that this commando be able to create the items to the target too.
Thank you!
30 answers to this question
Recommended Posts