Jump to content

Psyancy

Legendary Member
  • Posts

    1,560
  • Credits

  • Joined

  • Last visited

  • Days Won

    20
  • Feedback

    100%

Everything posted by Psyancy

  1. ahhaahahaha again trying to show his self as a pro dev by using shared codes claiming as his. In fact this code is shared on l2jbrasil (no advertise) by bluur XD
  2. About the images you can get em by using umodel and extract every image is available on lineage by their textures and then open and edit them via photoshop
  3. oh great, christmas is coming so it will be great! I'll check it and i'll come back to tell you, thanks anyway
  4. ah so it will exchange the ingredient item to the production item i've added with the enchant value that my ingredient item got?
  5. Your multisell was like this i guess for example <?xml version="1.0" encoding="UTF-8"?> <!-- Test Multisell --> <list maintainEnchantment="true"> <!-- Dark Crystal for Major --> <item id="1"> <ingredient id="2407" count="1" enchant="10"/> <production id="6383" count="1" enchant="10"/> </item> </list> right?
  6. i edited the multisell from a ready multisell of aCis and it's this one. <?xml version="1.0" encoding="UTF-8"?> <!-- Noblesse Gate Pass ==>items --> <list> <!--Blessed Scroll: Enchant Weapon (Grade S ) --> <item id="1"> <ingredient id="6651" count="300000"/> <production id="6577" count="1"/> </item> <!--Blessed Scroll: Enchant Weapon (Grade A ) --> <item id="2"> <ingredient id="6651" count="150000"/> <production id="6569" count="1"/> </item> <!--Blessed Scroll: Enchant Weapon (Grade B ) --> <item id="3"> <ingredient id="6651" count="70000"/> <production id="6571" count="1"/> </item> <!--Blessed Scroll: Enchant Weapon (Grade C ) --> <item id="4"> <ingredient id="6651" count="30000"/> <production id="6573" count="1"/> </item> <!--Blessed Scroll: Enchant Weapon (Grade D ) --> <item id="5"> <ingredient id="6651" count="9000"/> <production id="6575" count="1"/> </item> <!--Blessed Scroll: Enchant Armor (Grade S ) --> <item id="6"> <ingredient id="6651" count="45000"/> <production id="6578" count="1"/> </item> <!--Blessed Scroll: Enchant Armor (Grade A ) --> <item id="7"> <ingredient id="6651" count="18000"/> <production id="6570" count="1"/> </item> <!--Blessed Scroll: Enchant Armor (Grade B ) --> <item id="8"> <ingredient id="6651" count="7500"/> <production id="6572" count="1"/> </item> <!--Blessed Scroll: Enchant Armor (Grade C ) --> <item id="9"> <ingredient id="6651" count="3500"/> <production id="6574" count="1"/> </item> <!--Blessed Scroll: Enchant Armor (Grade D ) --> <item id="10"> <ingredient id="6651" count="1000"/> <production id="6576" count="1"/> </item> <!--Scroll: Enchant Weapon (Grade S ) --> <item id="11"> <ingredient id="6651" count="50000"/> <production id="959" count="1"/> </item> <!--Scroll: Enchant Weapon (Grade A ) --> <item id="12"> <ingredient id="6651" count="18000"/> <production id="729" count="1"/> </item> <!--Scroll: Enchant Weapon (Grade B ) --> <item id="13"> <ingredient id="6651" count="5000"/> <production id="947" count="1"/> </item> <!--Scroll: Enchant Weapon (Grade C ) --> <item id="14"> <ingredient id="6651" count="1100"/> <production id="951" count="1"/> </item> <!--Scroll: Enchant Weapon (Grade D ) --> <item id="15"> <ingredient id="6651" count="500"/> <production id="955" count="1"/> </item> <!--Scroll: Enchant Armor (Grade S ) --> <item id="16"> <ingredient id="6651" count="5000"/> <production id="960" count="1"/> </item> <!--Scroll: Enchant Armor (Grade A ) --> <item id="17"> <ingredient id="6651" count="2400"/> <production id="730" count="1"/> </item> <!--Scroll: Enchant Armor (Grade B ) --> <item id="18"> <ingredient id="6651" count="800"/> <production id="948" count="1"/> </item> <!--Scroll: Enchant Armor (Grade C ) --> <item id="19"> <ingredient id="6651" count="150"/> <production id="952" count="1"/> </item> <!--Scroll: Enchant Armor (Grade D ) --> <item id="20"> <ingredient id="6651" count="60"/> <production id="956" count="1"/> </item> <!-- Secred Book of Giants --> <item id="21"> <ingredient id="6651" count="5000"/> <production id="6622" count="1"/> </item> <!-- Ancient Book - Divine Inspiration (Original Version) --> <item id="22"> <ingredient id="6651" count="450000"/> <production id="8621" count="1"/> </item> </list> I didn't used any random multisell from a random pack. So the problem is that it's <item id="1"> and not <item> ??
  7. here is the multisell <?xml version="1.0" encoding="UTF-8"?> <!-- Test Multisell --> <list maintainEnchantment="true"> <!-- Dark Crystal for Major --> <item id="1"> <ingredient id="2407" count="1"/> <production id="6383" count="1"/> </item> </list> still it won't let me trade the item if it's enchanted, so if it won't get the enchanted items it won't give the items i've set enchanted as well
  8. Hey guys, i need help on something. I want to make a shop where you can exchange your current armor to a better one for example you can get Draconic Leather Armor by giving your Dark Crystal Leather Armor. What i want is this: 1. Multisell can get enchanted items 2. Multisell will make a check dunno how it works but i guess something like ingredient item getenchantlevel (check the item enchant level) and give the production item with the enchant level that the ingredient got. I want to make it trade your current armor to a better one but also keep the enchantment level so you can trade for example your Dark Crystal Leather Armor +3 for Draconic Leather Armor +3. Now if you have for example a Dark Crystal Robe +7 and you want to trade it for a Major +7 If item is enchanted the multisell won't take it Anyone can help me on this? I'm using aCis 350 rev. Thanks in advance!
  9. Here you're :) http://i.imgur.com/SAv6BZP.png
  10. Sure, i'll give a shot later today and i'll let you know :)
  11. Tried on something with colors http://i.imgur.com/q05QHx4.png
  12. Δεν το επαιξα ποτε pro developer για να μου πουλας μπαρουφες εμενα. Στην σπηλια σου!
  13. Well, i just wanted players to have the opportunity to check the npc stats and drops and i did it so it's just fine for me ;p
  14. use a RequestBypassToServer action on the onShiftClick action to L2Npc and add the command code on the RequestBypassToServer?
  15. the command is in order to see the drop list, i'm newbie on these things yet didn't know any other way of doing it, the onShift action is just to show the npc info, stats, etc, the command part is in order to see the drops and it's inside the html file
  16. VoicedCommand handler is shared here mate: http://www.maxcheaters.com/topic/196617-voiced-command-handler-online-acis/
  17. Hello guys, nothing special but it's not shared here this code for IL and a lot of people don't know how to do it since i added it on my project yesterday i decided to share it here with you. Here is preview images: Go to net.sf.l2j.gameserver.model.actor.L2Npc.java find: @Override public void onActionShift(L2PcInstance player) { // Check if the L2PcInstance is a GM if (player.isGM()) { final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile("data/html/admin/npcinfo.htm"); html.replace("%class%", getClass().getSimpleName()); html.replace("%id%", getTemplate().getNpcId()); html.replace("%lvl%", getTemplate().getLevel()); html.replace("%name%", getTemplate().getName()); html.replace("%race%", getTemplate().getRace().toString()); html.replace("%tmplid%", getTemplate().getIdTemplate()); html.replace("%aggro%", (this instanceof L2Attackable) ? ((L2Attackable) this).getAggroRange() : 0); html.replace("%corpse%", getTemplate().getCorpseTime()); html.replace("%enchant%", getTemplate().getEnchantEffect()); html.replace("%hp%", (int) getCurrentHp()); html.replace("%hpmax%", getMaxHp()); html.replace("%mp%", (int) getCurrentMp()); html.replace("%mpmax%", getMaxMp()); html.replace("%patk%", getPAtk(null)); html.replace("%matk%", getMAtk(null, null)); html.replace("%pdef%", getPDef(null)); html.replace("%mdef%", getMDef(null, null)); html.replace("%accu%", getAccuracy()); html.replace("%evas%", getEvasionRate(null)); html.replace("%crit%", getCriticalHit(null, null)); html.replace("%rspd%", getRunSpeed()); html.replace("%aspd%", getPAtkSpd()); html.replace("%cspd%", getMAtkSpd()); html.replace("%str%", getSTR()); html.replace("%dex%", getDEX()); html.replace("%con%", getCON()); html.replace("%int%", getINT()); html.replace("%wit%", getWIT()); html.replace("%men%", getMEN()); html.replace("%loc%", getX() + " " + getY() + " " + getZ()); html.replace("%dist%", (int) Math.sqrt(player.getDistanceSq(this))); html.replace("%ele_fire%", getDefenseElementValue((byte) 2)); html.replace("%ele_water%", getDefenseElementValue((byte) 3)); html.replace("%ele_wind%", getDefenseElementValue((byte) 1)); html.replace("%ele_earth%", getDefenseElementValue((byte) 4)); html.replace("%ele_holy%", getDefenseElementValue((byte) 5)); html.replace("%ele_dark%", getDefenseElementValue((byte) 6)); if (getSpawn() != null) { html.replace("%spawn%", getSpawn().getLocx() + " " + getSpawn().getLocy() + " " + getSpawn().getLocz()); html.replace("%loc2d%", (int) Math.sqrt(getPlanDistanceSq(getSpawn().getLocx(), getSpawn().getLocy()))); html.replace("%loc3d%", (int) Math.sqrt(getDistanceSq(getSpawn().getLocx(), getSpawn().getLocy(), getSpawn().getLocz()))); html.replace("%resp%", getSpawn().getRespawnDelay() / 1000); html.replace("%rand_resp%", getSpawn().getRandomRespawnDelay()); } else { html.replace("%spawn%", "<font color=FF0000>null</font>"); html.replace("%loc2d%", "<font color=FF0000>--</font>"); html.replace("%loc3d%", "<font color=FF0000>--</font>"); html.replace("%resp%", "<font color=FF0000>--</font>"); html.replace("%rand_resp%", "<font color=FF0000>--</font>"); } if (hasAI()) { html.replace("%ai_intention%", "<font color=\"LEVEL\">Intention</font><table width=\"100%\"><tr><td><font color=\"LEVEL\">Intention:</font></td><td>" + getAI().getIntention().name() + "</td></tr>"); html.replace("%ai%", "<tr><td><font color=\"LEVEL\">AI:</font></td><td>" + getAI().getClass().getSimpleName() + "</td></tr></table><br>"); } else { html.replace("%ai_intention%", ""); html.replace("%ai%", ""); } html.replace("%ai_type%", getAiType().name()); html.replace("%ai_clan%", (getClans() != null) ? "<tr><td width=100><font color=\"LEVEL\">Clan:</font></td><td align=right width=170>" + Arrays.toString(getClans()) + " " + getClanRange() + "</td></tr>" + ((getIgnoredIds() != null) ? "<tr><td width=100><font color=\"LEVEL\">Ignored ids:</font></td><td align=right width=170>" + Arrays.toString(getIgnoredIds()) + "</td></tr>" : "") : ""); html.replace("%ai_move%", String.valueOf(canMove())); html.replace("%ai_seed%", String.valueOf(isSeedable())); html.replace("%ai_ssinfo%", _currentSsCount + "[" + getSsCount() + "] - " + getSsRate() + "%"); html.replace("%ai_spsinfo%", _currentSpsCount + "[" + getSpsCount() + "] - " + getSpsRate() + "%"); html.replace("%butt%", ((this instanceof L2MerchantInstance) ? "<button value=\"Shop\" action=\"bypass -h admin_show_shop " + getNpcId() + "\" width=65 height=19 back=\"L2UI_ch3.smallbutton2_over\" fore=\"L2UI_ch3.smallbutton2\">" : "")); player.sendPacket(html); player.sendPacket(ActionFailed.STATIC_PACKET); } Below add: else if (Config.ENABLE_SHIFT_CLICK_TO_NPCS) { final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile("data/html/mods/npcinfo.htm"); html.replace("%class%", getClass().getSimpleName()); html.replace("%id%", getTemplate().getNpcId()); html.replace("%lvl%", getTemplate().getLevel()); html.replace("%name%", getTemplate().getName()); html.replace("%race%", getTemplate().getRace().toString()); html.replace("%tmplid%", getTemplate().getIdTemplate()); html.replace("%aggro%", getTemplate().getAggroRange()); html.replace("%corpse%", StringUtil.getTimeStamp(getTemplate().getCorpseTime())); html.replace("%enchant%", getTemplate().getEnchantEffect()); html.replace("%hp%", (int) getCurrentHp()); html.replace("%hpmax%", getMaxHp()); html.replace("%mp%", (int) getCurrentMp()); html.replace("%mpmax%", getMaxMp()); html.replace("%patk%", getPAtk(null)); html.replace("%matk%", getMAtk(null, null)); html.replace("%pdef%", getPDef(null)); html.replace("%mdef%", getMDef(null, null)); html.replace("%accu%", getAccuracy()); html.replace("%evas%", getEvasionRate(null)); html.replace("%crit%", getCriticalHit(null, null)); html.replace("%rspd%", getWalkSpeed()); html.replace("%aspd%", getPAtkSpd()); html.replace("%cspd%", getMAtkSpd()); player.sendPacket(html); } Now the Configs public static boolean ENABLE_SHIFT_CLICK_TO_NPCS; ENABLE_SHIFT_CLICK_TO_NPCS = npcs.getProperty("EnableShiftClickToNpcs", false); # ============================================= # Shift + Click to NPC(s) # ============================================= # Enable showing NPC(s) info by Shift + Click # on NPC(s)? # Default: False EnableShiftClickToNpcs = True The voicedcommand Create new class called ShiftClickToNpc inside paste /* * 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 net.sf.l2j.gameserver.handler.voicedcommandhandlers; import java.util.StringTokenizer; import net.sf.l2j.commons.lang.StringUtil; import net.sf.l2j.gameserver.datatables.ItemTable; import net.sf.l2j.gameserver.datatables.NpcTable; import net.sf.l2j.gameserver.handler.IVoicedCommandHandler; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.actor.template.NpcTemplate; import net.sf.l2j.gameserver.model.item.DropCategory; import net.sf.l2j.gameserver.model.item.DropData; import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; /** * @author Designatix * */ public class ShiftClickToNpc implements IVoicedCommandHandler { private static final int PAGE_LIMIT = 20; private static String[] _voicedCommands = { "show_droplist" }; @Override public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) { final StringTokenizer st = new StringTokenizer(command, " "); st.nextToken(); if (command.startsWith("show_droplist")) { try { int npcId = Integer.parseInt(st.nextToken()); int page = (st.hasMoreTokens()) ? Integer.parseInt(st.nextToken()) : 1; showNpcDropList(activeChar, npcId, page); } catch (Exception e) { activeChar.sendMessage("Usage: .show_droplist <npc_id> [<page>]"); } } return true; } private static void showNpcDropList(L2PcInstance activeChar, int npcId, int page) { final NpcTemplate npcData = NpcTable.getInstance().getTemplate(npcId); if (npcData == null) { activeChar.sendMessage("Npc template is unknown for id: " + npcId + "."); return; } final StringBuilder sb = new StringBuilder(2000); StringUtil.append(sb, "<html><title>Show droplist page ", page, "</title><body><center><font color=\"LEVEL\">", npcData.getName(), " (", npcId, ")</font></center><br>"); if (!npcData.getDropData().isEmpty()) { sb.append("Drop type legend: <font color=\"3BB9FF\">Drop</font> | <font color=\"00ff00\">Sweep</font><br><table><tr><td width=25>cat.</td><td width=45>item</td><td width=45>drop count</td></tr>"); int myPage = 1; int i = 0; int shown = 0; boolean hasMore = false; for (DropCategory cat : npcData.getDropData()) { if (shown == PAGE_LIMIT) { hasMore = true; break; } for (DropData drop : cat.getAllDrops()) { if (myPage != page) { i++; if (i == PAGE_LIMIT) { myPage++; i = 0; } continue; } if (shown == PAGE_LIMIT) { hasMore = true; break; } StringUtil.append(sb, "<tr><td><font color=\"", ((cat.isSweep()) ? "00FF00" : "3BB9FF"), "\">", cat.getCategoryType(), "</td><td>", ItemTable.getInstance().getTemplate(drop.getItemId()).getName(), " (", drop.getMinDrop(), ", ", drop.getMaxDrop(), ")</td></tr>"); shown++; } } sb.append("</table><table width=\"100%\" bgcolor=666666><tr>"); if (page > 1) { StringUtil.append(sb, "<td width=120><a action=\"bypass -h voiced_show_droplist ", npcId, " ", page - 1, "\">Prev Page</a></td>"); if (!hasMore) StringUtil.append(sb, "<td width=100>Page ", page, "</td><td width=70></td></tr>"); } if (hasMore) { if (page <= 1) sb.append("<td width=120></td>"); StringUtil.append(sb, "<td width=100>Page ", page, "</td><td width=70><a action=\"bypass -h voiced_show_droplist ", npcId, " ", page + 1, "\">Next Page</a></td></tr>"); } sb.append("</table>"); } else sb.append("This NPC has no drops."); sb.append("</body></html>"); final NpcHtmlMessage html = new NpcHtmlMessage(0); html.setHtml(sb.toString()); activeChar.sendPacket(html); } @Override public String[] getVoicedCommandList() { return _voicedCommands; } } Import the voicedcommand on net.sf.l2j.gameserver.handler.VoicedCommandHandler.java import net.sf.l2j.gameserver.handler.voicedcommandhandlers.ShiftClickToNpc; if (Config.ENABLE_SHIFT_CLICK_TO_NPCS) { registerHandler(new ShiftClickToNpc()); } And now go to your dp > data/html/mods and create new file called npcinfo.htm and inside paste <html><title>NPC Info</title><body> <center> <table width="100%"> <tr> <td align=center> <button value="Show Droplist" action="bypass -h voiced_show_droplist %id%" width=134 height=21 back="L2UI_ch3.BigButton3_over" fore="L2UI_ch3.BigButton3"> </td> </tr> </table> <br><img src="L2UI.SquareWhite" width=260 height=1><br> <font color="LEVEL">General Informations</font> <table width="100%"> <tr><td><font color="LEVEL">Name:</font></td><td>%name%</td></tr> <tr><td><font color="LEVEL">Level:</font></td><td>%lvl%</td></tr> <tr><td><font color="LEVEL">Type:</font></td><td>%class%</td></tr> <tr><td><font color="LEVEL">Race:</font></td><td>%race%</td></tr> </table><br> <font color="LEVEL">Aggro Informations</font> <table width="100%"> <tr><td width=100><font color="LEVEL">Aggro:</font></td><td align=right width=170>%aggro%</td></tr> </table><br> <font color="LEVEL">Combat Informations</font> <table width="100%"> <tr><td><font color="LEVEL">HP:</font></td><td><font color=FF4040>%hp%/%hpmax%</font></td><td><font color="LEVEL">MP:</font></td><td><font color=6161FF>%mp%/%mpmax%</font></td></tr> <tr><td>P.Atk.</td><td>%patk%</td><td>M.Atk.</td><td>%matk%</td></tr> <tr><td>P.Def.</td><td>%pdef%</td><td>M.Def.</td><td>%mdef%</td></tr> <tr><td>Accuracy</td><td>%accu%</td><td>Evasion</td><td>%evas%</td></tr> <tr><td>Critical</td><td>%crit%</td><td>Speed</td><td>%rspd%</td></tr> <tr><td>Atk.Spd</td><td>%aspd%</td><td>Cast.Spd</td><td>%cspd%</td></tr> </table><br> <br><img src="L2UI.SquareWhite" width=260 height=1><br> </center> </body></html> Have Fun!
  18. go to your database on the following tables -> accounts, augmentations, character_friends, character_hennas, character_macroses, character_offline_trade, character_offline_trade_items, character_quests, character_raid_points, character_recommends, character_shortcuts, characture_skills, character_skills_save, character_subclasses, characters, characters_custom_data, clan_data, clan_notices, clan_skills, clan_subpledges, clan_wars, heroes, items, itemsonground, olympiad_nobles, olympiad_nobles_eom, pkkills and go right click -> Empty Table
  19. IALFANN (I Am Looking For A New Name) :troll: :troll: :troll:
  20. and if i'm not wrong it's ur design ;p btw you're allowed to sell others work as your here? lel
×
×
  • Create New...