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

  #1  
Старый 18.08.2018, 14:30
ALF
Постоянный
Регистрация: 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);
 
Ответить с цитированием

  #2  
Старый 18.08.2018, 15:54
_=Gigant=_
Участник форума
Регистрация: 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];

 
Ответить с цитированием

  #3  
Старый 18.08.2018, 18:11
ALF
Постоянный
Регистрация: 14.11.2017
Сообщений: 319
С нами: 4472205

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

Цитата:
Сообщение от _=Gigant=_  

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];


C++:





Код:
stRemotePlayer
*
pPlayer
=
g_SAMP
->
pPools
->
pPlayer
->
pRemotePlayer
[
player_target
]
;
for
(
int
i
=
0
;
weapon_list
[
i
]
.
name
!=
nullptr
;
i
++
)
{
const
struct
weapon_entry
*
weapon
=
&
weapon_list
[
i
]
;
if
(
weapon
->
id
==
pPlayer
->
pPlayerData
->
onFootData
.
byteCurrentWeapon
)
{
sprintf
(
buf
,
"weapon: %s"
,
weapon
->
name
)
;
}
}
 
Ответить с цитированием

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

Репутация: 183


По умолчанию

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

C++:





Код:
sprintf
(
buf
,
"weapon: %s"
,
weapon
->
name
)
;

Лучше после spintf добавить брик и заменить его на strcpy, а еще лучше юзать std::string
 
Ответить с цитированием

  #5  
Старый 18.08.2018, 03:16
Babayka2016
Познающий
Регистрация: 19.01.2017
Сообщений: 51
С нами: 4901705

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

Приветствую. Столкнулся с такой проблемой:

К примеру, есть координаты множества чекпоинтов, они расположены хаотично.

Есть координаты машины и поворот персонажа в ней:

Поворот персонажа:

public float Get_Rotation() {

int base_address = mem.ReadInt(0xB6F5F0);

float angel = mem.ReadFloat(base_address + 0x558);

return angel * 6;

}

Координаты машины:

public float[] Get_Car_Coord()

{

float[] Position = new float[2];

int car_offset = mem.ReadInt(0xBA18FC);

int offset_to_matrix_car = mem.ReadInt(car_offset + 0x14);

Position[0] = mem.ReadFloat(offset_to_matrix_car + 0x30);

Position[1] = mem.ReadFloat(offset_to_matrix_car + 0x34);

return Position;

}

Как мне сделать так, чтобы она могла проехать по маршруту чекпоинтов?

Мне нужно как-то взять тот угол, на который она должна повернуться.

Типа... Есть координаты чекпоинта:

x: 1141.513916

y: -1162.998169

И координаты машины:

x: 1162.112061

y: -1199.149658

Как сделать так, чтобы она туда приехала? Как вычислить тот угол, на который она должна повернуть?

Вообще, видел, что реализуют через функцию lua - getHeadingFromVector2d.

Как она вообще устроена? Как её перевести на другой язык, к примеру?

P.S НУЖНО БЕЗ SAMPFUNCS и SAMP LUA.

Заранее спасибо)
 
Ответить с цитированием

  #6  
Старый 18.08.2018, 10:01
LUCHARE
Постоянный
Регистрация: 23.05.2017
Сообщений: 545
С нами: 4723927

Репутация: 158


По умолчанию

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

Как она вообще устроена?
C++:





Код:
#include 
double
foo
(
double
x
,
double
y
)
{
return
atan2
(
y
,
x
)
;
}


возможно потребуется перевести в градусы
 
Ответить с цитированием

  #7  
Старый 18.08.2018, 19:30
Revalto
Постоянный
Регистрация: 13.02.2016
Сообщений: 532
С нами: 5392682

Репутация: 93


По умолчанию

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

Приветствую. Столкнулся с такой проблемой:

К примеру, есть координаты множества чекпоинтов, они расположены хаотично.

Есть координаты машины и поворот персонажа в ней:

Поворот персонажа:

public float Get_Rotation() {
int base_address = mem.ReadInt(0xB6F5F0);
float angel = mem.ReadFloat(base_address + 0x558);

return angel * 6;
}

Координаты машины:

public float[] Get_Car_Coord()
{
float[] Position = new float[2];
int car_offset = mem.ReadInt(0xBA18FC);
int offset_to_matrix_car = mem.ReadInt(car_offset + 0x14);
Position[0] = mem.ReadFloat(offset_to_matrix_car + 0x30);
Position[1] = mem.ReadFloat(offset_to_matrix_car + 0x34);
return Position;
}

Как мне сделать так, чтобы она могла проехать по маршруту чекпоинтов?

Мне нужно как-то взять тот угол, на который она должна повернуться.

Типа... Есть координаты чекпоинта:

x: 1141.513916
y: -1162.998169

И координаты машины:

x: 1162.112061

y: -1199.149658

Как сделать так, чтобы она туда приехала? Как вычислить тот угол, на который она должна повернуть?

Вообще, видел, что реализуют через функцию lua - getHeadingFromVector2d.

Как она вообще устроена? Как её перевести на другой язык, к примеру?

P.S НУЖНО БЕЗ SAMPFUNCS и SAMP LUA.

Заранее спасибо)
Зажми клавишу W через key_event
 
Ответить с цитированием

  #8  
Старый 18.08.2018, 19:37
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

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

Зажми клавишу W через key_event
У тебя не это спросили

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

Как рассчитать угол между двумя точками, куда нужно повернуть машине?
AsiPlugin(https://git.prime-hack.net/SR_team/AsiPlugin/src/branch/master/CGame/Types.cpp#L29)

X и Y это дельты, как в опкоде CLEO

Цитата:
Сообщение от yuy111  
У SF плагина нет Makefile
 
Ответить с цитированием

  #9  
Старый 18.08.2018, 19:57
Babayka2016
Познающий
Регистрация: 19.01.2017
Сообщений: 51
С нами: 4901705

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

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

У тебя не это спросили

AsiPlugin(https://git.prime-hack.net/SR_team/AsiPlugin/src/branch/master/CGame/Types.cpp#L29)
X и Y это дельты, как в опкоде CLEO
Получается, чтобы узнать угол -

angle(x_car-x_checkpoint, y_car-y_checkpoint);

Верно?
 
Ответить с цитированием

  #10  
Старый 18.08.2018, 20:38
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

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

Получается, чтобы узнать угол -

angle(x_car-x_checkpoint, y_car-y_checkpoint);

Верно?
либо наоборот
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.