void WorldSession::HandleCharterOffer( WorldPacket & recv_data ) { uint32 shit; uint64 item_guid, target_guid; Charter * pCharter; recv_data >> shit >> item_guid >> target_guid; if(!_player->IsInWorld()) return; PlayerPointer pTarget = _player->GetMapMgr()->GetPlayer((uint32)target_guid); pCharter = objmgr.GetCharterByItemGuid(item_guid); if( pCharter == NULL ) { SendNotification("Charter cannot be found."); return; } if(pTarget == 0 || pTarget->GetTeam() != _player->GetTeam() || pTarget == _player) { SendNotification("Target is of the wrong faction."); return; } if(!pTarget->CanSignCharter(pCharter, _player)) { SendNotification("Target player cannot sign your charter for one or more reasons."); return; } SendShowSignatures(pCharter, item_guid, pTarget); }