Jump to content
Facebook Whatsapp Twitter Youtube

Como funciona o dup de itens no PW


brucedeity
 Share

Recommended Posts

Citar

Sim, dup de itens pode acontecer em qualquer versão do jogo, e as maiores chances são de que já fizeram/vão fazer isso no seu servidor sem que você sequer tenha noção disso.


De tempos em tempos, explico como acontece o dup de itens no PW. Por isso, gravei um vídeo demonstrativo e aproveito esse post para compartilhar tudo o que sei sobre o processo e como evitar.

Como ocorre:

Quando um mapa é desligado—seja por crash, desligamento manual ou qualquer outro motivo—os personagens online nesse mapa tendem a sofrer um rollback de alguns segundos, caso o salvamento não seja realizado corretamente ou tenha ocorrido há vários segundos. A melhor forma de garantir um salvamento 100% eficaz é o jogador deslogar ativamente do jogo, pois o sistema salva os dados do personagem no momento do logout.

Com esse conhecimento, jogadores experientes utilizam dois personagens: um para sofrer o rollback intencionalmente e outro para não sofrer. Dessa forma, o personagem que não sofrerá rollback mantém os itens ou dinheiro desejados (recebidos do outro personagem), enquanto o que sofrerá rollback retorna ao ponto em que ainda possuía os itens ou dinheiro, efetivamente dupando a bagaceira”.

Como evitar:

O grande problema é o jogador saber quando o servidor ou mapa será reiniciado/desligado. Por exemplo, ao anunciar a contagem regressiva para desligamento do servidor para atualização (como mostro no vídeo), se o jogador souber quando o servidor será desligado, ele poderá duplicar itens facilmente com esse processo. Outro problema é o desligamento abrupto do servidor ("chutar a tomada"), que impede a GS de solicitar o salvamento dos dados corretamente para a Gamedbd. (isso pode resultar até em dup não intencional)

Uma técnica eficaz para evitar o dup é desligar a glinkd, o que desconecta todos os jogadores, mas mantém a GS online, permitindo ela solicitar o salvamento dos dados dos personagens sem problemas para a Gamedbd. Após um tempo, pode-se desligar tudo. Outra medida é bloquear temporariamente todas as formas de transferência de itens entre jogadores (jogar no chão, lojas, correio, presentes etc.) pelo menos 10 minutos antes do desligamento do servidor (tem funções no pwadmin que ajudam nisso, mas não totalmente. Eu fiz algumas modificações no meu código fonte para elas bloquearem ainda mais coisas).

Identificando itens duplicados:

Cada item no jogo possui as propriedades "guid1" e "guid2", onde "guid" significa "Globally Unique Identifier" (Identificador Globalmente Único). A GS gera esse identificador ao criar o item. Itens equipáveis e não empilháveis geralmente já possuem esse identificador ativo. Em teoria, é impossível que dois ou mais itens tenham os mesmos "guid1" e "guid2".

Com base nisso, é possível criar um script que percorre TODOS os itens do jogo, em TODOS os inventários relevantes de TODOS os personagens e verifica se há duplicatas de "guid1" e "guid2", identificando os malfeitores. A partir daí, cabe a você decidir as medidas a serem tomadas. Sendo assim, eu recomendo ativar a opção "has_guid" pelo RAE em itens importantes não stackaveis (pela minha experiência, infelizmente aplicar has_guid em itens stackaveis pode resultar em falsos positivos). Isso vai indicar à GS a necessidade de gerar "guid1" e "guid2" ao criar o dado item. Itens como livros, por exemplo, podem não ter essa opção ativada, permitindo que jogadores dupliquem itens valiosos (PanGu/Domínio por exemplo) sem serem detectados pelo script mencionado. Portanto, não é possível encontrar itens duplicados que não tenham o "has_guid" previamente ativo.

Se você desejar verificar se alguém duplicou itens no seu servidor, entre em contato comigo; tenho o script disponível para venda que faz a busca de forma super otimizada. :)


@edit: Como foi citado por alguns após esse post em outros lugares, existem outras formas de dup no PW além desse método que eu expliquei em detalhes. Mas a maioria se não todos usam a mesma “falha” no código do PW que permite se aproveitar da questão do rollback que o jogo naturalmente da em cenários específicos. Eu não quis citar nenhum outro método aqui, pois cada método tem sua aplicação/restrição/versão necessária e afins. O método citado aqui é o mais comum e o que eu posso garantir que funciona até hoje e que é capaz de causar uma boa dor de cabeça para algum ADM de servidor (igual já aconteceu comigo). Caso alguém queira acrescentar sobre outros tipos de dup, sinta-se avontade. Abraços e não deixem jogador de PW dupar.


Vídeo:

 

Edited by brucedeity
  • Curtir 2
  • Haha 1
Link to comment
Share on other sites

  • brucedeity changed the title to Como funciona o dup de itens no PW
Em 19/11/2024 em 04:39, kabalschutzer disse:

O ideial mesmo é da 1 drop na galera, o tempo de save é 5 min, dps mapa e process e gg 0 rb xd :classic_wink:

dentro da pasta glinkd use o comando pkill -9 glinkd aguarde 5 mim e depois desligue.

O comando vai desconectar todos online e os 5 mim é para o servidor salvar as informações dos personagens na DB, Evitando duplicidades caso alguém esteja tentando dupar .

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



Suporte GM

Comunidade de Perfect World do Brasil

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

Links

×
×
  • Create New...