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

  #391  
Старый 06.02.2015, 21:25
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

PHP:





Код:
SF
-
>
getGame
(
)
-
>
convert3DCoordsToScreen
(
0.0
,
0.0
,
10.0
,
&
pos
[
0
]
,
&
pos
[
1
]
)
;
 
Ответить с цитированием

  #392  
Старый 07.02.2015, 04:26
NarutoUA
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами: 6822856

Репутация: 213


По умолчанию

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

PHP:





Код:
SF
-
>
getGame
(
)
-
>
convert3DCoordsToScreen
(
0.0
,
0.0
,
10.0
,
&
pos
[
0
]
,
&
pos
[
1
]
)
;

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

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

SF API: вылетает игра при выполнении вот такой штуки:

PHP:





Код:
float  pos
[
2
]
;
SF
-
>
getGame
(
)
-
>
convert3DCoordsToScreen
(
0.0
,
0.0
,
10.0
,
&
pos
[
0
]
,
&
pos
[
1
]
)
;


вылет, даже если смотреть на координаты 0,0,10.
Прошу помочь.
Вроде должно работать
 
Ответить с цитированием

  #393  
Старый 07.02.2015, 13:58
dimoz
Новичок
Регистрация: 13.12.2020
Сообщений: 0
С нами: 2851002

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

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

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

Вроде должно работать
Спасибо, но я догадался убрать звездочку сам)

И еще вопрос из разряда нубо:

крашит игра при выполнении следующего кода:

PHP:





Код:
float pos
[
3
]
;
for
(
int i
=
MAX_PLAYERS
;
i
!=
0
;
i
--
)
{
if
(
SF
-
>
getSAMP
(
)
-
>
getPlayers
(
)
-
>
GetActorHandleFromSAMPPlayerID
(
i
)
==
-
1
)
continue
;
stRemotePlayer
*
pPlayer
=
SF
-
>
getSAMP
(
)
-
>
getPlayers
(
)
-
>
pRemotePlayer
[
i
]
;
pos
[
0
]
=
pPlayer
-
>
pPlayerData
-
>
fOnFootPos
[
0
]
;
pos
[
1
]
=
pPlayer
-
>
pPlayerData
-
>
fOnFootPos
[
1
]
;
pos
[
2
]
=
pPlayer
-
>
pPlayerData
-
>
fOnFootPos
[
2
]
;
break
;
}


Может кто помочь?
 
Ответить с цитированием

  #394  
Старый 07.02.2015, 14:08
NarutoUA
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами: 6822856

Репутация: 213


По умолчанию

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

Спасибо, но я догадался убрать звездочку сам)

И еще вопрос из разряда нубо:
крашит игра при выполнении следующего кода:

PHP:





Код:
float pos
[
3
]
;
for
(
int i
=
MAX_PLAYERS
;
i
!=
0
;
i
--
)
// если не ошибаюсь, MAX_PLAYERS = 1004, а не 1000, поэтому лучше for (int i = 0; i
getSAMP
(
)
-
>
getPlayers
(
)
-
>
GetActorHandleFromSAMPPlayerID
(
i
)
==
-
1
)
continue
;
stRemotePlayer
*
pPlayer
=
&
SF
-
>
getSAMP
(
)
-
>
getPlayers
(
)
-
>
pRemotePlayer
[
i
]
;
// вроде так
pos
[
0
]
=
pPlayer
-
>
pPlayerData
-
>
fOnFootPos
[
0
]
;
pos
[
1
]
=
pPlayer
-
>
pPlayerData
-
>
fOnFootPos
[
1
]
;
pos
[
2
]
=
pPlayer
-
>
pPlayerData
-
>
fOnFootPos
[
2
]
;
break
;
// лишнее
}


Может кто помочь?
 
Ответить с цитированием

  #395  
Старый 07.02.2015, 14:19
itsLegend
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами: 6915558

Репутация: 183


По умолчанию

GetActorHandleFromSAMPPlayerID при невалидном игроке возвращает 0, вроде как.
 
Ответить с цитированием

  #396  
Старый 07.02.2015, 14:19
dimoz
Новичок
Регистрация: 13.12.2020
Сообщений: 0
С нами: 2851002

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

Неа, компилятор ругается.

Код:





Код:
Ошибка    1    error C2440: инициализация: невозможно преобразовать "stRemotePlayer **" в "stRemotePlayer *"


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

GetActorHandleFromSAMPPlayerID при невалидном игроке возвращает 0, вроде как.
Проверил, возвращает -1.
 
Ответить с цитированием

  #397  
Старый 07.02.2015, 14:48
NarutoUA
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами: 6822856

Репутация: 213


По умолчанию

Возможно нужна еще проверка на IsListed
 
Ответить с цитированием

  #398  
Старый 07.02.2015, 15:03
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

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

Спасибо, но я догадался убрать звездочку сам)

И еще вопрос из разряда нубо:
крашит игра при выполнении следующего кода:

PHP:





Код:
float pos
[
3
]
;
for
(
int i
=
MAX_PLAYERS
;
i
!=
0
;
i
--
)
{
if
(
SF
-
>
getSAMP
(
)
-
>
getPlayers
(
)
-
>
GetActorHandleFromSAMPPlayerID
(
i
)
==
-
1
)
continue
;
stRemotePlayer
*
pPlayer
=
SF
-
>
getSAMP
(
)
-
>
getPlayers
(
)
-
>
pRemotePlayer
[
i
]
;
pos
[
0
]
=
pPlayer
-
>
pPlayerData
-
>
fOnFootPos
[
0
]
;
pos
[
1
]
=
pPlayer
-
>
pPlayerData
-
>
fOnFootPos
[
1
]
;
pos
[
2
]
=
pPlayer
-
>
pPlayerData
-
>
fOnFootPos
[
2
]
;
break
;
}


Может кто помочь?
Если ты тут пытаешься получить свои координаты, когда ты пешком, то вот так будет проще:

Pos[0] = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.fPosition[0];

Pos[1] = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.fPosition[1];

Pos[2] = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.fPosition[2];
 
Ответить с цитированием

  #399  
Старый 07.02.2015, 16:08
NarutoUA
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами: 6822856

Репутация: 213


По умолчанию

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

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

Pos[0] = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.fPosition[0];
Pos[1] = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.fPosition[1];
Pos[2] = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.fPosition[2];
Так очевидно что он не свои координаты получить пытается
 
Ответить с цитированием

  #400  
Старый 07.02.2015, 16:33
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

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

Так очевидно что он не свои координаты получить пытается
ну тогда

Код:





Код:
uint32_t null = *(int*)0xB74490;
                null += 0x4;
                null = *(int*)null;
                for (uint32_t one = 0; one = 0x00) && (two getSAMP()->getPlayers()->GetSAMPPlayerIDFromGTAHandle(Ppos_two);
                        if ((SF->getSAMP()->getPlayers()->IsPlayerDefined(P_id)) && (P_id != SF->getSAMP()->getPlayers()->sLocalPlayerID))
                        {
                            if ((SF->getSAMP()->getPlayers()->pRemotePlayer[P_id]->iIsNPC == false) && (SF->getSAMP()->getPlayers()->pRemotePlayer[P_id]->pPlayerData->iAFKState != 2))
                            {
                                CVector result;
                                typedef void(__thiscall *CPed__getBonePositionWithOffset) (void *_this, CVector *offset, int bodeId, bool includeAnim);
                                (CPed__getBonePositionWithOffset(0x5E01C0))(SF->getSAMP()->getPlayers()->pRemotePlayer[P_id]->pPlayerData->pSAMP_Actor->pGTA_Ped, &result, 1, true);
                               //resul.fX, resul.fY и resul.fZ - координаты игрока. Чекает пешком и в машине
                            }
                        }
                    }
                }
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.