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


CRIANDO O SERVIDOR.

Nescessario:

Todos os arquivos e programas necessarios estão para download no meu 4Shared.

 

logo.gif

 

Download Softwares necessarios.

 

Java JDK

MySQL 5.0 ou MySQL 6.0

Navicat 8.0 Trial

NO-IP ou DDNS

FileEdit ou Editor ini

 

Podera escolher um servidor na zona de servidores.

 

Clique aqui!

 

 

----------------------

1ª instale o JavaJDK.

2ª instale o MySQL 5.0 Server.

 

Instalando - MySQL 5.0 Server.

-Rode o arquivo executável (DUH).

-Aperte no botão Next para criar um novo exemplo.

 

-Selecione Detailed Configuration.

clipimage001gg3.jpg

 

-Server Machine

clipimage001sn7.jpg

 

-Next , Next

-Escolha a primeira opção para 20 jogadores.

clipimage001fk1.jpg

 

- NEXT , NEXT , NEXT

-Security Options ... Não marque nada !

clipimage001jv4.jpg

-EXECUTE

clipimage001vm1.jpg

->Agora voce tem configurado seu MySQL server com Login : root, sem senha e porta 3306.

 

3ª Instale o NAVICAT !

4ª No NAVICAT clique em connection e coloque em Host name/IP address "localhost" , port "3306" , Username "root" e deixe em branco password e clique em OK.

clipimage001ud7.jpg

-Ira aparecer um novo campo de conexão chamado "localhost". Certo iremos clicar com botão direito do mause e selecionar > New Database e dar o nome de l2jdb para sua nova database e clique em OK.

clipimage001bw1.jpg

 

 

5ª Pre-Configurado REV.

 

5.1. Extraia todos os arquivos p. uma pasta de sua escolha. C:\Server

 

image1oy4.jpg

5.2. Abra o NAVICAT e restaure o backup da DATABASE q esta inclusa no pacote. Vc vai achar o backup

(InterludeSvBAK.psc) na msm pasta onde vc extraiu o conteúdo do server.

image2wj5.jpg

 

5.3. Depois de feito va a pasta\Interlude Server\l2j-gameserver\dist\config\ e abra usandu o BLOCO DE NOTAS o arquivo server.proprierties

 

5.4. Edite os IPs colocando os seus respectivos.

 

image3st9.jpg

 

5.5. Vc pode mudar as rates do seu server no arquivo rates.proprierties

image4at4.jpg

 

Outra coisa …. SERVIDOR NAO MORDE ! Sinta-se livre para editar os arquivos .proprierties do seu gameserver !!! Apenas lembre de fazer um backup deles antes !

 

****Todos os NPCs vao estar no meiu de GIRAN. Sinta-se a vontade p. pegar o ID deles (segurar o shift e clicar no npc , usando um personagem GM) e dar um spawn onde vc desejar.

-Agora precisaremos rodar o "startloginserver.bat" (pasta login) e "startgameserver.bat" (pasta gameserver). Lembre seu servidor esta em modo de autocriação de conta, você precisarar ativa o arquivo "startaccountmanager.bat" desta vez.

 

serversva8hd9.jpg

Pronto o servidor esta rodando!!!

Se vc usar Roteador tera q abrir as portas 7777 (game server), e 2106 (login server).

 

Segundo passo: Client

 

Eh preciso ter a versão correspondente a seu cliente.

 

Download.

 

Usaremos um programa diferente para a edição do seu L2.ini que faz a conexão de você com o servidor.

Coloque o programa dentro da pasta system, abra ele, ele ira abrir um texto no bloco de notas procure pela linha em vermelho:

 

 

 

Depois de achado, você coloca o seu IP interno se for jogar em rede ou no mesmo PC.

Exemplo para jogar Offline:

ServerAddr=127.0.0.1

 

Para os players você coloca o NO IP (logo a baixo ensina a você criar uma conta no L2.ini.

Ex: l2jbrasil.servegame.com

 

Depois de editado o IP salve o arquivo e feche o bloco de notas normalmente.

Pronto No-Ip Editado!

 

NO-IP

 

Primeiramente faça seu cadastro no site: http://www.no-ip.com

 

registergs8.jpg

 

Depois de feito vc irá receber um e-mail para ativação do cadastro.

 

Com a account pronta :

 

1- Faça o Login no website

2- Vá em Hosts/Redirects e Clique em Add

3- No campo "Hostname" Digite o nome do seu servidor e logo abaixo escolha o complemento.

4- Clique em Create Host

Vá na sessão donwloads , escolha a plataforma q vc está usando e faça o download do SOFTWARE do NO-IP (DUC)

 

downloadqc4.jpg

 

Feito o download instale o programa e rode-o

 

Uma janela irá aparecer perguntando o Login e senha ... Ponha os mesmos q vc cadastrou no site

 

Feito isso o programa principal irá abrir com o link do seu redirecionamento, marque a caixinha do lado dele (caso ele não fique com a carinha igual a da figura abaixo , desmarque e marque a caixa ateh q fique igual)

 

ducex8.jpg

Depois de feito isso , seu No-IP está configurado e pronto para uso ! Note q vc pode fechar a tela principal dele q o mesmo continua rodando (veja figura abaixo)

 

standtp3.jpg

 

Agora vc soh tem q colocar no IP EXTERNO da configuraçao do seu server e no L2.ini dos clientes o REDIRECIONAMENTO Q VC CRIOU ! Nesse exemplo seria Nargenserver.servegame.com

 

Enjoy !!

 

OBS: Se vc estiver usando roteador, terá q liberar a porta 8245 !

 

 

5ª Abra o Lineage executando o arquivo L2.exe na pasta system.

 

OBS: Para fazer um char GM, primeiro crie um novo personagem e esteja certo q o char nao estao logado (Apenas abra o jogo e digite algum Login e Senha porque sera criado automaticamente, e crie um novo char).

 

- Abre o navicat , clique em localhost e entao na database l2jdb. Algumas tabelas vao aparecer no lado direito. Abra a tabela characters clicando 2x nela. Procure pela LINHA do seu personagem e depois ache a coluna ACCESS LEVEL dele. Mude o valor 0 (zero) pra 100 (cem), feche e logue o personagem ! Pronto !

 

Depois de criado seu servidor registre no nosso TOP ;)

 

 

TOP

 

Creditos: Kelvin - www.l2jbrasil.com

Todos os direitos reservados.

 

 

~

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

Link para o comentário
Compartilhar em outros sites

estou aqui com mais uma dúvida quero fazer meu servidor mais sou super nub no assunto e gostaria de saber qual a cofiguração que meu pc tem que ter para rodar meu server sem problemas! tipo quantos de memoria de hd, prosersador e outros ?

 

 

 

des de já agradesso!

Link para o comentário
Compartilhar em outros sites

1º Problema: (RESOLVIDO)

 

Opa, tava fazendo tudo certo, mas quando fui dar o "startLoginServer" e o "startGameServer" ambos dao erro. (Server Terminated Abnormaly)

As imagens do erro.

 

gameserver

 

 

64594083.jpg

 

login server

 

 

34082379.jpg

 

 

Eu uso o Windows 7 Pro (32-bits).

Sim, eu tentei executando como adminstrador.

Bom, eu mudei o nome da pasta de "l2j-gameserver" para "l2jaka - gameserver" e o login mesma coisa. (tem alguma coisa haver isso?

Bom, se tiver, como eu altero pro nome da minha pasta?

add no msn se precisar [email protected]

 

EDIT: Testei com os nomes antigos "l2j-gameserver" e "l2j-loginserver", e deu a mesma coisa....

 

No aguardo!

vlw o/

 

2º Problema: (RESOLVIDO)

 

 

Bom, eu abri o server normal (pra testar com ip: 127.0.0.1), ele abril tranquilo.

Quando fui logar deu esse ero:

 

bugouo.jpg

 

Bom, será que é porque eu to usando a Versão Freya do Original?? (Achei que nao tivese problema, pois com a mesma versão freya ja joguei em servidores Interlud e gracia sem problemas.

Alguem pederia me ajudar??

 

No aguardo.

Valew!! o/

 

 

Editado por Jaka

"Eu só tenho a certeza de que vou vencer na vida quando estou com Zap e Copas na mão,

e meu parceiro fez a primeira"

firefoxv.giffloodar.gif

cssuser.pngusers2.gif

mataemo.gif

 

Link para o comentário
Compartilhar em outros sites

Hmm, valeu brother... mas ja tinha conseguido resolve. ^^

Eh que fui pro trabalho, e nao deu tempo d eposta aqui.

 

Bom, agora ta tudo certinho, so to acompanhando alguns Tutoriais pra edita algumas coisas no Server.

Aproveitando, se alguem tiver alguma dica de um Post com um "Resumidão" de varios Rev's. Eu agradeço.

Valeu a força!

o/

"Eu só tenho a certeza de que vou vencer na vida quando estou com Zap e Copas na mão,

e meu parceiro fez a primeira"

firefoxv.giffloodar.gif

cssuser.pngusers2.gif

mataemo.gif

 

Link para o comentário
Compartilhar em outros sites

Ae to tentando criar meu primeiro server, nao entendo nada disto, tava seguindo o tutorial e ate uma parte foi de boa mas qnd chega nakela parte do editor.l2.ini q vc tem q coloka dentro da system, eu colokei ele la de boa, mas qnd tento abrir ele fala q nao axou o arquivo l2.txt!

 

OBS: a minha pasta do l2 he nova acabei de instala o interlude nela, ou seja a system ta normal igual qnd vc instala o interlude, Desde ja grato!!!

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.