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

  #631  
Старый 30.12.2015, 16:28
Woofing Giraffe
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами: 5744580

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

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

Как в SF плагине сделать задержку?
Таймером
 
Ответить с цитированием

  #632  
Старый 30.12.2015, 16:35
Gabriel__
Постоянный
Регистрация: 23.06.2015
Сообщений: 411
С нами: 5731627

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

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

Как в SF плагине сделать задержку?
Должно заработать

#include "windows.h"

Sleep(кол-во миллесекунд);
 
Ответить с цитированием

  #633  
Старый 30.12.2015, 18:21
Woofing Giraffe
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами: 5744580

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

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

Должно заработать
#include "windows.h"

Sleep(кол-во миллесекунд);
Игру будет стопить. Либо таймером, либо в новом потоке
 
Ответить с цитированием

  #634  
Старый 30.12.2015, 19:52
mac
Познавший АНТИЧАТ
Регистрация: 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 машин), что не так?
 
Ответить с цитированием

  #635  
Старый 31.12.2015, 11:57
Gabriel__
Постоянный
Регистрация: 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;
}
 
Ответить с цитированием

  #636  
Старый 31.12.2015, 12:11
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Код:





Код:
GAME->GetAudio()->PlayBeatTrack(2);


И для СФ АПИ есть отдельная тема.
 
Ответить с цитированием

  #637  
Старый 03.01.2016, 17:03
Gabriel__
Постоянный
Регистрация: 23.06.2015
Сообщений: 411
С нами: 5731627

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

Почему во всех библиотеках функций c++. (заголовочных файлах) содержимое оформляется по такому шаблону ?

Код:





Код:
#ifndef _fileName_H_
#define _fileName_H_
... //функции,
... //функции,
... //функции
#endif;


Зачем нужны эти дефайны и т.п. Почему бы просто не засунуть все функции в файл ???
 
Ответить с цитированием

  #638  
Старый 06.01.2016, 10:19
Stas07
Участник форума
Регистрация: 18.04.2013
Сообщений: 264
С нами: 6877478

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

Скиньте, пожалуйста, урок по получению оффсетов для любой игры)

find out what writes to this address, в Cheat engine не даёт результатов.
 
Ответить с цитированием

  #639  
Старый 06.01.2016, 13:45
0pc0d3R
Постоянный
Регистрация: 27.12.2014
Сообщений: 550
С нами: 5987262

Репутация: 0


По умолчанию

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

Скиньте, пожалуйста, урок по получению оффсетов для любой игры)
find out what writes to this address, в Cheat engine не даёт результатов.
Тебе указатель нужно просто найти?
 
Ответить с цитированием

  #640  
Старый 06.01.2016, 13:53
0pc0d3R
Постоянный
Регистрация: 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)
 


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




ANTICHAT ™ © 2001- Antichat Kft.