1. Скорее всего никак. Если что-то было создано на клиенте - работать с ним тоже нужно на клиенте, на котором оно было создано. Сервер не видит изменений, которые локально происходят у игрока (точнее не все, если, например, изменить HP, то сервер тоже это заметит, но блип - нет).Всем привет, у меня есть 2 вопроса :
1. как мне использовать routeFor для блипа если блип создан на клиенте
2. как мне получить позицию блипа который поставил игрок
а как взять позицию блипа1. Скорее всего никак. Если что-то было создано на клиенте - работать с ним тоже нужно на клиенте, на котором оно было создано. Сервер не видит изменений, которые локально происходят у игрока (точнее не все, если, например, изменить HP, то сервер тоже это заметит, но блип - нет).
2. С клиента того игрока, у которого нужно вычислить позицию блипа. Фактически, чтобы это узнать, нужно взять позицию блипа с игрока А, переслать на сервер и с сервера переслать игроку Б, только так.
а как взять позицию блипа
let blip = mp.blips.new(60, new mp.Vector3(407.95, -961.05, 0), {
color: 3,
shortRange: true,
});
let getBlipCoords = blip.getCoords(); // {"x":407.95001220703125,"y":-961.0499877929688,"z":0}
я про ту которую игрок ставитКод:let blip = mp.blips.new(60, new mp.Vector3(407.95, -961.05, 0), { color: 3, shortRange: true, }); let getBlipCoords = blip.getCoords(); // {"x":407.95001220703125,"y":-961.0499877929688,"z":0}
Если речь про waypoints, то попробуй что-то подобное (нашел на оф форуме):я про ту которую игрок ставит
let waypoint;
mp.events.add('render', () => {
// Waypoint
if (waypoint !== mp.game.invoke('0x1DD1F58F493F1DA5')) {
waypoint = mp.game.invoke('0x1DD1F58F493F1DA5');
let blipIterator = mp.game.invoke('0x186E5D252FA50E7D');
let FirstInfoId = mp.game.invoke('0x1BEDE233E6CD2A1F', blipIterator);
let NextInfoId = mp.game.invoke('0x14F96AA50D6FBEA7', blipIterator);
for (let i = FirstInfoId; mp.game.invoke('0xA6DB27D19ECBB7DA', i) != 0; i = NextInfoId) {
if (mp.game.invoke('0xBE9B0959FFD0779B', i) == 4 ) {
var coord = mp.game.ui.getBlipInfoIdCoord(i);
mp.events.call("playerCreateWaypoint", coord, Boolean(waypoint));
mp.events.callRemote("playerCreateWaypoint", JSON.stringify(coord), Boolean(waypoint));
};
};
};
});
mp.events.add('playerCreateWaypoint', (position, toogle) => {
console.log(position, toogle);
});
mp.events.add('playerCreateWaypoint', (player, position, toogle) => {
console.log(position, toogle);
});
Если речь про waypoints, то попробуй что-то подобное (нашел на оф форуме):
client:
Код:let waypoint; mp.events.add('render', () => { // Waypoint if (waypoint !== mp.game.invoke('0x1DD1F58F493F1DA5')) { waypoint = mp.game.invoke('0x1DD1F58F493F1DA5'); let blipIterator = mp.game.invoke('0x186E5D252FA50E7D'); let FirstInfoId = mp.game.invoke('0x1BEDE233E6CD2A1F', blipIterator); let NextInfoId = mp.game.invoke('0x14F96AA50D6FBEA7', blipIterator); for (let i = FirstInfoId; mp.game.invoke('0xA6DB27D19ECBB7DA', i) != 0; i = NextInfoId) { if (mp.game.invoke('0xBE9B0959FFD0779B', i) == 4 ) { var coord = mp.game.ui.getBlipInfoIdCoord(i); mp.events.call("playerCreateWaypoint", coord, Boolean(waypoint)); mp.events.callRemote("playerCreateWaypoint", JSON.stringify(coord), Boolean(waypoint)); }; }; }; });
Код:mp.events.add('playerCreateWaypoint', (position, toogle) => { console.log(position, toogle); });
server:
Код:mp.events.add('playerCreateWaypoint', (player, position, toogle) => { console.log(position, toogle); });
разобрался, спасибо, ещё один вопрос : как проложить маршрут к блипу который на клиентеЕсли речь про waypoints, то попробуй что-то подобное (нашел на оф форуме):
client:
Код:let waypoint; mp.events.add('render', () => { // Waypoint if (waypoint !== mp.game.invoke('0x1DD1F58F493F1DA5')) { waypoint = mp.game.invoke('0x1DD1F58F493F1DA5'); let blipIterator = mp.game.invoke('0x186E5D252FA50E7D'); let FirstInfoId = mp.game.invoke('0x1BEDE233E6CD2A1F', blipIterator); let NextInfoId = mp.game.invoke('0x14F96AA50D6FBEA7', blipIterator); for (let i = FirstInfoId; mp.game.invoke('0xA6DB27D19ECBB7DA', i) != 0; i = NextInfoId) { if (mp.game.invoke('0xBE9B0959FFD0779B', i) == 4 ) { var coord = mp.game.ui.getBlipInfoIdCoord(i); mp.events.call("playerCreateWaypoint", coord, Boolean(waypoint)); mp.events.callRemote("playerCreateWaypoint", JSON.stringify(coord), Boolean(waypoint)); }; }; }; });
Код:mp.events.add('playerCreateWaypoint', (position, toogle) => { console.log(position, toogle); });
server:
Код:mp.events.add('playerCreateWaypoint', (player, position, toogle) => { console.log(position, toogle); });