问题标签 [screeps]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3541 浏览

javascript - Screeps:在creeps内存中存储对源的引用?

迷人的游戏!

寻找一个如何在cree的记忆中持久引用特定能源的示例。似乎存储实际的源对象不起作用(?)。

0 投票
1 回答
791 浏览

javascript - 为什么我的守卫小兵不攻击敌人?

所以我创造了一个守卫小兵;

然后我把这个作为我的主要内容:

然后是守卫脚本

它在教程中运行良好,但现在在实际模拟中,它不起作用。

0 投票
2 回答
423 浏览

javascript - 游戏截图 - 快照

我正在玩 Screeps ( http://screeps.com/ ) 模拟室模式。我已经测试了一些东西,我不想失去我的进步。

我可以在模拟房间模式下制作快照并保存我的房间状态,这样我就不必从头开始了吗?

0 投票
4 回答
954 浏览

javascript - 是否可以将函数挂钩分配给游戏对象,例如在初始化时运行函数、死亡等?

我还没有找到任何方法将挂钩分配给任何东西,如果可以的话,它会非常有用。另外,如何检查游戏对象是否仍然存在?(即没有死于年龄,也没有被敌人摧毁。)

0 投票
1 回答
777 浏览

javascript - Screeps 很少有错误/问题

我有点想用 SO 来指出一些事情。

首先,在这个游戏中使用“脚本”有点奇怪,因为与“普通”Javascript 脚本不同,执行的方式是不同的。我们都知道,在脚本中,第一件事首先被执行。所以如果我有:

你会假设工人 1 会被创建。那不是真的。Healer1 被创建。让人们了解脚本的执行方式会很有用。现在上面的例子很简单,但在我的例子中,我有一堆语句,我花了一段时间才弄明白。

接下来是creep名称。如果小兵死亡,名字应该是“消失”。我确实检查了这一点,并且由于某种原因,该名称“可用”再次使用,但该名称仅在一些滴答声后才可用。不是即时的!所以客户端和“服务器”是有区别的。现在,这显然可以通过多次迭代而不是重用名称来解决。说实话,我更喜欢重用名称。为什么?也许你的脚本会运行多年,这会导致像“worker1209128102981209128”这样的名字,在我的强迫症看来不是“好”。就我而言,我等到错误“名称已在使用中”消失了几个滴答声,然后再创建它。你有点“浪费”时间。

控制台.log(); (empty) ,将导致您的控制台精神崩溃。这种风格会被“窃听”。

接下来的事情:在新游戏中并不总是清除内存状态。也会导致一些奇怪的事情:你自己的记忆中已经有了东西,或者敌人的小兵波已经在第 1 波之后的波上。

我在 API 中没有找到的另一件事;Creeps 首先在他们的第一个模块上获得命中。所以,你很聪明地把 TOUGH 放在第一位,因为它是一个“无用”的模块。其次是其他不太有用的模块。

现在对于游戏模式,敌人的 AI 可能会被窃听。例如,如果你 - 不 - 移动你的小兵,敌人就不会攻击。当你让一个敌人从一波中存活时也是如此,人工智能可能会被“窃听”。不确定它是否正常,但过了一会儿我有以下情况;我无法“相信”如此快速地对抗这么多如此强大的敌人小兵是正常的(已经看身体模块了例子

最后,我可能想请开发人员做一些我们可以与开发人员交流的东西。即使 stackoverflow 很好,IMO 也更多地用于那些想要在正确的方向上稍微推动的人。

谢谢,我真的很喜欢这个游戏,我希望它会变得更大!:)

0 投票
2 回答
3053 浏览

screeps - Game Screeps - 使用 lodash 模块

我正在玩 Screeps ( http://screeps.com ),我正在尝试使用 lodash 模块从其余的小兵中过滤我的收割机。下面的代码应该可以工作,但是当我运行它时,我得到一个ReferenceError: _ is not defined at <main>:6:18. 知道出了什么问题吗?

0 投票
3 回答
4409 浏览

javascript - Game Screeps - crawl.room.find(Game.CONSTRUCTION_SITES); 不工作

我有教程中的以下代码,除了在模拟模式下它不起作用..

在控制台中打印“目标”的结果,响应未定义。谁能解释“CONSTRUCTION_SITES”常量是如何工作的以及如何在房间内找到它们?

0 投票
2 回答
897 浏览

javascript - 如何从扩展结构中获取能量?

在游戏中,每个结构都具有structureType以下属性之一:spawn, extension, road, constructedWall, rampart. http://www.screeps.com/docs/Structure.php#structureType

所以在模拟中我们可以看到扩展结构可能包含一些能量。但是 API Docs 结构没有energy属性。

0 投票
4 回答
4158 浏览

javascript - Screeps:将调试输出写入控制台?

为了简单的调试目的,有没有办法让 screeps 代码将字符串打印到控制台(或任何地方)?

0 投票
1 回答
760 浏览

javascript - Find Damaged Creeps (or how to debug)

I've tried to program healer creep. Simple task:

  1. find damaged creep.
  2. heal damaged creep.
  3. if no damaged creeps were found, return home (hardcoded Spawn1)

Here is my code (I also tried option with Game.CREEPS but it gave same effect):

Here are my creeps (in order of creation):

  1. Harvester1 (hits: 300, hitsMax: 300),
  2. Harvester2 (hits: 300, hitsMax: 300),
  3. Guard1 (hits: 190, hitsMax: 400),
  4. Healer1 (hits: 400, hitsMax: 400),
  5. Harvester3 (hits: 300, hitsMax: 300).

Harvesters are doing their thing, guard is doing his thing and "Healer1" follows "Harvester1".

I thought that I've misspelled hits and hitsMax and failed to notice it but in console I got:

The only thing that comes to my mind is that 'chr' parameter contains something else than creep object.

I tried:

  1. consol.log(chr) but nothing appeared in in-game Console.
  2. 'Game.creeps.Healer1.memory.a=chr; Game.creeps.Healer1.a=chr;' and in console typed 'Game.creeps.Healer1.memory.a'/'Game.creeps.Healer1.a' but got undefined.
  3. In Chrome's js console: var a='Healer1'; a.hits < a.hitsMax;. Got 'false' on the second one.

Is it a game bug or have I missed something?