4 "new" Systems added
Beiträge von Lux Arcadia
-
-
gg wird wahrscheinlich vielen helfen.
But ich hoffe das mit der suche war nur nen Joke von dir 🤣
Anyways thanks 🔥
suchen steht nicht umsonst in -> "" <-
danke 🔥
-
Hast dir die mühe gemacht Nice
Jetzt muss ich mir dafür keine Likes mehr abgreifen xD
finde ich gut, dass du dich angesprochen fühlst #nohate
-
Find ich gut dass du dir die Arbeit gemacht hast und alles rausgesucht hast dafür bekommst du von mir ein Like du Geier 😜
Hoffe du aktualisierst das auch wenn er wieder was Released
wo geier ich hier rum, ich hau dich gleich
will ja nur verhindern das andere dafür Likes abkassieren für paar Sekunden googlen^^und ja war ne krasse Arbeit das zu "suchen" aber das C&P war ugly af xD
ich versuche aufjeden fall am Ball zu bleiben
-
Damit andere nicht auf die Idee kommen Likes dafür abzugreifen, mach ich ein Sammelpost von den System von Blackdragon aka Mali
Habe versucht mit ihn in Kontakt zu tretten was leider nicht möglich ist zumindest für mich
Ich habe nicht den ganzen Content vom ihm hier reingeposted aber zumindest viele Systeme / Releases die euch bereichern können
Mir ist auch der evtl Hate egal, ich will nur, dass seine Arbeit gewürdigt wird und hier keiner Likes geiern kann der seine Arbeit 1:1 reposted
Github:
Bitte melden Sie sich an, um diesen Link zu sehen.Discord:
blackdragonx61#3810
Youtube:
Bitte melden Sie sich an, um diesen Link zu sehen.
Added 20.05.2023Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
It's an old bug. You probably fixed it with another method, here is the reversed ver.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
GetTimeString used for ranking window
Bitte melden Sie sich an, um dieses Bild zu sehen.
Be sure your PyTuple_GetUnsignedLong working without problem.
Code- ///@@@PythonApplicationModule.cpp:
- ///Add
- PyObject* appGetLocalTime(PyObject* poSelf, PyObject* poArgs)
- {
- DWORD dwTime;
- if (!PyTuple_GetUnsignedLong(poArgs, 0, &dwTime))
- return Py_BuildException();
- const time_t time = static_cast<time_t>(dwTime);
- struct tm *t = localtime(&time);
- if (!t)
- return Py_BuildNone();
- PyObject* dict = PyTuple_New(6);
- PyTuple_SetItem(dict, 0, PyInt_FromLong(t->tm_year + 1900));
- PyTuple_SetItem(dict, 1, PyInt_FromLong(t->tm_mon + 1));
- PyTuple_SetItem(dict, 2, PyInt_FromLong(t->tm_mday));
- PyTuple_SetItem(dict, 3, PyInt_FromLong(t->tm_hour));
- PyTuple_SetItem(dict, 4, PyInt_FromLong(t->tm_min));
- PyTuple_SetItem(dict, 5, PyInt_FromLong(t->tm_sec));
- return dict;
- }
- PyObject* appGetTimeString(PyObject* poSelf, PyObject* poArgs)
- {
- DWORD dwTime;
- if (!PyTuple_GetUnsignedLong(poArgs, 0, &dwTime))
- return Py_BuildException();
- const time_t time = static_cast<time_t>(dwTime);
- struct tm* t = localtime(&time);
- if (!t)
- return Py_BuildValue("s", "ERROR");
- char buf[256];
- snprintf(buf, sizeof(buf), "%04d/%02d/%02d %02d:%02d:%02d", t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec);
- return Py_BuildValue("s", buf);
- }
- ///Add to initapp
- { "GetLocalTime", appGetLocalTime, METH_VARARGS },
- { "GetTimeString", appGetTimeString, METH_VARARGS },
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.Adjust Position is currently used by Alastor:
Bitte melden Sie sich an, um dieses Bild zu sehen._________________________
Added 13.03.2023
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Thanks to Bitte melden Sie sich an, um diesen Link zu sehen. for informing me.
Added 11.03.2023
Bitte melden Sie sich an, um diesen Link zu sehen.
Code- ///@@@PythonWindowManagerModule.cpp:
- PyObject * wndMgrAddFlag(PyObject * poSelf, PyObject * poArgs)
- {
- UI::CWindow * pWin;
- if (!PyTuple_GetWindow(poArgs, 0, &pWin))
- return Py_BuildException();
- char * pszFlag;
- if (!PyTuple_GetString(poArgs, 1, &pszFlag))
- return Py_BuildException();
- if (pszFlag && *pszFlag)
- {
- if (!stricmp(pszFlag, "movable"))
- pWin->AddFlag(UI::CWindow::FLAG_MOVABLE);
- else if (!stricmp(pszFlag, "limit"))
- pWin->AddFlag(UI::CWindow::FLAG_LIMIT);
- else if (!stricmp(pszFlag, "dragable"))
- pWin->AddFlag(UI::CWindow::FLAG_DRAGABLE);
- else if (!stricmp(pszFlag, "attach"))
- pWin->AddFlag(UI::CWindow::FLAG_ATTACH);
- else if (!stricmp(pszFlag, "restrict_x"))
- pWin->AddFlag(UI::CWindow::FLAG_RESTRICT_X);
- else if (!stricmp(pszFlag, "restrict_y"))
- pWin->AddFlag(UI::CWindow::FLAG_RESTRICT_Y);
- else if (!stricmp(pszFlag, "float"))
- pWin->AddFlag(UI::CWindow::FLAG_FLOAT);
- else if (!stricmp(pszFlag, "not_pick"))
- pWin->AddFlag(UI::CWindow::FLAG_NOT_PICK);
- else if (!stricmp(pszFlag, "ignore_size"))
- pWin->AddFlag(UI::CWindow::FLAG_IGNORE_SIZE);
- else if (!stricmp(pszFlag, "rtl"))
- pWin->AddFlag(UI::CWindow::FLAG_RTL);
- else if (!stricmp(pszFlag, "ltr"))
- pWin->RemoveFlag(UI::CWindow::FLAG_RTL);
- else if (!stricmp(pszFlag, "not_move"))
- pWin->RemoveFlag(UI::CWindow::FLAG_MOVABLE);
- else if (!stricmp(pszFlag, "not_capture"))
- pWin->AddFlag(UI::CWindow::FLAG_NOT_CAPTURE);
- else
- TraceError("Unknown window flag %s", pszFlag);
- }
- return Py_BuildNone();
- }
____________________________________
Added 27.02.2023Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Use this tool:
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
This is an archiver I've created, and it looks quite stable so far.
The PackMakerLite (PML) supports type 0-1-2-3-4-5-6.
As a summarize, the metin2 types are handled like this:
- Type 0 - only storage (no encryption/compression; it can be read fully from the .epk)
- Type 1 - compressed - lzo(file)
- Type 2 - compressed and encrypted - xtea(lzo(file))
- Type 3 - encrypted with Panama - you must save an .iv key server-side in the panama/ folder. (content readable only after auth phase) The official used it only for patch2.
- Type 4 - encrypted with a mix of ciphers (cshybridcrypt) - you must save a .dat key server-side in the package/ folder. (content readable only after auth phase) Practically all the metin2_patch files.
- Type 5 - like type 4, but a server-side map/<map_name> is also provided. (content readable only after accessing the <map_name> map as a player) The official used it only for the catacomb data.
- Type 6 - compressed and encrypted - xtea(snappy(file))
Usage:
Bitte melden Sie sich an, um dieses Bild zu sehen.Its settings (xtea keys, extensions, pack types to use) can be changed inside PackMakerLite.json:
Bitte melden Sie sich an, um dieses Bild zu sehen.You can actually integrate the tool in the menu context (running the .reg files) for packing folders and unpacking .eix files:
Bitte melden Sie sich an, um dieses Bild zu sehen.Bitte melden Sie sich an, um dieses Bild zu sehen.
Remove "--nolog" from the .bat files if you want to see the logs again.
Last but not least: since the client handles all the filenames in lowercase, this tools automatically converts them as well.
Thanks also to:
- blackdragonx61 / Mali - type4-5 extract code / type 6 compress code
- metin2team - type6 extract code
By martysama0134
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
_______________________________________________
Added 19.02.2023
Bitte melden Sie sich an, um diesen Link zu sehen.
It is also an important for proto sharers.
- Reversed from 23.0.6.0
Bitte melden Sie sich an, um dieses Bild zu sehen.
That dwUnkFlag is actually DWORD dwAIFlag -> DWORD dwAIFlag[2].
This is only client-side, you have to change server & dump_proto etc.
Code- ///@@@PythonNonPlayer.h:
- enum EClickEvent
- {
- ...
- };
- ///Add
- enum EAIFlags
- {
- AIFLAG_AGGRESSIVE = 0,
- AIFLAG_NOMOVE = 1,
- AIFLAG_COWARD = 2,
- AIFLAG_NOATTACKSHINSU = 3,
- AIFLAG_NOATTACKJINNO = 4,
- AIFLAG_NOATTACKCHUNJO = 5,
- AIFLAG_ATTACKMOB = 6,
- AIFLAG_BERSERK = 7,
- AIFLAG_STONESKIN = 8,
- AIFLAG_GODSPEED = 9,
- AIFLAG_DEATHBLOW = 10,
- AIFLAG_REVIVE = 11,
- AIFLAG_HEALER = 12,
- AIFLAG_COUNT = 13,
- AIFLAG_NORECOVERY = 14,
- AIFLAG_REFLECT = 15,
- AIFLAG_FALL = 16,
- AIFLAG_VIT = 17,
- AIFLAG_RATTSPEED = 18,
- AIFLAG_RCASTSPEED = 19,
- AIFLAG_RHP_REGEN = 20,
- AIFLAG_TIMEVIT = 21,
- AIFLAG_ELEMENT_BUFF_NONE = 26,
- AIFLAG_ELEMENT_BUFF_FIRE = 27,
- AIFLAG_ELEMENT_BUFF_ICE = 28,
- AIFLAG_ELEMENT_BUFF_ELECT = 29,
- AIFLAG_ELEMENT_BUFF_WIND = 30,
- AIFLAG_ELEMENT_BUFF_EARTH = 31,
- AIFLAG_ELEMENT_BUFF_DARK = 32,
- AIFLAG_MAX = 34 // 23.0.6.0
- };
- //Find
- DWORD dwAIFlag;
- ///Change
- DWORD dwAIFlag[2];
- //Find
- const char* GetMonsterName(DWORD dwVnum);
- ///Add
- bool IsAIFlag(DWORD dwVnum, int iFlagIndex);
- ///@@@PythonNonPlayer.cpp:
- ///Add
- bool CPythonNonPlayer::IsAIFlag(DWORD dwVnum, int iFlagIndex)
- {
- const CPythonNonPlayer::TMobTable* c_pTable = GetTable(dwVnum);
- if (!c_pTable)
- return false;
- if (iFlagIndex < 0 || iFlagIndex >= EAIFlags::AIFLAG_MAX)
- return false;
- return IS_SET(c_pTable->dwAIFlag[iFlagIndex >> 5], 1 << (iFlagIndex & 0x1F));
- }
- ///@@@PythonNonPlayerModule.cpp:
- ///Add
- PyObject* nonplayerIsAIFlagByVID(PyObject* poSelf, PyObject* poArgs)
- {
- int iVirtualID;
- if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
- return Py_BuildException();
- int iIndex;
- if (!PyTuple_GetInteger(poArgs, 1, &iIndex))
- return Py_BuildException();
- CInstanceBase* pInstance = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
- if (!pInstance)
- return Py_BuildValue("b", false);
- CPythonNonPlayer& rkNonPlayer = CPythonNonPlayer::Instance();
- return Py_BuildValue("b", rkNonPlayer.IsAIFlag(pInstance->GetVirtualID(), iIndex));
- }
- ///Add to initNonPlayer
- { "IsAIFlagByVID", nonplayerIsAIFlagByVID, METH_VARARGS },
- //Find
- PyModule_AddIntConstant(poModule, "ON_CLICK_EVENT_VEHICLE", CPythonNonPlayer::ON_CLICK_EVENT_VEHICLE);
- ///Add
- PyModule_AddIntConstant(poModule, "AIFLAG_AGGRESSIVE", CPythonNonPlayer::EAIFlags::AIFLAG_AGGRESSIVE);
- PyModule_AddIntConstant(poModule, "AIFLAG_NOMOVE", CPythonNonPlayer::EAIFlags::AIFLAG_NOMOVE);
- PyModule_AddIntConstant(poModule, "AIFLAG_COWARD", CPythonNonPlayer::EAIFlags::AIFLAG_COWARD);
- PyModule_AddIntConstant(poModule, "AIFLAG_NOATTACKSHINSU", CPythonNonPlayer::EAIFlags::AIFLAG_NOATTACKSHINSU);
- PyModule_AddIntConstant(poModule, "AIFLAG_NOATTACKJINNO", CPythonNonPlayer::EAIFlags::AIFLAG_NOATTACKJINNO);
- PyModule_AddIntConstant(poModule, "AIFLAG_NOATTACKCHUNJO", CPythonNonPlayer::EAIFlags::AIFLAG_NOATTACKCHUNJO);
- PyModule_AddIntConstant(poModule, "AIFLAG_ATTACKMOB", CPythonNonPlayer::EAIFlags::AIFLAG_ATTACKMOB);
- PyModule_AddIntConstant(poModule, "AIFLAG_BERSERK", CPythonNonPlayer::EAIFlags::AIFLAG_BERSERK);
- PyModule_AddIntConstant(poModule, "AIFLAG_STONESKIN", CPythonNonPlayer::EAIFlags::AIFLAG_STONESKIN);
- PyModule_AddIntConstant(poModule, "AIFLAG_GODSPEED", CPythonNonPlayer::EAIFlags::AIFLAG_GODSPEED);
- PyModule_AddIntConstant(poModule, "AIFLAG_DEATHBLOW", CPythonNonPlayer::EAIFlags::AIFLAG_DEATHBLOW);
- PyModule_AddIntConstant(poModule, "AIFLAG_REVIVE", CPythonNonPlayer::EAIFlags::AIFLAG_REVIVE);
- PyModule_AddIntConstant(poModule, "AIFLAG_HEALER", CPythonNonPlayer::EAIFlags::AIFLAG_HEALER);
- PyModule_AddIntConstant(poModule, "AIFLAG_COUNT", CPythonNonPlayer::EAIFlags::AIFLAG_COUNT);
- PyModule_AddIntConstant(poModule, "AIFLAG_NORECOVERY", CPythonNonPlayer::EAIFlags::AIFLAG_NORECOVERY);
- PyModule_AddIntConstant(poModule, "AIFLAG_REFLECT", CPythonNonPlayer::EAIFlags::AIFLAG_REFLECT);
- PyModule_AddIntConstant(poModule, "AIFLAG_FALL", CPythonNonPlayer::EAIFlags::AIFLAG_FALL);
- PyModule_AddIntConstant(poModule, "AIFLAG_VIT", CPythonNonPlayer::EAIFlags::AIFLAG_VIT);
- PyModule_AddIntConstant(poModule, "AIFLAG_RATTSPEED", CPythonNonPlayer::EAIFlags::AIFLAG_RATTSPEED);
- PyModule_AddIntConstant(poModule, "AIFLAG_RCASTSPEED", CPythonNonPlayer::EAIFlags::AIFLAG_RCASTSPEED);
- PyModule_AddIntConstant(poModule, "AIFLAG_RHP_REGEN", CPythonNonPlayer::EAIFlags::AIFLAG_RHP_REGEN);
- PyModule_AddIntConstant(poModule, "AIFLAG_TIMEVIT", CPythonNonPlayer::EAIFlags::AIFLAG_TIMEVIT);
- PyModule_AddIntConstant(poModule, "AIFLAG_ELEMENT_BUFF_NONE", CPythonNonPlayer::EAIFlags::AIFLAG_ELEMENT_BUFF_NONE);
- PyModule_AddIntConstant(poModule, "AIFLAG_ELEMENT_BUFF_FIRE", CPythonNonPlayer::EAIFlags::AIFLAG_ELEMENT_BUFF_FIRE);
- PyModule_AddIntConstant(poModule, "AIFLAG_ELEMENT_BUFF_ICE", CPythonNonPlayer::EAIFlags::AIFLAG_ELEMENT_BUFF_ICE);
- PyModule_AddIntConstant(poModule, "AIFLAG_ELEMENT_BUFF_ELECT", CPythonNonPlayer::EAIFlags::AIFLAG_ELEMENT_BUFF_ELECT);
- PyModule_AddIntConstant(poModule, "AIFLAG_ELEMENT_BUFF_WIND", CPythonNonPlayer::EAIFlags::AIFLAG_ELEMENT_BUFF_WIND);
- PyModule_AddIntConstant(poModule, "AIFLAG_ELEMENT_BUFF_EARTH", CPythonNonPlayer::EAIFlags::AIFLAG_ELEMENT_BUFF_EARTH);
- PyModule_AddIntConstant(poModule, "AIFLAG_ELEMENT_BUFF_DARK", CPythonNonPlayer::EAIFlags::AIFLAG_ELEMENT_BUFF_DARK);
Usage:
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Petit exemple. Juste une partie c ++:
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
If you do not add vnum to portal.txt, that portal will not have any level limit.
________________________________________________________________________________________________________
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
You must add these:Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
"Hello boys and girls!
With this small release you will be able to check every single affects on your character. The official server implemented this with their autohunt system to check the duration of taus and other potions.
I had to do the same for the dragon soul I have decided to make it. After a small trip in the official binary, I figured out my solution, here it is:
1.0.) Open the Client/UserInterface/PythonPlayer.h file.
1.1.) Then paste the following code to the end of the CPythonPlayer class:
(By unknown reason they put this into the CPythonItem class, idk why. tbh idc)Code- protected:
- typedef std::vector<TPacketAffectElement> TAffectDataVector;
- TAffectDataVector m_mapAffectData;
- public:
- void AddAffect(DWORD dwType, TPacketAffectElement kElem);
- void RemoveAffect(DWORD dwType, BYTE bApplyOn);
- int GetAffectDataIndex(DWORD dwType, BYTE bApplyOn);
- TPacketAffectElement GetAffectData(DWORD dwType, BYTE bApplyOn);
2.0.) Now open the Client/UserInterface/PythonPlayer.cpp file.
2.1.) Jump to the function by name: CPythonPlayer::Clear and add the following line into the function(my advice: to the bottom as always):2.2.) And last paste these anywhere you want:
Code- void CPythonPlayer::AddAffect(DWORD dwType, TPacketAffectElement kElem)
- {
- int iAffIndex = GetAffectDataIndex(dwType, kElem.bPointIdxApplyOn);
- if (iAffIndex != -1)
- {
- m_mapAffectData.at(iAffIndex) = kElem;
- }
- else
- {
- m_mapAffectData.push_back(kElem);
- }
- }
- void CPythonPlayer::RemoveAffect(DWORD dwType, BYTE bApplyOn)
- {
- for (TAffectDataVector::iterator it = m_mapAffectData.begin(); it != m_mapAffectData.end(); ++it)
- {
- TPacketAffectElement elem = *it;
- if (elem.dwType == dwType && (bApplyOn == 0 || bApplyOn == elem.bPointIdxApplyOn))
- {
- m_mapAffectData.erase(it);
- break;
- }
- }
- }
- int CPythonPlayer::GetAffectDataIndex(DWORD dwType, BYTE bApplyOn)
- {
- int ret = -1, i = 0;
- for (TAffectDataVector::iterator it = m_mapAffectData.begin(); it != m_mapAffectData.end(); ++it, ++i)
- {
- TPacketAffectElement elem = *it;
- if (elem.dwType == dwType && (bApplyOn == 0 || bApplyOn == elem.bPointIdxApplyOn))
- {
- ret = i;
- break;
- }
- }
- return ret;
- }
- TPacketAffectElement CPythonPlayer::GetAffectData(DWORD dwType, BYTE bApplyOn)
- {
- TPacketAffectElement ret;
- memset(&ret, 0, sizeof(TPacketAffectElement));
- for (TAffectDataVector::iterator it = m_mapAffectData.begin(); it != m_mapAffectData.end(); ++it)
- {
- TPacketAffectElement elem = *it;
- if (elem.dwType == dwType && (bApplyOn == 0 || bApplyOn == elem.bPointIdxApplyOn))
- {
- ret = elem;
- break;
- }
- }
- return ret;
- }
3.0.) Next, open the Client/UserInterface/CPythonNetworkStreamPhaseGame.cpp file.
3.1.) Extend this function: CPythonNetworkStream::RecvAffectAddPacket with this:3.2.) Do the same into the CPythonNetworkStream::RecvAffectRemovePacket function with this:
4.0.) Open the Client/UserInterface/PythonPlayerModule.cpp file.
4.1.) Add this new function to the module:Code- PyObject * playerCheckAffect(PyObject* poSelf, PyObject* poArgs)
- {
- DWORD dwType;
- if (!PyTuple_GetUnsignedLong(poArgs, 0, &dwType))
- return Py_BadArgument();
- BYTE bApplyOn;
- if (!PyTuple_GetByte(poArgs, 1, &bApplyOn))
- return Py_BadArgument();
- int iAffIndex = CPythonPlayer::Instance().GetAffectDataIndex(dwType, bApplyOn);
- return Py_BuildValue("b", iAffIndex != -1);
- }
- { "CheckAffect", playerCheckAffect, METH_VARARGS },
How to check if the first or the second deck of the dragon soul is activated?
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Thanks for sharing, as always!
You could also check the position realtime while the player is in range so it updates faster.Bitte melden Sie sich an, um dieses Bild zu sehen.
Code- /// 1. @ UserInterface/PythonMiniMap.cpp
- // Search @ void CPythonMiniMap::RenderAtlas
- const auto& PartyInfo = it->second;
- __GlobalPositionToAtlasPosition(PartyInfo->lX - m_dwAtlasBaseX, PartyInfo->lY - m_dwAtlasBaseY, &PartyInfo->fScreenX, &PartyInfo->fScreenY);
- // Replace with
- long xPos = PartyInfo->lX;
- long yPos = PartyInfo->lY;
- CInstanceBase* pkInst = CPythonCharacterManager::Instance().GetInstancePtrByName(pPartyMemberInfo->strName.c_str());
- if (pkInst)
- {
- TPixelPosition kInstPos;
- pkInst->NEW_GetPixelPosition(&kInstPos);
- xPos = kInstPos.x + m_dwAtlasBaseX;
- yPos = kInstPos.y + m_dwAtlasBaseY;
- }
- __GlobalPositionToAtlasPosition(xPos - m_dwAtlasBaseX, yPos - m_dwAtlasBaseY, &PartyInfo->fScreenX, &PartyInfo->fScreenY);
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
You can do things like these with it:
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.Bitte melden Sie sich an, um dieses Bild zu sehen.Bitte melden Sie sich an, um dieses Bild zu sehen.Bitte melden Sie sich an, um dieses Bild zu sehen.
- POWERSHARD_CHEST has 30% chance contains material.
- ELEGANT_POWERSHARD_CHEST has 60% chance contains material.
- LUCENT_POWERSHARD_CHEST has 100% chance contains material(5x).
- Old rare bonus items(71051 & 71052) disabled.
- Use the gui to add rare bonuses.
- There are now 2 new items to change rare bonuses: ORISON & SMALL_ORISON
- SMALL_ORISON has 10% chance to change rare bonuses.
- ORISON has 100% chance to change rare bonuses.
- For more information, check the images and the video.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.Bitte melden Sie sich an, um dieses Bild zu sehen.
It's uses config.ini and locale_list.txt from official client.
The language option is stored in the loca.cfg file. It's a silly name, but I did it because it's official did as well. You can change file name.
Target Framework: .NET Framework 4.8
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Reversed from 22.2.7.0 Official Binary.
+ Football Metin Stone From 22.5.7.0:
Bitte melden Sie sich an, um dieses Bild zu sehen.
Functions were in different modules, I gathered them on a single module.
Do not forget to get proto and other files for metin stones from official packs.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
- Reversed from 22.2.7.0
- Client part is from 2018 official root
List of functions:
- EnableFlash
- DisableFlash
- GetButtonImageWidth
- GetButtonImageHeight
- SetAlwaysToolTip
- SetButtonScale
- SetButtonDiffuseColor
- IsDIsable
Be careful about IsDIsable, it's actually IsEnable.
They use like this:
Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
Includes empire and job too, but not in the gui. You can edit gui for that. I didn' try.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Reversed from 22.2.7.0 Official Binary
Client part is from 2018 Official Root.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Client side is from 2018 official root.
It checks the status of the channel from db and gets the port and addr.
It also checks if that map exists in that channel(config).
Bitte melden Sie sich an, um diesen Link zu sehen.
Reversed From 22.5.7.0
Code- ///@@@UserInterface/PythonApplication.cpp:
- //Find
- void CPythonApplication::Abort()
- {
- ...
- }
- ///Change
- void CPythonApplication::Abort()
- {
- TraceError("============================================================================================================");
- TraceError("Abort!!!!\n\n");
- PyThreadState* tstate = PyThreadState_GET();
- if (tstate)
- {
- for (PyFrameObject* frame = tstate->frame; frame; frame = frame->f_back)
- {
- PyCodeObject* f_code = frame->f_code;
- if (!f_code || !f_code->co_filename || !f_code->co_name)
- continue;
- const char* filename = PyString_AsString(f_code->co_filename);
- const char* funcname = PyString_AsString(f_code->co_name);
- TraceError("filename=%s, name=%s", filename, funcname);
- }
- }
- PostQuitMessage(0);
- }
OLD:
0131 12:59:00866 :: ============================================================================================================
0131 12:59:00867 :: Abort!!!!NEW:
0131 12:59:00866 :: ============================================================================================================
0131 12:59:00867 :: Abort!!!!
0131 12:59:00867 :: filename=root/black_test.py, name=__LoadWindow
0131 12:59:00867 :: filename=root/black_test.py, name=__init__
0131 12:59:00867 :: filename=root/black_test.py, name=<module>
0131 12:59:00867 :: filename=root/system.py, name=_process_result
0131 12:59:00867 :: filename=root/system.py, name=__pack_import
0131 12:59:00867 :: filename=root/introLogin.py, name=Open
0131 12:59:00867 :: filename=root/networkModule.py, name=__ChangePhaseWindow
0131 12:59:00867 :: filename=root/uiPhaseCurtain.py, name=OnUpdate
0131 12:59:00867 :: filename=root/prototype.py, name=RunApp
0131 12:59:00867 :: filename=root/prototype.py, name=<module>
0131 12:59:00867 :: filename=root/system.py, name=Run
0131 12:59:00867 :: filename=root/system.py, name=execfile
0131 12:59:00867 :: filename=root/system.py, name=RunMainScript
0131 12:59:00867 :: filename=root/system.py, name=<module>
0131 12:59:00867 :: filename=<string>, name=<module>
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Anyway now you can sell shop items with sockets and attrs at shopex.
New price types.
New sorting options
Every Item can have different price type.
price_type: 1:Gold 2:Second Coin 3:Item 4:EXP
sort: Asc,Desc,Vnum,Price,Name,Type
Bitte melden Sie sich an, um dieses Bild zu sehen.Bitte melden Sie sich an, um dieses Bild zu sehen.Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
- Reversed from 22.2.7.0 Official Binary.
- Client part is from 2018 Official Root.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
I'm not saying "This is better, you must use this" etc.
I'm only giving you what official has.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
- Mouse wheel moves relative to the top window, not the window the mouse is pointing to.
- Reversed from 22.2.7.0 Official Binary.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
I revised it. Maybe someone would like to use it. Sorry for py and gui
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
It's working without serverside.
For tooltip:Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Hi, folks!
With this guide you will be able to combine textlines with images, like rubinum does.
Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Usage is simple:
The files are located in the icon pack, so basically the code will load from icon/{GIVEN_PATH}.tga - in the sample the path for the X is: icon/emoji/key_x.tga
Here are the images from rubinum client:Bitte melden Sie sich an, um diesen Link zu sehen.
Howto:
C- 1.) Open EterLib/TextTag.h and add the new tags into the enum there:
- TEXT_TAG_EMOJI_START, // |E
- TEXT_TAG_EMOJI_END, // |e ex) |Epath/filename|h
- 2.1.) Open the EterLib/TextTag.cpp and extend the GetTextTag function with the following statements:
- else if (*cur == L'E') // emoji |Epath/emo|e
- {
- tagLen = 2;
- return TEXT_TAG_EMOJI_START;
- }
- else if (*cur == L'e') // end of emoji
- {
- tagLen = 2;
- return TEXT_TAG_EMOJI_END;
- }
- 2.2.) Extend the GetTextTagOutputString function with the following statements:
- else if (tag == TEXT_TAG_EMOJI_START)
- hyperlinkStep = 1;
- else if (tag == TEXT_TAG_EMOJI_END)
- hyperlinkStep = 0;
- 2.3.) Repeat the 2.2. in the GetTextTagInternalPosFromRenderPos function:
- else if (tag == TEXT_TAG_EMOJI_START)
- hyperlinkStep = 1;
- else if (tag == TEXT_TAG_EMOJI_END)
- hyperlinkStep = 0;
- 2.4.) Repeat again in the GetTextTagOutputLen function too:
- else if (tag == TEXT_TAG_EMOJI_START)
- hyperlinkStep = 1;
- else if (tag == TEXT_TAG_EMOJI_END)
- hyperlinkStep = 0;
- 3.1.) Open EterLib/GrpTextInstance.h and add the following line at the top of the file where the includes are:
- #include "GrpImageInstance.h"
- 3.2.) Add the following struct below of the SHyperlink struct:
- struct SEmoji
- {
- short x;
- CGraphicImageInstance * pInstance;
- SEmoji() : x(0)
- {
- pInstance = NULL;
- }
- };
- 3.3.) Below of the m_hyperlinkVector declaration declare a new variable:
- std::vector<SEmoji> m_emojiVector;
- 4.1.) Open EterLib/GrpTextInstance.cpp and add the following line at the top of the file, where the includes are:
- #include "ResourceManager.h"
- 4.2.) In the CGraphicTextInstance::Update function add the following below of this line: m_hyperlinkVector.clear();
- if (m_emojiVector.size() != 0)
- {
- for (std::vector<SEmoji>::iterator itor = m_emojiVector.begin(); itor != m_emojiVector.end(); ++itor)
- {
- SEmoji & rEmo = *itor;
- if (rEmo.pInstance)
- {
- CGraphicImageInstance::Delete(rEmo.pInstance);
- rEmo.pInstance = NULL;
- }
- }
- }
- m_emojiVector.clear();
- 4.3.) This is a bit complicated, so first of all look for this line:
- else // ľĆ¶řżÜ ´Ů¸Ą ÁöżŞ.
- This is the else for the Arabic codepage, I could not test it, so I didn't make it to arab rtl style.
- 4.4.) Add the following below of this line: std::wstring hyperlinkBuffer;
- SEmoji kEmoji;
- int emojiStep = 0;
- std::wstring emojiBuffer;
- 4.5.) Replace this:
- if (hyperlinkStep == 1)
- hyperlinkBuffer.append(1, wText[i]);
- With this:
- if (hyperlinkStep == 1)
- hyperlinkBuffer.append(1, wText[i]);
- else if (emojiStep == 1)
- emojiBuffer.append(1, wText[i]);
- 4.6.) Then add the new processor for the new tags:
- else if (ret == TEXT_TAG_EMOJI_START)
- {
- emojiStep = 1;
- emojiBuffer = L"";
- }
- else if (ret == TEXT_TAG_EMOJI_END)
- {
- kEmoji.x = x;
- char retBuf[1024];
- int retLen = Ymir_WideCharToMultiByte(GetDefaultCodePage(), 0, emojiBuffer.c_str(), emojiBuffer.length(), retBuf, sizeof(retBuf) - 1, NULL, NULL);
- retBuf[retLen] = '\0';
- char szPath[255];
- snprintf(szPath, sizeof(szPath), "icon/%s.tga", retBuf);
- if (CResourceManager::Instance().IsFileExist(szPath))
- {
- CGraphicImage * pImage = (CGraphicImage *)CResourceManager::Instance().GetResourcePointer(szPath);
- kEmoji.pInstance = CGraphicImageInstance::New();
- kEmoji.pInstance->SetImagePointer(pImage);
- m_emojiVector.push_back(kEmoji);
- memset(&kEmoji, 0, sizeof(SEmoji));
- for (int i = 0; i < pImage->GetWidth() / (pSpaceInfo->width-1); ++i)
- x += __DrawCharacter(pFontTexture, dataCodePage, ' ', dwColor);
- if (pImage->GetWidth() % (pSpaceInfo->width - 1) > 1)
- x += __DrawCharacter(pFontTexture, dataCodePage, ' ', dwColor);
- }
- emojiStep = 0;
- emojiBuffer = L"";
- }
- 4.7.) Add the following code to the end of the CGraphicTextInstance::Render function:
- if (m_emojiVector.size() != 0)
- {
- for (std::vector<SEmoji>::iterator itor = m_emojiVector.begin(); itor != m_emojiVector.end(); ++itor)
- {
- SEmoji & rEmo = *itor;
- if (rEmo.pInstance)
- {
- rEmo.pInstance->SetPosition(fStanX + rEmo.x, (fStanY + 7.0) - (rEmo.pInstance->GetHeight() / 2));
- rEmo.pInstance->Render();
- }
- }
- }
- 4.8.) Add the following into the CGraphicTextInstance::Destroy function:
- if (m_emojiVector.size() != 0)
- {
- for (std::vector<SEmoji>::iterator itor = m_emojiVector.begin(); itor != m_emojiVector.end(); ++itor)
- {
- SEmoji & rEmo = *itor;
- if (rEmo.pInstance)
- {
- CGraphicImageInstance::Delete(rEmo.pInstance);
- rEmo.pInstance = NULL;
- }
- }
- }
- m_emojiVector.clear();
Have fun Bitte melden Sie sich an, um dieses Bild zu sehen.
Sorry for arab players Bitte melden Sie sich an, um dieses Bild zu sehen., for sure they have also developers, so let's go guys, finish it Bitte melden Sie sich an, um dieses Bild zu sehen.
If you have problem, maybe I made a mistake in the guide of missed out something, just leave a comment below.
PS.: Sometimes the code tag of the board puts an extra invisible character mostly the end of the lines, if your IDE cries for syntax error, but it seems correct, check that part of the file with notepad++, it will show a ?(question mark) where the problem is.Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
c++11 is enough.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.Includes winter and day-night change.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
- Now you can open shops directly.
- There is no need to adjust the coordinates when adding a new shop. Automatically adjusted according to the shop names.(remote_shop_names.txt)
-
For new shop:
- locale/xx/remote_shop_names.txt
- Add npc vnums to input_main.cpp (_arrShopNpcVnum)
npc vnum = player.shop(npc_vnum)
Bitte melden Sie sich an, um dieses Bild zu sehen.
Special thanks to Tatsumaru for taskbar Icons Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
You can think of it as the lite version. More features are likely to come in the future.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
+ Mount Restrict
+ Start and Win Effects
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Client Side is from 2018 official root.
Of course I've made minor changes for slot marking and cheque(if app. checks)
You have to add slot marking too.
Mysql used to retrieve data during game launch, and to backup(default 1 hour, you can change at conf.txt)
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
Right click Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
The client part is from 2018 official root.
Do not forget to add slot marking.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
The client part is from 2018 official root.
Includes net.SendItemCombinationPacketCancel(), which was added later.
Don't forget to add the slot marking.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
This is for those who use the official character select window.
There is only the source part.
You can check the 2018 root for the pack side.
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
-
hab sein Thread nicht geliked sehe auch das was versteckt ist nicht
Bitte melden Sie sich an, um dieses Bild zu sehen.
Direkt in Zeile 2, sehr gut sichtbar. Jemanden Credits zu geben bedeutet einfach nur, dass man ihn erwähnt. Credits = Erwähnung. Dafür ist nicht mal eine Verlinkung notwendig, wenn die Person bekannt ist oder der Name alleine bereits ausreicht, um nach ihm zu suchen und ihn zu finden.
ZitatSelbst wenn da Credits sind, muss man dafür kein Like ergeiern für n DL
Aber das hast du doch auch gemacht und meines Wissens nicht nur einmal, also was genau ist der Unterschied zu dem Release von Snus?
Bitte melden Sie sich an, um diesen Link zu sehen.
Das ich damit aufgehört habe weil das Armselig ist/war
es war "Nur" 2 mal dafür frontest du mich , ich hau dich noch
Dazu waren das unbedeutene releases
Naja ich nutze das Forum es in der hellen Version sehe somit seine weiße schrift nicht
-
Deswegen sag ich ja Äpfel mit Birnen
Der TE macht das nur um ka Aufmerksamkeit zu bekommen dazu sollte man immer Credit angeben und bei großen Namen halt eigtl um Erlaubnis fragen
change my mind
Und wieso sollte man bei großen Namen um Erlaubnis fragen? Gilt die Reglung nicht für kleine / unbekannte Namen? Und wieso ist es wichtig, aus welchem Grund Snus die Releases mit uns teilt? Ist es in Ordnung, wenn er nachweisen kann, dass er es für das Wohl des Forums tut? Ist ja dann trotzdem unfair, oder nicht? Macht er es mit Erlaubnis denn dann weniger für die Aufmerksamkeit? Es macht doch absolut keinen Sinn.
Jetzt hat Snus sogar den Namen ins Thread geschrieben und es wird immer noch gemeckert. Jetzt sind es nicht mehr die fehlenden Credits, das euch stört, sondern, dass das System nicht ihm gehört. Und beim nächsten Release wird es wieder etwas neues zu meckern geben.
Ich seh nirgendswo die Credits
hab sein Thread nicht geliked sehe auch das was versteckt ist nicht
Selbst wenn da Credits sind, muss man dafür kein Like ergeiern für n DL
-
Sry Steap du weißt ich liebe dich #nohomo
Stell dir vor, ich würde deine Arbeit einfach so reposten.. Das ist zwar jetzt Äpfel mit Birnen aber du bist wie Black, Namenhaft..
Ich bin nicht in der Szene, um Anerkennung zu sammeln. Wenn die Leute meine Releases für würdig genug halten, um sie zu verbreiten, ist es für mich das beste was mir passieren könnte. Ich bekomme so nur noch mehr Kunden und mehr Leute können meine Werke runterladen, die ich immerhin für genau diese Leute gemacht habe. Mein Icon Editor schwebt an Orten, von denen ich nicht mal wusste, dass sie existieren und es könnte mir egaler nicht sein.
Und wenn es blackdragon nicht gefällt, sagt er im Thread eben bescheid und dann wird es entfernt. Er trägt keinen Schaden davon.
Deswegen sag ich ja Äpfel mit Birnen
Der TE macht das nur um ka Aufmerksamkeit zu bekommen dazu sollte man immer Credit angeben und bei großen Namen halt eigtl um Erlaubnis fragen
change my mind
-
Danke fürs teilen c:
Sry Steap du weißt ich liebe dich #nohomo
Stell dir vor, ich würde deine Arbeit einfach so reposten.. Das ist zwar jetzt Äpfel mit Birnen aber du bist wie Black, Namenhaft..
-
Gebt dem Kein Thx
Bitte melden Sie sich an, um diesen Link zu sehen.
Original DL von Blackdragon hat es in dem dem Metin2 Dev Forum released falls ihr ihm ein thx geben wollt
Deswegen habe ich n Foto vom original Thread geposted^^
das Problem ist, auch "schlechte publicity" ist für Snus gute publicity
-
Can someone explain the system to me?
Best regards
its a gambling system
you pay a amount of yang and try to gamble a item u need
-
Hallo liebe Metin2 Downloads Community
Das System gehört einer Person namens blackdragonx61
Video zum System:
Bitte melden Sie sich an, um dieses Medienelement zu sehen.
Download:
[[Versteckter Inhalt]]Gerne bau ich es auch für euch ein -> Bitte melden Sie sich an, um diesen Link zu sehen.
Systeme zum Download anbieten von einer Person die bei jedem in der Szene bekannt ist wie ein bunter Hund, du bisset.
Bitte melden Sie sich an, um diesen Anhang zu sehen.
liebe an den Systemersteller gehen raus
an den TE gehen.. naja lasses wir es mal xD
und das "dir" Mali aka blackdragon nichts sagt ist echt sehr traurig..
diese Diskussion haben wir ja alles schon mit ihm durch
finde das echt nicht gut was der Kerl da macht
-
Hallo Community,
ich habe probleme mit der Gilde erstellen, wenn ich eine Gilde erstelle, steht unten im Chat * GIlde ist fehlgeschlagen*
Quest funktioniert einwandfrei
Jemand eine Idee?
hilft euch das weiter? hab ich auf sysrr gesehen
2023-02-03 02:51:08 13712 [ERROR] Got error 127 when reading table './player/guild'
liebe grüße
ein paar mehr Infos wären gut.
Welche Files/Src nutzt du
Was hast du zuletzt gemacht?
so n ähnlichen Fehle rhatte ich damals auch als ich frisch die martysama file gekauft hatte -
A define to turn out the sort by price!
Why? Because it wouldnt be fair and could destroy the market really quick. The chepest get always sold first so they will try to make it as cheap as possible. If it isnt sorted you have to search it and on like 400+ Shops you probably wont found the cheapest one or dont care if its just a tiny bit more.
RenderTarget + decoration: Also like an addon. So the admins can change it like they want to.
Like I already said, i could offer you my old shop design and rework it a bit So you can add it as a addon as well ^^.
But really good idea i like to see thati fell that but i guess thats must be acide by an admin. so with a "#define sortbyprice" it would be the best
-
Ich finde das absolut respektlos dem Ersteller gegenüber deinen Namen in den Archivnamen zu packen.
Mal abgesehen davon, dass es offensichtlich ist, dass du es gerne als deine Arbeit ausgeben willst, da hilft auch das Blödstellen von wegen ich kenne mich nicht aus bla bla nichts.
Back2Topic: Finde das passt überhaupt nicht zu Metin2 und wir auf Dauer für Spieler einfach nur nervig sein nach jedem Port.
Lies richtig, da steht dick fett „ Das System ist nicht von mir“
Spielt keine Rolle dude.. dann informiere dich von wo du das hast oder gib an von wo das ist..
und wie oben schon geschrieben wurde, die Datei umzubennen und alles drum und dran, ist dir die Arbeit wert ?
puh
Spielt in endeffekt auch keine Rolle wer es mal releast hat, ist public fertig
Eben nicht, alleine aus Wertschätzung dem Ersteller gegenüber, sollten immer die Credits, soweit sie bekannt sind, angegeben werden. Man schmückt sich nun mal nicht mit fremden Lorbeeren.
+1 Aze
-
Selbst viele ausm Darknet nutzen Perfect Privacy so ..
perfect privacy ist auch superior
true story
-
Suche serverfiles die so sind wie Hardcore reloaded,coregame,sunshine mfg
Rainfiles
-
Hi zusammen,
hat jemand bereits über mehrere Monate hinweg höhere Amazongutscheine auf seinem Konto eingelöst und kann über seine Erfahrung berichten?
Mich interessieren Beträge zwischen 200 - 800 € mtl. aufs gleiche Konto, manuell.
Ich meine letztendlich sollte es für Amazon ja offensichtlich sein dass es sich da um "Schwarzgeld" handelt, warum sollte man sonst jeden Monat solche Summen dort als Gutschein einzahlen.
Achso und der Gutschein wird immer von der gleichen Email ausgestellt also praktisch Amazongutscheine im "Angestelltenverhältnis" einlösen über einen längeren Zeitraum.
Danke schonmal für jede hilfreiche Antwort^^Im Angestelltenverhältnis??
Sprich du hast n 2. Amazonkonto und sendest es dir auf dein RL Konto?
Lass es am bestenkleine Mengen fallen nicht auf aber sowas wird spätestens im 2/3 Monat auffliegen
-
I download marty sama files v5.0 and after compile binary and open client, syserr show me this errors.
Bitte melden Sie sich an, um diesen Link zu sehen.
How to fix it? i see this errors for the first time
Thanks for helpyou download or buy it?
if you download, no one help you.
if you buy it write marty or his helpers -