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


Olá pessoal.

 

O que se passa comigo é o seguinte..

 

Tentei criar um servidor a partir do tutorial e não consegui.. estou usando o da Video-aula do Thiago Arbues.

 

Não sei oq fazer, vejam...

 

30954686pw4.jpg

 

Ficou quase 2 horas pra mudar pra isso

 

91017802yg3.jpg

 

Depois de quase mais 1 hora esperando, ainda não havia saido daí.

 

Então desistir.. e já tentei fazer o servidor varias outras vezes, e sempre acontece isso..

 

Grato desde então..

 

Obrigado..

Link para o comentário
Compartilhar em outros sites

Kelvin me explica uma coisa, ja to mt confuso de tanto mudar as configuraçao do loginserver e do server.propriets !!

 

1- pelo q entendi depois de configurado preciso de 2 l2.ini um pros meu clientes da lan logar aki e outro pros players de fora logar né ? isso eu acho q to fasendo certo !

 

2- como tem q colocar o login e o server.propriets ?? eu to usando no-ip olha ai e me ajuda configurar certo porfavor amigo ...

 

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

# 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=0.0.0.0

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=10.1.1.9

LoginPort=9014

 

 

serverpropriets

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

# 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=127.0.0.1 <----NO CAMINHO ABAIXO COLOQUE O IP DE SUA PLACA DE REDE

 

GameserverHostname=0.0.0.0

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=l2mak.servegame.com <-----NO CAMINHO ABAIXO COLOQUE O SEU NO-IP AQUI

 

ExternalHostname=valhala.servegame.com

 

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

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

 

InternalHostname=10.1.1.9

 

# 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=

 

# 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=10.1.1.9

 

obs: assim o jogo ta com mt lag na tela de seleçao dos personagens !!!

Link para o comentário
Compartilhar em outros sites

Kelvin, sou novo aqui e tbm qto ao funcionamento do server em l2j.

 

Eu parei no Editor do l2.ini, que quando incio pede o l2.text, decobri que preciso de um patch.

 

Até agora tudo funcionou igual ao tutorial, não sei se estou fazendo certo, poderia me dar uma ajuda?

 

Não consegui encontrar um Interlude limpo sem edições que tivesse um patch pronto, ou uma system limpa.

 

É isso msm que devo fazer? kolokar o patch e/ou a system pra kontinuar?

 

E se caso for msm, onde posso conseguir o patch limpo do interlude ou system com o l2.text??

 

Vlw pelo tutorial meu velho, poucos brasileiros gostam de compartilhar o conhecimento.

 

 

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

 

Ja descobri o problema =D, era o arquivo l2.ini que estava faltando, porem, copiei esse arquivo de um server q eu to jogando e colokei o ip de boa.

 

Agora apreceu outro problema.... da um erro:

erroso7.th.jpg

 

 

O que devo fazer para conseguir editar meu server amigo?

Link para o comentário
Compartilhar em outros sites

Kelvin, oi meu nome e Kelvin, spaoska', bom e o seguinte como eu faço pra edita um mob, tipo a pdefesa dele, e etc?

Outra duvida, tem como editar a chance de um item dropa de um mob?

Por exemplo, 60% de dropa anel do Baium?

E outra coisinha como eu dou spawn nos boos?

So ir no lugar dele e dar //spawn? Não né

Pois la na aonde o Baium fica tem um na parede ja!

Espero suas respostas obrigado!

Link para o comentário
Compartilhar em outros sites

cara não vai nemmmm, ja tentei de todo jeito e nada, o navicat não restaura a db.

Uso o mais novo o 8.1.9 enterprise.

 

Clique para ampliar

navicat8.th.png

 

navicat81.th.png

 

ja consegui faze ele conecta que antes nem isso ele tava fazendo, mas não sei ate quando ele vai funfa.

me ajuda ai de alguma maneira.

 

[]'s

Link para o comentário
Compartilhar em outros sites

KELVIN, SOU NOVATO AINDA NESSE NEGÓCIO DE MONTAR SERVER, EH MINHA 1º VEZ Q TENTO MONTAR E DAH CERTO, FIZ TUDO NO TUTORIAL... PEGOU TUDO BLZ, NO-IP PEGOU LEGAL, MAS LAH NO FINALZINHO QUANDO VC DIZ: 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

 

EU NAO ENTENDI NADA PQ NAO MEXO COM ISSO...

ONDE FICA ISSO?EH LAH EM SERVER? ME EXPLICA...

EU ABRI O L2.exe MAS NAO CONSEGUI LOGAR, PQ? :(

6u4Zj.jpg

Link para o comentário
Compartilhar em outros sites

vc tem que editar o l2.ini na pasta system do seu cliente

 

usa o L2fileedit para abrir onde tiver serveradress ( ou algo assim) vc coloca seu no-ip para os cara de fora logar (cliente que não está no mesmo pc do server) e coloca seu ip interno pra vc logar

Link para o comentário
Compartilhar em outros sites

Esse pessoal não presta atenção... se você seguir certinho esse tutorial, com alguma rev postada aqui (tipo l2jfree 1.2.10 Gracia parte 2, as de interlude e etc) funciona blz...

 

nego quer tudo mastigadinho (ta nem todos, mas... procurem tentar mais antes de vir aqui perguntar pessoal, as vezes é bobeira, erro de atenção)

EM BREVE - GALAGARD.COM.BR

SERVIDOR Grand Crusade - 50x

SERVIDOR Classic - 8x

Link para o comentário
Compartilhar em outros sites

vlw ae.. o negócio foi soh pensar.. eu tava confundido l2.ini com l2.exe.. xD

Agora deu tudo certinho... consegui botar o char GM numa boa...

EU BAIXEI O SERVER CONFIGURADO DO KELVIN COM WEAPONS DEATH E AKELAS OUTRAS SOH Q QNDO EU PASSO O MOUSE EM CIMA DELAS (IMAGEM PRETA) DA CRITICAL ERROR... EH PQ EU N TENHO ELAS NO MYNHA SYSTEXTURES?

6u4Zj.jpg

Link para o comentário
Compartilhar em outros sites

Alguem por favor cria um server ae pra mim com nome L2 Destroyers e me passa pelo e-mail:

[email protected]

pra mim e muito complicado!!!

 

Se alguem criar vlw ae!!!!

 

 

com esse tuto vc nao consegue.. :P LOL

Dá uma espiadinha..

 

Que Deus abençoe você e sua família..

Filipenses%2B4.19.jpg

Jesus está voltando, aceite-o e viva sua glória!!

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.