-
Posts
18 -
Credits
0 -
Joined
-
Last visited
-
Feedback
0%
About luzzifer

Contact Methods
-
Website URL
http://www.brisoft.com.ar
-
Skype
cesarbhc
Profile Information
-
Current Mood
Angry
-
Gender
Male
-
Country
Argentina
-
Location
CABA
-
Interests
Conquistar el mundo.
-
LocationNew
L2jacis rev 401
Recent Profile Visitors
luzzifer's Achievements
-
luzzifer started following Amulet Stackable l2jacis and 2 gameserver 1 login on same server
-
Help 2 gameserver 1 login on same server
luzzifer posted a question in Request Server Development Help [Greek]
Hi guys, I have the following problem, I want to set up two servers on the same dedicated server and I can't. L2jacis 409 Linux Server. The first gameserver has the following configuration: # ================================================================ # Gameserver setting # ================================================================ # This is transmitted to the clients, so it has to be an IP or resolvable hostname. If this ip is resolvable by Login just leave * Hostname = 190.25.103.103 # Bind ip of the gameserver, use * to bind on all available IPs. GameserverHostname = * GameserverPort = 7777 # The Loginserver host and port. LoginHost = 127.0.0.1 LoginPort = 9014 # This is the server id that the gameserver will request. RequestServerID = 1 # If set to true, the login will give an other id to the server (if the requested id is already reserved). AcceptAlternateID = True UseBlowfishCipher = True # ================================================================ # Database informations # ================================================================ URL = jdbc:mariadb://localhost/server1 Login = server1 Password = server1 I configured the second gameserver like this: # ================================================================ # Gameserver setting # ================================================================ # This is transmitted to the clients, so it has to be an IP or resolvable hostname. If this ip is resolvable by Login just leave * Hostname = 0.0.0.0 # Bind ip of the gameserver, use * to bind on all available IPs. GameserverHostname = * GameserverPort = 7788 # The Loginserver host and port. LoginHost = 127.0.0.1 LoginPort = 9014 # This is the server id that the gameserver will request. RequestServerID = 2 # If set to true, the login will give an other id to the server (if the requested id is already reserved). AcceptAlternateID = True UseBlowfishCipher = True # ================================================================ # Database informations # ================================================================ URL = jdbc:mariadb://localhost/server2 Login = server2 Password = server2 apart from having tested 0.0.0.0 on the second gameserver I also tried 127.0.0.1 In both cases I see the two servers in the login when I log in, but I try to enter the one with the lowest ping and it kicks me out. The other server always appears with ping 9999 and I try to enter but it doesn't do anything and it freezes the login so I have to log in again. The hexids are in their respective folders. For server 1, it has its hexid inside the gameserver config folder, and I checked that the hexid id is the same id, for example id 1 in the gameserver is also id1 for server 1, and hexid 2 has its hexid 2 for server 2. The server ports are open and listening when I turn on both gameservers. I really don't know what could be wrong. If you could give me some help I would appreciate it. Excuse my English. -
luzzifer changed their profile photo
-
Hi everyone, I need to make the amulets stackable, as well as the spellbooks, but I need to control their consumption. I have modified the item.xml like this for example: <item id="8885" type="EtcItem" name="Amulet: Magnus' Chant"> <set name="material" val="PAPER" /> <set name="weight" val="120" /> <set name="price" val="120" /> <set name="is_stackable" val="true" /> </item> But I can see that within the spellbooks.xml it handles, I believe its consumption since I see the following for the same amulet: <book skillId="1413" itemId="8885"/><!-- Amulet: Magnus' Chant --> My question is the following, how do I make sure that when these are stacked, they are not all consumed in a single use.
-
Code Kill The Boss Event L2jaCis Interlude
luzzifer replied to ZaunProject's topic in Server Shares & Files [L2J]
Thanks! -
Discussion aCis auto-attack stop after 1-2 hit
luzzifer replied to Kara's topic in Server Development Discussion [L2J]
I have a Polish friend who gave me a solution for this issue, all credit goes to @SSnakEE. The ingenuity is as follows. Total thanks to him. Playable.java insert to public boolean canKeepAttacking(Creature target) { //if target is flagged keep attacking if (targetPlayer.getPvpFlag() > 0) return true; -
[SHARE]Fortress Siege Fix + Fort Siege Event
luzzifer replied to *ZwntanoiNekroi*'s topic in Server Shares & Files [L2J]
Could someone please share this again? The link is out of date -
Help Olympiad Period (L2J Acis)
luzzifer replied to SycoraX's question in Request Server Development Help [L2J]
Thanks! -
Festival Sweep on IT?!
luzzifer replied to Bleadd's question in Request Server Development Help [L2J]
Can you re-upload it please? I'm trying to implement it in acis 401 -
luzzifer started following aCis 401 add new users command /xpoff /xpon .xpoff .xpon
-
Hello, I am adapting it to acis 401, and when I run it in the game it tells me: No rights defined for admin command 'admin_search'. Admin tried to use admin command 'admin_search', but has no access to use it. Also try to adapt it in AdminAdmin.java with else in the last lines using it as admin_buscar (buscar = search in spanish) and I get the same error: No rights defined for admin command 'admin_buscar'. Admin tried to use admin command 'admin_search', but has no access to use it. I have the AdminSearch.java like this: package net.sf.l2j.gameserver.handler.admincommandhandlers; import java.util.Arrays; import java.util.List; import java.util.StringTokenizer; import net.sf.l2j.commons.lang.StringUtil; import net.sf.l2j.commons.math.MathUtil; import net.sf.l2j.gameserver.data.xml.ItemData; import net.sf.l2j.gameserver.handler.IAdminCommandHandler; import net.sf.l2j.gameserver.model.WorldObject; import net.sf.l2j.gameserver.model.actor.Player; import net.sf.l2j.gameserver.model.item.kind.Item; import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; public class AdminSearch implements IAdminCommandHandler { private static final String[] ADMIN_COMMANDS = { "admin_search" }; private static final int PAGE_LIMIT = 15; @Override public void useAdminCommand(String command, Player activeChar) { if (command.startsWith("admin_search")) { StringTokenizer st = new StringTokenizer(command, " "); st.nextToken(); if (!st.hasMoreTokens()) { final NpcHtmlMessage html = new NpcHtmlMessage(0); html.setFile("data/html/admin/search.htm"); html.replace("%items%", ""); html.replace("%pages%", ""); activeChar.sendPacket(html); } else { final String item = st.nextToken(); int page = 1; if (st.hasMoreTokens()) { try { page = Integer.parseInt(st.nextToken()); } catch (NumberFormatException e) { page = 1; } } results(activeChar, item, page); } } return; } private static void results(Player activeChar, String item, int page) { final NpcHtmlMessage html = new NpcHtmlMessage(0); html.setFile("data/html/admin/search.htm"); //List<Item> items = new ArrayList<>();//no sirvio List<Object> items = Arrays.asList(ItemData.getInstance().getAllItems()); for (Object itemName : items) if (itemName != null) if (((WorldObject) itemName).getName().toLowerCase().contains(item.toLowerCase())) items.add(itemName); if (items.isEmpty()) { html.replace("%items%", "<tr><td>No items found with word " + item + ".</td></tr>"); html.replace("%pages%", ""); activeChar.sendPacket(html); return; } final int max = Math.min(100, MathUtil.countPagesNumber(items.size(), PAGE_LIMIT)); items = items.subList((page - 1) * PAGE_LIMIT, Math.min(page * PAGE_LIMIT, items.size())); final StringBuilder sb = new StringBuilder(); for (Object itemName : items) { String actualName = getFontedWord(item, ((WorldObject) itemName).getName()); StringUtil.append(sb, "<tr><td>", actualName, " (", ((Item) itemName).getItemId(), ")", "</td></tr>"); } html.replace("%items%", sb.toString()); sb.setLength(0); for (int i = 0; i < max; i++) { final int pagenr = i + 1; if (page == pagenr) StringUtil.append(sb, pagenr, " "); else StringUtil.append(sb, "<a action=\"bypass -h admin_search ", item, " ", pagenr, "\">", pagenr, "</a> "); } html.replace("%pages%", sb.toString()); activeChar.sendPacket(html); } private static String getFontedWord(String word, String tt) { int position = tt.toLowerCase().indexOf(word.toLowerCase()); StringBuilder str = new StringBuilder(tt); String font = "<FONT COLOR=\"LEVEL\">"; str.insert(position, font); str.insert(position + (font.length() + word.length()), "</FONT>"); return str.toString(); } @Override public String[] getAdminCommandList() { return ADMIN_COMMANDS; } } Can someone give me a hand and tell me what I'm doing wrong?
-
I am adapting a php code that allows new players to create accounts, the issue is that it generates the keys in a way that when they try to enter the server, it does not allow them to enter due to a password error. function encPass($pass){ return base64_encode(pack("H*",sha1(utf8_encode($pass)))); } function HashAleatorio($tamanho = 70){ $chars = "abcdefghijkmnopqrstuvwxyz023456789"; srand((double)microtime() * 1000000); $i = 1; $pass = ''; while($i <= $tamanho){ $num = rand() % 33; $tmp = substr($chars,$num,1); $pass = $pass.$tmp; $i++; } return $pass; } And from what I see Acis rev401 uses Bcrypt to encrypt the keys generated by the game's self-account. Since I don't understand anything about keys, I would like to know if someone can help me adapt the PHP code so that it generates keys that can be used to log into the game. Or I wonder if there is any other alternative method that I am not aware of. Bcrypt example code: * String strong_salt = BCrypt.gensalt(10)<br /> * String stronger_salt = BCrypt.gensalt(12)<br /> * </code> * <p> * The amount of work increases exponentially (2**log_rounds), so each increment is twice as much work. The default log_rounds is 10, and the valid range is 4 to 30. * @author Damien Miller * @version 0.2 */ public class BCrypt { // BCrypt parameters private static final int GENSALT_DEFAULT_LOG2_ROUNDS = 10; private static final int BCRYPT_SALT_LEN = 16; // Blowfish parameters private static final int BLOWFISH_NUM_ROUNDS = 16; // Initial contents of key schedule private static final int[] P_ORIG = { 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,
-
Help Catacomb of the herectic are bug acis 401
luzzifer posted a question in Request Server Development Help [Greek]
Hello everyone, I'm having a problem with this catacombs, on the surface I can move ok, but when I go inside the catacombs, I can't move, the file has zone 21_22 activated but I can't unlock it in the game, someone Do you have any idea what it could be? -
Hi, I'm trying to add a new command to use /xpoff or /xpon and I'm stuck. As I see the Unstuck has a command identifier which is 52. Example unstuck: public class Escape implements IUserCommandHandler { private static final int[] COMMAND_IDS = { 52 }; And the NoExp.java that I am creating is like this: package net.sf.l2j.gameserver.handler.usercommandhandlers; import net.sf.l2j.gameserver.handler.IUserCommandHandler; import net.sf.l2j.gameserver.model.actor.Player; public class NoExp implements IUserCommandHandler { private static final int COMMAND_ID_XPOFF = 51; private static final int COMMAND_ID_XPON = 52; private static final int[] _userCommands = {COMMAND_ID_XPOFF, COMMAND_ID_XPON}; @Override public void useUserCommand(int id, Player player) { switch (id) { case COMMAND_ID_XPOFF: player.setCantGainXP(true); player.sendMessage("¡Has desactivado la ganancia de XP!"); break; case COMMAND_ID_XPON: player.setCantGainXP(false); player.sendMessage("¡Has activado la ganancia de XP!"); break; default: // Comando no reconocido break; } } @Override public int[] getUserCommandList() { return _userCommands; } } I need to know how to obtain or generate the IDs for the two commands I need. Since I can't find any XML about it, could you guide me how to do it? Thank you very much in advance. postscript, I have not yet been able to test that the command works and therefore I do not know if the implementation I am doing will work since it was from another non-acis project. I'm sorry for my English if it is not expressed well.
-
Have a problem implementing it in acis 401. When I restart the account, the buffs are lost. I don't see how to download the sql. Is that why? can someone guide me. From already thank you very much. @Caparso
-
Request Code To Adapt To 340. Acis Pvp/enchant
luzzifer replied to luzzifer's question in Request Server Development Help [L2J]
I found this code for frozen, someone help me adapt to acis 340 ?, have no idea that changes to the code to work properly in ACIS. ### Eclipse Workspace Patch 1.0 #P trunk2 Index: gameserver/head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- gameserver/head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance.java (revision 1004) +++ gameserver/head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -678,7 +678,8 @@ private int heroConsecutiveKillCount = 0; private boolean isPVPHero = false; - + /** Pvp enchant System **/ + private int rewardConsecutiveKillCount = 0; /** character away mode **/ private boolean _awaying = false; private boolean _isAway = false; @@ -6822,6 +6823,10 @@ // Increase the kill count for a special hero aura heroConsecutiveKillCount++; + + // Increase item +1 enchant as a reward + rewardConsecutiveKillCount++; + // If heroConsecutiveKillCount == 30 give hero aura if(heroConsecutiveKillCount == Config.KILLS_TO_GET_WAR_LEGEND_AURA && Config.WAR_LEGEND_AURA) { @@ -6830,6 +6835,85 @@ } + //====================== Enchant PvP ============================= + //=========== Adaptacion y Modificacion CaiFacu ================== +if (rewardConsecutiveKillCount >= Config.PVP_COUNT_TILL_ENCHANTMENT && Config.ENABLE_PVP_ENCHANTMENT) + { + + switch (Rnd.get(9)) + { + case 0: + { + /** Weapon **/ + final L2ItemInstance pvpwep = getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND); + + if (pvpwep.getEnchantLevel() < Config.ENCHANT_WEAPON_MAX) + { + pvpwep.setEnchantLevel(pvpwep.getEnchantLevel() + 1); + sendMessage("Your " + getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND) + "has been enchanted by +1 due to your pvp kills"); + rewardConsecutiveKillCount = 0; + break; + } + } + case 1: + { + /** Armor **/ + final L2ItemInstance pvphead = getInventory().getPaperdollItem(Inventory.PAPERDOLL_HEAD); + if (pvphead.getEnchantLevel() < Config.ENCHANT_ARMOR_MAX) + { + pvphead.setEnchantLevel(pvphead.getEnchantLevel() + 1); + sendMessage("Your " + getInventory().getPaperdollItem(Inventory.PAPERDOLL_HEAD) + "has been enchanted by +1 due to your pvp kills"); + rewardConsecutiveKillCount = 0; + break; + }} + case 2: + { + /** Armor **/ + final L2ItemInstance pvpgloves = getInventory().getPaperdollItem(Inventory.PAPERDOLL_GLOVES); + if (pvpgloves.getEnchantLevel() < Config.ENCHANT_ARMOR_MAX) + { + pvpgloves.setEnchantLevel(pvpgloves.getEnchantLevel() + 1); + sendMessage("Your " + getInventory().getPaperdollItem(Inventory.PAPERDOLL_GLOVES) + "has been enchanted by +1 due to your pvp kills"); + rewardConsecutiveKillCount = 0; + break; + }} + case 3: + { + /** Armor **/ + final L2ItemInstance pvpchest = getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST); + if (pvpchest.getEnchantLevel() < Config.ENCHANT_ARMOR_MAX) + { + pvpchest.setEnchantLevel(pvpchest.getEnchantLevel() + 1); + sendMessage("Your " + getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST) + "has been enchanted by +1 due to your pvp kills"); + rewardConsecutiveKillCount = 0; + break; + }} + case 4: + { + /** Armor **/ + final L2ItemInstance pvplegs = getInventory().getPaperdollItem(Inventory.PAPERDOLL_LEGS); + if (pvplegs.getEnchantLevel() < Config.ENCHANT_ARMOR_MAX) + { + pvplegs.setEnchantLevel(pvplegs.getEnchantLevel() + 1); + sendMessage("Your " + getInventory().getPaperdollItem(Inventory.PAPERDOLL_LEGS) + "has been enchanted by +1 due to your pvp kills"); + rewardConsecutiveKillCount = 0; + break; + }} + case 5: + { + /** Armor **/ + final L2ItemInstance pvpfeet = getInventory().getPaperdollItem(Inventory.PAPERDOLL_FEET); + if (pvpfeet.getEnchantLevel() < Config.ENCHANT_ARMOR_MAX) + { + pvpfeet.setEnchantLevel(pvpfeet.getEnchantLevel() + 1); + sendMessage("Your " + getInventory().getPaperdollItem(Inventory.PAPERDOLL_FEET) + "has been enchanted by +1 due to your pvp kills"); + rewardConsecutiveKillCount = 0; + break; + }} + case 6: + { + /** Jewel **/ + final L2ItemInstance pvpneck = getInventory().getPaperdollItem(Inventory.PAPERDOLL_NECK); + if (pvpneck.getEnchantLevel() < Config.ENCHANT_JEWELRY_MAX) + { + pvpneck.setEnchantLevel(pvpneck.getEnchantLevel() + 1); + sendMessage("Your " + getInventory().getPaperdollItem(Inventory.PAPERDOLL_NECK) + "has been enchanted by +1 due to your pvp kills"); + rewardConsecutiveKillCount = 0; + break; + }} + case 7: + { + /** Jewel **/ + final L2ItemInstance pvplf = getInventory().getPaperdollItem(Inventory.PAPERDOLL_LFINGER); + if (pvplf.getEnchantLevel() < Config.ENCHANT_JEWELRY_MAX) + { + pvplf.setEnchantLevel(pvplf.getEnchantLevel() + 1); + sendMessage("Your " + getInventory().getPaperdollItem(Inventory.PAPERDOLL_LFINGER) + "has been enchanted by +1 due to your pvp kills"); + rewardConsecutiveKillCount = 0; + break; + }} + case 8: + { + /** Jewel **/ + final L2ItemInstance pvprf = getInventory().getPaperdollItem(Inventory.PAPERDOLL_RFINGER); + if (pvprf.getEnchantLevel() < Config.ENCHANT_JEWELRY_MAX) + { + pvprf.setEnchantLevel(pvprf.getEnchantLevel() + 1); + sendMessage("Your " + getInventory().getPaperdollItem(Inventory.PAPERDOLL_RFINGER) + "has been enchanted by +1 due to your pvp kills"); + rewardConsecutiveKillCount = 0; + break; + }} + } + } } + //====================== Enchant PvP ============================= + //=========== Adaptacion y Modificacion CaiFacu ================== if(Config.PVPEXPSP_SYSTEM) { Index: gameserver/head-src/com/l2jfrozen/Config.java =================================================================== --- gameserver/head-src/com/l2jfrozen/Config.java (revision 1004) +++ gameserver/head-src/com/l2jfrozen/Config.java (working copy) @@ -2091,6 +2091,8 @@ public static String PM_TEXT1; public static String PM_TEXT2; public static boolean NEW_PLAYER_EFFECT; + public static boolean ENABLE_PVP_ENCHANTMENT; + public static int PVP_COUNT_TILL_ENCHANTMENT; //============================================================ @@ -2113,7 +2115,9 @@ PM_TEXT1 = frozenSettings.getProperty("PMText1", "Have Fun and Nice Stay on"); PM_TEXT2 = frozenSettings.getProperty("PMText2", "Vote for us every 24h"); NEW_PLAYER_EFFECT = Boolean.parseBoolean(frozenSettings.getProperty("NewPlayerEffect", "True")); - + ENABLE_PVP_ENCHANTMENT = Boolean.parseBoolean(frozenSettings.getProperty("EnablePvpEnchantSystem", "False")); + PVP_COUNT_TILL_ENCHANTMENT = Integer.parseInt(frozenSettings.getProperty("PvpCountTillEnchanment", "20")); + } catch(Exception e) { //============================================================ public static void loadL2JFrozenConfig() @@ -2467,6 +2475,10 @@ FARM2_CUSTOM_MESSAGE = L2JFrozenSettings.getProperty("Farm2CustomMeesage", "You have been teleported to Farm Zone 2!"); PVP1_CUSTOM_MESSAGE = L2JFrozenSettings.getProperty("PvP1CustomMeesage", "You have been teleported to PvP Zone 1!"); PVP2_CUSTOM_MESSAGE = L2JFrozenSettings.getProperty("PvP2CustomMeesage", "You have been teleported to PvP Zone 2!"); + + SKILL_GIVER_SKILL_ID = Integer.parseInt(L2JFrozenSettings.getProperty("SkillGiverSkillId", "1")); + SKILL_GIVER_SKILL_LEVEL = Integer.parseInt(L2JFrozenSettings.getProperty("SkillGiverSkillLevel", "1")); + SKILL_GIVER_ID = Integer.parseInt(L2JFrozenSettings.getProperty("SkillGiverItemId", "3470")); } catch(Exception e) { Index: gameserver/config/frozen/frozen.properties =================================================================== --- gameserver/config/frozen/frozen.properties (revision 1004) +++ gameserver/config/frozen/frozen.properties (working copy) @@ -21,4 +21,17 @@ # New players get fireworks the first time they log in # Default: False -NewPlayerEffect = False \ No newline at end of file +NewPlayerEffect = False + +#=================================# +#=Elfocrash's Pvp Enchant System==# +#=================================# +#By enabling this then every X pvp +#in a row the player will get randomly +#a part of his armor,weapon or jewel that +#is currently equiped automatically enchanted +#To enable the system set True below +EnablePvpEnchantSystem = True +#Every how many kills you want the chars to be +#awared with +1? +PvpCountTillEnchanment = 20 \ No poner lineas nuevas al final del codigo -
Request Code To Adapt To 340. Acis Pvp/enchant
luzzifer posted a question in Request Server Development Help [L2J]
Hello, someone would have some code in order to adapt to 340. ACIS server? I'm interested that after killing 100 players become the weapon +1. After 1000 after killing players become the weapon +2 That is by way of example, excuse my English. As it was in the Good vs Evil server.