Jump to content
Maintenance : Final step ×

Mafuyu

Member
  • Posts

    97
  • Joined

  • Last visited

  • Feedback

    0%

About Mafuyu

Informations

  • Gender
    Male

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Mafuyu's Achievements

Collaborator

Collaborator (7/16)

  • Reacting Well
  • Dedicated
  • First Post
  • Collaborator
  • Week One Done

Recent Badges

53

Reputation

  1. so still people dont know what to make with the missing part.
  2. so delete it? move it above your new block? what should we do with it? you removed it in your code
  3. and what happens with for (TMapBuffOnAttrs::iterator it = m_map_buff_on_attrs.begin(); it != m_map_buff_on_attrs.end(); it++) { it->second->GiveAllAttributes(); } ??
  4. hello, im looking for the function which reads and sets the attributes on my character from the item on equip action. Its not in EquipItem. Any ideas?
  5. after over and over granting and revoking the same bonus, it destorys your character. first of all, it stacks over time more and more, by also bringing other stats to negativ. pretty lit please post your full function void CParty::ComputeRolePoint(LPCHARACTER ch, BYTE bRole, bool bAdd) edit: your second option works perfectly fine. Your first option is bugged af, dunno. duping every attribute while bringing others to negativ, dunno whats broken there
  6. shorter text would be better, like DEV instead of developer, SA instead of Server Admin, it kinda ruins the look of it when theres nearly a written book above your name thanks anyway
  7. found it few years ago, sometimes real_time items could disappear in nemeres watchtower. never found any solution or even a topic about it. maybe a year later i found something in the patchnotes from another big server like "fixed a bug causing items disappear in nemeres tower", couldnt really ask anyone about it and i just removed the dungeon. Now 2 weeks ago i found something in the informations from the lungsam server source: "- fix real_time in Nemere's Watchtower" now i know, its a common problem and not only for me. Did someone else found this somehow? or did someone have a fix for this?
  8. dunno why, for me neither detachment nor tuning will work after splitting it up. And yeah, its not that much of changing code but it literally doesnt work anymore. Even with debug outputs, none of the 2 functions gets triggered after splitting it up. Any idea? case USE_TUNING: { LPITEM item2 = nullptr; if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell))) return false; if (item2->IsExchanging() || item2->IsEquipped()); return false; #ifdef __STONE_REFINE_FIX__ if (item->GetVnum() >= 28330 && item->GetVnum() <= 28643) // fix { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Du kannst Steine nur bei Seon-Pyeong verbessern.")); return false; } #endif #ifdef __RITUAL_STONE__ if (item->GetValue(0) == RITUALS_SCROLL) { if (item2->GetLevelLimit() < item->GetValue(1)) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Du kannst nur Items über Lv. 80 verbessern.")); return false; } else RefineItem(item, item2); } #endif else { RefineItem(item, item2); } } break; // DETACH_METIN_REFACTORING //trennung von USE_DETACHMENT und USE_TUNING in 2 funktionen case USE_DETACHMENT: { LPITEM item2 = nullptr; if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell))) return false; if (item2->IsExchanging() || item2->IsEquipped()); return false; ChatPacket(CHAT_TYPE_INFO, "test 3"); #ifdef ENABLE_SOULBIND_SYSTEM if (item2->IsBind() || item2->IsUntilBind()) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Du kannst keine Steine aus seelengebundenen Items entfernen.")); return false; } #endif #ifdef __SASH_SYSTEM__ if (item->GetValue(0) == SASH_CLEAN_ATTR_VALUE0) { if (!CleanSashAttr(item, item2)) return false; return true; } #endif DetachMetin(item, item2); } break; // END_OF_DETACH_METIN_REFACTORING ------------------------------ bool CHARACTER::RefineItem(LPITEM pkItem, LPITEM pkTarget) { if (!CanHandleItem()) return false; #ifdef ENABLE_AURA_SYSTEM if (pkTarget->GetType() == ITEM_COSTUME && pkTarget->GetSubType() == COSTUME_AURA) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("AURA_ITEM_CANNOT_BE_REFINED_THIS_WAY")); return false; } #endif ChatPacket(CHAT_TYPE_INFO, "test 5"); #ifdef ENABLE_REFINE_FAILSTACK int failstacks = DBManager::Instance().GetFailStacks(this); #endif // MUSIN_SCROLL if (pkItem->GetValue(0) == MUSIN_SCROLL) #ifdef ENABLE_REFINE_FAILSTACK RefineInformation(pkTarget->GetCell(), REFINE_TYPE_MUSIN, pkItem->GetCell(), failstacks, failstacks / 100); #else RefineInformation(pkTarget->GetCell(), REFINE_TYPE_MUSIN, pkItem->GetCell()); #endif // END_OF_MUSIN_SCROLL #ifdef ENABLE_CAN_USE_SCROLL_FOR_501_REFINESET else if (pkItem->GetValue(0) == CHUKBOK_SCROLL) #ifdef ENABLE_REFINE_FAILSTACK RefineInformation(pkTarget->GetCell(), REFINE_TYPE_SCROLL, pkItem->GetCell(), failstacks, failstacks / 100); #else RefineInformation(pkTarget->GetCell(), REFINE_TYPE_SCROLL, pkItem->GetCell()); #endif #endif else if (pkItem->GetValue(0) == HYUNIRON_CHN) #ifdef ENABLE_REFINE_FAILSTACK RefineInformation(pkTarget->GetCell(), REFINE_TYPE_HYUNIRON, pkItem->GetCell(), failstacks, failstacks / 100); #else RefineInformation(pkTarget->GetCell(), REFINE_TYPE_HYUNIRON, pkItem->GetCell()); #endif else if (pkItem->GetValue(0) == BDRAGON_SCROLL) { if (pkTarget->GetRefineSet() != 702) return false; #ifdef ENABLE_REFINE_FAILSTACK RefineInformation(pkTarget->GetCell(), REFINE_TYPE_BDRAGON, pkItem->GetCell(), failstacks, failstacks / 100); #else RefineInformation(pkTarget->GetCell(), REFINE_TYPE_BDRAGON, pkItem->GetCell()); #endif } #ifdef __RITUAL_STONE__ else if (pkItem->GetValue(0) == RITUALS_SCROLL) { if(pkTarget->GetLevelLimit() <= pkItem->GetValue(1)) return false; #ifdef ENABLE_REFINE_FAILSTACK RefineInformation(pkTarget->GetCell(), REFINE_TYPE_RITUALS_SCROLL, pkItem->GetCell(), failstacks, failstacks / 100); #else RefineInformation(pkTarget->GetCell(), REFINE_TYPE_RITUALS_SCROLL, pkItem->GetCell()); #endif } #endif else { if (pkTarget->GetRefineSet() == 501) return false; #ifdef ENABLE_REFINE_FAILSTACK RefineInformation(pkTarget->GetCell(), REFINE_TYPE_SCROLL, pkItem->GetCell(), failstacks, failstacks / 100); #else RefineInformation(pkTarget->GetCell(), REFINE_TYPE_SCROLL, pkItem->GetCell()); #endif } return false; } bool CHARACTER::DetachMetin(LPITEM pkItem, LPITEM pkTarget) { //if (!(pkItem || pkTarget)) // return false; //deactivated just for testing ChatPacket(CHAT_TYPE_INFO, "test 123"); LogManager::instance().ItemLog(this, pkTarget, "USE_DETACHMENT", pkTarget->GetName()); bool bHasMetinStone = false; #ifdef ENABLE_EXTENDED_SOCKETS for (int i = 0; i < ITEM_STONES_MAX_NUM; i++) #else for (int i = 0; i < ITEM_SOCKET_MAX_NUM; i++) #endif { long socket = pkTarget->GetSocket(i); if (socket > 2 && (DWORD)socket != ITEM_BROKEN_METIN_VNUM) { bHasMetinStone = true; break; } } if (bHasMetinStone) { #ifdef ENABLE_EXTENDED_SOCKETS for (int i = 0; i < ITEM_STONES_MAX_NUM; i++) #else for (int i = 0; i < ITEM_SOCKET_MAX_NUM; i++) #endif { long socket = pkTarget->GetSocket(i); if (socket > 2 && (DWORD)socket != ITEM_BROKEN_METIN_VNUM) { ChatPacket(CHAT_TYPE_INFO, "test 2"); AutoGiveItem(socket); #ifdef ENABLE_BROKEN_METIN_ITEM pkTarget->SetSocket(i, ITEM_BROKEN_METIN_VNUM); #endif pkTarget->SetSocket(i, 1); } } pkItem->SetCount(pkItem->GetCount() - 1); ChatPacket(CHAT_TYPE_INFO, "successfull 1"); return true; } else { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Es gibt keinen Stein zum Herausnehmen. ")); return false; } } refine window wont open up again, stone detachment opens the yes/no dialog window but doesnt do anything after pressing yes. No crash, no syserr dunno why i cant just fkn edit my comment and need to double post (thanks metin2dev) but you fked up your tut with wrong ;'s case USE_TUNING: { LPITEM item2 = nullptr; if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell))) return false; if (item2->IsExchanging() || item2->IsEquipped()); <--- ??? return false; RefineItem(item, item2); } break; // DETACH_METIN_REFACTORING case USE_DETACHMENT: { LPITEM item2 = nullptr; if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell))) return false; if (item2->IsExchanging() || item2->IsEquipped()); <---- ??? return false; DetachMetin(item, item2); } break; // END_OF_DETACH_METIN_REFACTORING wont work this way
  9. shouldnt it be enough if you have clientversion implemented, to use this in input_main: case HEADER_CG_MOVE: Move(ch, c_pData); if (g_bCheckClientVersion) { if (0 != g_stClientVersion.compare(d->GetClientVersion())) // @fixme103 (version > date) { ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("clientversion wrong!")); d->DelayedDisconnect(1); // @fixme103 (10); } } break; ? let them login with a different client, as soon as they tried to move ingame, they get kicked
  10. my "fix" is more like a workaround which is not the best solution for the 5% on every server which uses a old toshiba notebook from 2006. But there are no better solutions out (yet!). Would be interesting if someone with more knowledge will get into the problem and may find a better solution without breaking the rest of the game and without more complicated workarounds ? but as far as i can say, on my last 3 projects, i had never any issues with my fix and no users complaining about heavy gpu/cpu usages in background or heavy lags after minimizing the client. i would say my "fix" can be used without any worries.
  11. even with 9.0f we get false positives^^ way less but still few i get ranges over 13 with 2hand weapons sometimes^^ dunno, somehow only on few maps. guess have to crank it even higher
  12. its already public. Dont know where it was but i have something like that already implemented month ago. i guess it was here on metin2dev
  13. dunno how i should post a gif for it, we are simply using bravery cape at the end of red forest and we get hundreds of spam messages in chat from the fix. The thing is, i didnt removed the return in the function so the outranged mobs should still gets "ignored" but for us, every mob dies fine. Its not like we are hitting 20 times on specific mobs and they wont die because of desync so they should be all in range but i dont know why we then get all those false positives. Can you give me your red forst mob folders so i can check their accumulation and compare with mine. Also we have this issue with the red forest boss as you mentioned.
×
×
  • 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.