Ir para conteúdo
  • Cadastre-se

[Tutorial] Abrindo portas do modem D-LINK 500B


Kelvin

Posts recomendados

poe isso aki no loginserver tbm

ExternalHostname =l2rampage.ddns.com.br

 

e coloka o ip do seu pc no ip interno pra vc poder loga

 

daew no caso vc coloca o ip do pc no seu l2.ini e o ddns no l2.ini pra quem for jogar e outro pc

account_tiny.gif

svn | timeline

activeMember.sendMessage("Quase tudo é possível quando se tem dedicação e habilidade. Grandes trabalhos são realizados não pela força, mas pela perseverança")

Link para o comentário
Compartilhar em outros sites


  • Respostas 115
  • Created
  • Última resposta

Top Posters In This Topic

Ok vou tentar aqui agora...

 

Vlw mesmo Guma, poxa vlwzão ja tava meio puto aqui de tanto tentar e nao dá certo,

agora quando o meu amigo entrar aqui no MSN eu mando a system pra ele.

 

Agora só pra confirmar mano na system para outras pessoas logarem eu a mando

com meu endereço do DDNS? é isso mesmo?

 

no mais muito obrigado kra! UP

abração :vlw_l2jbr:

Link para o comentário
Compartilhar em outros sites

sim edita um l2.ini com seu ddns e manda pra eles .

account_tiny.gif

svn | timeline

activeMember.sendMessage("Quase tudo é possível quando se tem dedicação e habilidade. Grandes trabalhos são realizados não pela força, mas pela perseverança")

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

1_ Consigo colocar meu server funcionando perfeitamente aqui em ksa, porem pra eu eu jogar off, quando tento colocar ele on line

alterando as configurações la do "game server" e "loguin server" ele nao passa da tela de loguin. Sendo que ja liberei as portas da modem

53, 8080, 2106, 2109 e 7777 que esta neste topico.

 

2_ Meu server é Interlude e estou tentando coloca-lo online pelo DDNS v2.0

 

3_ Minha System tbm esta com o l2.ini alterando para o meu dominio do DDNS

 

Bom é isso pessoal creio que seja alguma coisa boba que esteja passando despercebido, conto com a ajuda de vcs!

 

 

Abaixo as imagens de como esta meu server...

 

.../gameserver/config/server

 

# ================================================================

# General server setting !!! REQUIRED to configure to everyone !!!

# ================================================================

 

# Bind ip do gameserver, use 0.0.0.0 para vincular disponível em todos os IPs

# EXEMPLO: GameserverHostname=skywallker.ddns.com.br

 

GameserverHostname=127.0.0.1

GameserverPort=7777

 

# Esta é transmitida para os clientes a partir de uma conexão de rede externa, por isso tem de ser um IP público ou resolúvel hostname

# EXEMPLO: ExternalHostname=skywallker.ddns.com.br

 

ExternalHostname=skywallker.ddns.com.br

 

# Esta é transmitida para o cliente a partir da mesma rede, por isso tem de ser um local IP ou hostname resolúvel

# EXEMPLO: InternalHostname=skywallker.ddns.com.br

 

InternalHostname=skywallker.ddns.com.br

 

# Define internal networks (10.0.0.0/8,192.168.0.0/16 is default internal networks)

InternalNetworks=

 

# Define optional networks and router IPs

# IP (200.100.200.100) or fully qualified domain name

# (google.com) that resolves to an IP (use ping to determine if a domain resolves).

# Format: ip,net/mask;ip,net/mask,net/mask

# (mask 192.168.0.0/16 or 192.168.0.0/255.255.0.0 would be 192.168.*.*)

# Note: keep InternalNetworks and OptionalNetworks blank for compatibility with older login server

OptionalNetworks=skywallker.ddns.com.br

 

# O Loginserver host e porta

# EXEMPLO: LoginPort=9014 <--NUNCA TROQUE ESSA PORTA

# EXEMPLO: LoginHost=127.0.0.1 <-- NUNCA TROQUE ESSE IP

 

LoginPort=9014

LoginHost=127.0.0.1

 

# This is the server id that the gameserver will request (i.e. 1 is Bartz)

RequestServerID = 1

# If set to true, the login will give an other id to the server if the requested id is allready reserved

AcceptAlternateID = True

 

 

 

 

======================================================================

server/login/config/loginserver

 

 

 

 

# ================================================================

# General login server setting !!! REQUIRED to configure to everyone !!!

# ================================================================

 

# Bind ip do gameserver, use 0.0.0.0 para vincular disponível em todos os IPs

# EXEMPLO: LoginServerHostname=127.0.0.1 <----NO CAMINHO ABAIXO COLOQUE O IP DE SUA PLACA DE REDE

LoginServerHostname=127.0.0.1

LoginServerPort=2106

GMMinLevel=100

 

# The port, ip on which login will listen for GameServers

# EXEMPLO: LoginHostname=127.0.0.1 <-- NUNCA TROQUE ESSE IP

LoginHostname=127.0.0.1

LoginPort=9014

 

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

AcceptNewGameServer = False

 

# If false, the licence (after the login) will not be shown

ShowLicence = True

 

# Database info

Driver=com.mysql.jdbc.Driver

#Driver=org.hsqldb.jdbcDriver

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

# EXEMPLO: URL=jdbc:mysql://localhost/l2jdb <---CAMINHO E NOME DE SEU BANCO DE DADOS (l2jdb)

URL=jdbc:mysql://localhost/l2jdb

 

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

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

#EXEMPLO: Login=root <--LOGIN DE SEU BANCO DE DADOS MYSQL QUE É ROOT COMO PADRÃO

#EXEMPLO: Password=suasenha <--SENHA DE SEU BANCO DE DADOS, É A MESMA QUE VC COLOCOU NO MOMENTO DE INSTALAÇÃO DO MYSQL

Login=root

Password=

 

# Utilizável valores: "True" - "False", utilize esta opção de escolher se vão ser criadas contas

# automatico ou não.

# EXEMPLO: AutoCreateAccounts= <--COLOQUE "false" CASO VÁ UTILIZAR UM SITE PARA CRIAR CONTAS NO SERVIDOR

AutoCreateAccounts=True

 

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

# (0 = disable)

IpUpdateTime=0

 

 

 

 

alqem pode me ajuda por favo :vlw_l2jbr:

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

sim olgha como ta

 

Game:Serve

 

 

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

# Usually you have to change the ExternalHostname option to

# - 127.0.0.1 (if you want to play alone / testing purpose)

# - LAN IP* (if you want to play from another computer in the network)

# - WAN IP** (if you want to play with friends over internet)

# - Questions? => http://l2jfree.com

#

# * = If you want to get your LAN IP, simply choose "Start" => "Run..." then type "cmd" => "ipconfig"

# **= If you want to get you WAN IP, visit http://www.whatismyip.com

# ================================================================================

===================

 

# ================================================================

# General server setting !!! REQUIRED to configure to everyone !!!

# ================================================================

 

# Bind ip do gameserver, use 0.0.0.0 para vincular disponível em todos os IPs

# EXEMPLO: GameserverHostname=skywallker.ddns.com.br

 

GameserverHostname=127.0.0.1

GameserverPort=7777

 

# Esta é transmitida para os clientes a partir de uma conexão de rede externa, por isso tem de ser um IP público ou resolúvel hostname

# EXEMPLO: ExternalHostname=skywallker.ddns.com.br

 

ExternalHostname=skywallker.ddns.com.br

 

# Esta é transmitida para o cliente a partir da mesma rede, por isso tem de ser um local IP ou hostname resolúvel

# EXEMPLO: InternalHostname=l2innovationserve.ddns.com.br

 

InternalHostname=192.168.254.1

 

# Define internal networks (10.0.0.0/8,192.168.0.0/16 is default internal networks)

InternalNetworks=

 

# Define optional networks and router IPs

# IP (200.100.200.100) or fully qualified domain name

# (google.com) that resolves to an IP (use ping to determine if a domain resolves).

# Format: ip,net/mask;ip,net/mask,net/mask

# (mask 192.168.0.0/16 or 192.168.0.0/255.255.0.0 would be 192.168.*.*)

# Note: keep InternalNetworks and OptionalNetworks blank for compatibility with older login server

OptionalNetworks=skywallker.ddns.com.br

 

# O Loginserver host e porta

# EXEMPLO: LoginPort=9014 <--NUNCA TROQUE ESSA PORTA

# EXEMPLO: LoginHost=127.0.0.1 <-- NUNCA TROQUE ESSE IP

 

LoginPort=9014

LoginHost=127.0.0.1

 

# This is the server id that the gameserver will request (i.e. 1 is Bartz)

RequestServerID = 1

# If set to true, the login will give an other id to the server if the requested id is allready reserved

AcceptAlternateID = True

 

# Database info

Driver=com.mysql.jdbc.Driver

 

#Driver=org.hsqldb.jdbcDriver

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

# EXEMPLO: URL=jdbc:mysql://localhost/l2jdb <---CAMINHO E NOME DE SEU BANCO DE DADOS (l2jdb)

URL=jdbc:mysql://localhost/l2jdb

 

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

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

#EXEMPLO: Login=root <--LOGIN DE SEU BANCO DE DADOS MYSQL QUE É ROOT COMO PADRÃO

#EXEMPLO: Password=suasenha <--SENHA DE SEU BANCO DE DADOS, É A MESMA QUE VC COLOCOU NO MOMENTO DE INSTALAÇÃO DO MYSQL

Login=root

Password=

 

MaximumDbConnections=100

 

# Datapack root directory, defaults to current directory from which the server is started

#DatapackRoot=H:/workEclipse/L2J Free/trunk/L2_DataPack_IL

 

# Define character name template

# These ones are regular expressions, visit http://www.regular-expressions.info for details

# Note: Checking lengths are done server side, but keep it in pattern for future purposes

# Character name ( Default [A-Za-z0-9\-]{3,16} )

CnameTemplate=[A-Za-z0-9]{3,16}

 

# Pet name ( Default [A-Za-z0-9\-]{3,16} )

PetNameTemplate=[A-Za-z0-9]{3,16}

 

# Clan and ally name ( [A-Za-z0-9 \-]{3,16} )

ClanAllyNameTemplate=[A-Za-z0-9 \-]{3,16}

 

# Title ( [A-Za-z0-9 \-\\[\\]\<\>\(\)\!\|]{3,16} )

TitleTemplate=[A-Za-z0-9 \-\\[\\]\<\>\(\)\!\|]{3,16}

 

# Maximum number of chars per account - 0 = illimited - default = 7

CharMaxNumber = 5

 

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

MaximumOnlineUsers=100

 

 

# Minimum and maximum protocol revision that server allow to connect.

# You must keep MinProtocolRevision <= MaxProtocolRevision.

MinProtocolRevision = 740

MaxProtocolRevision = 746

 

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

# Safe Reboot configuration

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

# This will prevent some exploit during restart/shutdown process

SafeReboot = true

# To use following options, SafeReboot must be set to True

# Time in seconds before server complete shutdown/reboot, when

# following striction take effect

SafeRebootTime = 10

# Disable item enchant

SafeRebootDisableEnchant=True

# Disable players teleportations

SafeRebootDisableTeleport=False

# Disable craft and crystallize

SafeRebootDisableCreateItem=False

# Disable trades and shops

SafeRebootDisableTransaction=False

# Disable actions between players

SafeRebootDisablePcIteraction=False

# Disable actions on NPC

SafeRebootDisableNpcIteraction=False

 

# Network traffic optimization: minimum time between sending char's hp/mp status update packet.

NetworkTrafficOptimization = False

NetworkTrafficOptimizationMs = 1100

 

# Flood Protection

# if enabled players which send more then PACKETLIMIT packets in PACKETTIMELIMIT ms will get kicked

# warning not tested made a quickhack for squeezed :)

FloodProtection = False

PacketLimit = 500

PacketTimeLimit = 1100

 

 

# ================================================================

# JMX Administration

# ================================================================

# Port to connect with l2jmx, -1 to disable jmx completely

admin_portJMX=-1

# Port to connect to jmx via HTTP, -1 to disable

# disable it if it is not local test

# http adaptor is usefull to see if your server is running with l2jbeans, or to see others beans (JRE, logging)

# It is also possible to use it if you forbid this port for external host, but you have to be sure nobody can reach this url !

admin_portHTTP=-1

# password for keystore_file, the keystore file should be in config folder.

# Comment it or remove the keystore file if you doesn't want to activate secure socket.

#keystore_password=password

# keystore file

# this file is used to store a SSL certificate for your jmx server.

# You have to create it with keytool like this :

# $JAVA_HOME/bin/keytool -genkey -keyalg "RSA" -keystore myKeystore.jks -storepass myPassword -dname "cn=myhost"

# Change myKeystore, myPassword and myhost for your own needs

# You have to give this file to all people that will use l2jmx

#keystore=keystore.jks

 

 

 

 

 

 

 

Login serve:

 

# ================================================================

# General login server setting !!! REQUIRED to configure to everyone !!!

# ================================================================

 

# Bind ip do gameserver, use 0.0.0.0 para vincular disponível em todos os IPs

# EXEMPLO: LoginServerHostname=127.0.0.1 <----NO CAMINHO ABAIXO COLOQUE O IP DE SUA PLACA DE REDE

LoginServerHostname=127.0.0.1

LoginServerPort=2106

GMMinLevel=100

 

# The port, ip on which login will listen for GameServers

# EXEMPLO: LoginHostname=127.0.0.1 <-- NUNCA TROQUE ESSE IP

LoginHostname=127.0.0.1

LoginPort=9014

 

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

AcceptNewGameServer = False

 

# If false, the licence (after the login) will not be shown

ShowLicence = True

 

# Database info

Driver=com.mysql.jdbc.Driver

#Driver=org.hsqldb.jdbcDriver

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

# EXEMPLO: URL=jdbc:mysql://localhost/l2jdb <---CAMINHO E NOME DE SEU BANCO DE DADOS (l2jdb)

URL=jdbc:mysql://localhost/l2jdb

 

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

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

#EXEMPLO: Login=root <--LOGIN DE SEU BANCO DE DADOS MYSQL QUE É ROOT COMO PADRÃO

#EXEMPLO: Password=suasenha <--SENHA DE SEU BANCO DE DADOS, É A MESMA QUE VC COLOCOU NO MOMENTO DE INSTALAÇÃO DO MYSQL

Login=root

Password=

 

# Utilizável valores: "True" - "False", utilize esta opção de escolher se vão ser criadas contas

# automatico ou não.

# EXEMPLO: AutoCreateAccounts= <--COLOQUE "false" CASO VÁ UTILIZAR UM SITE PARA CRIAR CONTAS NO SERVIDOR

AutoCreateAccounts=True

 

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

# (0 = disable)

IpUpdateTime=0

 

 

# ==============================================================

# Test server setting, shoudnt be touched in online game server

# ==============================================================

 

Debug = False

Assert = False

Developer = False

# Enforce GG Authorization from client

# Login server will kick client if client bypassed GameGuard authentication

ForceGGAuth=False

 

#FloodProtection. time in ms

EnableFloodProtection=True

FastConnectionLimit=15

NormalConnectionTime=700

FastConnectionTime=350

MaxConnectionPerIP=50

 

#Ban management

# number of attempt before a user is banned when he fails his login

LoginTryBeforeBan=10

# 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

 

 

 

O L2Int com meu ip interno

 

ve se ta certo ae agradeço muuito

Editado por xxyurinoxx
Link para o comentário
Compartilhar em outros 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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  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.

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