Készségkönyv neve.

Indította gife974, 2017-07-18, 09:52:27

Sziasztok! Azt szeretném kérdezni, hogy hogyan tudnám megoldani azt, ha a metin droppol egy könyvet, akkor annak a földön is kiírja a nevét? Előre is köszönöm.  ::)

2017-07-18, 10:39:54 #1 Utolsó szerkesztés: 2017-07-18, 11:33:20 Szerző: 5310pati
Kicsit forrásban kéne piszkálkodni hozzá, mivel alapból a tárgyak nevét írja ki, márpedig a KK-kból '1db' van:
50300 Készségkönyv
És ha megnézed a használatát forrásban, akkor látod, hogy a socket0-ból olvassa a skill ID-jét, és droppnál természetesen oda menti el random:
if (bi[i].vnum == 50300)
{
// ˝şĹłĽö·ĂĽ­´Â ĆŻĽöÇĎ°Ô ÁŘ´Ů.
GiveRandomSkillBook();

void CHARACTER::GiveRandomSkillBook()
{
LPITEM item = AutoGiveItem(50300);

if (NULL != item)
{
BYTE bJob = 0;

if (!number(0, 1))
bJob = GetJob() + 1;

DWORD dwSkillVnum = 0;

do
{
dwSkillVnum = number(1, 111);
const CSkillProto* pkSk = CSkillManager::instance().Get(dwSkillVnum);

if (NULL == pkSk)
continue;

if (bJob && bJob != pkSk->dwType)
continue;

break;
} while (true);

item->SetSocket(0, dwSkillVnum);
}
}

Köszi, de sajna ezzel nem vagyok előrébb.  :-[

Kicsit később ránézek mert most csak eddig követtem vissza: SetItemTextTailOwner


2017-07-18, 14:33:03 #5 Utolsó szerkesztés: 2017-07-18, 15:41:40 Szerző: 5310pati
1 perc, tesztelem h jó lett-e
hát öhm... szerver oldalon is kéne kissé módosítani, mivel a földön lévő tárgy adatait nem kapja meg a kliens, csak az ID-jét, ami elég a nevének kiírásához, tehát szerver oldalon is kissé meg kell piszkálni, hogy ki lehessen íratni a nevét.

[spoiler]De am szerintem felesleges ez kiírás, mivel gondolom a szerveren fontosak a KK-k - ha már ilyet akarsz csinálni - ergo a player mindenképp felveszi még ha nem is a kasztjára való mert el tudja adni/cserélni.[/spoiler]

Üzenet összefésülés: 2017-07-18, 15:16:21

Na meg is vóna



Csinálok 1 leírást róla szerverkészítéshez hátha másnak is kell aztán belinkelem.
http://metin2hungary.net/index.php/topic,199113.0.html