PDA

Просмотр полной версии : С/С++ Вопрос - Ответ


Страницы : 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

BlackKnigga
22.11.2017, 12:54
Как прочесть запись в реестре (строку) если пункт с ней не именован?
Везде где учат читать строки у них есть название, так что гугл не помог
Запись приклеил к посту


NULL вместо названия

Alexkrat
24.11.2017, 21:49
https://forum.antichat.xyz/attachments/27168010/
Парни подскажите плиз ,что качать если я хочу писать скрипты для сампа и прочие проги не только на сампец?

Karbun
25.11.2017, 03:36
Как можно реализовать автообновление программы с сервера ( допустим через проверку версии с .txt файла на сервере ). Если можно, киньте пример.

ALF
25.11.2017, 18:21
Как можно реализовать автообновление программы с сервера ( допустим через проверку версии с .txt файла на сервере ). Если можно, киньте пример.


InternetReadFile()

Karbun
25.11.2017, 19:02
InternetReadFile()


А можно поподробнее, как можно выгрузить SF Plugin, удалить его, скачать новый и заменить?

BlackKnigga
25.11.2017, 22:02
А можно поподробнее, как можно выгрузить SF Plugin, удалить его, скачать новый и заменить?


Это неоправданно сложно, лучше просто уведомление об обнове сделать

Karbun
25.11.2017, 22:04
Это неоправданно сложно, лучше просто уведомление об обнове сделать


Я планировал создавать батник, и через него уже производить все процессы.

itsLegend
25.11.2017, 22:44
Я планировал создавать батник, и через него уже производить все процессы.


Обычно, для замены файла, заменяемый файл не должен использоваться каким-либо процессом => тебе придется создавать батник, либо скачивать отдельный плагин, который будет скачивать и заменять файл.

kawa operand
27.11.2017, 19:32
Как загрузить библиотеку в процесс по ее hex коду

BlackKnigga
27.11.2017, 19:51
Как загрузить библиотеку в процесс по ее hex коду


А зачем так изощряться?

Loading a DLL from memory » ~magog/public(https://www.joachim-bauch.de/tutorials/loading-a-dll-from-memory/) (https://www.blast.hk/redirect/aHR0cHM6Ly93d3cuam9hY2hpbS1iYXVjaC5kZS90dXRvcmlhbH MvbG9hZGluZy1hLWRsbC1mcm9tLW1lbW9yeS8)

Можешь посмотреть что нибудь в этом гайде, предварительно загрузив код библиотеки в память каким нибудь VirtualAlloc



Как загрузить библиотеку в процесс по ее hex коду


Мб ещё можно сувать код в файл, сохранять с разрешением длл и грузить в процесс

ALF
28.11.2017, 08:45
Как загрузить библиотеку в процесс по ее hex коду


https://www.mpgh.net/forum/showthread.php?t=1101356 (https://www.blast.hk/redirect/aHR0cHM6Ly93d3cubXBnaC5uZXQvZm9ydW0vc2hvd3RocmVhZC 5waHA_dD0xMTAxMzU2)

2Shae
30.11.2017, 14:35
У кого-то есть нормальный туториал для создание градиентного цвета на плюсах?

Dark_Knight
30.11.2017, 21:05
У кого-то есть нормальный туториал для создание градиентного цвета на плюсах?


Их в гугле овердохуя.

jenekbueno
01.12.2017, 19:55
Приветствую, подскажите пожалуйста параметры для входящего RPC_RequestSpawn, раклоггер не даёт)

нужно выцепить координаты спавна оттуда.

MISTER_GONWIK
01.12.2017, 20:07
Приветствую, подскажите пожалуйста параметры для входящего RPC_RequestSpawn, раклоггер не даёт)
нужно выцепить координаты спавна оттуда.


координаты спавна задаются сервером через SetSpawnInfo

jenekbueno
01.12.2017, 20:12
т.е в реквест спавне в принципе нет параметров? или какие есть?

упд: все разобрался, спасыч за ответ)

ishi
05.12.2017, 01:45
Пытался найти, как установить состояние клавиши, чтобы она считалась приложениями зажатой, но безуспешно.

Пытался найти какой-нибудь аналог функции getAsyncKeyState который устанавливает состояние, а не получает, но безуспешно. Функции что я пробовал "отпускают" клавишу моментально после использования.

Как создать имитацию физически зажатой клавиши -чтобы все приложения их считывающие поверили что она зажата?

Dark_Knight
05.12.2017, 02:19
SendInput не подходит?

ishi
05.12.2017, 02:46
SendInput не подходит?


А вот не знаю ещё, я не разобрался как его использовать.

Вернее, я не разобрался как правильно отправить структуру в структуре, со структурой внутри ._.

Если я просто ставил скобочки и в них, не указывая ни тип, ни название, чередовал нужные значения, то не принимало массивы ( а у меня работа в цикле фор, без массива как бы никак.). А пытаясь как-то озаглавить эти структуры, чтобы в них работали массивы, получал ошибки которые жаловались на попытки озаглавить структуры.

В общем не разобрался. Думал, может иные функции есть ._.

upd: вообще, я пытался отправить структуру не объявляя её, скорее всего это и есть ошибка. В луа же можно было таблицы прямо в функции изображать (во всяком случае в загрузке иника, как заполнение при создании)

Если бы ты мне показал как отослать несколько структур одна в одной, не объявляя их отдельно, было бы очень круто.

Впрочем, информация о том что это невозможно тоже была бы полезна, сделал бы как полагается, с инициализацией.

eiuhuth
05.12.2017, 08:09
Какой offset и размер у структуры stMiscInfo > bClockEnabled?

SR_team
05.12.2017, 09:10
Пытался найти, как установить состояние клавиши, чтобы она считалась приложениями зажатой, но безуспешно.
Пытался найти какой-нибудь аналог функции getAsyncKeyState который устанавливает состояние, а не получает, но безуспешно. Функции что я пробовал "отпускают" клавишу моментально после использования.
Как создать имитацию физически зажатой клавиши -чтобы все приложения их считывающие поверили что она зажата?


https://dl.prime-hack.net/AsiPlugin/AsiPlugin_29.11.2017_3.zip (https://www.blast.hk/redirect/aHR0cHM6Ly9kbC5wcmltZS1oYWNrLm5ldC9Bc2lQbHVnaW4vQX NpUGx1Z2luXzI5LjExLjIwMTdfMy56aXA)

sys/SRKeys - там есть код имитации нажатия клавиши

Camper36
11.12.2017, 08:57
Получил указатель на 99 строку чата , как его прочитать? VS2015 \ DLL библиотека.

BlackKnigga
11.12.2017, 17:26
Получил указатель на 99 строку чата , как его прочитать? VS2015 \ DLL библиотека.


Воспользоваться готовыми структурами сампа

blood
11.12.2017, 18:23
кто нибудь делал патчер?

Не подскажите, с чего начать чтобы его сделать()))

BlackKnigga
11.12.2017, 18:27
кто нибудь делал патчер?
Не подскажите, с чего начать чтобы его сделать()))


Патчер чего?

blood
11.12.2017, 18:43
Патчер чего?


возврата памяти точнее адресов

2Shae
11.12.2017, 18:55
Их в гугле овердохуя.


На плюсы не нашёл ничего. Сложно дать примерчик или же ссылку на твоё "овердохуя"?

Dark_Knight
11.12.2017, 19:03
На плюсы не нашёл ничего. Сложно дать примерчик или же ссылку на твоё "овердохуя"?


30 секунд поиска

How to Create a Linear Gradient Brush (Windows)(https://msdn.microsoft.com/en-us/library/windows/desktop/dd756678(v=vs.85).aspx) (https://www.blast.hk/redirect/aHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicm FyeS93aW5kb3dzL2Rlc2t0b3AvZGQ3NTY2Nzgodj12cy44NSku YXNweA)

DirectXTutorial.com(http://www.directxtutorial.com/Lesson.aspx?lessonid=9-4-4) (https://www.blast.hk/redirect/aHR0cDovL3d3dy5kaXJlY3R4dHV0b3JpYWwuY29tL0xlc3Nvbi 5hc3B4P2xlc3NvbmlkPTktNC00)

eiuhuth
12.12.2017, 05:56
можно ли как нибудь отследить какие адреса меняет (или нопит) samp.dll в gta_sa.exe при заходе на сервер?

iAmerican
14.12.2017, 21:14
Почему выдает какие то жуткие числа? Не собейт. И это идентично функции PEDSELF->GetPosition() ? Которая в SF.

Ниже функа рабочая.

Вообщем мне надо сравнивать мои координаты и координаты игроков в стриме , ну и выдавать ближайщего ко мне по дистанции. Но если сажусь в кар , это не работает(

Можно это вообще организовать с помощью структур , или надо подключать CPed ещё?

Или это чуть другое , не очень понимаю с этими матрицами.

C++:






[
20
:
09
:
13
]
0.000000
-
0.000000
88603735423488851075027746212343614186660369281342 81830546756667434237182274693891083415098934269354 93491309880923201857534948968510119855140827330019 46333361503985920724537560737017568135505769628248 85149621290015516378865438532387728927975122090896 98207891456.000000
[
20
:
09
:
13
]
0.000000
-
0.000000
88603735423488851075027746212343614186660369281342 81830546756667434237182274693891083415098934269354 93491309880923201857534948968510119855140827330019 46333361503985920724537560737017568135505769628248 85149621290015516378865438532387728927975122090896 98207891456.000000




C++:






float
*
xX
;
float
*
yY
;
float
*
zZ
;
try
{
xX
=
&
g_Players
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
matrix
[
4
*
3
]
;
yY
=
&
g_Players
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
matrix
[
4
*
3
+
1
]
;
zZ
=
&
g_Players
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
matrix
[
4
*
3
+
2
]
;
addMessageToChat
(
-
1
,
"%f %f %f"
,
&
xX
,
&
yY
,
&
zZ
)
;
}
catch
(
int
f
)
{
addMessageToChat
(
-
1
,
"%i"
,
f
)
;
}




C++:





[CODE]
short
GetNearestPlayerID
(
)
{
//CVector *pos, *spos; // pos - позиция игрока, spos - наша позиция
float
distance
;
// дистанция
float
testing
=
0xFFFFFFFF
;
uint16_t
nearestId
=
-
1
;
for
(
uint16_t
it
=
0
;
it

iIsListed
[
it
]
!=
1
)
continue
;
if
(
g_Players
->
pRemotePlayer
[
it
]
==
NULL
)
continue
;
if
(
(
g_Players
->
pRemotePlayer
[
it
]
->
pPlayerData
==
NULL
||
g_Players
->
pRemotePlayer
[
it
]
->
pPlayerData
->
pSAMP_Actor
==
NULL
)
)
continue
;
if
(
g_Players
->
pRemotePlayer
[
it
]
->
pPlayerData
->
iShowNameTag
!=
0
)
{
distance
=
GetDistanceXYZ
(
g_Players
->
pRemotePlayer
[
it
]
->
pPlayerData
->
fOnFootPos
[
0
]
,
g_Players
->
pRemotePlayer
[
it
]
->
pPlayerData
->
fOnFootPos
[
1
]
,
g_Players
->
pRemotePlayer
[
it
]
->
pPlayerData
->
fOnFootPos
[
2
]
,
g_Players
->
pLocalPlayer
->
onFootData
.
fPosition
[
0
]
,
g_Players
->
pLocalPlayer
->
onFootData
.
fPosition
[
1
]
,
g_Players
->
pLocalPlayer
->
onFootData
.
fPosition
[
2
]
)
;
// сравниваем
if
(
distance

BlackKnigga
14.12.2017, 21:18
Почему выдает какие то жуткие числа? Не собейт. И это идентично функции PEDSELF->GetPosition() ? Которая в SF.
Или это чуть другое , не очень понимаю с этими матрицами.

C++:






[
20
:
09
:
13
]
0.000000
-
0.000000
88603735423488851075027746212343614186660369281342 81830546756667434237182274693891083415098934269354 93491309880923201857534948968510119855140827330019 46333361503985920724537560737017568135505769628248 85149621290015516378865438532387728927975122090896 98207891456.000000
[
20
:
09
:
13
]
0.000000
-
0.000000
88603735423488851075027746212343614186660369281342 81830546756667434237182274693891083415098934269354 93491309880923201857534948968510119855140827330019 46333361503985920724537560737017568135505769628248 85149621290015516378865438532387728927975122090896 98207891456.000000




C++:






float
*
xX
;
float
*
yY
;
float
*
zZ
;
try
{
xX
=
&
g_Players
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
matrix
[
4
*
3
]
;
yY
=
&
g_Players
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
matrix
[
4
*
3
+
1
]
;
zZ
=
&
g_Players
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
matrix
[
4
*
3
+
2
]
;
addMessageToChat
(
-
1
,
"%f %f %f"
,
&
xX
,
&
yY
,
&
zZ
)
;
}
catch
(
int
f
)
{
addMessageToChat
(
-
1
,
"%i"
,
f
)
;
}





Ты не разыменовываешь, а берешь ссылку

И зачем ты вообще юзаешь указатели?

iAmerican
14.12.2017, 21:22
Ты не разыменовываешь, а берешь ссылку

И зачем ты вообще юзаешь указатели?


Если делать так , то вообще крашит моментально . Прочти пост повыше, я там чуть дополнил

C++:






float
xX
;
float
yY
;
float
zZ
;
try
{
xX
=
g_Players
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
matrix
[
4
*
3
]
;
yY
=
g_Players
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
matrix
[
4
*
3
+
1
]
;
zZ
=
g_Players
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
matrix
[
4
*
3
+
2
]
;
addMessageToChat
(
-
1
,
"%f %f %f"
,
xX
,
yY
,
zZ
)
;
}
catch
(
int
f
)
{
addMessageToChat
(
-
1
,
"%i"
,
f
)
;
}

BlackKnigga
14.12.2017, 21:27
Если делать так , то вообще крашит моментально . Прочти пост повыше, я там чуть дополнил

C++:






float
xX
;
float
yY
;
float
zZ
;
try
{
xX
=
g_Players
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
matrix
[
4
*
3
]
;
yY
=
g_Players
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
matrix
[
4
*
3
+
1
]
;
zZ
=
g_Players
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
matrix
[
4
*
3
+
2
]
;
addMessageToChat
(
-
1
,
"%f %f %f"
,
xX
,
yY
,
zZ
)
;
}
catch
(
int
f
)
{
addMessageToChat
(
-
1
,
"%i"
,
f
)
;
}





Что то в этой цепочке может быть нулем.

И если садишься в кар то и координаты надо брать кара.

iAmerican
14.12.2017, 21:31
Что то в этой цепочке может быть нулем.
И если садишься в кар то и координаты надо брать кара.


В каком смысле нулем?

BlackKnigga
14.12.2017, 21:34
В каком смысле нулем?


Не хранить в себе адрес элемента на который должен указывать, грубо говоря.

В твоём первом посте в функции есть проверка каждого элемента на валидность.

iAmerican
14.12.2017, 21:37
Не хранить в себе адрес элемента на который должен указывать, грубо говоря.
В твоём первом посте в функции есть проверка каждого элемента на валидность.


Понял , только как может быть что координата будет равно нулю?)) Че то бред какой то , но щас проверю

BlackKnigga
14.12.2017, 21:44
Понял , только как может быть что координата будет равно нулю?)) Че то бред какой то , но щас проверю


Не координата, а какой нибудь элемент. Короче если стоишь - юзай онфут, в машине - инкар

san0
14.12.2017, 21:45
Понял , только как может быть что координата будет равно нулю?)) Че то бред какой то , но щас проверю


Он говорит про разыменование нулевого указателя и, как следствие, неопределённое поведение.

vasiliy130198
15.12.2017, 17:07
Подскажите пожалуйста.. Использую imGUI. Возможно ли с помощью него рисовать текст и фигуры вне самого окна? Вчера скачал проект и, изучив его немного, думаю что нельзя так..

Если это так, то что тогда можно использовать для этого дела? Если есть что-то по типу этого imGUI -- вообще прекрасно)

BlackKnigga
15.12.2017, 17:51
Подскажите пожалуйста.. Использую imGUI. Возможно ли с помощью него рисовать текст и фигуры вне самого окна? Вчера скачал проект и, изучив его немного, думаю что нельзя так..
Если это так, то что тогда можно использовать для этого дела? Если есть что-то по типу этого imGUI -- вообще прекрасно)


DirectX

CleanLegend
15.12.2017, 19:23
Подскажите пожалуйста.. Использую imGUI. Возможно ли с помощью него рисовать текст и фигуры вне самого окна? Вчера скачал проект и, изучив его немного, думаю что нельзя так..
Если это так, то что тогда можно использовать для этого дела? Если есть что-то по типу этого imGUI -- вообще прекрасно)


Функция:

C++:






void
DrawRect
(
LPDIRECT3DDEVICE9 Device_t
,
int
X
,
int
Y
,
int
L
,
int
H
,
D3DCOLOR color
)
{
D3DRECT rect
=
{
X
,
Y
,
X
+
L
,
Y
+
H
}
;
Device_t
->
Clear
(
1
,
&
rect
,
D3DCLEAR_TARGET
,
color
,
0
,
0
)
;
}




Закидываешь туда где рисуешь

C++:






DrawRect
(
pDevice
,
X
,
Y
,
10
,
10
,
0xFF00FF00
)
;

_Vine_
16.12.2017, 19:20
В чем тут проблема?

Переделал код из SF API в консольное приложение C++, в SF API не работает вообще, а в консольном приложении ошибку выбивает.

Не могу вернуть значение массива по указателю, плохо тему указателей и ссылок понял.

Код:




C++:





[CODE]
#include "stdafx.h"
#include
using
namespace
std
;
void
Test
(
char
*
&
abc
)
{
abc
=
"YOOB"
;
}
void
main
(
)
{
char
*
abc
=
(
char
*
)
malloc
(
256
)
;
Test
(
abc
)
;
cout





xbKTSU6.png_Vine_ · 16 Дек 2017 в 18:20' data-fancybox="lb-post-171952" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="/proxy.php?image=https%3A%2F%2Fi.imgur.com%2FxbKTSU 6.png&hash=343e54b943f9a65372cfe28f61def2a3" style="cursor: pointer;" title="xbKTSU6.png">
https://i.imgur.com/xbKTSU6.png

kawa operand
16.12.2017, 20:13
C++:





[CODE]
void
foo
(
char
*
&
message
)
{
message
=
"hello world"
;
}
int
main
(
)
{
char
*
buffMessage
;
foo
(
buffMessage
)
;
std
::
cout



зы: за using namespace std; пальцы отрубают

Dark_Knight
16.12.2017, 21:16
зы: за using namespace std; пальцы отрубают


Схуяли? И зачем юзать чары, когда есть std::string?

kawa operand
16.12.2017, 22:11
Схуяли


Зачем подключать все пространство имен для одного cout ?



И зачем юзать чары


он просил пример с чар массивом

_Vine_
16.12.2017, 23:00
[QUOTE="kewa opcode"]

C++:





[CODE]
void
foo
(
char
*
&
message
)
{
message
=
"hello world"
;
}
int
main
(
)
{
char
*
buffMessage
;
foo
(
buffMessage
)
;
std
::
cout

vasiliy130198
17.12.2017, 06:03
Как в ImGUI рендерить картинку? Поиск "ImGui::Image" в поисковике ни к чему не привёл(

И, если можно пожалуйста, рендер этой же картинки уже средствами DirectX (чтобы она была не в окне imgui, а в любом месте на экране) :-[

Думаю хоть какой-то пример сможет помочь не только мне

Спасибо заранее) :thank_you:

CleanLegend
17.12.2017, 14:21
Как в ImGUI рендерить картинку? Поиск "ImGui::Image" в поисковике ни к чему не привёл(
И, если можно пожалуйста, рендер этой же картинки уже средствами DirectX (чтобы она была не в окне imgui, а в любом месте на экране) :-[
Думаю хоть какой-то пример сможет помочь не только мне
Спасибо заранее) :thank_you:


Перегоняешь картинку в массив байт, задаешь переменную, инициализируешь, рисуешь

Dark_Knight
17.12.2017, 15:11
Как в ImGUI рендерить картинку? Поиск "ImGui::Image" в поисковике ни к чему не привёл(
И, если можно пожалуйста, рендер этой же картинки уже средствами DirectX (чтобы она была не в окне imgui, а в любом месте на экране) :-[
Думаю хоть какой-то пример сможет помочь не только мне
Спасибо заранее) :thank_you:



C++:






stTextureInfo
*
texture
;
ImGui
::
Image
(
(
void
*
)
texture
->
pTexture
,
ImVec2
(
40
,
40
)
)
;




Конечно переменная texture должна быть иницилизированная

_Vine_
17.12.2017, 20:31
Как вернуть значение из потока?

Например:

C++:






void
getText
(
int
*
&
val
)
{
*
val
=
5
;
}
void
main
(
)
{
int
val
=
2
;
DeleteObject
(
CreateThread
(
0
,
0
,
(
LPTHREAD_START_ROUTINE
)
getText
,
&
val
,
0
,
0
)
)
;
printf
(
"%d\n"
,
val
)
;
}




Должно вывести в консоль 5, но выводит 2.

kawa operand
17.12.2017, 20:35
val = 5

ALF
17.12.2017, 20:44
Как вернуть значение из потока?
Например:

C++:






void
getText
(
int
*
&
val
)
{
*
val
=
5
;
}
void
main
(
)
{
int
val
=
2
;
DeleteObject
(
CreateThread
(
0
,
0
,
(
LPTHREAD_START_ROUTINE
)
getText
,
&
val
,
0
,
0
)
)
;
printf
(
"%d\n"
,
val
)
;
}




Должно вывести в консоль 5, но выводит 2.


вообще какой то бред делаешь.

vasiliy130198
17.12.2017, 20:54
C++:






stTextureInfo
*
texture
;
ImGui
::
Image
(
(
void
*
)
texture
->
pTexture
,
ImVec2
(
40
,
40
)
)
;




Конечно переменная texture должна быть иницилизированная


stTextureInfo - это структура внутри SF, который я не использую в своем проекте.. Есть вариант без него показать картинку через ImGui::Image из папки гта?

BlackKnigga
17.12.2017, 21:12
stTextureInfo - это структура внутри SF, который я не использую в своем проекте.. Есть вариант без него показать картинку через ImGui::Image из папки гта?


IDirect3DTexture9



Как вернуть значение из потока?
Например:

C++:






void
getText
(
int
*
&
val
)
{
*
val
=
5
;
}
void
main
(
)
{
int
val
=
2
;
DeleteObject
(
CreateThread
(
0
,
0
,
(
LPTHREAD_START_ROUTINE
)
getText
,
&
val
,
0
,
0
)
)
;
printf
(
"%d\n"
,
val
)
;
}




Должно вывести в консоль 5, но выводит 2.


Поток может выполнится и после printf'а. И передаешь ссылку неправильно. И хер пойми зачем какой то DeleteObject юзаешь.

Вообще используй глобалки и не парься.

BlackKnigga
17.12.2017, 21:33
C++:






pSAMP
=
new
gg
(
GetModuleHandleA
(
"samp.dll"
)
)
;




При выгрузке из игры dll, из за pSAMP крашит, как правильно выгрузить?


И что можно понять по твоей строчке?

Какой dll? Что в gg?

BlackKnigga
17.12.2017, 21:41
gg *pSAMP = new gg(GetModuleHandleA("samp.dll"));;
мой хак в формате dll, gg - класс со структурами.
я хочу его выгрузить по нажатию клавиши


Из твоей немногословности могу посоветовать только delete pSAMP в DLL_PROCESS_DETACH

BlackKnigga
17.12.2017, 22:01
@lol123 (https://www.blast.hk/members/268/)

Вообще ничего не дал мне этот отрывок.

Как тебе помочь если ты не можешь код дать? Он тут энивей никому не нужен

jenekbueno
18.12.2017, 00:30
как получить ид машины на которой стоишь?

пытался в исходящем ID_PLAYER_SYNC хукнуть sSurfingVehicleID, но там всегда значение равно нулю.

mkrn
18.12.2017, 01:59
как получить ид машины на которой стоишь?
пытался в исходящем ID_PLAYER_SYNC хукнуть sSurfingVehicleID, но там всегда значение равно нулю.



SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.sSurfingVehicleID;

jenekbueno
18.12.2017, 12:26
да, все понял теперь, если за рулем тачки на которой стоишь никто не сидит, то будет всегда 0 равняться, а если уже кто то сел, то все как надо отображает.

vasiliy130198
27.12.2017, 07:15
При рендере (directX) двух и больше картинок начинает зависать игра.. Как можно этого избежать, если мне нужно будет одновременно рендерить 3+ штук?

Пытался весь код из ф-ции Present перекинуть в отдельную, создаваемую потоком -- в игре ни одна не рендерится..

BlackKnigga
27.12.2017, 09:47
При рендере (directX) двух и больше картинок начинает зависать игра.. Как можно этого избежать, если мне нужно будет одновременно рендерить 3+ штук?
Пытался весь код из ф-ции Present перекинуть в отдельную, создаваемую потоком -- в игре ни одна не рендерится..


Криво рисуешь мб.



Пытался весь код из ф-ции Present перекинуть в отдельную, создаваемую потоком -- в игре ни одна не рендерится..


Так вообще нельзя делать, все рендерится только между BeginScene и EndScene.

SR_team
27.12.2017, 11:03
При рендере (directX) двух и больше картинок начинает зависать игра.. Как можно этого избежать, если мне нужно будет одновременно рендерить 3+ штук?
Пытался весь код из ф-ции Present перекинуть в отдельную, создаваемую потоком -- в игре ни одна не рендерится..


Плюсую ответ книги. Ты делаешь что-то не так. У меня каждый asi плагин рисует минимум по 5 изображений и норм

vasiliy130198
28.12.2017, 09:16
Плюсую ответ книги. Ты делаешь что-то не так. У меня каждый asi плагин рисует минимум по 5 изображений и норм


Тогда если не секрет, как именно рисуется изображение через сам SF? Через другой поток, или в основном -- перед вызовом EndScene() ?

Вот как раз по такому примеру, как вот тут: SA-MP-Plus/CD3D9DeviceProxy.cpp at master · Hual/SA-MP-Plus · GitHub(https://github.com/Hual/SA-MP-Plus/blob/master/Client/Proxy/CD3D9DeviceProxy.cpp#L222) (https://github.com/Hual/SA-MP-Plus/blob/master/Client/Proxy/CD3D9DeviceProxy.cpp#L222)

... нужно делать, чтобы не лагала игра при рендере нескольких изображений? :scratch:

(Интересует где именно нужно инициализировать текстуру, и где рисовать. Инициализировать нужно же каждый раз, и после рисовать, так?)

Главное ответьте пожалуйста насчёт ссылки выше -- там правильная реализация рендера, как говорили выше, или не совсем?

Заранее спасибо) :drink:

SR_team
28.12.2017, 11:26
Тогда если не секрет, как именно рисуется изображение через сам SF? Через другой поток, или в основном -- перед вызовом EndScene() ?
Вот как раз по такому примеру, как вот тут: SA-MP-Plus/CD3D9DeviceProxy.cpp at master · Hual/SA-MP-Plus · GitHub(https://github.com/Hual/SA-MP-Plus/blob/master/Client/Proxy/CD3D9DeviceProxy.cpp#L222) (https://github.com/Hual/SA-MP-Plus/blob/master/Client/Proxy/CD3D9DeviceProxy.cpp#L222)
... нужно делать, чтобы не лагала игра при рендере нескольких изображений? :scratch:
(Интересует где именно нужно инициализировать текстуру, и где рисовать. Инициализировать нужно же каждый раз, и после рисовать, так?)

Главное ответьте пожалуйста насчёт ссылки выше -- там правильная реализация рендера, как говорили выше, или не совсем?
Заранее спасибо) :drink:


Инициализируй текстуру в конструкторе и рисуй в Present

andrejmalvaro
28.12.2017, 18:28
есть ли RPC который уведомляет игрока о смене виртуального мира?

BlackKnigga
28.12.2017, 20:39
есть ли RPC который уведомляет игрока о смене виртуального мира?


В R2 вроде появился, но это не точно

_Vine_
29.12.2017, 00:07
Как использовать этот опкод в SF API?

CLEO:






0B21:
samp is_chat_opened

randazzo
29.12.2017, 00:17
Как использовать этот опкод в SF API?

CLEO:






0B21:
samp is_chat_opened






C++:






if
(
SF
->
getSAMP
(
)
->
getInput
(
)
->
iInputEnabled
)
{
}

vasiliy130198
29.12.2017, 08:08
Можете пожалуйста подсказать названия проектов, в которые встроен рендер текста и изображений? Исходники которых где-то есть, конечно же)

Из всех найденных проектов на данный момент у меня никак не получается красиво вырезать его в свой ;(:wall:

Что еще вообще есть, кроме собейтов, SAMP+ и Asi-Plugin..?

Или может у кого-то завалялся написанный проект с рендером, то можно в его копии удалить всё кроме нужных мне файлов, и поделиться архивчиком.. Буду очень благодарен за это

CleanLegend
29.12.2017, 08:19
Можете пожалуйста подсказать названия проектов, в которые встроен рендер текста и изображений? Исходники которых где-то есть, конечно же)
Из всех найденных проектов на данный момент у меня никак не получается красиво вырезать его в свой ;(:wall:
Что еще вообще есть, кроме собейтов, SAMP+ и Asi-Plugin..?

Или может у кого-то завалялся написанный проект с рендером, то можно в его копии удалить всё кроме нужных мне файлов, и поделиться архивчиком.. Буду очень благодарен за это


Найди любой класс d3d9 render в интернете, по изучай их и попытайся подключить.

MISTER_GONWIK
29.12.2017, 09:49
В R2 вроде появился, но это не точно


в 0.3.8 только появилось

vasiliy130198
30.12.2017, 06:05
Нашел здесь на форуме функцию определения игровых координат для каждого экрана компа:

C++:





[CODE]
int
resolution
[
2
]
;
SF
->
getGame
(
)
->
getScreenResolution
(
&
resolution
[
0
]
,
&
resolution
[
1
]
)
;
kX
=
resolution
[
0
]
/
640
;
kY
=
resolution
[
1
]
/
448
;
SF
->
getRender
(
)
->
DrawBorderedBox
(
pos1
*
kX
,
pos2
*
kY
,
size1
*
kX
,
size2
*
kY
,
D3DCOLOR_ARGB
(
255
,
0
,
0
,
0
)
,
3
,
D3DCOLOR_ARGB
(
50
,
255
,
255
,
255
)
)
;
// 0



За kX и kY понятно, это int (так же как и resolution[2]).. А откуда именно берётся pos1 и pos2 тогда?

И эта функция определяет одинаково пропорциональные координаты на любом разрешении экрана, так? Тоесть при разрешении 1360х768, и 1024x768 точка будет по центру экрана всегда.

CleanLegend
30.12.2017, 12:08
[QUOTE="vasiliy130198"]

Нашел здесь на форуме функцию определения игровых координат для каждого экрана компа:

C++:





[CODE]
int
resolution
[
2
]
;
SF
->
getGame
(
)
->
getScreenResolution
(
&
resolution
[
0
]
,
&
resolution
[
1
]
)
;
kX
=
resolution
[
0
]
/
640
;
kY
=
resolution
[
1
]
/
448
;
SF
->
getRender
(
)
->
DrawBorderedBox
(
pos1
*
kX
,
pos2
*
kY
,
size1
*
kX
,
size2
*
kY
,
D3DCOLOR_ARGB
(
255
,
0
,
0
,
0
)
,
3
,
D3DCOLOR_ARGB
(
50
,
255
,
255
,
255
)
)
;
// 0

SR_team
30.12.2017, 12:17
Можете пожалуйста подсказать названия проектов, в которые встроен рендер текста и изображений? Исходники которых где-то есть, конечно же)
Из всех найденных проектов на данный момент у меня никак не получается красиво вырезать его в свой ;(:wall:
Что еще вообще есть, кроме собейтов, SAMP+ и Asi-Plugin..?

Или может у кого-то завалялся написанный проект с рендером, то можно в его копии удалить всё кроме нужных мне файлов, и поделиться архивчиком.. Буду очень благодарен за это


Prime-Hack | AsiPlugin(https://dl.prime-hack.net/AsiPlugin/) (https://www.blast.hk/redirect/aHR0cHM6Ly9kbC5wcmltZS1oYWNrLm5ldC9Bc2lQbHVnaW4v)

LUCHARE
31.12.2017, 02:25
что делать если аси лоадер не хочет загружать плагин?

Dark_Knight
31.12.2017, 02:30
что делать если аси лоадер не хочет загружать плагин?


Аси уверен, что не кривой?

LUCHARE
31.12.2017, 03:44
Аси уверен, что не кривой?


Тоже так думал, но проблема не исчезла после его переустановки.

Да и другие плагины отлично работают.

И мой работает, но только если его подгружать через СЕ или другие инжекторы

vasiliy130198
31.12.2017, 06:39
Можно ли с помощью ImGUI в окне сделать нечто схожее с тем, что на скрине ниже?

Тоесть чтобы в создаваемом цветном окне сначала показать текстуру как backgroundimage, а после поверх неё писать текст, показать горизонтальную линию, добавить другую картинку (уже НЕ backgroundimage), и так далее. В ImGUI встретил только функцию ImGui::Image, но она не подойдёт мне ведь..

Если в ImGUI такое невозможно сделать, то какие тогда есть другие похожие GUI либы, чтобы реализовать это? (gwen например, или другие)

https://pp.userapi.com/c831409/v831409493/2d756/XP8M2aDnFYQ.jpg

LUCHARE
31.12.2017, 09:01
Можно ли с помощью ImGUI в окне сделать нечто схожее с тем, что на скрине ниже?
Тоесть чтобы в создаваемом цветном окне сначала показать текстуру как backgroundimage, а после поверх неё писать текст, показать горизонтальную линию, добавить другую картинку (уже НЕ backgroundimage), и так далее. В ImGUI встретил только функцию ImGui::Image, но она не подойдёт мне ведь..

Если в ImGUI такое невозможно сделать, то какие тогда есть другие похожие GUI либы, чтобы реализовать это? (gwen например, или другие)

https://pp.userapi.com/c831409/v831409493/2d756/XP8M2aDnFYQ.jpg



Рисуешь прозрачное окно без заголовка по размеру текстуры

Рисуешь текстуру

Рисуешь текст

Риcуешь сепаратор

vasiliy130198
31.12.2017, 10:24
Рисуешь прозрачное окно без заголовка по размеру текстуры

Рисуешь текстуру

Рисуешь текст

Риcуешь сепаратор




вот такое выходит, как на скрине..

код такой:

C++:






IDirect3DTexture9
*
Texture
;
D3DXCreateTextureFromFileA
(
g_pd3dDevice
,
"bg-ny-snow3.png"
,
&
Texture
)
;
{
static
float
f
=
0.0f
;
ImGuiWindowFlags window_flags
=
0
;
window_flags
|=
ImGuiWindowFlags_NoTitleBar
;
window_flags
|=
ImGuiWindowFlags_ShowBorders
;
window_flags
|=
ImGuiWindowFlags_NoScrollbar
;
window_flags
|=
ImGuiWindowFlags_NoCollapse
;
window_flags
|=
ImGuiWindowFlags_MenuBar
;
ImGui
::
Begin
(
u8
"Проверка"
,
&
bla
,
ImVec2
(
0
,
0
)
,
0.3f
,
window_flags
)
;
ImGui
::
Text
(
u8
"Привет, мир!"
)
;
ImGui
::
Image
(
Texture
,
ImVec2
(
200
,
200
)
)
;
ImGui
::
Text
(
u8
"123"
)
;
ImGui
::
Separator
(
)
;
ImGui
::
End
(
)
;
}




https://pp.userapi.com/c834403/v834403670/6e901/p9a5Rw32Lp0.jpg

Текст сейчас ниже и выше самой картинки пишется, а мне нужно наоборот

MISTER_GONWIK
31.12.2017, 10:34
вот такое выходит, как на скрине..
код такой:

C++:






IDirect3DTexture9
*
Texture
;
D3DXCreateTextureFromFileA
(
g_pd3dDevice
,
"bg-ny-snow3.png"
,
&
Texture
)
;
{
static
float
f
=
0.0f
;
ImGuiWindowFlags window_flags
=
0
;
window_flags
|=
ImGuiWindowFlags_NoTitleBar
;
window_flags
|=
ImGuiWindowFlags_ShowBorders
;
window_flags
|=
ImGuiWindowFlags_NoScrollbar
;
window_flags
|=
ImGuiWindowFlags_NoCollapse
;
window_flags
|=
ImGuiWindowFlags_MenuBar
;
ImGui
::
Begin
(
u8
"Проверка"
,
&
bla
,
ImVec2
(
0
,
0
)
,
0.3f
,
window_flags
)
;
ImGui
::
Text
(
u8
"Привет, мир!"
)
;
ImGui
::
Image
(
Texture
,
ImVec2
(
200
,
200
)
)
;
ImGui
::
Text
(
u8
"123"
)
;
ImGui
::
Separator
(
)
;
ImGui
::
End
(
)
;
}




https://pp.userapi.com/c834403/v834403670/6e901/p9a5Rw32Lp0.jpg

Текст сейчас ниже и выше самой картинки пишется, а мне нужно наоборот



ты типа бесконечно вызываешь D3DXCreateTextureFromFileA?

LUCHARE
31.12.2017, 10:36
вот такое выходит, как на скрине..
код такой:

C++:






IDirect3DTexture9
*
Texture
;
D3DXCreateTextureFromFileA
(
g_pd3dDevice
,
"bg-ny-snow3.png"
,
&
Texture
)
;
{
static
float
f
=
0.0f
;
ImGuiWindowFlags window_flags
=
0
;
window_flags
|=
ImGuiWindowFlags_NoTitleBar
;
window_flags
|=
ImGuiWindowFlags_ShowBorders
;
window_flags
|=
ImGuiWindowFlags_NoScrollbar
;
window_flags
|=
ImGuiWindowFlags_NoCollapse
;
window_flags
|=
ImGuiWindowFlags_MenuBar
;
ImGui
::
Begin
(
u8
"Проверка"
,
&
bla
,
ImVec2
(
0
,
0
)
,
0.3f
,
window_flags
)
;
ImGui
::
Text
(
u8
"Привет, мир!"
)
;
ImGui
::
Image
(
Texture
,
ImVec2
(
200
,
200
)
)
;
ImGui
::
Text
(
u8
"123"
)
;
ImGui
::
Separator
(
)
;
ImGui
::
End
(
)
;
}




https://pp.userapi.com/c834403/v834403670/6e901/p9a5Rw32Lp0.jpg

Текст сейчас ниже и выше самой картинки пишется, а мне нужно наоборот


ImGui::SetCursorPos для текста попробуй

kawa operand
31.12.2017, 10:45
Тоже так думал, но проблема не исчезла после его переустановки.
Да и другие плагины отлично работают.
И мой работает, но только если его подгружать через СЕ или другие инжекторы


у меня такое уже было, это зависит от кода, а не аси лоадера

кидай код скажу в чем дело

upd: быстрее блятб

LUCHARE
31.12.2017, 10:58
у меня такое уже было, это зависит от кода, а не аси лоадера
кидай код скажу в чем дело
upd: быстрее блятб



C++:






#include
LONG PrevWndProc
=
NULL
;
LRESULT CALLBACK
myWndProc
(
HWND hWnd
,
UINT uMsg
,
WPARAM wParam
,
LPARAM lParam
)
{
if
(
uMsg
==
WM_KEYUP
&&
wParam
==
VK_F11
)
{
MessageBoxA
(
NULL
,
"u are retard"
,
"lel"
,
MB_OK
)
;
// тут типо супер секретный код
}
return
CallWindowProcA
(
(
WNDPROC
)
PrevWndProc
,
hWnd
,
uMsg
,
wParam
,
lParam
)
;
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReason
,
LPVOID lpvReserved
)
{
if
(
dwReason
==
DLL_PROCESS_ATTACH
)
{
PrevWndProc
=
SetWindowLongA
(
FindWindowA
(
NULL
,
"GTA: San Andreas"
)
,
GWL_WNDPROC
,
(
LONG
)
myWndProc
)
;
}
if
(
dwReason
==
DLL_PROCESS_DETACH
)
{
SetWindowLongA
(
FindWindowA
(
NULL
,
"GTA: San Andreas"
)
,
GWL_WNDPROC
,
PrevWndProc
)
;
}
return
TRUE
;
}

kawa operand
31.12.2017, 11:05
он то работает, но до загрузки сампа

ибо после загрузки сампа название окна меняется на GTA:SA:MP тут короче такую ***ню делай

создавай асинхронный поток, и в нем в цикле проверяй равенство stSAMP с нулем, если не равны - самп загружен

LUCHARE
31.12.2017, 11:06
он то работает, но до загрузки сампа
ибо после загрузки сампа название окна меняется на GTA:SA:MP тут короче такую ***ню делай
создавай асинхронный поток, и в нем в цикле проверяй равенство stSAMP с нулем, если не равны - самп загружен


Я в одиночке его запускаю, лол

kawa operand
31.12.2017, 11:18
ну тогда хезе

мб оно и работает, попробуй на другую кнопку сделать

SR_team
31.12.2017, 11:52
C++:






#include
LONG PrevWndProc
=
NULL
;
LRESULT CALLBACK
myWndProc
(
HWND hWnd
,
UINT uMsg
,
WPARAM wParam
,
LPARAM lParam
)
{
if
(
uMsg
==
WM_KEYUP
&&
wParam
==
VK_F11
)
{
MessageBoxA
(
NULL
,
"u are retard"
,
"lel"
,
MB_OK
)
;
// тут типо супер секретный код
}
return
CallWindowProcA
(
(
WNDPROC
)
PrevWndProc
,
hWnd
,
uMsg
,
wParam
,
lParam
)
;
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReason
,
LPVOID lpvReserved
)
{
if
(
dwReason
==
DLL_PROCESS_ATTACH
)
{
PrevWndProc
=
SetWindowLongA
(
FindWindowA
(
NULL
,
"GTA: San Andreas"
)
,
GWL_WNDPROC
,
(
LONG
)
myWndProc
)
;
}
if
(
dwReason
==
DLL_PROCESS_DETACH
)
{
SetWindowLongA
(
FindWindowA
(
NULL
,
"GTA: San Andreas"
)
,
GWL_WNDPROC
,
PrevWndProc
)
;
}
return
TRUE
;
}





плагины загружаются, когда еще нет окна игры, а ты ищешь HWND по окну.

LUCHARE
31.12.2017, 13:13
плагины загружаются, когда еще нет окна игры, а ты ищешь HWND по окну.


т.е мне создавать поток, который будет искать окно игры?

CarLCas
31.12.2017, 13:38
т.е мне создавать поток, который будет искать окно игры?


Можно получить HWND по адресу 0xC97C1C. Если не нулевой значит окно есть и ты получишь его идентификатор.

vasiliy130198
31.12.2017, 19:30
ты типа бесконечно вызываешь D3DXCreateTextureFromFileA?


конечно нет) я знаю об этой проблеме, но сейчас у меня был вопрос насчет картинки, чтобы протестить. Потом конечно же я поправлю этот вызов бесконечный

_Vine_
02.01.2018, 02:52
Как использовать это в SF API?

Код:






0C81: samp force_vehicle_sync 11@

randazzo
02.01.2018, 03:08
Как использовать это в SF API?

Код:






0C81: samp force_vehicle_sync 11@





прежде чем писать, не пробовал искать?

SF->getSAMP()->getPlayers()->pLocalPlayer->ForceSendVehicleSync(carid);

_Vine_
02.01.2018, 03:32
Пробовал, не нашел, спасибо большое)

Как использовать этот опкод в SF API.?

CLEO:






0ADB:
0@v
= car_model
#LANDSTAL
name

BlackKnigga
02.01.2018, 23:44
Как использовать этот опкод в SF API.?

CLEO:






0ADB:
0@v
= car_model
#LANDSTAL
name





MTA/CModelInfoSA.cpp at dcc33107508b5edbff151659b7d52365f60c50b1 · SkyFire/MTA · GitHub(https://github.com/SkyFire/MTA/blob/dcc33107508b5edbff151659b7d52365f60c50b1/MTA10/game_sa/CModelInfoSA.cpp#L276) (https://github.com/SkyFire/MTA/blob/dcc33107508b5edbff151659b7d52365f60c50b1/MTA10/game_sa/CModelInfoSA.cpp#L276)

ARRAY_ModelInfo и FUNC_CText_Get возьми из хедера.

m_dwModelID на ид модели машины

2Shae
03.01.2018, 14:46
Вобщем, возможно ли сделать так, чтобы рендерилась часть чего-либо (линия/прямоугльник и т.д.), в зависимости от видимости тела другого игрока (лишь часть его тела видно за зданием, к примеру)?

CleanLegend
03.01.2018, 15:11
Вобщем, возможно ли сделать так, чтобы рендерилась часть чего-либо (линия/прямоугльник и т.д.), в зависимости от видимости тела другого игрока (лишь часть его тела видно за зданием, к примеру)?


да, проверяй отдельно каждую кость

NarutoUA
03.01.2018, 15:13
Там около 20 костей в игре, допустим он сократит их до 7, всё равно фпс будет жрать неистово

CleanLegend
03.01.2018, 15:39
Там около 20 костей в игре, допустим он сократит их до 7, всё равно фпс будет жрать неистово


Как вариант можно использовать.Сейчас затестил, использовал 5 костей, фпс иногда проседало с 100 до 90, а так всё неплохо

Jack_Savage
05.01.2018, 17:58
Краш regex....

Код:






reg = std::regex("\{[^}]*}");




Вот почему то эта строка = крашу...

Может кто знает в чем дело ?

На С# эта регулярка работает...

kawa operand
05.01.2018, 18:12
а что парсить собираешься?

Jack_Savage
05.01.2018, 18:16
а что парсить собираешься?


Логин, пароль, номер карты, имя банка, ФИО, сервер на котором играешь...

А если серьезно то код цвета... {FFFFFF}

2Shae
05.01.2018, 18:41
Логин, пароль, номер карты, имя банка, ФИО, сервер на котором играешь...
А если серьезно то код цвета... {FFFFFF}


Не проще {(.+)} ?

Dark_Knight
05.01.2018, 18:49
Экранируй { }. Юзай для std try catch

Jack_Savage
05.01.2018, 18:49
Ну короче вышло вот так.....

Может кому пригодится...

Поиск тега цвета через RegEx.

Типу {FFFFFF}

C++:






std
::
regex rg
=
std
::
regex
(
"\\{[^}]*\\}"
)
;
//Либо
std
::
regex rg
=
std
::
regex
(
R"(\{[^}]*\})"
)
;




PS: Спасибо SR_Team and Dark_Knight NarutoUA (https://blast.hk/members/2504/)

NarutoUA
05.01.2018, 19:25
PS: Спасибо SR_Team and Dark_Knight (https://blast.hk/members/34/)


Ты охуевший пидор, я тебе то же самое советовал в чате

SR_team
05.01.2018, 20:36
Используй Qt

Dark_Knight
05.01.2018, 20:37
while true на все же приложение будет идти.

Dark_Knight
05.01.2018, 20:42
Как это фиксануть?


Думай сам.

Jack_Savage
05.01.2018, 21:46
Юзать таймер)

p1cador
06.01.2018, 17:32
@2Shae (https://www.blast.hk/members/25702/) можно изъебнуться и проверять кости актера на видимость, после чего рисовать только по координатам видимых костей

mrdiimax
06.01.2018, 19:43
Как прочитать файл в сф апи и вывести его содержимое в чат?)

kawa operand
06.01.2018, 19:47
std::ifstream

mrdiimax
06.01.2018, 23:13
std::ifstream


А дальше,тепа файлрид или че

BlackKnigga
06.01.2018, 23:17
А дальше,тепа файлрид или че


Дальше гугл

NarutoUA
07.01.2018, 18:17
Народ, я не понимаю, как вообще пишутся ASI плагины. В частности работа с RakNet. Там же нет никакого API вроде. Получается, работа напрямую с памятью. То есть, если я хочу забабахать плагин, который взаимодействует с RakNet мне придётся лезть в IDA и искать оффсеты? Я не мастер дебага и реверса. Есть ли где-то в инете список смещений SAMP'а?


Да

randazzo
07.01.2018, 18:24
Народ, я не понимаю, как вообще пишутся ASI плагины. В частности работа с RakNet. Там же нет никакого API вроде. Получается, работа напрямую с памятью. То есть, если я хочу забабахать плагин, который взаимодействует с RakNet мне придётся лезть в IDA и искать оффсеты? Я не мастер дебага и реверса. Есть ли где-то в инете список смещений SAMP'а?

Или, если смещений нет, то существует ли статические библиотеки/примеры кода, реализующие функционал по работе с RakNet?


Prime-Hack | AsiPlugin(https://dl.prime-hack.net/AsiPlugin/) (https://www.blast.hk/redirect/aHR0cHM6Ly9kbC5wcmltZS1oYWNrLm5ldC9Bc2lQbHVnaW4v) вроде есть поддержка ракнета

BlackKnigga
07.01.2018, 18:27
Народ, я не понимаю, как вообще пишутся ASI плагины. В частности работа с RakNet. Там же нет никакого API вроде. Получается, работа напрямую с памятью. То есть, если я хочу забабахать плагин, который взаимодействует с RakNet мне придётся лезть в IDA и искать оффсеты? Я не мастер дебага и реверса. Есть ли где-то в инете список смещений SAMP'а?

Или, если смещений нет, то существует ли статические библиотеки/примеры кода, реализующие функционал по работе с RakNet?


Смотри собейт. Тебе нужно хукать RakClientInterface

iAmerican
07.01.2018, 22:19
Народ, я не понимаю, как вообще пишутся ASI плагины. В частности работа с RakNet. Там же нет никакого API вроде. Получается, работа напрямую с памятью. То есть, если я хочу забабахать плагин, который взаимодействует с RakNet мне придётся лезть в IDA и искать оффсеты? Я не мастер дебага и реверса. Есть ли где-то в инете список смещений SAMP'а?

Или, если смещений нет, то существует ли статические библиотеки/примеры кода, реализующие функционал по работе с RakNet?


GitHub - sr-tream/UniLib(https://github.com/sr-tream/UniLib) (https://github.com/sr-tream/UniLib)

SR_team
07.01.2018, 23:05
Prime-Hack | AsiPlugin(https://dl.prime-hack.net/AsiPlugin/) (https://www.blast.hk/redirect/aHR0cHM6Ly9kbC5wcmltZS1oYWNrLm5ldC9Bc2lQbHVnaW4v) вроде есть поддержка ракнета


Там только интерфейсы. До методов и хуков руки не дошли пока.

Jack_Savage
08.01.2018, 12:35
Народ, я не понимаю, как вообще пишутся ASI плагины. В частности работа с RakNet. Там же нет никакого API вроде. Получается, работа напрямую с памятью. То есть, если я хочу забабахать плагин, который взаимодействует с RakNet мне придётся лезть в IDA и искать оффсеты? Я не мастер дебага и реверса. Есть ли где-то в инете список смещений SAMP'а?

Или, если смещений нет, то существует ли статические библиотеки/примеры кода, реализующие функционал по работе с RakNet?



mod_s0beit_sa/samp.cpp at 74970634c722bbeb898747ee2353788987d67aa7 · BlastHackNet/mod_s0beit_sa · GitHub(https://github.com/BlastHackNet/mod_s0beit_sa/blob/74970634c722bbeb898747ee2353788987d67aa7/src/samp.cpp) (https://github.com/BlastHackNet/mod_s0beit_sa/blob/74970634c722bbeb898747ee2353788987d67aa7/src/samp.cpp)

Вот тут смотри...

Метод installSAMPHooks.

А тебе оно очень надо (у меня где то был готовый код вроде.)?

randazzo
08.01.2018, 13:19
mod_s0beit_sa/samp.cpp at 74970634c722bbeb898747ee2353788987d67aa7 · BlastHackNet/mod_s0beit_sa · GitHub(https://github.com/BlastHackNet/mod_s0beit_sa/blob/74970634c722bbeb898747ee2353788987d67aa7/src/samp.cpp) (https://github.com/BlastHackNet/mod_s0beit_sa/blob/74970634c722bbeb898747ee2353788987d67aa7/src/samp.cpp)
Вот тут смотри...
Метод installSAMPHooks.
А тебе оно очень надо (у меня где то был готовый код вроде.)?


в этом файле нет ни одного упоминания про ракнет хуки.

Jack_Savage
08.01.2018, 13:40
в этом файле нет ни одного упоминания про ракнет хуки.



https://i.imgur.com/A91pCLe.png

А это тогда что ?

mrdiimax
08.01.2018, 16:01
В чем проблема,установил Visual Studio 2017, запускаю - не запускается,устанавливал разные версии,тобишь Professional Enterprise,никакая из них не запускается,что делать???

p1cador
08.01.2018, 20:11
аси, не сф

перебираю хендлы игроков, получаю по ним структуры актеров, вывожу в чат:

C++:






chatMsg
(
0xffffffff
,
"handle: 0x%x | ped: 0x%x"
,
v31
,
actor_info
)
;
chatMsg
(
0xffffffff
,
"X: %.2f Y: %.2f Z: %.2f"
,
actor_info
->
matrix
->
pos
.
x
,
actor_info
->
matrix
->
pos
.
y
,
actor_info
->
matrix
->
pos
.
z
)
;
chatMsg
(
0xffffffff
,
"HP: %.2f | &HP: %x"
,
actor_info
->
fHealth
,
&
(
actor_info
->
fHealth
)
)
;




В рез-те наблюдаю хендлы, адреса стр-р и координаты всех актеров из зоны стрима, а с получением хп какая-то хуета, адекватно хп получаю только своё, у других актеров по этому адресу лежит 1000.0:

https://pp.userapi.com/c840326/v840326543/41f2d/4mUjwZjeSa0.jpg

Структуру написал правильно, в оффсетах не ошибся. У меня только одно предположение - на вики написано "CPed +0x50C = начало класса CPedIK", т.е., начиная с 0x50c и ниже - это инфа, относящаяся только к игроку, за которого я играю? Или что значит этот ебучий педик?

Если я прав, то, где тогда лежат хп других актеров? Или их можно получить только вызвав функцию?

А если я не прав, то скажите в каком месте я долбоеб

SR_team
08.01.2018, 20:36
аси, не сф
перебираю хендлы игроков, получаю по ним структуры актеров, вывожу в чат:

C++:






chatMsg
(
0xffffffff
,
"handle: 0x%x | ped: 0x%x"
,
v31
,
actor_info
)
;
chatMsg
(
0xffffffff
,
"X: %.2f Y: %.2f Z: %.2f"
,
actor_info
->
matrix
->
pos
.
x
,
actor_info
->
matrix
->
pos
.
y
,
actor_info
->
matrix
->
pos
.
z
)
;
chatMsg
(
0xffffffff
,
"HP: %.2f | &HP: %x"
,
actor_info
->
fHealth
,
&
(
actor_info
->
fHealth
)
)
;




В рез-те наблюдаю хендлы, адреса стр-р и координаты всех актеров из зоны стрима, а с получением хп какая-то хуета, адекватно хп получаю только своё, у других актеров по этому адресу лежит 1000.0:

https://pp.userapi.com/c840326/v840326543/41f2d/4mUjwZjeSa0.jpg

Структуру написал правильно, в оффсетах не ошибся. У меня только одно предположение - на вики написано "CPed +0x50C = начало класса CPedIK", т.е., начиная с 0x50c и ниже - это инфа, относящаяся только к игроку, за которого я играю? Или что значит этот ебучий педик?
Если я прав, то, где тогда лежат хп других актеров? Или их можно получить только вызвав функцию?
А если я не прав, то скажите в каком месте я долбоеб


SF Plugin - ActiveHitpoints(https://blast.hk/threads/13033/) (https://blast.hk/threads/13033/)

Jack_Savage
08.01.2018, 20:43
SF Plugin - ActiveHitpoints(https://blast.hk/threads/13033/) (https://blast.hk/threads/13033/)


Так он же вроде хотел без SF это сделать

BlackKnigga
08.01.2018, 20:51
Так он же вроде хотел без SF это сделать


Он прочитает и поймет что хп других игроков надо брать из структур сампа

Jack_Savage
08.01.2018, 21:32
Он прочитает и поймет что хп других игроков надо брать из структур сампа


А в какой именно структуре самп хранит это ?

CleanLegend
08.01.2018, 21:36
А в какой именно структуре самп хранит это ?


g_SAMP->pPools->pPlayer->pRemotePlayer->pPlayerData->fActorHealth;

vasiliy130198
12.01.2018, 02:22
Можно ли мониторить отправляемые серверу rpc пакеты? (перехват исходящих пакетов.. как-то так)

Если да, то как именно определить, что текущий rpc пакет отправил именно клиент сампа, а не мой скрипт? (.cs или .sf)

Jack_Savage
12.01.2018, 02:29
Можно ли мониторить отправляемые серверу rpc пакеты? (перехват исходящих пакетов.. как-то так)
Если да, то как именно определить, что текущий rpc пакет отправил именно клиент сампа, а не мой скрипт? (.cs или .sf)


Можно через SF плагин.

tutorials - api_lesson_raknet | BlastHack — DEV_WIKI(https://blast.hk/wiki/tutorials:api_lesson_raknet) (https://blast.hk/wiki/tutorials:api_lesson_raknet)

SAMP.ASI
12.01.2018, 15:28
Если скачать с темы Избранное - Софт - SAMPFUNCS(https://blast.hk/threads/17/) (https://blast.hk/threads/17/) файл

И распаковать его в любую папку, позже запустить файл SFPlugin.sln , то visual studio 2017 будет ругаться, на стандартные инклуды ( windows.h process.h )

И требовать точку с запятой в mainloop() . Как это исправить?

https://pp.userapi.com/c840329/v840329014/45809/7fLYJt-LfwU.jpg

mrdiimax
12.01.2018, 15:30
Если скачать с темы Избранное - Софт - SAMPFUNCS(https://blast.hk/threads/17/) (https://blast.hk/threads/17/) файл
И распаковать его в любую папку, позже запустить файл SFPlugin.sln , то visual studio 2017 будет ругаться, на стандартные инклуды ( windows.h process.h )
И требовать точку с запятой в mainloop() . Как это исправить?

https://pp.userapi.com/c840329/v840329014/45809/7fLYJt-LfwU.jpg


Подключи SDK,если не умеешь - напиши мне,помогу vk.com/This_Cold

SAMP.ASI
12.01.2018, 19:29
Какие зависимости есть у проекта SFPlugin.sln . Переустановил винду, подключил sdk , но это не помогло

Dark_Knight
12.01.2018, 19:35
Какие зависимости есть у проекта SFPlugin.sln . Переустановил винду, подключил sdk , но это не помогло


DirectX SKD и все.

SAMP.ASI
12.01.2018, 20:06
DirectX SKD и все.


Ее поставил и все равно не работает

Jack_Savage
12.01.2018, 20:37
Ее поставил и все равно не работает


А что у тебя в настройках то стоит ?

https://forum.antichat.xyz/attachments/27177272/

Вот чекни этот пункт

"И требовать точку с запятой в mainloop()" это потому что не нашло какой то там инклуд где есть дефайн CALLBACK

SAMP.ASI
12.01.2018, 20:39
А что у тебя в настройках то стоит ?

Вот чекни этот пункт


Пробовал все пункты, напиши в вк /road2mz

Как избавиться от _ в нике Vasya_Pupkin = Vasya Pupkin?

Код:






char buff[128];
sprintf(buff, "/me текст %s",
pPlayer->szPlayerName);
SF->getSAMP()->getPlayers()->pLocalPlayer->Say(buff);
Sleep(700);
SF->getSAMP()->getPlayers()->pLocalPlayer->Say("/anim 20");




p.s Я же правильно делаю задержку?

BlackKnigga
13.01.2018, 01:41
Как избавиться от _ в нике Vasya_Pupkin = Vasya Pupkin



C++:






std
::
string
DeleteUnderscore
(
std
::
string str
)
{
for
(
char
&
ch
:
str
)
if
(
ch
==
'_'
)
ch
=
' '
;
return
str
;
}




Но явно можно как то проще



p.s Я же правильно делаю задержку?


Нет

SAMP.ASI
13.01.2018, 01:45
C++:






std
::
string
DeleteUnderscore
(
std
::
string str
)
{
for
(
char
&
ch
:
str
)
if
(
ch
==
'_'
)
ch
=
' '
;
return
str
;
}




Но явно можно как то проще

Нет


Как делать задержку , как использовать то, что ты скинул?

BlackKnigga
13.01.2018, 01:59
Как делать задержку


Через GetTickCount



как использовать то, что ты скинул?


Возвращает строку в параметре без подчеркиваний

SAMP.ASI
13.01.2018, 02:01
Через GetTickCount

Возвращает строку в параметре без подчеркиваний


Можешь понятнее обьяснить, я только сегодня начал что либо делать ( про удаление _ )

Jack_Savage
13.01.2018, 02:06
Пробовал все пункты, напиши в вк /road2mz



C++:






Объявляешь функцию
std
::
string
DeleteUnderscore
(
std
::
string str
)
{
for
(
char
&
ch
:
str
)
if
(
ch
==
'_'
)
ch
=
' '
;
return
str
;
}
А вот так там где тебе надо использовать
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
Say
(
DeleteUnderscore
(
"Jack_Savage"
)
.
c_str
(
)
)
;

jenekbueno
13.01.2018, 02:24
Можно ли мониторить отправляемые серверу rpc пакеты? (перехват исходящих пакетов.. как-то так)
Если да, то как именно определить, что текущий rpc пакет отправил именно клиент сампа, а не мой скрипт? (.cs или .sf)


если на сф то

tutorials - api_lesson_raknet | BlastHack — DEV_WIKI(https://blast.hk/wiki/tutorials:api_lesson_raknet) (https://blast.hk/wiki/tutorials:api_lesson_raknet)

если на клео

https://forum.antichat.xyz/attachments/27177380/

Perojek)0
15.01.2018, 17:30
Где можно посмотреть на пример перехвата RPC/Packet'a без сф?

memir
15.01.2018, 17:32
Где можно посмотреть на пример перехвата RPC/Packet'a без сф?


Ковыряй собейт

Vlad Horii
19.01.2018, 01:13
При компиляции проекта в Visual Studio появляется ошибка. Как исправить?




https://i.imgur.com/lkx9d0G.png

san0
19.01.2018, 01:21
При компиляции проекта в Visual Studio появляется ошибка. Как исправить?


lkx9d0G.pngsan0 · 19 Янв 2018 в 00:21' data-fancybox="lb-post-178567" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="/proxy.php?image=https%3A%2F%2Fi.imgur.com%2Flkx9d0 G.png&hash=47f2880b2dd4a40b3a42eb48e3cf07ae" style="cursor: pointer;" title="lkx9d0G.png">
https://i.imgur.com/lkx9d0G.png





Поиск | BlastHack - Cheating as Art(https://blast.hk/search/) (https://blast.hk/search/) -> d3dx9.h

kawa operand
19.01.2018, 10:06
Directx sdk установи

Vlad Horii
19.01.2018, 14:34
Directx sdk установи


Установил, появилась другая ошибка.

VS 2017 version

Она вроде проблемная очень. А 2013 не устанавливается

iAmerican
21.01.2018, 20:52
C++:






int
state
;
state
=
g_Players
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
state
;




Если всегда показывает 0 , криво перенес структуру actor_info или в чём то другом подводный камень?

не соб , отдельная DLL.

CleanLegend
21.01.2018, 22:05
C++:






int
state
;
state
=
g_Players
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
state
;




Если всегда показывает 0 , криво перенес структуру actor_info или в чём то другом подводный камень?
не соб , отдельная DLL.


Структура кривая

Gromov512
22.01.2018, 05:41
При компиляции вылазиет ошибка "не удается открыть источник файл "windows.h"

Как исправить ?

kawa operand
22.01.2018, 13:03
Проект в папку с проектами кинь и оттуда открой

Не уверен что поможет но была ни была если не поможет можно переустановить виндовс

iAmerican
22.01.2018, 13:08
При компиляции вылазиет ошибка "не удается открыть источник файл "windows.h"
Как исправить ?


VS 2017?

Gromov512
22.01.2018, 13:15
VS 2017?


da

w0odcr3st
22.01.2018, 19:30
Пытаюсь скомпилировать ImGUI pie(библиотека imgui самая новая, VS 2017), но ругается на неопределённый идентификатор ImGuiState. Порылся в двух версиях(старых) ImGui, но и там не нашёл, может кто-то подсказать, как его скомпилировать?

Сурс ImGui pie: PieMenuAdv · GitHub(https://gist.github.com/thennequin/64b4b996ec990c6ddc13a48c6a0ba68c) (https://www.blast.hk/redirect/aHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vdGhlbm5lcXVpbi82NG I0Yjk5NmVjOTkwYzZkZGMxM2E0OGM2YTBiYTY4Yw)

iAmerican
22.01.2018, 23:22
da


Могу помочь через тимвиевер, скайп в лс кинь

NarutoUA
23.01.2018, 15:13
Почему на месте, где должен быть указатель на RakClientInterface, стоят нули? Версия SAMP - 0.3.7 R2. Использовал смещения samp.dll + 0x217BD0 + 0x3C9.



http://i.prntscr.com/dC9x0Q2JTxSX0q3rXGXM7w.png





Может быть потому что надо [samp.dll+ 0x217BD0] + 0x3C9 ?

iAmerican
24.01.2018, 02:49
Допустим у меня есть костевой enum. Я хочу его использовать в combo scroll.

Возможно как то подставить за место AAA, BBB... enum?

Должно быть вроде вот так

C++:






inline
char
getChar
(
eBone section
)
{
ImGui
::
Combo
(
u8
"Выбор кости"
,
&
item2
,
char
(
section
)
,
IM_ARRAYSIZE
(
items
)
)
;
}




Но что то не хочет

C++:






const
char
*
items
[
]
=
{
"AAAA"
,
"BBBB"
,
"CCCC"
,
"DDDD"
,
"EEEE"
,
"FFFF"
,
"GGGG"
,
"HHHH"
,
"IIII"
,
"JJJJ"
,
"KKKK"
}
;
static
int
item2
=
-
1
;
ImGui
::
Combo
(
"Выбор кости"
,
&
item2
,
items
,
IM_ARRAYSIZE
(
items
)
)
;




C++:






enum
eBone
{
BONE_PELVIS1
=
1
,
BONE_PELVIS
,
BONE_SPINE1
,
BONE_UPPERTORSO
,
BONE_NECK
,
BONE_HEAD2
,
BONE_HEAD1
,
BONE_HEAD
,
BONE_RIGHTUPPERTORSO
=
21
,
BONE_RIGHTSHOULDER
,
BONE_RIGHTELBOW
,
BONE_RIGHTWRIST
,
BONE_RIGHTHAND
,
BONE_RIGHTTHUMB
,
BONE_LEFTUPPERTORSO
=
31
,
BONE_LEFTSHOULDER
,
BONE_LEFTELBOW
,
BONE_LEFTWRIST
,
BONE_LEFTHAND
,
BONE_LEFTTHUMB
,
BONE_LEFTHIP
=
41
,
BONE_LEFTKNEE
,
BONE_LEFTANKLE
,
BONE_LEFTFOOT
,
BONE_RIGHTHIP
=
51
,
BONE_RIGHTKNEE
,
BONE_RIGHTANKLE
,
BONE_RIGHTFOOT
}
;

Gromov512
24.01.2018, 08:51
VS 2013

Ошибка:

Ошибка 9 error LNK2001: неразрешенный внешний символ "___stdio_common_vsscanf" C:\Users\ПК/Desktop\SFPlugin26\SFPlugin\libcurl.lib(telnet.obj ) SFPlugin

nikakoy
24.01.2018, 15:22
ошибка при компилировании, компилирую в Code::Blocks

Код:






C:\Users\USER\Desktop\SF\SFPlugin\SFPlugin\main.cp p|6|fatal error: SAMPFUNCS_API.h: No such file or directory|




строка с ошибкой

C++:






#include "SAMPFUNCS_API.h"







C++:






#include
#include
#include
#include
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
void
CALLBACK
cmd_show_info_player
(
std
::
string param
)
{
if
(
param
.
empty
(
)
)
return
1
;
int
i
=
std
:
stoi
(
param
)
;
char
buf
[
128
]
;
stRemotePlayer
*
pPlayer
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
;
if
(
!
pPlayer
)
return
;
sprintf
(
buf
,
"Name: %s | Ping - %d ms | Score - %d | isNPC - %d | AFKState - %d"
,
pPlayer
->
szPlayerName
,
pPlayer
->
iPing
,
pPlayer
->
iScore
,
pPlayer
->
iIsNPC
,
pPlayer
->
pPlayerData
->
iAFKState
==
2
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
buf
)
;
}
void
CALLBACK
mainloop
(
)
{
static
bool
init
=
false
;
if
(
!
init
)
{
if
(
GAME
==
nullptr
)
return
;
if
(
GAME
->
GetSystemState
(
)
!=
eSystemState
::
GS_PLAYING_GAME
)
return
;
if
(
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
SF
->
getSAMP
(
)
->
registerChatCommand
(
"showinfo"
,
cmd_show_info_player
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"SAMPFUNCS Plugin loaded."
)
;
init
=
true
;
}
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
switch
(
dwReasonForCall
)
{
case
DLL_PROCESS_ATTACH
:
SF
->
initPlugin
(
mainloop
,
hModule
)
;
break
;
case
DLL_THREAD_ATTACH
:
case
DLL_THREAD_DETACH
:
case
DLL_PROCESS_DETACH
:
break
;
}
return
TRUE
;
}

kawa operand
24.01.2018, 16:08
компилирую в Code::Blocks


он ток под мсвс вродь

Jack_Savage
24.01.2018, 22:03
Как можно инжектнуть samp.dll в уже запущенную игру ?

То есть самп инжектится при старте процесса gta_sa.

А можно как то инжектить его уже после того как игра запустилась и показала меню ?

kawa operand
24.01.2018, 22:06
samp.dll должен загрузиться до показа окна

w0odcr3st
24.01.2018, 23:15
Как можно выполнить команду или послать сообщение серверу через sampfuncs?

Vandal™
24.01.2018, 23:34
Как можно выполнить команду или послать сообщение серверу через sampfuncs?


SF->getSAMP()->getPlayers()->pLocalPlayer->Say("text");

Nika23830
28.01.2018, 02:22
1.Ваш вопрос: Как выдать сообщение при загрузке? Которые показываются перед "Connected. Joining the game..."

randazzo
28.01.2018, 09:16
1.Ваш вопрос: Как выдать сообщение при загрузке? Которые показываются перед "Connected. Joining the game..."


В проекте есть пример вывода сообщения в чат, при входе в игру.

Jack_Savage
28.01.2018, 14:49
Как игра лочит мышку ?

PS: Хукал SetCursorPos и все равно не мог двигать мышкой

Nika23830
29.01.2018, 21:10
В проекте есть пример вывода сообщения в чат, при входе в игру.


Можете все равно пожалуйста сюда кинуть код для примера, я нуб :ССС



1.Ваш вопрос: Как выдать сообщение при загрузке? Которые показываются перед "Connected. Joining the game..."

randazzo
29.01.2018, 21:43
Можете все равно пожалуйста сюда кинуть код для примера, я нуб :ССС



C++:






#include
#include
#include
#include
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
void
CALLBACK
mainloop
(
)
{
static
bool
init
=
false
;
if
(
!
init
)
{
if
(
GAME
==
nullptr
)
return
;
if
(
GAME
->
GetSystemState
(
)
!=
eSystemState
::
GS_PLAYING_GAME
)
return
;
if
(
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"SAMPFUNCS Plugin loaded."
)
;
init
=
true
;
}
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
switch
(
dwReasonForCall
)
{
case
DLL_PROCESS_ATTACH
:
SF
->
initPlugin
(
mainloop
,
hModule
)
;
break
;
case
DLL_THREAD_ATTACH
:
case
DLL_THREAD_DETACH
:
case
DLL_PROCESS_DETACH
:
break
;
}
return
TRUE
;
}

iAmerican
30.01.2018, 14:56
Хукаю WndProc ..

C++:






WNDPROC hOrigProc
=
NULL
;
hOrigProc
=
(
WNDPROC
)
SetWindowLong
(
*
(
HWND
*
)
0xC97C1C
,
GWL_WNDPROC
,
(
LONG
)
(
UINT_PTR
)
WndProc
)
;




C++:






bool
__stdcall
WndProc
(
HWND hwnd
,
UINT uMsg
,
WPARAM wParam
,
LPARAM lParam
)
{
if
(
uMsg
==
WM_KEYDOWN
)
{
pSAMP
->
addMessageToChat
(
-
1
,
"%i"
,
wParam
)
;
if
(
wParam
==
192
)
{
// 192 - ®
pSAMP
->
say
(
"/CMD"
)
;
return
false
;
}
}
return
true
;
}




Получается если я жму "~" , открывается чат сампа , мне надо сделать что бы он не открывался , а отправлялась команда.

Когда захожу в самп , я получаю нажатые клавиши , но перестают реагировать клавиши.

kawa operand
30.01.2018, 15:08
return true;



C++:






CallWindowProc
(
hOrigProc
,
hWnd
,
uMsg
,
wParam
,
lParam
)
;




и ваще он вот так выглядит

C++:






LRESULT CALLBACK
WindowProc
(
_In_ HWND hwnd
,
_In_ UINT uMsg
,
_In_ WPARAM wParam
,
_In_ LPARAM lParam
)
;

iAmerican
30.01.2018, 15:16
C++:






CallWindowProc
(
hOrigProc
,
hWnd
,
uMsg
,
wParam
,
lParam
)
;




и ваще он вот так выглядит

C++:






LRESULT CALLBACK
WindowProc
(
_In_ HWND hwnd
,
_In_ UINT uMsg
,
_In_ WPARAM wParam
,
_In_ LPARAM lParam
)
;





И так и так пробовал , если сделать так , то клавиши работают , но всё равно чат открывается.

C++:






LRESULT CALLBACK
WndProc
(
HWND hWnd
,
UINT uMsg
,
WPARAM wParam
,
LPARAM lParam
)
{
if
(
uMsg
==
WM_KEYDOWN
)
{
if
(
wParam
==
192
)
{
pSAMP
->
say
(
"/CMD"
)
;
return
false
;
}
}
return
CallWindowProcA
(
(
WNDPROC
)
hOrigProc
,
hWnd
,
uMsg
,
wParam
,
lParam
)
;
}




В SF этого хватало

C++:






bool
__stdcall
wndProc
(
HWND hWnd
,
UINT uMsg
,
WPARAM wParam
,
LPARAM lParam
)
{
if
(
uMsg
==
WM_KEYDOWN
)
{
if
(
wParam
==
192
)
{
// 192 - ®
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
Say
(
"/CMD"
)
;
return
false
;
}
}
return
true
;
}

Dark_Knight
30.01.2018, 16:24
Хукай открытие чата

san0
31.01.2018, 02:14
И так и так пробовал , если сделать так , то клавиши работают , но всё равно чат открывается.


1) Попробуй SetWindowLong после того, как по адресу samp.dll + 0x119CB8 (4 байта) будет что-то больше 0. Это означает, что самп уже установил новый адрес процедуры диалогового окна для своих нужд. Это значение еще SF модифицирует, так для справки.

2) TRUE != true (BOOL != BOOLEAN), и в специфических условиях это может работать по другому.

C++:






LRESULT CALLBACK
WndProc
(
HWND hWnd
,
UINT uMsg
,
WPARAM wParam
,
LPARAM lParam
)
{
if
(
uMsg
==
WM_CHAR
&&
wParam
==
'`'
)
{
// .. //
return
FALSE
;
}
return
CallWindowProc
(
hOrigProc
,
hWnd
,
uMsg
,
wParam
,
lParam
)
;
}




3) Вместо всего этого WndProc лишь для игнорирования одной клавиши попробуй 5 байт занопить по адресу samp.dll + 0x5DAFD.

4) Проверял это с открытием чата на 'T', у меня нет тильды ))))

tropical5466
02.02.2018, 21:10
Имеется такая функция из сурсов соба

Код:






#define FUNC_JPegCompressScreenToFile 0x5D0820
#define CLASS_RwCamera 0xB6F97C
VOID CGameSA::TakeScreenshot ( char * szFileName )
{
DWORD dwFunc = FUNC_JPegCompressScreenToFile;
_asm
{
mov eax, CLASS_RwCamera
mov eax, [eax]
push szFileName
push eax
call dwFunc
add esp,8
}
}




Как её можно вызвать без asm вставки?

BlackKnigga
02.02.2018, 22:09
Имеется такая функция из сурсов соба

Код:






#define FUNC_JPegCompressScreenToFile 0x5D0820
#define CLASS_RwCamera 0xB6F97C
VOID CGameSA::TakeScreenshot ( char * szFileName )
{
DWORD dwFunc = FUNC_JPegCompressScreenToFile;
_asm
{
mov eax, CLASS_RwCamera
mov eax, [eax]
push szFileName
push eax
call dwFunc
add esp,8
}
}




Как её можно вызвать без asm вставки?



C++:






#define FUNC_JPegCompressScreenToFile 0x5D0820
#define CLASS_RwCamera 0xB6F97C
typedef
void
(
_cdecl
*
JPegCompressScreenToFile
)
(
void
*
,
char
*
)
;
char
*
szFileName
=
"ПУТЬ ЗДЕСЬ"
;
JPegCompressScreenToFile Func
=
(
JPegCompressScreenToFile
)
FUNC_JPegCompressScreenToFile
;
Func
(
*
(
void
*
*
)
CLASS_RwCamera
,
szFileName
)
;




std::function я чет не осилил:sad_frog2:

Только зачем парится и не использовать ассемблер?

tropical5466
02.02.2018, 22:21
C++:






#define FUNC_JPegCompressScreenToFile 0x5D0820
#define CLASS_RwCamera 0xB6F97C
typedef
HRESULT
(
_cdecl
*
JPegCompressScreenToFile
)
(
void
*
,
char
*
)
;
char
*
szFileName
=
"ПУТЬ ЗДЕСЬ"
;
JPegCompressScreenToFile Func
=
(
JPegCompressScreenToFile
)
FUNC_JPegCompressScreenToFile
;
Func
(
*
(
void
*
*
)
CLASS_RwCamera
,
szFileName
)
;




std::function я чет не осилил:sad_frog2:
Только зачем парится и не использовать ассемблер?


Да мне просто не на плюсы надо эту функцию

Спасибо

san0
02.02.2018, 22:37
Только зачем парится и не использовать ассемблер?


Может, так? Вызывается как обычно TakeScreenshot("screen1.jpg") :)

C++:






#define CLASS_RwCamera 0xB6F97C
inline
void
*
GetRwCamera
(
)
{
return
*
(
void
*
*
)
CLASS_RwCamera
;
}
#define FUNC_JPegCompressScreenToFile 0x5D0820
void
TakeScreenshot
(
const
char
*
szFileName
)
{
(
(
void
(
__cdecl
*
)
(
void
*
,
const
char
*
)
)
FUNC_JPegCompressScreenToFile
)
(
GetRwCamera
(
)
,
szFileName
)
;
}

2Shae
04.02.2018, 20:15
Как отправить сообщение в чат через память?

san0
04.02.2018, 22:16
Как отправить сообщение в чат через память?


mod_s0beit_sa/samp.cpp at master · BlastHackNet/mod_s0beit_sa · GitHub(https://github.com/BlastHackNet/mod_s0beit_sa/blob/master/src/samp.cpp#L675) (https://github.com/BlastHackNet/mod_s0beit_sa/blob/master/src/samp.cpp#L675)

Jack_Savage
06.02.2018, 19:10
В Directx 9 можно растянуть спрайт на весь экран ?

drags
12.02.2018, 13:27
Как получить LVL (1)

{FFFFFF}Уровень: {B83434}[1] из этой строки? А то у меня постоянно выбивает 87487448

kawa operand
12.02.2018, 13:52
А как получаешь то

Ranto
12.02.2018, 17:21
1. Как создать текст при загрузки игры? (как во всяких enb ну или тот же SAMPFUNCS когда нажимаешь ESC там в левом верхнем углу написано sampfuncs version... c++)

https://a.radikal.ru/a10/1802/af/ca32fa04d5ae.png

DarkP1xel
13.02.2018, 01:24
Как создать текст при загрузки игры?


D3DXCreateFont (https://www.blast.hk/redirect/aHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicm FyeS93aW5kb3dzL2Rlc2t0b3AvYmIxNzI3NzModj12cy44NSku YXNweA)

Ranto
13.02.2018, 18:30
D3DXCreateFont (https://www.blast.hk/redirect/aHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicm FyeS93aW5kb3dzL2Rlc2t0b3AvYmIxNzI3NzModj12cy44NSku YXNweA)


Сделал как ты сказал, создал header файл с параметрами для функции, взял твой код с 1 урока про DLL, но появилась проблема я как новичок в c++ не понял что за параметры у данной функции "D3DXCreateFont", помоги пожалуйста, либо просто объясни что вставлять . Заранее спасибо.

https://c.radikal.ru/c22/1802/23/fbfdc5769053.jpg

kawa operand
13.02.2018, 21:06
Хукай пресент

Sasha22rus
19.02.2018, 11:15
https://forum.antichat.xyz/attachments/27185018/

кто знает, как изменить кодировку в RakSampe?

ALF
20.02.2018, 03:20
кто знает, как изменить кодировку в RakSampe?


window.cpp и netrpc.cpp > tahoma на system

samp is meme
21.02.2018, 17:41
Есть ли необходимость использовать прототипы функций?

Gnusmus_Cool
22.02.2018, 16:56
1. Как обойти это?

https://i.imgur.com/E6q7QBL.png

jenekbueno
22.02.2018, 16:58
методы класса реализуй в .cpp файле, в хедере как правило только заголовки функций

Gnusmus_Cool
22.02.2018, 17:07
методы класса реализуй в .cpp файле, в хедере как правило только заголовки функций



https://forum.antichat.xyz/attachments/27185897/

У меня цель, создать D3D окно для чита, я делал всё, как у него в видео, но при этом у меня есть ошибка, а у него всё чисто

san0
22.02.2018, 21:48
у меня есть ошибка, а у него всё чисто


1. Удали Mehack:: в каждом предварительном объявлениии функций.

2. Класс, скорее всего, нуждается в конструкторе и public:

_Vine_
22.02.2018, 23:07
Как проверить наличие ключа и значения в реестре?

CleanLegend
22.02.2018, 23:23
Как проверить наличие ключа и значения в реестре?


Исходник - LiteRegedit(https://blast.hk/threads/13855/) (https://blast.hk/threads/13855/)

_Vine_
22.02.2018, 23:53
Чет не вижу там такой функции.. мб название функции той дашь?

CleanLegend
23.02.2018, 11:16
Чет не вижу там такой функции.. мб название функции той дашь?



C++:





[CODE]
char
buf
[
256
]
;
if
(
reg
->
GetRegister
(
"Nick"
,
REG_SZ
,
buf
,
256
)
)
{
std
::
cout

sayler
23.02.2018, 13:05
1. Как отследить в пустом ASI плагине коннект к серверу -> узнать имя и ID игрока ?

kawa operand
23.02.2018, 13:08
через структуры

которые кстати отлично расписаны в исходниках собейта

mod_s0beit_sa/samp.h at master · BlastHackNet/mod_s0beit_sa · GitHub(https://github.com/BlastHackNet/mod_s0beit_sa/blob/master/src/samp.h) (https://github.com/BlastHackNet/mod_s0beit_sa/blob/master/src/samp.h)

_Vine_
23.02.2018, 14:09
[QUOTE="CleanLegend"]

C++:





[CODE]
char
buf
[
256
]
;
if
(
reg
->
GetRegister
(
"Nick"
,
REG_SZ
,
buf
,
256
)
)
{
std
::
cout

kawa operand
23.02.2018, 14:57
RegGetValueA возвращает 2 если ключа не существует

CleanLegend
23.02.2018, 15:03
Я так и думал..
Эту функцию я смогу реализовать даже без класса ср тима, мне нужна функция, которая проверяет, существует ли ключ в реестре, и возвращает BOOL.
Не знаешь такой?



C++:






bool
check
(
)
{
char
buf
[
256
]
;
if
(
reg
->
GetRegister
(
"Nick"
,
REG_SZ
,
buf
,
256
)
)
{
return
true
;
}
else
{
return
false
;
}
}

sayler
23.02.2018, 15:04
через структуры
которые кстати отлично расписаны в исходниках собейта
mod_s0beit_sa/samp.h at master · BlastHackNet/mod_s0beit_sa · GitHub(https://github.com/BlastHackNet/mod_s0beit_sa/blob/master/src/samp.h) (https://github.com/BlastHackNet/mod_s0beit_sa/blob/master/src/samp.h)


1. Что делать с этими структурами? Придется вырезать RakClient и всё что с ним связано?

kawa operand
23.02.2018, 15:06
по смещениям начиная от samp.dll иди к stPlayerPool::sLocalPlayerID и stPlayerPool::strLocalPlayerName

BlackKnigga
23.02.2018, 16:51
по смещениям начиная от samp.dll иди к stPlayerPool::sLocalPlayerID и stPlayerPool::strLocalPlayerName


Ему похоже надо коннект другого игрока



1. Что делать с этими структурами? Придется вырезать RakClient и всё что с ним связано?


Да. Ну или изъебнутся и хукнуть обработчик рпц

sayler
23.02.2018, 19:24
Ему похоже надо коннект другого игрока

Да. Ну или изъебнутся и хукнуть обработчик рпц



Мне нужно отследить когда localplayer подключается к серверу , и потом узнать мой playerid и nickname

Vandal™
24.02.2018, 17:31
Нашел такую функцию, как PlaySound. Беда в том, что она не хочет воспроизводить .mp3 файл (длит. звука 10 сек).

Путь указан правильно. Пробовал разные вариации с флагами запуска. TEXT(путь) - тоже. Но возвращает функция всегда FALSE (т.е звук не воспроизведен).

C++:






PlaySoundA
(
/*путь*/
,
NULL
,
SND_RESOURCE
)
;
// Для примера




Как еще в SF API можно реализовать воспроизведение файлов формата .mp3 / .wav ?

Dark_Knight
24.02.2018, 18:03
Нашел такую функцию, как PlaySound. Беда в том, что она не хочет воспроизводить .mp3 файл (длит. звука 10 сек).
Путь указан правильно. Пробовал разные вариации с флагами запуска. TEXT(путь) - тоже. Но возвращает функция всегда FALSE (т.е звук не воспроизведен).


bass.lib юзай.

sayler
24.02.2018, 19:45
1. Как получить hash файла в md5?

RudF
24.02.2018, 20:30
1. Как получить hash файла в md5?


Естественно считать по всем байтам внутри файла, пример из гугла:

C++:





[CODE]
#include
//for std::cout
#include
//for std::string
#include
#include "MD5.h"
using
std
::
cout
;
using
std
::
endl
;
int
main
(
int
argc
,
char
*
argv
[
]
)
{
//Start opening your file
ifstream inBigArrayfile
;
inBigArrayfile
.
open
(
"Data.dat"
,
std
::
ios
::
binary
|
std
::
ios
::
in
)
;
//Find length of file
inBigArrayfile
.
seekg
(
0
,
std
::
ios
::
end
)
;
long
Length
=
inBigArrayfile
.
tellg
(
)
;
inBigArrayfile
.
seekg
(
0
,
std
::
ios
::
beg
)
;
//read in the data from your file
char
*
InFileData
=
new
char
[
Length
]
;
inBigArrayfile
.
read
(
InFileData
,
Length
)
;
//Calculate MD5 hash
std
::
string Temp
=
md5
(
InFileData
,
Length
)
;
cout

Вивик8872
24.02.2018, 20:43
Здравствуйте,решил поиграться с прицелом.Не пойму,как вместо стандартного прицела сделать свой,но только при наличии собейта?Прошу помощи

kawa operand
24.02.2018, 20:44
хукать загрузку прицела в игру и загружать свой вместо нево

Vandal™
26.02.2018, 07:23
В C++ or SF API можно отправить комп на гибернизацию,сон или тупо выключить?

BlackKnigga
26.02.2018, 09:21
В C++ or SF API можно отправить комп на гибернизацию,сон или тупо выключить?


Можно, используя винапи, гугли как

RudF
01.03.2018, 17:17
Дайте пожалуйста адрес памяти чтоб узнать ID скина игрока)

CleanLegend
01.03.2018, 17:34
0xB6F5F0 + 0x22

Dark_Knight
01.03.2018, 17:40
Адреса Памяти (SA) — GTAModding.ru(http://gtamodding.ru/wiki/Адреса_Памяти_(SA)) (https://www.blast.hk/redirect/aHR0cDovL2d0YW1vZGRpbmcucnUvd2lraS_QkNC00YDQtdGB0L Bf0J_QsNC80Y_RgtC4XyhTQSk)

RudF
01.03.2018, 17:41
Адреса Памяти (SA) — GTAModding.ru(http://gtamodding.ru/wiki/Адреса_Памяти_(SA)) (https://www.blast.hk/redirect/aHR0cDovL2d0YW1vZGRpbmcucnUvd2lraS_QkNC00YDQtdGB0L Bf0J_QsNC80Y_RgtC4XyhTQSk)


Ого. Странно, что английская версия от русской отличается. То что нужно есть в английской, то что нужно в русской.

Vandal™
04.03.2018, 20:40
bass.lib юзай.



C++:






HSTREAM str
;
BASS_Init
(
-
1
,
44100
,
BASS_DEVICE_3D
,
0
,
NULL
)
;
str
=
BASS_StreamCreateFile
(
FALSE
,
"C://join.mp3"
,
0
,
0
,
0
)
;
if
(
BASS_ChannelPlay
(
str
,
FALSE
)
)
SF
->
Log
(
"Прошло успешно:"
)
;
else
SF
->
Log
(
"Не проиграно :("
)
;




Так-с, проблема в чем - "прошло успешно", а музыки нема :thinking:

В чем косяк?

Dark_Knight
04.03.2018, 21:22
C++:






BASS_Init
(
-
1
,
44100
,
0
,
GetActiveWindow
(
)
,
NULL
)
;

Vandal™
04.03.2018, 21:36
C++:






BASS_Init
(
-
1
,
44100
,
0
,
GetActiveWindow
(
)
,
NULL
)
;





Так же. Звука нет, хотя прошло успешно. Видимо, у меня руки из жопы растут.

Dark_Knight
04.03.2018, 22:04
Поставь звук радио на максимум и перезайди.

sayler
05.03.2018, 14:41
1. ) Как отследить отключение клиента на стороне сервера (Winsock,client-server tcp socket, C++)?

Dark_Knight
05.03.2018, 18:02
С клиента посылай сообщение о выходе или делай проверку на сервере, что есть соединение с клиентом.

Vandal™
08.03.2018, 14:10
Поставь звук радио на максимум и перезайди.


BASS_Init в любом случае выбивает false. Порылся я и узнал, что выдает ошибку "BASS_ERROR_ALREADY"

Что-нибудь тебе дает?

UPD: фиксанул хрень с помощью BASS_free(); до BASS_Init, проблема решена

DarkP1xel
11.03.2018, 11:00
BASS_Init в любом случае выбивает false. Порылся я и узнал, что выдает ошибку "BASS_ERROR_ALREADY"
Что-нибудь тебе дает?

UPD: фиксанул хрень с помощью BASS_free(); до BASS_Init, проблема решена


Это потому что у тебя CLEO установлено.

Jack_Savage
11.03.2018, 14:15
Как в сампе можно создать педа из сингла ?

Создать педа то изи. Но он ходить не может.

Как то можно вернуть ему возможность ходить ?

Dark_Knight
14.03.2018, 01:50
Как это перевести на C++? Пытался, но чёт никак..


Лучше найди в гугле.

Dark_Knight
14.03.2018, 01:59
JosephP91/curlcpp(https://github.com/JosephP91/curlcpp) (https://github.com/JosephP91/curlcpp)

Возможно подойдет

Dark_Knight
17.03.2018, 19:13
Кодировка не подходит.

DarkP1xel
17.03.2018, 19:16
логично.. Как исправить?


Поменять в редакторе.

BlackKnigga
17.03.2018, 19:30
На UTF-8? Менял, не помогает.


ImGui::GetIO().Fonts->GetGlyphRangesCyrillic()?

CleanLegend
18.03.2018, 00:46
На UTF-8? Менял, не помогает.


в инициализацию imgui

io.Fonts->AddFontFromFileTTF(u8"C:\\Windows\\Fonts\\Tahoma.ttf", 14.0f, NULL, io.Fonts->GetGlyphRangesCyrillic());

Dark_Knight
19.03.2018, 02:28
C++:






char
tempPatch
[
MAX_PATH
]
;
GetTempPatch
(
MAX_PATH
,
tempPatch
)
;

Dark_Knight
19.03.2018, 03:35
@Dark_Knight (https://www.blast.hk/members/34/), так тоже пробовал, выводит пустоту, хз с чем связанно.







Все норм. Хз че у тебя.



upload_2018-3-19_1-34-35.pngDark_Knight · 19 Мар 2018 в 02:35' data-fancybox="lb-post-191813" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/12505/" style="cursor: pointer;" title="upload_2018-3-19_1-34-35.png">
https://forum.antichat.xyz/attachments/27191813/

DarkP1xel
19.03.2018, 16:08
@Dark_Knight (https://www.blast.hk/members/34/), так тоже пробовал, выводит пустоту, хз с чем связанно.







У тебя AS установлен?

DarkP1xel
19.03.2018, 16:44
Це шо такое?


AntiStealer...

DarkP1xel
19.03.2018, 16:54
Исправить самостоятельно как то возможно?


Нет, доступ к %TEMP% закрыт.

Revalto
19.03.2018, 21:20
Можно ли как то изменить положение объектов в зоне стрима? В плане, не так что бы оно изменилось у всех, а что бы я допустим мог с ними взаимодействовать ( допустим двигать мяч или сломать стол... )

-raymond-
23.03.2018, 17:58
warning : Невозможно найти средства сборки для Visual Studio 2017 - Windows XP (v141_xp). Установите Visual Studio 2017 - Windows XP (v141_xp), чтобы выполнить сборку с использованием средств сборки Visual Studio 2017 - Windows XP (v141_xp).

винда 7 как пофиксить

DarkP1xel
23.03.2018, 18:33
В свойствах проекта изменить вариант сборки с v141_xp на v141.

akatosh
24.03.2018, 00:28
VS2017:

Как решается проблема, когда "текст в кавычках" воспринимается как const char*, а не char*, и из-за этого некоторые функции говорят о несовместимости?

В одном проекте все нормально, другой ругается на "кавычки", значит где-то что-то надо в настройках поставить?

san0
24.03.2018, 01:15
VS2017:
Как решается проблема, когда "текст в кавычках" воспринимается как const char*, а не char*, и из-за этого некоторые функции говорят о несовместимости?
В одном проекте все нормально, другой ругается на "кавычки", значит где-то что-то надо в настройках поставить?


Считая для каких целей - в общем случае, модифицирование строкового литерала означает неопределенное поведение. Если нужно просто избавиться от const

C++:






char
*
a
=
const_cast

(
"asdasd"
)
;




То, что воспринимается как const char - это стандартом обозначено string literal - cppreference.com(http://en.cppreference.com/w/cpp/language/string_literal) (https://www.blast.hk/redirect/aHR0cDovL2VuLmNwcHJlZmVyZW5jZS5jb20vdy9jcHAvbGFuZ3 VhZ2Uvc3RyaW5nX2xpdGVyYWw)

То, что одном проекте нормально - это, вероятнее всего, выключены ошибки: что-то по типу Warning Level /W0 и Treat Warning As Errors

Либо это проект именно С (/TC) Параметры /Tc, /Tp, /TC, /TP (определение типа исходного файла)(https://msdn.microsoft.com/ru-ru/library/032xwy55.aspx) (https://www.blast.hk/redirect/aHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vcnUtcnUvbGlicm FyeS8wMzJ4d3k1NS5hc3B4).

ShapeGaz
28.03.2018, 14:01
Итак, я хочу сделать перехват функции SA-MP'a через SF плагин, может кто нибудь показать пример? Допустим та же ф-ция SendClientMessage.

P.S Я так понимаю раздел скорее всего не тот, подскажите куда надо было создавать тему, пожалуйста.