Ir para conteúdo
  • Cadastre-se

Sobre o TOP L2JBRASIL - Vote BOT até quando?


Licozo

Posts recomendados

Olá, sou administrador de servidor e uso vote bot em seu TOP, não gosto disso e nem precisaria (caso os outros não utilizassem), mas quero fazer um apelo para que você proíba o uso de Vote BOTs para o bem do seu próprio TOP e de todos os servidores sérios.


Acho que já passou da hora de punir esses parasitas porque pelo que eu vejo esta cada vez pior.


Veja bem o porque que isso é ruim para seu TOP:


1 - A posição do servidor não corresponde com a qualidade do mesmo, nem com a quantidade de players, nem com o trafego real gerado para o seu top (muitos nem mesmo colocam link de voto em seus sites, ficam apenas como parasitas no seu top, não gerando trafego nenhum e ao mesmo tempo congestionando o site)


2 - Descredibiliza o seu TOP. TODOS sabem quem tá usando Vote BOT ou não (server com 100 mil votos? lol), ou seja, seu TOP ficará conhecido por ADMs e players como um top zuado, onde só tem vote bot. Isso faz o TOP ficar mal falado entre todos o que com o tempo irá diminuir seus visitantes. Porque Hopzone e L2Topzone não param de crescer? Porque são tops sérios.


3 - Afasta novos servidores de registrarem. Um ADM (que não tem acesso a vote BOT ou grana pra isso), vê lá os 10 primeiros colocados com 100mil votos. A primeira coisa que ele faz é NÃO registrar no seu TOP. O resultado disso é que apenas 10 servidores dominam o top todo, fazendo com que as outras 200 posicões (que poderiam, cada uma, gerar um pouco de trafego), não gerem trafego nenhum para o seu site, nem comprem premium list, etc.


4 - Deixa o site lento. Me lembro do gs200 (antes de falir) nos primeiros dias do mes o site nem abria, pois é claro, 100 pessoas utilizando proxys com 100 conexões simultâneas. Vai querer que chegue a esse ponto?


5 - Quem usa VOT bot, compra banner e têm o link do top em seu site VAI CONTINUAR comprando banner e tendo o link no website caso proibam de se usar vote bot. Não é preciso banir ou excluir o servidor, apenas remova todos os votos e eles vão entender a mensagem de que não vai ter como mais usar. Caso façam de novo, remova de novo. Usar Vote BOT é CARO e ninuém vai querer ficar jogando dinheiro pro ar.


O que eu quero deixar claro com isso tudo é que não tem NENHUM ponto positivo em se deixar que as pessoas usem vote bot. O ÚNICO "problema", é que vai exigir mais trabalho por parte da administração do top, para averiguar e punir esses servers. Só isso. Mas veja bem se vale a pena.


Att,

Link para o comentário
Compartilhar em outros sites


É a coisa esta começando a pegar mal antes o povo não comprava muitos não uns 5k já era o bastante agora já estão nos 100k umas 3x que zerarem os votos eles já sucega a bunda kkkkkk

Link para o comentário
Compartilhar em outros sites

 

 

Sua sinceridade e honestidade são dignos de palmas :aplausos: .

 

Acredito que a administração já esteja ciente desses acontecimentos, aguardemos.

MINHA CAIXA DE MP NÃO É FÓRUM


DE DUVIDAS E PEDIDOS !


DUVIDAS: (CLIQUE AQUI) PEDIDOS: (CLIQUE AQUI)


sam-300x150.jpg

Link para o comentário
Compartilhar em outros sites

  • 3 months later...

Eles me responderam por email na época dizendo que estavam trabalhando em um super sistema anti-vot BOT (rs). Pois já se passou um tempo, cade? Vai deixar esses russos malditos ficarem dominando de forma suja o TOP? Eles devem é estar rindo por lá. Agora vai você, dono de servidor BR por seu server em um TOP russo pra ver o que acontece. Vai chover hacker e ataque DDoS no seu server. Tirando que esse negócio de Vote BOT só acontece em TOP LIXO (sem ofensas, estou aqui tentando ajudar a melhorar)

Editado por Grundor
Proibido divulgação, obrigado pelo exemplo.
Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM

Realmente é algo que temos lutado constantemente, tentamos manter nosso top o mais simples possível(sem exigir login para votar)

Porém os métodos convencionais não está conseguindo bloquear, pois ficou praticamente impossível descobrir qual voto ou não é válido.

 

Estou desenvolvendo um novo top e estou aceitando sugestões.

 

As denúncias sobre vote-bot podem ser feitas pelo email [email protected]

 

 

Grato.

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link para o comentário
Compartilhar em outros sites

 

Será que um Captcha Duplo não pode resolvar? ou pelo menos minimizar ?

 

Ou usar esse captcha do google?

http://prntscr.com/6btvwe

 

Se não estiver logado ele aparece esse captcha e se tiver logado não aparece. porém para não bugarem você poderia por os dois, quando tiver logado e deslogado.

 

ou faça algo que "se tal site está recebendo muitos votos consecutivos em poucos (segundos ou minutos) ou muitos votos no dia, ele fica banido ou impossibilitado de receber votos por determinado tempo X"

XD

Link para o comentário
Compartilhar em outros sites

Use Cloudflare, ele checa o navegador antes. Bom, eu vi que o Top100arena colocou cloudflare no TOP (antes de votar aparece "checking your browser...") e ao mesmo tempo ficou impossível votar usando vote bots. Tente isso, talvez funcione e é de graça.

 

É bem fácil saber quem está usando vote bot...

 

Uma ideia simples e ver a quantidade de votos diaria comparando com o tamanho do server, se é conhecido, populoso ou não. Para um server grande/enorme qualquer coisa acima de 1000 já é praticamente condenável.

 

Uma segunda ideia é ver de onde veem os IPs, se for por exemplo de paises nada a ver ou de um local só com certeza é proxy.

 

Uma terceira ideia é comparar a quantidade de votos que possuem no seu TOP com os demais TOPs (que vocês sabem que não é possivel usar Vot BOT), aí se por exemplo no seu tiver 100 mil e no outro 1000, ja sabe né?


A condig do cloudflare que estava falando deve ser esta (que ja vem ativada default): https://support.cloudflare.com/hc/en-us/articles/200170086

 

Se não for ela, pode ser o WAF: https://support.cloudflare.com/hc/en-us/articles/200172016

 

Também lembrei de um esquema que eu usava ha muito tempo em meu site para bloquear proxy. São umas regras para se colocar no .htacess do seu site. Essas regras irão bloquear todos os proxys e consequentemente os vote bots. Obs: pelo que eu me lembre ela bloqueia 90% ou mais dos proxys, porém existem alguns proxys que são chamados de "Elite" ou "High Annonymous", esses não são bloqueados, porém são muito caros e existem muito poucos, acredito que ninguém vá conseguir votar.

RewriteEngine on 
RewriteCond %{HTTP:XROXY_CONNECTION} !^$ [OR] 
RewriteCond %{HTTP:X-FORWARDED-FOR} !^$ [OR] 
RewriteCond %{HTTP:FORWARDED-FOR} !^$ [OR] 
RewriteCond %{HTTP:X-FORWARDED} !^$ [OR] 
RewriteCond %{HTTP:VIA} !^$ [OR] 
RewriteCond %{HTTP:FORWARDED} !^$ [OR] 
RewriteCond %{HTTP:USERAGENT_VIA} !^$ [OR] 
RewriteCond %{HTTP:X_FORWARDED_FOR} !^$ [OR] 
RewriteCond %{HTTP:PROXY_CONNECTION} !^$ [OR] 
RewriteCond %{HTTP:XPROXY_CONNECTION} !^$ [OR] 
RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR] 
RewriteCond %{HTTP:HTTP_CLIENT_IP} !^$ 
RewriteRule ^(.*)$ - [F]

Se caso fizer alguma modificação e precisar de alguém que teste estou à disposição.

Editado por Licozo
Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM

Use Cloudflare, ele checa o navegador antes. Bom, eu vi que o Top100arena colocou cloudflare no TOP (antes de votar aparece "checking your browser...") e ao mesmo tempo ficou impossível votar usando vote bots. Tente isso, talvez funcione e é de graça.

 

É bem fácil saber quem está usando vote bot...

 

Uma ideia simples e ver a quantidade de votos diaria comparando com o tamanho do server, se é conhecido, populoso ou não. Para um server grande/enorme qualquer coisa acima de 1000 já é praticamente condenável.

 

Uma segunda ideia é ver de onde veem os IPs, se for por exemplo de paises nada a ver ou de um local só com certeza é proxy.

 

Uma terceira ideia é comparar a quantidade de votos que possuem no seu TOP com os demais TOPs (que vocês sabem que não é possivel usar Vot BOT), aí se por exemplo no seu tiver 100 mil e no outro 1000, ja sabe né?

A condig do cloudflare que estava falando deve ser esta (que ja vem ativada default): https://support.cloudflare.com/hc/en-us/articles/200170086

 

Se não for ela, pode ser o WAF: https://support.cloudflare.com/hc/en-us/articles/200172016

 

Também lembrei de um esquema que eu usava ha muito tempo em meu site para bloquear proxy. São umas regras para se colocar no .htacess do seu site. Essas regras irão bloquear todos os proxys e consequentemente os vote bots. Obs: pelo que eu me lembre ela bloqueia 90% ou mais dos proxys, porém existem alguns proxys que são chamados de "Elite" ou "High Annonymous", esses não são bloqueados, porém são muito caros e existem muito poucos, acredito que ninguém vá conseguir votar.

RewriteEngine on 
RewriteCond %{HTTP:XROXY_CONNECTION} !^$ [OR] 
RewriteCond %{HTTP:X-FORWARDED-FOR} !^$ [OR] 
RewriteCond %{HTTP:FORWARDED-FOR} !^$ [OR] 
RewriteCond %{HTTP:X-FORWARDED} !^$ [OR] 
RewriteCond %{HTTP:VIA} !^$ [OR] 
RewriteCond %{HTTP:FORWARDED} !^$ [OR] 
RewriteCond %{HTTP:USERAGENT_VIA} !^$ [OR] 
RewriteCond %{HTTP:X_FORWARDED_FOR} !^$ [OR] 
RewriteCond %{HTTP:PROXY_CONNECTION} !^$ [OR] 
RewriteCond %{HTTP:XPROXY_CONNECTION} !^$ [OR] 
RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR] 
RewriteCond %{HTTP:HTTP_CLIENT_IP} !^$ 
RewriteRule ^(.*)$ - [F]

Se caso fizer alguma modificação e precisar de alguém que teste estou à disposição.

 

Obrigado pela colaboração, vou averiguar.

 

 

Infelizmente não usamos o apache então código acima não serve para gente.

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link para o comentário
Compartilhar em outros sites

Muitos amigos reclamaram que os sites foram removidos dos Rank top.l2jbrasil ate mesmo os que pagaram banner. O rank deveria ter proteção contra bot e não remover os servidores pois acaba com a credibilidade do rank e vai acabar como o gamesites200, só acho.

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM

O que eu removi foram os votos não válidos, no caso de alguns sites acabou sendo todo os votos ;)

 

Enquanto não tiver uma proteção confiável(que já está em desenvolvimento) eu peguei nas últimas 72horas mais de 200 ips e todos os votos vindo desses ips serão removidos todos os dias.

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM

Ontem eu desenvolvi uma proteção contra o vote-bot "VOTER", e possívelmente contra outros vote-bots também.

 

Vou deixar o tópico fechado, caso tenham alguma dúvida entre em contato [email protected]

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Registre-se

    Faça parte da maior e  mais antigas comunidades sobre Lineage2 da América Latina.





  • Patrocinadores

  • Quem Está Navegando

    • Nenhum usuário registrado visualizando esta página.
  • Posts

    • Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?    
    • muchas gracias muy lindos NPC 🙂
    • relaxa jovem gafanhoto, testa as quests. e posTa os erros indesejaveis.  
    • Se alguém pudesse me ensinar como codificar as missões, eu ficaria feliz em fazer isso sozinho ou pelo menos ajudar. Eu realmente quero jogar em um servidor onde todas as quests funcionem bem e melhor ainda se você puder fazer quests customizadas!
    • mas no interlude, nem todas as quests de class,  vai mostrar onde tem que ir, ate o reborn nao mostrava quando era interlude, só mostrou depois que eles colocaram client classic pra rodar, e ficou melhor ainda quando virou hellbound em diante, mas ha sim alguma chance de modificar isso direto no script para fazer igualmente, só basta te um pouco de paciencia e persistencia exato
    • 408_PathToElvenwizard dá Orion eu tive que mexer tbm, até modifiquei e consegui deixar ela igual do Classic, com a seta e a marcação no mapa. (não retail IL) Dá pra importar py de várias revs, o foda é que não da regular as quest py através do debug em tempo real, pelo menos eu não consegui rsrs
    • Hasta el momento todas las QUESTS son completables si te guias con un tutorial de youtube. El problema es que tienen bugs de locacion y de subquests que no avanzan o no te marcan correctamente a donde ir en el mapa, cosa que en Retail si se ve como corresponde.
    • estranho, mas pelo menos a galera nunca reclamo das quests quando tinha aberto 5x, geral fez class primeira e segunda job, poucos que compraram a class
    • en RUSaCis-3.5 data pack, las Quests estan en formato .java y son diferentes a como estan redactadas en jOrion y jFrozen 1.5 (ProyectX) package net.sf.l2j.gameserver.scripting.quest; import net.sf.l2j.commons.random.Rnd; import net.sf.l2j.gameserver.enums.Paperdoll; import net.sf.l2j.gameserver.enums.QuestStatus; import net.sf.l2j.gameserver.enums.actors.ClassId; import net.sf.l2j.gameserver.model.actor.Creature; import net.sf.l2j.gameserver.model.actor.Npc; import net.sf.l2j.gameserver.model.actor.Player; import net.sf.l2j.gameserver.network.serverpackets.SocialAction; import net.sf.l2j.gameserver.scripting.QuestState; public class Q224_TestOfSagittarius extends SecondClassQuest { private static final String QUEST_NAME = "Q224_TestOfSagittarius"; // Items private static final int BERNARD_INTRODUCTION = 3294; private static final int HAMIL_LETTER_1 = 3295; private static final int HAMIL_LETTER_2 = 3296; private static final int HAMIL_LETTER_3 = 3297; private static final int HUNTER_RUNE_1 = 3298; private static final int HUNTER_RUNE_2 = 3299; private static final int TALISMAN_OF_KADESH = 3300; private static final int TALISMAN_OF_SNAKE = 3301; private static final int MITHRIL_CLIP = 3302; private static final int STAKATO_CHITIN = 3303; private static final int REINFORCED_BOWSTRING = 3304; private static final int MANASHEN_HORN = 3305; private static final int BLOOD_OF_LIZARDMAN = 3306; private static final int CRESCENT_MOON_BOW = 3028; private static final int WOODEN_ARROW = 17; // Rewards private static final int MARK_OF_SAGITTARIUS = 3293; // NPCs private static final int BERNARD = 30702; private static final int HAMIL = 30626; private static final int SIR_ARON_TANFORD = 30653; private static final int VOKIAN = 30514; private static final int GAUEN = 30717; // Monsters private static final int ANT = 20079; private static final int ANT_CAPTAIN = 20080; private static final int ANT_OVERSEER = 20081; private static final int ANT_RECRUIT = 20082; private static final int ANT_PATROL = 20084; private static final int ANT_GUARD = 20086; private static final int NOBLE_ANT = 20089; private static final int NOBLE_ANT_LEADER = 20090; private static final int BREKA_ORC_SHAMAN = 20269; private static final int BREKA_ORC_OVERLORD = 20270; private static final int MARSH_STAKATO_WORKER = 20230; private static final int MARSH_STAKATO_SOLDIER = 20232; private static final int MARSH_STAKATO_DRONE = 20234; private static final int MARSH_SPIDER = 20233; private static final int ROAD_SCAVENGER = 20551; private static final int MANASHEN_GARGOYLE = 20563; private static final int LETO_LIZARDMAN = 20577; private static final int LETO_LIZARDMAN_ARCHER = 20578; private static final int LETO_LIZARDMAN_SOLDIER = 20579; private static final int LETO_LIZARDMAN_WARRIOR = 20580; private static final int LETO_LIZARDMAN_SHAMAN = 20581; private static final int LETO_LIZARDMAN_OVERLORD = 20582; private static final int SERPENT_DEMON_KADESH = 27090; public Q224_TestOfSagittarius() { super(224, "Test Of Sagittarius"); setItemsIds(BERNARD_INTRODUCTION, HAMIL_LETTER_1, HAMIL_LETTER_2, HAMIL_LETTER_3, HUNTER_RUNE_1, HUNTER_RUNE_2, TALISMAN_OF_KADESH, TALISMAN_OF_SNAKE, MITHRIL_CLIP, STAKATO_CHITIN, REINFORCED_BOWSTRING, MANASHEN_HORN, BLOOD_OF_LIZARDMAN, CRESCENT_MOON_BOW); addQuestStart(BERNARD); addTalkId(BERNARD, HAMIL, SIR_ARON_TANFORD, VOKIAN, GAUEN); addMyDying(ANT, ANT_CAPTAIN, ANT_OVERSEER, ANT_RECRUIT, ANT_PATROL, ANT_GUARD, NOBLE_ANT, NOBLE_ANT_LEADER, BREKA_ORC_SHAMAN, BREKA_ORC_OVERLORD, MARSH_STAKATO_WORKER, MARSH_STAKATO_SOLDIER, MARSH_STAKATO_DRONE, MARSH_SPIDER, ROAD_SCAVENGER, MANASHEN_GARGOYLE, LETO_LIZARDMAN, LETO_LIZARDMAN_ARCHER, LETO_LIZARDMAN_SOLDIER, LETO_LIZARDMAN_WARRIOR, LETO_LIZARDMAN_SHAMAN, LETO_LIZARDMAN_OVERLORD, SERPENT_DEMON_KADESH); } @Override public String onAdvEvent(String event, Npc npc, Player player) { String htmltext = event; QuestState st = player.getQuestList().getQuestState(QUEST_NAME); if (st == null) return htmltext; // BERNARD if (event.equalsIgnoreCase("30702-04.htm")) { st.setState(QuestStatus.STARTED); st.setCond(1); playSound(player, SOUND_ACCEPT); giveItems(player, BERNARD_INTRODUCTION, 1); if (giveDimensionalDiamonds39(player)) htmltext = "30702-04a.htm"; } // HAMIL else if (event.equalsIgnoreCase("30626-03.htm")) { st.setCond(2); playSound(player, SOUND_MIDDLE); takeItems(player, BERNARD_INTRODUCTION, 1); giveItems(player, HAMIL_LETTER_1, 1); } else if (event.equalsIgnoreCase("30626-07.htm")) { st.setCond(5); playSound(player, SOUND_MIDDLE); takeItems(player, HUNTER_RUNE_1, 10); giveItems(player, HAMIL_LETTER_2, 1); } // SIR_ARON_TANFORD else if (event.equalsIgnoreCase("30653-02.htm")) { st.setCond(3); playSound(player, SOUND_MIDDLE); takeItems(player, HAMIL_LETTER_1, 1); } // VOKIAN else if (event.equalsIgnoreCase("30514-02.htm")) { st.setCond(6); playSound(player, SOUND_MIDDLE); takeItems(player, HAMIL_LETTER_2, 1); } return htmltext; } @Override public String onTalk(Npc npc, Player player) { String htmltext = getNoQuestMsg(); QuestState st = player.getQuestList().getQuestState(QUEST_NAME); if (st == null) return htmltext; switch (st.getState()) { case CREATED: if (player.getClassId() != ClassId.ROGUE && player.getClassId() != ClassId.ELVEN_SCOUT && player.getClassId() != ClassId.ASSASSIN) htmltext = "30702-02.htm"; else if (player.getStatus().getLevel() < 39) htmltext = "30702-01.htm"; else htmltext = "30702-03.htm"; break; case STARTED: int cond = st.getCond(); switch (npc.getNpcId()) { case BERNARD: htmltext = "30702-05.htm"; break; case HAMIL: if (cond == 1) htmltext = "30626-01.htm"; else if (cond == 2 || cond == 3) htmltext = "30626-04.htm"; else if (cond == 4) htmltext = "30626-05.htm"; else if (cond > 4 && cond < 8) htmltext = "30626-08.htm"; else if (cond == 8) { htmltext = "30626-09.htm"; st.setCond(9); playSound(player, SOUND_MIDDLE); takeItems(player, HUNTER_RUNE_2, 10); giveItems(player, HAMIL_LETTER_3, 1); } else if (cond > 8 && cond < 12) htmltext = "30626-10.htm"; else if (cond == 12) { htmltext = "30626-11.htm"; st.setCond(13); playSound(player, SOUND_MIDDLE); } else if (cond == 13) htmltext = "30626-12.htm"; else if (cond == 14) { htmltext = "30626-13.htm"; takeItems(player, BLOOD_OF_LIZARDMAN, -1); takeItems(player, CRESCENT_MOON_BOW, 1); takeItems(player, TALISMAN_OF_KADESH, 1); giveItems(player, MARK_OF_SAGITTARIUS, 1); rewardExpAndSp(player, 54726, 20250); player.broadcastPacket(new SocialAction(player, 3)); playSound(player, SOUND_FINISH); st.exitQuest(false); } break; case SIR_ARON_TANFORD: if (cond == 2) htmltext = "30653-01.htm"; else if (cond > 2) htmltext = "30653-03.htm"; break; case VOKIAN: if (cond == 5) htmltext = "30514-01.htm"; else if (cond == 6) htmltext = "30514-03.htm"; else if (cond == 7) { htmltext = "30514-04.htm"; st.setCond(8); playSound(player, SOUND_MIDDLE); takeItems(player, TALISMAN_OF_SNAKE, 1); } else if (cond > 7) htmltext = "30514-05.htm"; break; case GAUEN: if (cond == 9) { htmltext = "30717-01.htm"; st.setCond(10); playSound(player, SOUND_MIDDLE); takeItems(player, HAMIL_LETTER_3, 1); } else if (cond == 10) htmltext = "30717-03.htm"; else if (cond == 11) { htmltext = "30717-02.htm"; st.setCond(12); playSound(player, SOUND_MIDDLE); takeItems(player, MANASHEN_HORN, 1); takeItems(player, MITHRIL_CLIP, 1); takeItems(player, REINFORCED_BOWSTRING, 1); takeItems(player, STAKATO_CHITIN, 1); giveItems(player, CRESCENT_MOON_BOW, 1); giveItems(player, WOODEN_ARROW, 10); } else if (cond > 11) htmltext = "30717-04.htm"; break; } break; case COMPLETED: htmltext = getAlreadyCompletedMsg(); break; } return htmltext; } @Override public void onMyDying(Npc npc, Creature killer) { final Player player = killer.getActingPlayer(); final QuestState st = checkPlayerState(player, npc, QuestStatus.STARTED); if (st == null) return; switch (npc.getNpcId()) { case ANT: case ANT_CAPTAIN: case ANT_OVERSEER: case ANT_RECRUIT: case ANT_PATROL: case ANT_GUARD: case NOBLE_ANT: case NOBLE_ANT_LEADER: if (st.getCond() == 3 && dropItems(player, HUNTER_RUNE_1, 1, 10, 500000)) st.setCond(4); break; case BREKA_ORC_SHAMAN: case BREKA_ORC_OVERLORD: if (st.getCond() == 6 && dropItems(player, HUNTER_RUNE_2, 1, 10, 500000)) { st.setCond(7); giveItems(player, TALISMAN_OF_SNAKE, 1); } break; case MARSH_STAKATO_WORKER: case MARSH_STAKATO_SOLDIER: case MARSH_STAKATO_DRONE: if (st.getCond() == 10 && dropItems(player, STAKATO_CHITIN, 1, 1, 100000) && player.getInventory().hasItems(MANASHEN_HORN, MITHRIL_CLIP, REINFORCED_BOWSTRING)) st.setCond(11); break; case MARSH_SPIDER: if (st.getCond() == 10 && dropItems(player, REINFORCED_BOWSTRING, 1, 1, 100000) && player.getInventory().hasItems(MANASHEN_HORN, MITHRIL_CLIP, STAKATO_CHITIN)) st.setCond(11); break; case ROAD_SCAVENGER: if (st.getCond() == 10 && dropItems(player, MITHRIL_CLIP, 1, 1, 100000) && player.getInventory().hasItems(MANASHEN_HORN, REINFORCED_BOWSTRING, STAKATO_CHITIN)) st.setCond(11); break; case MANASHEN_GARGOYLE: if (st.getCond() == 10 && dropItems(player, MANASHEN_HORN, 1, 1, 100000) && player.getInventory().hasItems(REINFORCED_BOWSTRING, MITHRIL_CLIP, STAKATO_CHITIN)) st.setCond(11); break; case LETO_LIZARDMAN: case LETO_LIZARDMAN_ARCHER: case LETO_LIZARDMAN_SOLDIER: case LETO_LIZARDMAN_WARRIOR: case LETO_LIZARDMAN_SHAMAN: case LETO_LIZARDMAN_OVERLORD: if (st.getCond() == 13) { if (((player.getInventory().getItemCount(BLOOD_OF_LIZARDMAN) - 120) * 5) > Rnd.get(100)) { playSound(player, SOUND_BEFORE_BATTLE); takeItems(player, BLOOD_OF_LIZARDMAN, -1); addSpawn(SERPENT_DEMON_KADESH, player, false, 300000, true); } else dropItemsAlways(player, BLOOD_OF_LIZARDMAN, 1, 0); } break; case SERPENT_DEMON_KADESH: if (st.getCond() == 13) { if (player.getInventory().getItemIdFrom(Paperdoll.RHAND) == CRESCENT_MOON_BOW) { st.setCond(14); playSound(player, SOUND_MIDDLE); giveItems(player, TALISMAN_OF_KADESH, 1); } else addSpawn(SERPENT_DEMON_KADESH, player, false, 300000, true); } break; } } }  
×
×
  • Criar Novo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.