athos47a
08-19-2024, 04:19 PM
Fala, pessoal! Boa tarde!
Estou precisando de uma ajuda para resolver um problema que o Louis não conseguiu solucionar.
Já joguei em dois servidores que implementaram a funcionalidade do comando /passedebatalha, que permite resetar as recompensas já coletadas no passe de batalha, possibilitando ao jogador pegar os itens novamente. No entanto, esse comando não existe no MU Server Season 6 do Louis. Mas eu descobri como esses servidores implementaram essa funcionalidade.
Como o comando é customizado, o que eles fizeram foi pegar o comando /mreset e modificar para /passedebatalha. Em seguida, foram até o banco de dados, na procedure WZ_SetMasterResetInfo, e alteraram a lógica para resetar o passe de batalha.
Ao invés de deixar assim:
UPDATE Character SET ResetCount=@Reset, MasterResetCount=@MasterReset WHERE AccountID=@Account AND Name=@Name
Eles trocaram para:
DELETE FROM CustomBattlePassReward WHERE Name=@Name
Até aqui, tudo perfeito.
Seguindo esse passo a passo, você pode alterar o comando /mreset para /passedebatalha e modificar a procedure no banco de dados para resetar a tabela de recompensas do passe que o jogador já coletou.
No entanto, há um ponto muito importante nesse processo: a configuração no arquivo GameServerInfo - Command, que envolve o Master Reset.
Primeiro, precisamos garantir que o nível (Level) do personagem, o reset, e os pontos permaneçam inalterados após o uso do comando /passedebatalha.
O problema é que não estou conseguindo manter o mesmo nível do personagem após usar o comando. Se eu definir 0 nas configurações do Master Reset, o nível do personagem também é alterado para 0. Veja o exemplo abaixo:
;================================================= =
; Configurações do Comando Master Reset
;================================================= =
CommandMasterResetType = 0
CommandMasterResetCheckItem_AL0 = 0
CommandMasterResetCheckItem_AL1 = 0
CommandMasterResetCheckItem_AL2 = 0
CommandMasterResetCheckItem_AL3 = 0
CommandMasterResetMove_AL0 = 0
CommandMasterResetMove_AL1 = 0
CommandMasterResetMove_AL2 = 0
CommandMasterResetMove_AL3 = 0
CommandMasterResetQuest_AL0 = 0
CommandMasterResetQuest_AL1 = 0
CommandMasterResetQuest_AL2 = 0
CommandMasterResetQuest_AL3 = 0
CommandMasterResetSkill_AL0 = 0
CommandMasterResetSkill_AL1 = 0
CommandMasterResetSkill_AL2 = 0
CommandMasterResetSkill_AL3 = 0
CommandMasterResetLevel_AL0 = 0
CommandMasterResetLevel_AL1 = 0
CommandMasterResetLevel_AL2 = 0
CommandMasterResetLevel_AL3 = 0
CommandMasterResetReset_AL0 = 0
CommandMasterResetReset_AL1 = 0
CommandMasterResetReset_AL2 = 0
CommandMasterResetReset_AL3 = 0
CommandMasterResetMoney_AL0 = 0
CommandMasterResetMoney_AL1 = 0
CommandMasterResetMoney_AL2 = 0
CommandMasterResetMoney_AL3 = 0
CommandMasterResetCount_AL0 = 0
CommandMasterResetCount_AL1 = 0
CommandMasterResetCount_AL2 = 0
CommandMasterResetCount_AL3 = 0
CommandMasterResetLimit_AL0 = 99999999
CommandMasterResetLimit_AL1 = 99999999
CommandMasterResetLimit_AL2 = 99999999
CommandMasterResetLimit_AL3 = 99999999
CommandMasterResetLimitDay_AL0 = 99999999
CommandMasterResetLimitDay_AL1 = 99999999
CommandMasterResetLimitDay_AL2 = 99999999
CommandMasterResetLimitDay_AL3 = 99999999
CommandMasterResetLimitWek_AL0 = 99999999
CommandMasterResetLimitWek_AL1 = 99999999
CommandMasterResetLimitWek_AL2 = 99999999
CommandMasterResetLimitWek_AL3 = 99999999
CommandMasterResetLimitMon_AL0 = 99999999
CommandMasterResetLimitMon_AL1 = 99999999
CommandMasterResetLimitMon_AL2 = 99999999
CommandMasterResetLimitMon_AL3 = 99999999
CommandMasterResetStartLevel_AL0 = 0
CommandMasterResetStartLevel_AL1 = 0
CommandMasterResetStartLevel_AL2 = 0
CommandMasterResetStartLevel_AL3 = 0
CommandMasterResetStartReset_AL0 = 0
CommandMasterResetStartReset_AL1 = 0
CommandMasterResetStartReset_AL2 = 0
CommandMasterResetStartReset_AL3 = 0
CommandMasterResetPoint_AL0 = 1
CommandMasterResetPoint_AL1 = 1
CommandMasterResetPoint_AL2 = 1
CommandMasterResetPoint_AL3 = 1
CommandMasterResetPointRateDW = 0
CommandMasterResetPointRateDK = 0
CommandMasterResetPointRateFE = 0
CommandMasterResetPointRateMG = 0
CommandMasterResetPointRateDL = 0
CommandMasterResetPointRateSU = 0
CommandMasterResetPointRateRF = 0
CommandMasterResetRemoveReset_AL0 = 0
CommandMasterResetRemoveReset_AL1 = 0
CommandMasterResetRemoveReset_AL2 = 0
CommandMasterResetRemoveReset_AL3 = 0
CommandMasterResetRewardCoin1Value_AL0 = 0
CommandMasterResetRewardCoin1Value_AL1 = 0
CommandMasterResetRewardCoin1Value_AL2 = 0
CommandMasterResetRewardCoin1Value_AL3 = 0
CommandMasterResetRewardCoin2Value_AL0 = 0
CommandMasterResetRewardCoin2Value_AL1 = 0
CommandMasterResetRewardCoin2Value_AL2 = 0
CommandMasterResetRewardCoin2Value_AL3 = 0
CommandMasterResetRewardCoin3Value_AL0 = 0
CommandMasterResetRewardCoin3Value_AL1 = 0
CommandMasterResetRewardCoin3Value_AL2 = 0
CommandMasterResetRewardCoin3Value_AL3 = 0
CommandMasterResetRequiredStr = 0
CommandMasterResetRequiredAgi = 0
CommandMasterResetRequiredVit = 0
CommandMasterResetRequiredEne = 0
CommandMasterResetRequiredCom = 0
Como podem ver, o tipo (type) está configurado como acumulativo para não zerar os pontos do jogador, e o nível (Level) foi provisoriamente definido como 0, assim como o reset.
Eu preciso de ajuda para configurar esse comando de forma que o nível do personagem permaneça o mesmo ao utilizar o comando /passedebatalha. Como mencionei, atualmente o nível sempre vai para zero, mas quero evitar que isso aconteça.
Estou precisando de uma ajuda para resolver um problema que o Louis não conseguiu solucionar.
Já joguei em dois servidores que implementaram a funcionalidade do comando /passedebatalha, que permite resetar as recompensas já coletadas no passe de batalha, possibilitando ao jogador pegar os itens novamente. No entanto, esse comando não existe no MU Server Season 6 do Louis. Mas eu descobri como esses servidores implementaram essa funcionalidade.
Como o comando é customizado, o que eles fizeram foi pegar o comando /mreset e modificar para /passedebatalha. Em seguida, foram até o banco de dados, na procedure WZ_SetMasterResetInfo, e alteraram a lógica para resetar o passe de batalha.
Ao invés de deixar assim:
UPDATE Character SET ResetCount=@Reset, MasterResetCount=@MasterReset WHERE AccountID=@Account AND Name=@Name
Eles trocaram para:
DELETE FROM CustomBattlePassReward WHERE Name=@Name
Até aqui, tudo perfeito.
Seguindo esse passo a passo, você pode alterar o comando /mreset para /passedebatalha e modificar a procedure no banco de dados para resetar a tabela de recompensas do passe que o jogador já coletou.
No entanto, há um ponto muito importante nesse processo: a configuração no arquivo GameServerInfo - Command, que envolve o Master Reset.
Primeiro, precisamos garantir que o nível (Level) do personagem, o reset, e os pontos permaneçam inalterados após o uso do comando /passedebatalha.
O problema é que não estou conseguindo manter o mesmo nível do personagem após usar o comando. Se eu definir 0 nas configurações do Master Reset, o nível do personagem também é alterado para 0. Veja o exemplo abaixo:
;================================================= =
; Configurações do Comando Master Reset
;================================================= =
CommandMasterResetType = 0
CommandMasterResetCheckItem_AL0 = 0
CommandMasterResetCheckItem_AL1 = 0
CommandMasterResetCheckItem_AL2 = 0
CommandMasterResetCheckItem_AL3 = 0
CommandMasterResetMove_AL0 = 0
CommandMasterResetMove_AL1 = 0
CommandMasterResetMove_AL2 = 0
CommandMasterResetMove_AL3 = 0
CommandMasterResetQuest_AL0 = 0
CommandMasterResetQuest_AL1 = 0
CommandMasterResetQuest_AL2 = 0
CommandMasterResetQuest_AL3 = 0
CommandMasterResetSkill_AL0 = 0
CommandMasterResetSkill_AL1 = 0
CommandMasterResetSkill_AL2 = 0
CommandMasterResetSkill_AL3 = 0
CommandMasterResetLevel_AL0 = 0
CommandMasterResetLevel_AL1 = 0
CommandMasterResetLevel_AL2 = 0
CommandMasterResetLevel_AL3 = 0
CommandMasterResetReset_AL0 = 0
CommandMasterResetReset_AL1 = 0
CommandMasterResetReset_AL2 = 0
CommandMasterResetReset_AL3 = 0
CommandMasterResetMoney_AL0 = 0
CommandMasterResetMoney_AL1 = 0
CommandMasterResetMoney_AL2 = 0
CommandMasterResetMoney_AL3 = 0
CommandMasterResetCount_AL0 = 0
CommandMasterResetCount_AL1 = 0
CommandMasterResetCount_AL2 = 0
CommandMasterResetCount_AL3 = 0
CommandMasterResetLimit_AL0 = 99999999
CommandMasterResetLimit_AL1 = 99999999
CommandMasterResetLimit_AL2 = 99999999
CommandMasterResetLimit_AL3 = 99999999
CommandMasterResetLimitDay_AL0 = 99999999
CommandMasterResetLimitDay_AL1 = 99999999
CommandMasterResetLimitDay_AL2 = 99999999
CommandMasterResetLimitDay_AL3 = 99999999
CommandMasterResetLimitWek_AL0 = 99999999
CommandMasterResetLimitWek_AL1 = 99999999
CommandMasterResetLimitWek_AL2 = 99999999
CommandMasterResetLimitWek_AL3 = 99999999
CommandMasterResetLimitMon_AL0 = 99999999
CommandMasterResetLimitMon_AL1 = 99999999
CommandMasterResetLimitMon_AL2 = 99999999
CommandMasterResetLimitMon_AL3 = 99999999
CommandMasterResetStartLevel_AL0 = 0
CommandMasterResetStartLevel_AL1 = 0
CommandMasterResetStartLevel_AL2 = 0
CommandMasterResetStartLevel_AL3 = 0
CommandMasterResetStartReset_AL0 = 0
CommandMasterResetStartReset_AL1 = 0
CommandMasterResetStartReset_AL2 = 0
CommandMasterResetStartReset_AL3 = 0
CommandMasterResetPoint_AL0 = 1
CommandMasterResetPoint_AL1 = 1
CommandMasterResetPoint_AL2 = 1
CommandMasterResetPoint_AL3 = 1
CommandMasterResetPointRateDW = 0
CommandMasterResetPointRateDK = 0
CommandMasterResetPointRateFE = 0
CommandMasterResetPointRateMG = 0
CommandMasterResetPointRateDL = 0
CommandMasterResetPointRateSU = 0
CommandMasterResetPointRateRF = 0
CommandMasterResetRemoveReset_AL0 = 0
CommandMasterResetRemoveReset_AL1 = 0
CommandMasterResetRemoveReset_AL2 = 0
CommandMasterResetRemoveReset_AL3 = 0
CommandMasterResetRewardCoin1Value_AL0 = 0
CommandMasterResetRewardCoin1Value_AL1 = 0
CommandMasterResetRewardCoin1Value_AL2 = 0
CommandMasterResetRewardCoin1Value_AL3 = 0
CommandMasterResetRewardCoin2Value_AL0 = 0
CommandMasterResetRewardCoin2Value_AL1 = 0
CommandMasterResetRewardCoin2Value_AL2 = 0
CommandMasterResetRewardCoin2Value_AL3 = 0
CommandMasterResetRewardCoin3Value_AL0 = 0
CommandMasterResetRewardCoin3Value_AL1 = 0
CommandMasterResetRewardCoin3Value_AL2 = 0
CommandMasterResetRewardCoin3Value_AL3 = 0
CommandMasterResetRequiredStr = 0
CommandMasterResetRequiredAgi = 0
CommandMasterResetRequiredVit = 0
CommandMasterResetRequiredEne = 0
CommandMasterResetRequiredCom = 0
Como podem ver, o tipo (type) está configurado como acumulativo para não zerar os pontos do jogador, e o nível (Level) foi provisoriamente definido como 0, assim como o reset.
Eu preciso de ajuda para configurar esse comando de forma que o nível do personagem permaneça o mesmo ao utilizar o comando /passedebatalha. Como mencionei, atualmente o nível sempre vai para zero, mas quero evitar que isso aconteça.