所以我正在为电脑游戏《反恐精英:全球攻势》编写一个脚本,该脚本可以改变游戏中玩家的十字准线。 游戏引擎使用的语言称为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;
然后每次我调用函数时,它的值都是假的。我需要在函数外部定义它,以便变量可以被其他函数(如CrosshairAlpha()
(访问,因此每次调用函数时变量值都不完全相同。
那么如何在 JavaScript 中的类中定义一个变量,然后将该变量传递到函数中呢?
您可以在构造方法中初始化properties
,并在以后使用this
引用它们:
class crosshair_generator {
// Initialize
constructor(crosshair_hidden = false) {
this.crosshair_hidden = crosshair_hidden;
}
hideCrosshair() {
if (this.crosshair_hidden == true) {
// Hide the crosshair
SendToConsole("crosshair 0");
printl("crosshair hidden!");
this.crosshair_hidden = false;
} else if(this.crosshair_hidden == false) {
// Show the crosshair
SendToConsole("crosshair 1");
printl("crosshair shown!")
this.crosshair_hidden = true;
}
}
CrosshairAlpha(Add) {
// cl_crosshairalpha
}
}