-
Posts
48 -
Joined
-
Last visited
-
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by [TiTAN]
-
-
Thanks man, great work as always!
- 1
-
2 minutes ago, Amsterdam said:
ahh, I love these ego-filled Romanian answers
i fix it, I forgot that I changed something in the damage design
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
- 1
-
1 hour ago, Amsterdam said:
i fix the problem with horse but now i don't see the damage XD
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"},
-
@ 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)
-
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!
- 3
-
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.
-
On 7/7/2021 at 6:24 PM, SussyFlore96 said:
Ninja character is hidden when is in the invisibility, but when he run you can see the dust
InstanceBase.cpp, search for if (__IsInDustRange()) and replace with if (__IsInDustRange() && !IsAffect(AFFECT_EUNHYEONG))
-
-
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
-
You can do like TMP4 told you, but i advise you to keep this future on and modify tables and/or queries accordingly
-
On 6/30/2023 at 5:25 AM, DemOnJR said:
same.
just add
#include "GameType.h"
in ItemData.h
- 1
- 1
-
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)
-
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
- 1
- 1
-
ChatGPT Say :
QuoteThe error message you mentioned, "Plugin 'InnoDB' registration as a STORAGE ENGINE failed," typically occurs in database systems that use the InnoDB storage engine. The InnoDB engine is widely used in database management systems like MySQL.
There are a few potential causes and solutions for this error:
Missing or disabled plugin: The InnoDB storage engine may not be installed or enabled in your database system. You can verify this by checking the list of installed plugins or running a command to enable the InnoDB plugin if it's already installed.
Incompatible version: The version of the InnoDB storage engine you have installed might be incompatible with your database management system. In such cases, you might need to upgrade or downgrade either the InnoDB plugin or the database system itself to ensure compatibility.
Configuration issues: There could be configuration problems related to the InnoDB storage engine. Check your database configuration files (e.g., my.cnf for MySQL) to ensure that the necessary settings for InnoDB are correctly specified.
File system or disk space issues: If the underlying file system where your database resides has issues or if there is insufficient disk space, it can cause problems with the InnoDB storage engine. Ensure that your file system is healthy and has enough free space for the database to operate.
Corrupted installation: It's also possible that your InnoDB installation is corrupted or damaged. In such cases, you may need to reinstall or repair the InnoDB storage engine.
To troubleshoot and resolve this error, it's recommended to consult the documentation specific to your database management system, such as MySQL, and follow the guidelines provided there. Additionally, searching for the exact error message along with the name of your database system can often lead to forum threads or articles where others have encountered and resolved similar issues.
- 8
- 4
- 1
- 5
-
-
Compile launcher in debug and attach to process to see the stack trace
-
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.
- 1
-
i will help you today when i will get home
-
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
-
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
-
just download the last version of cryptopp from their site https://www.cryptopp.com, open cryptest.sln and compile cryptlib debug and release on win32 variant
-
remove the if app. from mousemodule
-
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)
-
This is you trying to connect
Do you have bind_ip somewhere in configs? Or proxy_ip?
MiniFix - Reset Skill Group - Client Bug
in Bug Fixes
Posted
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:
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
With