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

  #3241  
Старый 10.01.2019, 02:22
jenekbueno
Участник форума
Регистрация: 12.10.2014
Сообщений: 156
С нами: 6096955

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

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

в имгуи можно как то сменить цвет этих стрелочек на затрагивая цвет текста?
это в функции BeginMenu
 
Ответить с цитированием

  #3242  
Старый 10.01.2019, 18:22
SiTrak
Участник форума
Регистрация: 14.01.2018
Сообщений: 192
С нами: 4384333

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

Как получить координату кости?
 
Ответить с цитированием

  #3243  
Старый 10.01.2019, 18:32
Неадекватная сова
Постоянный
Регистрация: 02.06.2018
Сообщений: 342
С нами: 4183567

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

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

Как получить координату кости?
Пример получения кости игрока и отрисовка их. ID костей находятся в CPed.h

Код:





Код:
#pragma region DrawBones
                    if (enableDrawBones) {
                        actor_info *actorInfo = SF->getSAMP()->getPlayers()->pRemotePlayer[i]->pPlayerData->pSAMP_Actor->pGTA_Ped;
                        CPed* Ped = GAME->GetPools()->GetPed((DWORD*)actorInfo);

                        float posX[15], posY[15];
                        int counter = 0;
                        CVector vPos[15];

                        for (int i = 1; i GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 3:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 4:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);

                                counter++;
                                break;
                            case 5:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 6:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 22:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 23:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 25:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 32:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 33:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 35:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 42:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 43:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 52:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 53:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;

                            }

                        }

                        for (int i = 0; i getGame()->convert3DCoordsToScreen(vPos[i].fX, vPos[i].fY, vPos[i].fZ, &posX[i], &posY[i]);

                        SF->getRender()->DrawLine(posX[0], posY[0], posX[1], posY[1], 1, 0xFFFFFFFF);
                        SF->getRender()->DrawLine(posX[0], posY[0], posX[11], posY[11], 1, 0xFFFFFFFF);
                        SF->getRender()->DrawLine(posX[0], posY[0], posX[13], posY[13], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[1], posY[1], posX[2], posY[2], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[2], posY[2], posX[5], posY[5], 1, 0xFFFFFFFF);
                        SF->getRender()->DrawLine(posX[2], posY[2], posX[8], posY[8], 1, 0xFFFFFFFF);
                        SF->getRender()->DrawLine(posX[2], posY[2], posX[3], posY[3], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[3], posY[3], posX[4], posY[4], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[5], posY[5], posX[6], posY[6], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[6], posY[6], posX[7], posY[7], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[8], posY[8], posX[9], posY[9], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[9], posY[9], posX[10], posY[10], 1, 0xFFFFFFFF);
                    }
#pragma endregion DrawBones
 
Ответить с цитированием

  #3244  
Старый 10.01.2019, 19:25
jenekbueno
Участник форума
Регистрация: 12.10.2014
Сообщений: 156
С нами: 6096955

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

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

Пример получения кости игрока и отрисовка их. ID костей находятся в CPed.h

Код:





Код:
#pragma region DrawBones
                    if (enableDrawBones) {
                        actor_info *actorInfo = SF->getSAMP()->getPlayers()->pRemotePlayer[i]->pPlayerData->pSAMP_Actor->pGTA_Ped;
                        CPed* Ped = GAME->GetPools()->GetPed((DWORD*)actorInfo);

                        float posX[15], posY[15];
                        int counter = 0;
                        CVector vPos[15];

                        for (int i = 1; i GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 3:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 4:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);

                                counter++;
                                break;
                            case 5:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 6:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 22:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 23:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 25:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 32:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 33:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 35:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 42:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 43:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 52:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 53:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;

                            }

                        }

                        for (int i = 0; i getGame()->convert3DCoordsToScreen(vPos[i].fX, vPos[i].fY, vPos[i].fZ, &posX[i], &posY[i]);

                        SF->getRender()->DrawLine(posX[0], posY[0], posX[1], posY[1], 1, 0xFFFFFFFF);
                        SF->getRender()->DrawLine(posX[0], posY[0], posX[11], posY[11], 1, 0xFFFFFFFF);
                        SF->getRender()->DrawLine(posX[0], posY[0], posX[13], posY[13], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[1], posY[1], posX[2], posY[2], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[2], posY[2], posX[5], posY[5], 1, 0xFFFFFFFF);
                        SF->getRender()->DrawLine(posX[2], posY[2], posX[8], posY[8], 1, 0xFFFFFFFF);
                        SF->getRender()->DrawLine(posX[2], posY[2], posX[3], posY[3], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[3], posY[3], posX[4], posY[4], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[5], posY[5], posX[6], posY[6], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[6], posY[6], posX[7], posY[7], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[8], posY[8], posX[9], posY[9], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[9], posY[9], posX[10], posY[10], 1, 0xFFFFFFFF);
                    }
#pragma endregion DrawBones

кто тебя учил плюсам?
 
Ответить с цитированием

  #3245  
Старый 10.01.2019, 19:49
#Rin
Познавший АНТИЧАТ
Регистрация: 09.08.2015
Сообщений: 1,213
С нами: 5663255

Репутация: 183


По умолчанию

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

case 1: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 3: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 4: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 5: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 6: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 22: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 23: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 25: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 32: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 33: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 35: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 42: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 43: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 52: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 53: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break;
Че за ...?

Перечисляй так:

C++:





Код:
case
1
:
case
3
:
case
4
:
case
5
:
case
6
:
case
22
:
// ...
Ped
->
GetTransformedBonePosition
(
(
eBone
)
i
,
&
vPos
[
counter
]
)
;
counter
++
;
break
;
 
Ответить с цитированием

  #3246  
Старый 10.01.2019, 19:51
Неадекватная сова
Постоянный
Регистрация: 02.06.2018
Сообщений: 342
С нами: 4183567

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

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

  #3247  
Старый 11.01.2019, 00:07
Harryss
Участник форума
Регистрация: 07.03.2015
Сообщений: 233
С нами: 5887139

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

Вынес за блок init, но уведомляет об оружии в руке только при загрузке скрипта. Почему лишь при загрузке?

C++:





Код:
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
(
-
1
,
"{FFFFFF}• {FFDA44}[SAMPFUNCS]: {FFFFFF}Loaded."
)
;
init
=
true
;
}
// Уведомляет только 1 раз, держа оружие в руке при подгрузке скрипта. без использования static флудит в чат, пытался исправить установкой 0 значения - сразу же заменяет, return'нить - не помогло.
static
int
current_weapon
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
byteCurrentWeapon
;
if
(
current_weapon
==
31
)
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"{FFFFFF}• {FFDA44}[SAMPFUNCS]: {FFFFFF}M4A1 at your right hand."
)
;
current_weapon
=
0
;
}
}
 
Ответить с цитированием

  #3248  
Старый 11.01.2019, 00:41
Romelo
Постоянный
Регистрация: 21.11.2014
Сообщений: 540
С нами: 6039222

Репутация: 163


По умолчанию

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

Вынес за блок init, но уведомляет об оружии в руке только при загрузке скрипта. Почему лишь при загрузке?

C++:





Код:
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
(
-
1
,
"{FFFFFF}• {FFDA44}[SAMPFUNCS]: {FFFFFF}Loaded."
)
;
init
=
true
;
}
// Уведомляет только 1 раз, держа оружие в руке при подгрузке скрипта. без использования static флудит в чат, пытался исправить установкой 0 значения - сразу же заменяет, return'нить - не помогло.
static
int
current_weapon
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
byteCurrentWeapon
;
if
(
current_weapon
==
31
)
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"{FFFFFF}• {FFDA44}[SAMPFUNCS]: {FFFFFF}M4A1 at your right hand."
)
;
current_weapon
=
0
;
}
}

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

  #3249  
Старый 11.01.2019, 07:08
jenekbueno
Участник форума
Регистрация: 12.10.2014
Сообщений: 156
С нами: 6096955

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

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

Че за ...?
Перечисляй так:

C++:





Код:
case
1
:
case
3
:
case
4
:
case
5
:
case
6
:
case
22
:
// ...
Ped
->
GetTransformedBonePosition
(
(
eBone
)
i
,
&
vPos
[
counter
]
)
;
counter
++
;
break
;

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

  #3250  
Старый 11.01.2019, 17:39
Soreso
Новичок
Регистрация: 03.01.2019
Сообщений: 4
С нами: 3873616

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

Попытался сделать получение координат кости и рисовать на них, но чё то не то

C++:





Код:
#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
#include 
#include 
#include 
#include 
#define FUNC_IsVisible 0x536BC0
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
bool
CALLBACK
Present
(
CONST RECT
*
pSourceRect
,
CONST RECT
*
pDestRect
,
HWND hDestWindowOverride
,
CONST RGNDATA
*
pDirtyRegion
)
{
if
(
SUCCEEDED
(
SF
->
getRender
(
)
->
BeginRender
(
)
)
)
// если рендерер готов к рисованию
{
for
(
int
i
=
0
;
i

getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
;
CPed
*
Ped
=
GAME
->
GetPools
(
)
->
GetPed
(
(
DWORD
*
)
actorInfo
)
;
float
posX
[
15
]
,
posY
[
15
]
;
int
counter
=
0
;
CVector vPos
[
15
]
;
for
(
int
i
=
1
;
i

GetTransformedBonePosition
(
(
eBone
)
i
,
&
vPos
[
counter
]
)
;
counter
++
;
case
3
:
Ped
->
GetTransformedBonePosition
(
(
eBone
)
i
,
&
vPos
[
counter
]
)
;
counter
++
;
case
4
:
Ped
->
GetTransformedBonePosition
(
(
eBone
)
i
,
&
vPos
[
counter
]
)
;
counter
++
;
case
5
:
Ped
->
GetTransformedBonePosition
(
(
eBone
)
i
,
&
vPos
[
counter
]
)
;
counter
++
;
case
6
:
Ped
->
GetTransformedBonePosition
(
(
eBone
)
i
,
&
vPos
[
counter
]
)
;
counter
++
;
case
22
:
Ped
->
GetTransformedBonePosition
(
(
eBone
)
i
,
&
vPos
[
counter
]
)
;
counter
++
;
case
23
:
Ped
->
GetTransformedBonePosition
(
(
eBone
)
i
,
&
vPos
[
counter
]
)
;
counter
++
;
case
25
:
Ped
->
GetTransformedBonePosition
(
(
eBone
)
i
,
&
vPos
[
counter
]
)
;
counter
++
;
case
32
:
Ped
->
GetTransformedBonePosition
(
(
eBone
)
i
,
&
vPos
[
counter
]
)
;
counter
++
;
case
33
:
Ped
->
GetTransformedBonePosition
(
(
eBone
)
i
,
&
vPos
[
counter
]
)
;
counter
++
;
case
35
:
Ped
->
GetTransformedBonePosition
(
(
eBone
)
i
,
&
vPos
[
counter
]
)
;
counter
++
;
case
42
:
Ped
->
GetTransformedBonePosition
(
(
eBone
)
i
,
&
vPos
[
counter
]
)
;
counter
++
;
case
43
:
Ped
->
GetTransformedBonePosition
(
(
eBone
)
i
,
&
vPos
[
counter
]
)
;
counter
++
;
case
52
:
Ped
->
GetTransformedBonePosition
(
(
eBone
)
i
,
&
vPos
[
counter
]
)
;
counter
++
;
case
53
:
Ped
->
GetTransformedBonePosition
(
(
eBone
)
i
,
&
vPos
[
counter
]
)
;
counter
++
;
}
}
if
(
Ped
->
IsOnScreen
(
)
)
{
for
(
int
i
=
0
;
i

getGame
(
)
->
convert3DCoordsToScreen
(
vPos
[
i
]
.
fX
,
vPos
[
i
]
.
fY
,
vPos
[
i
]
.
fZ
,
&
posX
[
i
]
,
&
posY
[
i
]
)
;
SF
->
getRender
(
)
->
DrawLine
(
posX
[
0
]
,
posY
[
0
]
,
posX
[
1
]
,
posY
[
1
]
,
2
,
0xFFFFFFFF
)
;
SF
->
getRender
(
)
->
DrawLine
(
posX
[
0
]
,
posY
[
0
]
,
posX
[
11
]
,
posY
[
11
]
,
2
,
0xFFFFFFFF
)
;
SF
->
getRender
(
)
->
DrawLine
(
posX
[
0
]
,
posY
[
0
]
,
posX
[
13
]
,
posY
[
13
]
,
2
,
0xFFFFFFFF
)
;
SF
->
getRender
(
)
->
DrawLine
(
posX
[
1
]
,
posY
[
1
]
,
posX
[
2
]
,
posY
[
2
]
,
2
,
0xFFFFFFFF
)
;
SF
->
getRender
(
)
->
DrawLine
(
posX
[
2
]
,
posY
[
2
]
,
posX
[
5
]
,
posY
[
5
]
,
2
,
0xFFFFFFFF
)
;
SF
->
getRender
(
)
->
DrawLine
(
posX
[
2
]
,
posY
[
2
]
,
posX
[
8
]
,
posY
[
8
]
,
2
,
0xFFFFFFFF
)
;
SF
->
getRender
(
)
->
DrawLine
(
posX
[
2
]
,
posY
[
2
]
,
posX
[
3
]
,
posY
[
3
]
,
2
,
0xFFFFFFFF
)
;
SF
->
getRender
(
)
->
DrawLine
(
posX
[
3
]
,
posY
[
3
]
,
posX
[
4
]
,
posY
[
4
]
,
2
,
0xFFFFFFFF
)
;
SF
->
getRender
(
)
->
DrawLine
(
posX
[
5
]
,
posY
[
5
]
,
posX
[
6
]
,
posY
[
6
]
,
2
,
0xFFFFFFFF
)
;
SF
->
getRender
(
)
->
DrawLine
(
posX
[
6
]
,
posY
[
6
]
,
posX
[
7
]
,
posY
[
7
]
,
2
,
0xFFFFFFFF
)
;
SF
->
getRender
(
)
->
DrawLine
(
posX
[
8
]
,
posY
[
8
]
,
posX
[
9
]
,
posY
[
9
]
,
2
,
0xFFFFFFFF
)
;
SF
->
getRender
(
)
->
DrawLine
(
posX
[
9
]
,
posY
[
9
]
,
posX
[
10
]
,
posY
[
10
]
,
2
,
0xFFFFFFFF
)
;
}
SF
->
getRender
(
)
->
EndRender
(
)
;
// завершаем рисование
}
}
;
return
true
;
// возвращаем положительный результат
}
;
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("stillobj", sasas);
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
;
}


В чём ошибка?
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.