Какого? Хука Хуя, ДК хука, Ракнета?Есть у кого готовый хук для gta sa?
Какого? Хука Хуя, ДК хука, Ракнета?Есть у кого готовый хук для 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);
Lesson number 1:
Код: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 );
Expample for you:
Код: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);
What kind of font do you use?
you need send update scoreboardsprintf(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 !
you need send update scoreboard
void renderPlayerInfo()
{
traceLastFunc("renderPlayerInfo()");
if (gta_menu_active())
return;
if (cheat_state->_generic.cheat_panic_enabled)
return;
if (!g_dwSAMP_Addr || !g_SAMP || !g_Players)
return;
// don't run if the CGameSA doesn't exist
if (!pGameInterface)
return;
// don't run if we don't exist
if (isBadPtr_GTA_pPed(pPedSelf))
return;
if (g_Scoreboard->iIsEnabled)
return;
for (int i = 0; i < SAMP_MAX_PLAYERS; i++)
{
actor_info *actor = getGTAPedFromSAMPPlayerID(i);
struct actor_info *self = actor_info_get(ACTOR_SELF, 0);
if (self == NULL)
return;
if (!actor)
continue;
D3DXVECTOR3 player_pos, screenposs;
float * f_pos = &actor->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);
char pos[256], ping[256], hparmw[256], pnameid[256], skin[256];
if (screenposs.z < 1.f)
continue;
if (g_Players->iIsListed[i] != 1)
continue;
stRemotePlayer *pPlayer = g_SAMP->pPools->pPlayer->pRemotePlayer[i];
const char * playerName = getPlayerName(i);
if (Informer)
{
_snprintf_s(pnameid, sizeof(pnameid) - 1, "{C235DD}Player{FFFFFF} %s <%d>{00FF00} Distance{FFFFFF} %.0f m", playerName, i, GetDistance(D3DXVECTOR3(player_pos.x, player_pos.y, player_pos.z)));
pD3DFont_sampStuff->PrintShadow(screenposs.x, screenposs.y - 38, COLOR_WHITE(255), pnameid);
_snprintf_s(hparmw, sizeof(hparmw) - 1, "{FF0F0F}Health{FFFFFF} %0.0f Armour %0.0f{FFA00F} Weapon{FFFFFF} %u", g_Players->pRemotePlayer[i]->pPlayerData->fActorHealth, g_Players->pRemotePlayer[i]->pPlayerData->fActorArmor, g_Players->pRemotePlayer[i]->pPlayerData->onFootData.byteCurrentWeapon);//, g_Players->pRemotePlayer[i]->szPlayerName, i);
pD3DFont_sampStuff->PrintShadow(screenposs.x, screenposs.y - 26, COLOR_WHITE(255), hparmw);
_snprintf_s(ping, sizeof(ping) - 1, "{F0FF0F}Skin{FFFFFF} %d{00FF00} Ping{FFFFFF} %d Score %d", actor->base.model_alt_id, pPlayer->iPing, pPlayer->iScore);
pD3DFont_sampStuff->PrintShadow(screenposs.x, screenposs.y - 14, COLOR_WHITE(255), ping);
_snprintf_s(pos, sizeof(pos) - 1, "Pos X %0.02f Y %0.02f Z %0.02f", player_pos.x, player_pos.y, player_pos.z);//, g_Players->pRemotePlayer[i]->szPlayerName, i);
pD3DFont_sampStuff->PrintShadow(screenposs.x, screenposs.y, COLOR_WHITE(255), pos);
}
}
}
BlastHackNet/mod_s0beit_sa(https://github.com/BlastHackNet/mod_s0beit_sa/blob/master/src/samp.cpp#L841)how can i do that i took a look at FYP screen info code and i included same stuff as him in that code still ping and score shows 0 here full code
C++:void renderPlayerInfo() { traceLastFunc("renderPlayerInfo()"); if (gta_menu_active()) return; if (cheat_state->_generic.cheat_panic_enabled) return; if (!g_dwSAMP_Addr || !g_SAMP || !g_Players) return; // don't run if the CGameSA doesn't exist if (!pGameInterface) return; // don't run if we don't exist if (isBadPtr_GTA_pPed(pPedSelf)) return; if (g_Scoreboard->iIsEnabled) return; for (int i = 0; i < SAMP_MAX_PLAYERS; i++) { actor_info *actor = getGTAPedFromSAMPPlayerID(i); struct actor_info *self = actor_info_get(ACTOR_SELF, 0); if (self == NULL) return; if (!actor) continue; D3DXVECTOR3 player_pos, screenposs; float * f_pos = &actor->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); char pos[256], ping[256], hparmw[256], pnameid[256], skin[256]; if (screenposs.z < 1.f) continue; if (g_Players->iIsListed[i] != 1) continue; stRemotePlayer *pPlayer = g_SAMP->pPools->pPlayer->pRemotePlayer[i]; const char * playerName = getPlayerName(i); if (Informer) { _snprintf_s(pnameid, sizeof(pnameid) - 1, "{C235DD}Player{FFFFFF} %s <%d>{00FF00} Distance{FFFFFF} %.0f m", playerName, i, GetDistance(D3DXVECTOR3(player_pos.x, player_pos.y, player_pos.z))); pD3DFont_sampStuff->PrintShadow(screenposs.x, screenposs.y - 38, COLOR_WHITE(255), pnameid); _snprintf_s(hparmw, sizeof(hparmw) - 1, "{FF0F0F}Health{FFFFFF} %0.0f Armour %0.0f{FFA00F} Weapon{FFFFFF} %u", g_Players->pRemotePlayer[i]->pPlayerData->fActorHealth, g_Players->pRemotePlayer[i]->pPlayerData->fActorArmor, g_Players->pRemotePlayer[i]->pPlayerData->onFootData.byteCurrentWeapon);//, g_Players->pRemotePlayer[i]->szPlayerName, i); pD3DFont_sampStuff->PrintShadow(screenposs.x, screenposs.y - 26, COLOR_WHITE(255), hparmw); _snprintf_s(ping, sizeof(ping) - 1, "{F0FF0F}Skin{FFFFFF} %d{00FF00} Ping{FFFFFF} %d Score %d", actor->base.model_alt_id, pPlayer->iPing, pPlayer->iScore); pD3DFont_sampStuff->PrintShadow(screenposs.x, screenposs.y - 14, COLOR_WHITE(255), ping); _snprintf_s(pos, sizeof(pos) - 1, "Pos X %0.02f Y %0.02f Z %0.02f", player_pos.x, player_pos.y, player_pos.z);//, g_Players->pRemotePlayer[i]->szPlayerName, i); pD3DFont_sampStuff->PrintShadow(screenposs.x, screenposs.y, COLOR_WHITE(255), pos); } } }
vehicle_info* my_veh = vehicle_info_get(VEHICLE_SELF, NULL);
float *coord = new float[3];
coord[0] = pPedSelf->GetPosition()->fX;
coord[1] = pPedSelf->GetPosition()->fY - 2.0f;
coord[2] = pPedSelf->GetPosition()->fZ;
if (my_veh->hitpoints == 200) // if vehicle hp is 200 then exit from car
{
GTAfunc_RemoveActorFromCarAndPutAt(coord);
}