This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Проблема Не работает функция - taskGoToCoordAnyMeans

chertx

Новый участник
4 Мар 2024
49
1
10
(тестирую на позиции машины а не игрока т.к пока что могу только в соло)
как бы отправляю евент на клиент
C#:
NAPI.ClientEvent.TriggerClientEvent(player, "goTo", player, vehicle.Position.X, vehicle.Position.Y, vehicle.Position.Z, 1, 1, true, 1, 1);
теперь на клиенте принимаю его
JavaScript:
mp.events.add("goTo", (player, x, y, z, speed, p5, p6, walkingStyle, p8) => {
    player.taskGoToCoordAnyMeans(x, y, z, speed, p5, p6, walkingStyle, p8);
})
но ничего не происходит
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
2,378
237
100
Попробуйте заменить параметр "player" на "vehicle" в клиентском событии "goTo", так как вы отправляете его для машины, а не для игрока. Вот исправленный код:

JavaScript:
mp.events.add("goTo", (vehicle, x, y, z, speed, p5, p6, walkingStyle, p8) => {
    vehicle.taskGoToCoordAnyMeans(x, y, z, speed, p5, p6, walkingStyle, p8);
})

Надеюсь, это поможет решить проблему.
 

kiraz

Специалист
17 Апр 2023
426
89
83
ты хочешь тепаться машине? не проще на сервере позицию выставлять? вместо аргумента позиции передаешь айдишник машинки и потом получаешь по этому айдишнику позицию,затем устанавливаешь ее у игрока
 

chertx

Новый участник
4 Мар 2024
49
1
10
нет, я хочу чтобы игрок шел к позиции перед другим игроком (чтобы познакомиться и пожать руки) а тестирую я пока что на позиции машины т.к на сервер в данный момент могу только зайти я (то есть не на ком тестировать)
 

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,352
802
181
34
C#:
NAPI.ClientEvent.TriggerClientEvent(player, 'goTo', player, vehicle.position.x, vehicle.position.y, vehicle.position.z, 1, 0, false, 2, 0);

JavaScript:
mp.events.add('goTo', (player, x, y, z, speed, p5, p6, walkingStyle, p8) => {
    player.taskGoToCoordAnyMeans(x, y, z, speed, p5, p6, walkingStyle, p8);
});
 
Реакции: chertx

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,903
1,661
211
28
1. Есть информация какие координаты ты вообще отправляешь, может они недействительны?
2. Есть ли гарантия, что твой ивент в принципе отправляется? Ты пробовал его логировать?
3. Точно ли подключен клиентский файл, который содержит клиентский код? Доходит ли до клиента ивент, логировалось ли?
4. Ты не можешь задать какому-либо другому игроку задачу "куда-то двигаться" на клиенте другого игрока, поэтому передавать аргументом объект игрока - бессмысленно.

JavaScript:
mp.events.add("goTo", (x, y, z) =>
{
    mp.players.local.taskGoToCoordAnyMeans(x, y, z, 5.0, 0, 0, 786603, -1.0);
})
 

chertx

Новый участник
4 Мар 2024
49
1
10
евент не нужно отправлять всем игрокам а только тому который должен пойти? ходьба видна для всех?
 

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,352
802
181
34
Вообще как написали выше, в первую очередь нужно логировать, приходит ли какая то информация в
Код:
mp.events.add
 

chertx

Новый участник
4 Мар 2024
49
1
10
все работает, спасибо, только есть вопрос, можно ли как-либо отследить дошел ли игрок до точки? чтобы когда он дошел проигралась анимация
 

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,352
802
181
34
А вообще. Смысл передавать лишние аргументы?
C#:
NAPI.ClientEvent.TriggerClientEvent(player, 'goTo', player, vehicle.position);

JavaScript:
mp.events.add('goTo', (player: PlayerMp, position: Vector3) => {
    player.taskGoToCoordAnyMeans(position.x, position.y, position.z, 1, 0, false, 2, 0);
});
 

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,352
802
181
34
Как вариант, вешать таймер и проверять через getDistanceBetweenCoords дошел ли игрок до нужной точки.
Если дошел, удаляем таймер и проигрываем анимацию