|
You last visited: Today at 21:06
Advertisement
[RLS] Markierung neu gedroppter Items
Discussion on [RLS] Markierung neu gedroppter Items within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.
02/13/2016, 09:39
|
#31
|
elite*gold: 200
Join Date: Apr 2013
Posts: 596
Received Thanks: 455
|
Nice Work :O
|
|
|
02/13/2016, 12:01
|
#32
|
elite*gold: 0
Join Date: Feb 2015
Posts: 306
Received Thanks: 171
|
bei Yiv erwartet man doch nichts neues mehr
der kriegt doch immer alles umgesetzt &
dann sieht der code auch noch so sauber geschrieben aus!
schöne grüße
Kampfzwerg
|
|
|
02/13/2016, 13:58
|
#33
|
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,938
|
Quote:
Originally Posted by Kampfzwerg!
bei Yiv erwartet man doch nichts neues mehr
der kriegt doch immer alles umgesetzt &
dann sieht der code auch noch so sauber geschrieben aus!
schöne grüße
Kampfzwerg
|
@Release:
Ist ganz cool, danke
|
|
|
02/13/2016, 14:29
|
#34
|
elite*gold: 50
Join Date: May 2011
Posts: 269
Received Thanks: 990
|
Haha.
What is going right here?
I can swim, but this sea of tears is too much.
I'm working on Slot Mark System by Top Wnd, if will I release it, thats will be your code too, isn't it? By the way, my codes looks similar to Yiv's code, and I'm not crying. Your customers are stupid if they paid for this little stuff, this is easy, man.. Like this too:
Thanks Yiv, I used another way to send the "new" flag to the client, until now.
Keep it up, and nice work.
|
|
|
02/13/2016, 14:46
|
#35
|
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
|
Quote:
Originally Posted by xP3NG3Rx
[...] By the way, my codes looks similar to Yiv's code, and I'm not crying. [...]
|
In general, I was the one who accused LeNnT, not the other way round. Anyway, it's because he's selling parts of my work what I don't want him to do.
The part of code, which he copied, is this:
Code:
void CSlotWindow::__CreateSlotEnableEffect()
{
__DestroySlotEnableEffect();
#ifdef __HIGHLIGHT_DROPPED_ITEMS__
for (int i = 0; i < 3; ++i)
{
CAniImageBox* pEff = new CAniImageBox(NULL);
for (int j = 0; j <= 12; ++j)
{
char buf[64+1];
sprintf_s(buf, "d:/ymir work/ui/public/slotactiveeffect/slot%d/%02d.sub", (i+1), j);
pEff->AppendImage(buf);
}
pEff->SetRenderingMode(CGraphicExpandedImageInstance::RENDERING_MODE_SCREEN);
pEff->Show();
m_apSlotActiveEffect[i] = pEff;
}
#else
m_pSlotActiveEffect = new CAniImageBox(NULL);
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/00.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/01.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/02.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/03.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/04.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/05.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/06.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/07.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/08.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/09.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/10.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/11.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/12.sub");
m_pSlotActiveEffect->SetRenderingMode(CGraphicExpandedImageInstance::RENDERING_MODE_SCREEN);
m_pSlotActiveEffect->Show();
#endif
}
Code:
void CSlotWindow::__CreateSlotEnableEffect()
{
__DestroySlotEnableEffect();
#ifdef ENABLE_HIGHLIGHT_SYSTEM
for (int i = 0; i < 3; ++i)
{
CAniImageBox* pEff = new CAniImageBox(NULL);
for (int j = 0; j <= 12; ++j)
{
char buf[64+1];
sprintf_s(buf, "d:/ymir work/ui/public/slotactiveeffect/slot%d/%02d.sub", (i+1), j);
pEff->AppendImage(buf);
}
pEff->SetRenderingMode(CGraphicExpandedImageInstance::RENDERING_MODE_SCREEN);
m_apSlotActiveEffect[i] = pEff;
}
#else
m_pSlotActiveEffect = new CAniImageBox(NULL);
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/00.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/01.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/02.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/03.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/04.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/05.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/06.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/07.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/08.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/09.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/10.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/11.sub");
m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/12.sub");
m_pSlotActiveEffect->SetRenderingMode(CGraphicExpandedImageInstance::RENDERING_MODE_SCREEN);
m_pSlotActiveEffect->Show();
#endif
}
As you can see, he's using the exactly same variables (pEff) and the same buffer length (64 + 1) but also the same folder structure and sub files as me (it's not exactly like the offical).
Anyway, I don't think that this should be discussed anymore.
Regards
|
|
|
02/13/2016, 16:09
|
#36
|
elite*gold: 50
Join Date: May 2011
Posts: 269
Received Thanks: 990
|
I know and I saw the copied parts.
If you want to see mine(with official pseudos) click on the spoiler:
Code:
void __thiscall CSlotWindow::ActivateSlot(int this, int a2)
{
int v2; // esi@1
int v3; // eax@2
int v4; // eax@2
v2 = this;
if ( CSlotWindow::GetSlotPointer(this, a2, (int)&a2) )
{
v3 = a2;
*(_DWORD *)(a2 + 28) = 1;
v4 = *(_BYTE *)(v3 + 49) - 1;
if ( v4 < 0 )
v4 = 1;
if ( !*(_DWORD *)(v2 + 4 * v4 + 248) )
CSlotWindow::__CreateSlotEnableEffect((void *)v2, v4);
}
}
void CSlotWindow::ActivateSlot(DWORD dwIndex)
{
TSlot * pSlot;
if (!GetSlotPointer(dwIndex, &pSlot))
return;
pSlot->bActive = TRUE;
BYTE byItemSize = pSlot->byyPlacedItemSize - 1;
if (byItemSize < 0 || byItemSize > 2)
byItemSize = 0;
if (!m_pSlotActiveEffect[byItemSize])
__CreateSlotEnableEffect(byItemSize);
}
Code:
void __thiscall CSlotWindow::__CreateSlotEnableEffect(void *this, int a2)
{
int v2; // esi@1
int v3; // eax@2
int v4; // eax@3
int v5; // ecx@5
int v6; // eax@7
int v7; // eax@8
int v8; // eax@11
int v9; // eax@12
int v10; // [sp-4h] [bp-18h]@1
int v11; // [sp+0h] [bp-14h]@1
int v12; // [sp+10h] [bp-4h]@2
v10 = (unsigned int)&v11 ^ 0xFA5B8FBD;
v2 = (int)this;
if ( a2 == 1 )
{
CSlotWindow::__DestroySlotEnableEffect(this, 1);
v3 = CAniImageBox::CAniImageBox(192, v10);
v12 = 0;
if ( v3 )
v4 = sub_56F6A0((void *)v3, 0);
else
v4 = 0;
v12 = -1;
*(_DWORD *)(v2 + 252) = v4;
CAniImageBox::AppendImage((void *)v4, (int)"d:/ymir work/ui/public/slotactiveeffect/slot2/00.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 252), (int)"d:/ymir work/ui/public/slotactiveeffect/slot2/01.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 252), (int)"d:/ymir work/ui/public/slotactiveeffect/slot2/02.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 252), (int)"d:/ymir work/ui/public/slotactiveeffect/slot2/03.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 252), (int)"d:/ymir work/ui/public/slotactiveeffect/slot2/04.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 252), (int)"d:/ymir work/ui/public/slotactiveeffect/slot2/05.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 252), (int)"d:/ymir work/ui/public/slotactiveeffect/slot2/06.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 252), (int)"d:/ymir work/ui/public/slotactiveeffect/slot2/07.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 252), (int)"d:/ymir work/ui/public/slotactiveeffect/slot2/08.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 252), (int)"d:/ymir work/ui/public/slotactiveeffect/slot2/09.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 252), (int)"d:/ymir work/ui/public/slotactiveeffect/slot2/10.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 252), (int)"d:/ymir work/ui/public/slotactiveeffect/slot2/11.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 252), (int)"d:/ymir work/ui/public/slotactiveeffect/slot2/12.sub");
CAniImageBox::SetRenderingMode(*(_DWORD *)(v2 + 252), v2, 1);
v5 = *(_DWORD *)(v2 + 252);
}
else if ( a2 == 2 )
{
CSlotWindow::__DestroySlotEnableEffect(this, 2);
v6 = CAniImageBox::CAniImageBox(192, v10);
v12 = 1;
if ( v6 )
v7 = sub_56F6A0((void *)v6, 0);
else
v7 = 0;
v12 = -1;
*(_DWORD *)(v2 + 256) = v7;
CAniImageBox::AppendImage((void *)v7, (int)"d:/ymir work/ui/public/slotactiveeffect/slot3/00.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 256), (int)"d:/ymir work/ui/public/slotactiveeffect/slot3/01.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 256), (int)"d:/ymir work/ui/public/slotactiveeffect/slot3/02.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 256), (int)"d:/ymir work/ui/public/slotactiveeffect/slot3/03.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 256), (int)"d:/ymir work/ui/public/slotactiveeffect/slot3/04.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 256), (int)"d:/ymir work/ui/public/slotactiveeffect/slot3/05.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 256), (int)"d:/ymir work/ui/public/slotactiveeffect/slot3/06.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 256), (int)"d:/ymir work/ui/public/slotactiveeffect/slot3/07.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 256), (int)"d:/ymir work/ui/public/slotactiveeffect/slot3/08.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 256), (int)"d:/ymir work/ui/public/slotactiveeffect/slot3/09.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 256), (int)"d:/ymir work/ui/public/slotactiveeffect/slot3/10.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 256), (int)"d:/ymir work/ui/public/slotactiveeffect/slot3/11.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 256), (int)"d:/ymir work/ui/public/slotactiveeffect/slot3/12.sub");
CAniImageBox::SetRenderingMode(*(_DWORD *)(v2 + 256), v2, 1);
v5 = *(_DWORD *)(v2 + 256);
}
else
{
CSlotWindow::__DestroySlotEnableEffect(this, a2);
v8 = CAniImageBox::CAniImageBox(192, v10);
v12 = 2;
if ( v8 )
v9 = sub_56F6A0((void *)v8, 0);
else
v9 = 0;
v12 = -1;
*(_DWORD *)(v2 + 4 * a2 + 248) = v9;
CAniImageBox::AppendImage((void *)v9, (int)"d:/ymir work/ui/public/slotactiveeffect/00.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 4 * a2 + 248), (int)"d:/ymir work/ui/public/slotactiveeffect/01.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 4 * a2 + 248), (int)"d:/ymir work/ui/public/slotactiveeffect/02.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 4 * a2 + 248), (int)"d:/ymir work/ui/public/slotactiveeffect/03.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 4 * a2 + 248), (int)"d:/ymir work/ui/public/slotactiveeffect/04.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 4 * a2 + 248), (int)"d:/ymir work/ui/public/slotactiveeffect/05.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 4 * a2 + 248), (int)"d:/ymir work/ui/public/slotactiveeffect/06.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 4 * a2 + 248), (int)"d:/ymir work/ui/public/slotactiveeffect/07.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 4 * a2 + 248), (int)"d:/ymir work/ui/public/slotactiveeffect/08.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 4 * a2 + 248), (int)"d:/ymir work/ui/public/slotactiveeffect/09.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 4 * a2 + 248), (int)"d:/ymir work/ui/public/slotactiveeffect/10.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 4 * a2 + 248), (int)"d:/ymir work/ui/public/slotactiveeffect/11.sub");
CAniImageBox::AppendImage(*(void **)(v2 + 4 * a2 + 248), (int)"d:/ymir work/ui/public/slotactiveeffect/12.sub");
CAniImageBox::SetRenderingMode(*(_DWORD *)(v2 + 4 * a2 + 248), v2, 1);
v5 = *(_DWORD *)(v2 + 4 * a2 + 248);
}
CWindow::Show(v5);
}
void CSlotWindow::__CreateSlotEnableEffect(BYTE bItemSize)
{
__DestroySlotEnableEffect(bItemSize);
m_pSlotActiveEffect[bItemSize] = new CAniImageBox(NULL);
for (BYTE i = 0; i < 13; i++)
{
char szPath[64 + 1]; // 128 + 1
snprintf(szPath, sizeof(szPath), "d:/ymir work/ui/public/slotactiveeffect/%d_%02d.sub", bItemSize, i);
m_pSlotActiveEffect[bItemSize]->AppendImage(szPath);
}
m_pSlotActiveEffect[bItemSize]->SetRenderingMode(CGraphicExpandedImageInstance::RENDERING_MODE_SCREEN);
m_pSlotActiveEffect[bItemSize]->Show();
}
Code:
int __thiscall CSlotWindow::__DestroySlotEnableEffect(void *this, int a2)
{
void *v2; // esi@1
int v3; // ecx@1
int result; // eax@2
v2 = this;
v3 = *((_DWORD *)this + a2 + 62);
if ( v3 )
{
result = (**(int (__stdcall ***)(_DWORD))v3)(1);
*((_DWORD *)v2 + a2 + 62) = 0;
}
return result;
}
void CSlotWindow::__DestroySlotEnableEffect(BYTE bItemSize)
{
if (m_pSlotActiveEffect[bItemSize])
{
delete m_pSlotActiveEffect[bItemSize];
m_pSlotActiveEffect[bItemSize] = NULL;
}
}
And by last here is an extra stuff from official binary
PythonSlotWindow.cpp -> OnRender
Code:
if (rSlot.bActive)
{
BYTE bItemSize = rSlot.byyPlacedItemSize - 1;
if (bItemSize < 0 || bItemSize > 2)
bItemSize = 0;
if (m_pSlotActiveEffect[bItemSize])
{
int ix = m_rect.left + rSlot.ixPosition;
int iy = m_rect.top + rSlot.iyPosition;
m_pSlotActiveEffect[bItemSize]->SetPosition(ix, iy);
//if (rSlot.bIsAcceSelected)
m_pSlotActiveEffect[bItemSize]->SetDiffuseColor(0.0f, 1.0f, 0.0f, 1.0f);
m_pSlotActiveEffect[bItemSize]->Render();
}
}
PythonWindow.h into the class of CAniImageBox as public method:
Code:
void SetDiffuseColor(float fR, float fG, float fB, float fA);
PythonWindow.cpp:
Code:
struct FSetDiffuseColor
{
float fr, fg, fb, fa;
void operator () (CGraphicExpandedImageInstance * pInstance)
{
pInstance->SetDiffuseColor(fr, fg, fb, fa);
}
};
void CAniImageBox::SetDiffuseColor(float fR, float fG, float fB, float fA)
{
FSetDiffuseColor setDiffuseColor;
setDiffuseColor.fr = fR;
setDiffuseColor.fg = fG;
setDiffuseColor.fb = fB;
setDiffuseColor.fa = fA;
for_each(m_ImageVector.begin(), m_ImageVector.end(), setDiffuseColor);
}
|
|
|
02/13/2016, 19:08
|
#37
|
elite*gold: 0
Join Date: Mar 2013
Posts: 54
Received Thanks: 6
|
0213 17:03:45301 :: Traceback (most recent call last):
0213 17:03:45301 :: File "game.py", line 1994, in BINARY_Highlight_Item
0213 17:03:45301 :: AttributeError
0213 17:03:45301 :: :
0213 17:03:45301 :: 'NoneType' object has no attribute 'Highligt_Item'
0213 17:03:45301 ::
why?
|
|
|
02/13/2016, 19:24
|
#38
|
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
|
Post your game.py.
Regards
|
|
|
02/13/2016, 19:32
|
#39
|
elite*gold: 0
Join Date: Mar 2013
Posts: 54
Received Thanks: 6
|
Quote:
Originally Posted by Yiv
Post your game.py.
Regards
|
|
|
|
02/13/2016, 19:36
|
#40
|
elite*gold: 7
Join Date: Jul 2013
Posts: 439
Received Thanks: 166
|
Funkt
|
|
|
02/13/2016, 20:05
|
#41
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by Siverbot
Funkt
|
Überall diese Ninjas ...
|
|
|
02/14/2016, 00:24
|
#42
|
elite*gold: 0
Join Date: Mar 2010
Posts: 14
Received Thanks: 1
|
i have the same problem of OceanusPT
|
|
|
02/14/2016, 16:14
|
#43
|
elite*gold: 0
Join Date: Mar 2013
Posts: 54
Received Thanks: 6
|
Quote:
Originally Posted by kimameixede
i have the same problem of OceanusPT
|
This system is realy bug!!
Try this.
Buy many pots as u can. ( dont have to be pots, can be any item)
u will se they are "new itens" thats ok. Then dont do nothing, but teleport to any map. Then go look to ur syserror clientside.
u will get that error for every item in ur inventory,
I belive if u have 12 inventory slots and if u full with pots and use this system... i belive u client folder will get 10gb very fast -.-
|
|
|
02/14/2016, 20:11
|
#44
|
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
|
The system were used by some greater servers without any problems.
Furthermore, we are using this ourselves without any bugs.
Check if you implemented everything right.
Regards
|
|
|
02/14/2016, 22:14
|
#45
|
elite*gold: 0
Join Date: Mar 2010
Posts: 14
Received Thanks: 1
|
Quote:
Originally Posted by Yiv
The system were used by some greater servers without any problems.
Furthermore, we are using this ourselves without any bugs.
Check if you implemented everything right.
Regards
|
i check 4 times in last 3 hours and its every think right.
can you help me?
|
|
|
|
|
Similar Threads
|
Facebook Markierung
03/27/2015 - Off Topic - 3 Replies
Heyho! Kann mir jemand sagen, ob ich Leute markieren kann, die ich abonniert habe?
Laut anderer Personen soll dies möglich sein, sobald ich ein @ eingebe, werden mir diese Personen aber nicht angezeigt. Hat sonst noch jemand eine Möglichkeit, Personen zu markieren, mit denen ich nicht befreundet bin?
LG
|
Markierung der Landschaft-Addon?
01/14/2014 - WoW Bots - 2 Replies
Suche zum erstellen von HB Profilen ein Addon wo ich Ingame grafisch Hotspots erstellen kann. Nicht das sie HB automatisch erkennt, nur für mich, damit ich weis, wo ich bereits einen erstellt habe.
Zb mit einem Roten Kreis an der stelle, gibt es sowas?
|
WoltLab - Online-Markierung
05/24/2013 - Metin2 Private Server - 1 Replies
Ahoi,
bei mir kann ich die Ranggrafiken nicht anzeigen lassen.
Benutzerrang ist erstellt, dort wird auch das Bild angezeigt, aber in der Teamliste unter meinem Namen nicht. Benutzerrang ist auch der Benutzergruppe zugewiesen.
Ich hoffe ihr wisst was ich dagegen machen kann...
Lg und danke im Vorraus
|
Raid addon für Rdy check Pull timer und Boden markierung
04/04/2013 - World of Warcraft - 2 Replies
Hallo
Ich suche ein Addon für meinen Tank.
Da ich kein klassisches ui verwende fehlt mir die Möglichkeit die Farbigen marks auf dne Boden zu setzen udn Rdy checks zu machen. Manche Tanks haben auch so einen pull timer also 5,4,3,2,1 los.
|
GTA: Samp, Unfreiwilliger Teleport bei Map Markierung?
09/08/2012 - Grand Theft Auto - 9 Replies
Warum werde ich teleportiert wenn ich irgendwas auf der Map markiere?
Also auf der Karte?
Geht auch ohne Admin Rechte! Wie Kann ich das nur für Admins einstellen?
|
All times are GMT +2. The time now is 21:06.
|
|