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

  #6401  
Старый 18.09.2022, 07:52
Ltall
Новичок
Регистрация: 19.06.2022
Сообщений: 14
С нами: 2055431

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

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

как сделать бег к координатам ?
C++:





[CODE]
float
*
xCam
=
(
float
*
)
0xB6F258
;
DWORD
*
ptrActor
=
(
DWORD
*
)
0xB6F5F0
;
void
rotateCamToXY
(
float
x
,
float
y
)
{
DWORD
*
pActorMtrx
=
(
DWORD
*
)
(
(
*
ptrActor
)
+
0x14
)
;
CVector2D
pPos
(
*
(
float
*
)
(
(
*
pActorMtrx
)
+
0x30
)
,
*
(
float
*
)
(
(
*
pActorMtrx
)
+
0x34
)
)
;
CVector2D
cPos
(
*
(
float
*
)
(
0xB6F9CC
)
,
*
(
float
*
)
(
0xB6F9D0
)
)
;
float
ac
=
sqrt
(
pow
(
fabs
(
cPos
.
fX
-
x
)
,
2
)
+
pow
(
fabs
(
cPos
.
fY
-
y
)
,
2
)
)
;
float
alpha
=
asin
(
fabs
(
cPos
.
fX
-
x
)
/
ac
)
;
float
beta
=
acos
(
fabs
(
cPos
.
fX
-
x
)
/
ac
)
;
if
(
(
pPos
.
fX
>
x
)
&&
(
pPos
.
fY

x
)
&&
(
pPos
.
fY
>
y
)
)
*
xCam
=
beta
;
if
(
(
pPos
.
fX

y
)
)
*
xCam
=
(
alpha
+
(
1.57
)
)
;
if
(
(
pPos
.
fX

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

  #6402  
Старый 18.09.2022, 21:12
вайега52
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами: 2055431

Репутация: 3


По умолчанию

Посмотрел пару уроков по сф и решил сделать жоски скрипт с хуком синхры педа, сделал, ошибок при компиляции никаких нету, но хук как я понял не срабатывает.

main.cpp:





Код:
#include "main.h"
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
void
__stdcall
mainloop
(
)
{
static
bool
initialized
=
false
;
if
(
!
initialized
)
{
if
(
GAME
&&
GAME
->
GetSystemState
(
)
==
eSystemState
::
GS_PLAYING_GAME
&&
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
{
initialized
=
true
;
SF
->
getRakNet
(
)
->
registerRakNetCallback
(
RakNetScriptHookType
::
RAKHOOK_TYPE_OUTCOMING_PACKET
,
onSendPacket
)
;
SF
->
getSAMP
(
)
->
registerChatCommand
(
"abc"
,
[
]
(
std
::
string
)
{
AddChat
(
-
1
,
"Mamut_Rahal active"
)
;
actived
=
!
actived
;
}
)
;
//SF->getSAMP()->getPlayers()->GetActorHandleFromSAMPPlayerID(id);
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
;
AddChat
(
-
1
,
"Ну типа работа с синхрой бу Ега."
)
;
}
}
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
if
(
dwReasonForCall
==
DLL_PROCESS_ATTACH
)
SF
->
initPlugin
(
mainloop
,
hModule
)
;
return
TRUE
;
}


main.h:





Код:
#pragma once
#include "SAMPFUNCS_API.h"
#include "game_api.h"
bool
__stdcall
onSendPacket
(
stRakNetHookParams
*
param
)
;
static
bool
actived
=
false
;
#define AddChat SF->getSAMP()->getChat()->AddChatMessage
extern
SAMPFUNCS
*
SF
;


raknet.cpp (сам хук):





Код:
#include "main.h"
bool
__stdcall
onSendPacket
(
stRakNetHookParams
*
param
)
{
if
(
param
->
packetId
==
ID_PLAYER_SYNC
)
{
if
(
actived
)
{
BYTE packet
;
stOnFootData data
;
memset
(
&
data
,
0
,
sizeof
(
stOnFootData
)
)
;
//float pos = SF->getSAMP()->getPlayers()->GetOnFootData(2)->fPosition[3];
param
->
bitStream
->
ResetReadPointer
(
)
;
param
->
bitStream
->
Read
(
packet
)
;
param
->
bitStream
->
Read
(
(
PCHAR
)
&
data
,
sizeof
(
stOnFootData
)
)
;
data
.
fMoveSpeed
[
0
]
=
2.5f
;
data
.
fMoveSpeed
[
1
]
=
2.5f
;
data
.
fMoveSpeed
[
2
]
=
2.5f
;
param
->
bitStream
->
ResetWritePointer
(
)
;
param
->
bitStream
->
Write
(
(
PCHAR
)
packet
)
;
param
->
bitStream
->
Write
(
(
PCHAR
)
&
data
,
sizeof
(
stOnFootData
)
)
;
AddChat
(
-
1
,
"%f %f %f"
,
data
.
fMoveSpeed
[
0
]
,
data
.
fMoveSpeed
[
1
]
,
data
.
fMoveSpeed
[
2
]
)
;
}
}
return
true
;
}


P.S. смог решить тем, что хук перенес из отдельного файла в main.cpp. Тогда еще 2 вопроса: как можно это сделать в разных файлах и влияет ли как-то на производительность то, что все в одном файле или разделено на несколько?
 
Ответить с цитированием

  #6403  
Старый 19.09.2022, 00:23
0x73616D
Участник форума
Регистрация: 27.05.2021
Сообщений: 140
С нами: 2614229

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

возможно ли это сделать в .asi? есть какой-нибудь пример?

Lua:





Код:
local
encoding
=
require
'encoding'
-- подключаем для корректной отправки русских букв
encoding
.
default
=
'CP1251'
u8
=
encoding
.
UTF8
local
sampev
=
require
'lib.samp.events'
-- подключаем для хука отправки ответа на диалог
local
effil
=
require
'effil'
-- для ассинхронных запросов
local
url
=
'URL'
local
data
=
{
[
'content'
]
=
''
,
-- текст (меняется через команду, так что можно оставить пустым)
[
'username'
]
=
'Sended from .lua script!'
,
-- ник отправителя
[
'avatar_url'
]
=
'https://c.tenor.com/Z9mXH7-MlcsAAAAS/sexy-black-man-thirst-trap.gif'
,
-- ссылка на аватарку (можно убрать, будет дефолтная)
[
'tts'
]
=
false
,
-- tts - text to speech - читалка сообщений (true/false)
-- так же можно сделать еще много чего, подробнее тут: https://discord.com/developers/docs/resources/webhook
}
function
main
(
)
while
not
isSampAvailable
(
)
do
wait
(
0
)
end
sampRegisterChatCommand
(
'ds.msg'
,
function
(
arg
)
data
[
'username'
]
=
sampGetPlayerNickname
(
select
(
2
,
sampGetPlayerIdByCharHandle
(
PLAYER_PED
)
)
)
-- ник отправителя = ник в игре
data
[
'content'
]
=
arg
-- делаем что бы текст сообщения был равен тексту который мы ввели после команды
-- отправляем запрос
asyncHttpRequest
(
'POST'
,
url
,
{
headers
=
{
[
'content-type'
]
=
'application/json'
}
,
data
=
u8
(
encodeJson
(
data
)
)
}
,
function
(
response
)
print
(
'[WebHook] [OK] отправлено!'
)
end
,
function
(
err
)
print
(
'[WebHook] [ERROR] error: '
..
err
)
end
)
end
)
wait
(
-
1
)
end
-- функция для отправки ассинхронных сообщений
function
asyncHttpRequest
(
method
,
url
,
args
,
resolve
,
reject
)
local
request_thread
=
effil
.
thread
(
function
(
method
,
url
,
args
)
local
requests
=
require
'requests'
local
result
,
response
=
pcall
(
requests
.
request
,
method
,
url
,
args
)
if
result
then
response
.
json
,
response
.
xml
=
nil
,
nil
return
true
,
response
else
return
false
,
response
end
end
)
(
method
,
url
,
args
)
-- Если запрос без функций обработки ответа и ошибок.
if
not
resolve
then
resolve
=
function
(
)
end
end
if
not
reject
then
reject
=
function
(
)
end
end
-- Проверка выполнения потока
lua_thread
.
create
(
function
(
)
local
runner
=
request_thread
while
true
do
local
status
,
err
=
runner
:
status
(
)
if
not
err
then
if
status
==
'completed'
then
local
result
,
response
=
runner
:
get
(
)
if
result
then
resolve
(
response
)
else
reject
(
response
)
end
return
elseif
status
==
'canceled'
then
return
reject
(
status
)
end
else
return
reject
(
err
)
end
wait
(
0
)
end
end
)
end
 
Ответить с цитированием

  #6404  
Старый 19.09.2022, 00:44
MeG@LaDo[N] ^_^
Участник форума
Регистрация: 21.07.2020
Сообщений: 280
С нами: 3059886

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

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

Посмотрел пару уроков по сф и решил сделать жоски скрипт с хуком синхры педа, сделал, ошибок при компиляции никаких нету, но хук как я понял не срабатывает.

main.cpp:





Код:
#include "main.h"
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
void
__stdcall
mainloop
(
)
{
static
bool
initialized
=
false
;
if
(
!
initialized
)
{
if
(
GAME
&&
GAME
->
GetSystemState
(
)
==
eSystemState
::
GS_PLAYING_GAME
&&
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
{
initialized
=
true
;
SF
->
getRakNet
(
)
->
registerRakNetCallback
(
RakNetScriptHookType
::
RAKHOOK_TYPE_OUTCOMING_PACKET
,
onSendPacket
)
;
SF
->
getSAMP
(
)
->
registerChatCommand
(
"abc"
,
[
]
(
std
::
string
)
{
AddChat
(
-
1
,
"Mamut_Rahal active"
)
;
actived
=
!
actived
;
}
)
;
//SF->getSAMP()->getPlayers()->GetActorHandleFromSAMPPlayerID(id);
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
;
AddChat
(
-
1
,
"Ну типа работа с синхрой бу Ега."
)
;
}
}
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
if
(
dwReasonForCall
==
DLL_PROCESS_ATTACH
)
SF
->
initPlugin
(
mainloop
,
hModule
)
;
return
TRUE
;
}


main.h:





Код:
#pragma once
#include "SAMPFUNCS_API.h"
#include "game_api.h"
bool
__stdcall
onSendPacket
(
stRakNetHookParams
*
param
)
;
static
bool
actived
=
false
;
#define AddChat SF->getSAMP()->getChat()->AddChatMessage
extern
SAMPFUNCS
*
SF
;


raknet.cpp (сам хук):





Код:
#include "main.h"
bool
__stdcall
onSendPacket
(
stRakNetHookParams
*
param
)
{
if
(
param
->
packetId
==
ID_PLAYER_SYNC
)
{
if
(
actived
)
{
BYTE packet
;
stOnFootData data
;
memset
(
&
data
,
0
,
sizeof
(
stOnFootData
)
)
;
//float pos = SF->getSAMP()->getPlayers()->GetOnFootData(2)->fPosition[3];
param
->
bitStream
->
ResetReadPointer
(
)
;
param
->
bitStream
->
Read
(
packet
)
;
param
->
bitStream
->
Read
(
(
PCHAR
)
&
data
,
sizeof
(
stOnFootData
)
)
;
data
.
fMoveSpeed
[
0
]
=
2.5f
;
data
.
fMoveSpeed
[
1
]
=
2.5f
;
data
.
fMoveSpeed
[
2
]
=
2.5f
;
param
->
bitStream
->
ResetWritePointer
(
)
;
param
->
bitStream
->
Write
(
(
PCHAR
)
packet
)
;
param
->
bitStream
->
Write
(
(
PCHAR
)
&
data
,
sizeof
(
stOnFootData
)
)
;
AddChat
(
-
1
,
"%f %f %f"
,
data
.
fMoveSpeed
[
0
]
,
data
.
fMoveSpeed
[
1
]
,
data
.
fMoveSpeed
[
2
]
)
;
}
}
return
true
;
}


P.S. смог решить тем, что хук перенес из отдельного файла в main.cpp. Тогда еще 2 вопроса: как можно это сделать в разных файлах и влияет ли как-то на производительность то, что все в одном файле или разделено на несколько?
создать raknet.h и добавить прототип bool __stdcall onSendPacket(stRakNetHookParams* param);

и подключить этот файл в main.h и raknet.cpp

или вместо .cpp/h юзать .hpp
 
Ответить с цитированием

  #6405  
Старый 19.09.2022, 03:21
ARMOR
Флудер
Регистрация: 02.02.2019
Сообщений: 5,070
С нами: 3831395

Репутация: 183


По умолчанию

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

Знает кто нибудь адрес setPageSize для 0.3 дл?
0x66D10
 
Ответить с цитированием

  #6406  
Старый 19.09.2022, 12:17
вайега52
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами: 2055431

Репутация: 3


По умолчанию

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

как сделать бег к координатам ?
C++:





Код:
void
Camera
::
TurnToCoord
(
Vector3 vecObj
,
float
smooth
)
{
Vector3 playerPos
=
sdk
::
player
::
coordinate
(
)
;
Vector2 ViewAngle
=
sdk
::
camera
::
angle
(
)
;
Vector3 vec
=
vecObj
-
playerPos
;
Vector2 CameraAngle
=
Vector2
(
std
::
atan2
(
-
vec
.
Length2d
(
)
,
vec
.
z
)
*
0.1
,
std
::
atan2
(
-
vec
.
y
,
-
vec
.
x
)
)
;
Vector2 calcAngle
=
(
CameraAngle
-
ViewAngle
)
/
smooth
;
//чем больше смутч, тем плавнее
Utils
::
setCameraAngle
(
ViewAngle
+
calcAngle
)
;
}


Видел эту функцию на другом форуме
 
Ответить с цитированием

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

Репутация: 183


По умолчанию

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

Ку прив, использую plugin-sdk, подскажите пожалуйста, как мне проверить на то, что объект коснулся чего угодно?
У меня обрабатывается это всё чудо в цикле, мне нужно, что-бы объект, когда косается чего-то, происходило действие, в данном случае удаление объекта, использовал z координату и проверял ее с 0.f, но мне кажется, что это неправильно, и я хочу понять, как мне сделать так, что-бы проверялось касание

C++:





Код:
if
(
obj
->
GetPosition
(
)
.
z

TestCollision
(
)
)
{
// some actions...
}

C++:





Код:
kthook
::
kthook_naked hook
{
0x54BCEE
}
;
hook
.
set_cb
(
[
]
(
const
kthook
::
kthook_naked
&
hook
)
{
auto
for_obj
=
reinterpret_cast

(
hook
.
get_context
(
)
.
esi
)
;
auto
with_obj
=
reinterpret_cast

(
hook
.
get_context
(
)
.
edi
)
;
/*
    if (for_obj == my_obj || with_obj == my_obj) {
       
    }
    */
}
)
;
hook
.
install
(
)
;
 
Ответить с цитированием

  #6408  
Старый 22.09.2022, 18:18
Saroking
Новичок
Регистрация: 22.09.2022
Сообщений: 3
С нами: 1918164

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

всем привет,не могу понять как фиксится данная проблема? хочу поставить в ImGui русский язык но u8 не работает:





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

  #6409  
Старый 22.09.2022, 18:43
вайега52
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами: 2055431

Репутация: 3


По умолчанию

Есть ли wiki по функциям сампфункса, как у луа?
 
Ответить с цитированием

  #6410  
Старый 23.09.2022, 10:19
Savchik Blazer
Постоянный
Регистрация: 20.03.2021
Сообщений: 666
С нами: 2711257

Репутация: 83


По умолчанию

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

Есть ли wiki по функциям сампфункса, как у луа?
нет, нету такого есть только уроки https://www.blast.hk/threads/23416/
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.

×

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

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

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

×

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

Сумма USDT:

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

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