Jump to content
Christian-SDM

L2J Mega Corrigido

Recommended Posts

22 minutos atrás, Christian-SDM disse:

isso q vc fez, bugo o char, boneco nao caminha! e ainda recebe a divine inspiration

aqui mod ativar ou desativar auto learn divine

 

valeu brother vc é o cara, sou novo em acis.

1 hora atrás, ~Danilo Nascimento~ disse:

Entendi, mas não é preciso criar MOD pra uma coisa simples assim. Basta você adicionar na lista de skills das classes, em: data/xml/classes

            <!-- Divine Inspiration -->
            <skill id="1405" lvl="1" sp="0" minLvl="52" />
            <skill id="1405" lvl="2" sp="0" minLvl="61" />


            <skill id="1405" lvl="3" sp="0" minLvl="76" />
            <skill id="1405" lvl="4" sp="0" minLvl="76" />

 

upei a class de dark_fighter pra voce entender melhor, segue o anexo:

dark_fighter.rar 11 kB · 1 download

valeu pela sua ajuda também.

Share this post


Link to post
Share on other sites

Proteja seu servidor de ataques DDoS massivos!

VPS EPIC
4 horas atrás, Gr1ze disse:

Maybe do you have clean system files with textures because can't find where to download custom items. It will be very helpfull.

https://mega.nz/#!rs4TUIIK!Wjyz3bUqSwx9M28HYMJ-WUZdb4rvkq3YbMO8Me8_3vs

Share this post


Link to post
Share on other sites

valeu manu mod simples e fácil de adicionar [ deu certo aqui ]

agora esses fake players não estão dando spawn automatico.
mostra msg do GS mas não da spawn somente de forma manual.

e o mod fake acho q não está completo ,  pois nas config tem como ativar spawn automatico e os fakes andarem pela cidade, mas mesmo ativando essas opções eles só ficam parados. só se mechem quando tem um mob ou flag.

Share this post


Link to post
Share on other sites
5 minutos atrás, SCRASH0 disse:

valeu manu mod simples e fácil de adicionar [ deu certo aqui ]

agora esses fake players não estão dando spawn automatico.
mostra msg do GS mas não da spawn somente de forma manual.

e o mod fake acho q não está completo ,  pois nas config tem como ativar spawn automatico e os fakes andarem pela cidade, mas mesmo ativando essas opções eles só ficam parados. só se mechem quando tem um mob ou flag.

ta funcionando sim, meu amigo testo ele, tem q configurar o tempo deles se iniciado tbm

Share this post


Link to post
Share on other sites

me diz se ta correto?

 

#=================================================
#           PHANTOM ON START GAME              
#=================================================
# Ativar phantoms ao iniciar o servidor
AllowPhantom = True

# Ativar Phantom Store ao iniciar o servidor
AllowPhantomStore = True

#=================================================
#             PHANTOM ACCOUNT
#=================================================
# Nomes das contas que precisa adicionar na tabela "characters"
# crie as contas bots, depois substitua pelos nomes das contas fakes.
# contas fake town
PhantomTownAccount = @town
PhantomPrivateStoreAccount = @store

#=================================================
#             SPAWN | DISCONECT
#=================================================
# Tempo em minutos para o primeiro Spawn ?
FirstDelaySpawn = 1

# tempo em minutos para desconectar os fakes
DisconnectDelay = 30

Share this post


Link to post
Share on other sites
33 minutos atrás, SCRASH0 disse:

me diz se ta correto?

 

#=================================================
#           PHANTOM ON START GAME              
#=================================================
# Ativar phantoms ao iniciar o servidor
AllowPhantom = True

# Ativar Phantom Store ao iniciar o servidor
AllowPhantomStore = True

#=================================================
#             PHANTOM ACCOUNT
#=================================================
# Nomes das contas que precisa adicionar na tabela "characters"
# crie as contas bots, depois substitua pelos nomes das contas fakes.
# contas fake town
PhantomTownAccount = @town
PhantomPrivateStoreAccount = @store

#=================================================
#             SPAWN | DISCONECT
#=================================================
# Tempo em minutos para o primeiro Spawn ?
FirstDelaySpawn = 1

# tempo em minutos para desconectar os fakes
DisconnectDelay = 30

Nao sei amigo, mas foi testado

Share this post


Link to post
Share on other sites

bem aqui não pega só da erro no gs

 

FakePlayers: player lotta
null
FakePlayers: player Partizana
null
FakePlayers: player indigo
null
FakePlayers: player Fudjee
null
FakePlayers: player lapsha
null
FakePlayers: player Kyvalda
null
FakePlayers: player Dio
null
Phantom Town: Foi Gerado 0 Phantom players.

Share this post


Link to post
Share on other sites
Agora, SCRASH0 disse:

bem aqui não pega só da erro no gs

 

FakePlayers: player lotta
null
FakePlayers: player Partizana
null
FakePlayers: player indigo
null
FakePlayers: player Fudjee
null
FakePlayers: player lapsha
null
FakePlayers: player Kyvalda
null
FakePlayers: player Dio
null
Phantom Town: Foi Gerado 0 Phantom players.

só com voce! n sei q vc ta fazendo ai mas meu amigo testo e ta 100% e n tem erro no gs

Share this post


Link to post
Share on other sites
38 minutos atrás, SCRASH0 disse:

me diz se ta correto?

 

#=================================================
#           PHANTOM ON START GAME              
#=================================================
# Ativar phantoms ao iniciar o servidor
AllowPhantom = True

# Ativar Phantom Store ao iniciar o servidor
AllowPhantomStore = True

#=================================================
#             PHANTOM ACCOUNT
#=================================================
# Nomes das contas que precisa adicionar na tabela "characters"
# crie as contas bots, depois substitua pelos nomes das contas fakes.
# contas fake town
PhantomTownAccount = @town
PhantomPrivateStoreAccount = @store

#=================================================
#             SPAWN | DISCONECT
#=================================================
# Tempo em minutos para o primeiro Spawn ?
FirstDelaySpawn = 1

# tempo em minutos para desconectar os fakes
DisconnectDelay = 30

eu nao sei jogar lineage, nem sei como funciona o spawn mas deve se algo relacionado ai, coloca 0 em firstdelayspawn e da restart no servidor

Share this post


Link to post
Share on other sites
5 horas atrás, SCRASH0 disse:

e o mod fake acho q não está completo ,  pois nas config tem como ativar spawn automatico e os fakes andarem pela cidade, mas mesmo ativando essas opções eles só ficam parados. só se mechem quando tem um mob ou flag.

Ai atualizei para pack V4 com correçoes do fake.

Pack v4

Video

 

  • Like 3

Share this post


Link to post
Share on other sites
16 horas atrás, Christian-SDM disse:

Ai atualizei para pack V4 com correçoes do fake.

Pack v4

Video

 

ficou bom o que eu não gosto nesse mod é que esses ai não andam.
eu baixei a rev do l2aliance. e o fake de lá é o mesmo desse. da l2jmega. mas os fakes de lá andam. pelas cidades. pra não da na cara que é fake.
bom tbm é o mod fake do oseias. que da responde até seu pm. fala em clan.

Share this post


Link to post
Share on other sites
Agora, SCRASH0 disse:

ficou bom o que eu não gosto nesse mod é que esses ai não andam.
eu baixei a rev do l2aliance. e o fake de lá é o mesmo desse. da l2jmega. mas os fakes de lá andam. pelas cidades. pra não da na cara que é fake.
bom tbm é o mod fake do oseias. que da responde até seu pm. fala em clan.

mas ele anda, olha o video

Share this post


Link to post
Share on other sites
28 minutos atrás, Christian-SDM disse:

mas ele anda, olha o video

QUAIS OS ARQUIVOS QUE VC EDITO. PORQUE NÃO QUERO TER Q CONFIGURAR A REV TODA.
QUERO SOMENTE AS PARTES QUE VC MODIFICA.

Share this post


Link to post
Share on other sites
Agora, SCRASH0 disse:

QUAIS OS ARQUIVOS QUE VC EDITO. PORQUE NÃO QUERO TER Q CONFIGURAR A REV TODA.
QUERO SOMENTE AS PARTES QUE VC MODIFICA.

nao editei nada so fiz uma nova pela source, melhor vc usar ela caso nao consiga fazer isso funcionar na sua!

Share this post


Link to post
Share on other sites
2 minutos atrás, SCRASH0 disse:

QUANDO VC FOR ATUALIZANDO COLOQUE SOMENTE O QUE VC MODIFICOU.

tópico ja ta grande pra eu ficar colocando isso, e tive q criar essa pack pq na outra n tava funcionando.

Share this post


Link to post
Share on other sites
1 minuto atrás, SCRASH0 disse:

cara não está gerando nem com a rev que vc postou.
será que tem algo haver com meu java?
uso o java 11. e esse projeto é 8

se n da erro no core entao n tem pq trocar o java

olha video, ele mostra oq deve se alterado

Share this post


Link to post
Share on other sites
Em 19/12/2019 at 13:53, Christian-SDM disse:

isso q vc fez, bugo o char, boneco nao caminha! e ainda recebe a divine inspiration

aqui mod ativar ou desativar auto learn divine

 

Bugou o char ? kkkkkkkkkkkkk 

cara é só voce observar as linhas e adicionar nos locais corretos igual ao exemplo que upei ai, algo tão simpes, mas ja que prefere entupir o pack de mods GOGO 

Edited by ~Danilo Nascimento~
erro

j58fx5.gif

Share this post


Link to post
Share on other sites
6 minutos atrás, ~Danilo Nascimento~ disse:

Bugou o char ? kkkkkkkkkkkkk 

cara é só voce observar as linhas e adicionar nos locais corretos igual ao exemplo que upei ai, algo tão simpes, mas ja que prefere entupir o pack de mods GOGO 

do que vc ta falando cara? eu baixei seu arquivo e coloquei la, nao fiz mais nada, é seu arquivo que ta errado falo, antes de sair dando risadinha testa seu proprio xml

Share this post


Link to post
Share on other sites
Agora, Christian-SDM disse:

do que vc ta falando cara? eu baixei seu arquivo e coloquei la, nao fiz mais nada, é seu arquivo que ta errado falo, antes de sair dando risadinha testa seu proprio xml

Deve ser porque nao uso a ultima atualização da aCis, mas era só pra voce pegar como exemplo e observar onde deve ser adicionada as linhas, já que você nao entende muito.


j58fx5.gif

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...



  • Recently Browsing

  • Similar Content

    • By Luther
      Galera to tentando tirar a animação que o npc buffer faz quando o player pega um buff, igual a animação do aiox.
      acredito que isso seja feito no core, então ta aqui o arquivo do npc. 
      package net.sf.l2j.gameserver.model.actor.instance; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.StringTokenizer; import net.sf.l2j.commons.lang.StringUtil; import net.sf.l2j.commons.random.Rnd; import net.sf.l2j.Config; import net.sf.l2j.gameserver.data.BufferTable; import net.sf.l2j.gameserver.data.SkillTable; import net.sf.l2j.gameserver.model.L2Skill; import net.sf.l2j.gameserver.model.actor.Creature; import net.sf.l2j.gameserver.model.actor.Npc; import net.sf.l2j.gameserver.model.actor.Summon; import net.sf.l2j.gameserver.model.actor.ai.CtrlIntention; import net.sf.l2j.gameserver.model.actor.template.NpcTemplate; import net.sf.l2j.gameserver.network.serverpackets.ActionFailed; import net.sf.l2j.gameserver.network.serverpackets.ItemList; import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse; import net.sf.l2j.gameserver.network.serverpackets.MoveToPawn; import net.sf.l2j.gameserver.network.serverpackets.MyTargetSelected; import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; import net.sf.l2j.gameserver.network.serverpackets.ValidateLocation; public final class SchemeBuffer extends Npc { public SchemeBuffer(int objectId, NpcTemplate template) { super(objectId, template); } @Override public void onAction(Player player) { if (this != player.getTarget()) { player.setTarget(this); player.sendPacket(new MyTargetSelected(getObjectId(), 0)); player.sendPacket(new ValidateLocation(this)); } else { if (!canInteract(player)) player.getAI().setIntention(CtrlIntention.INTERACT, this); else { // Rotate the player to face the instance player.sendPacket(new MoveToPawn(player, this, Npc.INTERACTION_DISTANCE)); if (hasRandomAnimation()) onRandomAnimation(Rnd.get(8)); showMainWindow(player); // Send ActionFailed to the player in order to avoid he stucks player.sendPacket(ActionFailed.STATIC_PACKET); } } } private void showMainWindow(Player activeChar) { /* * if(Config.community_board_in_npcs) { CommunityBoard.getInstance().handleCommands(activeChar.getClient(), "_bbsnpcs;openfile;buffer;index"); return; } */ NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile("data/html/mods/buffer/index.htm"); html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%name%", activeChar.getName()); html.replace("%buffcount%", "You have " + activeChar.getBuffCount() + "/" + activeChar.getMaxBuffCount() + " buffs."); // html.replace("%intro%", ServerSideImage.getInstance().getRankNameImageHtmlTag(activeChar, 2, 256, 64)); activeChar.sendPacket(html); } @Override public void onBypassFeedback(Player player, String command) { if (player.getPvpFlag() > 0 && Config.RESTRICT_USE_BUFFER_ON_PVPFLAG) { player.sendMessage("You can't use buffer when you are pvp flagged."); return; } if (player.isInCombat() && Config.RESTRICT_USE_BUFFER_IN_COMBAT) { player.sendMessage("You can't use buffer when you are in combat."); return; } if (player.isDead()) return; StringTokenizer st = new StringTokenizer(command, " "); String actualCommand = st.nextToken(); if (actualCommand.equalsIgnoreCase("bufflist")) { autoBuffFunction(player, st.nextToken()); } else if (actualCommand.equalsIgnoreCase("restore")) { String noble = st.nextToken(); player.setCurrentHpMp(player.getMaxHp(), player.getMaxMp()); player.setCurrentCp(player.getMaxCp()); if (noble.equals("true")) { SkillTable.getInstance().getInfo(1323, 1).getEffects(player, player); } final Summon summon = player.getPet(); if (summon != null) summon.setCurrentHpMp(summon.getMaxHp(), summon.getMaxMp()); showMainWindow(player); } else if (actualCommand.equalsIgnoreCase("cancellation")) { L2Skill buff; buff = SkillTable.getInstance().getInfo(1056, 1); buff.getEffects(this, player); player.stopAllEffectsExceptThoseThatLastThroughDeath(); player.broadcastPacket(new MagicSkillUse(this, player, 1056, 1, 850, 0)); player.stopAllEffects(); final Summon summon = player.getPet(); if (summon != null) summon.stopAllEffects(); showMainWindow(player); } else if (actualCommand.equalsIgnoreCase("openlist")) { String category = st.nextToken(); String htmfile = st.nextToken(); NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); if (category.equalsIgnoreCase("null")) { html.setFile("data/html/mods/buffer/" + htmfile + ".htm"); // First Page if (htmfile.equals("index")) { html.replace("%name%", player.getName()); html.replace("%buffcount%", "You have " + player.getBuffCount() + "/" + player.getMaxBuffCount() + " buffs."); } } else html.setFile("data/html/mods/buffer/" + category + "/" + htmfile + ".htm"); html.replace("%objectId%", String.valueOf(getObjectId())); player.sendPacket(html); } else if (actualCommand.equalsIgnoreCase("dobuff")) { int buffid = Integer.valueOf(st.nextToken()); int bufflevel = Integer.valueOf(st.nextToken()); String category = st.nextToken(); String windowhtml = st.nextToken(); String votebuff = null; if (st.hasMoreTokens()) votebuff = st.nextToken(); if (windowhtml.equals("malaria")) { if (player.getInventory().getInventoryItemCount(Config.VOTE_BUFF_ITEM_ID, 0) >= 1) { player.getInventory().destroyItemByItemId("VoteCoins", Config.VOTE_BUFF_ITEM_ID, 1, player, null); player.getInventory().updateDatabase(); player.sendPacket(new ItemList(player, true)); player.sendMessage(1 + " Champion Coin disappeared."); } else { player.sendMessage("You need the " + Config.VOTE_BUFF_ITEM_COUNT + " Champion Coin to get buff."); return; } } if (votebuff != null) { if (player.getInventory().getInventoryItemCount(Config.VOTE_BUFF_ITEM_ID, 0) >= Config.VOTE_BUFF_ITEM_COUNT) { player.getInventory().destroyItemByItemId("VoteCoins", Config.VOTE_BUFF_ITEM_ID, Config.VOTE_BUFF_ITEM_COUNT, player, null); player.getInventory().updateDatabase(); player.sendPacket(new ItemList(player, true)); player.sendMessage(Config.VOTE_BUFF_ITEM_COUNT + " Champion Coin disappeared."); } else { player.sendMessage("You need the " + Config.VOTE_BUFF_ITEM_COUNT + " Champion Coin to get buff."); return; } } Creature target = player; if (category.equalsIgnoreCase("pet")) { if (player.getPet() == null) { player.sendMessage("Incorrect Pet"); showMainWindow(player); return; } target = player.getPet(); } MagicSkillUse mgc = new MagicSkillUse(this, target, buffid, bufflevel, 1150, 0); player.sendPacket(mgc); player.broadcastPacket(mgc); SkillTable.getInstance().getInfo(buffid, bufflevel).getEffects(this, target); NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile("data/html/mods/buffer/" + category + "/" + windowhtml + ".htm"); html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%name%", player.getName()); player.sendPacket(html); } else if (actualCommand.equalsIgnoreCase("getbuff")) { int buffid = Integer.valueOf(st.nextToken()); int bufflevel = Integer.valueOf(st.nextToken()); if (buffid != 0) { SkillTable.getInstance().getInfo(buffid, bufflevel).getEffects(this, player); broadcastPacket(new MagicSkillUse(this, player, buffid, bufflevel, 450, 0)); showMainWindow(player); } } else if (actualCommand.startsWith("support")) { showGiveBuffsWindow(player, st.nextToken()); } else if (actualCommand.startsWith("givebuffs")) { final String targetType = st.nextToken(); final String schemeName = st.nextToken(); final int cost = Integer.parseInt(st.nextToken()); final Creature target = (targetType.equalsIgnoreCase("pet")) ? player.getPet() : player; if (target == null) player.sendMessage("You don't have a pet."); else if (cost == 0 || player.reduceAdena("NPC Buffer", cost, this, true)) { for (int skillId : BufferTable.getInstance().getScheme(player.getObjectId(), schemeName)) SkillTable.getInstance().getInfo(skillId, SkillTable.getInstance().getMaxLevel(skillId)).getEffects(this, target); } showGiveBuffsWindow(player, targetType); } else if (actualCommand.startsWith("editschemes")) { if (st.countTokens() == 2) showEditSchemeWindow(player, st.nextToken(), st.nextToken()); else player.sendMessage("Something wrong with your scheme. Please contact with Admin"); } else if (actualCommand.startsWith("skill")) { final String groupType = st.nextToken(); final String schemeName = st.nextToken(); final int skillId = Integer.parseInt(st.nextToken()); final List<Integer> skills = BufferTable.getInstance().getScheme(player.getObjectId(), schemeName); if (actualCommand.startsWith("skillselect") && !schemeName.equalsIgnoreCase("none")) { if (skills.size() < Config.BUFFER_MAX_SKILLS) skills.add(skillId); else player.sendMessage("This scheme has reached the maximum amount of buffs."); } else if (actualCommand.startsWith("skillunselect")) skills.remove(Integer.valueOf(skillId)); showEditSchemeWindow(player, groupType, schemeName); } else if (actualCommand.startsWith("manageschemes")) { showManageSchemeWindow(player); } else if (actualCommand.startsWith("createscheme")) { try { final String schemeName = st.nextToken(); if (schemeName.length() > 14) { player.sendMessage("Scheme's name must contain up to 14 chars. Spaces are trimmed."); showManageSchemeWindow(player); return; } final Map<String, ArrayList<Integer>> schemes = BufferTable.getInstance().getPlayerSchemes(player.getObjectId()); if (schemes != null) { if (schemes.size() == Config.BUFFER_MAX_SCHEMES) { player.sendMessage("Maximum schemes amount is already reached."); showManageSchemeWindow(player); return; } if (schemes.containsKey(schemeName)) { player.sendMessage("The scheme name already exists."); showManageSchemeWindow(player); return; } } BufferTable.getInstance().setScheme(player.getObjectId(), schemeName.trim(), new ArrayList<Integer>()); showManageSchemeWindow(player); } catch (Exception e) { player.sendMessage("Scheme's name must contain up to 14 chars. Spaces are trimmed."); showManageSchemeWindow(player); } } else if (actualCommand.startsWith("deletescheme")) { try { final String schemeName = st.nextToken(); final Map<String, ArrayList<Integer>> schemes = BufferTable.getInstance().getPlayerSchemes(player.getObjectId()); if (schemes != null && schemes.containsKey(schemeName)) schemes.remove(schemeName); } catch (Exception e) { player.sendMessage("This scheme name is invalid."); } showManageSchemeWindow(player); } else if (actualCommand.startsWith("clearscheme")) { try { final String schemeName = st.nextToken(); final Map<String, ArrayList<Integer>> schemes = BufferTable.getInstance().getPlayerSchemes(player.getObjectId()); if (schemes != null && schemes.containsKey(schemeName)) schemes.get(schemeName).clear(); } catch (Exception e) { player.sendMessage("This scheme name is invalid."); } showManageSchemeWindow(player); } else super.onBypassFeedback(player, command); } /** * Sends an html packet to player with Give Buffs menu info for player and pet, depending on targetType parameter {player, pet} * @param player : The player to make checks on. * @param targetType : a String used to define if the player or his pet must be used as target. */ private void showGiveBuffsWindow(Player player, String targetType) { final StringBuilder sb = new StringBuilder(200); final Map<String, ArrayList<Integer>> schemes = BufferTable.getInstance().getPlayerSchemes(player.getObjectId()); if (schemes == null || schemes.isEmpty()) sb.append("<font color=\"LEVEL\">You haven't defined any scheme, please go to 'Manage my schemes' and create at least one valid scheme.</font>"); else { for (Map.Entry<String, ArrayList<Integer>> scheme : schemes.entrySet()) { final int cost = getFee(scheme.getValue()); StringUtil.append(sb, "<font color=\"LEVEL\"><a action=\"bypass -h npc_%objectId%_givebuffs ", targetType, " ", scheme.getKey(), " ", cost, "\">", scheme.getKey(), " (", scheme.getValue().size(), " skill(s))</a>", ((cost > 0) ? " - Adena cost: " + cost : ""), "</font><br1>"); } } final NpcHtmlMessage html = new NpcHtmlMessage(0); html.setFile("data/html/mods/buffer/schememanager/index-1.htm"); html.replace("%schemes%", sb.toString()); html.replace("%targettype%", (targetType.equalsIgnoreCase("pet") ? "&nbsp;<a action=\"bypass -h npc_%objectId%_support player\">yourself</a>&nbsp;|&nbsp;your pet" : "yourself&nbsp;|&nbsp;<a action=\"bypass -h npc_%objectId%_support pet\">your pet</a>")); html.replace("%objectId%", getObjectId()); player.sendPacket(html); } /** * Sends an html packet to player with Manage scheme menu info. This allows player to create/delete/clear schemes * @param player : The player to make checks on. */ private void showManageSchemeWindow(Player player) { final StringBuilder sb = new StringBuilder(200); final Map<String, ArrayList<Integer>> schemes = BufferTable.getInstance().getPlayerSchemes(player.getObjectId()); if (schemes == null || schemes.isEmpty()) sb.append("<font color=\"LEVEL\">You haven't created any scheme.</font>"); else { sb.append("<table>"); for (Map.Entry<String, ArrayList<Integer>> scheme : schemes.entrySet()) StringUtil.append(sb, "<tr><td width=140>", scheme.getKey(), " (", scheme.getValue().size(), " skill(s))</td><td width=60><button value=\"Clear\" action=\"bypass -h npc_%objectId%_clearscheme ", scheme.getKey(), "\" width=55 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td><td width=60><button value=\"Drop\" action=\"bypass -h npc_%objectId%_deletescheme ", scheme.getKey(), "\" width=55 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td></tr>"); sb.append("</table>"); } final NpcHtmlMessage html = new NpcHtmlMessage(0); html.setFile("data/html/mods/buffer/schememanager/index-2.htm"); html.replace("%schemes%", sb.toString()); html.replace("%max_schemes%", Config.BUFFER_MAX_SCHEMES); html.replace("%objectId%", getObjectId()); player.sendPacket(html); } /** * This sends an html packet to player with Edit Scheme Menu info. This allows player to edit each created scheme (add/delete skills) * @param player : The player to make checks on. * @param groupType : The group of skills to select. * @param schemeName : The scheme to make check. */ private void showEditSchemeWindow(Player player, String groupType, String schemeName) { final NpcHtmlMessage html = new NpcHtmlMessage(0); if (schemeName.equalsIgnoreCase("none")) html.setFile("data/html/mods/buffer/schememanager/index-3.htm"); else { if (groupType.equalsIgnoreCase("none")) html.setFile("data/html/mods/buffer/schememanager/index-4.htm"); else { html.setFile("data/html/mods/buffer/schememanager/index-5.htm"); html.replace("%skilllistframe%", getGroupSkillList(player, groupType, schemeName)); } html.replace("%schemename%", schemeName); html.replace("%myschemeframe%", getPlayerSchemeSkillList(player, groupType, schemeName)); html.replace("%typesframe%", getTypesFrame(groupType, schemeName)); } html.replace("%schemes%", getPlayerSchemes(player, schemeName)); html.replace("%objectId%", getObjectId()); player.sendPacket(html); } /** * @param player : The player to make checks on. * @param schemeName : The name to don't link (previously clicked). * @return a String listing player's schemes. The scheme currently on selection isn't linkable. */ private static String getPlayerSchemes(Player player, String schemeName) { final Map<String, ArrayList<Integer>> schemes = BufferTable.getInstance().getPlayerSchemes(player.getObjectId()); if (schemes == null || schemes.isEmpty()) return "Please create at least one scheme."; final StringBuilder sb = new StringBuilder(200); sb.append("<table>"); for (Map.Entry<String, ArrayList<Integer>> scheme : schemes.entrySet()) { if (schemeName.equalsIgnoreCase(scheme.getKey())) StringUtil.append(sb, "<tr><td width=200>", scheme.getKey(), " (<font color=\"LEVEL\">", scheme.getValue().size(), "</font> / ", Config.BUFFER_MAX_SKILLS, " skill(s))</td></tr>"); else StringUtil.append(sb, "<tr><td width=200><a action=\"bypass -h npc_%objectId%_editschemes none ", scheme.getKey(), "\">", scheme.getKey(), " (", scheme.getValue().size(), " / ", Config.BUFFER_MAX_SKILLS, " skill(s))</a></td></tr>"); } sb.append("</table>"); return sb.toString(); } /** * @param player : The player to make checks on. * @param groupType : The group of skills to select. * @param schemeName : The scheme to make check. * @return a String representing skills available to selection for a given groupType. */ private static String getGroupSkillList(Player player, String groupType, String schemeName) { final List<Integer> skills = new ArrayList<>(); for (int skillId : BufferTable.getSkillsIdsByType(groupType)) { if (BufferTable.getInstance().getSchemeContainsSkill(player.getObjectId(), schemeName, skillId)) continue; skills.add(skillId); } if (skills.isEmpty()) return "That group doesn't contain any skills."; final StringBuilder sb = new StringBuilder(500); sb.append("<table>"); int count = 0; for (int skillId : skills) { if (BufferTable.getInstance().getSchemeContainsSkill(player.getObjectId(), schemeName, skillId)) continue; if (count == 0) sb.append("<tr>"); if (skillId < 100) sb.append("<td width=180><font color=\"949490\"><a action=\"bypass -h npc_%objectId%_skillselect " + groupType + " " + schemeName + " " + skillId + "\">" + SkillTable.getInstance().getInfo(skillId, 1).getName() + "</a></font></td>"); else if (skillId < 1000) sb.append("<td width=180><font color=\"949490\"><a action=\"bypass -h npc_%objectId%_skillselect " + groupType + " " + schemeName + " " + skillId + "\">" + SkillTable.getInstance().getInfo(skillId, 1).getName() + "</a></font></td>"); else sb.append("<td width=180><font color=\"949490\"><a action=\"bypass -h npc_%objectId%_skillselect " + groupType + " " + schemeName + " " + skillId + "\">" + SkillTable.getInstance().getInfo(skillId, 1).getName() + "</a></font></td>"); count++; if (count == 2) { sb.append("</tr><tr><td></td></tr>"); count = 0; } } if (!sb.toString().endsWith("</tr>")) sb.append("</tr>"); sb.append("</table>"); return sb.toString(); } /** * @param player : The player to make checks on. * @param groupType : The group of skills to select. * @param schemeName : The scheme to make check. * @return a String representing a given scheme's content. */ private static String getPlayerSchemeSkillList(Player player, String groupType, String schemeName) { final List<Integer> skills = BufferTable.getInstance().getScheme(player.getObjectId(), schemeName); if (skills.isEmpty()) return "That scheme is empty."; final StringBuilder sb = new StringBuilder(500); sb.append("<table>"); int count = 0; for (int sk : skills) { if (count == 0) sb.append("<tr>"); if (sk < 100) sb.append("<td width=180><font color=\"6e6e6a\"><a action=\"bypass -h npc_%objectId%_skillunselect " + groupType + " " + schemeName + " " + sk + "\">" + SkillTable.getInstance().getInfo(sk, 1).getName() + "</a></font></td>"); else if (sk < 1000) sb.append("<td width=180><font color=\"6e6e6a\"><a action=\"bypass -h npc_%objectId%_skillunselect " + groupType + " " + schemeName + " " + sk + "\">" + SkillTable.getInstance().getInfo(sk, 1).getName() + "</a></font></td>"); else sb.append("<td width=180><font color=\"6e6e6a\"><a action=\"bypass -h npc_%objectId%_skillunselect " + groupType + " " + schemeName + " " + sk + "\">" + SkillTable.getInstance().getInfo(sk, 1).getName() + "</a></font></td>"); count++; if (count == 2) { sb.append("</tr><tr><td></td></tr>"); count = 0; } } if (!sb.toString().endsWith("<tr>")) sb.append("<tr>"); sb.append("</table>"); return sb.toString(); } /** * @param groupType : The group of skills to select. * @param schemeName : The scheme to make check. * @return a string representing all groupTypes availables. The group currently on selection isn't linkable. */ private static String getTypesFrame(String groupType, String schemeName) { final StringBuilder sb = new StringBuilder(500); sb.append("<table>"); int count = 0; for (String s : BufferTable.getSkillTypes()) { if (count == 0) sb.append("<tr>"); if (groupType.equalsIgnoreCase(s)) StringUtil.append(sb, "<td width=65>", s, "</td>"); else StringUtil.append(sb, "<td width=65><a action=\"bypass -h npc_%objectId%_editschemes ", s, " ", schemeName, "\">", s, "</a></td>"); count++; if (count == 4) { sb.append("</tr>"); count = 0; } } if (!sb.toString().endsWith("</tr>")) sb.append("</tr>"); sb.append("</table>"); return sb.toString(); } /** * @param list : A list of skill ids. * @return a global fee for all skills contained in list. */ private static int getFee(ArrayList<Integer> list) { if (Config.BUFFER_STATIC_BUFF_COST >= 0) return (list.size() * Config.BUFFER_STATIC_BUFF_COST); int fee = 0; for (int sk : list) { if (Config.BUFFER_BUFFLIST.get(sk) == null) continue; fee += Config.BUFFER_BUFFLIST.get(sk).getValue(); } return fee; } private void autoBuffFunction(Player player, String bufflist) { ArrayList<L2Skill> skills_to_buff = new ArrayList<>(); List<Integer> list = null; if (bufflist.equalsIgnoreCase("fighter")) list = Config.FIGHTER_SKILL_LIST; else if (bufflist.equalsIgnoreCase("mage")) list = Config.MAGE_SKILL_LIST; if (list != null) { for (int skillId : list) { L2Skill skill = SkillTable.getInstance().getInfo(skillId, SkillTable.getInstance().getMaxLevel(skillId)); if (skill != null) skills_to_buff.add(skill); } for (L2Skill sk : skills_to_buff) sk.getEffects(player, player); player.updateEffectIcons(); list = null; } skills_to_buff.clear(); showMainWindow(player); } }  
    • By odir
      Sou novo no forum e jogava l2, estes dias fiquei com vontade de montar um servidor.
      queria dicas por onde começar ja vi alguns videos do forum.
      eu segui o video e consegui por o servidor para rodar porem não consigo por ele online.
      abri as portas do modem criei conta no No IP fiz tudo como estava no video mais não deu ele so da para jogar em rede.
    • By L2 Grifinória
      Olá pessoal!
      Vou explicar um pouco do nosso server.

      GAME E COMANDOS
      RATES
      BUFFER
      ENCHANTS  
      POTIONS
      SIEGE
      OLYMPIADS 
      DYNASTY ITEMS 
      GRIFINORIA COIN 
      PREMIUM ACOUNT
      QUESTS RATES 
      RAID BOSS
    • By Albeci Nogueira
      Boa tarde..
      Procurei na source mas não encontrei onde posso alterar alguma coisa no Scroll of Scape, pois queria deixar infinito, até vi no forum ensinando, mas para frozen, e na acis não achei o arquivo ScrollofScape.java, pois deve ser diferente, se alguem souber fico agradecido.
  • Posts

×
×
  • Create New...