Ir para conteúdo
  • Cadastre-se

slym

Membro
  • Total de itens

    95
  • Registro em

  • Última visita

Reputação

15 Normal

2 Seguidores

Sobre slym

  • Rank
    Muito Noob

Profile Information

  • Gênero:
    Masculino

Contact Methods

  • Site:
    http://www.twitter.com/slymx

Últimos Visitantes

4.228 visualizações
  1. slym

    Duvia em correção de script

    obrigado amigos, pessoal do forum sempre me ajudando, vcs são feras. @dwbryel Que pena cara o projeto é muito bom, achei na net sim mas tenho pretensão de comprar, vou tentar entrar em contato com o desenvolvedor e dar uma doação como forma de auxilio.
  2. slym

    Duvia em correção de script

    Infelizmente não funcionou amigo, estou com medo de ter q alterar outros arquivos tbm.
  3. slym

    Duvia em correção de script

    Amigos, tenho um problema com o script das olympiadas do pack L2JMobius - Antharas 2.2 No classic não existe a quest de nobles, consequentemente para participar das oly tbm não é necessario. O player consegue se cadastrar para a batalha tranquilo, mas quando ele quer cancelar a participação o script não cancela, exceto se o player for nobles, realizei o seguinte teste para chegar a essa conclusão: cadastrei nas olympiaas e tentei cancelar -> não deu; utilizei o //setnoble e consegui cancelar a participação. Acredito que o erro esteja nessa parte do script: case "unregister": { OlympiadManager.getInstance().unRegisterNoble(player); break; } Ja tentei alterar de diversas formas mas sou muito leigo em java, resultado: não rolou duahsdhsdhad Se alguma alma boa poder me dar uma luz, abaixo vou postar todo o arquivo OlyManager.java /* * This file is part of the L2J Mobius project. * * 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 ai.others.OlyManager; import java.time.DayOfWeek; import java.time.LocalDate; import java.time.temporal.WeekFields; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import com.l2jmobius.Config; import com.l2jmobius.commons.util.Rnd; import com.l2jmobius.gameserver.data.xml.impl.MultisellData; import com.l2jmobius.gameserver.enums.CategoryType; import com.l2jmobius.gameserver.handler.BypassHandler; import com.l2jmobius.gameserver.handler.IBypassHandler; import com.l2jmobius.gameserver.model.Location; import com.l2jmobius.gameserver.model.actor.L2Character; import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.entity.Hero; import com.l2jmobius.gameserver.model.olympiad.CompetitionType; import com.l2jmobius.gameserver.model.olympiad.Olympiad; import com.l2jmobius.gameserver.model.olympiad.OlympiadGameManager; import com.l2jmobius.gameserver.model.olympiad.OlympiadGameTask; import com.l2jmobius.gameserver.model.olympiad.OlympiadManager; import com.l2jmobius.gameserver.network.SystemMessageId; import com.l2jmobius.gameserver.network.serverpackets.ExOlympiadMatchList; import ai.AbstractNpcAI; /** * Olympiad Manager AI. * @author St3eT */ public final class OlyManager extends AbstractNpcAI implements IBypassHandler { // NPC private static final int MANAGER = 31688; // Misc private static final int EQUIPMENT_MULTISELL = 3168801; private static final String[] BYPASSES = { "watchmatch", "arenachange" }; private static final Logger LOGGER = Logger.getLogger(OlyManager.class.getName()); private OlyManager() { addStartNpc(MANAGER); addFirstTalkId(MANAGER); addTalkId(MANAGER); BypassHandler.getInstance().registerHandler(this); } @Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { String htmltext = null; switch (event) { case "OlyManager-info.html": case "OlyManager-infoHistory.html": case "OlyManager-infoRules.html": case "OlyManager-infoPoints.html": case "OlyManager-infoPointsCalc.html": case "OlyManager-rank.html": case "OlyManager-rewards.html": { htmltext = event; break; } case "index": { htmltext = onFirstTalk(npc, player); break; } case "joinMatch": { if (OlympiadManager.getInstance().isRegistered(player)) { htmltext = "OlyManager-registred.html"; } else { switch (LocalDate.now().get(WeekFields.of(DayOfWeek.MONDAY, 7).weekOfMonth())) { case 1: case 2: case 3: // First 3 weeks of month is 1v1 + 1v1 class matches { htmltext = getHtm(player, "OlyManager-joinMatch.html"); break; } default:// Rest is only 1v1 class matches { htmltext = getHtm(player, "OlyManager-joinMatchClass.html"); break; } } htmltext = htmltext.replace("%olympiad_round%", String.valueOf(Olympiad.getInstance().getPeriod())); htmltext = htmltext.replace("%olympiad_week%", String.valueOf(Olympiad.getInstance().getCurrentCycle())); htmltext = htmltext.replace("%olympiad_participant%", String.valueOf(OlympiadManager.getInstance().getCountOpponents())); } break; } case "register1v1": case "register1v1class": { if (player.isSubClassActive()) { htmltext = "OlyManager-subclass.html"; } else if ((!player.isInCategory(CategoryType.THIRD_CLASS_GROUP) && !player.isInCategory(CategoryType.FOURTH_CLASS_GROUP)) || (player.getLevel() < 55)) // avoid exploits { htmltext = "OlyManager-noNoble.html"; } else if (Olympiad.getInstance().getNoblePoints(player) <= 0) { htmltext = "OlyManager-noPoints.html"; } else if (!player.isInventoryUnder80(false)) { player.sendPacket(SystemMessageId.UNABLE_TO_PROCESS_THIS_REQUEST_UNTIL_YOUR_INVENTORY_S_WEIGHT_AND_SLOT_COUNT_ARE_LESS_THAN_80_PERCENT_OF_CAPACITY); } else if (event.equals("register1v1")) { OlympiadManager.getInstance().registerNoble(player, CompetitionType.NON_CLASSED); } else { OlympiadManager.getInstance().registerNoble(player, CompetitionType.CLASSED); } break; } case "unregister": { OlympiadManager.getInstance().unRegisterNoble(player); break; } case "calculatePoints": { final int points = Olympiad.getInstance().getOlympiadTradePoint(player, false); if (points == 0) { htmltext = "OlyManager-calculateNoEnough.html"; } else if (points < 20) { if (Hero.getInstance().isUnclaimedHero(player.getObjectId()) || Hero.getInstance().isHero(player.getObjectId())) { htmltext = "OlyManager-calculateEnough.html"; } else { htmltext = "OlyManager-calculateNoEnough.html"; } } else { htmltext = "OlyManager-calculateEnough.html"; } break; } case "calculatePointsDone": { if (player.isInventoryUnder80(false)) { final int tradePoints = Olympiad.getInstance().getOlympiadTradePoint(player, true); if (tradePoints > 0) { giveItems(player, Config.ALT_OLY_COMP_RITEM, tradePoints * Config.ALT_OLY_MARK_PER_POINT); } } else { player.sendPacket(SystemMessageId.UNABLE_TO_PROCESS_THIS_REQUEST_UNTIL_YOUR_INVENTORY_S_WEIGHT_AND_SLOT_COUNT_ARE_LESS_THAN_80_PERCENT_OF_CAPACITY); } break; } case "showEquipmentReward": { MultisellData.getInstance().separateAndSend(EQUIPMENT_MULTISELL, player, npc, false); break; } case "rank_2": // Gladiator case "rank_3": // Warlord case "rank_5": // Paladin case "rank_6": // Dark Avenger case "rank_8": // Treasure Hunter case "rank_9": // Hawkeye case "rank_12": // Sorcerer case "rank_13": // Necromancer case "rank_14": // Warlock case "rank_16": // Bishop case "rank_17": // Prophet case "rank_20": // Temple Knight case "rank_21": // Sword Singer case "rank_23": // Plains Walker case "rank_24": // Silver Ranger case "rank_27": // Spellsinger case "rank_28": // Elemental Summoner case "rank_30": // Elven Elder case "rank_33": // Shillien Knight case "rank_34": // Bladedancer case "rank_36": // Abyss Walker case "rank_37": // Phantom Ranger case "rank_40": // Spellhowler case "rank_41": // Phantom Summoner case "rank_43": // Shillien Elder case "rank_46": // Destroyer case "rank_48": // Tyrant case "rank_51": // Overlord case "rank_52": // Warcryer case "rank_55": // Bounty Hunter case "rank_88": // Duelist case "rank_89": // Dreadnought case "rank_90": // Phoenix Knight case "rank_91": // Hell Knight case "rank_92": // Sagittarius case "rank_93": // Adventurer case "rank_94": // Archmage case "rank_95": // Soultaker case "rank_96": // Arcana Lord case "rank_97": // Cardinal case "rank_98": // Hierophant case "rank_99": // Eva's Templar case "rank_100": // Sword Muse case "rank_101": // Wind Rider case "rank_102": // Moonlight Sentinel case "rank_103": // Mystic Muse case "rank_104": // Elemental Master case "rank_105": // Eva's Saint case "rank_106": // Shillien Templar case "rank_107": // Spectral Dancer case "rank_108": // Ghost Hunter case "rank_109": // Ghost Sentinel case "rank_110": // Storm Screamer case "rank_111": // Spectral Master case "rank_112": // Shillien Saint case "rank_113": // Titan case "rank_114": // Grand Khavatari case "rank_115": // Dominator case "rank_116": // Doom Cryer case "rank_117": // Fortune Seeker case "rank_118": // Maestro { final int classId = Integer.parseInt(event.replace("rank_", "")); final List<String> names = Olympiad.getInstance().getClassLeaderBoard(classId); htmltext = getHtm(player, "OlyManager-rankDetail.html"); int index = 1; for (String name : names) { htmltext = htmltext.replace("%Rank" + index + "%", String.valueOf(index)); htmltext = htmltext.replace("%Name" + index + "%", name); index++; if (index > 15) { break; } } for (; index <= 15; index++) { htmltext = htmltext.replace("%Rank" + index + "%", ""); htmltext = htmltext.replace("%Name" + index + "%", ""); } break; } } return htmltext; } @Override public String onFirstTalk(L2Npc npc, L2PcInstance player) { String htmltext = null; if (!player.isCursedWeaponEquipped()) { htmltext = (!player.isInCategory(CategoryType.THIRD_CLASS_GROUP) && !player.isInCategory(CategoryType.FOURTH_CLASS_GROUP)) || (player.getLevel() < 55) ? "OlyManager-noNoble.html" : "OlyManager-noble.html"; } else { htmltext = "OlyManager-noCursed.html"; } return htmltext; } @Override public boolean useBypass(String command, L2PcInstance activeChar, L2Character bypassOrigin) { try { final L2Npc olymanager = activeChar.getLastFolkNPC(); if (command.startsWith(BYPASSES[0])) // list { if (!Olympiad.getInstance().inCompPeriod()) { activeChar.sendPacket(SystemMessageId.THE_OLYMPIAD_GAMES_ARE_NOT_CURRENTLY_IN_PROGRESS); return false; } activeChar.sendPacket(new ExOlympiadMatchList()); } else if ((olymanager == null) || (olymanager.getId() != MANAGER) || (!activeChar.inObserverMode() && !activeChar.isInsideRadius(olymanager, 300, false, false))) { return false; } else if (OlympiadManager.getInstance().isRegisteredInComp(activeChar)) { activeChar.sendPacket(SystemMessageId.YOU_MAY_NOT_OBSERVE_A_OLYMPIAD_GAMES_MATCH_WHILE_YOU_ARE_ON_THE_WAITING_LIST); return false; } else if (!Olympiad.getInstance().inCompPeriod()) { activeChar.sendPacket(SystemMessageId.THE_OLYMPIAD_GAMES_ARE_NOT_CURRENTLY_IN_PROGRESS); return false; } else if (activeChar.isOnEvent()) { activeChar.sendMessage("You can not observe games while registered on an event"); return false; } else { final int arenaId = Integer.parseInt(command.substring(12).trim()); final OlympiadGameTask nextArena = OlympiadGameManager.getInstance().getOlympiadTask(arenaId); if (nextArena != null) { final List<Location> spectatorSpawns = nextArena.getStadium().getZone().getSpectatorSpawns(); if (spectatorSpawns.isEmpty()) { LOGGER.warning(getClass().getSimpleName() + ": Zone: " + nextArena.getStadium().getZone() + " doesn't have specatator spawns defined!"); return false; } final Location loc = spectatorSpawns.get(Rnd.get(spectatorSpawns.size())); activeChar.enterOlympiadObserverMode(loc, arenaId); } } return true; } catch (Exception e) { LOGGER.log(Level.WARNING, "Exception in " + getClass().getSimpleName(), e); } return false; } @Override public String[] getBypassList() { return BYPASSES; } public static void main(String[] args) { new OlyManager(); } }
  4. slym

    L2-Scripts Zaken (2.0 Zaken) Source Code

    sim, basicamente isso, uso o java 8 e o client do horyu, mas a system tem q ser uma com o protocolo da revisão, se não me engano script é protocolo 110
  5. slym

    Warning ao compilar l2j Scripts

    Galera, to com o seguinte warning quando compilo o pack l2j scripts 2.0 zaken: copila ok, mas surgem varios bugs quando rodando o projeto, por exemplo, os buffs não são restaurados quando se reloga e alguns buffs não estão dando os efeitos. alterei o stop para stopEffects e não funcionou, ja tentei alterar o texto de diversas formas e não obtive sucesso. Abaixo vou deixar a parte do script q da o primeiro warning, acredito que resolvendo este o resto segue o mesmo padrão: if(attacker != this || (skill != null && skill.isOffensive())) { final TIntSet effectsToRemove = new TIntHashSet(); for(Abnormal effect : getAbnormalList()) { if(effect.getSkill().isDispelOnDamage()) effectsToRemove.add(effect.getSkill().getId()); } getAbnormalList().stop(effectsToRemove); if(isMeditated()) getAbnormalList().stop(EffectType.Meditation); startAttackStanceTask(); checkAndRemoveInvisible(); }
  6. slym

    L2-Scripts Zaken (2.0 Zaken) Source Code

    Cara, o meu da um erro parecido, mas não o mesmo. EDIT// Alterei a pasta Config e o erro se tornou esse, que me parece mais complicado dauhsduhsad EDIT - 2 Galera, servidor ta funcionando, o problema era no meu MySQL, testei o 5.0, 5.5, 6,0 e nenhum pego, exceto o 5.7. o pack ta bem bacana e funcional, tem muuuito o que se trabalhar, mas agora temos uma pack de verdade, vlw ao brother que postou!
  7. slym

    Chance Skill Power L2J - Acis 372

    Boa tarde, amigos. É com enorme felicidade que venho trazer a solução desse problema. Primeira coisa, os valores a serem editados é na linha "power" da xml msm, o que estava acontecendo é que o valor minimo e maximo dessa linha esta configurado para 20 e 100, portanto muitas vezes se fazermos o calculo de acordo com o Formulas.java a alteração não se torna significativa, como por exemplo no caso da skill Seal of Binding: POWER x statMod x SkillMod x mAtkMod x lvlMod 20-100 x 087 x 0,40 x 0,61 x 0,96 = 4,10% até 20% *Valores referentes a um over full s, buffado e o char que estava sendo debuff era um sagi full s tbm buffado, portanto os valores são simbolicos e referentes a esse teste somente* o problema era que eu colocava o power acima de 300 e o server não entendia o valor e jogava no minimo ( 20 ), para solucionar, fiz o seguinte, procurei aonde era limitado o valor "power" de 20 a 100 e encontrei no seguinte arquivo: /aCis_gameserver/java/net/sf/l2j/gameserver/model/L2Skill.java mais precisamente entre as linhas 664 até a 667 // to let debuffs succeed even without specified power return (_power <= 0 || 100 < _power) ? 20 : _power; } } aumentei aonde esta 100 para 999, e consegui arrumar deboa, agora posso varios o power de todos os debuffs. Dica: No arquivo "server.properties" nas configs do server, tem uma parte de developer que esta marcada False, para que o calculo da chance do debuff seja feito e fique visivel para você no GS Console deve se alterar para True. FAÇA ISSO APENAS COM O SERVER OFFLINE, POIS O FLOOD NO GS CONSOLE FICA ALTISSIMO. Vlw galera! Desculpem o flood, mas achei melhor deixar separado a solução em post diferentes para facilitar quem tiver com duvida.
  8. Boa noite amigos, mais uma vez trago essa duvida para essa seção. Me deparei com a seguinte situação utilizando a Acis 372, fui alterar a chance do root do over (Seal of Binding - 1208, xml abaixo) e como nas outras packs acreditei que fosse somente alterar o "power", porem, o power da skill de acordo com o source code é 40, portanto, se eu aumentasse para 80 eu ja teria que notar, em tese, uma alteração na quantidade de vezes em que o debuff "entra", na pratica não foi isso que aconteceu, coloquei diversos valores (80, 99, 100, 200, 500....1000) e a chance não muda. Até aí tudo bem, fui atras de entender o problema no java, mas sou mt leigo, vasculhando toda a internet que o google me propos encontrei relatos do pessoal mandando alterar o arquivo Formulas.java e outros mandando alterar as handles (maneira mais facil, porem a grande maioria dos debuffs não possui uma handle própria, como é o caso do Cancel (Cancel.java)), abrindo o formulas.java e tentando entender o que o codigo determina, mudei algumas variaveis mas tbm não obtive sucesso, vou postar abaixo a xml da skill e o trecho do código ao qual eu acho que faz referência a este fator. XML: <skill id="1208" levels="17" name="Seal of Binding" enchantLevels1="30" enchantLevels2="30" > <table name="#enchantMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 82 83 83 83 84 84 85 85 85 </table> <table name="#ench2MpConsume"> 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 65 64 63 62 61 60 59 58 57 56 55 54 53 </table> <table name="#ench2mpInitialConsume"> 20 20 19 19 19 19 18 18 18 18 17 17 17 17 16 16 16 16 16 15 15 15 15 14 14 14 14 13 13 13 </table> <table name="#mpInitialConsume"> 7 8 9 11 12 13 14 16 16 17 18 18 19 19 20 20 21 </table> <table name="#mpConsume"> 27 32 36 42 47 52 56 61 64 66 69 71 74 76 78 80 82 </table> <table name="#magicLvl"> 25 30 35 40 44 48 52 56 58 60 62 64 66 68 70 72 74 </table> <table name="#ench1Power"> 40 40 41 41 41 42 42 42 43 43 43 44 44 44 45 45 45 46 46 46 47 47 47 48 48 48 49 49 49 50 </table> <set name="mpInitialConsume" val="#mpInitialConsume"/> <set name="mpConsume" val="#mpConsume"/> <set name="magicLvl" val="#magicLvl"/> <set name="power" val="40"/> <set name="lvlDepend" val="2"/> <set name="target" val="TARGET_AURA"/> <set name="skillRadius" val="200"/> <set name="reuseDelay" val="20000"/> <set name="hitTime" val="4000"/> <set name="skillType" val="ROOT"/> <set name="isMagic" val="true"/> <set name="isDebuff" val="true" /> <set name="operateType" val="OP_ACTIVE"/> <enchant1 name="power" val="#ench1Power"/> <enchant1 name="magicLvl" val="#enchantMagicLvl"/> <enchant2 name="magicLvl" val="#enchantMagicLvl"/> <enchant2 name="mpConsume" val="#ench2MpConsume"/> <enchant2 name="mpInitialConsume" val="#ench2mpInitialConsume"/> <for> <effect count="1" name="Root" time="30" val="0" stackOrder="1" stackType="root_magically"/> </for> </skill> Formula.java (trecho que eu acho que faz referência, pode ser que eu esteja fazendo bobagem dhuashdasd) public static boolean calcEffectSuccess(Creature attacker, Creature target, EffectTemplate effect, L2Skill skill, byte shld, boolean bss) { if (shld == SHIELD_DEFENSE_PERFECT_BLOCK) // perfect block return false; final L2SkillType type = effect.effectType; final double baseChance = effect.effectPower; if (type == null) return Rnd.get(10) < baseChance; if (type.equals(L2SkillType.CANCEL)) // CANCEL type lands always return true; final double statModifier = calcSkillStatModifier(type, target); final double skillModifier = calcSkillVulnerability(attacker, target, skill, type); final double mAtkModifier = getMatkModifier(attacker, target, skill, bss); final double lvlModifier = getLevelModifier(attacker, target, skill); final double rate = Math.max(1, Math.min((baseChance * statModifier * skillModifier * mAtkModifier * lvlModifier), 99)); if (Config.DEVELOPER) _log.info("calcEffectSuccess(): Name:" + skill.getName() + " eff.type:" + type.toString() + " power:" + baseChance + " statMod:" + String.format("%1.2f", statModifier) + " skillMod:" + String.format("%1.2f", skillModifier) + " mAtkMod:" + String.format("%1.2f", mAtkModifier) + " lvlMod:" + String.format("%1.2f", lvlModifier) + " total:" + String.format("%1.2f", rate) + "%"); return (Rnd.get(100) < rate); }
  9. slym

    L2JNetwork rev31 + Source

    alguém conseguiu testar o frintezza? fiz uns testes aqui mas não consegui passar da primeira room.
  10. Instalei no iOs tbm, o jogo ficou realmente lindo, mas tive umas travada por conta do celular que me desanimou, quando eu trocar meu velho de guerra, com toda certeza vou instalar novamente.
  11. slym

    L2JBrasil 3.0 Oficial

    @Grundor Bom dia amigos, gostaria de ajudar como tester, notei que vcs talvez precisariam de uma ajuda para testar os commites, podem contar cmg, tenho certa experiência e estou com tempo livre durante esse final de ano. Abraços, sucesso no projeto.
  12. ta faltando os helms no armorgrp, teria como postar a de vcs, não to sabendo criar a partir dos itens que ja tenho.
  13. slym

    Source L2 Classic L2-Scripts 1.5

    sim, aqui
  14. slym

    L2J Geodata Interlude

    Não consegui fazer a depmax64 rodar na frozen não :\
  15. slym

    L2 Classic

    Boa noite, clube da insônia. Bom galera, sou um player relativamente antigo de lineage 2 e um grande fan das antigas cronicas c1-c4. Devido a correria da vida de estudante e trabalhador brasileiro havia dado um tempo de lineage 2, hoje dando aquela verificada no forum morrendo de saudades de tudo, servers, polemicas e alguns colegas que nem imaginam mas somaram muita coisa em minha formação como Guma, Kelvin, Grundor, Airon, Zeus entre vários outros, bom, mas não é esse o motivo da criação deste tópico, o real motivo é o novo L2 Classic, procurei alguns videos e to louco de vontade de jogar e preciso saber toda e qualquer informação, galera aqui do forum sempre está avançada em conteúdo e gostaria de saber o que vocês sabem. Vamos lá, vamos compartilhar informações. Abraços.
×