Ir para conteúdo
  • Cadastre-se

[Tutorial] Instalando seu servidor em Dedicado e D+ Configurações


patricktb

Posts recomendados

Neste Tutorial estarei ensinando Como instalar e rodar seu servidor em um dedicado Com Windows Server 2003 64 Bits.

 

Programas Necessarios:

 

Java JDK 64x

MySQL 5.1 Server 64x

Navicat 8.0

 

Opcionais:

 

DDNS Server

 

WampServer

 

Chat Online para seu Site

 

Forum PhPbb3 para seu server

 

TS Server para seu Servidor

 

mySQL 32 X Server para Semi-dedicados "VPS"

 

Importante:

 

Ant-Virus Para Servidores

 

Passos:

 

1º Instale o Java 64 Bits ou 64x Se preferir No seu Dedicado.

 

2º Iremos agora Instalar e configurar o Mysql.

Abaixe o MySQL 5.1 Server 64x e ezecute ele.

 

Na Tela que abrir Clique em Next.

pagina1.jpg

 

 

Selecione caso nao esteja Typical e clique em Next.

E clique em Install.

Apos aparece-ra algumas telas de informações aperte next em todas ate aparecer esta tela.

Selecione Configure The MySQL Server Now e clique em Finish.

 

pagina2.jpg

 

Configurando:

 

Na Proxima Tela Clique em Next.

pagina3.jpg

 

Ja nesta Figura clique em Detailed Configuration e clique em Next.

pagina4.jpg

 

Nesta Parte Muito Importanter Selecionaremos o tipo de maquina que estamos Trabalhando como é um dedicado Podemos selecionar o maximo de user da maquina.

Selecione Dedicated MySQL Server Machine e clique em next.

peco01.jpg

 

Nesta tela deixa como esta e clique em Next.

pagina6.jpg

 

Aqui é o diretorio onde sera instalado o Patch de configurações nao mude nada so clique em next.

 

Deixe como NA figura e clique em Next

 

pero2.jpg

 

Nesta Tela esta a porta do MySQL Deixe como esta Padrao 3306

Ative Selecionando Enable Strict Mode e clique em Next.

 

pero351515.jpg

 

Nesta Tela selecione Best Support for Multilingualism e clique em NExt.

pagina8.jpg

 

Deixe como esta E Clique em Next.

pagina10.jpg

 

Nesta Tela Vc pode ou nao selecionar com senha no caso aqui fiz sem senha Basta deixar desmarcada a caixa Modify Security Settings e clica em Next.

pagina12.jpg

 

NA PROXIMA TELA CLIQUE EM EXECUTE CASO FEZ TUDO CERTO O SERVIDOR MYSQL LIGARA COM SUCESSO.

 

 

3º Instale o NAvicat

 

Execute o arquivo do download e clique em next nesta tela:

pagina13.jpg

 

Clique em I Aceppt e clique em Next

pagina14.jpg

 

Selecione o diretorio de instalação ou como padrao deixe como ele vem mesmo e so cliquem em NEXT.

pagina15.jpg

 

Na Proxima Tela so Clique em Next

 

Caso queria deixa para criar um atalho na area de trabalho e clique em Next

 

Clique em Instal e espere o TErmino da Instalação.

Clique em Finish e como qualq outra configuração de NAvicat é simples:

 

Criando DataBase....

 

Execute o Navicat ao abrir clique Connection

Apos clicar ira aparecer uma tela coloque ai o nome da sua data base.

no caso sera localhost

Caso ja tenha nao a necessidade.

Apenas cliquem sobre o localhost com o botao direito do mause e selecione

pagina16.jpg

 

New Database ali coloque o nome que queira do servidor como l2jdb

e pronto execute o Backup e esta pronto a conexao entre database e Mysql.

 

 

Atencao isso server para qualque instalação do server tanto em pc privados ou dedicados

IMPORTANTE:

 

Se vc tem uma maquina de 8 mb de ran ou menos e acha q seu pc nao esta dando tudo que podia pode ser algo simples mais muito eficaz:

 

Configurando a Memoria a ser usada pelo seu servidor:

Clique sobre seu executavel Gameserver com o direito do mause e Clique em Editar:

pagina17.jpg

 

Ira aparecer uma tela mais ou menos assim:

 

99998__1_.jpg

 

Veja que na linha Sem REm: java -Dfile.encoding=UTF-8 -Xmx512m com.l2jfree.gameserver.GameServer

 

512 é o padrao que esta vindo nas Rev entao no caso ele ta liberando so 512 de memoria ram pro uso do server

CAso eu tenha 8mb vo por como no exemplo a seguir:

java -Dfile.encoding=UTF-8 -Xmx7012m com.l2jfree.gameserver.GameServer

 

Exemplo:

 

 

REM -------------------------------------
REM Default parameters for a basic server.
java -Dfile.encoding=UTF-8 -Xmx7024m com.l2jfree.gameserver.GameServer
REM
REM For debug purpose (for devs), use this :
REM java -Dfile.encoding=UTF-8 -Xmx7024m -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=7456 com.l2jfree.gameserver.GameServer 
REM If you have a big server and lots of memory, you could experiment for example with
REM java -server -Dfile.encoding=UTF-8 -Xmx1536m -Xms1024m -Xmn512m -XX:PermSize=256m -XX:SurvivorRatio=8 -Xnoclassgc -XX:+AggressiveOpts
REM -------------------------------------

 

Basta clicar em salvar.

 

Atencao isso server para qualque instalação do server tanto em pc privados ou dedicados

Outra Coisa importante repare que ele nao ta direcionando ao seu Java oque poder acarreta Lag e Travação

Vamos configurar isso agora:

 

Como veem na figura eu adicionei umas linhas mais somente as que nao tem Rem na frente sao ezecutadas por tanto se preferir basta adiciona estas linhas:

Ela tem que apóntar para a Pasta BIN de dentro onde esta instalado seu Java.

111111__1_.jpg

 

@echo off
title : Game Server Console - Editado by Patricktb 
(http://www.l2jbrasil.com)
:start
echo Iniciando Game Server.
echo Visite http://www.l2jbrasil.com .
echo.

SET OLDCLASSPATH=%CLASSPATH%
call setenv.bat

REM ########################################################################
REM # You need to set here your JDK/JRE params in case of x64 bits System. #
REM # Remove the "REM" after set PATH variable							 #
REM # If you're not a x64 system user just leave						   # 
REM ########################################################################
set PATH="C:\Arquivos de programas\Java\jdk1.6.0_13\bin"  -> Esta Parte Varia de acordo como vc instalo o java e onde ele esta

REM -------------------------------------

Para nao ter erro se baseie copiando em cima do rem ----- ate no comeco do arquivo

 

 

 

 

Pondo servidor on.

 

Recomendo usar o metodo DDNS.

Isso ja temos um tutorial aqui no forum:

 

http://www.l2jbrasil.com/index.php?showtopic=5842

 

 

Veja Tambem:

 

http://www.l2jbrasil.com/index.php?showtopic=4

 

http://www.l2jbrasil.com/index.php?showtopic=3334

 

http://www.l2jbrasil.com/index.php?showtopic=2376

 

 

Espero que tenha ajudado :D

 

 

Proibida a reprodução mesmo que em partes desse tutorial sem a publicação dos devidos créditos de criação

Garantido pela Constituição da República Federativa do Brasil, de 05 de outubro de 1988

Portaria MCT n° 88, de 23/04/98

Propriedade Intelectual

Editado por patricktb

Servidor Lineage II Sem Custom:

Clique aqui

Link para o comentário
Compartilhar em outros sites


  • L2JBr ADM

Não aconselho colocar como servidor dedicado na hora de configurar o mysql, a não ser que seja um máquina so para o banco de dados.

 

peco01.jpg

 

Coloque Server Machine.

 

 

Também sugiro outra configuração aqui:

 

pagina6.jpg

 

marque o segundo

 

ou o ultimo

 

e coloque um valor entre 500 e 1200

 

;)

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

  • 1 month later...

Usando dedicado, vc aconselho usar DDNS, mesmo o dedicado tendo IP FIXO porque ?

 

Outra duvida, e a respeito da memoria, se pegar um DEDICADO mais simples com 1 GB de RAM e windows server 32bits, quantos players vai suportar e qual valor eu coloco naquela parte de alterar o codigo JAVA ?

 

Obrigado aguardo resposta =)

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
  • 3 weeks later...

Tenho uma duvida na parte de liberação de Memoria para o dedicado. Tenho 4G de ram, o meu esta assim

 

@echo off

title L2J Game Server

:start

REM ----------- Set Class Paths and Calls setenv.bat -----------------

SET OLDCLASSPATH=%CLASSPATH%

call classpath.bat

REM ------------------------------------------------------------------

 

REM -------------------------------------

REM Default parameters for a basic server.

java -Dfile.encoding=UTF-8 -Xmx1536m net.sf.l2j.gameserver.GameServer

REM

REM If you have a big server and lots of memory, you could experiment for example with

REM java -server -Xmx1536m -Xms1024m -Xmn512m -XX:PermSize=256m -XX:SurvivorRatio=8 -Xnoclassgc -XX:+AggressiveOpts

REM -------------------------------------

 

SET CLASSPATH=%OLDCLASSPATH%

 

if ERRORLEVEL 2 goto restart

if ERRORLEVEL 1 goto error

goto end

:restart

echo.

echo Admin Restart ...

echo.

goto start

:error

echo.

echo Server terminated abnormaly

echo.

:end

echo.

echo server terminated

echo.

pause

 

 

quando eu tento aumenta esse valor ( 1536 ) da erro no game server, oq poderia ser? .

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...
  • 5 months later...

Bom Post ;D vlw por compartilha

'Respeitarei as regras, e utilizarei o limite de assinaturas.

Não vou colocar mais assinatura grande para impedir que paginas fiquem pesadas ao carregar.

Eu fui avisado 1 vez, e da proxima serei punido mais severamente.'

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

amigo contratei o Windows Server 2003 sp1 o Java JDK 64x

MySQL 5.1 Server 64x rodao no sp1 ? fuciona direitinho ? pq no meu antigo dedicado eu uzava o windos xp , queia essa informacao pq contratei um com w server 2003

Editado por afonso

ciências da computação e uma arte , Estudar e compilar Faz Parte :)

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

Tenho uma duvida na parte de liberação de Memoria para o dedicado. Tenho 4G de ram, o meu esta assim

 

@echo off

title L2J Game Server

:start

REM ----------- Set Class Paths and Calls setenv.bat -----------------

SET OLDCLASSPATH=%CLASSPATH%

call classpath.bat

REM ------------------------------------------------------------------

 

REM -------------------------------------

REM Default parameters for a basic server.

java -Dfile.encoding=UTF-8 -Xmx<b>1536</b>m net.sf.l2j.gameserver.GameServer

REM

REM If you have a big server and lots of memory, you could experiment for example with

REM java -server -Xmx1536m -Xms1024m -Xmn512m -XX:PermSize=256m -XX:SurvivorRatio=8 -Xnoclassgc -XX:+AggressiveOpts

REM -------------------------------------

 

SET CLASSPATH=%OLDCLASSPATH%

 

if ERRORLEVEL 2 goto restart

if ERRORLEVEL 1 goto error

goto end

:restart

echo.

echo Admin Restart ...

echo.

goto start

:error

echo.

echo Server terminated abnormaly

echo.

:end

echo.

echo server terminated

echo.

pause

 

 

quando eu tento aumenta esse valor ( 1536 ) da erro no game server, oq poderia ser? .

 

 

Seu Windows Server do dedicado é 32bits, o maximo suportado por um servidor 32bits é 1610 de RAM.

 

 

amigo contratei o Windows Server 2003 sp1 o Java JDK 64x

MySQL 5.1 Server 64x rodao no sp1 ? fuciona direitinho ? pq no meu antigo dedicado eu uzava o windos xp , queia essa informacao pq contratei um com w server 2003

 

 

SP1 não funciona 64x, use 32x,

 

 

(Pelos testes que ja fiz em varios servidores eu afirmo isso, se por acaso estiver errado alguem me corrija)

 

 

 

Link para o comentário
Compartilhar em outros sites

  • 1 year later...

eu uso l2jfrozen

 

eu gostaria de almentar a disponibilidade de memoria pro gameserver.bat

 

alguem em diz como por favor. ^^

 

edit: consegui por, por -Xmx1536m,

 

windows xp 5.1 ( sp3 ) x86 dual core, 4 gb de ram.

Editado por vert
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.