-
Total de Posts
66 -
Registro em
-
Última visita
-
Dias Ganhos
15
Tudo que Fulano postou
-
Botões funcionais: Como pode ver abaixo, sim, são acrescentadas mais status no Win_Character (Atalho “C”)
-
Olá a todos, estou buscando trazer tutoriais de coisas mais complexas, para que desenvolvedores que estão começando a pouco tempo, possa crescer ainda mais seu conhecimento. Vim trazer algo que poucos tem conhecimento e também tiveram curiosidade de saber, sobre mapas e sobre fixação de mapas. Quando eu construi o New History em 2018, eu customizei ele ao máximo e com isso eu aprendi bastante a trabalhar com mapas e me foi despertado muita curiosidade sobre. Hoje trabalhando com as novas versões, eu tive que adicionar na minha build mais de 25 mapas e vim ensinar vocês como adicionar novos mapas no servidor da forma correta (gs.conf). Lembrando, que todo o sistema de exportação e downgrade não precisa ser ensinado, pois há uma ferramenta perfeita para esse trabalho do Steve Langley (Skype: narrowengineer), o AngelicaMapEditor. Só deixando um adendo, a ferramenta não gera npcgen.data, path.sev e arquivos de configuração dos mapas (Sem esses, os mapas não ligam), então recomendo antes de tudo, clonar um existente (Limpo) e adicionar os novos arquivos exportados. Agora vamos para o que interessa! Vou usar como exemplo o mapa:a101 (is101). Você precisará abrir o arquivo instance.txt (element/configs.pck/instance.txt) e gs.conf (PWServer/gamed/gs.conf) Estando com os dois abertos, você irá pesquisar no instance.txt: "a101" Estará mais ou menos assim: ////////////////////////////////////////////////////////////// "北陆-蜃渊雪国遗址" { 91 "a101" // path "loading/a101" // loading background 2,2 // row, column 0 "r0_0-c1_1-l0.cfg" {} 0 } ////////////////////////////////////////////////////////////// Somente disso que precisaremos. Informações que iremos precisar para o servidor: 91 = ID do mapa (tag) “a101” = nome do mapa 2,2 = Row / Colum Sempre bom lembrar que esses valores podem alterar dependendo de qual mapa você irá utilizar, então não se apegue a isso. Agora vamos para o gs.conf Ensinamento básico, se você reparar: São 2 tipos de mapas: world_servers e instance_servers. O que você precisa definir primeiro é isso, se será um mapa aberto (world_servers), ou se será uma dungeon ( quando desmonta o grupo todo mundo é expulso e ela reseta) instance_servers. Bem, escolhendo isso, você irá definir como vamos solicitar esse mapa depois do último mapa definido em world_servers ou instance_servers, ficando assim: world_servers = gs01;/*imagine vários mapas definidos*/;is101; Então você percebeu que vamos chamar nosso mapa de is101, mas você pode colocar qualquer nome (nessa etapa e nas demais definições), exemplos: zd411, ab587, z57… Como você é inteligente e já percebeu, eu defini meu mapa como um mapa aberto, ou seja, um world_server. Agora você vai terminar de configurar seu mapa, no final do arquivo gs.conf. Estarei explicando logo após o código. ;----------------------------------------------------------------------------------------------------- [World_is101] ;-------- Se o seu mapa é um world_servers World_Nome, caso contrário Instance_Nome ----- index = 126 tag = 91 base_path = a101/ limit = allow-root; grid = {80,80,25,-1000.0,-1000.0} base_region = {-1024.0,-1024.0} , {1024,1024.0} local_region = {-1024.0,-1024.0} , {1024,1024.0} cid = 0,2,13 [Terrain_is101] ;-------- Mude o Nome ----- szMapPath = map nAreaWidth = 512 nAreaHeight = 512 nNumAreas = 4 ;----- Normalmente é uma soma de Cols + Rows (Salvo exceções) nNumCols = 2 ;----- Numero de Columns no instance.txt nNumRows = 2 ;----- Numero de Rows no instance.txt vGridSize = 2.0f vHeightMin = 0.0f vHeightMax = 800.0f [MsgReceiverTCP_is101] ;-------- Mude o Nome ----- type = tcp listen_addr = INSTANCE101:12009 ;-------- Caso seja localhost, declare, mas lembre sempre de alterar a porta por exemplo 12010,12011.. ----- so_sndbuf = 16384 so_rcvbuf = 16384 tcp_nodelay = 1 listen_backlog = 10 [MsgReceiverUNIX_is101] ;-------- Mude o Nome ----- type = unix listen_addr = /tmp/gssock_is101 ;-------- Mude o Nome ----- so_sndbuf = 16384 so_rcvbuf = 16384 listen_backlog = 10 ;----------------------------------------------------------------------------------------------------- Bem, essa é a configuração do mapa a101. Tudo dependerá do tamanho do row e da column que pegamos na instance.txt Primeiro de tudo, você terá que adicionar um Index, lembrando, esse valor não pode ser igual outro mapa existente (dará conflito e os dois serão desligados), então use um valor depois do último mapa configurado, lembre-se também, que esse valor não pode passar de 128 (na 1.5.5), caso contrário, os monstros e npcs afundam no mapa. ( Usei 126). você terá que adicionar o id (Tag) para o ID do mapa no instance.txt, se o ID tiver errado (diferente do client), você toma disconnect ao tentar acessar o mapa. ( Usei 91). base_path é o caminho onde está o seu mapa, nesse caso, você altera apenas o nome ( Usei a101/ ). limit são variáveis de liberações do mapa, segue os exemplos em um fórum externo: [Conteúdo Oculto] Grid ( Como definir o valor ): O valor de Grid dependerá do seu Row / Column. Exemplos: Se o mapa for 2 / 2: 80,80,25,-1000,-1000 Se o mapa for 3 / 3 120,120,25,-1500,-1500 Se o mapa for 4 / 4: 160,160,25,-2000.-2000 Os exemplos acima são bem explicativos, caso não entendeu, basicamente: Você vai multiplicar o valor de grid x 25, ele dará o resultado total, ou seja: 80 x 25 = 2000. 2000 / 2 = 1000, então nesse caso: -1000, -1000. 120 x 25 = 3000. 3000 / 2 = 1500, então nesse caso: -1500, -1500. Assim por diante. base_region e local_region, você consegue esse valor através do AngelicaMapEditor. Os demais valores importantes de serem configurados eu deixei comentário no exemplo acima. Em caso de dúvidas fique à vontade em perguntar.
- 6 respostas
-
- 102
-
-
-
-
-
-
-
-
Olá todos, vim compartilhar com vocês hoje, um template que eu comprei há mais ou menos 1 ano e acabei não utilizando e também não tenho pretensão de utilizar. Esse template está no formato de html5 ( html, css e js), e está como uma tela em branco, você pode ajustar da maneira que deseja. Conteúdo do arquivo: Capturas de Tela: Baixar: Granage Template.rar
- 2 respostas
-
- 64
-
-
-
-
-
-
Bom dia Virtu, qual cpackage (PWServer) você está usando?
-
Bateu uma nostalgia agora, há mais de 7 anos que eu não vejo esse executável o/
- 3 respostas
-
- 2
-
-
-
- port forward
- portas
-
(e 3 mais)
Tags:
-
Informações: Versão compatível: 1.5.5v156 Essa lib foi desenvolvida por um amigo e aprimorada por mim, para que pudesse controlar os lances e batalhas de Guerra territoriais. Eu deixei todas as funções o mais didático possível, para que até mesmo leigos possam alterar as funções sem prejudicar a funcionalidade. Todos os comentários que fiz no arquivo script.lua, ajudará você a modificar a ferramenta. Você mesmo pode melhorar as funções como por exemplo, horário de inicio de lances, final e batalha. Você pode modificar para que, cada dia inicie em um horário diferente, basta retornar o valor correto de result. Como exemplo: function BidBeginTime( now ) --Inicio dos Lances -- Constantes local result = BattleManagerLogic(now) local hour = 12 -- Hora de Inicio local minuter = 1 -- Minutos (se for antes de 10 minutos, não coloque 05, coloque apenas 5) -- Variáveis if result == 0 then -- Se for domingo, os lances iniciaram ás 15:10 hour = 15 minuter = 10 end mylogfunc("BidBeginTime: now = "..now) mylogfunc("BidBeginTime: DAY = "..result) return result*DAY + hour*HOUR + minuter*MIN end Vai da imaginação de vocês, isso é apenas um exemplo. Instalação: - Extraia os arquivos nas referentes pastas ( já vai tudo separado ). - Adicione no seu ./start.sh o seguinte código quando iniciar gdeliveryd: cd /PWServer/gdeliveryd; LD_PRELOAD=twman.so ./gdeliveryd gamesys.conf > /PWServer/logs/gdeliveryd.log & - Configure o arquivo script.lua e pronto! Reinicie totalmente o jogo e basta aguardar o horário de inicio para os testes. Obs: Nunca adicione algo dessa forma no servidor de produção, sempre faça testes antes. TwManager.rar
- 10 respostas
-
- 129
-
-
-
-
-
-
-
Pelo que percebi está atualizando juntamente com as informações do monstro, por isso está piscando dessa forma. Basta você adicionar no código um tempo de refresh para chamar essa função. A China fez dessa forma, pisca, porém a cada 5 segundos.
-
Olá comunidade suportegm, Bem, hoje vou compartilhar com vocês algo que nós, os mais antigos, usamos bastante para descobrir problemas que causam quedas estranhas no mapa, Essa ferramenta ataca o serviço (GS), e compartilha conosco informações a fundo do que ocasionou a queda no mapa. Muitas pessoas cobram por serviços para descobrir quedas repentinas, então vim diminuir esse monopólio. # Problemas normalmente relatados por ele: - Login de personagem mal editado, ou com problemas no octets. - Edições que não foram suportadas pelo client, causando erros de asset. - Problemas com habilidades. - Problemas com instâncias. - Problemas com atributos e muito mais. # Requisitos para operar essa ferramenta: - Nível básico em linux. - Entender o básico como opera os serviços do perfect world. - Nível básico em assembly. # Instalando o gdb: - Com o nível básico em linux, você irá instalar o gdb em seu servidor, podendo ser: apt-get install gdb yum install gdb - Após instalado, com o jogo ligado, você vai executar o comando: gdb attach $(pidof gs) -ex cont - Ficará dessa forma abaixo, logo, você digite c, e aguarde o mapa cair novamente: - Após cair o mapa, dará uma mensagem de erro, onde foi a falha, para obter mais informações sobre, você deve digitar: bt E pronto, você já terá todas as informações necessárias que precisa para corrigir os problemas. É isso, até a próxima.
-
Bom dia, Somente ativar e desativar? Ou deseja mexer nas configurações gerais? Porque ativar e desativar apenas, você pode alterar em gdeliveryd/gamesys.conf, pesquise por pvp = E você altera os valores: 0 = PvE, 1 = PvP. Alterações em valores mais complexos como nível mínimo/nível máximo, alterações no tempo devem ser feitos em assembly, é um pouco mais complexo.