Jump to content

[TiTAN]

Member
  • Posts

    48
  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by [TiTAN]

  1. While apparently this resolve the issue you've showed in the video, it's not the real fix as it will erase every skill slot you have including support, horse and guild witch Refresh Character won't handle. The real problem relays in this block of code from CPythonPlayer::NEW_ClearSkillData: for (it = m_skillSlotDict.begin(); it != m_skillSlotDict.end();) { if (bAll || __GetSkillType(it->first) == CPythonSkill::SKILL_TYPE_ACTIVE) it = m_skillSlotDict.erase(it); else ++it; } Long story short, somewhere in the code you have a map in witch you insert the skill index first and the associated slot second. Fucking ymir is sending the skill index to CPythonPlayer::__GetSkillType(DWORD dwSkillSlotIndex) witch expects the skill slot to find the skill index to retrive skill data! Funny, no? The fix: Replace if (bAll || __GetSkillType(it->first) == CPythonSkill::SKILL_TYPE_ACTIVE) With if (bAll || __GetSkillType(it->second) == CPythonSkill::SKILL_TYPE_ACTIVE)
  2. Maybe you are right i'm glad that you've fixed your issue, also sry for off-topic but i felt the need to apologieze
  3. Because you have another effect registered with the same number of damage... It is really so hard to work by your own and discover how things are working? Edit: to spare some minutes from your life, because this seems to be the only thing you want just comment these as you are not using them anyways {pkBase.EFFECT_REFINED + 21, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-5-1.mse"}, {pkBase.EFFECT_REFINED + 22, "Bip01", "D:/ymir work/pc/common/effect/armor/armor_7th_01.mse"},
  4. @ ReFresh You should keep the code in CStateManager::SetDefaultState because in case of a reset anisotropic won't be reapplyed if the code it's located in CStateManager::SetDevice (SetDevice is called only on client launch)
  5. For 1. Textures blurring out when prompting any UAC check. : Problem is indeed the device reset on UAC how Trial stated, but even if we reapply anisotropic the outcome will be the same! (blurry textures and shadows) The reason for that is (at least in my case) the path and shadow textures will be sampled using D3DTEXF_LINEAR wich we are only using for MIP not for MAG nor MIN! The fix? Get rid of that statements: if (d3dCaps.TextureFilterCaps & D3DPTFILTERCAPS_MAGFANISOTROPIC) m_dwBestMagFilter = D3DTEXF_ANISOTROPIC; else m_dwBestMagFilter = D3DTEXF_LINEAR; if (d3dCaps.TextureFilterCaps & D3DPTFILTERCAPS_MINFANISOTROPIC) m_dwBestMinFilter = D3DTEXF_ANISOTROPIC; else m_dwBestMinFilter = D3DTEXF_LINEAR; And initialize m_dwBestMinFilter and m_dwBestMagFilter directly with D3DTEXF_ANISOTROPIC like: CStateManager::CStateManager(LPDIRECT3DDEVICE9 lpDevice) : m_lpD3DDev(NULL) { m_bScene = false; m_dwBestMinFilter = D3DTEXF_ANISOTROPIC; m_dwBestMagFilter = D3DTEXF_ANISOTROPIC; SetDevice(lpDevice); } Late Merry Christmas to everyone!
  6. Your approach is wrong... I've fixed it by changing case POINT_MOV_SPEED from ::PointChange like: case POINT_MOV_SPEED: if (FindAffect(AFFECT_WAR_FLAG)) SetPoint(type, FindAffect(AFFECT_WAR_FLAG)->lApplyValue); else SetPoint(type, GetPoint(type) + amount); val = GetPoint(type); break; Ofc there should exist a better way, but i'll stick with that. Don't forget to change 50 - f.m_pkChrFind->GetPoint(POINT_MOV_SPEED) part as if your movment speed is greater than 50 will become negative, for me a fixed value works the best, you can use std::min or smth but i guess all players should have the same speed with the flag.
  7. InstanceBase.cpp, search for if (__IsInDustRange()) and replace with if (__IsInDustRange() && !IsAffect(AFFECT_EUNHYEONG))
  8. As vegas fix is not complete, i quickly made up this shit that at least works, i will rewrite it when i have some time: def __SelectSkillGroup(self, pageIndex): for pageButton in self.skillGroupButton: pageButton.SetUp() self.skillGroupButton[pageIndex].Down() if self.__CanUseHorseSkill(): if 0 == pageIndex: pageIndex = net.GetMainActorSkillGroup()-1 elif 1 == pageIndex: pageIndex = self.PAGE_HORSE else: skillGroupIndex = net.GetMainActorSkillGroup() if bool(skillGroupIndex): (tmpCurSkillGroup, tmpSkillGroup) = (skillGroupIndex - 1, skillGroupIndex) else: (tmpCurSkillGroup, tmpSkillGroup) = (pageIndex, pageIndex + 1) if self.__CanUseHorseSkill(): self.curSelectedSkillGroup = pageIndex self.__SetSkillSlotData(net.GetMainActorRace(), pageIndex+1, net.GetMainActorEmpire()) else: self.curSelectedSkillGroup = tmpCurSkillGroup self.__SetSkillSlotData(net.GetMainActorRace(), tmpSkillGroup, net.GetMainActorEmpire()) self.RefreshSkill() LE: We maybe need 3rd button because you will not be able to use horse skills if you have them when no skill group selected
  9. You can do like TMP4 told you, but i advise you to keep this future on and modify tables and/or queries accordingly
  10. just add #include "GameType.h" in ItemData.h
  11. void CInputDB::LoginSuccess(DWORD dwHandle, const char *data) { sys_log(0, "LoginSuccess"); TAccountTable * pTab = (TAccountTable *) data; LPDESC d = DESC_MANAGER::instance().FindByHandle(dwHandle); if (!d) { sys_log(0, "CInputDB::LoginSuccess - cannot find handle [%s]", pTab->login); TLogoutPacket pack; strlcpy(pack.login, pTab->login, sizeof(pack.login)); db_clientdesc->DBPacket(HEADER_GD_LOGOUT, dwHandle, &pack, sizeof(pack)); return; } if (strcmp(pTab->status, "OK")) // if not ok { sys_log(0, "CInputDB::LoginSuccess - status[%s] is not OK [%s]", pTab->status, pTab->login); TLogoutPacket pack; strlcpy(pack.login, pTab->login, sizeof(pack.login)); db_clientdesc->DBPacket(HEADER_GD_LOGOUT, dwHandle, &pack, sizeof(pack)); LoginFailure(d, pTab->status); return; } const bool bFound{ GetServerLocation(*pTab, pTab->bEmpire) }; d->BindAccountTable(pTab); if (bFound) { TPacketGCEmpire pe; pe.bHeader = HEADER_GC_EMPIRE; pe.bEmpire = d->GetEmpire(); d->Packet(&pe, sizeof(pe)); } d->SendLoginSuccessPacket(); d->SetPhase(PHASE_SELECT); sys_log(0, "InputDB::LoginSucces: account.login: %s", pTab->login); } With this if you don't have an assigned empire on your account, at login you will be prompted directly to empire select. (use it with empire reselect feature disabled, with it enabled you will trigger double empire selection on an account with all slots free)
  12. Idk if it's ok, but for me this way is more convenient: PythonPlayer.h under DWORD m_dwAutoAttackTargetVID; add bool m_bIsAutoAttack; PythonPlayerInput.cpp Modify if (rkInstMain.IsAttackableInstance(rkInstVictim)) from __OnPressActor like: if (rkInstMain.IsAttackableInstance(rkInstVictim)) { __SetAutoAttackTargetActorID(rkInstVictim.GetVirtualID()); m_bIsAutoAttack = true; } PythonPlayerInputKeyboard.cpp add if (m_bIsAutoAttack) { __ClearAutoAttackTargetActorID(); m_bIsAutoAttack = false; } under void CPythonPlayer::NEW_SetMultiDirKeyState(bool isLeft, bool isRight, bool isUp, bool isDown) { This way you can cancel your auto attacks using keyboard w a s d keys
  13. [Hidden Content] ChatGPT Say :
  14. Compile launcher in debug and attach to process to see the stack trace
  15. I can t edit my previous post for some reason.. The problem was that he was using his new compiled cryptopp lib with old headers of it.
  16. There is something strange happening in etelib, have you tried a full rebuild? Also you need to download and compile libjpeg, i personally use libjpeg turbo
  17. In Include from extern directory you have a file called cryptoppliblink, edit this file accordingly or just rename the freshly compiled libs and you are done
  18. just download the last version of cryptopp from their site [Hidden Content], open cryptest.sln and compile cryptlib debug and release on win32 variant
  19. Put your vps ip on bind_ip then start the server and try, if it doesn't work leave config.cpp here. (a link from pastebin i hope)
  20. This is you trying to connect Do you have bind_ip somewhere in configs? Or proxy_ip?
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.