Sign in to follow this  
Vifleem

Как сделать команду /b

Recommended Posts

Vifleem    1

Здравствуйте.Помогите пожалуйста как сделать команду /b?.Заранее спасибо.

Share this post


Link to post
Share on other sites
HarrWe    23

На 0.1 просто сделать не получится, остаётся ждать 0.2. Вот код команды /b на 0.2. По такому методу можно "наклепать" ещё кучу roleplay команд.

mp.events.addCommand("b", (player, text) => {
    if (text != undefined) {
        const pos = player.position;
        mp.players.broadcastInRange(pos, 15, '<font color=#D8D8D8>(( [OOC] ' + player.name + ' [' + player.id + '] ' + text + ' ))');
    }
    else player.outputChatBox("<font color=#2E64FE>[Информация] <font color=#ffffff>используйте /b [Текст]");
});

E8t_YWMfaC8.jpg

Edited by HarrWe
  • Like 1

Share this post


Link to post
Share on other sites
kemperrr    137
const getDistance = (v1, v2) => Math.sqrt( Math.pow( ( v2.x - v1.x ), 2 ) + Math.pow( ( v2.y - v1.y ), 2 ) + Math.pow( ( v2.z - v1.z ), 2 ) );

mp.events.add('playerCommand', (player, text) => {
  const [cmd, ...args] = text.split(' ');
  const fullText = args.joint(' ');
  switch(cmd) {
    case 'b':    
      mp.players.forEach(remotePlayer => {
        if(getDistance(remotePlayer.position, player.position) <= 30) {
          remotePlayer.outputChatBox(`(( ${player.name} [${player.id}]: ${fullText} ))`);
        }
      })
      break;
  }
})

Код писал прям на форуме, если не будет работать пиши

Share this post


Link to post
Share on other sites
shuker    6
В 06.08.2017 в 19:46, kemperrr сказал:
const getDistance = (v1, v2) => Math.sqrt( Math.pow( ( v2.x - v1.x ), 2 ) + Math.pow( ( v2.y - v1.y ), 2 ) + Math.pow( ( v2.z - v1.z ), 2 ) );

...

 

Рекомендую вместо Math.pow( ( v2.x - v1.x ), 2 ) использовать простое умножение - ( v2.x - v1.x )*( v2.x - v1.x )

Как показывают тесты, способ с возведением в квадрат через оператор умножения выигрывает по количеству операций в секунду. Конечно, разница может быть малозаметна для небольшого количества игроков, но когда необходимо посчитать много дистанций это будет эффективнее

Share this post


Link to post
Share on other sites
Leone    6
8 часов назад, shuker сказал:

Рекомендую вместо Math.pow( ( v2.x - v1.x ), 2 ) использовать простое умножение - ( v2.x - v1.x )*( v2.x - v1.x )

Как показывают тесты, способ с возведением в квадрат через оператор умножения выигрывает по количеству операций в секунду. Конечно, разница может быть малозаметна для небольшого количества игроков, но когда необходимо посчитать много дистанций это будет эффективнее

откуда Вы такую информацию берете ? Можно ссылку или может в книге какой написано. Тоже такие моменты хочу учить, как искать их ?

Share this post


Link to post
Share on other sites
shuker    6
32 минуты назад, Leone сказал:

откуда Вы такую информацию берете ? Можно ссылку или может в книге какой написано. Тоже такие моменты хочу учить, как искать их ?

Я сам задался таким вопросом и проверил догадки на jsPerf

Share this post


Link to post
Share on other sites
Leone    6
44 минуты назад, shuker сказал:

Я сам задался таким вопросом и проверил догадки на jsPerf

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

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.