Rangok a különböző birodalmakhoz.

Indította fabtam11, 2017-08-25, 10:27:36

Üdv!
Azért nyitok segítségkérő témát, mert érdekelne, hogy hogy kéne megoldani, hogy ugyebár adott az, hogy a játékosoknak van rangja, de hogy lehetne megoldani, hogy a 3 birodalomnak ugyanazon pontszámoknál 3 különböző rangja legyen vagyis tegyük fel 20k rang elérésénél a Kékeknél Lovagias, a Pirosaknál Oroszlánszívű, a Sárgáknál Igazságos rang legyen?

2017-08-25, 10:36:36 #1 Utolsó szerkesztés: 2017-08-25, 10:58:33 Szerző: Zhymer
locale.py

TITLE_NAME_LIST = ( PVP_LEVEL0, PVP_LEVEL1, PVP_LEVEL2, PVP_LEVEL3, PVP_LEVEL4, PVP_LEVEL5, PVP_LEVEL6, PVP_LEVEL7, PVP_LEVEL8, PVP_LEVEL9, PVP_LEVEL10, PVP_LEVEL11, PVP_LEVEL12, )
(locale_game.txt-ben vannak a szövegek)

Tehát ezt a listát lemásolni TITLE_NAME_LIST2,3-ra (PVP_LEVEL-eket is átírni pl PVP_LEVEL0_1/_2re),
majd a locale_game.txt-t is kiegészíteni.

Aztán lentebb van ez:

def GetAlignmentTitleName(alignment):
if alignment >= 25000:
return TITLE_NAME_LIST[0]
elif alignment >= 20000:
return TITLE_NAME_LIST[1]
elif alignment >= 12000:
return TITLE_NAME_LIST[2]
elif alignment >= 8000:
return TITLE_NAME_LIST[3]
elif alignment >= 4000:
return TITLE_NAME_LIST[4]
elif alignment >= 1000:
return TITLE_NAME_LIST[5]
elif alignment >= 0:
return TITLE_NAME_LIST[6]
elif alignment > -4000:
return TITLE_NAME_LIST[7]
elif alignment > -8000:
return TITLE_NAME_LIST[8]
elif alignment > -12000:
return TITLE_NAME_LIST[9]
elif alignment > -20000:
return TITLE_NAME_LIST[10]
elif alignment > -25000:
return TITLE_NAME_LIST[11]

return TITLE_NAME_LIST[12]


Na itt kellene lekérdezni a birodalmat, és az annak megfelelő TITLE_NAME_LIST-et megadni.
Elvileg így lehet lekérdezni: net.GetEmpireID()

Pl
import net #ha nincs felül
e_text = net.GetEmpireID()
if e_text == 1: #Piros
...
if e_text == 2: #Sárga
...
if e_text == 3: #Kék
....

Konkrétan én így írnám meg:
[spoiler]def GetAlignmentTitleName(alignment):

e_text = net.GetEmpireID()

if e_text == 1: #Piros
if alignment >= 25000:
return TITLE_NAME_LIST[0]
elif alignment >= 20000:
return TITLE_NAME_LIST[1]
elif alignment >= 12000:
return TITLE_NAME_LIST[2]
elif alignment >= 8000:
return TITLE_NAME_LIST[3]
elif alignment >= 4000:
return TITLE_NAME_LIST[4]
elif alignment >= 1000:
return TITLE_NAME_LIST[5]
elif alignment >= 0:
return TITLE_NAME_LIST[6]
elif alignment > -4000:
return TITLE_NAME_LIST[7]
elif alignment > -8000:
return TITLE_NAME_LIST[8]
elif alignment > -12000:
return TITLE_NAME_LIST[9]
elif alignment > -20000:
return TITLE_NAME_LIST[10]
elif alignment > -25000:
return TITLE_NAME_LIST[11]

return TITLE_NAME_LIST[12]

if e_text == 2: #Sárga
if alignment >= 25000:
return TITLE_NAME_LIST2[0]
elif alignment >= 20000:
return TITLE_NAME_LIST2[1]
elif alignment >= 12000:
return TITLE_NAME_LIST2[2]
elif alignment >= 8000:
return TITLE_NAME_LIST2[3]
elif alignment >= 4000:
return TITLE_NAME_LIST2[4]
elif alignment >= 1000:
return TITLE_NAME_LIST2[5]
elif alignment >= 0:
return TITLE_NAME_LIST2[6]
elif alignment > -4000:
return TITLE_NAME_LIST2[7]
elif alignment > -8000:
return TITLE_NAME_LIST2[8]
elif alignment > -12000:
return TITLE_NAME_LIST2[9]
elif alignment > -20000:
return TITLE_NAME_LIST2[10]
elif alignment > -25000:
return TITLE_NAME_LIST2[11]

return TITLE_NAME_LIST2[12]

if e_text == 1: #Kék

if alignment >= 25000:
return TITLE_NAME_LIST3[0]
elif alignment >= 20000:
return TITLE_NAME_LIST3[1]
elif alignment >= 12000:
return TITLE_NAME_LIST3[2]
elif alignment >= 8000:
return TITLE_NAME_LIST3[3]
elif alignment >= 4000:
return TITLE_NAME_LIST3[4]
elif alignment >= 1000:
return TITLE_NAME_LIST3[5]
elif alignment >= 0:
return TITLE_NAME_LIST3[6]
elif alignment > -4000:
return TITLE_NAME_LIST3[7]
elif alignment > -8000:
return TITLE_NAME_LIST3[8]
elif alignment > -12000:
return TITLE_NAME_LIST3[9]
elif alignment > -20000:
return TITLE_NAME_LIST3[10]
elif alignment > -25000:
return TITLE_NAME_LIST3[11]

return TITLE_NAME_LIST3[12]
[/spoiler]
Aztán vagy jó vagy nem :D
Ha itt működik a birodalom lekérdezés akkor elvileg mennie kellene.
Ha nem, akkor lehet bele kell nyúlni a forrásba is.

Szerk: Nekem 30k a max rang, ezért van 2-2 plusz rang, ne zavarjon meg.
"Hölgyeim és uraim, íme a bukott bálvány!"

Dettó 30k rangot használok, de eltaláltad, ez egy forrásos dolog  :)

Amúgy egyszerűen nem működik, vagy hagy valami syserrt?
"Hölgyeim és uraim, íme a bukott bálvány!"


2017-08-25, 12:06:59 #5 Utolsó szerkesztés: 2017-08-25, 12:58:07 Szerző: fabtam11
Idézetet írta: [VIP]P3NG3R Dátum 2017-08-25, 12:02:15
Nem ilyen egyszerű :)
jah ezt eredetileg is sejtettem
[spoiler]ha már 30k-hoz forrás kellett, akkor ehhez a részhez dettó kellhet lol[/spoiler]
szimplán az hiányzik h az indító is tudja h mit akarsz betöltetni, nem?


:D :P

[spoiler]InstanceBaseEffect.cpp
void CInstanceBase::RefreshTextTail()
{
CPythonTextTail::Instance().SetCharacterTextTailColor(GetVirtualID(), GetNameColor());

int iAlignmentGrade = GetAlignmentGrade();
//Itt a 13 es a 22 elterhet novelt rangnal !!!
if (TITLE_NONE == iAlignmentGrade || 13 == iAlignmentGrade || 22 == iAlignmentGrade)
{
CPythonTextTail::Instance().DetachTitle(GetVirtualID());
}
else
{
std::map<int, std::string>::iterator itor = g_TitleNameMap.find(iAlignmentGrade);
if (g_TitleNameMap.end() != itor)
{
const std::string & c_rstrTitleName = itor->second;
CPythonTextTail::Instance().AttachTitle(GetVirtualID(), c_rstrTitleName.c_str(), GetTitleColor());
}
}
}

const D3DXCOLOR& CInstanceBase::GetTitleColor()
{
UINT uGrade = GetAlignmentGrade() - (GetEmpireID() - 1) * TITLE_NUM;
if (uGrade >= TITLE_NUM || uGrade < 0)
{
static D3DXCOLOR s_kD3DXClrTitleDefault(0xffffffff);
return s_kD3DXClrTitleDefault;
}

return g_akD3DXClrTitle[uGrade];
}


InstanceBase.cpp
UINT CInstanceBase::GetAlignmentGrade()
{
BYTE byEmpire = GetEmpireID();
if (m_sAlignment >= 12000)
return 0 + (byEmpire - 1) * TITLE_NUM;
else if (m_sAlignment >= 8000)
return 1 + (byEmpire - 1) * TITLE_NUM;
else if (m_sAlignment >= 4000)
return 2 + (byEmpire - 1) * TITLE_NUM;
else if (m_sAlignment >= 1000)
return 3 + (byEmpire - 1) * TITLE_NUM;
else if (m_sAlignment >= 0)
return 4 + (byEmpire - 1) * TITLE_NUM;
else if (m_sAlignment > -4000)
return 5 + (byEmpire - 1) * TITLE_NUM;
else if (m_sAlignment > -8000)
return 6 + (byEmpire - 1) * TITLE_NUM;
else if (m_sAlignment > -12000)
return 7 + (byEmpire - 1) * TITLE_NUM;

return 8 + (byEmpire - 1) * TITLE_NUM;
}

int CInstanceBase::GetAlignmentType()
{
switch (GetAlignmentGrade())
{
case 0:
case 1:
case 2:
case 3:
case 9:
case 10:
case 11:
case 12:
case 18:
case 19:
case 20:
case 21:
{
return ALIGNMENT_TYPE_WHITE;
break;
}

case 5:
case 6:
case 7:
case 8:
case 14:
case 15:
case 16:
case 17:
case 23:
case 24:
case 25:
case 26:

{
return ALIGNMENT_TYPE_DARK;
break;
}
}

return ALIGNMENT_TYPE_NORMAL;
}


localeInfo.py
TITLE_NAME_LIST = (
PVP_LEVEL0, PVP_LEVEL1, PVP_LEVEL2, PVP_LEVEL3, PVP_LEVEL4, PVP_LEVEL5, PVP_LEVEL6, PVP_LEVEL7, PVP_LEVEL8,
PVP_LEVEL9, PVP_LEVEL10, PVP_LEVEL11, PVP_LEVEL12, PVP_LEVEL13, PVP_LEVEL14, PVP_LEVEL15, PVP_LEVEL16, PVP_LEVEL17,
PVP_LEVEL18, PVP_LEVEL19, PVP_LEVEL20, PVP_LEVEL21, PVP_LEVEL22, PVP_LEVEL23, PVP_LEVEL24, PVP_LEVEL25, PVP_LEVEL26,
)


locale_game.txt
PVP_LEVEL0 Lovagias
PVP_LEVEL1 Nemes
PVP_LEVEL2
PVP_LEVEL3 Barátságos
PVP_LEVEL4 Semleges
PVP_LEVEL5 Agresszív
PVP_LEVEL6 Álnok
PVP_LEVEL7 Alattomos
PVP_LEVEL8 Kegyetlen
PVP_LEVEL9 Oroszlánszívű
PVP_LEVEL10 Nemes
PVP_LEVEL11
PVP_LEVEL12 Barátságos
PVP_LEVEL13 Semleges
PVP_LEVEL14 Agresszív
PVP_LEVEL15 Álnok
PVP_LEVEL16 Alattomos
PVP_LEVEL17 Kegyetlen
PVP_LEVEL18 Igazságos
PVP_LEVEL19 Nemes
PVP_LEVEL20
PVP_LEVEL21 Barátságos
PVP_LEVEL22 Semleges
PVP_LEVEL23 Agresszív
PVP_LEVEL24 Álnok
PVP_LEVEL25 Alattomos
PVP_LEVEL26 Kegyetlen


game.py (net modul! és 9 a rangok mennyisége: 2x4+1 -< 4pozitív 4negatív és 1semleges)
def OnChangePKMode(self):
self.interface.OnChangePKMode()

try:
self.__NotifyError(localeInfo.OPTION_PVPMODE_MESSAGE_DICT[player.GetPKMode()])
except KeyError:
dbg.TraceError("UNKNOWN PVPMode[%d]" % (player.GetPKMode()))

if constInfo.PVPMODE_TEST_ENABLE:
curPKMode = player.GetPKMode()
alignment, grade = chr.testGetPKData()
self.pkModeNameDict = { 0 : "PEACE", 1 : "REVENGE", 2 : "FREE", 3 : "PROTECT", }
self.testPKMode.SetText("Current PK Mode : " + self.pkModeNameDict.get(curPKMode, "UNKNOWN"))
self.testAlignment.SetText("Current Alignment : " + str(alignment) + " (" + localeInfo.TITLE_NAME_LIST[grade+(m2net.GetEmpireID()-1)*9] + ")")


uiCharacter.py
def RefreshAlignment(self):
point, grade = player.GetAlignmentData()

COLOR_DICT = {
0 : colorInfo.TITLE_RGB_GOOD_4,
1 : colorInfo.TITLE_RGB_GOOD_3,
2 : colorInfo.TITLE_RGB_GOOD_2,
3 : colorInfo.TITLE_RGB_GOOD_1,
4 : colorInfo.TITLE_RGB_NORMAL,
5 : colorInfo.TITLE_RGB_EVIL_1,
6 : colorInfo.TITLE_RGB_EVIL_2,
7 : colorInfo.TITLE_RGB_EVIL_3,
8 : colorInfo.TITLE_RGB_EVIL_4,
9 : colorInfo.TITLE_RGB_GOOD_4,
10 : colorInfo.TITLE_RGB_GOOD_3,
11 : colorInfo.TITLE_RGB_GOOD_2,
12 : colorInfo.TITLE_RGB_GOOD_1,
13 : colorInfo.TITLE_RGB_NORMAL,
14 : colorInfo.TITLE_RGB_EVIL_1,
15 : colorInfo.TITLE_RGB_EVIL_2,
16 : colorInfo.TITLE_RGB_EVIL_3,
17 : colorInfo.TITLE_RGB_EVIL_4,
18 : colorInfo.TITLE_RGB_GOOD_4,
19 : colorInfo.TITLE_RGB_GOOD_3,
20 : colorInfo.TITLE_RGB_GOOD_2,
21 : colorInfo.TITLE_RGB_GOOD_1,
22 : colorInfo.TITLE_RGB_NORMAL,
23 : colorInfo.TITLE_RGB_EVIL_1,
24 : colorInfo.TITLE_RGB_EVIL_2,
25 : colorInfo.TITLE_RGB_EVIL_3,
26 : colorInfo.TITLE_RGB_EVIL_4,
}

self.toolTipAlignment.ClearToolTip()
self.toolTipAlignment.AutoAppendTextLine(localeInfo.TITLE_NAME_LIST[grade], ui.GenerateColor(*COLOR_DICT.get(grade, colorInfo.TITLE_RGB_NORMAL)))
self.toolTipAlignment.AutoAppendTextLine(localeInfo.ALIGNMENT_NAME + str(point))
self.toolTipAlignment.AlignHorizonalCenter()

[/spoiler]

2017-08-25, 13:36:32 #7 Utolsó szerkesztés: 2017-08-25, 13:38:07 Szerző: fabtam11
Nagyon szépen köszönöm, még egy kérdés a dolog színezéséhez is tudnál egy tutorialt írni?  :o

Nem, ahhoz már túl lusta vagyok 8), de itt egy kiindulópont:
D3DXCOLOR g_akD3DXClrTitle[CInstanceBase::TITLE_NUM];

Egy gyors kérdés,
[spoiler=csak egy kísérlet]
Kód (InstanceBaseEffect.cpp) Kijelölés

void CInstanceBase::RefreshTextTail()
{
CPythonTextTail::Instance().SetCharacterTextTailColor(GetVirtualID(), GetNameColor());

int iAlignmentGrade = GetAlignmentGrade();
//Itt a 13 es a 22 elterhet novelt rangnalhátmegszerintemnégy!!!
if (TITLE_NONE == iAlignmentGrade || 17 == iAlignmentGrade || 26 == iAlignmentGrade)
{
CPythonTextTail::Instance().DetachTitle(GetVirtualID());
}
else
{
std::map<int, std::string>::iterator itor = g_TitleNameMap.find(iAlignmentGrade);
if (g_TitleNameMap.end() != itor)
{
const std::string & c_rstrTitleName = itor->second;
CPythonTextTail::Instance().AttachTitle(GetVirtualID(), c_rstrTitleName.c_str(), GetTitleColor());
}
}
}

Kód (dettóugyantt) Kijelölés
const D3DXCOLOR& CInstanceBase::GetTitleColor()
{
UINT uGrade = GetAlignmentGrade() - (GetEmpireID() - 1) * TITLE_NUM;
if (uGrade >= TITLE_NUM || uGrade < 0)
{
static D3DXCOLOR s_kD3DXClrTitleDefault(0xffffffff);
return s_kD3DXClrTitleDefault;
}

return g_akD3DXClrTitle[uGrade];
}

Kód (Instancebase.cpp) Kijelölés

UINT CInstanceBase::GetAlignmentGrade()
{
BYTE byEmpire = GetEmpireID();
if (m_sAlignment >= 25000)
return 0 + (byEmpire - 1) * TITLE_NUM;
else if (m_sAlignment >= 20000)
return 1 + (byEmpire - 1) * TITLE_NUM;
else if (m_sAlignment >= 12000)
return 2 + (byEmpire - 1) * TITLE_NUM;
else if (m_sAlignment >= 8000)
return 3 + (byEmpire - 1) * TITLE_NUM;
else if (m_sAlignment >= 4000)
return 4 + (byEmpire - 1) * TITLE_NUM;
else if (m_sAlignment >= 1000)
return 5 + (byEmpire - 1) * TITLE_NUM;
else if (m_sAlignment >= 0)
return 6 + (byEmpire - 1) * TITLE_NUM;
else if (m_sAlignment > -4000)
return 7 + (byEmpire - 1) * TITLE_NUM;
else if (m_sAlignment > -8000)
return 8 + (byEmpire - 1) * TITLE_NUM;
else if (m_sAlignment > -12000)
return 9 + (byEmpire - 1) * TITLE_NUM;
else if (m_sAlignment > -20000)
return 10 + (byEmpire - 1) * TITLE_NUM;
else if (m_sAlignment > -25000)
return 11 + (byEmpire - 1) * TITLE_NUM;

return 12 + (byEmpire - 1) * TITLE_NUM;
}

int CInstanceBase::GetAlignmentType()
{
switch (GetAlignmentGrade())
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 13:
case 14:
case 15:
case 16:
case 17:
case 18:
case 19:
case 26:
case 27:
case 28:
case 29:
case 30:
case 31:
case 32:
{
return ALIGNMENT_TYPE_WHITE;
break;
}

case 7:
case 8:
case 9:
case 10:
case 11:
case 12:
case 20:
case 21:
case 22:
case 23:
case 24:
case 25:
case 33:
case 34:
case 35:
case 36:
case 37:
case 38:

{
return ALIGNMENT_TYPE_DARK;
break;
}
}

return ALIGNMENT_TYPE_NORMAL;
}


Kód (locale_game.txt) Kijelölés

PVP_LEVEL0 Legendás
PVP_LEVEL1 Fõnök
PVP_LEVEL2 Lovagias
PVP_LEVEL3 Nemes
PVP_LEVEL4
PVP_LEVEL5 Barátságos
PVP_LEVEL6 Semleges
PVP_LEVEL7 Agresszív
PVP_LEVEL8 Álnok
PVP_LEVEL9 Alattomos
PVP_LEVEL10 Kegyetlen
PVP_LEVEL11 Barbár
PVP_LEVEL12 Brutális
PVP_LEVEL13 Szentséges
PVP_LEVEL14 Hõsies
PVP_LEVEL15 Igazságos
PVP_LEVEL16 Bátor
PVP_LEVEL17 Okos
PVP_LEVEL18 Jóságos
PVP_LEVEL19 Semleges
PVP_LEVEL20 Gonosz
PVP_LEVEL21 Galád
PVP_LEVEL22 Baljós
PVP_LEVEL23 Ördögi
PVP_LEVEL24 Veszélyes
PVP_LEVEL25 Gyilkos
PVP_LEVEL26 Oroszlánszívû
PVP_LEVEL27 Királyi
PVP_LEVEL28 Leleményes
PVP_LEVEL29 Kiváló
PVP_LEVEL30 Merész
PVP_LEVEL31 Bölcs
PVP_LEVEL32 Semleges
PVP_LEVEL33 Ripacs
PVP_LEVEL34 Kapzsi
PVP_LEVEL35 Öntelt
PVP_LEVEL36 Démoni
PVP_LEVEL37 Alvilági
PVP_LEVEL38 Vérszomjas


Kód (game.py ) Kijelölés
def OnChangePKMode(self):
self.interface.OnChangePKMode()

try:
self.__NotifyError(localeInfo.OPTION_PVPMODE_MESSAGE_DICT[player.GetPKMode()])
except KeyError:
dbg.TraceError("UNKNOWN PVPMode[%d]" % (player.GetPKMode()))

if constInfo.PVPMODE_TEST_ENABLE:
curPKMode = player.GetPKMode()
alignment, grade = chr.testGetPKData()
self.pkModeNameDict = { 0 : "PEACE", 1 : "REVENGE", 2 : "FREE", 3 : "PROTECT", }
self.testPKMode.SetText("Current PK Mode : " + self.pkModeNameDict.get(curPKMode, "UNKNOWN"))
self.testAlignment.SetText("Current Alignment : " + str(alignment) + " (" + localeInfo.TITLE_NAME_LIST[grade+(m2net.GetEmpireID()-1)*13] + ")")

Kód (uicharacter.py) Kijelölés

def RefreshAlignment(self):
point, grade = player.GetAlignmentData()

COLOR_DICT = {
0 : colorInfo.TITLE_RGB_GOOD_6,
1 : colorInfo.TITLE_RGB_GOOD_5,
2 : colorInfo.TITLE_RGB_GOOD_4,
3 : colorInfo.TITLE_RGB_GOOD_3,
4 : colorInfo.TITLE_RGB_GOOD_2,
5 : colorInfo.TITLE_RGB_GOOD_1,
6 : colorInfo.TITLE_RGB_NORMAL,
7 : colorInfo.TITLE_RGB_EVIL_1,
8 : colorInfo.TITLE_RGB_EVIL_2,
9 : colorInfo.TITLE_RGB_EVIL_3,
10 : colorInfo.TITLE_RGB_EVIL_4,
11 : colorInfo.TITLE_RGB_EVIL_5,
12 : colorInfo.TITLE_RGB_EVIL_6,
13 : colorInfo.TITLE_RGB_GOOD_6,
14 : colorInfo.TITLE_RGB_GOOD_5,
15 : colorInfo.TITLE_RGB_GOOD_4,
16 : colorInfo.TITLE_RGB_GOOD_3,
17 : colorInfo.TITLE_RGB_GOOD_2,
18 : colorInfo.TITLE_RGB_GOOD_1,
19 : colorInfo.TITLE_RGB_NORMAL,
20 : colorInfo.TITLE_RGB_EVIL_1,
21 : colorInfo.TITLE_RGB_EVIL_2,
22 : colorInfo.TITLE_RGB_EVIL_3,
22 : colorInfo.TITLE_RGB_EVIL_4,
23 : colorInfo.TITLE_RGB_EVIL_5,
24 : colorInfo.TITLE_RGB_EVIL_6,
25 : colorInfo.TITLE_RGB_GOOD_6,
26 : colorInfo.TITLE_RGB_GOOD_5,
27 : colorInfo.TITLE_RGB_GOOD_4,
28 : colorInfo.TITLE_RGB_GOOD_3,
29 : colorInfo.TITLE_RGB_GOOD_2,
30 : colorInfo.TITLE_RGB_GOOD_1,
31 : colorInfo.TITLE_RGB_NORMAL,
32 : colorInfo.TITLE_RGB_EVIL_1,
33 : colorInfo.TITLE_RGB_EVIL_2,
34 : colorInfo.TITLE_RGB_EVIL_3,
35 : colorInfo.TITLE_RGB_EVIL_4,
36 : colorInfo.TITLE_RGB_EVIL_5,
37 : colorInfo.TITLE_RGB_EVIL_6,
}

self.toolTipAlignment.ClearToolTip()
self.toolTipAlignment.AutoAppendTextLine(localeInfo.TITLE_NAME_LIST[grade], ui.GenerateColor(*COLOR_DICT.get(grade, colorInfo.TITLE_RGB_NORMAL)))
self.toolTipAlignment.AutoAppendTextLine(localeInfo.ALIGNMENT_NAME + str(point))
self.toolTipAlignment.AlignHorizonalCenter()

Kód (localeinfo.py) Kijelölés

TITLE_NAME_LIST = ( PVP_LEVEL0, PVP_LEVEL1, PVP_LEVEL2, PVP_LEVEL3, PVP_LEVEL4, PVP_LEVEL5, PVP_LEVEL6, PVP_LEVEL7, PVP_LEVEL8, PVP_LEVEL9, PVP_LEVEL10, PVP_LEVEL11, PVP_LEVEL12, )
TITLE_NAME_LIST2 = ( PVP_LEVEL13, PVP_LEVEL14, PVP_LEVEL15, PVP_LEVEL16, PVP_LEVEL17, PVP_LEVEL18, PVP_LEVEL19, PVP_LEVEL20, PVP_LEVEL21, PVP_LEVEL22, PVP_LEVEL23, PVP_LEVEL24, PVP_LEVEL25, )
TITLE_NAME_LIST3 = ( PVP_LEVEL26, PVP_LEVEL27, PVP_LEVEL28, PVP_LEVEL29, PVP_LEVEL30, PVP_LEVEL31, PVP_LEVEL32, PVP_LEVEL33, PVP_LEVEL34, PVP_LEVEL35, PVP_LEVEL36, PVP_LEVEL37, PVP_LEVEL38, )


Kód (dettó localeInfo.py) Kijelölés
def GetAlignmentTitleName(alignment):

e_text = net.GetEmpireID()

if e_text == 1: #Piros
if alignment >= 25000:
return TITLE_NAME_LIST[0]
elif alignment >= 20000:
return TITLE_NAME_LIST[1]
elif alignment >= 12000:
return TITLE_NAME_LIST[2]
elif alignment >= 8000:
return TITLE_NAME_LIST[3]
elif alignment >= 4000:
return TITLE_NAME_LIST[4]
elif alignment >= 1000:
return TITLE_NAME_LIST[5]
elif alignment >= 0:
return TITLE_NAME_LIST[6]
elif alignment > -4000:
return TITLE_NAME_LIST[7]
elif alignment > -8000:
return TITLE_NAME_LIST[8]
elif alignment > -12000:
return TITLE_NAME_LIST[9]
elif alignment > -20000:
return TITLE_NAME_LIST[10]
elif alignment > -25000:
return TITLE_NAME_LIST[11]

return TITLE_NAME_LIST[12]

if e_text == 2: #Sárga
if alignment >= 25000:
return TITLE_NAME_LIST2[0]
elif alignment >= 20000:
return TITLE_NAME_LIST2[1]
elif alignment >= 12000:
return TITLE_NAME_LIST2[2]
elif alignment >= 8000:
return TITLE_NAME_LIST2[3]
elif alignment >= 4000:
return TITLE_NAME_LIST2[4]
elif alignment >= 1000:
return TITLE_NAME_LIST2[5]
elif alignment >= 0:
return TITLE_NAME_LIST2[6]
elif alignment > -4000:
return TITLE_NAME_LIST2[7]
elif alignment > -8000:
return TITLE_NAME_LIST2[8]
elif alignment > -12000:
return TITLE_NAME_LIST2[9]
elif alignment > -20000:
return TITLE_NAME_LIST2[10]
elif alignment > -25000:
return TITLE_NAME_LIST2[11]

return TITLE_NAME_LIST2[12]

if e_text == 1: #Kék

if alignment >= 25000:
return TITLE_NAME_LIST3[0]
elif alignment >= 20000:
return TITLE_NAME_LIST3[1]
elif alignment >= 12000:
return TITLE_NAME_LIST3[2]
elif alignment >= 8000:
return TITLE_NAME_LIST3[3]
elif alignment >= 4000:
return TITLE_NAME_LIST3[4]
elif alignment >= 1000:
return TITLE_NAME_LIST3[5]
elif alignment >= 0:
return TITLE_NAME_LIST3[6]
elif alignment > -4000:
return TITLE_NAME_LIST3[7]
elif alignment > -8000:
return TITLE_NAME_LIST3[8]
elif alignment > -12000:
return TITLE_NAME_LIST3[9]
elif alignment > -20000:
return TITLE_NAME_LIST3[10]
elif alignment > -25000:
return TITLE_NAME_LIST3[11]

return TITLE_NAME_LIST3[12]


[/spoiler]
a dolog ebben a formában ránézésre tűrhető vagy valamit elbaltázhattam?  :o

Ez a kód a Semleges rangokra vonatkozik:
if (TITLE_NONE == iAlignmentGrade || 17 == iAlignmentGrade || 26 == iAlignmentGrade)
{
CPythonTextTail::Instance().DetachTitle(GetVirtualID());
}


Ahogy elnézem a te Semleges rangjaid indexei ezek: 6, 19, 32

Ezt def GetAlignmentTitleName(alignment): sehol semmi nem használja a kliensben, szóval felesleges.

Fűzd össze a TITLE_NAME_LIST-et.
[spoiler]TITLE_NAME_LIST = (
PVP_LEVEL0, PVP_LEVEL1, PVP_LEVEL2, PVP_LEVEL3, PVP_LEVEL4, PVP_LEVEL5, PVP_LEVEL6, PVP_LEVEL7, PVP_LEVEL8, PVP_LEVEL9, PVP_LEVEL10, PVP_LEVEL11, PVP_LEVEL12,
PVP_LEVEL13, PVP_LEVEL14, PVP_LEVEL15, PVP_LEVEL16, PVP_LEVEL17, PVP_LEVEL18, PVP_LEVEL19, PVP_LEVEL20, PVP_LEVEL21, PVP_LEVEL22, PVP_LEVEL23, PVP_LEVEL24, PVP_LEVEL25,
PVP_LEVEL26, PVP_LEVEL27, PVP_LEVEL28, PVP_LEVEL29, PVP_LEVEL30, PVP_LEVEL31, PVP_LEVEL32, PVP_LEVEL33, PVP_LEVEL34, PVP_LEVEL35, PVP_LEVEL36, PVP_LEVEL37, PVP_LEVEL38,
)
[/spoiler]

A TITLE_NUM értéke neked mennyi? Rangjaidra való tekintettel 13-nak kell lenni.

Nekem most így van:
TITLE_NUM = 9,
TITLE_NONE0 = (TITLE_NUM-1)/2,
TITLE_NONE1 = TITLE_NONE0+(TITLE_NUM),
TITLE_NONE2 = TITLE_NONE0+(TITLE_NUM*2),

void CInstanceBase::RefreshTextTail()
{
CPythonTextTail::Instance().SetCharacterTextTailColor(GetVirtualID(), GetNameColor());

int iAlignmentGrade = GetAlignmentGrade();
if (TITLE_NONE0 == iAlignmentGrade || TITLE_NONE1 == iAlignmentGrade || TITLE_NONE2 == iAlignmentGrade)
{
CPythonTextTail::Instance().DetachTitle(GetVirtualID());
}
else


2017-08-26, 09:44:55 #11 Utolsó szerkesztés: 2017-08-28, 12:06:35 Szerző: fabtam11
sry még reggel van, a dologhoz   ;D


Nagyon szépen köszönöm!

2017-08-28, 12:07:37 #12 Utolsó szerkesztés: 2017-08-28, 12:12:52 Szerző: fabtam11
Még egy kérdés, mielőtt még újra-meg-újra elfelejteném: mit felejthettem ki és a sárga-kék birodalmú karaktereknél a semleges rang színével íródnak a rangok a játékos neve mellett?  ???


Röviden: csak a piros birodalmú playernél színes a karakter neve mellett a rang, a többi birodalomnál valahogy fehér színnel jelöli a rangokat a játék.
Hosszan: Hát kb a rövid változat lenne a problémám annak ellenére h fél naponta elfelejtem h mégis mé baj ez...

Szerintem a GetAlignmentType-ben nem stimmel valami.
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

Idézetet írta: Rin the Exorcist Dátum 2017-08-29, 00:33:26
Szerintem a GetAlignmentType-ben nem stimmel valami.
[spoiler=mármint itt?]
int CInstanceBase::GetAlignmentType()
{
switch (GetAlignmentGrade())
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 13:
case 14:
case 15:
case 16:
case 17:
case 18:
case 19:
case 26:
case 27:
case 28:
case 29:
case 30:
case 31:
case 32:
{
   return ALIGNMENT_TYPE_WHITE;
   break;
}

case 7:
case 8:
case 9:
case 10:
case 11:
case 12:
case 20:
case 21:
case 22:
case 23:
case 24:
case 25:
case 33:
case 34:
case 35:
case 36:
case 37:
case 38:

{
   return ALIGNMENT_TYPE_DARK;
   break;
}
}

return ALIGNMENT_TYPE_NORMAL;
}

[/spoiler]

Ezt kell megvarázsolni:
Kód (InstanceBaseEffect.cpp) Kijelölés
const D3DXCOLOR& CInstanceBase::GetTitleColor()

ok last question hogy nem tok neked thank you-t adni(?)... wtf