entity.getHeading();
entity.setHeading(heading);
entity.setHeading(heading);
player.playAnimation();
есть какой-то способ чтобы легче найти нужную анимацию? просто на вики их уйма, а перебирать каждую по моему будет слишком долго1. Получаем поворот игроков через функцию2. Прибавляем полученные цифры и делим на 2Код:entity.getHeading();
3. Поворачиваем первого игрока на полученное число функцией4. Поворачиваем второго игрока на -(минус) полученное число функциейКод:entity.setHeading(heading);
5. Проигрываем анимациии для первого и второго игрока функциейКод:entity.setHeading(heading);
Код:player.playAnimation();
Посмотреть вложение 13022
handshake_guy_aесть какой-то способ чтобы легче найти нужную анимацию? просто на вики их уйма, а перебирать каждую по моему будет слишком долго
есть какой-то способ чтобы легче найти нужную анимацию? просто на вики их уйма, а перебирать каждую по моему будет слишком долго
тута есть ответик, но нужно пошаманить чуткаОтмена. Формула не верна.
Посмотреть вложение 13023
function normalizeHeading(heading)
{
if (heading > 180) return heading - 360;
else if (heading < -180) return heading + 360;
return heading;
}
function alignEntities(entity1, entity2)
{
const heading1 = entity1.getHeading();
const heading2 = entity2.getHeading();
const headingDifference = heading2 - heading1;
const alignedHeading1 = heading1 + headingDifference / 2;
const alignedHeading2 = heading2 - headingDifference / 2;
const correctedHeading1 = normalizeHeading(alignedHeading1);
const correctedHeading2 = normalizeHeading(alignedHeading2);
entity1.setRotation(0, 0, correctedHeading1, 2, true);
entity2.setRotation(0, 0, correctedHeading2, 2, true);
}
есть какой-то способ чтобы легче найти нужную анимацию? просто на вики их уйма, а перебирать каждую по моему будет слишком долго
player.clearTasks();
player1.clearTasks();
player.taskTurnToFace(player1.handle, -1);
player1.taskTurnToFace(player.handle, -1);
Папа зашел и порешалФункция повернуть игроков друг напротив друга (Client):
JavaScript:player.clearTasks(); player1.clearTasks(); player.taskTurnToFace(player1.handle, -1); player1.taskTurnToFace(player.handle, -1);
Не забудь дописать синхру чтобы другие игроки (если они есть рядом) видели тоже самое, что и те, которые пожали руки.
WIKI - https://wiki.rage.mp/index.php?title=Player::taskTurnToFace
всм? wiki.rage.mp? или о чём тыСинхра меня убивает. Точнее отсутсвие моих знаний в RAGE.
Если есть у кого-то ресурсы, что бы почитать, буду рад.
Он мануал просит скинуть как синхру писать и т.д.всм? wiki.rage.mp? или о чём ты
Тебе по хорошему надо отправить ивент на клиент в радиусе(mp.players.callInRange), в клиенте ты определяешь игрока и задаешь ему анимку. Соответственно выглядить это должно примерно такСинхра меня убивает. Точнее отсутсвие моих знаний в RAGE.
Если есть у кого-то ресурсы, что бы почитать, буду рад.
mp.players.callInRange(player.position, 100, 'eventName', [player1.id, player2.id]);
mp.events.add('eventName', (player1Id, player2Id) => {
const player1 = mp.players.atRemoteId(player1Id);
const player2 = mp.players.atRemoteId(player2Id);
//Ну и дальше че там выше писали
})
Спасибо! Дай свой ДС пожалуйста!Он мануал просит скинуть как синхру писать и т.д.
Тебе по хорошему надо отправить ивент на клиент в радиусе(mp.players.callInRange), в клиенте ты определяешь игрока и задаешь ему анимку. Соответственно выглядить это должно примерно так
Server:
JavaScript:mp.players.callInRange(player.position, 100, 'eventName', [player1.id, player2.id]);
Client:
JavaScript:mp.events.add('eventName', (player1Id, player2Id) => { const player1 = mp.players.atRemoteId(player1Id); const player2 = mp.players.atRemoteId(player2Id); //Ну и дальше че там выше писали })
Небольшое пояснение, код на сервере вызовет ивент у всех игроков в радиусе 100(поиграйся сам), на клиенте ты вызываешь анимки им.
p.s. На нейминг не обращайте внимания.
swayze76Спасибо! Дай свой ДС пожалуйста!
Возможно буду нуждатся в оплачеваемых консультациях/помощи!