Closed sergiodinapoli closed 3 years ago
Acha? Não tem como testar pra ter certeza não?
Em seg, 24 de mai de 2021 21:38, sergiodinapoli @.***> escreveu:
Nunca fiquei tao feliz com um CTD :-D. Por sorte, e com certa cabeça, consegui reproduzir o problema. Enfim encurtando o papo, observe aqui:
- cooking_offer(INITIATOR_cooking_level<6)->
- cooking_offer(INITIATOR_cooking_level>=6)->I'll try and cook something better for you.
Na minha cabeça: cooking level ou ta acima ou ta abaixo de 6. Assim fazendo, garanto que sempre haja uma via de fuga. Até quando o azar te joga no colo um pawn que... nao tem algum skill! Pois foi proibido por background! O classico "disabled".
E ai crasha (acho!). Pois quando tenta medir o cooking level acha coisa nenhuma e fica em loop. E' isso? Procede, como possibilidade?
De toda forma, se toda checagem de nivel pode gerar um CTD, pergunto: seria possivel codificar o fato de skill==disabled como se skill==0? Ai ja mata.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/jptrrs/SpeakUp/issues/12, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALHBNPQSX6KDTZ3EEDARCKDTPLWQDANCNFSM45OGPHFQ .
Ontem testei. Reproduzi o CTD certeiramente. Bastava forçar a interactionDef "AteMeal" de modo que a cooking fosse testada. Pontualmente, crashava. Escrevi "acho" apenas pois continuo me achando iniciante. Mas iniciante ou nao, é o que o tenho. Portanto, nada de "acho".
Você pode confirmar que o C# não gerencia o caso duma skill não ser um INT e sim a string "Disabled"?
Tentei até "fuçar" no C# mas me perdi e não achei nada de útil.
Reproduzi o CTD certeiramente. Bastava forçar a interactionDef "AteMeal" de modo que a cooking fosse testada. Pontualmente, crashava.
Então como eu reproduzo?
Você pode confirmar que o C# não gerencia o caso duma skill não ser um INT e sim a string "Disabled"?
Não tem jeito disso acontecer. O level de uma skill, que é o que a gente puxa, é sempre um INT.
On Tue, May 25, 2021 at 12:15 PM sergiodinapoli @.***> wrote:
Ontem testei. Reproduzi o CTD certeiramente. Bastava forçar a interactionDef "AteMeal" de modo que a cooking fosse testada. Pontualmente, crashava. Escrevi "acho" apenas pois continuo me achando iniciante. Mas iniciante ou nao, é o que o tenho. Portanto, nada de "acho".
Você pode confirmar que o C# não gerencia o caso duma skill não ser um INT e sim a string "Disabled"?
Tentei até "fuçar" no C# mas me perdi e não achei nada de útil.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/jptrrs/SpeakUp/issues/12#issuecomment-847956394, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALHBNPQDMJFZVHZXBEM6MELTPO5K5ANCNFSM45OGPHFQ .
<li>cooking_offer(INITIATOR_cooking_level<6)-></li>
Por que não tem nada depois de -> ?
Então como eu reproduzo? ==> ative AteMeal ==> OBS: fiquei testando aqui e o AteMeal gera crash e pronto; mesmo quando cooking è definido. Vou investigar essa interactiondef especificamente
2) Por que não tem nada depois de -> ? ==> pois se (INITIATOR_cooking_level<6), isto é o cara nao sabe cozinhar comida boa, ele nao vai acrescentar nada no texto; viceversa, ele vai oferecer para cozinhar comida melhor no futuro
Antes de implementar essa de "wildcard" vazia, testei (estava com medo de dar pau), e nunca deu problema.
Vou analisar o XML e te retorno.
OK. Vivendo e aprendendo. Na linha 199 do Interactions.xml
Observe que antes do "That's" so tem "-"... ma precisa ser "->".
Por causa disso, o jogo crashava. PQP - sim o erro é meu, mas... precisa causar um CTD? Mamma mia :-) . Como erro de digitação é sempre pronto a acontecer, teria como o C# detectar esse tipo de erro e informar, ao invés de causar CTD tao doido que nem fica no player.log?
A coisa divertida é que descobri tudo isso apenas na cagada total. Partindo de uma hipotese 100% errada, descobri e consertei o erro.
Ah e tb aprendi que quando tento provar uma coisa, tipo "é culpa do tal negocio" preciso tb testar simulando quando o negocio nao esta'. No nosso caso, fui tao feliz em ter achado o CTD que nao pensei em testar o mesmo caso, porém com um cooking_level definido. Vivendo e aprendendo.
Uai, fechou e abriu? rsrs Vou aproveitar para comentar que eu só precisei perguntar como reproduzir o problema! Vamos ver se, no futuro, a gente pode partir já desse ponto para não perder tempo. Então: só é um issue quando pode ser reproduzido, combinado?
PQP - sim o erro é meu, mas... precisa causar um CTD? Mamma mia :-) . Como erro de digitação é sempre pronto a acontecer, teria como o C# detectar esse tipo de erro e informar, ao invés de causar CTD tao doido que nem fica no player.log?
Não tem nada de doido no erro, e já tinha acontecido antes. Não lembra do "<"? Eu inclusive te alertei que qualquer caractere errado no XML dá em erro fatal e o jogo não avisa o que tá acontecendo. Não tem como o código detectar porque é algo que acontece na leitura do XML. Para detectar, tem que ler, se na leitura já dá erro não tem nem como reagir.
Nunca fiquei tao feliz com um CTD :-D. Por sorte, e com certa cabeça, consegui reproduzir o problema. Enfim encurtando o papo, observe aqui:
Na minha cabeça: cooking level ou ta acima ou ta abaixo de 6. Assim fazendo, garanto que sempre haja uma via de fuga. Até quando o azar te joga no colo um pawn que... nao tem algum skill! Pois foi proibido por background! O classico "disabled".
E ai crasha (acho!). Pois quando tenta medir o cooking level acha coisa nenhuma e fica em loop. E' isso? Procede, como possibilidade?
De toda forma, se toda checagem de nivel pode gerar um CTD, pergunto: seria possivel codificar o fato de skill==disabled como se skill==0? Ai ja mata.