-
Posts
76 -
Joined
-
Last visited
-
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by arlinamid
-
-
Hi. Did you have any idea why it can't calculate Accumulation values?
-
For acce:
You have to do
Instancebase.h
Add this two line:
Search this : void __ClearArmorShiningEffect(bool detaching = true);
Add after:
void __ClearAcceShiningEffect(bool detaching = true); void __AttachAcceShiningEffect(int effectIndex, const char* effectFileName, const char* boneName = "Bip01");
after that search this one : DWORD m_armorShiningEffects[CItemData::ITEM_SHINING_MAX_COUNT];
add after this:
DWORD m_acceShiningEffects[CItemData::ITEM_SHINING_MAX_COUNT];
In InstanceBase.cpp
Search this in ClearAcceEffect(); in void SetAcce
add after this
#ifdef ENABLE_SHINING_SYSTEM __ClearAcceShiningEffect(); #endif
search this CItemData * pItemData = NULL;
CItemManager::Instance().GetItemDataPointer(dwAcce, &pItemData); in void SetAcce#ifdef ENABLE_SHINING_SYSTEM if (pItemData) __GetShiningEffect(pItemData); #endif
Replace the whole void __GetShiningEffect with this it will fix costume weapon effect too.
void CInstanceBase::__GetShiningEffect(CItemData* pItem) { bool removeRefineEffect = true; CItemData::TItemShiningTable shiningTable = pItem->GetItemShiningTable(); if (pItem->GetType() == CItemData::ITEM_TYPE_WEAPON) { __ClearWeaponShiningEffect(); if (removeRefineEffect) { __ClearWeaponRefineEffect(); } for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { if (strcmp(shiningTable.szShinings[i], "")) { bool twoSidedWeapon = pItem->GetSubType() == CItemData::WEAPON_DAGGER || (IsMountingHorse() && pItem->GetSubType() == CItemData::WEAPON_FAN); if (twoSidedWeapon) { __AttachWeaponShiningEffect(i, shiningTable.szShinings[i], "PART_WEAPON_LEFT"); } if (pItem->GetSubType() == CItemData::WEAPON_BOW) __AttachWeaponShiningEffect(i, shiningTable.szShinings[i], "PART_WEAPON_LEFT"); else __AttachWeaponShiningEffect(i, shiningTable.szShinings[i], "PART_WEAPON"); } } } #ifdef ENABLE_COSTUME_SYSTEM else if (pItem->GetType() == CItemData::ITEM_TYPE_COSTUME) { #ifdef ENABLE_ACCE_COSTUME_SYSTEM if (pItem->GetSubType() == CItemData::COSTUME_ACCE) { for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { if (strcmp(shiningTable.szShinings[i], "")) { __AttachAcceShiningEffect(i, shiningTable.szShinings[i], "Bip01"); } } } #endif else if (pItem->GetSubType() == CItemData::COSTUME_BODY) { if (removeRefineEffect) { __ClearArmorRefineEffect(); } for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { if (strcmp(shiningTable.szShinings[i], "")) { __AttachArmorShiningEffect(i, shiningTable.szShinings[i]); } } } #ifdef ENABLE_WEAPON_COSTUME_SYSTEM else if (pItem->GetSubType() == CItemData::COSTUME_WEAPON) { __ClearWeaponShiningEffect(); if (removeRefineEffect) { __ClearWeaponRefineEffect(); } for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { if (strcmp(shiningTable.szShinings[i], "")) { bool twoSidedWeapon = pItem->GetValue(3) == CItemData::WEAPON_DAGGER || (IsMountingHorse() && pItem->GetValue(3) == CItemData::WEAPON_FAN); if (twoSidedWeapon) { __AttachWeaponShiningEffect(i, shiningTable.szShinings[i], "PART_WEAPON_LEFT"); } if (pItem->GetValue(3) == CItemData::WEAPON_BOW) __AttachWeaponShiningEffect(i, shiningTable.szShinings[i], "PART_WEAPON_LEFT"); else __AttachWeaponShiningEffect(i, shiningTable.szShinings[i], "PART_WEAPON"); } } } #endif } #endif else { if (removeRefineEffect) { __ClearArmorRefineEffect(); } for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { if (strcmp(shiningTable.szShinings[i], "")) { __AttachArmorShiningEffect(i, shiningTable.szShinings[i]); } } } }
paste this to end of the file:
#ifdef ENABLE_SHINING_SYSTEM #ifdef ENABLE_ACCE_COSTUME_SYSTEM void CInstanceBase::__AttachAcceShiningEffect(int effectIndex, const char* effectFileName, const char* boneName) { if (IsAffect(AFFECT_INVISIBILITY)) { return; } if (effectIndex >= CItemData::ITEM_SHINING_MAX_COUNT) { return; } if (!strcmp(boneName, "")) { Tracef("Empty bone name for attaching armor shining. Effect Index: %i, EffectFileName: %s", effectIndex, effectFileName); return; } CEffectManager::Instance().RegisterEffect(effectFileName, false, false); m_acceShiningEffects[effectIndex] = m_GraphicThingInstance.AttachEffectByName(0, boneName, effectFileName); } #ifdef ENABLE_ACCE_COSTUME_SYSTEM void CInstanceBase::__ClearAcceShiningEffect(bool detaching) { for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { if (detaching) { __DetachEffect(m_acceShiningEffects[i]); } m_acceShiningEffects[i] = 0; } } #endif #endif
Take care about #defines may I use different. Enjoy it. Cheers.
-
1
-
-
9 minutes ago, Karbust said:
Nothing missing, and the effect is showing up on the mount when called, but not on the preview...
I mean in msm path something like this effect.mse not
ymir work/effect/mount/folder/effect.mse
-
20 hours ago, V0lvox said:
Dont comment the fix!
Okay i found a solution for my problem
In grpRenderTargetTexture.h
void Render() const; replace with void Render();
in grpRenderTargetTexture.cpp
void CGraphicRenderTargetTexture::Render() const { D3DSURFACE_DESC desc; m_lpd3dRenderTargetSurface->GetDesc(&desc); replace with void CGraphicRenderTargetTexture::Render() { D3DSURFACE_DESC desc; if (m_lpd3dRenderTargetSurface == nullptr) { CreateTextures(); } m_lpd3dRenderTargetSurface->GetDesc(&desc);
Somewhere it lose a Texture pointer, so I reinitalize.
1 hour ago, Karbust said:It is working but not on everything, somehow some mounts don't get the effect:
May thoose using relativ path and searching from current directory, check with Debug.
-
1
-
1
-
-
18 hours ago, V0lvox said:
Dont comment the fix!
With "fix looks like this, without it crashing
-
If I dont comment it rendered it to main window. Not to the rendertarget window.
2 hours ago, V0lvox said:Dont comment the fix!
Tomorow I give you an video from error
-
17 hours ago, V0lvox said:
Send log.txt
Log.txt
https://metin2.download/picture/f0PgSy2vwE53j41Z8QiUR5700LEHwIfL/.png
Debugging dump :
https://metin2.download/picture/I03XnykMgthT6nEM5uO9YDdP8nJL3T2m/.png
My grpRenderTargetTexture.cpp after updated to DX9
-
2
-
2
-
-
Hi guys. I got a little wierd problem with rendertarget system, everything works fine till I open Itemshop
after that client is crashing.
After debug
void CGraphicRenderTargetTexture::Render() const { D3DSURFACE_DESC desc; if (m_lpd3dRenderTargetSurface == nullptr) return; m_lpd3dRenderTargetSurface->GetDesc(&desc);
m_lpd3dRenderTargetSurface is came null, any idea how to fix that? Some where it lose window handle pointer.
-
On 8/18/2019 at 5:42 PM, weryoliveira said:
this sistem give game.core when i kill stones, why?
I get same error, I looking for solution.
GDB give me this.
#0 0x080a87f0 in CHARACTER::Dead (this=this@entry=0x3e691000, pkKiller=<optimized out>, pkKiller@entry=0x0, bImmediateDead=bImmediateDead@entry=true) at entity.h:54 isAgreedPVP = <optimized out> isUnderGuildWar = <optimized out> isDuel = <optimized out> isForked = <optimized out> pack = {header = 0 '\000', vid = 268435456} __FUNCTION__ = {<optimized out>, <optimized out>, <optimized out>, <optimized out>, <optimized out>} #1 0x080a957c in CHARACTER::Dead (this=0x3e691000, pkKiller=0x0, bImmediateDead=true) at char_battle.cpp:1562 isAgreedPVP = <optimized out> isUnderGuildWar = <optimized out> isDuel = <optimized out> isForked = <optimized out> pack = {header = <optimized out>, vid = <optimized out>} __FUNCTION__ = {<optimized out>, <optimized out>, <optimized out>, <optimized out>, <optimized out>} g1 = <optimized out> g2 = <optimized out> iEP = <optimized out> buf = {<optimized out> <repeats 256 times>} --Type <RET> for more, q to quit, c to continue without paging-- buf = {<optimized out> <repeats 256 times>} iNoPenaltyProb = <optimized out> f = {m_iAmount = <optimized out>, m_iCount = <optimized out>, m_iStep = <optimized out>, m_iKillerX = <optimized out>, m_iKillerY = <optimized out>} chResurrect = <optimized out> buf = {<optimized out> <repeats 51 times>} it = {_M_node = <optimized out>} pEventInfo = <optimized out> #2 0x08090f80 in FuncDeadSpawnedByStone::operator() (ch=0x3e691000, this=<synthetic pointer>) at char.cpp:5139 No locals. #3 std::for_each<std::__detail::_Node_iterator<CHARACTER*, true, false>, FuncDe adSpawnedByStone> (__f=..., __last=..., __first=...) at /usr/local/lib/gcc10/include/c++/bits/stl_algo.h:3844 No locals. #4 CHARACTER::ClearStone (this=0x3e547000) at char.cpp:5149 f = {<No data fields>} #5 0x080a9269 in CHARACTER::Dead (this=this@entry=0x3e547000, pkKiller=<optimized out>, pkKiller@entry=0x3e66f000, bImmediateDead=bImmediateDead@entry=true) at char_battle.cpp:1507 pEventInfo = <optimized out> isAgreedPVP = <optimized out> --Type <RET> for more, q to quit, c to continue without paging-- isUnderGuildWar = <optimized out> isDuel = <optimized out> isForked = <optimized out> pack = {header = 14 '\016', vid = 21572} __FUNCTION__ = {<optimized out>, <optimized out>, <optimized out>, <optimized out>, <optimized out>} #6 0x080aa5ea in CHARACTER::Dead (bImmediateDead=true, pkKiller=0x3e66f000, this=0x3e547000) at char_battle.cpp:517 isUnderGuildWar = <optimized out> isDuel = <optimized out> isAgreedPVP = <optimized out> isForked = <optimized out> pack = {header = <optimized out>, vid = <optimized out>} isAgreedPVP = <optimized out> isUnderGuildWar = <optimized out> isDuel = <optimized out> isForked = <optimized out> pack = {header = <optimized out>, vid = <optimized out>} __FUNCTION__ = {<optimized out>, <optimized out>, <optimized out>, <optimized out>, <optimized out>} g1 = <optimized out> g2 = <optimized out> iEP = <optimized out> --Type <RET> for more, q to quit, c to continue without paging-- buf = {<optimized out> <repeats 256 times>} buf = {<optimized out> <repeats 256 times>} iNoPenaltyProb = <optimized out> f = {m_iAmount = <optimized out>, m_iCount = <optimized out>, m_iStep = <optimized out>, m_iKillerX = <optimized out>, m_iKillerY = <optimized out>} chResurrect = <optimized out> buf = {<optimized out> <repeats 51 times>} it = {_M_node = <optimized out>} pEventInfo = <optimized out> #7 CHARACTER::Damage (this=<optimized out>, pAttacker=<optimized out>, dam=<optimized out>, type=<optimized out>) at char_battle.cpp:2177 iCurHP = <optimized out> iCurSP = <optimized out> IsCritical = <optimized out> IsPenetrate = <optimized out> IsDeathBlow = false
-
1
-
-
Empires flag added.
-
Another solution for unwanted client acessing to the server. Thanks to @martysama0134
-
2
-
1
-
2
-
-
I seen some forum, some Amd series had problem with Dx9, and they fixed with other version driver. I dont know its working for you. Other option you have upgrade to dx11. Or google it for other solution.
Problem is transparency, amd using other dds format, for fixing this. But I think better for make two version compile one with dx8 other with dx9 if somebody has problem with dx9.
-
@VegaS™ may help for you, but first read the rules.
-
32 minutes ago, martysama0134 said:
https://metin2.download/picture/LTP4REmmHb3W7VT30DhnC2YuybcoB3qv/.gif
I've loaded those languages but I can't trigger this bug.
Check the logs\ folder if you got any .dmp, and send it to me.
Sorry it my fault, the worleditor works perfectly, previously i changed icons with Resource hacker and its makes trouble. The orginal working with all the plugins, with my Hungarian plugin too.
-
1
-
-
On 8/24/2021 at 5:03 PM, arlinamid said:
. I modified everywhere in the program when you can load a file from windows system and click cancel on loading windows the program crashing if you didnt select a file, just click Cancel.
I checked it only happens if translate plugin was used.
I checked with French and Hungarian plugin.
-
Hi guys,
I make a hungarian translate for WorldEditor_Remix, you can access the file here
If you wanna use it in change this line in WorldEditorRemix.ini
LOCALE = "HU"
If you find any mistranslated things send a message to me, I correct it. I will upload to github the whole project.
I change some icons, Enjoy it.
Hungarian translate:
Sziasztok srácok.
Megcsináltam a WorldEditor_remix magyarítását, az alábbi címen elérhetitek
Ha használni akarjátok a WorldEditorRemix.ini -ben át kell írni az alábbi sort "EN" -ről
LOCALE = "HU"
Ha bármilyen félrefordítást csináltam jellezd, és javítom.
Kicseréltem pár icont, Használd egészséggel.
PS. For icons credits to @Tatsumaru
-
6
-
3
-
2
-
-
1. I found a little bug in version v43 on Fly tab if you open a load dialog and didnt choose a msf file and click cancel, the program crashing and closing automaticly.
2. Same if you click on File tab Save collision and didnt write a file name, just click on Cancel the program crashing with file io error.
3. I modified everywhere in the program when you can load a file from windows system and click cancel on loading windows the program crashing if you didnt select a file, just click Cancel.
-
I make a tutorial in this forum. Check this
-
1 hour ago, Tatsumaru said:
I didn't send the PSD because it contained a lot of shit and miscellaneous (it's hard to find yourself without cleaning).
I saved the icons in different settings and this was the only way I could get quality and smooth transitions to transparency.
This way, you get an image without a background, which you can then save in the format of your choice:
@Tatsumaru upload psd to public we waiting your icons
-
You didnt finished directx upgrade on terrain. Check the variables and directx function well updated in project.
-
58 minutes ago, martysama0134 said:
I was waiting for his psd for kinda 1 year
That .bmp has been saved in the wrong format. This is how you do it:
The application accepts colorscale 8bit bitmaps. The transparency is handled via c++ (very old MFC app) using the #ff00ff color.
The size of the .bmp is 9140 bytes and should look like this:
If you were to use this one, it will look like this:
https://metin2.download/picture/4cN6ES4VEznwnNe1XmND92FGkT1vtlOd/.gif
(with so much white)
I dont make any changes it works fine.
But, I have a question for you can I make a Hungarian translate, for Worldeditor via Resource hacker or you had something for I can translate and compile?
And other question I working now on NavMesh(Recast/Detour) for Metin2 , I'm think it will be easily implemented into the Worldeditor, and createing navmesh files for Detour can you help me in this project.
-
On 12/12/2020 at 6:48 AM, Tatsumaru said:
I really like it @Tatsumaru , easily implemented with Resource hacker
Thank you and also Thanks to @martysama0134
-
7
-
1
-
1
-
1
-
-
10 minutes ago, Ace said:
I never understood why you let clients crash when pictures are missing. The pictures should simply be invisible, and good is. take just the function out where your client crashes if your pictures are not there.
Because this file io error, an exception which you wont handle it, handle and the client doesnt crashing.
-
1
-
-
It looks nice, but only a begining what I expecting. Thanks for the release.
I am think about the collisions and its only client side, so i'm true way only getting navmesh from client side and checking collisions when mob moving, yes I know its hard to implement, but we look into future.
-
2
-
Metin2MSAMaker
in Tools & Programs
Posted
Thanks, You made my day, yesterday I spend a 3 hour for browsing granny.h and try to find out why isnt working.