Ir para conteúdo
  • Cadastre-se

[Tutorial] Criando Servidor de Lineage 2


Kelvin
Message added by Grundor

Atenção, esse tópico está desatualizado, use https://curso.l2jbrasil.com para um tutorial mais atualizado sobre como criar seu servidor de lineage 2.

Posts recomendados

to com uma duvida aqui..

quero colocar um servidor Freya pra roda On ... mas não consigo ligar ele ... se eu tentar ligar ele sem ta com ip 127.0.0.1 ele não liga.. daí a galerinha mais esperiente ai, podia me da uma força ai.. me mostrando certinho o que devo fazer pra deixa um serve On .. Desde já agradeço a vocês, mesmo se não conseguirem solucionar o meu problema..

vlw ae galera.. e Obrigado por ta sempre compratilhando as informações . =)

 

--- LOGUIN SERVER---

# Bind ip of the LoginServer, use * to bind on all available IPs

# Default: *

LoginserverHostname = 127.0.0.1 <<<<<< O que tenho que colocar aqui?

# Default: 2106

LoginserverPort = 2106

 

# The address on which login will listen for GameServers, use * to bind on all available IPs

# Default: *

LoginHostname = 127.0.0.1 <<<<<< O que tenho que colocar aqui?

# The port on which login will listen for GameServers

# Default: 9014

LoginPort = 9014

 

----GAME SERVER----

# Note: External/Internal address definitions was moved to the ipconfig.xml

#

 

# Where's the Login server this gameserver should connect to

# Default: 127.0.0.1

LoginHost = 127.0.0.1 <<<<<< O que tenho que colocar aqui?

# TCP port the login server listen to for gameserver connection requests

# Default: 9014

LoginPort = 9014

 

# Bind address for gameserver. You should not need to change it in most cases.

# Default: * (0.0.0.0)

GameserverHostname = 127.0.0.1 <<<<<< O que tenho que colocar aqui?

 

# Default: 7777

GameserverPort = 7777

 

OBS : Se houver mais alguma coisa que eu devo mudar e não citei acima, se possível por favor me avisem vlw..

 

vo deixar meu msn ai qualquer coisa : [email protected]

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


Mano eu estou com um baita problema. Não estou conseguindo colocar meu servidor via Hamachi ON. Dizem que tem que colocar o IP do hamachi no Externalhostname e Internalhostname.... So que nao tem nenhum desses dois. O que tem no SERVER.PROPERTIES:

LoginHost=

GameserverHostname=

E no LOGINSERVER.PROPERTIES:

LoginserverHostname=

LoginHostname=

Eu queria saber ONDE eu coloco o hamachi e o que eu faco com os outros. Preciso deixar meu servidor ON para meu amigos jogarem cmgo... Me ajuda aew VLW... [email protected]

 

man baixar o arquivo separado joga no google assim: baixar ''loginserver.properties'' ai vai aparecer um link pra vc baixar pelo 4shared,pelomenos foi assim que eu fiz e deu certo so falta eu passar da parte de fazer funcionar o logingameserver e o gameserver!

Link para o comentário
Compartilhar em outros sites

Olá a todos do L2JBrasil ^^

Antes de mais nada, parabéns pelo tutorial Kelvin ^^

Muito bem explicado e por ele, estou fazendo meu server com tranquilidade

 

O porém é que... O Editor L2.ini não está abrindo

Daí ele deleta o l2.ini

 

Estou tentando fazer um servidor Interlude

 

Se alguém tiver o Editor l2.ini para c6 (Interlude)

Tem como me passar?

 

Desde já agradecido xD

 

Editando: E pelo File Edit fica assim:

sdfsdfht.jpg

 

 

 

 

 

Galera, resolvi meu problema! ^^

Depois de pensar muuuuito :)

Baixei uma system de um interlude qualquer e só peguei o l2.ini ¬¬"

Se alguém leu e tentou ajudar, Muito Obrigado ^^

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

alguem pode me explicar pq esta acontecendo isso quando inicio o game serve e o loguim server?

 

serverb.jpg

 

Uploaded with ImageShack.us

 

isto e falta de um Hexid.

 

Veja em> Clique aqui para abrir o tutorial, ( de como criar um Hexid).

Editado por anfehero

Game Of Thrones

bxuJ1BW.jpg

by:Riotovskaya

Link para o comentário
Compartilhar em outros sites

Ai galera... Sei que há muitos problemas com a criação de um servidor L2....

Aqui está um tutorial rapido apenas do L2.ini e do Servergame, Loginserver e Ipconfig.... (pelo hamachi)

 

___________________Server.properties___________________

Abra-o em: gameserver\config\server.properties

_______________________________________________________

 

# ---------------------------------------------------------------------------

# Game Server Settings

# ---------------------------------------------------------------------------

# This is the server configuration file. Here you can set up the connection information for your server.

# This was written with the assumption that you are behind a router.

# Dumbed Down Definitions...

# LAN (LOCAL area network) - typically consists of computers connected to the same router as you.

# WAN (WIDE area network) - typically consists of computers OUTSIDE of your router (ie. the internet).

# x.x.x.x - Format of an IP address. Do not include the x'es into settings. Must be real numbers.

# ---------------------------------------------------------------------------

# Networking

# ---------------------------------------------------------------------------

#

# Note: External/Internal address definitions was moved to the ipconfig.xml

#

 

# Where's the Login server this gameserver should connect to

# Default: 127.0.0.1

LoginHost =X.XXX.XXX.XX --Aqui voce colca o IP do Hamachi--

# TCP port the login server listen to for gameserver connection requests

# Default: 9014

LoginPort = 9014

 

# Bind address for gameserver. You should not need to change it in most cases.

# Default: * (0.0.0.0)

GameserverHostname =X.XXX.XXX.XX --Aqui voce colca o IP do Hamachi Tambem--

# Default: 7777

GameserverPort = 7777

 

 

# ---------------------------------------------------------------------------

# Database

# ---------------------------------------------------------------------------

# Specify the appropriate driver and url for the database you're using.

# Examples:

# Driver = com.mysql.jdbc.Driver (default)

# Driver = org.hsqldb.jdbcDriver

# Driver = com.microsoft.sqlserver.jdbc.SQLServerDriver

Driver = com.mysql.jdbc.Driver

# Database URL

# URL = jdbc:mysql://localhost/l2jdb (default)

# URL = jdbc:hsqldb:hsql://localhost/l2jdb

# URL = jdbc:sqlserver://localhost/database = l2jdb/user = sa/password =

URL = jdbc:mysql://localhost/l2jdb --Aqui deve ter o mesmo local que o MySql (localhost e l2jdb são padro) mas se quiser mudar (no MySql) tem que mudar aqui tambem--

# Database user info (default is "root" but it's not recommended)

Login = root --Se voce mudar o login na configuração do MySql Tem que mudar aqui colocando o que mudou na configuracao--

# Database connection password

Password = --Aqui tambem (esta em branco >Sem Senha< )--

 

# Default: 100

MaximumDbConnections = 100

 

# Default: 0

MaximumDbIdleTime = 0

 

# ---------------------------------------------------------------------------

# Misc Server Settings

# ---------------------------------------------------------------------------

# This is the server ID that the Game Server will request.

# Example: 1 = Bartz

# Default: 1

RequestServerID = 1

 

# True = The Login Server will give an other ID to the server if the requested ID is already reserved.

# Default: True

AcceptAlternateID = True

 

# Datapack root directory.

# Defaults to current directory from which the server is started unless the below line is uncommented.

#DatapackRoot = C:/Work/tmp/DataPack

 

# Define how many players are allowed to play simultaneously on your server.

# Default: 100

MaximumOnlineUsers = 100

 

# Numbers of protocol revisions that server allows to connect.

# Delimiter is ;

# WARNING: <u><b><font color="red">Changing the protocol revision may result in incompatible communication and many errors in game!</font></b></u>

# Default: 216

AllowedProtocolRevisions = 216

 

 

# ---------------------------------------------------------------------------

# Misc Player Settings

# ---------------------------------------------------------------------------

 

# Character name template.

# Examples:

# CnameTemplate = [A-Z][a-z]{3,3}[A-Za-z0-9]*

# The above setting will allow names with first capital letter, next three small letters,

# and any letter (case insensitive) or number, like OmfgWTF1

# CnameTemplate = [A-Z][a-z]*

# The above setting will allow names only of letters with first one capital, like Omfgwtf

# Default .* (allows any symbol)

CnameTemplate = .*

 

# This setting restricts names players can give to their pets.

# See CnameTemplate for details

PetNameTemplate = .*

 

# Maximum number of characters per account.

# Default: 7 (client limit)

CharMaxNumber = 7

 

 

 

 

 

___________________Loginserver.properties___________________

Abra-o em: login\config\loginserver.properties

____________________________________________________________

 

# ---------------------------------------------------------------------------

# Login Server Settings

# ---------------------------------------------------------------------------

# This is the server configuration file. Here you can set up the connection information for your server.

# This was written with the assumption that you are behind a router.

# Dumbed Down Definitions...

# LAN (LOCAL area network) - typically consists of computers connected to the same router as you.

# WAN (WIDE area network) - typically consists of computers OUTSIDE of your router (ie. the internet).

# x.x.x.x - Format of an IP address. Do not include the x'es into settings. Must be real numbers.

# ---------------------------------------------------------------------------

# Networking

# ---------------------------------------------------------------------------

 

# Bind ip of the LoginServer, use * to bind on all available IPs

# Default: *

LoginserverHostname = X.XXX.XXX.XX --Aqui voce colca o IP do Hamachi--

 

# Default: 2106

LoginserverPort = 2106

 

# The address on which login will listen for GameServers, use * to bind on all available IPs

# Default: *

LoginHostname =X.XXX.XXX.XX --Aqui voce colca o IP do Hamachi--

 

# The port on which login will listen for GameServers

# Default: 9014

LoginPort = 9014

 

# The delay in minutes after which the login updates the gameservers IP's (usefull when their ip is dynamic)

# Default: 15

IpUpdateTime = 15

 

 

# ---------------------------------------------------------------------------

# Security

# ---------------------------------------------------------------------------

# Default: True

LogLoginController = True

 

# How many times you can provide an invalid account/pass before the IP gets banned.

# Default: 10

LoginTryBeforeBan = 10

 

# Time you won't be able to login back again after LoginTryBeforeBan tries to login.

# Default: 600 (10 minutes)

LoginBlockAfterBan = 600

 

# If set to True any GameServer can register on your login's free slots

# Default: False

AcceptNewGameServer = True

 

# Enforce GameGuard authorization from client?

# If True, login server will kick client if the client bypassed GameGuard authentication.

# Default: False

ForceGGAuth = False

 

# Flood Protection. All values are in MILISECONDS.

# Default: True

EnableFloodProtection = True

 

# Default: 15

FastConnectionLimit = 15

 

# Default: 700

NormalConnectionTime = 700

 

# Default: 350

FastConnectionTime = 350

 

# Default: 50

MaxConnectionPerIP = 50

 

 

# ---------------------------------------------------------------------------

# Database

# ---------------------------------------------------------------------------

# Specify the appropriate driver and url for the database you're using.

# Examples:

# Driver = com.mysql.jdbc.Driver (default)

# Driver = org.hsqldb.jdbcDriver

# Driver = com.microsoft.sqlserver.jdbc.SQLServerDriver

Driver = com.mysql.jdbc.Driver

# Database URL

# URL = jdbc:mysql://localhost/l2jdb (default)

# URL = jdbc:hsqldb:hsql://localhost/l2jdb

# URL = jdbc:sqlserver://localhost/database = l2jdb/user = sa/password =

URL = jdbc:mysql://localhost/l2jdb --Se mudou o nome do servidor no MySql faca a mesma coisa que no server.properties--

# Database user info (default is "root" but it's not recommended)

Login = root

# Database connection password

Password =

 

# Default: 10

MaximumDbConnections = 10

 

# Default: 0

MaximumDbIdleTime = 0

 

 

# ---------------------------------------------------------------------------

# Misc.

# ---------------------------------------------------------------------------

# If False, the license (after the login) will not be shown.

# Default: True

ShowLicence = True

 

# Default: True

AutoCreateAccounts = True --Aqui é para criar contas automaticamente (No jogo)--

 

 

# ---------------------------------------------------------------------------

# Developer Settings

# ---------------------------------------------------------------------------

# Default: False

Debug = False

 

# Default: False

Assert = False

 

# Default: False

Developer = False

 

 

 

 

___________________ipconfig.xml___________________

Abra-o em: gameserver\config\ipconfig.xml

__________________________________________________

 

<?xml version="1.0" encoding="UTF-8"?>

<!-- Put old contents of ExternalHostname here, used by default -->

<gameserver address="XXXXXXXXXX"> --Aqui voce coloca o IP do HAMACHI de novo--

<!-- Localhost access -->

<define subnet="127.0.0.0/8" address="evolutions.servebbs.com" />

<!-- LAN's, put old contents of InternalHostname here -->

<define subnet="10.0.0.0/8" address="evolutions.servebbs.com" />

<define subnet="172.16.0.0/19" address="evolutions.servebbs.com" />

<define subnet="192.168.0.0/16" address="evolutions.servebbs.com" />

</gameserver>

By Lucas Valeu aew... e desculpem a desorganizaçao kkkk

Gostou ? Então agradece...

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

Comesando *****_*******@hotmail.com(NUNK POST MSN)

 

Esse mini tutorial ja existe no forum, alias, eu sempre ajudei pessoas qe naw souberam botar servidor em hamachi. usando este metodo, (a mto tempo)

 

Ctrl C + Ctrl V.

Game Of Thrones

bxuJ1BW.jpg

by:Riotovskaya

Link para o comentário
Compartilhar em outros sites

Comesando *****_*******@hotmail.com(NUNK POST MSN)

 

Esse mini tutorial ja existe no forum, alias, eu sempre ajudei pessoas qe naw souberam botar servidor em hamachi. usando este metodo, (a mto tempo)

 

Ctrl C + Ctrl V.

Mals aew mas tem gente q naum gosta de ficar procurando...E esse Mini Tuto naum foi feito com Control+C Control+V

rsrsrs

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

GENTE, ALQUEM AJUDA AEW, O MEU JACAJDK E O NAVICAT E O MYSQL, QUANDO EU CLICO NELES, ELES ABREM A PARADA PRA CLICAR EM ABRIR, MAS QUANDO VO CLICA SOME E N APARECE MAIS NADA :S, E ELES N TAO COM IMAGEN DE INSTALADOR, TAO COM UMA IMAGEN DO INTERNET EXPLORER, OQ FASSO?, AJUDA AEW GENTE!

Link para o comentário
Compartilhar em outros sites

GENTE, ALQUEM AJUDA AEW, O MEU JACAJDK E O NAVICAT E O MYSQL, QUANDO EU CLICO NELES, ELES ABREM A PARADA PRA CLICAR EM ABRIR, MAS QUANDO VO CLICA SOME E N APARECE MAIS NADA , E ELES N TAO COM IMAGEN DE INSTALADOR, TAO COM UMA IMAGEN DO INTERNET EXPLORER, OQ FASSO?, AJUDA AEW GENTE!

Link para o comentário
Compartilhar em outros sites

GENTE, ALQUEM AJUDA AEW, O MEU JACAJDK E O NAVICAT E O MYSQL, QUANDO EU CLICO NELES, ELES ABREM A PARADA PRA CLICAR EM ABRIR, MAS QUANDO VO CLICA SOME E N APARECE MAIS NADA , E ELES N TAO COM IMAGEN DE INSTALADOR, TAO COM UMA IMAGEN DO INTERNET EXPLORER, OQ FASSO?, AJUDA AEW GENTE!

Link para o comentário
Compartilhar em outros sites

Esta dizendo que você precisa de um hexid para se conectar no servidor . Faça desse geitinho ai em baixo .

 

Para criar uma Hexid e simples bastar ir na pasta LoginServer, procure pelo arquivo RegisterGameServer.bat abra-o em seguida digite o numero 1 e aperte enter . Depois copie o hexid que vai aparecer como bloco de notas na pasta LoginServer e cole na pasta GameServer/Config . E pronto agora você não vai ter mais esse problema .

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

Fiz o que tava escrito e criou o arquivo hexid(server 1).txt cole no GameServer/Config mais o erro continuou. Resolvi colocar o ExternalHostname no LoginHost tbm mas o erro continua

 

erro3s.jpg

Editado por wfbr

Weltonfbr

Link para o comentário
Compartilhar em outros sites

  • 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.