 |
|

18.08.2018, 08:58
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
AsiPlugin от тима в помощь.
|
|
|

18.08.2018, 10:01
|
|
Постоянный
Регистрация: 23.05.2017
Сообщений: 545
С нами:
4723927
Репутация:
158
|
|
Сообщение от Babayka2016
Как она вообще устроена?
C++:
Код:
#include
double
foo
(
double
x
,
double
y
)
{
return
atan2
(
y
,
x
)
;
}
возможно потребуется перевести в градусы
|
|
|

18.08.2018, 13:46
|
|
Познавший АНТИЧАТ
Регистрация: 22.02.2017
Сообщений: 1,474
С нами:
4852492
Репутация:
88
|
|
Как исправить?
Код:
Код:
||=== Build: Debug Win32 in SFPlugin (compiler: GNU GCC Compiler) ===|
C:\Documents and Settings\Admin\Рабочий стол\Новая папка\SFPlugin\main.cpp|6|fatal error: SAMPFUNCS_API.h: No such file or directory|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
C++:
Код:
#include
#include
#include
#include
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
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
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"SAMPFUNCS Plugin loaded."
)
;
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
;
}
Файл SAMPFUNCS_API.h существует
|
|
|

18.08.2018, 14:11
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Что в путях проекта стоит?

|
|
|

18.08.2018, 14:13
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от yuy111
Как исправить?
Код:
Код:
||=== Build: Debug Win32 in SFPlugin (compiler: GNU GCC Compiler) ===|
C:\Documents and Settings\Admin\Рабочий стол\Новая папка\SFPlugin\main.cpp|6|fatal error: SAMPFUNCS_API.h: No such file or directory|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
C++:
Код:
#include
#include
#include
#include
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
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
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"SAMPFUNCS Plugin loaded."
)
;
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
;
}
Файл SAMPFUNCS_API.h существует
В sln есть виртуальные директории или типа того. Что бы GCC подсосал файл по не верному пути надо ему об этом сказать через `-I`. qmake и qbs делают это автоматически. Но лучше исправить путь, ведь `SAMPFUNCS_API.h` и `main.cpp` лежат не в одной папке.
|
|
|

18.08.2018, 14:19
|
|
Познавший АНТИЧАТ
Регистрация: 22.02.2017
Сообщений: 1,474
С нами:
4852492
Репутация:
88
|
|
Сообщение от Dark_Knight
Что в путях проекта стоит?

|
|
|

18.08.2018, 14:26
|
|
Флудер
Регистрация: 03.08.2016
Сообщений: 2,363
С нами:
5145387
Репутация:
183
|
|
SF API создан для visual studio (у тебя code::blocks). либо качай вс, либо переписывай апи под кб (но ты заебешся)
|
|
|

18.08.2018, 14:30
|
|
Постоянный
Регистрация: 14.11.2017
Сообщений: 319
С нами:
4472205
Репутация:
163
|
|
Сообщение от _=Gigant=_
how to get player current weapon name, here what i did
Код:
Код:
const struct weapon_entry *weapon = weapon_list;
sprintf(ctarget_wep, "{31f8ff}Weapon{FFFFFF} %s{FFFFFF} %u", gta_weapon_get_by_name(weapon->name), g_Players->pRemotePlayer[Target_PlayerID]->pPlayerData->onFootData.byteCurrentWeapon);
const struct weapon_entry weapon_list[] =
{
{ 0, 0, -1, "Fist" },
{ 1, 0, 331, "Brass Knuckles" },
{ 2, 1, 333, "Golf Club" },
{ 3, 1, 334, "Nitestick" },
{ 4, 1, 335, "Knife" },
{ 5, 1, 336, "Baseball Bat" },
{ 6, 1, 337, "Shovel" },
{ 7, 1, 338, "Pool Cue" },
{ 8, 1, 339, "Katana" },
{ 9, 1, 341, "Chainsaw" },
{ 22, 2, 346, "Pistol" },
{ 23, 2, 347, "Silenced Pistol" },
{ 24, 2, 348, "Desert Eagle" },
{ 25, 3, 349, "Shotgun" },
{ 26, 3, 350, "Sawn-Off Shotgun" },
{ 27, 3, 351, "SPAZ12" },
{ 28, 4, 352, "Micro UZI" },
{ 29, 4, 353, "MP5" },
{ 32, 4, 372, "Tech9" },
{ 30, 5, 355, "AK47" },
{ 31, 5, 356, "M4" },
{ 33, 6, 357, "Country Rifle" },
{ 34, 6, 358, "Sniper Rifle" },
{ 35, 7, 359, "Rocket Launcher" },
{ 36, 7, 360, "Heat Seeking RPG" },
{ 37, 7, 361, "Flame Thrower" },
{ 38, 7, 362, "Minigun" },
{ 16, 8, 342, "Grenade" },
{ 17, 8, 343, "Teargas" },
{ 18, 8, 344, "Molotov Cocktail" },
{ 39, 8, 363, "Remote Explosives" },
{ 41, 9, 365, "Spray Can" },
{ 42, 9, 366, "Fire Extinguisher" },
{ 43, 9, 367, "Camera" },
{ 10, 10, 321, "Dildo 1" },
{ 11, 10, 322, "Dildo 2" },
{ 12, 10, 323, "Vibe 1" },
{ 13, 10, 324, "Vibe 2" },
{ 14, 10, 325, "Flowers" },
{ 15, 10, 326, "Cane" },
{ 44, 11, 368, "NV Goggles" },
{ 45, 11, 369, "IR Goggles" },
{ 46, 11, 371, "Parachute" },
{ 40, 12, 364, "Detonator" },
{ -1, -1, -1, NULL }
};
but this shows
thanks for help !
const struct weapon_entry *weapon = &weapon_list[byteCurrentWeapon];
sprintf(buf, "weapon: %s", weapon->name);
|
|
|

18.08.2018, 15:54
|
|
Участник форума
Регистрация: 19.01.2017
Сообщений: 130
С нами:
4901705
Репутация:
98
|
|
Сообщение от ALF
const struct weapon_entry *weapon = &weapon_list[byteCurrentWeapon];
sprintf(buf, "weapon: %s", weapon->name);
it shows name but incorrect for example if player use pistol it shows molotov cocktail but sometimes it show correct name like when player have Fist or Catana
i did it like this
stRemotePlayer *pPlayer = g_SAMP->pPools->pPlayer->pRemotePlayer[player_target];
const struct weapon_entry *weapon = &weapon_list[pPlayer->pPlayerData->onFootData.byteCurrentWeapon];

|
|
|

18.08.2018, 16:07
|
|
Познающий
Регистрация: 19.01.2017
Сообщений: 51
С нами:
4901705
Репутация:
98
|
|
Приветствую. Создаю бота, который ездит на машине.
Есть координаты машины и чекпоинта.
Как рассчитать угол между двумя точками, куда нужно повернуть машине?
P.S Без SAMPFUNCS и SAMP LUA.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|