**************************
Fix for repair hammers. Fixes item and consumes hammers when used.
Still lacking price like town repair NPC's.
(worldserver.h)
- bool pakRepairTool( CPlayer* thisclient, CPacket* P );
(worldserver.cpp)
- case 0x07cb: return pakRepairTool ( (CPlayer*)thisclient->player, P );
(worldpackets.cpp)
- // Repair Tool
- bool CWorldServer::pakRepairTool( CPlayer* thisclient, CPacket* P )
- {
- BEGINPACKET( pak, 0x7cb );
- thisclient->items[(GETBYTE((*P), 0x0))].count -= 1;
- thisclient->items[(GETBYTE((*P), 0x2))].lifespan = 100;
- if(thisclient->items[(GETBYTE((*P), 0x0))].count <= 0){
- ClearItem(thisclient->items[(GETBYTE((*P), 0x0))]);
- RESETPACKET (pak, 0x7cb);
- ADDBYTE(pak, 1);
- ADDBYTE(pak,GETBYTE((*P), 0x2));
- ADDDWORD( pak, BuildItemHead( thisclient->items[GETBYTE((*P), 0x2)]) );
- ADDDWORD( pak, BuildItemData( thisclient->items[GETBYTE((*P), 0x2)]) );
- thisclient->client->SendPacket(&pak);
- }
- else{
- RESETPACKET (pak, 0x7cb);
- ADDBYTE(pak, 2);
- ADDBYTE(pak,GETBYTE((*P), 0x0));
- ADDDWORD(pak, BuildItemHead(thisclient->items[GETBYTE((*P), 0x0)]));
- ADDWORD(pak, (thisclient->items[(GETBYTE((*P), 0x0))].count));//amount
- ADDWORD(pak, 0x0000);
- ADDBYTE(pak,GETBYTE((*P), 0x2));
- ADDDWORD( pak, BuildItemHead( thisclient->items[GETBYTE((*P), 0x2)]) );
- ADDDWORD( pak, BuildItemData( thisclient->items[GETBYTE((*P), 0x2)]) );
- thisclient->client->SendPacket(&pak);
- }
- return true;
- }