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

  #4711  
Старый 05.08.2020, 15:43
manukhov
Участник форума
Регистрация: 14.04.2018
Сообщений: 122
С нами: 4254200

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

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

Ща посчитал оффсет для R1,вышло 3C5 вместо 3D5. Попробуй(нет возможности на R1 протестить сейчас)
еще можешь попробовать 3C9.
Спасибо, реально беды с оффсетами, просто 3D5 в интернале у меня работал, я думал всё ок
 
Ответить с цитированием

  #4712  
Старый 05.08.2020, 17:32
bab0n
Познающий
Регистрация: 06.11.2015
Сообщений: 95
С нами: 5535607

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

Цитата:
Сообщение от #Babon  

Можете описать пару способов экспорта и импорта значений переменных?
Вот подобный код на LUA:
Цитата:
Сообщение от Спойлер  


Lua:





Код:
local
defaults
=
{
sets
=
{
arg1
=
113
,
arg2
=
1
,
arg3
=
50
,
notification
=
true
}
}
local
ini
=
inicfg
.
load
(
defaults
,
'Kavo.ini'
)
local
sets
=
ini
.
sets
function
arg3
(
arg
)
if
type
(
tonumber
(
arg
)
)
==
'number'
then
sets
.
arg3
=
arg
        inicfg
.
save
(
ini
,
'Kavo.ini'
)
printString
(
'~y~ updated'
,
1000
)
addOneOffSound
(
0
,
0
,
0
,
1150
)
else
printString
(
'~r~ error'
,
1000
)
addOneOffSound
(
0
,
0
,
0
,
1055
)
end
end
-- пример использования
if
wasKeyPressed
(
sets
.
arg1
)
then
work
=
not
work
if
work
then
printString
(
'~p~ON'
,
1000
)
else
printString
(
'OFF'
,
1000
)
end
end


Я не настаиваю на текстовике, может есть какие то ещё варианты? Реестр может, или какие-то ещё файлы/директории
Актуально
 
Ответить с цитированием

  #4713  
Старый 07.08.2020, 17:52
SKIC
Познающий
Регистрация: 03.05.2016
Сообщений: 64
С нами: 5277893

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

Как включить курсор Windows и заморозить управление? Подобно когда заходишь в меню паузы.
 
Ответить с цитированием

  #4714  
Старый 07.08.2020, 18:33
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

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

Как включить курсор Windows и заморозить управление? Подобно когда заходишь в меню паузы.
C++:





Код:
// SAMP 0.3.7-R1
#define SAMP_MISC_INFO                    = 0x21A10C
#define SAMP_FUNC_TOGGLECURSOR                = 0x9BD30
#define SAMP_FUNC_CURSORUNLOCKACTORCAM        = 0x9BC10
void
ToggleCursor
(
bool
state
)
{
//state - 1 on; 0 off
if
(
iInputEnabled
)
//is Input Active Check
return
;
void
*
obj
=
*
(
void
*
*
)
(
dwSAMPAddr
+
SAMP_MISC_INFO
)
;
(
(
void
(
__thiscall
*
)
(
void
*
,
int
,
bool
)
)
(
dwSAMPAddr
+
SAMP_TOGGLECURSOR
)
)
(
obj
,
state
?
3
:
0
,
!
state
)
;
if
(
!
state
)
(
(
void
(
__thiscall
*
)
(
void
*
)
)
(
dwSAMPAddr
+
SAMP_CURSORUNLOCKACTORCAM
)
)
(
obj
)
;
}


Для блокировки управления в wndProc добавить return
 
Ответить с цитированием

  #4715  
Старый 07.08.2020, 18:42
SKIC
Познающий
Регистрация: 03.05.2016
Сообщений: 64
С нами: 5277893

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

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

C++:





Код:
// SAMP 0.3.7-R1
#define SAMP_MISC_INFO                    = 0x21A10C
#define SAMP_FUNC_TOGGLECURSOR                = 0x9BD30
#define SAMP_FUNC_CURSORUNLOCKACTORCAM        = 0x9BC10
void
ToggleCursor
(
bool
state
)
{
//state - 1 on; 0 off
if
(
iInputEnabled
)
//is Input Active Check
return
;
void
*
obj
=
*
(
void
*
*
)
(
dwSAMPAddr
+
SAMP_MISC_INFO
)
;
(
(
void
(
__thiscall
*
)
(
void
*
,
int
,
bool
)
)
(
dwSAMPAddr
+
SAMP_TOGGLECURSOR
)
)
(
obj
,
state
?
3
:
0
,
!
state
)
;
if
(
!
state
)
(
(
void
(
__thiscall
*
)
(
void
*
)
)
(
dwSAMPAddr
+
SAMP_CURSORUNLOCKACTORCAM
)
)
(
obj
)
;
}


Для блокировки управления в wndProc добавить return
Это для SAMP а мне для одиночки.

@FYP, можешь пожалуйста дать код своего showCursor из moonloader. ну пожалуйста.
 
Ответить с цитированием

  #4716  
Старый 07.08.2020, 22:06
DarkP1xel
Флудер
Регистрация: 17.06.2013
Сообщений: 3,635
С нами: 6791977

Репутация: 183


По умолчанию

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

Это для SAMP а мне для одиночки.
@FYP, можешь пожалуйста дать код своего showCursor из moonloader. ну пожалуйста.
Псевдокод функции включения курсора SA-MP'a.:





Код:
int
__thiscall
ToggleCursor
(
stMiscInfo
*
this
,
int
cursorMode
,
int
hideCursor
?
)
{
int
result
;
// eax
stMiscInfo
*
v4
;
// esi
result
=
cursorMode
;
v4
=
this
;
switch
(
cursorMode
)
{
case
2
:
UnProtectMemmory
(
(
void
*
)
0x541DF5
,
5
)
;
MEMORY
[
0x541DF5
]
=
0x90909090
;
MEMORY
[
0x541DF9
]
=
0x90u
;
GTA
::
patch
::
enableCursor
(
)
;
MEMORY
[
0xB73424
]
=
0
;
MEMORY
[
0xB73428
]
=
0
;
MEMORY
[
0x541BD0
]
(
)
;
MEMORY
[
0x541DD0
]
(
)
;
UnProtectMemmory
(
(
void
*
)
0x6194A0
,
1
)
;
MEMORY
[
0x6194A0
]
=
0xC3u
;
result
=
(
(
int
(
__stdcall
*
)
(
IDirect3DDevice9
*
,
signed
int
)
)
pDevice
->
vtbl
->
ShowCursor
)
(
pDevice
,
1
)
;
v4
->
iCursorMode
=
2
;
break
;
case
1
:
if
(
this
->
iCursorMode
!=
1
)
{
UnProtectMemmory
(
(
void
*
)
0x541DF5
,
5
)
;
result
=
0x90909090
;
MEMORY
[
0x541DF5
]
=
0x90909090
;
MEMORY
[
0x541DF9
]
=
0x90u
;
v4
->
iCursorMode
=
1
;
}
break
;
case
3
:
if
(
this
->
iCursorMode
!=
3
)
{
GTA
::
patch
::
enableCursor
(
)
;
MEMORY
[
0xB73424
]
=
0
;
MEMORY
[
0xB73428
]
=
0
;
MEMORY
[
0x541BD0
]
(
)
;
MEMORY
[
0x541DD0
]
(
)
;
UnProtectMemmory
(
(
void
*
)
0x6194A0
,
1
)
;
MEMORY
[
0x6194A0
]
=
0xC3u
;
result
=
(
(
int
(
__stdcall
*
)
(
IDirect3DDevice9
*
,
signed
int
)
)
pDevice
->
vtbl
->
ShowCursor
)
(
pDevice
,
1
)
;
v4
->
iCursorMode
=
3
;
}
break
;
case
4
:
if
(
this
->
iCursorMode
!=
4
)
{
sub_1009BB20
(
)
;
MEMORY
[
0xB73424
]
=
0
;
MEMORY
[
0xB73428
]
=
0
;
MEMORY
[
0x541BD0
]
(
)
;
MEMORY
[
0x541DD0
]
(
)
;
result
=
UnProtectMemmory
(
(
void
*
)
0x6194A0
,
1
)
;
MEMORY
[
0x6194A0
]
=
0xC3u
;
v4
->
iCursorMode
=
4
;
}
break
;
default
:
if
(
!
cursorMode
&&
this
->
iCursorMode
)
{
this
->
field_59
=
hideCursor
?
!=
0
?
0
:
0xA
;
result
=
(
(
int
(
__stdcall
*
)
(
IDirect3DDevice9
*
,
_DWORD
)
)
pDevice
->
vtbl
->
ShowCursor
)
(
pDevice
,
0
)
;
v4
->
iCursorMode
=
0
;
}
break
;
}
return
result
;
}
 
Ответить с цитированием

  #4717  
Старый 08.08.2020, 02:08
sqdxi
Новичок
Регистрация: 08.08.2020
Сообщений: 1
С нами: 3035061

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

1) Не могли бы подсказать в чем ошибка? (Суть скрипта, чтобы при виде пикапа(иконки зеленого домика"1273" нажимал alt+enter)

В каком формате закидывать в корень? .lua?

Код:

void CalcScreenCoors(D3DXVECTOR3* vecWorld, D3DXVECTOR3* vecScreen)

{

D3DXMATRIX m((float*)(0xB6FA2C));

DWORD* dwLenX = (DWORD*)(0xC17044);

DWORD* dwLenY = (DWORD*)(0xC17048);

vecScreen->x = (vecWorld->z * m._31) + (vecWorld->y * m._21) + (vecWorld->x * m._11) + m._41;

vecScreen->y = (vecWorld->z * m._32) + (vecWorld->y * m._22) + (vecWorld->x * m._12) + m._42;

vecScreen->z = (vecWorld->z * m._33) + (vecWorld->y * m._23) + (vecWorld->x * m._13) + m._43;

double fRecip = (double)1.0 / vecScreen->z;

vecScreen->x *= (float)(fRecip * (*dwLenX));

vecScreen->y *= (float)(fRecip * (*dwLenY));

}

bool IsPickOnScreen(int p)

{

D3DXVECTOR3 vecPos;

vecPos.x = SF->getSAMP()->getInfo()->pPools->pPickup->pickup[p].fPosition[0];

vecPos.y = SF->getSAMP()->getInfo()->pPools->pPickup->pickup[p].fPosition[1];

vecPos.z = SF->getSAMP()->getInfo()->pPools->pPickup->pickup[p].fPosition[2];

D3DXVECTOR3 screenPos;

CalcScreenCoors(&vecPos, &screenPos);

if (screenPos.z
 
Ответить с цитированием

  #4718  
Старый 08.08.2020, 17:19
trefa
Флудер
Регистрация: 05.02.2015
Сообщений: 2,141
С нами: 5929676

Репутация: 183


По умолчанию

[QUOTE="sqdxi"]

1) Не могли бы подсказать в чем ошибка? (Суть скрипта, чтобы при виде пикапа(иконки зеленого домика"1273" нажимал alt+enter)
В каком формате закидывать в корень? .lua?
Код:

void CalcScreenCoors(D3DXVECTOR3* vecWorld, D3DXVECTOR3* vecScreen)
{

D3DXMATRIX m((float*)(0xB6FA2C));
DWORD* dwLenX = (DWORD*)(0xC17044);
DWORD* dwLenY = (DWORD*)(0xC17048);

vecScreen->x = (vecWorld->z * m._31) + (vecWorld->y * m._21) + (vecWorld->x * m._11) + m._41;
vecScreen->y = (vecWorld->z * m._32) + (vecWorld->y * m._22) + (vecWorld->x * m._12) + m._42;
vecScreen->z = (vecWorld->z * m._33) + (vecWorld->y * m._23) + (vecWorld->x * m._13) + m._43;

double fRecip = (double)1.0 / vecScreen->z;
vecScreen->x *= (float)(fRecip * (*dwLenX));
vecScreen->y *= (float)(fRecip * (*dwLenY));
}

bool IsPickOnScreen(int p)
{

D3DXVECTOR3 vecPos;
vecPos.x = SF->getSAMP()->getInfo()->pPools->pPickup->pickup[p].fPosition[0];
vecPos.y = SF->getSAMP()->getInfo()->pPools->pPickup->pickup[p].fPosition[1];
vecPos.z = SF->getSAMP()->getInfo()->pPools->pPickup->pickup[p].fPosition[2];

D3DXVECTOR3 screenPos;
CalcScreenCoors(&vecPos, &screenPos);
if (screenPos.z
 
Ответить с цитированием

  #4719  
Старый 09.08.2020, 00:21
bab0n
Познающий
Регистрация: 06.11.2015
Сообщений: 95
С нами: 5535607

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

В попытках работы с .ini пробую такой код:

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


C++:





Код:
void
CALLBACK
testik
(
std
::
string param
)
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"Start"
)
;
std
::
fstream
sets
(
"settings.ini"
,
std
::
ios
::
out
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"Файл открыт"
)
;
sets

getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"Записан аргумент"
)
;
sets
.
close
(
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"Файл закрыт"
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"End"
)
;
}


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


C++:





Код:
SF
->
getSAMP
(
)
->
registerChatCommand
(
"test"
,
testik
)
;


Но ничего не работает, краша нет, всё выводиться что должно в сампе, но файл не заполняется.

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






Хочу услышать любые советы и предположения, сразу говорю что в Cpp я не так давно, и многие локальные фразы могу не понять
 
Ответить с цитированием

  #4720  
Старый 09.08.2020, 00:23
loganhackerdff
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами: 4633764

Репутация: 148


По умолчанию

лови
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.