Lovas forrásos kérdések sora

Indította fabtam11, 2017-07-05, 10:35:49

Üdv!
Több kérdésem lenne leginkább abból kifolyólag, hogy tuti valaki tudja a válaszokat:
1.Mit kell módosítani, hogy a lovaglás maximum szinten , ne csak a Profi lovat hívja elő, hanem  a kezdő lovat tudja előhívni?
2.Hogy tudnék további 10-10 lószintet berakni, hogy végül egy 50-es max lószintem lehessen?Illetve ehhez rendelni 3-3féle mountot csak úgy sima-céhtag-céhvezér even?
3.Az előző opcióhoz még 2féle új lókaját rendelnék ~valakinek lenne egy tippje, hogy mivel kéne tápoltatni majd őket?
4.A ló neve előtti a szintkijelzés érdekelne.
Előre is köszönök bármilyen jellegű kommentet vagy tanácsot!

2017-07-05, 14:39:17 #1 Utolsó szerkesztés: 2017-07-05, 15:14:51 Szerző: Distraught
1.) ezt questben meg tudod oldani
2.) horse_rider.cpp-ben keress rá: c_aHorseStat[HORSE_MAX_LEVEL+1]
itt látod lószintenként lebontva (második oszlop az ID), azzal nem kell foglalkoznod, hogy hogy oldd meg a 3 szinű lovat (nincs céh, tag, vezér), mert a getmyhorsevnum függvény felel ezért, és az pedig nincs lekorlátozva a jelenlegi lószintekre
3.) char_item.cpp-ben keress rá: case 20109:      (6797. sor körül)
break; után csinálsz egy új case-t az új ló ID-re (mindegyikre)
pl:

case LÓID:
// °í±Ţ ¸»
if (item->GetVnum() == ÚJFELTÁMASZTÓID)
{
if (!IsDead())
{
from->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Á×Áö ľĘŔş ¸»żˇ°Ô Ľ±Ăʸ¦ ¸ÔŔĎ Ľö ľř˝Ŕ´Ď´Ů."));
return false;
}
return true;
}
else if (item->GetVnum() == ÚJKAJAID)
{
if (IsDead())
{
from->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Á×Ŕş ¸»żˇ°Ô »ç·á¸¦ ¸ÔŔĎ Ľö ľř˝Ŕ´Ď´Ů."));
return false;
}
return true;
}
else if (item->GetVnum() == ITEM_HORSE_FOOD_1 || item->GetVnum() == ITEM_HORSE_FOOD_2)
{
return false;
}
break;

4.) indítóban userinterface-en belül a pythonnonplayer.h-ba keress rá: const char* GetMonsterName(DWORD dwVnum);

alá csinálj egy ilyet:

BYTE GetMobLevel(DWORD dwVnum);

utána pythonnonplayer.cpp-be menj és keress rá: GetMonsterName
a függvény alá egy újat:

BYTE CPythonNonPlayer::GetMobLevel(DWORD dwVnum)
{
const CPythonNonPlayer::TMobTable * c_pTable = GetTable(dwVnum);
if (!c_pTable)
return 0;

return c_pTable->bLevel;
}

menj át az instancebase.cpp-be és keress rá: m_dwLevel = c_rkCreateData.m_dwLevel;
írd át erre:

if (GetInstanceType() == CActorInstance::TYPE_HORSE)
m_dwLevel = CPythonNonPlayer::Instance().GetMobLevel(GetRace());
else
m_dwLevel = c_rkCreateData.m_dwLevel;



----- ha azt akarod, hogy ne úgy legyen a szintkiírása a lónak, mint a játékosoknak, akkor még ezeket a lépéseket IS csináld meg -----
menj actorinstance.h-ba és keress rá: bool IsEnemy();
alá: bool IsHorse();
menj actorinstance.cpp-be és keress rá: IsStone()
a függvénye alá ezt másold be:

bool CActorInstance::IsHorse()
{
if (TYPE_HORSE == m_eActorType)
return true;

return false;
}


instancebase.h-ban:

BOOL IsPC();

alá:

BOOL IsHorse();


instancebase.cpp-ben keress rá:

BOOL CInstanceBase::IsPC()

alá új függvény:

BOOL CInstanceBase::IsHorse()
{
return m_GraphicThingInstance.IsHorse();
}


menj instancebaseeffect.cpp-be és keress rá:

void CInstanceBase::UpdateTextTailLevel(DWORD level)

cseréld le ezt az egész függvényt erre:

void CInstanceBase::UpdateTextTailLevel(DWORD level)
{
static D3DXCOLOR s_kLevelColor = D3DXCOLOR(152.0f / 255.0f, 255.0f / 255.0f, 51.0f / 255.0f, 1.0f);


char szText[256];
if (IsPC())
{
sprintf(szText, "Lv %d ", level);
CPythonTextTail::Instance().AttachLevel(GetVirtualID(), szText, s_kLevelColor);
}
if (IsHorse())
{
sprintf(szText, "[%d] ", level);
CPythonTextTail::Instance().AttachLevel(GetVirtualID(), szText, s_kLevelColor);
}
}

C++ programmer at Gameloft