sziasztok
egyszercsak bezáródik a kliens mindenféle hibaüzi nélkül.
sysrr-ben ez található
CInstanceBase::AttachTextTail - VID [44211] ALREADY EXIST
Szia. Mit próbáltál csinálni?
Idézetet írta: MartinezTheKing Dátum 2017-12-07, 17:06:33
Szia. Mit próbáltál csinálni?
Srmmi különöset :D
vagyis semmit......csak teleportálásnál néha bezárja a klienst ezzel a sysrr el
Akkor a klienseddel lesz a hiba :D
Idézetet írta: MartinezTheKing Dátum 2017-12-07, 17:13:47
Akkor a klienseddel lesz a hiba :D
köszönöm a segítséget ... -.-
ki gondolta volna
Vagy a locale_game, locale_interface -ből hiányzik valami azért dob ki a teleportálásnál
Szerintem a 44211-es npc msm-jében lesz a gubanc.
Az üzenet egyértelmű:
44211 ID-n a AttachTextTail már létezik, tehát kétszer van ráhívva!
nem létezik se mob se tárgy ilyen ID-n
Keresd meg a 44211 ID-vel rendelkező npc .msm fájlját majd nyisd meg egy szöveg szerkesztővel.
Ezután keress alábbihoz hasonló szöveget:
Group AttachingData
Ha kettő egyformát találsz, mondjuk:
Group AttachingData01
és
Group AttachingData01
Akkor nyilván megtaláltad a hiba forrását.
:)
Üzenet összefésülés: 2017-12-07, 18:04:29
Szétnéztem és (--> NÁLLAM <--) sehol egy fájlban vagy fájl névben sem szerepel a szóban forgó VNUM.
De ha megtalálod, akkor a hibát orvosolhatod a fent leírtak alapján.
Persze ha nem valami rendszer hiba idézi elő ami esetleges előző módosítás okozott. :)
Idézetet írta: udvatt108 Dátum 2017-12-07, 17:53:47
Keresd meg a 44211 ID-vel rendelkező npc .msm fájlját majd nyisd meg egy szöveg szerkesztővel.
Ezután keress alábbihoz hasonló szöveget:
Group AttachingData
Ha kettő egyformát találsz, mondjuk:
Group AttachingData01
és
Group AttachingData01
Akkor nyilván megtaláltad a hiba forrását.
:)
Üzenet összefésülés: 2017-12-07, 18:04:29
Szétnéztem és (--> NÁLLAM <--) sehol egy fájlban vagy fájl névben sem szerepel a szóban forgó VNUM.
De ha megtalálod, akkor a hibát orvosolhatod a fent leírtak alapján.
Persze ha nem valami rendszer hiba idézi elő ami esetleges előző módosítás okozott. :)
Szia
nálam se azért furcsálom
Ez a funkció felel a TextTail kiírásért a karakter felett (PL.: Szint, Név):
void CInstanceBase::AttachTextTail()
{
if (m_isTextTail)
{
TraceError("CInstanceBase::AttachTextTail - VID [%d] ALREADY EXIST", GetVirtualID());
return;
}
m_isTextTail=true;
DWORD dwVID=GetVirtualID();
float fTextTailHeight=IsMountingHorse() ? 110.0f : 10.0f;
static D3DXCOLOR s_kD3DXClrTextTail=D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f);
CPythonTextTail::Instance().RegisterCharacterTextTail(m_dwGuildID, dwVID, s_kD3DXClrTextTail, fTextTailHeight);
// CHARACTER_LEVEL
if (m_dwLevel)
{
UpdateTextTailLevel(m_dwLevel);
}
}
És tisztán látható, hogy akkor ír csak hibát ha ismétlés van.
Keresgélj még kicsit mélyebben és ha nem megy tudok egy debug megoldást.
módosítsd erre és elvileg nem lesz baj:
void CInstanceBase::AttachTextTail()
{
if (m_isTextTail)
{
TraceError("CInstanceBase::AttachTextTail - VID [%d] ALREADY EXIST", GetVirtualID());
CPythonTextTail::Instance().DeleteCharacterTextTail(GetVirtualID());
}
m_isTextTail=true;
DWORD dwVID=GetVirtualID();
float fTextTailHeight=IsMountingHorse() ? 110.0f : 10.0f;
static D3DXCOLOR s_kD3DXClrTextTail=D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f);
CPythonTextTail::Instance().RegisterCharacterTextTail(m_dwGuildID, dwVID, s_kD3DXClrTextTail, fTextTailHeight);
// CHARACTER_LEVEL
if (m_dwLevel)
{
UpdateTextTailLevel(m_dwLevel);
}
}
- Distraught
Persze csak akkor használhatja teljes kódot, ha nála is bent van a ez:
// CHARACTER_LEVEL
if (m_dwLevel)
{
UpdateTextTailLevel(m_dwLevel);
}
Ami a karakter szint frissítésért felel.
És egyébként mivel TraceError-ban küldi a hibát ugyan úgy klienset zár.
Szóval én így módosítanám:
void CInstanceBase::AttachTextTail()
{
if (!m_isTextTail)
{
//TraceError("CInstanceBase::AttachTextTail - VID [%d] ALREADY EXIST", GetVirtualID());
m_isTextTail=true;
DWORD dwVID=GetVirtualID();
float fTextTailHeight=IsMountingHorse() ? 110.0f : 10.0f;
static D3DXCOLOR s_kD3DXClrTextTail=D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f);
CPythonTextTail::Instance().RegisterCharacterTextTail(m_dwGuildID, dwVID, s_kD3DXClrTextTail, fTextTailHeight);
// CHARACTER_LEVEL
if (m_dwLevel)
{
UpdateTextTailLevel(m_dwLevel);
}
}
}
Szintén figyelni kell az én kódomnál is arra, hogy a te előző kódodban benne van e az alábbi, mert ha nincs értelem szerűen törlöd az én féle kódomból:
// CHARACTER_LEVEL
if (m_dwLevel)
{
UpdateTextTailLevel(m_dwLevel);
}
void CInstanceBase::AttachTextTail()
{
if (m_isTextTail)
{
CPythonTextTail::Instance().DeleteCharacterTextTail(GetVirtualID());
}
m_isTextTail=true;
DWORD dwVID=GetVirtualID();
float fTextTailHeight=IsMountingHorse() ? 110.0f : 10.0f;
static D3DXCOLOR s_kD3DXClrTextTail=D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f);
CPythonTextTail::Instance().RegisterCharacterTextTail(m_dwGuildID, dwVID, s_kD3DXClrTextTail, fTextTailHeight);
// CHARACTER_LEVEL
if (m_dwLevel)
{
UpdateTextTailLevel(m_dwLevel);
}
}
Vagy egyszerűen kiszedi a trace error sort, mivel akkor már nincs értelme logolni.
így van, tökéletesen igazad van.
Csak ha már létezik, minek töröljük az előzőt és deklaráljuk újra?
Egyszerűen csak ignoráljuk a következő vagy az utáni és azutáni és így további újra deklarálásokat.
Nincs felesleges munkája a kliensnek, bár nem mintha jelentős lenne. :)
Pacsi Distraught.
Van benne valami, csak nem tudom mi miatt küldi ki újra. Lehet, hogy történik valami változás benne, és amiatt. Sajnos ennyiből ezt nem igazán tudjuk megállapítani, ezért célszerűbb inkább töröltetni és újraküldetni.
Így van, bár véleményem szerint az eredeti tervezőket sem értem miért hisztisre irtat a kódok nagy részét mint ezt is. A jelen felvázolt megoldások talán az eredetit is felül múlják hatékonyságilag. :P
Hát valóban van jópár dolog, amit célszerűbb átírni. Szerintem hanyagok és fáradtak voltak, bár fura, hogy a GF szervereken meg nagyon sok másik szerveren sem jött elő ez a hiba. Szóval a probléma gyökere máshol lesz szerintem, amit pedig ő ronthatott el. De teljesen igazad van, hogy rengeteg hely van, ahol direkt lehetőséget hagynak a hibának. :D
Grqnny kisül, hiaba nyitsz 40 témát, a 34k visszamaradott sajnos.