 |
|

06.02.2015, 21:25
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
PHP:
Код:
SF
-
>
getGame
(
)
-
>
convert3DCoordsToScreen
(
0.0
,
0.0
,
10.0
,
&
pos
[
0
]
,
&
pos
[
1
]
)
;
|
|
|

07.02.2015, 04:26
|
|
Постоянный
Регистрация: 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.
Прошу помочь.
Вроде должно работать
|
|
|

07.02.2015, 13:58
|
|
Новичок
Регистрация: 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
;
}
Может кто помочь?
|
|
|

07.02.2015, 14:08
|
|
Постоянный
Регистрация: 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
;
// лишнее
}
Может кто помочь?
|
|
|

07.02.2015, 14:19
|
|
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами:
6915558
Репутация:
183
|
|
GetActorHandleFromSAMPPlayerID при невалидном игроке возвращает 0, вроде как.
|
|
|

07.02.2015, 14:19
|
|
Новичок
Регистрация: 13.12.2020
Сообщений: 0
С нами:
2851002
Репутация:
0
|
|
Неа, компилятор ругается.
Код:
Код:
Ошибка 1 error C2440: инициализация: невозможно преобразовать "stRemotePlayer **" в "stRemotePlayer *"
Сообщение от legend2360
GetActorHandleFromSAMPPlayerID при невалидном игроке возвращает 0, вроде как.
Проверил, возвращает -1.
|
|
|

07.02.2015, 14:48
|
|
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами:
6822856
Репутация:
213
|
|
Возможно нужна еще проверка на IsListed
|
|
|

07.02.2015, 15:03
|
|
Флудер
Регистрация: 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];
|
|
|

07.02.2015, 16:08
|
|
Постоянный
Регистрация: 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];
Так очевидно что он не свои координаты получить пытается
|
|
|

07.02.2015, 16:33
|
|
Флудер
Регистрация: 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)
|
|
|
|