Ir para conteúdo
  • Cadastre-se

[Proteção] - Anti-Cheat Guard 1.8


MrFreedomFights

Posts recomendados

  • 5 months later...

  • 1 year later...
  • 2 weeks later...

 

 

Tbm tentei aq e n deu conexão

 

Não, é só seguir o mini tutorial que eu fiz no tópico.

 

nao conseguir liga-lo !

 

Segue o mini tutorial que fiz no tópico que vai dar certo.

 

link of ?

 

Link ONLINE, testado.

pD5PSQp.png

" Você nunca sabe que resultados virão de suas ações, mas se você não fizer nada, não existirão resultados"

 

 

Link para o comentário
Compartilhar em outros sites

MR se tiver WhatsApp chama lá 61 8450-9348 quero tirar uma duvida

 

Tiro as duvidas somente aqui no fórum.

pD5PSQp.png

" Você nunca sabe que resultados virão de suas ações, mas se você não fizer nada, não existirão resultados"

 

 

Link para o comentário
Compartilhar em outros sites

Não estou conseguindo abrir ele . minha rev e frozen

 

Eu testei em Frozen, segue o mini tutorial no tópico.

pD5PSQp.png

" Você nunca sabe que resultados virão de suas ações, mas se você não fizer nada, não existirão resultados"

 

 

Link para o comentário
Compartilhar em outros sites

Já conseguiram fixa ela na system ? Pra só logar com a system do serve ? Ligada com login serve ?

 

Isso ainda não, mais ela ainda é eficiente.

pD5PSQp.png

" Você nunca sabe que resultados virão de suas ações, mas se você não fizer nada, não existirão resultados"

 

 

Link para o comentário
Compartilhar em outros sites

  • 4 weeks later...

ai sim, ótimo programa. mesmo sendo burlavél! ajuda no começo!

más gostaria de saber, se alguém já conseguiu deixar ele fixo com o servidor? "sendo assim não poderas trocar a system"

É possível mudar protocolo, integrar com outras proteções que travam a system no core e etc, porém de um jeito ou de outro essa "proteção" é burlável e não protege contra os hacks atuais, além de ser antiga ela tem algumas falhas que qualquer player mal intencionado com o mínimo de experiencia em burlar proteções consegue inutilizar...

 

Este tópico foi criado em 2012, e esta proteção é mais antiga... +/- agosto/2011

 

Infelizmente proteção de l2 é sempre assim: 1 criando e 20 burlando...

Editado por Wallace Carvalho

Caso tenha alguma sugestão para aplicativos, por favor envie por MP.

 WhatsApp: 22 98156-2591 

L2JDREAM PROJECT

Link para o comentário
Compartilhar em outros sites

Ah nunca para né mano, é criar proteção boa! Pra durar no maximo 6 meses, os caras já burla! foda. isso se não for antes!

más só perguntei más pra saber de um andamento mesmo, até pq só ia por ela por ajudar um pouco.. pq o servidor vai ser pra mim e amigos mesmo!

Link para o comentário
Compartilhar em outros sites

  • 2 months later...
  • 2 weeks later...

Aqui não passa da tela de loguin :/ pra poder entrar no server..

 

Siga os passos corretamente como eu escrevi no próprio tópico, logo você vai substituir o seu "Login Server" por esse sistema de proteção compreendeu ? sem dificuldades :)

pD5PSQp.png

" Você nunca sabe que resultados virão de suas ações, mas se você não fizer nada, não existirão resultados"

 

 

Link para o comentário
Compartilhar em outros sites

 

Siga os passos corretamente como eu escrevi no próprio tópico, logo você vai substituir o seu "Login Server" por esse sistema de proteção compreendeu ? sem dificuldades :)

Mais do que eu já fiz ... fiz e refiz seguindo esse seu tuto ai ... e nd.!

Link para o comentário
Compartilhar em outros sites

Mais do que eu já fiz ... fiz e refiz seguindo esse seu tuto ai ... e nd.!

 

Poste o erro que você está tendo na área de dúvidas e me mande o link, vou tentar te ajudar..

pD5PSQp.png

" Você nunca sabe que resultados virão de suas ações, mas se você não fizer nada, não existirão resultados"

 

 

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Ainda boa esse proteção ou ja existem outras melhores ?

 

 

Vi essa proteção em um site russo, baixei e testei e é ótima porém é burlável, é

só trocar a system que a proteção some, porém ela é muito boa. Protege contra vários hackers.

IJ9hA.png

Proteção

 

Configuração

arquivo options.ini

 

arquivo options_apu.ini

 

Arquivo n_prop.ini (Está na system)

 

É burlável o sistema, mas dá pra fixar a system. pra quem ai do fórum que sabe modificar o protocol revision seria muito bom que modificasse, assim a system fica fixa ao servidor com a proteção.


1517009001_9c068526c8_o.gif

Créditos

Programa feito e atualizado por: Enhiridion

Tópico: MrFreedomFights

 

Link para o comentário
Compartilhar em outros sites

Ainda boa esse proteção ou ja existem outras melhores ?

 

 

Não precisa dar Quote no tópico inteiro jovem, a proteção é sim funcional, porém não é fixa na system ou no servidor trocando a system ela some, porém se você souber uma forma de fixar ela na system, através de protocolo ou aliás ai ela fica fixa no servidor..

pD5PSQp.png

" Você nunca sabe que resultados virão de suas ações, mas se você não fizer nada, não existirão resultados"

 

 

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

Mr eu uso seu projeto e gostei muito mesmo só tem um probleminha e não sei se você poderia me ajudar, ele esta sem protecões o L2Tower bot funcionou de primeira no server, você poderia me ajudar com as protecões do Guardian, não quero desistir desse projeto gostei muito dele ^^

Link para o comentário
Compartilhar em outros sites

Mr eu uso seu projeto e gostei muito mesmo só tem um probleminha e não sei se você poderia me ajudar, ele esta sem protecões o L2Tower bot funcionou de primeira no server, você poderia me ajudar com as protecões do Guardian, não quero desistir desse projeto gostei muito dele ^^

 

BOT Tower funciona com qualquer anti-bot, eu mesmo uso ele em servidores com smart-guard, vote-games.. Anti-bot só serve se for atualizado constantemente, o meu projeto está com várias proteções e correções, tem também o próprio anti-bot da frozen nele que funciona normalmente..

Editado por MrFreedomFights

pD5PSQp.png

" Você nunca sabe que resultados virão de suas ações, mas se você não fizer nada, não existirão resultados"

 

 

Link para o comentário
Compartilhar em outros sites

 

BOT Tower funciona com qualquer anti-bot, eu mesmo uso ele em servidores com smart-guard, vote-games.. Anti-bot só serve se for atualizado constantemente, o meu projeto está com várias proteções e correções, tem também o próprio anti-bot da frozen nele que funciona normalmente..

Mr desculpe por ter citado, mas eu tou com problema, segui o tutorial vi os comentarios e tentei fazer tudo correto e continua o erro "Can't connect to server!" Não sei mais o que fazer eu ja tentei aqui no meu pc com o 127.0... funcionou normalmente so que quando tento no dc da esse erro ja mudei na system a l2 ini e o n_prop com o ip do dedicado e nada obs: (Estou testando com o login e o game off ) porque ja tentei com eles on e n funciona mesma coisa .

Link para o comentário
Compartilhar em outros sites

Mr desculpe por ter citado, mas eu tou com problema, segui o tutorial vi os comentarios e tentei fazer tudo correto e continua o erro "Can't connect to server!" Não sei mais o que fazer eu ja tentei aqui no meu pc com o 127.0... funcionou normalmente so que quando tento no dc da esse erro ja mudei na system a l2 ini e o n_prop com o ip do dedicado e nada obs: (Estou testando com o login e o game off ) porque ja tentei com eles on e n funciona mesma coisa .

 

Você sabe que tem que substituir o Login Server pela proteção né ? feito isso você liga a proteção e depois o Game Server. Outra coisa que você deve lembrar é de configurar todos os arquivos, tem muitos arquivos para serem configurados, são esses:

 

l2.ini
n_prop.ini
options.ini
options_apu.ini

 

Todos tem que estar com as mesmas configurações de IP, veja também se você não está Forçando o GG Auth do Servidor e também verifique se as portas que são necessárias estão abertas.

pD5PSQp.png

" Você nunca sabe que resultados virão de suas ações, mas se você não fizer nada, não existirão resultados"

 

 

Link para o comentário
Compartilhar em outros sites

 

 

 

Você sabe que tem que substituir o Login Server pela proteção né ? feito isso você liga a proteção e depois o Game Server. Outra coisa que você deve lembrar é de configurar todos os arquivos, tem muitos arquivos para serem configurados, são esses:

l2.ini
n_prop.ini
options.ini
options_apu.ini

Todos tem que estar com as mesmas configurações de IP, veja também se você não está Forçando o GG Auth do Servidor e também verifique se as portas que são necessárias estão abertas.

 

 

Malz pelo flood no teu tópico so que eu gostei dessa proteção e gostaria de colocar no meu server ta aqui as configs

 

 

#=============================================================
# Loginserver
#=============================================================
# This is transmitted to the clients connecting from an external network, so it has to be a public IP or resolvable hostname
ExternalHostname = 199.101.187.163
# This is transmitted to the client from the same network, so it has to be a local IP or resolvable hostname
InternalHostname = 199.101.187.163
# Bind ip of the LoginServer, use * to bind on all available IPs
LoginserverHostname = 199.101.187.163
LoginserverPort = 2106
# How many times you can provide an invalid account/pass before the IP gets banned
LoginTryBeforeBan = 3
# Time you won't be able to login back again after LoginTryBeforeBan tries to login. Provide a value in seconds. Default 10min. (600)
LoginBlockAfterBan = 600
# The address on which login will listen for GameServers, use * to bind on all available IPs
LoginHostname = *
# The port on which login will listen for GameServers
LoginPort = 9014
# If set to true any GameServer can register on your login's free slots
AcceptNewGameServer = True
# If false, the licence (after the login) will not be shown
# It is highly recomended for Account Security to leave this option as default (True)
ShowLicence = True
#=============================================================
# Database informations
#=============================================================
URL = jdbc:mysql://localhost/l2jclassico
#URL = jdbc:hsqldb:hsql://localhost/acis
#URL = jdbc:sqlserver://localhost/database=acis/user=sa/password=
Login = root
Password = 1230123
MaximumDbConnections = 10
# Usable values: "true" - "false", use this option to choose whether accounts will be created automatically or not.
AutoCreateAccounts = True
#=============================================================
# Security
#=============================================================
# Log all events from loginserver (account creation, failed/success login, etc)
LogLoginController = True
# FloodProtection. time in ms
EnableFloodProtection = True
FastConnectionLimit = 15
NormalConnectionTime = 700
FastConnectionTime = 350
MaxConnectionPerIP = 50
#=============================================================
# Test server, shoudnt be touched in live server
#=============================================================
Debug = False
Developer = False
PacketHandlerDebug = False

gameserver

# ================================================================
# Gameserver setting
# ================================================================
# Bind ip of the gameserver, use * to bind on all available IPs.
GameserverHostname = *
GameserverPort = 7777
# This is transmitted to the clients connecting from an external network, so it has to be a public IP or resolvable hostname
# If this ip is resolvable by Login just leave *
ExternalHostname = 199.101.187.163
# This is transmitted to the client from the same network, so it has to be a local IP or resolvable hostname.
# If this ip is resolvable by Login just leave *
InternalHostname = 199.101.187.163
# The Loginserver host and port.
LoginPort = 9014
LoginHost = 127.0.0.1
# 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
# ================================================================
# Database informations
# ================================================================
URL = jdbc:mysql://localhost/l2jclassico
#URL = jdbc:hsqldb:hsql://localhost/acis
#URL = jdbc:sqlserver://localhost/database=acis/user=sa/password=
Login = root
Password = 1230123
# Maximum database connections (minimum 2, basically 10 if number under 10, default 100).
MaximumDbConnections = 100
# Idle connections expiration time (0 = never expire, default).
MaximumDbIdleTime = 0

apu

 

 

 

##################### Anti-Cheat Guard APU ######################
TCP_PORT1 = 2106
TCP_PORT2 = 9014
LoginServer IP = 127.0.0.1

TA DIZENDO QUE NÃO TEM LOGIN SERVER ABERTO NO GAME, E EU COLOQUEI TODOS OS ARQUIVOS NO LOGIN SERVER SO NO RENOMEIE O STARTCGC PARA LOGINSERVER . mas so ta o start e o game abertos .
Link para o comentário
Compartilhar em outros sites

 

 

 

 

 

Malz pelo flood no teu tópico so que eu gostei dessa proteção e gostaria de colocar no meu server ta aqui as configs

 

 

 

 

#=============================================================
# Loginserver
#=============================================================
# This is transmitted to the clients connecting from an external network, so it has to be a public IP or resolvable hostname
ExternalHostname = 199.101.187.163
# This is transmitted to the client from the same network, so it has to be a local IP or resolvable hostname
InternalHostname = 199.101.187.163
# Bind ip of the LoginServer, use * to bind on all available IPs
LoginserverHostname = 199.101.187.163
LoginserverPort = 2106
# How many times you can provide an invalid account/pass before the IP gets banned
LoginTryBeforeBan = 3
# Time you won't be able to login back again after LoginTryBeforeBan tries to login. Provide a value in seconds. Default 10min. (600)
LoginBlockAfterBan = 600
# The address on which login will listen for GameServers, use * to bind on all available IPs
LoginHostname = *
# The port on which login will listen for GameServers
LoginPort = 9014
# If set to true any GameServer can register on your login's free slots
AcceptNewGameServer = True
# If false, the licence (after the login) will not be shown
# It is highly recomended for Account Security to leave this option as default (True)
ShowLicence = True
#=============================================================
# Database informations
#=============================================================
URL = jdbc:mysql://localhost/l2jclassico
#URL = jdbc:hsqldb:hsql://localhost/acis
#URL = jdbc:sqlserver://localhost/database=acis/user=sa/password=
Login = root
Password = 1230123
MaximumDbConnections = 10
# Usable values: "true" - "false", use this option to choose whether accounts will be created automatically or not.
AutoCreateAccounts = True
#=============================================================
# Security
#=============================================================
# Log all events from loginserver (account creation, failed/success login, etc)
LogLoginController = True
# FloodProtection. time in ms
EnableFloodProtection = True
FastConnectionLimit = 15
NormalConnectionTime = 700
FastConnectionTime = 350
MaxConnectionPerIP = 50
#=============================================================
# Test server, shoudnt be touched in live server
#=============================================================
Debug = False
Developer = False
PacketHandlerDebug = False

gameserver

# ================================================================
# Gameserver setting
# ================================================================
# Bind ip of the gameserver, use * to bind on all available IPs.
GameserverHostname = *
GameserverPort = 7777
# This is transmitted to the clients connecting from an external network, so it has to be a public IP or resolvable hostname
# If this ip is resolvable by Login just leave *
ExternalHostname = 199.101.187.163
# This is transmitted to the client from the same network, so it has to be a local IP or resolvable hostname.
# If this ip is resolvable by Login just leave *
InternalHostname = 199.101.187.163
# The Loginserver host and port.
LoginPort = 9014
LoginHost = 127.0.0.1
# 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
# ================================================================
# Database informations
# ================================================================
URL = jdbc:mysql://localhost/l2jclassico
#URL = jdbc:hsqldb:hsql://localhost/acis
#URL = jdbc:sqlserver://localhost/database=acis/user=sa/password=
Login = root
Password = 1230123
# Maximum database connections (minimum 2, basically 10 if number under 10, default 100).
MaximumDbConnections = 100
# Idle connections expiration time (0 = never expire, default).
MaximumDbIdleTime = 0

apu

 

 

 

##################### Anti-Cheat Guard APU ######################
TCP_PORT1 = 2106
TCP_PORT2 = 9014
LoginServer IP = 127.0.0.1

TA DIZENDO QUE NÃO TEM LOGIN SERVER ABERTO NO GAME, E EU COLOQUEI TODOS OS ARQUIVOS NO LOGIN SERVER SO NO RENOMEIE O STARTCGC PARA LOGINSERVER . mas so ta o start e o game abertos .

 

 

Não mecha no nome dos arquivos, as vezes pode acontecer de bugar ou parar de funcionar, outra coisa também é ali onde ta 127.0.0.1 coloca o IP do servidor também.. como alguém vai logar em um servidor Offline ?

pD5PSQp.png

" Você nunca sabe que resultados virão de suas ações, mas se você não fizer nada, não existirão resultados"

 

 

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
  • 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.