E aí manos.
Alguém poderia me ajudar?
O GS está apresentando este erro e não quer permanecer conectado.
Código:
2021-01-02 19:19:35: ##exception##
System.IO.FileNotFoundException: Could not find file 'C:\RAIZ\Config\GameRes\Config\JieRiGifts\JieRiFuWenFanLi.xml'.
File name: 'C:\RAIZ\Config\GameRes\Config\JieRiGifts\JieRiFuWenFanLi.xml'
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options,
SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy)
at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)
at System.Xml.XmlTextReaderImpl.FinishInitUriString()
at System.Xml.XmlReaderSettings.CreateReader(String inputUri, XmlParserContext inputContext) at System.Xml.Linq.XElement.Load(String uri, LoadOptions options)
at GameServer.Logic.GeneralCachingXmlMgr.CachingXml(String xmlFileName)xmlFileName=C:/RAIZ/Config/GameRes/Config/JieRiGifts/JieRiFuWenFanLi.xml
2021-01-02 19:19:40: ##exception##
System.OverflowException: Value was either too large or too small for a signed byte.
at System.Convert.ToSByte(Int32 value)
at GameServer.Logic.HolyItemManager.Initialize()
at GameServer.Logic.GlobalServiceManager.initialize()
at GameServer.Program.InitServer()
Bom galera...
Eu fui verificar o problema, mas com pouco conhecimento só cheguei até aqui.
Pelo que pude verificar, está fazendo uma conversão de Int32 que aceita valores de -2.147.483.648 a 2.147.483.647 para SByte que aceita valores de -128 a 127 de um valor(n) que se encontra em \GameRes\Config\BuJian.xml no parametro "SuccessProbability".
A grande questão é que, verifiquei o arquivo e os valores variam de "-1" "0.2" "1", então tecnicamente não era pra apresentar erro.
Exemplo do cálculo:
0.2 * 100.0 = 20
Teoricamente a conversão pode ser feita.
Me ajudem, deixei passar algo..
1 46 minutes:------- Atualizado -------
Problema resolvido!
Pelo visto teve a ver com pontuação flutuante.
Como o GS tenta converter um Double (Int32) para Sbyte, parece que o símbolo decimal nas configurações do sistema interferia.
Créditos: ChoVinisTa
Solução:
Sistema pt-BR: Painel de Controle -> Região -> Configurações Adicionais - > Em Símbolo Decimal altere de "," para "." (Vírgula para Ponto).
Sistema en-*: Control Panel -> Region -> Addtional Settings -> Em Decimal Symbol altere de "," para "." (Vírgula para Ponto).