HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #5191  
Старый 29.03.2021, 19:15
Musaigen
Познавший АНТИЧАТ
Регистрация: 01.04.2018
Сообщений: 1,710
С нами: 4272230

Репутация: 183


По умолчанию

Цитата:
Сообщение от AdCKuY_DpO4uLa  

хз, мб как-то и связан, CPed же можно по иду получить

C++:





Код:
CPed
*
ped
=
CPools
::
GetPed
(
pSAMP
->
getPlayers
(
)
->
pRemotePlayer
[
playerID
]
->
pPlayerData
->
pSAMP_Actor
->
ulGTAEntityHandle
)
;

pSAMPPed или как его там и есть CPed
 
Ответить с цитированием

  #5192  
Старый 29.03.2021, 19:33
sc6ut
Постоянный
Регистрация: 03.05.2020
Сообщений: 385
С нами: 3174020

Репутация: 213
По умолчанию

Цитата:
Сообщение от AdCKuY_DpO4uLa  

хз, мб как-то и связан, CPed же можно по иду получить

C++:





Код:
CPed
*
ped
=
CPools
::
GetPed
(
pSAMP
->
getPlayers
(
)
->
pRemotePlayer
[
playerID
]
->
pPlayerData
->
pSAMP_Actor
->
ulGTAEntityHandle
)
;

можешь перебрать всех педов и проверять соотвествие =D
 
Ответить с цитированием

  #5193  
Старый 29.03.2021, 20:19
AdCKuY_DpO4uLa
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами: 4091290

Репутация: 213
По умолчанию

Мб кому-то пригодится. Спасибо всем за ответы

C++:





Код:
unsigned
__int16 stPlayerPool
::
GetPlayerIDFromCPed
(
CPed
*
pPed
)
{
if
(
pPed
==
FindPlayerPed
(
)
)
return
pSAMP
->
getPlayers
(
)
->
sLocalPlayerID
;
for
(
unsigned
__int16 i
=
0
;
i
!=
SAMP_MAX_PLAYERS
;
i
++
)
{
if
(
!
pSAMP
->
getPlayers
(
)
->
IsPlayerStreamed
(
i
)
)
continue
;
if
(
pPed
==
(
CPed
*
)
pSAMP
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
)
return
i
;
}
return
0xFFFF
;
}
 
Ответить с цитированием

  #5194  
Старый 30.03.2021, 15:32
Receiver
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами: 5332594

Репутация: 163


По умолчанию



1617107531863.pngReceiver · 30 Мар 2021 в 14:32' data-fancybox="lb-post-702178" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/91332/" style="cursor: pointer;" title="1617107531863.png">


Проходит несколько педов и выдаёт access violation на target_position.
 
Ответить с цитированием

  #5195  
Старый 30.03.2021, 16:01
waffelo
Новичок
Регистрация: 03.06.2020
Сообщений: 27
С нами: 3129532

Репутация: 3
По умолчанию

Вопрос: Можно ли задать координаты ImGui::Image, если да то как.

Возможный ответ: Использовать setcursorpos?
 
Ответить с цитированием

  #5196  
Старый 30.03.2021, 18:46
Receiver
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами: 5332594

Репутация: 163


По умолчанию

Цитата:
Сообщение от waffelo  

Вопрос: Можно ли задать координаты ImGui::Image, если да то как.
Возможный ответ: Использовать setcursorpos?
C++:





Код:
ImGui
::
SetCursorPos
(
{
X
,
Y
}
)
;
// Замени на свою позицию
ImGui
::
Image
(
.
.
.
)
;
 
Ответить с цитированием

  #5197  
Старый 31.03.2021, 03:54
LUCHARE
Постоянный
Регистрация: 23.05.2017
Сообщений: 545
С нами: 4723927

Репутация: 158


По умолчанию

Цитата:
Сообщение от AdCKuY_DpO4uLa  

как получить ид самп игрока через указатель на CPed? использую plugin sdk
SAMP-API/CPlayerPool.h at multiver · BlastHackNet/SAMP-API · GitHub

SAMP-API/CPlayerPool.cpp at multiver · BlastHackNet/SAMP-API · GitHub

самый простой способ это использовать метод который уже есть в сампе
 
Ответить с цитированием

  #5198  
Старый 31.03.2021, 19:52
ishi
Постоянный
Регистрация: 17.01.2014
Сообщений: 493
С нами: 6483143

Репутация: 93
По умолчанию

У меня уже мозг расплавился от этой чихарды.

Имеется старая игра warzone2100, где по указателю хранится строка



Это однобайтовая кодировка, но лишь cheat engine выводит её нормально

Читая её как char*, я получаю козяблики

Выводя её через opengl рендер, вижу тоже самое, что и через MessageBoxA

CharToOem и наоборот -- никак не помогают прочитать эту чёртову строку.

Нагуглил функцию "определения кодировки", и по её показаниям, это не ascii и не ut8

Цитата:
Сообщение от Спойлер  


C++:





Код:
enum
DetectedCoding
{
ASCII
,
UTF8
,
OTHER
}
;
DetectedCoding
DetectEncoding
(
const
std
::
string
&
s
)
{
const
char
*
cs
=
s
.
c_str
(
)
;
DetectedCoding d
=
ASCII
;
while
(
*
cs
)
{
unsigned
char
b
=
(
unsigned
char
)
*
(
cs
++
)
;
if
(
b
&
0x80
)
{
// not a plain ASCII character
// if the string is already UTF8 encoded, then it must conform to a multibyte sequence standard. Let's verify it
if
(
b
Это совершенно точно НЕ мой косяк при чтении, потому что все указатели проверяются, и чтение происходит, лишь когда курсор наведён на иконку элемента, обладающего строкой по нужному оффсету:

C++:





[CODE]
int
*
ptr
=
(
int
*
)
(
(
char
*
)
GetModuleHandleA
(
0
)
+
0x9C4EE0
)
;
int
lastnumber
=
0
;
int
*
elid2
=
0
;
char
*
buff2
=
0
;
bool
checkptr
(
)
{
if
(
*
ptr
==
0
)
return
0
;
elid2
=
(
int
*
)
(
*
ptr
+
8
)
;
if
(
*
elid2
)
{
buff2
=
(
char
*
)
(
*
ptr
+
0xD4
)
;
if
(
*
(
int
*
)
elid2
>=
IDSTAT_START
)
if
(
*
(
int
*
)
elid2



Отчаянно прошу помощи! Нихрена нагуглить не смог, все мне известные способы конвертации -- тоже не работают! Ужасно!
 
Ответить с цитированием

  #5199  
Старый 31.03.2021, 20:30
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

[QUOTE="ishi"]

У меня уже мозг расплавился от этой чихарды.

Имеется старая игра warzone2100, где по указателю хранится строка

Это однобайтовая кодировка, но лишь cheat engine выводит её нормально

Читая её как char*, я получаю козяблики
Выводя её через opengl рендер, вижу тоже самое, что и через MessageBoxA

CharToOem и наоборот -- никак не помогают прочитать эту чёртову строку.

Нагуглил функцию "определения кодировки", и по её показаниям, это не ascii и не ut8
Цитата:
Сообщение от Спойлер  


C++:





Код:
enum
DetectedCoding
{
ASCII
,
UTF8
,
OTHER
}
;
DetectedCoding
DetectEncoding
(
const
std
::
string
&
s
)
{
const
char
*
cs
=
s
.
c_str
(
)
;
DetectedCoding d
=
ASCII
;
while
(
*
cs
)
{
unsigned
char
b
=
(
unsigned
char
)
*
(
cs
++
)
;
if
(
b
&
0x80
)
{
// not a plain ASCII character
// if the string is already UTF8 encoded, then it must conform to a multibyte sequence standard. Let's verify it
if
(
b
Это совершенно точно НЕ мой косяк при чтении, потому что все указатели проверяются, и чтение происходит, лишь когда курсор наведён на иконку элемента, обладающего строкой по нужному оффсету:

C++:





[CODE]
int
*
ptr
=
(
int
*
)
(
(
char
*
)
GetModuleHandleA
(
0
)
+
0x9C4EE0
)
;
int
lastnumber
=
0
;
int
*
elid2
=
0
;
char
*
buff2
=
0
;
bool
checkptr
(
)
{
if
(
*
ptr
==
0
)
return
0
;
elid2
=
(
int
*
)
(
*
ptr
+
8
)
;
if
(
*
elid2
)
{
buff2
=
(
char
*
)
(
*
ptr
+
0xD4
)
;
if
(
*
(
int
*
)
elid2
>=
IDSTAT_START
)
if
(
*
(
int
*
)
elid2
 
Ответить с цитированием

  #5200  
Старый 31.03.2021, 23:40
ishi
Постоянный
Регистрация: 17.01.2014
Сообщений: 493
С нами: 6483143

Репутация: 93
По умолчанию

Цитата:
Сообщение от KiN4StAt  

Покажи строку в hex виде в hex view у cheatengine
Вот, например:

Код:





Код:
46 75 65 6C 20 49 6E 6A 65 63 74 69 6F 6E 20 45 6E 67 69 6E 65 20 4D 6B 33 0A 43 6F 73 74 3A 20 31 35 30 00 6F 00 75 00 6E 00


Код:





Код:
Fuel Injection Engine Mk3
Cost: 150
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.