Coder Social home page Coder Social logo

tm-project's People

Contributors

bitou2k avatar ericsantos00 avatar kevinkouketsu avatar thefeelipe avatar wsphantom avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

tm-project's Issues

Mudar leitura de arquivos para usar raii

Descrição:
Fazer com que todas as leituras de arquivos sejam feitas através de uma implementação de std::fstream: std::ostream para output e std::istream para input.
Isto nos garantirá que os arquivos sejam fechados mesmo em caso de exceção ou um early return. Isto é apenas uma forma de deixar o código melhor.

Para realizar esta tarefa, deverá ser checado todas as leituras e escritas de arquivos, e alterado para o respectivo no C++.

Teleports com problema

Alguns teleports não foram adicionados em g_TeleportTable, fazendo com que o client puxe a última MessageBox exibida.

Como replicar o bug:
Deletar um item e então subir em um dos teleports:
Noatun -> Khepra
Khepra -> Noatun
Khepra -> KhepraBoss

Correção sugerida no pull #16

Problemas na Interface

Algumas opções da janela de composição está com problema na exibição das informações, está exibindo o itemhelp do último item exibido.

Acredito que o problema possa ser parecido com o do issue #17 sobre os teleports.

Segue abaixo uma captura de tela

Trajes de Montaria[ Pogbol, Cavalinho de Madeira]

Estava testando e me deparei com esses problemas... confesso que fiquei muito tempo neles.

PogBol: Consiste em bugar o frame de movimento da montaria estilo PogBol:
Video demonstrativo

Possível Correção: No arquivo TMSkinMesh.cpp, procurar por "m_nBoneAniIndex == 49"

if (m_nBoneAniIndex == 49) dwMod -= 2;

Ainda no FrameMove
Comente:

/*ori = (float*)&NewMat; int offset_ = 10 - dwOffset; for (int k = 0; k < 16; ++k) { *ori = (float)((float)((float)dwOffset * *ori) + (float)((float)offset_ * *before)) / 10.0f; ++ori; ++before; } m_pframeToAnimate[j]->m_matRot = NewMat;*/

Basta Comentar (Eu acho) Pode haver uma forma mais coerente de se fazer.

Cavalinho de Madeira: Consiste em não renderizar o personagem sobre o traje:
Print Demonstrativa

Possível Correção: No arquivo CFrame.cpp procurar por "m_nBoneAniIndex == 50"

Substituir o metódo de Renderização por:
m_pParentSkin->m_OutMatrix = m_matCombined; m_pParentSkin->m_OutMatrix._11 = m_matCombined._11 * -1.0f; m_pParentSkin->m_OutMatrix._12 = m_matCombined._12 * -1.0f; m_pParentSkin->m_OutMatrix._13 = m_matCombined._13 * -1.0f; m_pParentSkin->m_OutMatrix._14 = m_matCombined._14 * -1.0f; m_pParentSkin->m_OutMatrix._21 = m_matCombined._31 * -1.0f; m_pParentSkin->m_OutMatrix._22 = m_matCombined._32 * -1.0f; m_pParentSkin->m_OutMatrix._23 = m_matCombined._33 * -1.0f; m_pParentSkin->m_OutMatrix._24 = m_matCombined._34 * -1.0f; m_pParentSkin->m_OutMatrix.m[2][0] = m_matCombined.m[1][0]; m_pParentSkin->m_OutMatrix.m[2][1] = m_matCombined.m[1][1]; m_pParentSkin->m_OutMatrix.m[2][2] = m_matCombined.m[1][2]; m_pParentSkin->m_OutMatrix.m[2][3] = m_matCombined.m[1][3];

No arquivo TMHuman.cpp procurar por "m_nMountSkinMeshType == 50"

Substituir o metódo de renderização por:
vecPosScale.x = vecPosScale.x - 0.6f; vecPosScale.z = vecPosScale.z + 0.5f;

Logo acima disto existe um switch com os skinsmeshtype, não me recordo da existência desse código contudo inserir o case:

case 50: vecPosScale.x = -0.35f * m_fMountScale; vecPosScale.y = 1.0f / m_fMountScale; vecPosScale.z = -0.60000002f * m_fMountScale;

Peço perdão caso essas "correções" causem problemas, não são a maneira mais profissional de serem feitas.

Criar action para checar compilação

Devemos criar uma action para buildar o projeto antes de merger qualquer tipo de PR.

Isto deve ser feito para evitarmos mergear código quebrado. Isto pode nos evitar um pouco de dor de cabeça.

Nesta tarefa também devemos fazer com uqe possa apenas ser mergeada com a build funcionando corretamente.

Refactor on loading data files

The goal here is to refactor how the client handles the errors while loading the data files.

I mean instead of directly calling the MessageBox (see an example on #14), we could use a C++ way of doing stuff, using exceptions.

Something like:

class LoadConfigurationError : public std::runtime_error
{
public: 
	LoadConfigurationError(const std::string& config, const std::string& extraData)
	: std::runtime_error{"Failed to load file "s + config + ". " + extraData}
	{}
};

With that, we can concentrate the loading stuff in one place (as is currently) and have a single way of warning the user that something went wrong. For example, in debug mode, we can just assert and when deploying we can write to a log and exit asap.

Of course, there is lazy loading happening on the client and we need to check the possibilities in these scenarios.

This needs to be discussed further.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.