-
Posts
-
You invent yourself a life - bad for you, one of the inner core dev, fernandopm, which worked hard over aCis quests from 2011 to 2016 is argentinian. I teached him back in time to work and make proper quests. My dev team comes from 10+ countries and I'm myself french. "Racist/nationalist" card ? Not working bro. Not sure why I should thank you to send me questions, and regarding bug reports, so far, I got none of yours in either discord, gitlab, or forums. I'm sorry if you feel "ignored", but that's more a psychanalyst you need to speak with if you put emotions towards someones' appreciation over a forum. I never ignore a bug report, and if so (like skills reports), it's because I got a bigger plan (skills refactor, in that case). In any case, I delivered cookies for the bug report/fix, even if it dated of months, with proper credits over changesets. "Victim card" ? Not really working, but ok, maybe you're "emotional". I barely make money out of aCis, for the spent time - simply selling my services, or even coding/administrating a minecraft/L2J server would make far more money. Breaking intentionally things would be stupid. If you don't understand I'm not the only one working on that pack, I can't help you. Also, the scale of edits is sometimes extreme - AI L2OFF ? 1800 files added. How do you want everything works in a single shot ? "Exploiting noobz for money" card ? Still not working, or I'm a terrible businessman. Meanwhile - you shadow advertise your project, L2JOne (since 2017 btw) - you should maybe start by the beginning saying you're a competitor and aCis is actually a spike in your foot. That also explains why you act like that. RusAcis got the exact same strategy, speaking bad of me, saying they got unique fixes (you speak about I break things, they break and recode things 4 times sometimes, btw), but successfully reselling latest revision with poorly executed stuff. "aCis is good, Tryskell is ok, but I solve all issues in extreme low time so I can piss over him" card ? Mmmmhhhh. Our conversation ends here if you want, I don't force ppl to speak with me if they don't want - hopefully, people would understand I'm not the arrogant one and the one who doesn't want to talk, or even collaborate. :). I understand you got your own project and got no will to improve aCis. NOTE : I'm extremely happy for your call of ExShowServerPrimitive with getValidGeoLocation, extremely impressive. Arrogant, no. Sarcastic ? Maybe. Good night everyone.
-
Hi. @GX-Ext, svn does not work. is there anywhere else where we can get source code? Thank you so much.
-
new synchronized movement with neoengine obstacle correction I reported bugs to you and you completely ignored me because of my nationality. Yes, you were arrogant towards me. I sent you many questions on your forum and you didn't even thank me or say anything about it. I stopped using your updates a long time ago and focused on fixing my own aCis because you intentionally break the code. Just buy versions 401 to 409; you intentionally broke a lot of things for "IDIOTS" to buy from you. Anyway, our conversation ends here. Good luck with renaming and organizing; that probably makes you more money than fixing the basics. With this debug I created valid notes for monsters and NPCs, fixing the maxZ that you broke, and also corrected fly/water movements, making them more efficient. I only spent 2 months and I'm using Geoengine l2.j NOTE: I'm not selling my GeoEngine, don't waste your time sending messages!
-
I'm on that same situation, but hey after almost 3600 commits it's almost playable! 😛
-
-
Topics

Question
S-T-I-N-K-Y
Gia sas 8elw an borei kaneis na me help me to parakato
( L2jFrozen - Interlude )
Pos 8a boresw na ftiaksw ston Code otan kapios ginete AIO na tou dinei pano apo 1 item dld 5-6 "Armor/Weapon/tattoo gia AIO"
kai otan ginete AIO na diagrafode ta skill apo to main class tou
package com.l2jfrozen.gameserver.model.actor.instance; import java.util.StringTokenizer; import com.l2jfrozen.Config; import com.l2jfrozen.gameserver.ai.CtrlIntention; import com.l2jfrozen.gameserver.network.SystemMessageId; import com.l2jfrozen.gameserver.network.serverpackets.ActionFailed; import com.l2jfrozen.gameserver.network.serverpackets.EtcStatusUpdate; import com.l2jfrozen.gameserver.network.serverpackets.InventoryUpdate; import com.l2jfrozen.gameserver.network.serverpackets.MyTargetSelected; import com.l2jfrozen.gameserver.network.serverpackets.NpcHtmlMessage; import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage; import com.l2jfrozen.gameserver.network.serverpackets.ValidateLocation; import com.l2jfrozen.gameserver.templates.L2NpcTemplate; /** * Aio Shop e um re-make do Mod Aio Seller. De uma versao para outra, muitas coisas mudaram e isto altera o modo de usar do mod por completo! * Agora e possivel alterar a template, o item, o preco e o tempo via html. Em resumo, esta nova versao do codigo esta bem mais flexivel. * Faca um bom uso! * @author RedHoT * @version 1.0.7 */ public class L2AioSellerInstance extends L2FolkInstance { public L2AioSellerInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } @Override public void onAction(L2PcInstance player) { if (!canTarget(player)) return; player.setLastFolkNPC(this); // Check if the L2PcInstance already target the L2NpcInstance if (this != player.getTarget()) { // Set the target of the L2PcInstance player player.setTarget(this); // Send a Server->Client packet MyTargetSelected to the L2PcInstance player MyTargetSelected my = new MyTargetSelected(getObjectId(), 0); player.sendPacket(my); my = null; // Send a Server->Client packet ValidateLocation to correct the L2NpcInstance position and heading on the client player.sendPacket(new ValidateLocation(this)); } else { // Calculate the distance between the L2PcInstance and the L2NpcInstance if (!canInteract(player)) { // Notify the L2PcInstance AI with AI_INTENTION_INTERACT player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this); } else { showMessageWindow(player); } } // Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet player.sendPacket(ActionFailed.STATIC_PACKET); } private void showMessageWindow(L2PcInstance player) { String filename = "data/html/mods/Aio Shop/start.htm"; NpcHtmlMessage html = new NpcHtmlMessage(1); html.setFile(filename); html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%servername%", Config.ALT_Server_Name); player.sendPacket(html); filename = null; html = null; } @Override public void onBypassFeedback(L2PcInstance player, String command) { if (command.startsWith("add_aio")) { StringTokenizer st = new StringTokenizer(command); st.nextToken(); String priceId = null, priceCount = null, time = null; int aioPriceId = 0, aioPriceCount = 0, aioTime = 0; if (st.hasMoreTokens()) { priceId = st.nextToken(); priceCount = st.nextToken(); time = st.nextToken(); try { aioPriceId = Integer.parseInt(priceId); aioPriceCount = Integer.parseInt(priceCount); aioTime = Integer.parseInt(time); } catch(NumberFormatException e) {} } else { _log.warning("Could not update aio status of player " + player.getName()); return; } makeAioCharacter(player, aioPriceId, aioPriceCount, aioTime); } else if (command.startsWith("remove_aio")) removeAio(player); showMessageWindow(player); } public void makeAioCharacter(L2PcInstance player, int itemId, int itemCount, int aioTime) { L2ItemInstance itemInstance = player.getInventory().getItemByItemId(itemId); if (itemInstance == null || !itemInstance.isStackable() && player.getInventory().getInventoryItemCount(itemId, -1) < (itemCount)) { player.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_ITEMS)); return; } else if (itemInstance.isStackable()) { if (!player.destroyItemByItemId("Aio", itemId, itemCount, player.getTarget(), true)) { player.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_ITEMS)); return; } } else for (int i = 0; i < (itemCount); i++) player.destroyItemByItemId("Aio", itemId, 1, player.getTarget(), true); doAio(player, aioTime); } public void doAio(L2PcInstance player, int days) { if(player == null) return; int daysLeft = player.getAioEndTime() <= 0 ? 0 : (int) ((player.getAioEndTime() - System.currentTimeMillis()) / 86400000); player.setAio(true); player.setEndTime("aio", days + daysLeft); player.getStat().addExp(player.getStat().getExpForLevel(81)); if(Config.ALLOW_AIO_NCOLOR && player.isAio()) player.getAppearance().setNameColor(Config.AIO_NCOLOR); if(Config.ALLOW_AIO_TCOLOR && player.isAio()) player.getAppearance().setTitleColor(Config.AIO_TCOLOR); /* Give Aio Dual */ L2ItemInstance item; if(player.getInventory().getItemByItemId(Config.DUAL_AIO_ID) == null) { item = player.getInventory().addItem("", Config.DUAL_AIO_ID, 1, player, null); InventoryUpdate iu = new InventoryUpdate(); iu.addItem(item); player.sendPacket(iu); } player.rewardAioSkills(); player.sendPacket(new EtcStatusUpdate(player)); player.sendSkillList(); player.broadcastUserInfo(); player.sendMessage("You are now an Aio, Congratulations!"); } public void removeAio(L2PcInstance player) { if(!player.isAio()) { player.sendMessage("You are not an AIO."); return; } player.setAio(false); player.setAioEndTime(0); player.getAppearance().setNameColor(0xFFFFFF); player.getAppearance().setTitleColor(0xFFFF77); /* Remove Aio Dual */ L2ItemInstance item; player.getWarehouse().destroyItemByItemId("", Config.DUAL_AIO_ID, 1, player, null); item = player.getInventory().destroyItemByItemId("", Config.DUAL_AIO_ID, 1, player, null); InventoryUpdate iu = new InventoryUpdate(); iu.addItem(item); player.sendPacket(iu); player.lostAioSkills(); player.sendPacket(new EtcStatusUpdate(player)); player.sendSkillList(); player.broadcastUserInfo(); player.sendMessage("Now You are not an Aio.."); } }4 answers to this question
Recommended Posts