 |
|

30.12.2015, 16:28
|
|
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами:
5744580
Репутация:
28
|
|
Сообщение от andrewanfimov
Как в SF плагине сделать задержку?
Таймером
|
|
|

30.12.2015, 16:35
|
|
Постоянный
Регистрация: 23.06.2015
Сообщений: 411
С нами:
5731627
Репутация:
108
|
|
Сообщение от andrewanfimov
Как в SF плагине сделать задержку?
Должно заработать
#include "windows.h"
Sleep(кол-во миллесекунд);
|
|
|

30.12.2015, 18:21
|
|
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами:
5744580
Репутация:
28
|
|
Сообщение от Gabriel__
Должно заработать
#include "windows.h"
Sleep(кол-во миллесекунд);
Игру будет стопить. Либо таймером, либо в новом потоке
|
|
|

30.12.2015, 19:52
|
|
Познавший АНТИЧАТ
Регистрация: 06.09.2014
Сообщений: 1,317
С нами:
6148765
Репутация:
168
|
|
C++:
Код:
void
lspd1cars
(
)
{
Vehicle police3Veh1
,
police3Veh2
,
police3Veh3
,
police3Veh4
,
police3Veh5
,
// Машины
policebVeh1
,
policebVeh2
,
policebVeh3
,
policeVeh1
,
policeVeh2
,
policeVeh3
,
police2Veh1
,
police2Veh2
,
polmavVeh1
,
polmavVeh2
,
policetVeh1
,
policetVeh2
;
int
police3Spawned
=
0
,
// Количество заспавненных машин
policebSpawned
=
0
,
policeSpawned
=
0
,
police2Spawned
=
0
,
polmavSpawned
=
0
,
policetSpawned
=
0
;
int
police3SpawnDistance
=
0
,
// Дальность спауна от игрока
policebSpawnDistance
=
0
,
policeSpawnDistance
=
0
,
police2SpawnDistance
=
0
,
polmavSpawnDistance
=
0
,
policetSpawnDistance
=
0
;
Ped playerPed
=
PLAYER
::
PLAYER_PED_ID
(
)
;
Vehicle veh
=
PED
::
GET_VEHICLE_PED_IS_USING
(
playerPed
)
;
Vector3 position
=
ENTITY
::
GET_ENTITY_COORDS
(
playerPed
,
1
)
;
DWORD police3
=
GAMEPLAY
::
GET_HASH_KEY
(
"police3"
)
;
// ПД машина
police3SpawnDistance
=
GAMEPLAY
::
GET_DISTANCE_BETWEEN_COORDS
(
408.203
,
-
988.917
,
29.021
,
position
.
x
,
position
.
y
,
position
.
z
,
0
)
;
if
(
police3SpawnDistance
100
&&
police3VehDistance
>
100
)
{
if
(
police3Spawned
==
5
)
{
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
police3Veh1
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
police3Veh2
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
police3Veh3
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
police3Veh4
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
police3Veh5
)
;
police3Spawned
-=
5
;
}
}
DWORD policeb
=
GAMEPLAY
::
GET_HASH_KEY
(
"policeb"
)
;
// Мотоцикл
policebSpawnDistance
=
GAMEPLAY
::
GET_DISTANCE_BETWEEN_COORDS
(
409.370
,
-
1004.351
,
28.742
,
position
.
x
,
position
.
y
,
position
.
z
,
0
)
;
if
(
policebSpawnDistance
100
&&
policebVehDistance
>
100
)
{
if
(
policebSpawned
==
3
)
{
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
policebVeh1
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
policebVeh2
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
policebVeh3
)
;
policebSpawned
-=
3
;
}
}
DWORD police
=
GAMEPLAY
::
GET_HASH_KEY
(
"police"
)
;
// Stainer
policeSpawnDistance
=
GAMEPLAY
::
GET_DISTANCE_BETWEEN_COORDS
(
431.053
,
-
1026.89
,
28.518
,
position
.
x
,
position
.
y
,
position
.
z
,
0
)
;
if
(
policeSpawnDistance
100
&&
policeVehDistance
>
100
)
{
if
(
policeSpawned
==
3
)
{
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
policeVeh1
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
policeVeh2
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
policeVeh3
)
;
policeSpawned
-=
3
;
}
}
DWORD police2
=
GAMEPLAY
::
GET_HASH_KEY
(
"police2"
)
;
// Buffalo
police2SpawnDistance
=
GAMEPLAY
::
GET_DISTANCE_BETWEEN_COORDS
(
438.583
,
-
1026.324
,
28.391
,
position
.
x
,
position
.
y
,
position
.
z
,
0
)
;
if
(
police2SpawnDistance
100
&&
police2VehDistance
>
100
)
{
if
(
police2Spawned
==
2
)
{
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
police2Veh1
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
police2Veh2
)
;
police2Spawned
-=
2
;
}
}
DWORD polmav
=
GAMEPLAY
::
GET_HASH_KEY
(
"polmav"
)
;
// Вертолет
polmavSpawnDistance
=
GAMEPLAY
::
GET_DISTANCE_BETWEEN_COORDS
(
450.454
,
-
981.296
,
44.078
,
position
.
x
,
position
.
y
,
position
.
z
,
0
)
;
if
(
polmavSpawnDistance
100
&&
polmavVehDistance
>
100
)
{
if
(
polmavSpawned
==
2
)
{
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
polmavVeh1
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
polmavVeh2
)
;
polmavSpawned
-=
2
;
}
}
DWORD policet
=
GAMEPLAY
::
GET_HASH_KEY
(
"policet"
)
;
// Автозак
policetSpawnDistance
=
GAMEPLAY
::
GET_DISTANCE_BETWEEN_COORDS
(
462.846
,
-
1019.376
,
28.076
,
position
.
x
,
position
.
y
,
position
.
z
,
0
)
;
if
(
policetSpawnDistance
100
&&
policetVehDistance
>
100
)
{
if
(
policetSpawned
==
2
)
{
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
policetVeh1
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
policetVeh2
)
;
policetSpawned
-=
2
;
}
}
}
Маверики и грузовики (которые по 2) спавнятся отлично, остальные не останавливаются и спавнятся в большом количестве (25-30 машин), что не так?
|
|
|

31.12.2015, 11:57
|
|
Постоянный
Регистрация: 23.06.2015
Сообщений: 411
С нами:
5731627
Репутация:
108
|
|
Почему когда запускаю самп с сф плагином воспроизводится музыка из клуба джиззи. Исходник брал из вики (самый первый)
Код:
Код:
#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;
int i = std::stoi(param);
char buf[128];
stRemotePlayer *pPlayer = SF->getSAMP()->getPlayers()->pRemotePlayer[i];
if (!pPlayer) return;
sprintf(buf, "Nickname - %s, Ping - %d, 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;
GAME->GetAudio()->PlayBeatTrack(2);
if (!SF->getSAMP()->IsInitialized())
return;
SF->getSAMP()->getChat()->AddChatMessage( D3DCOLOR_XRGB( 0, 0xAA, 0 ), "SAMPFUNCS Plugin loaded )" );
SF->getSAMP()->registerChatCommand("showinfo", cmd_show_info_player);
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;
}
|
|
|

31.12.2015, 12:11
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Код:
Код:
GAME->GetAudio()->PlayBeatTrack(2);
И для СФ АПИ есть отдельная тема.
|
|
|

03.01.2016, 17:03
|
|
Постоянный
Регистрация: 23.06.2015
Сообщений: 411
С нами:
5731627
Репутация:
108
|
|
Почему во всех библиотеках функций c++. (заголовочных файлах) содержимое оформляется по такому шаблону ?
Код:
Код:
#ifndef _fileName_H_
#define _fileName_H_
... //функции,
... //функции,
... //функции
#endif;
Зачем нужны эти дефайны и т.п. Почему бы просто не засунуть все функции в файл ???
|
|
|

06.01.2016, 10:19
|
|
Участник форума
Регистрация: 18.04.2013
Сообщений: 264
С нами:
6877478
Репутация:
113
|
|
Скиньте, пожалуйста, урок по получению оффсетов для любой игры)
find out what writes to this address, в Cheat engine не даёт результатов.
|
|
|

06.01.2016, 13:45
|
|
Постоянный
Регистрация: 27.12.2014
Сообщений: 550
С нами:
5987262
Репутация:
0
|
|
Сообщение от Stas07
Скиньте, пожалуйста, урок по получению оффсетов для любой игры)
find out what writes to this address, в Cheat engine не даёт результатов.
Тебе указатель нужно просто найти?
|
|
|

06.01.2016, 13:53
|
|
Постоянный
Регистрация: 27.12.2014
Сообщений: 550
С нами:
5987262
Репутация:
0
|
|
Сообщение от _CHUCK_
нужен аналог этого опкода на c++ 04C4: store_coords_to 15@ 16@ 17@ from_actor $PLAYER_ACTOR with_offset 3.0 3.0 -1.0
C++:
Код:
SF
->
getCLEO
(
)
->
callOpcode
(
"04C4: store_coords_to 15@ 16@ 17@ from_actor $PLAYER_ACTOR with_offset 3.0 3.0 -1.0"
)
;
float
stored
[
3
]
;
stored
[
0
]
=
SF
->
getCLEO
(
)
->
GetLocalVar
(
15
)
;
// x
stored
[
1
]
=
SF
->
getCLEO
(
)
->
GetLocalVar
(
16
)
;
// y
stored
[
2
]
=
SF
->
getCLEO
(
)
->
GetLocalVar
(
17
)
;
// z
А что тебе мешает вызвать его клео обработчиком?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|