мистер вселенная
Известный
- 26
- 4
как получить разбита ли фара у машины?
CVehicle* cveh = getSelfCVehicle();
//0-off light on-1+
for (size_t i = 0; i < 4; i++)
{
addMessageToChatWindow("light id %d state: %d", i,cveh->GetDamageManager()->GetLightStatus(i));
}
//damage status panels
for (size_t i = 0; i < 3; i++)
{
addMessageToChatWindow("panel id %d state: %d", i,cveh->GetDamageManager()->GetPanelStatus(i));
}
rakhook::on_receive_rpc += [](unsigned char& id, RakNet::BitStream* bs) -> bool {
if (id == 93) {
bs->ResetReadPointer();
uint32_t color;
bs->Read(color);
вам нужно преобразовать int в HEX, а затем в RGB.Как color перевести в RGB и обратно? Так же этот RGB передать в AddMessage (RefChat)
Очень поможет, может глупый вопрос, но все же
Не надо выдавать ответы гадая, будьте добры, мне нужен корректный ответ который написан не на рандом, что color состоит из r g b давайте разобьем и т.д.
Я несколько раз пытался, криво косо получается и не выдает нужный мне цвет, поэтому пришел сюда за помощью
C++:rakhook::on_receive_rpc += [](unsigned char& id, RakNet::BitStream* bs) -> bool { if (id == 93) { bs->ResetReadPointer(); uint32_t color; bs->Read(color);
void inttorgb(int color,int colors[3])
{
colors[0] = (color >> 16) & 0xFF;
colors[1] = (color >> 8) & 0xFF;
colors[2] = color & 0xFF;
}
case RPC_ClientMessage:
{
BitStream bsData(rpcParams->input, rpcParams->numberOfBitsOfData / 8, false);
uint32_t dwStrLen;
uint32_t dwColor;
char szMsg[1000];
static char last_servermsg[256];
static DWORD allow_show_again = 0;
bsData.Read(dwColor);
bsData.Read(dwStrLen);
if (dwStrLen >= sizeof(szMsg)) dwStrLen = sizeof(szMsg) - 1;
bsData.Read(szMsg, dwStrLen);
szMsg[dwStrLen] = '\0';
std::stringstream ss;
ss << std::hex << dwColor;
std::string hexValue = ss.str();
std::string color= "000000";
int check = 8-hexValue.length();
for (size_t i = check; i < 6; i++)
{
color[i] = hexValue[i - check];
}
int relint = std::stoi(color, nullptr, 16);
addMessageToChatWindow("int rgba: %d hex rgba: %x hex rgb: %s {%s}test color",dwColor,dwColor, color.c_str(),color.c_str());
int colors[3];
inttorgb(relint,colors);
addMessageToChatWindow("int to rgba: red %d green %d blue %d", colors[0], colors[1], colors[2]);
int rgbtoint = (colors[0] << 16) | (colors[1] << 8) | colors[2];
addMessageToChatWindow("rgb to int: %d", rgbtoint);
}
CPed* ped = nullptr;
CVector vector{ x, y, z };
if (type == CPedType::CIVILIAN_PED) {
CStreaming::RequestModel(modelId, GAME_REQUIRED);
CStreaming::LoadAllRequestedModels(false);
CStreaming::SetModelIsDeletable(modelId);
ped = new CCivilianPed(ePedType::PED_TYPE_CIVMALE, modelId);
}
if (type == CPedType::COP_PED) {
/*CStreaming::RequestModel(modelId, eStreamingFlags::GAME_REQUIRED);
CStreaming::LoadAllRequestedModels(false);*/
ped = new CCopPed(eCopType::COP_TYPE_CITYCOP);
}
if (type == CPedType::FIREMAN_PED) {
CStreaming::RequestModel(modelId, eStreamingFlags::GAME_REQUIRED);
CStreaming::LoadAllRequestedModels(true);
ped = new CEmergencyPed(ePedType::PED_TYPE_FIREMAN, modelId);
}
if (type == CPedType::MEDIC_PED) {
CStreaming::RequestModel(modelId, eStreamingFlags::GAME_REQUIRED);
CStreaming::LoadAllRequestedModels(true);
ped = new CEmergencyPed(ePedType::PED_TYPE_MEDIC, modelId);
}
ped->m_nCreatedBy = 2;
ped->m_pIntelligence->SetPedDecisionMakerType(-1);
ped->m_pIntelligence->SetSeeingRange(30.0);
ped->m_pIntelligence->SetHearingRange(30.0);
ped->m_pIntelligence->m_fDmRadius = 0.0f;
ped->m_pIntelligence->m_nDmNumPedsToScan = 0;
ped->SetPosn(vector);
ped->SetOrientation(0.f, 0.f, 0.f);
CWorld::Add(ped);
CPedStruct* pedStruct = new CPedStruct(type, modelId, x, y, z, ped);
m_Peds.push_back(pedStruct);
на форумах по павно пишут что 30 скинов поверх можно закинуть, дальше только fastman limit adjuster ставитьВ SA:MP какой лимит скинов? Я так понял +- до id 319.
У самп апи нет такой возможности. Калькор кажется при добавлении подгрузки кастомных моделей создает свой массив CModelInfo::ms_aModelInfo и копирует в него значения с игрового, и кастомные модели в свой массив уже и записываетЧто-то нет ясной информации, поэтому хочу узнать
Как расширить лимиты у сампапи на скины/кол-во машин и т.д.?
Plugin sdkПомогите кто знает что за библиотека тут используется
Отдельный респект если скажете как ее установить в моем случае на VS22
Если что sampapi скачан и добавлен правильноВот:
CVehicle* car = FindPlayerVehicle(0, false);
std::string gearStatus;
if (!car) {
gearStatus = "no-data";
}
else {
gearStatus = std::to_string(car->m_nCurrentGear);
}
можно узнать как его в свой проект установить?Plugin sdk
никаккак проверить открыт ли чат у другого игрока? (строка ввода)
если у тебя свой сервак, то отправляй на сервер пакет о том. что открыт в хуке CInput::Enable и тоже самое с закрытием внутри CInput::Disable, на сервере через какой-нибудь павн.ракнет обрабатывать это и отправлять пакет о том, что у кого-то там открыт чат игрокам в зоне стрима к примерукак проверить открыт ли чат у другого игрока? (строка ввода)