 |
|

25.02.2016, 19:11
|
|
Участник форума
Регистрация: 12.07.2013
Сообщений: 161
С нами:
6755146
Репутация:
78
|
|
Сообщение от return
Не понял, что за переменная counti, что с ней делать?
Ошибся, не "counti",a "count". Каждый раз когда скин походит, она инкримируется, и в последствии у тебя будет количество людей с нужными скинами
|
|
|

25.02.2016, 21:19
|
|
Участник форума
Регистрация: 23.10.2010
Сообщений: 125
С нами:
8186006
Репутация:
1
|
|
Почему то так, выводит только первый скин, 102.
103 и 104 не выводит.
Сообщение от CarLCas
Я бы заменил на:
C++:
Код:
if
(
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
model_alt_id
>
102
&&
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
model_alt_id
PrintShadow
(
1
,
pPresentParam
.
BackBufferHeight
/
2
+
count
*
20
,
color
,
text
)
;
count
++
;
}
|
|
|

25.02.2016, 21:29
|
|
Участник форума
Регистрация: 12.07.2013
Сообщений: 161
С нами:
6755146
Репутация:
78
|
|
Сообщение от return
Почему то так, выводит только первый скин, 102.
103 и 104 не выводит.
Он выводит только 103 скин, я писал не так. У меня вместо 102 в коде 101, а вместо 104 - 105. А в случае как ты написал, надо было бы в условии сделать вместо знаков ">" "=" "
|
|
|

26.02.2016, 19:54
|
|
Участник форума
Регистрация: 23.10.2010
Сообщений: 125
С нами:
8186006
Репутация:
1
|
|
в исходнике соба нет структуры stSAMPMisc
в структуре есть iRaceCheckpointEnabled и vecRaceCheckpointPos, чем их можно заменить?
|
|
|

02.03.2016, 02:57
|
|
Постоянный
Регистрация: 15.12.2013
Сообщений: 412
С нами:
6530249
Репутация:
133
|
|
Сообщение от Сэнд
Как сделать проверку на ЗАЖАТИЕ клавиши? Пока клавишу держат опущенной, то программа работает, когда отпускают - перестаёт работать.
SF->getGame()->isKeyDown()
or
GetAsyncKeyState() != NULL
|
|
|

12.03.2016, 09:33
|
|
Новичок
Регистрация: 13.07.2005
Сообщений: 5
С нами:
10961573
Репутация:
0
|
|
как проверить, если пикап уже подобрали?
когда кто то поднимает пикап, он по прежнему существует, но мы его не можем видеть или поднять...
|
|
|

12.03.2016, 22:52
|
|
Новичок
Регистрация: 21.06.2015
Сообщений: 22
С нами:
5733802
Репутация:
53
|
|
Пробую написать значит прогу для начала у виде ехе файла, чтобы можно было удобней проверять написанное. Прога должна находить с памяти gta-sa.exe динамический адрес айпи. С помощью видеоуроков на ютубе и Cheat Engine я сделал приблизительно что нужно мне:
Сообщение от Спойлер
[HIDE=1]
// В файле класса:
DWORD Anticheat::ReadPointer(DWORD base, DWORD* offsets, int count)
{
for (int i = 0; i Open();
printf("PID: %x\n\n", mem->getPID());
DWORD offsets[] = { 0x021A0F8, 0x20 };
DWORD addressdllsamp = 0x05180000;// адрес samp.dll
DWORD ammoadr = mem->ReadPointer(addressdllsamp, offsets, 2);
printf("Adress: 0x%x / value = %s\n\n", ammoadr, mem->Read(ammoadr, 15).toStringA());// 15 - величина nick`a + 1
system("PAUSE");
}[/I]
[/HIDE]
Здесь система получает динамический адресс значения "айпи сервера", через оффсеты и поинты.
Если в уже открытом процессе менять айпи, то в консоль выводит ее правильно. Но если перезапустить процесс, то в CE вижу что в samp.dll уже другой адрес, и в итоге в консоли ничего нет. Помогите вот, нужно такое же сделать, только уже для samp.dll, тоесть узнать поинт и оффсеты смещения в памяти адреса dll-лки.
Сообщение от Спойлер
[HIDE=1]

[/HIDE]
|
|
|

13.03.2016, 12:14
|
|
Познавший АНТИЧАТ
Регистрация: 09.03.2013
Сообщений: 1,771
С нами:
6935121
Репутация:
233
|
|
@Vasiliy77, тебе нужно получить базовый адрес модуля в процессе.
это можно сделать с помощью такой функции:
C++:
Код:
#include
#include
HMODULE
getModuleHandleRemote
(
DWORD processId
,
const
char
*
moduleName
)
{
HANDLE snap
=
CreateToolhelp32Snapshot
(
TH32CS_SNAPMODULE
,
processId
)
;
if
(
snap
==
INVALID_HANDLE_VALUE
)
return
NULL
;
MODULEENTRY32 moduleEntry
;
moduleEntry
.
dwSize
=
sizeof
(
moduleEntry
)
;
bool
found
=
Module32First
(
snap
,
&
moduleEntry
)
==
TRUE
;
while
(
found
)
{
if
(
stricmp
(
moduleEntry
.
szModule
,
moduleName
)
==
0
)
return
CloseHandle
(
snap
)
,
moduleEntry
.
hModule
;
found
=
Module32Next
(
snap
,
&
moduleEntry
)
==
TRUE
;
}
CloseHandle
(
snap
)
;
return
NULL
;
}
|
|
|

15.03.2016, 14:26
|
|
Постоянный
Регистрация: 23.06.2015
Сообщений: 411
С нами:
5731627
Репутация:
108
|
|
Почему не работает!!!
Это все изза дибильной функции stricmp которая не сравнивает две строки если они одинаковые. (код отлаживал)
Код:
Код:
#include
#include
....
DWORD GetPID(const char * m_pName)
{
DWORD m_pID = 0;
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
PROCESSENTRY32 pInfo;
pInfo.dwSize = sizeof(PROCESSENTRY32);
if (Process32First(snapshot, &pInfo))
{
while (Process32Next(snapshot, &pInfo))
{
if ( !stricmp( (const char *) m_pName, (const char *) pInfo.szExeFile) )
{
m_pID = pInfo.th32ProcessID;
CloseHandle(snapshot);
return m_pID;
}
}
}
CloseHandle(snapshot);
return m_pID;
}
....
GetPID("smss.exe");
|
|
|

15.03.2016, 15:57
|
|
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами:
6915558
Репутация:
183
|
|
И что именно не работает? Я скомпилил, норм всё.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|