O fórum teve que ser recriado do zero, usuários do fórum antigo precisam se cadastrar novamente e caso você seja usuário vip se identifique perante a um administrador que o status vip será reatribuído..

Welcome to L2JDream Project

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

  • Announcements

    • Wallz

      Suporte e Serviço Pago: Tabela de Valores!   03/04/2023

      Devido a acontecimentos recentes e para eu não parar de mexer de vez com l2j, a pedido de alguns clientes, a partir de hoje, suporte remoto, edição de dlls, edição de patches de proteção e atualizações será cobrado um valor simbólico pois por causa de alguns usuários agindo de má fé eu vou ter que parar de disponibilizar conteúdo e suporte remoto grátis Suporte Remoto: Acesso remoto AnyDesk/TeamViewer: R$40,00/hora ~ R$25,00/fração de hora (15~30 minutos) Instalação de Servidor no PC: R$60,00 (Para computador doméstico o servidor será configurado por padrão parar rodar em 127.0.0.1, pois eu não mexerei com portas de roteador) Instalação de Servidor em VPS/Dedicado: R$ 60,00 (Apenas a instalação dos programas e da pack, não inclui configurar in-game, add npc/itens custom nem qualquer outra modificação) Add Item Custom: R$80,00 cada set (armaduras/armas) sem configurar status específico. Add/Criar Moedas Custom: R$40,00 se tiver que criar textura + R$20 por moeda Add NPC/Mob Custom: R$ 40,00 cada NPC, sem configurar status ou scripts Serviços adicionais: Updates de Pack: R$29,90/mês a pack Alterações específicas de Proteção: R$95,00 Restaurar Compra (usuários antigos): R$ 35,00 Liberar Interface Custom na Proteção: R$75,00 por DLL Adicionar Logo do Server na Proteção: R$65,00 Server Health & Overview: R$ 150,00/hora de teste Launcher Compacto: R$249,99 
      PAGAMENOS APENAS VIA PIX OU PICPAY.

Wallz

Founder
  • Content count

    415
  • Joined

  • Last visited

  • Days Won

    554

Everything posted by Wallz

  1. Caminho: Game/config/olympiad.properties Procure e deixe o valor assim # The Minimum number of participants for start is 2 parties on 3 persons there are enough MinParticipantTeamBase = 6 Agora vamos editar o HTML do gerenciador de olimpíadas. Caminho: Game/data/html/oly/olympiad_operator100.htm <html> <body> Grand Olympiad Manager:<br> Do you wish to participate in the games of the Grand Olympiad? <tr><td align=center><font color="bea27b">(%season% round, %period% circle, count of participant:%currpartcnt%)</font></td></tr> <a action="bypass -h npc_%objectId%_oly 102">"I want to join the games without a class distinction."</a> <a action="bypass -h npc_%objectId%_oly 101">"I want to join the class-based games."</a> <a action="bypass -h npc_%objectId%_Chat 0">Return</a><br> </body> </html> Modificaremos agora para que fosse possível o registro no 3v3: <html> <body> Grand Olympiad Manager:<br> Do you wish to participate in the games of the Grand Olympiad? <tr><td align=center><font color="bea27b">(%season% round, %period% circle, count of participant:%currpartcnt%)</font></td></tr> <a action="bypass -h npc_%objectId%_oly 102">"I want to join the games without a class distinction."</a> <a action="bypass -h npc_%objectId%_oly 101">"I want to join the class-based games."</a> <a action="bypass -h npc_%objectId%_oly 103">"I want to join the 3v3 games."</a> <a action="bypass -h npc_%objectId%_Chat 0">Return</a><br> </body> </html> Perceba que nós chamamos um bypass de ID diferente, 103 então ficou modificado assim: <a action="bypass -h npc_%objectId%_oly 103">"I want to join the 3v3 games."</a> Condições de participação: 1. 3 jogadores devem estar em party e estarem registrados 2. Após a vitória e derrota os pontos são dados ou retirados. 3. Todos os pontos de vitória são divididos entre os três. 4. O herói é dado se o jogador da classe acumular mais pontos! Como há uma entrega de herói? Se o jogador participou dos Jogos Olímpicos 3 vs 3 e 1 vs 1 - os pontos são resumidos. A entrega do herói acontece apenas para o 1º jogador da classe, não importa se ele lutou no 3x3 ou 1x1 - entrega apenas para o 1º jogador da classe que somar mais pontos.
  2. Você pode definir a data e horário da primeira siege do seu servidor, para isso dentro do jogo de o comando: //admin e selecione a opção Residences e o castelo desejado: Para suspender automaticamente a siege você precisa a cada 7 dias editar ou altera a data dentro da XML em: Game\data\events\siege e como exemplo pegamos [1] gludio_castle.xml Teremos um parâmetro semelhante a este dentro do documento <parameter name="siege_schedule" value="0 16 +14:* * 7|0 20 +14:* * 7" /> 0 16 +14:* * 7|0 20 +14:* * 7 0 16 +14: * * 7 (0 16) - 16:00 +14 - Depois de quantos dias será a próximo siege, neste exemplo, após 14 dias (2 semanas). Se você desejar incluir mais uma semana (+7) : * * 7 - Dia da semana. Em nosso exemplo será no domingo (estes são exemplos de Cron, aprenda-os). O segundo parâmetro em si também carrega a própria informação, MAS já para a segunda siege desse castelo. Até onde você sabe, alguns dos castelos iniciam sieges em ondas diferentes. Existem apenas dois deles. | 0 20 +14: * * 7
  3. Caminho de Augmentation e Status: Game/data/optiondata/ Caminho de Chances: Game/data/variation_data.xml Caminho para as variações: Game/data/variation_group.xml Exemplo do OptionData <Optiondata id = "2600"> - ID da LifeStone (stat/skill) <For> <Add order = "0x40" stat = "maxMp" value = "20.72" /> - Status <Add order = "0x40" stat = "regCp" value = "0.28" /> - Status Exemplo de Game/data/variation_data.xml <Variation_data mineralId = "8723"> - É o ID de uma Lifestone <Options type = "WARRIOR"> - Tipo de arma que as variações 1 e 2 será aplicado em armas do tipo físico. <Variation1> - Dados para a variação numero 1 <Group chance = "100.0"> - A taxa de drop de augmentation do grupo. Não pode ser maior que 100%. <Option id = "1" chance = "50.0" /> - Uma chance de aumentar a precipitação, a quantidade de chances dentro do grupo para a opção não poder exceder 100%. O próprio Id é obtido do Game/data/optiondata/ <Option id = "2" chance = "50.0" /> <Variation2> <Group chance = "50.0"> - A chance de drop de augmentation do grupo, não pode exceder 100%. <Option id = "7281" chance = "50.0" /> <Option id = "7282" chance = "50.0" /> <Group chance = "50.0"> <Option id = "8191" chance = "50.0" /> <Option id = "8192" chance = "50.0" /> <Options type = "MAGE"> - É o mesmo exemplo do inicio desta postagem no Type Warrior só que agora para Magos. <Variation1> <Group chance = "100.0"> <Option id = "3641" chance = "50.0" /> <Option id = "3642" chance = "50.0" /> <Variation2> <Group chance = "50.0"> <Option id = "7281" chance = "50.0" /> <Option id = "7282" chance = "50.0" /> <Group chance = "50.0"> <Option id = "8191" chance = "50.0" /> <Option id = "8192" chance = "50.0" />
  4. Como criar um spawn Criando spawn !! A especificidade do nosso servidor é que temos todos os dados sobre a localização dos NPC's em formato XML. 1. Dados da localização: Game\data\spawn 2. Você precisa criar um arquivo, por exemplo 96_96.xml com o seguinte conteúdo. Na verdade, criamos um arquivo vazio sem nenhum spawn. <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE list SYSTEM "spawn.dtd"> <list> </list> 3. Agora vamos criar a localização do NPC (spawn). Para o Administrador existem alguns comandos disponíveis como: 3.1. //spawn_loc npc_id - gera um único spawn. Projetado para não gerar (spawn) mobs. Melhor para teleporters, Shops etc Em seguida, nosso servidor gerou os seguintes resultados <spawn name="[custom_spawn]"> <npc id="40010" count="1" respawn="60" pos="82520 149192 -3472 57343" /> </spawn> 3.2. //spawn_loc 300 40010 .Spawn locations (usado principalmente no que seria rapidamente colonizar localização) - i.e., nós construímos um quadrado devido às arestas longas. Também em 1 a praça, podemos adicionar um monte de NPC Obtemos os seguintes resultados <spawn name="[custom_spawn]"> <mesh> <vertex x="82306" y="149106" minz="-3472" by maxz="-3344" /> <vertex x="82606" y="149106" minz="-3472" by maxz="-3344" /> <vertex x="82606" y="149406" minz="-3472" by maxz="-3344" /> <vertex x="82306" y="149406" minz="-3472" by maxz="-3344" /> </mesh> <npc id="40010" count="1" respawn="60" /> <npc id="40011" count="1" respawn="60" /> <npc id="40012" count="1" respawn="60" /> </spawn> Agora nos voltamos para o significado das linhas: npc id="40010" - ID do NPC queremos auditoria count="1" - O which we need to Caspionet in this square. Very convenient if we need to quickly populate the entire location. Specify the desired number of SPC respawn="60" - O período de tempo o qual NPC para ira aparecer após a morte. name="" - Em geral de qualquer maneira, você pode especificar qualquer conveniente. ou Pode apenas usar [custom_spawn]
  5. Para ajustar o Evento PVP no jogo é necessário digitar o comando //pvpevent no chat Irá aparecer na tela do menu principal mostrando as regras para todos os eventos. Interpretação dos campos: Active - whether they are all On Off Announce time - time that will announce the start of the Event Announce reduct - time after which the administration will post Announce Field Start time (add) - in a time when you add will run all Events.Example: 12:00;12:30;13:10;14:40 Field Instances - enter into it are instances in which the events. The default is 802;804. And enter in the Instances. h3. Tabs for individual configuration's Event All game events are set in separate tabs - TvT / CtF / DM The interpretation of the fields: Enabled - whether the event at all to start Capcha - Se CAPTCHA está habilitado para registro Req part - O número mínimo de participantes para iniciar Evento Max part - maximum number of participants in the event Min level - número máximo de participantes do evento Max level - O nível mais alto dos participantes Time - A hora do evento Just below the adjusted awards: Fields: Team Reward - campos para os quais prêmios serão dadas todas as equipe vencedora. Exemplo: 57: 10,000 or more an item 57: 10,000; 4037: 1 Top Reward - campos para os quais prêmios serão dadas um jogador da equipe vencedora, que fez mais Kills do que qualquer um. Example: 57: 10,000 or more an item 57: 10,000; 4037: 1 Mais opções em que você pode configurar server_variables.sql
  6. Caminho:Game\config\server.properties Config: NoDropItems Exemplo para um servidor PvP:
  7. Caminho: Game\config\chatfilters.xml Resetar as regras sem reiniciar o servidor (no jogo pelo GM) - //admin > Server > Components - Reload Chat Filter Na verdade, já foram descritas todas as regras para o nível mínimo e palavrões, etc. Mas essa parte é comentada - como exemplo, tomamos: Bate-papo Proibido para Novatos, limite, envie Aviso Code: <!-- <ChatFilter> <Channels>SHOUT,TRADE,L2FRIEND</Channels> <Level>20</Level> <Action>WarnMsg</Action> <WarnMsg>common.ChattingProhibitedForNiewbies</WarnMsg> </ChatFilter> --> "What at us has to it will turn out at the exit if we want to establish these rules" Code: <ChatFilter> <Channels>SHOUT,TRADE,L2FRIEND</Channels> <Level>20</Level> <Action>WarnMsg</Action> <WarnMsg>common.ChattingProhibitedForNiewbies</WarnMsg> </ChatFilter> Mensagem de Advertencia colocada <WarnMsg>common.ChattingProhibitedForNiewbies</WarnMsg> Caminho: Game/data/strings/strings_en.properties
  8. Caminho: : Game/config/clan.properties Params: Em valor NpcClanCrestDisplay = -1 bandeira não será exibida Em valor NpcClanCrestDisplay = 0 A bandeira do clã do proprietário do território será exibida Se você deseja que o logotipo do seu servidor seja exibido em todos os territórios, é NECESSÁRIO especificar clan_id (Já criado e o logotipo estabelecido) no campo. Exemplo: NpcClanCrestDisplay = 268480143 Padrão: NpcClanCrestDisplay = -1
  9. 1. Rate de enchants do servidor Code: # Chances de enchant nessa ordem : +1;+2;+3;...;+EnchantMax # Quantidade de elementos deve ser igual a EnchantMax. Isso é, se EnchantMax = 20, aqui deve ter 20 valores definidos. EnchantChancesWeapon = 100;100;100;50;50;33;25;20;14;11;8;6;5;4;3;2;2;1;1;1 EnchantChancesArmor = 100;100;100;50;50;33;25;20;14;11;8;6;5;4;3;2;2;1;1;1 EnchantChancesFullArmor = 100;100;100;100;50;50;33;25;20;14;11;8;6;5;4;3;2;2;1;1 EnchantChancesJewelry = 100;100;100;50;50;33;25;20;14;11;8;6;5;4;3;2;2;1;1;1 2. Como configurar detalhadamente condições para scrolls. Caminho - Game \data\enchant_items.xml Descrição principal dos parâmetros e seu valor: id="959" - item id infallible="false/true" - quebrar o item ou voltar para 0 on_fail="CRYSTALIZE/RESET/NONE" - CRYSTALIZE : quebrar com o Crystal . RESET: volta pra zero . NONE: Deixará valor do enchant no mesmo local. chance_bonus="" Bônus adicional ao enchant . 0.2 + 20% grade="" - Item Grade levels min="0" max="20" - Min and Max . Improvement level for a roll and the maximum level of a enchant scroll items_restrict - what sharpens WEAPON or ARMOR. Weapon or Armor. 1. Exemplo do que seria despejado em +3 em um enchant não bem sucedido <scroll id="ID SCROLL AQUI" infallible="false" reset_lvl="3" on_fail="RESET" chance_bonus="0" grade="S"> <levels min="0" max="20" /> <items_restrict type="WEAPON"/> </scroll> 2. Um exemplo de enchant não em +1, e em + how many that for 1 to sharpen. Nela, um exemplo de enchant aumentará em +3 para o valor atual no sucesso. <scroll id="ID DO SCROLL AQUI" infallible="false" reset_lvl="0" increment="3" on_fail="RESET" chance_bonus="0" grade="S"> <levels min="0" max="20" /> <items_restrict type="WEAPON"/> </scroll> 3. Como fazer que o enchant não volte ao seu valor, e deixe a anterior. <scroll id="ID DO SCROLL AQUI" infallible="false" reset_lvl="0" on_fail="NONE" chance_bonus="0" grade="S"> <levels min="0" max="20" /> <items_restrict type="WEAPON"/> </scroll> 4. Como adicionar chance adicional a um scroll de 20%, por exemplo <scroll id="ID DO SCROLL AQUI" infallible="false" reset_lvl="0" on_fail="RESET" chance_bonus="0.2" grade="S"> <levels min="0" max="20" /> <items_restrict type="WEAPON"/> </scroll>
  10. For editing chance of sharpening of skills: Path- Game\data\skill_tree\skill_enchant_data.xml Os dados são divididos em id de uma skill e está dentro - ID da rota Provavelmente, mesmo você não deve descrever o custo em Adena and SP. Os dados são mais claramente agrupados e claros.
  11. Caminho: Game/data/zone Fomato: XML Por exemplo, escolha qualquer zona padrão - por exemplo: Game/data/zone/ peace_zone.xml XML: <zone name="[primeval_peace1]" type="peace_zone" > <polygon> <!-- 원시의 섬 선착장(20_17) --> <coords loc="10408 -27395 -4290 -1290" /> <coords loc="12065 -25334 -4290 -1290" /> <coords loc="12223 -23159 -4290 -1290" /> <coords loc="10424 -22340 -4290 -1290" /> <coords loc="9566 -23131 -4290 -1290" /> <coords loc="9290 -24261 -4290 -1290" /> </polygon> </zone> Agora logo abaixo estamos modificando a zona para remover o efeito nobles ou alguma outra habilidade ao entrar na zona. No exemplo abaixo está sendo removido o Buff Nobles e também o Shield XML: <zone name="[primeval_peace1]" type="peace_zone" > <set name="removeEffects" val="1323;1040" /> <!-- Blessing of Nobles and Shield --> <polygon> <!-- 원시의 섬 선착장(20_17) --> <coords loc="10408 -27395 -4290 -1290" /> <coords loc="12065 -25334 -4290 -1290" /> <coords loc="12223 -23159 -4290 -1290" /> <coords loc="10424 -22340 -4290 -1290" /> <coords loc="9566 -23131 -4290 -1290" /> <coords loc="9290 -24261 -4290 -1290" /> </polygon> </zone> Veja o que foi adicionado - <set name = "removeEffects" val = "1323; 1040" /> em que skill_id = 1323; skill_id = 1040 Você tem a liberdade de colocar quantos buffs quiser Opção 2: Caso quiser remover apenas 1 buff ao entrar na zona: XML: <zone name="[primeval_peace1]" type="peace_zone" > <set name="zoneBuffs" val="1323" /> <polygon> <!-- 원시의 섬 선착장(20_17) --> <coords loc="10408 -27395 -4290 -1290" /> <coords loc="12065 -25334 -4290 -1290" /> <coords loc="12223 -23159 -4290 -1290" /> <coords loc="10424 -22340 -4290 -1290" /> <coords loc="9566 -23131 -4290 -1290" /> <coords loc="9290 -24261 -4290 -1290" /> </polygon> </zone>
  12. Para editar qualquer classe de jogo sem modificar suas habilidades ou estatísticas básicas, adicionamos o serviço stats_custom_mod. Caminho: Game/ data / stats_custom_mod.xml Por exemplo para a classe Shillien Templar: XML: <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE list SYSTEM "stats_custom_mod.dtd"> <list enabled="false"> <!--Turning on the custom stat setting --> <!-- Setup example Shillien Templar class--> <player classId="106"> <!-- Shillien Templar --> <!-- Class id 106(Shillien Templar) when attacking class id 108(Ghost Hunter) gets bonuses 10% of mAtk and +20 Patk --> <targetPlayer classId="108"> <mul stat="mAtk" val="1.1"/> <add stat="pAtk" val="20"/> </targetPlayer> <!-- when equipped Dark Crystal Breastplate, Shillien Templar gets extra bonus 10% of mDef and +20 pDef--> <equipedWith itemId="365"> <!-- Dark Crystal Breastplate --> <mul stat="mDef" val="1.2"/> <add stat="pDef" val="30"/> </equipedWith> <!-- a bonus for Shillien Templar gets immediately and without any conditions, all the above bonuses are also added to the current--> <mul stat="mDef" val="1.3"/> <add stat="mAtkSpd" val="30"/> </player> </list> Você também pode adicionar um número ilimitado de classes e variações. Como um exemplo para Shillien Templar e Ghost Hunter: XML: <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE list SYSTEM "stats_custom_mod.dtd"> <list enabled="false"> <!--Turning on the custom stat setting --> <player classId="106"> <!-- Shillien Templar --> <!-- a bonus for Shillien Templar gets immediately and without any conditions, all the above bonuses are also added to the current--> <mul stat="mDef" val="1.3"/> <add stat="mAtkSpd" val="30"/> </player> <player classId="108"> <!-- Ghost Hunter --> <!-- a bonus for Ghost Hunter gets immediately and without any conditions, all the above bonuses are also added to the current--> <mul stat="mDef" val="1.3"/> <add stat="mAtkSpd" val="30"/> <add stat="pDef" val="30"/> <add stat="mAtk" val="30"/> </player> </list> Caso for necessário, reduza as estatísticas. Por exemplo, duelista: XML: <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE list SYSTEM "stats_custom_mod.dtd"> <list enabled="false"> <!--Turning on the custom stat setting --> <player classId="106"> <!-- Duelist --> <!-- a reduce stats for Duelist gets immediately and without any conditions--> <mul stat="mDef" val="0.8"/> <!-- reduce 20% of mDef --> <sub stat="mAtkSpd" val="30"/> <!-- reduce 30 of mAtkSpd --> </player> </list>
  13. To make to us to create grind in one pile (Por padrão, no jogo eles não se desenvolvem em uma pilha) É necessário para nós: 1. Nos pegamos o Id 6577 para encontrar um item necessário para nós data/items/ - por exemplo. está no arquivo 6500-6599.xml: Code: <etcitem id="6577" name="Blessed Scroll: Enchant Weapon (S)"> <!-- [blessed_scrl_of_ench_wp_s] --> <set name="class" value="MISC"/> <set name="crystal_type" value="NONE"/> <set name="icon" value="icon.etc_blessed_scrl_of_ench_wp_s_i05"/> <set name="price" value="30000000"/> <set name="stackable" value="false"/> и тут меняем на true (стопкковой). <set name="type" value="SCROLL"/> <set name="weight" value="120"/> <cond msgId="1508"> <not> <player olympiad="true"/> </not> </cond> </etcitem> 2. Nos precisamos editar o arquivo do jogo que está no seguinte local Interlude\system\etcitemgrp.dat and to open its file editor - the link to it https://yadi.sk/d/yzgZfj8m3Guvwe (depois das mudanças nos escolhemos o FORMATO do codigo 413, e NÃO 414) A estrutura dos campos neste arquivo consiste nos seguintes parâmetros: d drop_type drop_anim_type drop_radius drop_height UNK_0 drop_mesh drop_tex icon[0] icon[1] icon[2] icon[3] icon[4] icon[5] icon[6] icon[7] icon[8] durability weight material crystallizable type1 mesh_tex_pair_cntm mesh_tex_pair_m[0] mesh_tex_pair_cntt mesh_tex_pair_t[0] item_sound equip_sound stackable family grade and if is available for us it is sensitive gray substance in the head - to us to become clearly that before the last stackable parameter just and is responsible for display in the client - it will be piled or will occupy the separate slot VISUALLY. We already determined by the server that the point 6577 will be stackable . E também precisamos fazer no cliente: Linha original inicial - 6577 0 3 6 3 0 dropitems.drop_scroll_m00 dropitemstex.drop_scroll_t00 icon.etc_blessed_scrl_of_ench_wp_s_i05 0 120 18 0 0 1 1 ItemSound.itemdrop_scroll 0 0 0 We in it change value on: 6577 0 3 6 3 0 dropitems.drop_scroll_m00 dropitemstex.drop_scroll_t00 icon.etc_blessed_scrl_of_ench_wp_s_i05 0 120 18 0 0 1 1 ItemSound.itemdrop_scroll 1 0 0 Assim, fizemos nosso rolo de nitidez ou qualquer outro assunto empilhável visualmente no cliente e no servidor.
  14. Como usar: Existe um NPC pronto com o ID 40032, que inclui todas as classes possíveis de aprendizado. Além disso, ao abordar, dependendo da profissão, você recebe HTML do seguinte conteúdo e caminho Game\data\html-en\ multi_newbie_class.htm - classes iniciais básicas Game\data\html-en\ multi_first_class.htm - primeira profissão Game\data\html-en\ multi_second_class.htm - segunda profissão Game\data\html-en\ multi_third_class.htm - terceira profissão Suponha que precisamos que as profissões iniciantes tenham a oportunidade de aprender as habilidades de outras profissões, formamos html [npc_% objectId% _AltSkillList 10 | Mago Humano] Em _AltSkillList, este é o bypass para a multiproff em si, 10 é o ID da profissão; em nossos casos, é o Mago Humano. Suponha que, se você quiser dar a oportunidade de estudar Duelist por 3 profissões ou mesmo pela primeira, adicione neste formulário: [npc_% objectId% _AltSkillList 88 | Duelista] Você também pode adicionar opções não obrigatórias neste NPC, mesmo para um multiproff , e isso lhe dará a oportunidade de aprender habilidades em qualquer classe sem precisar encontrar o professor certo - [npc_% objectId% _SkillList | Aprenda habilidades básicas] - Ignore a lista de habilidades da profissão atual [npc_% objectId% _FishingSkillList | Aprenda habilidades de pesca.] - aprendendo habilidades de um pescador, mas muitas vezes usadas para aprender habilidades personalizadas Seu html final deve ficar mais ou menos assim:
  15. 1.Localizações dos arquivos de configurações - data / item_fake_appearance.xml 2. Formato XML Exemplos da operação deste sistema: Por exemplo, estamos usando o item id 485 Tattoo of Power, a esse item "anexamos" a identificação 6408 Roupa Formal (Casamento). No arquivo, obtemos este resultado: <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE list SYSTEM "item_fake_appearance.dtd"> <list enabled="true"> <item itemId="485"> <display itemId="6408"/> </item> </list> Observe que esse sistema precisa ser ativado usando o método <list enabled = "true">; por padrão, é falso! E assim obtemos esse resultado no jogo. Também podemos fazer um conjunto de armaduras, por exemplo, pegamos o Draconic Leather Set e o arquivo ficará assim: XML: <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE list SYSTEM "item_fake_appearance.dtd"> <list enabled="true"> <item itemId="486"> <display itemId="6379"/> <display itemId="6380"/> <display itemId="6381"/> </item> <item itemId="485"> <display itemId="6408"/> </item> </list> No jogo, ao equipar o item id 486 Tattoo of Fire no jogo, obtemos o seguinte resultado ao alterar a aparência: Um aviso, ao lado da pessoa que equipa a primeira vez, ele não é exibido corretamente, é necessário remover o item e equipar novamente o item básico, do lado de quem observar que volta ser exibido corretamente.
  16. ID do NPC: 40010 HTML: Game\data\html-en\mods\buffer XML: Game\data\buff_templates.xml O arquivo XML é o local onde você configura level, valores, condições e assim por diante. Vamos considerar a XML e seus buff_templates.xml formato: Exemplo: <template menuId="200" target="BUFF_PLAYER"> <consume> <item id="57" amount="200000" /> </consume> <produce> <skill id="1068" level="3" /> <skill id="1040" level="3" /> <skill id="1086" level="2" /> <skill id="1204" level="2" /> <skill id="1077" level="3" /> <skill id="1242" level="2" /> <skill id="1268" level="4" /> </produce> </template> Vamos entender estas tags: MenuId - É o ID que vamos criar um alvo de buffer, seja para BUFF_PLAYER ou BUFF_PET. Consume - ID e quantidade dos itens para dar o buff. Produce - São os valores com ID e nível dos buffs que serão entregues ao chamar esse MenuID. <consume> <item id="57" amount="200000" /> <item id="4037" amount="0" /> </consume> No exemplo acima coloquei para o item cobrado ser 200000 adenas. Dica: pode criar ou usar uma moeda existente para ser um "coin de buff" ou semelhante. Em amount se o valor for igual a 0 ele não vai consumir ao entregar o buff. Ou você pode colocar um consumo se for uma moeda recorrente. Além disso, você pode usar vários itens na planilha (buff_templates.dtd) a partir dos quais o primeiro dos existentes no inventário será consumido - é conveniente para contas premium com níveis diferentes. Exemplo: <consume anyFirst="true"> <item id="6673" amount="0" /> <item id="4037" amount="0" /> </consume> Recaptulando, a função produce é onde será armazenamento o buff ou o esquema de buffs que você deseja entregar para aquele ID. Entrega apenas 1 buff: <produce> <skill id="1068" level="1" /> -> Entrega apenas 1 buff </produce> Entrega vários buffs: <produce> <skill id="1068" level="3" /> <skill id="1040" level="3" /> <skill id="1086" level="2" /> <skill id="1204" level="2" /> <skill id="1077" level="3" /> <skill id="1242" level="2" /> <skill id="1268" level="4" /> </produce> Se você quiser limitar um buff para ser entregue apenas em um determinado level use a variável from_level, o player precisa ter 200000 e é necessário ter precisamente o level 20 no exemplo abaixo, veja: <consume> <item id="57" amount="200000" from_level="20"/> </consume> Para exigir um nível mínimo e ser livre para todos os subsequentes podemos usar a variável minLevel na tag do template: <template menuId="126" target="BUFF_PLAYER" minLevel="51"> -> Level minimo necessário para receber o buff. <consume> <item id="57" amount="200000" /> </consume> <produce> <skill id="1068" level="3" /> <skill id="1040" level="3" /> <skill id="1086" level="2" /> </produce> </template> Veja um exemplo de como adicionar um esquema de buff a um dialogo html localizado em \Gameserver\data\html-en\mods\buffer\1.html O dialogo vamos encontrar a ação assim: <a action="bypass -h scripts_services.Buffer:act ask=200&reply=1">Fighter 1 lvl</a> Vamos entender: ask=200 - É o ID que inserimos no campo MenuID, portanto, esse botão vai char o buff(s) que você colocou nesse template com as condições internas que você aprendeu neste guia. &reply=1 - É a pagina de retorno, o player clica, ganha o buff e retorna. Neste exemplo o replay é 1, voltara para a 1.html. Você pode criar htmls adicionais de sucesso para buff ou qualquer coisa que sua criatividade permita. GG, você entende o básico de como trabalhar com o buff.
  17. Requisitos MÍNIMOS PARA RODAR A PACK Hardware: CPU: 4 core RAM: 4 GB (Para o java) - Recomendado mínimo maquina de 8GB pra colocar o servidor online HDD: 20 GB. Desejável SSD/NVME Software: Para maior facilidade na hora de configurar seu servidor, segue abaixo os links dos programas corretos para o bom funcionamento: Java JRE 8 - - Programa necessário para o funcionamento da revisão, não sendo aceito em outra versão, para baixar abra o link abaixo. (Para Windows x64). JRE 8 Bellsoft: MySql Server 5.7 - Programa essencial para funcionamento do banco de dados do servidor, para baixar acesse o link abaixo e clique em download no arquivo (mysql-installer-community-5.7.x.msi) o instalador instala ambas as versões x86/x64. MySQL-5.7.33 : Navicat for MySql - Ferramenta para edição no Banco de Dados do servidor sendo indispensável para maior mobilidade e edição do servidor, para baixar acesse o link e selecione a versão x86 ou x64.. Navicat 12 x86 e x64 no Link Abaixo Sistema Operacional: Windows: Windows Server 2012 R2 (RECOMENDADO) Windows Server 2016 Windows Server 2019 Parte Humana: Raciocínio Lógico Básico Saber ler Seguir os Tutoriais
  18. Para configurar o evento TVT você precisa executar o comando //pvpevent logando no jogo. Vamos entender os campos acima: *Os valores de tempo são em minutos. Active - On para ativar e OFF para permanecer desligado. Announce time - Tempo em que anunciará o inicio do evento. Announce reduct - Tempo após o qual a administração publicará o Anúncio Horário em que os eventos ocorrerão (vale a hora do vps/dedicado) Exemplos: 12:00;12:30;13:10;14:40 Field Instances - São os ids das instâncias em que os players serão enviados após iniciar o evento, o padrão é 802 e 804 você pode encontrar instâncias em \gameserver\data\instances. Você pode encontrar mais opções em server_variables no banco de dados.
  19. Para configurar a emissão de recompensas por comprar, manter ou tomar um terrirório (Castelo/ClanHall), você precisa editar por cada território: Caminho: Game\data\events\siege\ Em seguida, abra o arquivo XML com o nome de qual você deseja editar, como exemplo [1] gludio_castle.xml Você vai encontrar duas linhas assim: <!- <parameter name="on_siege_end_attacker_owned_leader_reward" value = "4037:1" /> -> Este parâmetro é responsável pela recompensa na captura do castelo. <!- <parameter name="on_siege_end_defender_owned_leader_reward" value = "4037:1" /> -> Este parâmetro é responsável pela recompensa enquanto segura o castelo. Essas linhas estão comentadas no código para não estarem ativadas. Retire o comentário <!- -> da linha ou das linhas que deseja ativar. 4037 refere-se ao ID do item e 1 a quantidade. Ao final vai ter algo semelhante a isso: Agora Agora é só editar os outros territórios para recompensas individuais de outros castelos e regiões.
  20. Por exemplo, pegue o rate de XP de 10x para o servidor que queremos, e por exemplo, fazer rates do level 1 ao 20 a 15x. Tabela de exemplo se a taxa básica for x10: - 1-20 = x15 - 20-40 = x8 - 40 -52 = x5 - 61-76 = x10 O caminho mais fácil é editar a skill de grade: <skill id="239" levels="7" name="Expertise D"> <table name="#magicLevel">20 40 52 61 76 76 76</table> <table name="#power">1.15 0.8 0.5 1 1 1 1</table> <set name="icon" val="icon.skill0239"/> <set name="magicLevel" val="#magicLevel"/> <set name="target" val="TARGET_SELF"/> <set name="skillType" val="HARDCODED"/> <set name="operateType" val="OP_PASSIVE"/> <set name="canLearn" val=""/> <set name="isCommon" val="true"/> <for> <mul order="0x30" stat="ExpMultiplier" val="#power"/> <mul order="0x30" stat="SpMultiplier" val="#power"/> </for> </skill> <table name="#magicLevel">20 40 52 61 76 76 76</table> -> Intervalos de nível para cada level. <table name="#power">1.15 0.8 0.5 1 1 1 1</table> -> Multiplicação com base no rate padrão do servidor <mul order="0x30" stat="ExpMultiplier" val="#power"/> -> Inside sobre o XP. <mul order="0x30" stat="SpMultiplier" val="#power"/> -> Inside sobre o SP. Atenção: Atente a ordem do nível. 20 significa os valores do nível inicial até o 20, a casa 40 representa os levels do 21 até o 40 e assim sucessivamente. O 20 é o primeiro valor de level, então no parametro #power o primeiro valor será aplicado, neste caso 1.15. Assim Do level 1 até o 20 o rate padrão desse servidor de exemplo é 10x mas terá uma multiplicação de 1.15 tornando-o 15x.
  21. Caminho: Game/config/olympiad.properties Muito cuidado com os valores de SeasonTimeCalcMode, SeasonStartTime, SeasonEndTime, WeaklyBonusTime, NominateTime Valores # Permitir evento de olimpíada? # default: true OlympiadEnabled = true # Permitir espectador para jogadores? # default: true SpectationgAllowed = true # Máximo de observadores para o estádio # default: 18 MaxSpectatorPerStadium = 18 # Competições # Tempo # Season time calculation mode. # Possible values: # NORMAL - Season calculates from the 1st day of current month 00:00 # CUSTOM - Season calculates from the today date 00:00 SeasonTimeCalcMode = CUSTOM - We declare that the Olympiad takes the starting point not from the first day of the month, but from the moment of launching the server. # The start time of the season # default: 2 00:00 SeasonStartTime = 00:00 - So we say that we have validation at 00:00 and not on the 2nd day of the month at 00:00 # End of season # default: +1:1 00:00 SeasonEndTime = +7 00:00 - We declare that the end of the season will be 7 days after the server starts and every subsequent cycle. # Durante a competição # padrão: 18:00 CompetitionStartTime = 18:00 # Hora de término das competições # padrão: +1 00:00 CompetitionEndTime = +1 00:00 # While handing out bonuses # default: +7 18:30 WeaklyBonusTime = +2 18:30 We declare that bonuses will be accrued every second day from the moment of the initialization of the cycle # Time distribution of heroism # default: +1:1 12:00 NominateTime = +7 12:00 - So we declare that Hero nomination will occur after 7 days of each cycle # Pontos no início da temporada # defailt: 10 SeasonStartPoints = 18 # Competição mínima para o herói # default: 15 MinRewardableHeroComps = 9 # Competições mínimas para tokens # default: 15 MinRewardableNobleComps = 9 # Rank PointSettlement = 100; 75; 55; 40 ; 30 # itens Liquidação Por Ponto ItemsSettlementPerPoint = 1000 # herói pontos de bônus HeroPointBonus = 300 # semanais bônus Ponto WeaklyBonusPoints = 3 # Victory Recompensa item ID VictoryRewardItemID = 6651 VictoryRewardClassFreeCount = 40 VictoryRewardClassBasedCount = 65 VictoryRewardTeamBasedCount = 85 MaxTotalMatches = 300 MaxClassFreeMatches = 300 MaxClassBaseMatches = 300 MaxTeamBaseMatches = 300 MinParticipantClassFree = 11 MinParticipantClassBase = 11 MinParticipantTeamBase = 6 Isso é tudo - temos tudo configurado para 7 dias de um ciclo completo de Oly. Se você quiser qualquer outro tempo de ciclo, altere 7 dias para qualquer outro que deseje. O mínimo é um dia! Altere e configura os valores 1 a 1. Se suas alterações foram feitas após o encerramento da temporada. É necessário limpar os dados da tabela oly_seasson.
  22. Caminho: Game\data\stats\skills Você pode alterar o ranking de classificação navegue até a pasta de skills e procure pela skill Clan Essense (372) <skill id="372" levels="3" name="Clan Essence"> <table name="#maxMp">1.03 1.05 1.06</table> <set name="icon" val="icon.skill0372"/> <set name="magicLevel" val="1"/> <set name="target" val="TARGET_SELF"/> <set name="skillType" val="BUFF"/> <set name="operateType" val="OP_PASSIVE"/> <set name="minPledgeClass" val="6"/> <set name="isCommon" val="true"/> <for> <mul order="0x30" stat="maxMp" val="#maxMp"/> </for> </skill> Você pode alterar o valor de minPledgeClass para 0 assim: <set name="minPledgeClass" val="0"/> Valores de todas as classificações: VAGABOND - 0 VASSAL - 1 HEIR - 2 KNIGHT - 3 WISEMAN - 4 BARON - 5 VISCOUNT - 6 COUNT - 7 MARQUIS - 8
  23. Player Offline Para entregar um item a um jogador que está offline nós vamos usar uma query (comando SQL) simples no navicat ou HeidiSQL. No navicat acesse seu Banco de dados -> Queries -> New Query INSERT INTO 'items_delayed' ('owner_id', 'item_id', 'count') VALUES (12345678, 57, 1000); Nós entregamos ao personagem de ID 12345678 a quantidade de Mil adenas. Você pode saber o ID do personagem na tabela characters na coluna obj_Id. Player Online Para entregar um item a um jogador que está online vamos usar um comando admin no console (chat) do jogo. Digite: //give_item <clique_no_player/nome> <item_id> <quantidade> Então eu posso clicar no player Fulaninho e apenas digitar //give_item 57 1000 (dei 1000 adenas para o player Fulaninho) Ou se não tiver com o target disponível você pode usar o comando //give_item Fulaninho 57 1000 (mesma coisa, só incluir após o comando o nick do player). Outros exemplos: Quando estiver com o target no player: //give_all <item_id> <amount> - Entrega o item a todos os players do servidor. //give_all_by_ip <item_id> <amount> - Entrega o item a todos os players do servidor com um determinado IP. //give_all_by_hwid <item_id> <amount> - Da item a todos os jogadores do mundo com HWID diferente.
  24. Caminho: Game/data/zone/ Vamos pegar uma zona de exemplo em Game/data/zone/peace_zone.xml <zone name="[primeval_peace1]" type="peace_zone" > <polygon> <!-- 원시의 섬 선착장(20_17) --> <coords loc="10408 -27395 -4290 -1290" /> <coords loc="12065 -25334 -4290 -1290" /> <coords loc="12223 -23159 -4290 -1290" /> <coords loc="10424 -22340 -4290 -1290" /> <coords loc="9566 -23131 -4290 -1290" /> <coords loc="9290 -24261 -4290 -1290" /> </polygon> </zone> Agora vamos modificar uma zona para que ao entrar nela o personagem receba Nobles Buff automaticamente. <zone name="[primeval_peace1]" type="peace_zone" > <set name="zoneBuffs" val="1323:1" /> <!-- Nobles Buff --> <polygon> <!-- 원시의 섬 선착장(20_17) --> <coords loc="10408 -27395 -4290 -1290" /> <coords loc="12065 -25334 -4290 -1290" /> <coords loc="12223 -23159 -4290 -1290" /> <coords loc="10424 -22340 -4290 -1290" /> <coords loc="9566 -23131 -4290 -1290" /> <coords loc="9290 -24261 -4290 -1290" /> </polygon> </zone> Colocamos esse campo após o tipo da zona, sendo o formato skillid:level veja abaixo <set name="zoneBuffs" val="1323:1" /> <!-- Nobles Buff --> Se quiser adicionar mais de um buff a zona basta separar por ponto e virgula ; veja um exemplo: <zone name="[primeval_peace1]" type="peace_zone" > <set name="zoneBuffs" val="1323:1;1045:6;1047:4;1048:6" /> <polygon> <!-- 원시의 섬 선착장(20_17) --> <coords loc="10408 -27395 -4290 -1290" /> <coords loc="12065 -25334 -4290 -1290" /> <coords loc="12223 -23159 -4290 -1290" /> <coords loc="10424 -22340 -4290 -1290" /> <coords loc="9566 -23131 -4290 -1290" /> <coords loc="9290 -24261 -4290 -1290" /> </polygon> </zone> Ficou no formato: skillid,level;skillid,level <set name="zoneBuffs" val="1323:1;1045:6;1047:4;1048:6" /> Vamos melhorar e incluir tempos diferentes, veja abaixo: <zone name="[primeval_peace1]" type="peace_zone" > <set name="zoneBuffs" val="1323:1/6000;1045:6/6000;1047:4/6000;1048:6/6000" /> <polygon> <!-- 원시의 섬 선착장(20_17) --> <coords loc="10408 -27395 -4290 -1290" /> <coords loc="12065 -25334 -4290 -1290" /> <coords loc="12223 -23159 -4290 -1290" /> <coords loc="10424 -22340 -4290 -1290" /> <coords loc="9566 -23131 -4290 -1290" /> <coords loc="9290 -24261 -4290 -1290" /> </polygon> </zone> <set name="zoneBuffs" val="1323:1/6000;1045:6/6000;1047:4/6000;1048:6/6000" /> O formato fica skillID,level/tempo;skillID,level/tempo;skillID,level/tempo Condições: Não funciona em Olly ou se estiver em duelo, morto, comércio ou com status de abnormal.
  25. Caminho: Game/data/zone/epic.xml Vamos usar o Queen Ant para servidores PvP e para personagens de level alto - evitar cair na zona e tomar Raid Curse. <zone name="[queen_ant_epic]" type="epic" > <set name="playerMinLevel" val="1" /> <set name="playerMaxLevel" val="48" /> <set name="playerLevelLimitBackLoc" val="-25464 172424 -4203" /> <polygon> <coords loc="-23176 185080 -6000 -5500" /> <coords loc="-20104 185080 -6000 -5500" /> <coords loc="-20104 177928 -6000 -5500" /> <coords loc="-23176 177928 -6000 -5500" /> </polygon> </zone> Mude para <zone name="[queen_ant_epic]" type="epic" > <polygon> <coords loc="-23176 185080 -6000 -5500" /> <coords loc="-20104 185080 -6000 -5500" /> <coords loc="-20104 177928 -6000 -5500" /> <coords loc="-23176 177928 -6000 -5500" /> </polygon> </zone> A restrição de level e o debuff paralyze foram retirados. E agora precisamos fazer o Level UP para Queen Ant e Minions e se quiser aumente status de HP, MP, Defesas, Ataque etc para evitar um boss fraco. Caminho: Game/data/npc/29000-29099.xml IDs: 29001, 29002, 29003, 29004, 29005