Szint valós idejű frissítése

Started by 5310pati, 2018-04-02, 01:59:15

2018-04-04, 21:49:36 #20 Last Edit: 2018-04-04, 21:51:43 by Distraught
Ja alapból nem volt GetLevel? Akkor lehet méh régebben beleírtam, bár szerintem alapból is van ilyen. Csak írj egyet gyorsan. És ne a RefreshTextTail, hanem az UpdateTextTailLevel metódust hívd meg, ahogy írtam.

UI.:

DWORD GetLevel() const { return m_dwLevel; }

C++ programmer at Gameloft

Kicsit kísérleteztem ezzel a gondolatmenettel, de nem itt kell megoldani a problémát szerintem, bár az ötlet jó.
Ami viszont feltűnt, hogy /a esetében aki kapja a szintet annak rendesen frissül, lehet ebből kéne kiindulni.

Egyébként számomra a PointsPacket() metódus nagyon gyanús a char.cpp-ben.
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

A buta emberek különös szenvedélyt táplálnak az olyan következtetések iránt, amelyekre a maguk eszével jutottak.
Lev Tolsztoj

2018-04-04, 22:19:30 #23 Last Edit: 2018-04-04, 22:24:27 by Distraught
Vagy mégegy ötlet:
PythonNetworkStreamPhaseGame.cpp-ben a RecvPointChange függvényhez írd hozzá:

if (PointChange.Type == POINT_LEVEL)
{
CInstanceBase* chr = CPythonPlayer::Instance().NEW_FindActorPtr(PointChange.dwVID);
if (!chr) return false;
chr->UpdateTextTailLevel(PointChange.value);
}

Ennek valószínűleg már biztosan működnie kell.

btw a szintlépés effecthez kötve is jónak kell lennie, hiszen azt is látod másra meghívva

C++ programmer at Gameloft

Quote from: Distraught on 2018-04-04, 22:19:30
Vagy mégegy ötlet:
PythonNetworkStreamPhaseGame.cpp-ben a RecvPointChange függvényhez írd hozzá:

if (PointChange.Type == POINT_LEVEL)
{
CInstanceBase* chr = CPythonPlayer::Instance().NEW_FindActorPtr(PointChange.dwVID);
if (!chr) return false;
chr->UpdateTextTailLevel(PointChange.value);
}

Ennek valószínűleg már biztosan működnie kell.

Hasonlóan csináltam, de úgy tűnik nem itt van a probléma forrása.




Quote from: TiuXin on 2018-04-04, 22:16:43



Majd holnap megnézem, egy próbát megér. :D
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

Amit írtam legutóbb, ahhoz ne felejtsük el, hogy mindenkinek ki kell küldeni a közelben a packetet.
char.cpp-ben a PointChange függvény végén az if (GetDesc()) rész elé:

bBroadcast = (type==POINT_LEVEL) ? true : bBroadcast;

C++ programmer at Gameloft

Nah, így még akár működhet is. Holnap kiderül a részemről.
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

Tehát összességében nézve, a te megoldásod is úgy van h elküldi a többieknek a packetet ??? ::)

Csak annyi, hogy nem csak az adott felhasználónak küldi ki a pointchange packetet, ha az a szintről szól. Mondjuk igazából sokat nem változtat, ha kibővíted az updatepacketet, mert már tökmindegy az a +1 int.

C++ programmer at Gameloft

Az UpdatePacket sem csak neked küldi ki. Ugyanis azt beleírva a PointChange szint részéhez tökéletes a dolog :o
+ Direkt meg is néztem a dolgot, és ahogy frissülök, a melletem lévő játékos is megkapja az UpdatePacketet.