名将(Captain Commando)按键控制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了名将(Captain Commando)按键控制相关的知识,希望对你有一定的参考价值。

这个戏打开以后不知道怎么开始,也不知道方向控制和出招,在网上查了下有这样的提示:
控制键 W ----上 S ----下 A ----左 D ----右 J ----A K ----B I ----C O ----D 5 ----投币 1 ----1P开始 ...
按这个提示全没用,
1----1P什么意思我也不明白,谁指点一下。
用的是WinKawaks模拟器

我没看见哪有“游戏->重新定义按键->重新定义玩家1的按键”这列啊。

游戏->重新定义按键->重新定义玩家1的按键
W(上) I(D)
A(左) S(下) D(右) J(A) K(B) L(C)
1P就是玩家1,你得自己设定这些按键.
参考技术A 在模拟器的控制设置那里可以改的,一 仔细找找,肯定有,1P就是等于在街机台投一个游戏币的意思,一般你刚开始狂投N个就好了. 参考技术B 楼主先说用的什么模拟器

广播所有命令不自动删除广播 - Discord.js-Commando

【中文标题】广播所有命令不自动删除广播 - Discord.js-Commando【英文标题】:Broadcast All Command not auto deleting broadcasts - Discord.js-Commando 【发布时间】:2021-01-17 17:18:39 【问题描述】:

所以我试图让我的广播命令在设定的时间后自动删除广播。我为其构建 EBS 机器人的人希望它在 30 分钟后自动删除。

我们让它按照他的意愿发送到所有文本频道,但尝试使其自动删除会触发以下错误:

(node:23) UnhandledPromiseRejectionWarning: TypeError [INVALID_TYPE]: Supplied options is not an object.

这是我的broadcast.js 文件:

broadcast.js

const Commando = require('discord.js-commando');
const prefix = (process.env.BOT_PREFIX);
require('dotenv').config();


module.exports = class BroadcastCommand extends Commando.Command 
  constructor(client) 
    super(client, 
      name: 'broadcast',
      aliases: [
        'ebcast',
        'bcast',
        'bc',
        'ebc'
      ],
      group: 'ebs',
      memberName: 'broadcast',
      userPermissions: [
        'MANAGE_MESSAGES',
        'MANAGE_CHANNELS'
      ],
      description: 'Send an Emergency Broadcast to all text channels in the guild',
      examples: [
        `Usage: $prefixbc <message.content>`,
        `Details: '<>' flags indicate a required field. '[]' flags indicates an optional field.`,
        `Note: Do not include the '<>' or '[]' flags in the command.`
      ],
      args: [
        
          key: 'text',
          prompt: 'What would you like the bot to announce?',
          type: 'string',
        ,
      ],
    )
  ;

  run(msg,  text ) 
    msg.guild.channels.cache
      .filter(channel => channel.type === 'text')
      .forEach((textChannel) => 
        textChannel.send(text,  tts: true ).then(sentMessage => 
          sentMessage.delete(108000000).cache(console.error);
        );
      )
  
;

我们想知道如何将其设置为在 30 分钟后自动删除消息。

我使用这篇文章中的一个示例来自动删除代码,这显然不适合我:

Making a bot delete its own message after a timeout

帮助我将它发送到所有频道的帖子来自:

Discord.js Commando Broadcast All command error

我假设 sentMessage 标志是错误的,但我可能错了。

任何帮助将不胜感激。

机器人内置于discord.js-commando 并使用node.js ^12.16.4discord.js ^12.0.1。它在discord.js-commandodiscordjs/Commando master 分支上运行

---编辑---

感谢T. Dirk 提供解决此问题的答案。

如果有人想将固定代码用于任何事情,这里是:

broadcast.js

const Commando = require('discord.js-commando');
const prefix = (process.env.BOT_PREFIX);
require('dotenv').config();


module.exports = class BroadcastCommand extends Commando.Command 
  constructor(client) 
    super(client, 
      name: 'broadcast',
      aliases: [
        'ebcast',
        'bcast',
        'bc',
        'ebc'
      ],
      group: 'ebs',
      memberName: 'broadcast',
      userPermissions: [
        'MANAGE_MESSAGES',
        'MANAGE_CHANNELS'
      ],
      description: 'Send an Emergency Broadcast to all text channels in the guild',
      examples: [
        `Usage: $prefixbc <message.content>`,
        `Details: '<>' flags indicate a required field. '[]' flags indicates an optional field.`,
        `Note: Do not include the '<>' or '[]' flags in the command.`
      ],
      args: [
        
          key: 'text',
          prompt: 'What would you like the bot to announce?',
          type: 'string',
        ,
      ],
    )
  ;

  run(msg,  text ) 
    msg.guild.channels.cache
      .filter(channel => channel.type === 'text')
      .forEach((textChannel) => 
        textChannel.send(text,  tts: true ).then(sentMessage => 
          sentMessage.delete( timeout: 108000000 ).catch(console.error);
        );
      )
  ;
;

【问题讨论】:

【参考方案1】:

您找到并使用的自动删除代码基于 Discord JS v11。在这个版本中,Message.delete函数只需要一个数字作为参数来设置删除超时时间。

由于您使用的是 Discord JS v12,Message.delete 代码略有更改。它不采用数字作为参数,而是采用选项对象。这个选项对象可以有两个属性; timeoutreason。因此,解决问题所需要做的就是更改 .delete 参数,如下所示:

// Note that in your code you have .cache after the delete
// but I'm guessing you meant .catch to catch errors
sentMessage.delete(timeout: 108000000).catch(console.error);

【讨论】:

好的,没有错误。我认为这行得通。将给它大约 10 分钟的时间删除消息。

以上是关于名将(Captain Commando)按键控制的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js Commando 广播所有命令错误

Codeforces 704D Captain America

c_cpp 使用按键控制图像

右边按键上RF两个按键是控制啥的?

Discord.js-commando 缺少参数回复

如何在 discordjs-commando 中编辑/替换嵌入