所以我为电脑游戏 Counter Strike: Global Offensive 写了一个脚本,它改变了玩家在游戏中的十字准线。游戏引擎使用的语言称为 Vscript。Vscript 没有很好的文档记录,我唯一可以罚款的文档是一长串函数。但是在尝试了一个错误之后,我发现语法几乎与 JavaScript 相同,唯一真正的区别是语言中有特定的函数,例如 SetHealth 或 GetTeam,它们是特定于游戏的,而 JavaScript 中不存在。
class crosshair_generator {
// Initialize
crosshair_hidden = false;
function hideCrosshair() {
if (crosshair_hidden == true) {
// Hide the crosshair
SendToConsole("crosshair 0");
printl("crosshair hidden!");
self.crosshair_hidden = false;
} else if (crosshair_hidden == false) {
// Show the crosshair
SendToConsole("crosshair 1");
printl("crosshair shown!")
crosshair_hidden = true;
}
}
function CrosshairAlpha(Add) {
// cl_crosshairalpha
}
}
当我打开游戏并运行脚本时,在游戏控制台内它说
AN ERROR HAS OCCURED [the index 'crosshair_generator' does not exist]
CALLSTACK
*FUNCTION [main()] InputRunScript line [1]
LOCALS
[this] TABLE
Entity script_crosshair encountered an error in RunScript()
如果我在 hideCrosshair() 函数中定义 crosshair_hidden 变量,
crosshair_hidden = false;
那么每次我调用该函数时,它的值都会为 false。我需要在函数外部定义它,以便变量可以被其他函数访问CrosshairAlpha()
,因此每次调用函数时变量值都不完全相同。
那么如何在 JavaScript 的类中定义一个变量,然后将该变量传递给一个函数呢?