[SCR TUT]Készségkönyv név a földön

Indította 5310pati, 2017-07-18, 15:32:57

2017-07-18, 15:32:57 Utolsó szerkesztés: 2017-07-18, 16:07:59 Szerző: 5310pati
Nos biztos mindenkinek feltűnt már, hogy a KK-k neve a földön nem mutatja milyen skillhez tartoznak.
Volt 1 kérés segítségkérésnél + sokan is csinálnak GF-et ahova "hasznos" lehet ez az iciripici módosításka.

Alap dolog de azé mondom hogy möntést csinájjá

1. Szerver oldal
   packet.h
typedef struct packet_item_ground_add
{
BYTE bHeader;
long x, y, z;
DWORD dwVID;
DWORD dwVnum;
} TPacketGCItemGroundAdd;

ide biggyeszd be ezt:
int iSkillIndex;

   item.cpp
void CItem::EncodeInsertPacket(LPENTITY ent)
ebben a fv-ben
pack.bHeader = HEADER_GC_ITEM_GROUND_ADD;
pack.x = c_pos.x;
pack.y = c_pos.y;
pack.z = c_pos.z;
pack.dwVnum = GetVnum();
pack.dwVID = m_dwVID;

ez a rész alá meg ezt:
if (GetVnum() == 50300) {
pack.iSkillIndex = GetSocket(0);
}
else {
pack.iSkillIndex = -1;
}

Lehet is fordítani.



2. Indító forrás
   packet.h
typedef struct packet_ground_add_item
{
    BYTE        bHeader;
    long        lX;
long lY;
long lZ;

    DWORD       dwVID;
    DWORD       dwVnum;
} TPacketGCItemGroundAdd;

Egyértelmű a dolog :P
int iSkillIndex;

   PythonItem.h
void CreateItem(DWORD dwVirtualID, DWORD dwVirtualNumber, float x, float y, float z, bool bDrop=true);
cseréld le erre:
void CreateItem(DWORD dwVirtualID, DWORD dwVirtualNumber, float x, float y, float z, bool bDrop=true, int iSkillIndex=-1);

   PythonItem.cpp
a legelején szükség lesz 1 új include-ra, valahova a fájl elejére másold be
#include "PythonSkill.h"
továbbá
void CPythonItem::CreateItem(DWORD dwVirtualID, DWORD dwVirtualNumber, float x, float y, float z, bool bDrop)
csere erre:
void CPythonItem::CreateItem(DWORD dwVirtualID, DWORD dwVirtualNumber, float x, float y, float z, bool bDrop, int iSkillIndex)
majd a fv legalján
CPythonTextTail& rkTextTail=CPythonTextTail::Instance();
rkTextTail.RegisterItemTextTail(
dwVirtualID,
pItemData->GetName(),
&pGroundItemInstance->ThingInstance);

ezt a részt cseréld le erre:
CPythonTextTail& rkTextTail=CPythonTextTail::Instance();
string name = "";
if (dwVirtualNumber == 50300) {
CPythonSkill::SSkillData * c_pSkillData;
if (CPythonSkill::Instance().GetSkillData(iSkillIndex, &c_pSkillData))
{
name = c_pSkillData->GradeData[0].strName.c_str();
name += " ";
}
}
name += pItemData->GetName();
rkTextTail.RegisterItemTextTail(
dwVirtualID,
name.c_str(),
&pGroundItemInstance->ThingInstance);


   PythonNetwordStreamPhaseGameItem.cpp
és végül
CPythonItem::Instance().CreateItem(packet_item_ground_add.dwVID,
   packet_item_ground_add.dwVnum,
   packet_item_ground_add.lX,
   packet_item_ground_add.lY,
   packet_item_ground_add.lZ);

csere erre:
CPythonItem::Instance().CreateItem(packet_item_ground_add.dwVID,
   packet_item_ground_add.dwVnum,
   packet_item_ground_add.lX,
   packet_item_ground_add.lY,
   packet_item_ground_add.lZ,
   true,
   packet_item_ground_add.iSkillIndex);


És az eredmény: