Ir para conteúdo
Facebook Whatsapp Twitter Youtube

brucedeity

Developer
  • Total de Posts

    42
  • Registro em

  • Última visita

Tudo que brucedeity postou

  1. Aproveita a gambiarra que essa lojinha offline comum já é, e coloca pra geral sempre desconectar forçado.
  2. Deram uma dica lá na Ragezone dizendo que esse erro é devido ao nome da pasta do jogo, muda de chinês para apenas romanji, não sei dizer se realmente funciona porque não testei.. mas faz sentido.
  3. Pra quem for testar, recomendo baixar um client 174 e usar os arquivos necessários desse 173 pra fazer funcionar. Pelo menos pra mim esse 173 deu MUITOS reportbugs.
  4. Você consegue fazer isso pelo npcgen, coloca para o boss iniciar com um auto start delay (para ter um atraso no nascimento dele toda vez que o mapa iniciar) e depois coloca um tempo bom de respawn tipo os de um world boss, daí já fica nesse sentido de nascimento aleatório. O player só vai conseguir saber o horário certinho de nascimento se você informar quanto tempo demora para o boss renascer depois de morto.
  5. brucedeity

    Leitor de octets do PW em php

    Há algum tempo eu venho estudando sobre os octets do PW (hex strings) para adicionar os detalhes dos itens no visualizador de inventário do meu painel. Inclusive eu achei esses 2 pdfs que estão anexados nesse post perdidos por aí (Além de outros projetos relacionados), o que me ajudou bastante no começo. E apartir disso eu construi esse projeto em php chamado PWHexParser que recebe um octet de um item, o tipo do item e retorna um json como resultado, exemplos: Lendo octets de uma roupa: <?php require __DIR__ . '/../vendor/autoload.php'; $decoder = new App\Decoder(); $decoder->setItemType('Fashion'); // Weapon, Armor, Charm, Jewelry, Flight, Card... $decoder->sethexString('1e00000092470100010a620072007500630065000000'); //Mandarin Silk Gown $result = $decoder->decodeHexString(); header('Content-Type: application/json'); echo json_encode($result, JSON_PRETTY_PRINT); Resultado: { "level_req": 30, "color": 18322, "gender": 1, "creator_type": 1, "name_length": 5, "name": "bruce", "color_mask": 0 } Adivinhando o tipo do item (arma nesse caso): <?php require __DIR__ . '/../vendor/autoload.php'; $mask = 1; // Weapon $decoder = new App\Decoder(); $decoder->guessItemType($mask); $decoder->sethexString('5a00ff001001000031000000b4610000786900002c00040a4200720075006300650000000000090000000b00000000000000930200009b0500000000000000000000180000000000604000000000010000000000000003000000114500009200000001000000f02300004d000000cf2500000e000000'); $result = $decoder->decodeHexString(); header('Content-Type: application/json'); echo json_encode($result, JSON_PRETTY_PRINT); Resultado: { "level": 90, "class": 255, "strength": 272, "vitality": 0, "dexterity": 49, "magic": 0, "min_durability": 250, "max_durability": 270, "item_type": 44, "item_flag": 4, "name_length": 10, "name": "Bruce", "ranged_type": 0, "weapon_type": 9, "weapon_grade": 11, "ammunition_type": 0, "min_physical_damage": 659, "max_physical_damage": 1435, "min_magic_damage": 0, "max_magic_damage": 0, "attack_rate": 0.83, "attack_range": 3.5, "minimum_range": 0, "sockets_count": 1, "sockets": [ 0 ], "addons_count": 3, "addons": { "special_addons": [ { "id": 1297, "value": 146, "level": 1 } ], "normal_addons": [ { "id": 1008, "value": 77 }, { "id": 1487, "value": 14 } ], "refine_addons": [ ], "socket_addons": [ ] } } O projeto está disponível no Github e também é possível instalar via composer: Ele não está 100% finalizado ainda, mas já da pra utilizar em algum projeto de seu interesse. :) Hex Data Guide v2T2.pdf Hex Code Guide By Drakaer.pdf
  6. Desenvolvi esse sistema de logs nos últimos dias e acho que ele pode ser útil para mais alguém. :) Ele lê os arquivos world2.* e gera logs legíveis em json, o que permite até usa-lo como base para algum outro projeto. Um diferêncial que eu estou testando nele é a ideia de separar os logs em pastas de personagem, cada personagem dentro do jogo terá seus logs salvos em uma pasta com seu ID. Eu ainda estou trabalhando nele e o projeto está disponível no github caso alguém queira contribuir ou ver o código antes de baixar. Download Instalação: Dentro da pasta do pwlogify, rode o comando composer install (Se ainda não tiver ele instalado: apt-get install composer) Abra o arquivo start_pwlogify.sh e configure a variável script_path de acordo com o caminho que você colocou o projeto. Abra também o arquivo world2_listener.sh na pasta scripts e configure a variável server_path se necessário. No diretório raiz do projeto, rode o seguinte comando: chmod +x start_pwlogify.sh stop_pwlogify.sh scripts/world2_listener.sh. Execute ./start_pwlogify.sh ou ./stop_pwlogify.sh para iniciar/parar o script. Obs: eu desenvolvi ele usando como base a versão 152. Exemplos dos logs gerados:
  7. brucedeity

    Excluir 1 clã

    Sem muito contexto é difícil saber 100%, da uma olhada nos logs world2.* (Se não me engano é no world2.trace) Se quiser, pode usar o comando “tail -f arquivo” pra te ajudar a saber a ver exatamente o erro sendo printado em algum desses arquivos
  8. Vou estudar um pouco sobre essa solução do spinlock, também estou pensando em um jeito de poder atualizar apenas coisas específicas em vez de querer atualizar tudo
  9. Sim, eu pretendo testar bastante antes de realmente pensar em usar isso em produção, até lá já vai me adiantar um bom tempo em ambiente de testes
  10. Adicionado o exemplo de uma atualização do conteúdo do tasks.data
  11. Não, você simplesmente sobrescreve a memória que já estava em uso com as novas informações. Estou testando bem para ver o quão viável é usar isso em um servidor em produção e até o momento o único ponto ruim é o povo continuar jogando sem atualizar o jogo
  12. brucedeity

    Script para backup do servidor

    Há um bom tempo eu criei esse script para fazer backup dos arquivos de um servidor meu e estou disponibilizando para quem precisar. ele faz backup das seguintes coisas: Database dos personagens (gamedbd/uniquenamed) Contas dos players (mysql) .datas (opcional, e você pode colocar para o script não fazer backup de algum .data específico) Depois ele junta tudo em um zip. backup.sh
  13. Pergunta muito específica, poderia explicar qual é seu objetivo com isso ?
  14. Pode ser que seja útil para alguém que esteja mexendo com a 1.5.1 Essa correção coloca os ícones de quest no modo clássico, caso você queira manter o modo moderno o caminho é mexer na resolução do patequest.tga. patequest.zip
  15. Eis um dos poucos links que a LUG ainda mantem vivo (Não sei por qual motivo) Se trata do client da 142v27 que eles uparam já com a atualização instalada. Bem na época que atualizar manualmente demorava algumas dúzias de horas.. O interessante dessa versão é que tem algumas skills dos Mercenários que estão com ícones diferentes dos que são usados hoje em dia. Acredito que nem a nirvana mágica tenha. Link do artigo da LUG Link de download direto do Instalador
  16. Recentemente um usuário do grupo de devs com nick de "Alien" disponibilizou algumas alterações que ele fez em sua src gratuitamente. Então eu estou vindo aqui divulga-las e disponibilizar o arquivo que ele nos enviou pois são simplesmente muito boas! Ps: precisa saber o que está fazendo para poder implementar, eu precisei criar alguns getters para o código funcionar. Prints da minha implementação abaixo: edits.txt

Suporte GM

Comunidade de Perfect World do Brasil

Copyright © 2023-2024 SuporteGM Powered by Invision Community
Поддержка Invision Community в России

Links

×
×
  • Criar Novo...