Hello there I need the system which gives player beginner equipments with lycan included? I need the one with source code related not quest.
Can you share with me?
Merhaba arkadaşlar başlangıçta efsunlu item verme olayı elinizde var mı lycanının dahil olduğu? SRC tabanlısı lazım.
Lycansızı buldum:
extern BYTE g_bAuthServer;
en altına ekle:
extern bool RaceToJob(unsigned race, unsigned *ret_job);
void CInputDB:
layerCreateSuccess(LPDESC d, const char * data)
arat
değiş
void CInputDB:
layerCreateSuccess(LPDESC d, const char * data)
{
if (!d)
return;
TPacketDGCreateSuccess * pPacketDB = (TPacketDGCreateSuccess *) data;
if (pPacketDB->bAccountCharacterIndex >= PLAYER_PER_ACCOUNT)
{
d->Packet(encode_byte(HEADER_GC_CHARACTER_CREATE_FAILURE), 1);
return;
}
long lIndex = 0;
if (!CMapLocation::instance().Get(pPacketDB->player.x,
pPacketDB->player.y,
lIndex,
pPacketDB->player.lAddr,
pPacketDB->player.wPort))
{
sys_err("InputDB:
layerCreateSuccess: cannot find server for mapindex %d %d x %d (name %s)",
lIndex,
pPacketDB->player.x,
pPacketDB->player.y,
pPacketDB->player.szName);
}
TAccountTable & r_Tab = d->GetAccountTable();
r_Tab.players[pPacketDB->bAccountCharacterIndex] = pPacketDB->player;
TPacketGCPlayerCreateSuccess pack;
pack.header = HEADER_GC_CHARACTER_CREATE_SUCCESS;
pack.bAccountCharacterIndex = pPacketDB->bAccountCharacterIndex;
pack.player = pPacketDB->player;
d->Packet(&pack, sizeof(TPacketGCPlayerCreateSuccess));
// NEW_GIVE_BASIC
TPlayerItem t;
memset(&t, 0, sizeof(t));
t.owner = r_Tab.players[pPacketDB->bAccountCharacterIndex].dwID;
struct SInitialItem
{
BYTE window;
WORD pos;
DWORD count;
DWORD dwVnum;
long socket0;
long socket1;
long socket2;
long socket3;
long socket4;
long socket5;
};
const int MAX_INITIAL_ITEM = 17;
static SInitialItem initialItems[JOB_MAX_NUM][MAX_INITIAL_ITEM] =
{
{
// WARRIOR
{EQUIPMENT, 0, 1, 11207, 0, 0, 0, 0, 0, 0}, // Zirh
{EQUIPMENT, 1, 1, 12207, 0, 0, 0, 0, 0, 0}, // Kafalik
{EQUIPMENT, 2, 1, 15007, 0, 0, 0, 0, 0, 0}, // Ayakkabi
{EQUIPMENT, 3, 1, 14007, 0, 0, 0, 0, 0, 0}, // bracelet
{EQUIPMENT, 4, 1, 17 , 0, 0, 0, 0, 0, 0}, // weapon
{EQUIPMENT, 5, 1, 16007, 0, 0, 0, 0, 0, 0}, // necklace
{EQUIPMENT, 6, 1, 17007, 0, 0, 0, 0, 0, 0}, // earring
{EQUIPMENT, 10, 1, 13007, 0, 0, 0, 0, 0, 0}, // shield
{INVENTORY, 0, 1, 50051, /* sockets => */ 0, 0, 0, 0, 0, 0}, // At Resmi
{INVENTORY, 2, 200, 27001, /* sockets => */ 0, 0, 200, 0, 0, 0}, // Kirmizi iksir (K)
{INVENTORY, 3, 200, 27004, /* sockets => */ 0, 0, 200, 0, 0, 0}, // Mavi iksir (K)
{INVENTORY, 1, 1, 72701, /* sockets => */ 0, 0, 1800, 0, 0, 0}, // Rüzgarin Ayakkabilari
{INVENTORY, 4, 15, 27104, /* sockets => */ 0, 0, 50, 0, 0, 0}, // Mor iksir (O)
{INVENTORY, 5, 15, 27111, /* sockets => */ 0, 0, 50, 0, 0, 0}, // Yesil iksir (O)
},
{
// ASSASSIN
{EQUIPMENT, 0, 1, 11407, 0, 0, 0, 0, 0, 0}, // Zirh
{EQUIPMENT, 1, 1, 12347, 0, 0, 0, 0, 0, 0}, // Kafalik
{EQUIPMENT, 2, 1, 15007, 0, 0, 0, 0, 0, 0}, // Ayakkabi
{EQUIPMENT, 3, 1, 14007, 0, 0, 0, 0, 0, 0}, // bracelet
{EQUIPMENT, 4, 1, 1007 , 0, 0, 0, 0, 0, 0}, // weapon
{EQUIPMENT, 5, 1, 16007, 0, 0, 0, 0, 0, 0}, // necklace
{EQUIPMENT, 6, 1, 17007, 0, 0, 0, 0, 0, 0}, // earring
{EQUIPMENT, 10, 1, 13007, 0, 0, 0, 0, 0, 0}, // shield
{INVENTORY, 0, 1, 50051, /* sockets => */ 0, 0, 0, 0, 0, 0}, // At Resmi
{INVENTORY, 2, 200, 27001, /* sockets => */ 0, 0, 200, 0, 0, 0}, // Kirmizi iksir (K)
{INVENTORY, 3, 200, 27004, /* sockets => */ 0, 0, 200, 0, 0, 0}, // Mavi iksir (K)
{INVENTORY, 1, 1, 72701, /* sockets => */ 0, 0, 1800, 0, 0, 0}, // Rüzgarin Ayakkabilari
{INVENTORY, 4, 15, 27104, /* sockets => */ 0, 0, 50, 0, 0, 0}, // Mor iksir (O)
{INVENTORY, 5, 15, 27111, /* sockets => */ 0, 0, 50, 0, 0, 0}, // Yesil iksir (O)
},
{
// SURA
{EQUIPMENT, 0, 1, 11607, 0, 0, 0, 0, 0, 0}, // Zirh
{EQUIPMENT, 1, 1, 12487, 0, 0, 0, 0, 0, 0}, // Kafalik
{EQUIPMENT, 2, 1, 15007, 0, 0, 0, 0, 0, 0}, // Ayakkabi
{EQUIPMENT, 3, 1, 14007, 0, 0, 0, 0, 0, 0}, // bracelet
{EQUIPMENT, 4, 1, 17 , 0, 0, 0, 0, 0, 0}, // weapon
{EQUIPMENT, 5, 1, 16007, 0, 0, 0, 0, 0, 0}, // necklace
{EQUIPMENT, 6, 1, 17007, 0, 0, 0, 0, 0, 0}, // earring
{EQUIPMENT, 10, 1, 13007, 0, 0, 0, 0, 0, 0}, // shield
{INVENTORY, 0, 1, 50051, /* sockets => */ 0, 0, 0, 0, 0, 0}, // At Resmi
{INVENTORY, 2, 200, 27001, /* sockets => */ 0, 0, 200, 0, 0, 0}, // Kirmizi iksir (K)
{INVENTORY, 3, 200, 27004, /* sockets => */ 0, 0, 200, 0, 0, 0}, // Mavi iksir (K)
{INVENTORY, 1, 1, 72701, /* sockets => */ 0, 0, 1800, 0, 0, 0}, // Rüzgarin Ayakkabilari
{INVENTORY, 4, 15, 27104, /* sockets => */ 0, 0, 50, 0, 0, 0}, // Mor iksir (O)
{INVENTORY, 5, 15, 27111, /* sockets => */ 0, 0, 50, 0, 0, 0}, // Yesil iksir (O)
},
{
// SHAMAN
{EQUIPMENT, 0, 1, 11807, 0, 0, 0, 0, 0, 0}, // Zirh
{EQUIPMENT, 1, 1, 12627, 0, 0, 0, 0, 0, 0}, // Kafalik
{EQUIPMENT, 2, 1, 15007, 0, 0, 0, 0, 0, 0}, // Ayakkabi
{EQUIPMENT, 3, 1, 14007, 0, 0, 0, 0, 0, 0}, // bracelet
{EQUIPMENT, 4, 1, 7007 , 0, 0, 0, 0, 0, 0}, // weapon
{EQUIPMENT, 5, 1, 16007, 0, 0, 0, 0, 0, 0}, // necklace
{EQUIPMENT, 6, 1, 17007, 0, 0, 0, 0, 0, 0}, // earring
{EQUIPMENT, 10, 1, 13007, 0, 0, 0, 0, 0, 0}, // shield
{INVENTORY, 0, 1, 50051, /* sockets => */ 0, 0, 0, 0, 0, 0}, // At Resmi
{INVENTORY, 2, 200, 27001, /* sockets => */ 0, 0, 200, 0, 0, 0}, // Kirmizi iksir (K)
{INVENTORY, 3, 200, 27004, /* sockets => */ 0, 0, 200, 0, 0, 0}, // Mavi iksir (K)
{INVENTORY, 1, 1, 72701, /* sockets => */ 0, 0, 1800, 0, 0, 0}, // Rüzgarin Ayakkabilari
{INVENTORY, 4, 15, 27104, /* sockets => */ 0, 0, 50, 0, 0, 0}, // Mor iksir (O)
{INVENTORY, 5, 15, 27111, /* sockets => */ 0, 0, 50, 0, 0, 0}, // Yesil iksir (O)
},
};
unsigned job = pPacketDB->player.byJob;
RaceToJob(job, &job);
for (int i=0; i < MAX_INITIAL_ITEM; i++)
{
if (initialItems[job].dwVnum == 0)
continue;
t.id = ITEM_MANAGER::instance().GetNewID();
t.window = initialItems[job].window;
t.pos = initialItems[job].pos;
t.count = initialItems[job].count;
t.vnum = initialItems[job].dwVnum;
t.alSockets[0] = initialItems[job].socket0;
t.alSockets[1] = initialItems[job].socket1;
t.alSockets[2] = initialItems[job].socket2;
t.alSockets[3] = initialItems[job].socket3;
t.alSockets[4] = initialItems[job].socket4;
t.alSockets[5] = initialItems[job].socket5;
db_clientdesc->DBPacketHeader(HEADER_GD_ITEM_SAVE, 0, sizeof(TPlayerItem));
db_clientdesc->Packet(&t, sizeof(TPlayerItem));
}
// END_OF_NEW_GIVE_BASIC
LogManager::instance().CharLog(pack.player.dwID, 0, 0, 0, "CREATE PLAYER", "", d->GetHostName());
}
Can you share with me?
Merhaba arkadaşlar başlangıçta efsunlu item verme olayı elinizde var mı lycanının dahil olduğu? SRC tabanlısı lazım.
Lycansızı buldum:
extern BYTE g_bAuthServer;
en altına ekle:
extern bool RaceToJob(unsigned race, unsigned *ret_job);
void CInputDB:
arat
değiş
void CInputDB:
{
if (!d)
return;
TPacketDGCreateSuccess * pPacketDB = (TPacketDGCreateSuccess *) data;
if (pPacketDB->bAccountCharacterIndex >= PLAYER_PER_ACCOUNT)
{
d->Packet(encode_byte(HEADER_GC_CHARACTER_CREATE_FAILURE), 1);
return;
}
long lIndex = 0;
if (!CMapLocation::instance().Get(pPacketDB->player.x,
pPacketDB->player.y,
lIndex,
pPacketDB->player.lAddr,
pPacketDB->player.wPort))
{
sys_err("InputDB:
lIndex,
pPacketDB->player.x,
pPacketDB->player.y,
pPacketDB->player.szName);
}
TAccountTable & r_Tab = d->GetAccountTable();
r_Tab.players[pPacketDB->bAccountCharacterIndex] = pPacketDB->player;
TPacketGCPlayerCreateSuccess pack;
pack.header = HEADER_GC_CHARACTER_CREATE_SUCCESS;
pack.bAccountCharacterIndex = pPacketDB->bAccountCharacterIndex;
pack.player = pPacketDB->player;
d->Packet(&pack, sizeof(TPacketGCPlayerCreateSuccess));
// NEW_GIVE_BASIC
TPlayerItem t;
memset(&t, 0, sizeof(t));
t.owner = r_Tab.players[pPacketDB->bAccountCharacterIndex].dwID;
struct SInitialItem
{
BYTE window;
WORD pos;
DWORD count;
DWORD dwVnum;
long socket0;
long socket1;
long socket2;
long socket3;
long socket4;
long socket5;
};
const int MAX_INITIAL_ITEM = 17;
static SInitialItem initialItems[JOB_MAX_NUM][MAX_INITIAL_ITEM] =
{
{
// WARRIOR
{EQUIPMENT, 0, 1, 11207, 0, 0, 0, 0, 0, 0}, // Zirh
{EQUIPMENT, 1, 1, 12207, 0, 0, 0, 0, 0, 0}, // Kafalik
{EQUIPMENT, 2, 1, 15007, 0, 0, 0, 0, 0, 0}, // Ayakkabi
{EQUIPMENT, 3, 1, 14007, 0, 0, 0, 0, 0, 0}, // bracelet
{EQUIPMENT, 4, 1, 17 , 0, 0, 0, 0, 0, 0}, // weapon
{EQUIPMENT, 5, 1, 16007, 0, 0, 0, 0, 0, 0}, // necklace
{EQUIPMENT, 6, 1, 17007, 0, 0, 0, 0, 0, 0}, // earring
{EQUIPMENT, 10, 1, 13007, 0, 0, 0, 0, 0, 0}, // shield
{INVENTORY, 0, 1, 50051, /* sockets => */ 0, 0, 0, 0, 0, 0}, // At Resmi
{INVENTORY, 2, 200, 27001, /* sockets => */ 0, 0, 200, 0, 0, 0}, // Kirmizi iksir (K)
{INVENTORY, 3, 200, 27004, /* sockets => */ 0, 0, 200, 0, 0, 0}, // Mavi iksir (K)
{INVENTORY, 1, 1, 72701, /* sockets => */ 0, 0, 1800, 0, 0, 0}, // Rüzgarin Ayakkabilari
{INVENTORY, 4, 15, 27104, /* sockets => */ 0, 0, 50, 0, 0, 0}, // Mor iksir (O)
{INVENTORY, 5, 15, 27111, /* sockets => */ 0, 0, 50, 0, 0, 0}, // Yesil iksir (O)
},
{
// ASSASSIN
{EQUIPMENT, 0, 1, 11407, 0, 0, 0, 0, 0, 0}, // Zirh
{EQUIPMENT, 1, 1, 12347, 0, 0, 0, 0, 0, 0}, // Kafalik
{EQUIPMENT, 2, 1, 15007, 0, 0, 0, 0, 0, 0}, // Ayakkabi
{EQUIPMENT, 3, 1, 14007, 0, 0, 0, 0, 0, 0}, // bracelet
{EQUIPMENT, 4, 1, 1007 , 0, 0, 0, 0, 0, 0}, // weapon
{EQUIPMENT, 5, 1, 16007, 0, 0, 0, 0, 0, 0}, // necklace
{EQUIPMENT, 6, 1, 17007, 0, 0, 0, 0, 0, 0}, // earring
{EQUIPMENT, 10, 1, 13007, 0, 0, 0, 0, 0, 0}, // shield
{INVENTORY, 0, 1, 50051, /* sockets => */ 0, 0, 0, 0, 0, 0}, // At Resmi
{INVENTORY, 2, 200, 27001, /* sockets => */ 0, 0, 200, 0, 0, 0}, // Kirmizi iksir (K)
{INVENTORY, 3, 200, 27004, /* sockets => */ 0, 0, 200, 0, 0, 0}, // Mavi iksir (K)
{INVENTORY, 1, 1, 72701, /* sockets => */ 0, 0, 1800, 0, 0, 0}, // Rüzgarin Ayakkabilari
{INVENTORY, 4, 15, 27104, /* sockets => */ 0, 0, 50, 0, 0, 0}, // Mor iksir (O)
{INVENTORY, 5, 15, 27111, /* sockets => */ 0, 0, 50, 0, 0, 0}, // Yesil iksir (O)
},
{
// SURA
{EQUIPMENT, 0, 1, 11607, 0, 0, 0, 0, 0, 0}, // Zirh
{EQUIPMENT, 1, 1, 12487, 0, 0, 0, 0, 0, 0}, // Kafalik
{EQUIPMENT, 2, 1, 15007, 0, 0, 0, 0, 0, 0}, // Ayakkabi
{EQUIPMENT, 3, 1, 14007, 0, 0, 0, 0, 0, 0}, // bracelet
{EQUIPMENT, 4, 1, 17 , 0, 0, 0, 0, 0, 0}, // weapon
{EQUIPMENT, 5, 1, 16007, 0, 0, 0, 0, 0, 0}, // necklace
{EQUIPMENT, 6, 1, 17007, 0, 0, 0, 0, 0, 0}, // earring
{EQUIPMENT, 10, 1, 13007, 0, 0, 0, 0, 0, 0}, // shield
{INVENTORY, 0, 1, 50051, /* sockets => */ 0, 0, 0, 0, 0, 0}, // At Resmi
{INVENTORY, 2, 200, 27001, /* sockets => */ 0, 0, 200, 0, 0, 0}, // Kirmizi iksir (K)
{INVENTORY, 3, 200, 27004, /* sockets => */ 0, 0, 200, 0, 0, 0}, // Mavi iksir (K)
{INVENTORY, 1, 1, 72701, /* sockets => */ 0, 0, 1800, 0, 0, 0}, // Rüzgarin Ayakkabilari
{INVENTORY, 4, 15, 27104, /* sockets => */ 0, 0, 50, 0, 0, 0}, // Mor iksir (O)
{INVENTORY, 5, 15, 27111, /* sockets => */ 0, 0, 50, 0, 0, 0}, // Yesil iksir (O)
},
{
// SHAMAN
{EQUIPMENT, 0, 1, 11807, 0, 0, 0, 0, 0, 0}, // Zirh
{EQUIPMENT, 1, 1, 12627, 0, 0, 0, 0, 0, 0}, // Kafalik
{EQUIPMENT, 2, 1, 15007, 0, 0, 0, 0, 0, 0}, // Ayakkabi
{EQUIPMENT, 3, 1, 14007, 0, 0, 0, 0, 0, 0}, // bracelet
{EQUIPMENT, 4, 1, 7007 , 0, 0, 0, 0, 0, 0}, // weapon
{EQUIPMENT, 5, 1, 16007, 0, 0, 0, 0, 0, 0}, // necklace
{EQUIPMENT, 6, 1, 17007, 0, 0, 0, 0, 0, 0}, // earring
{EQUIPMENT, 10, 1, 13007, 0, 0, 0, 0, 0, 0}, // shield
{INVENTORY, 0, 1, 50051, /* sockets => */ 0, 0, 0, 0, 0, 0}, // At Resmi
{INVENTORY, 2, 200, 27001, /* sockets => */ 0, 0, 200, 0, 0, 0}, // Kirmizi iksir (K)
{INVENTORY, 3, 200, 27004, /* sockets => */ 0, 0, 200, 0, 0, 0}, // Mavi iksir (K)
{INVENTORY, 1, 1, 72701, /* sockets => */ 0, 0, 1800, 0, 0, 0}, // Rüzgarin Ayakkabilari
{INVENTORY, 4, 15, 27104, /* sockets => */ 0, 0, 50, 0, 0, 0}, // Mor iksir (O)
{INVENTORY, 5, 15, 27111, /* sockets => */ 0, 0, 50, 0, 0, 0}, // Yesil iksir (O)
},
};
unsigned job = pPacketDB->player.byJob;
RaceToJob(job, &job);
for (int i=0; i < MAX_INITIAL_ITEM; i++)
{
if (initialItems[job].dwVnum == 0)
continue;
t.id = ITEM_MANAGER::instance().GetNewID();
t.window = initialItems[job].window;
t.pos = initialItems[job].pos;
t.count = initialItems[job].count;
t.vnum = initialItems[job].dwVnum;
t.alSockets[0] = initialItems[job].socket0;
t.alSockets[1] = initialItems[job].socket1;
t.alSockets[2] = initialItems[job].socket2;
t.alSockets[3] = initialItems[job].socket3;
t.alSockets[4] = initialItems[job].socket4;
t.alSockets[5] = initialItems[job].socket5;
db_clientdesc->DBPacketHeader(HEADER_GD_ITEM_SAVE, 0, sizeof(TPlayerItem));
db_clientdesc->Packet(&t, sizeof(TPlayerItem));
}
// END_OF_NEW_GIVE_BASIC
LogManager::instance().CharLog(pack.player.dwID, 0, 0, 0, "CREATE PLAYER", "", d->GetHostName());
}