need little help, how to get position for vehicles ?
here what i did
void render()
{
for (int i = 0; i < SAMP_MAX_VEHICLES; i++)
{
actor_info * player = actor_info_get(ACTOR_SELF, NULL); // define my actor
vehicle_info *vehicle = getGTAVehicleFromSAMPVehicleID(i); // samp max vehs
if (!vehicle)
continue;
D3DXVECTOR3 vehicle_pos, screenposs;
D3DCOLOR color;
color = samp_color_get(i);
CVector mySpinePoss, TargetVehPos;
CPed *pPedSelf = pGameInterface->GetPools()->GetPed((DWORD*)player);
CVehicle *pVeh = pGameInterface->GetPools()->GetVehicle((DWORD*)vehicle); // i found this for vehicle
pPedSelf->GetBonePosition(BONE_SPINE1, &mySpinePoss); // here is used BONE
pVeh->GetPosition(); // now i don't know how to do for vehicle like for pPedSelf
if (screenposs.z < 1.f)
continue;
if (enabled)
{
render->DrawLine(CVecToD3DXVEC(mySpinePoss), CVecToD3DXVEC(TargetVehPos), color);
}
}
}
thanks for help !
vehicle->base.matrix[12];
vehicle->base.matrix[13];
vehicle->base.matrix[14];
C++:vehicle->base.matrix[12]; vehicle->base.matrix[13]; vehicle->base.matrix[14];
Какого? Хука Хуя, ДК хука, Ракнета?Есть у кого готовый хук для gta sa?
D3D9 hook. Для отрисовки esp и т.дКакого? Хука Хуя, ДК хука, Ракнета?
CVector Vec;
Vec.fX = vehicle->base.matrix[12];
Vec.fY = vehicle->base.matrix[13];
Vec.fZ = vehicle->base.matrix[14];
Хуевая их туча в инете. Адресс IDirect3DDevice9 тоже есть в гугле для GTA SAD3D9 hook. Для отрисовки esp и т.д
0BAF: samp 6@ = get_input_info_ptr // stInputInfo
0C0C: 6@ = struct 6@ offset {pDXUTEditBox}0x8 size 4 // stInputBox
0C0C: 7@ = struct 6@ offset {dwPosChatInput1}0x8 size 4 // X
0C0C: 8@ = struct 6@ offset {dwPosChatInput2}0xC size 4 // Y
SF->getSAMP()->getInput()->pDXUTEditBox;
how to get distance between me and vehicles near me ?
here code
for (int i = 0; i < SAMP_MAX_VEHICLES; i++)
{
actor_info * player = actor_info_get(ACTOR_SELF, NULL);
vehicle_info *vehicle = getGTAVehicleFromSAMPVehicleID(i);
if (!vehicle)
continue;
D3DXVECTOR3 vehicle_pos, player_pos, screenposs, vscreenposs;
float * f_pos = &player->base.matrix[4 * 3];
player_pos.x = f_pos[0];
player_pos.y = f_pos[1];
player_pos.z = f_pos[2];
CalcScreenCoors(&player_pos, &screenposs);
float * f_poss = &vehicle->base.matrix[4 * 3];
vehicle_pos.x = f_poss[0];
vehicle_pos.y = f_poss[1];
vehicle_pos.z = f_poss[2];
CalcScreenCoors(&vehicle_pos, &vscreenposs);
thanks for help !
float GetDistance(D3DXVECTOR3 target)
{
D3DXVECTOR3 player(PEDSELF->GetPosition()->fX, PEDSELF->GetPosition()->fY, PEDSELF->GetPosition()->fZ);
return sqrt((player.x - target.x) * (player.x - target.x) + (player.y - target.y) * (player.y - target.y) + (player.z - target.z) * (player.z - target.z));
}
sprintf(szMsg, "%.0f m.", GetDistance(D3DXVECTOR3(x, y, z)));
Example:Код:float GetDistance(D3DXVECTOR3 target) { D3DXVECTOR3 player(PEDSELF->GetPosition()->fX, PEDSELF->GetPosition()->fY, PEDSELF->GetPosition()->fZ); return sqrt((player.x - target.x) * (player.x - target.x) + (player.y - target.y) * (player.y - target.y) + (player.z - target.z) * (player.z - target.z)); }
Код:sprintf(szMsg, "%.0f m.", GetDistance(D3DXVECTOR3(x, y, z)));
Lesson number 1:sprintf(ctarget_ping_score, "{8cff00}Ping{FFFFFF} %d{007bff} Score{FFFFFF} %d ", g_Players>pRemotePlayer[Informer_Target_PlayerID]>iPing, g_Players->pRemotePlayer[Informer_Target_PlayerID]->iScore);
this code you see should display player ping and score, it does sometimes but not always what's wrong with this ? here you can see that player score and ping is 0 and sometimes it displays correct value idk what's wrong
![]()
thanks for help !
void CALLBACK cmd_show_info_player( std::string param )
{
if ( param.empty() ) return;
int i = std::stoi( param );
char buf[128];
stRemotePlayer *pPlayer = SF->getSAMP()->getPlayers()->pRemotePlayer[ i ];
if(!pPlayer) return;
sprintf( buf, "Nickname - %s, Ping - %d, Score - %d, isNPC - %d, AFKState - %d",
pPlayer->szPlayerName,
pPlayer->iPing,
pPlayer->iScore,
pPlayer->iIsNPC,
pPlayer->pPlayerData->iAFKState == 2 );
SF->getSAMP()->getChat()->AddChatMessage( -1, buf );
};
And in Mainloop:
SF->getSAMP()->registerChatCommand( "showinfo", cmd_show_info_player );
stRemotePlayer *pPlayer = SF->getSAMP()->getPlayers()->pRemotePlayer[ Informer_Target_PlayerID ];
if(!pPlayer) return;
sprintf(ctarget_ping_score, "{8cff00}Ping{FFFFFF} %d{007bff} Score{FFFFFF} %d ", pPlayer->iPing, pPlayer->iScore);