Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使某物在箱子内保持静止(C#)_C# - Fatal编程技术网

使某物在箱子内保持静止(C#)

使某物在箱子内保持静止(C#),c#,C#,我想做一个,呃。。。一团糟 我需要让一个乘法器乘以一个普通数以外的数。起初我做了一个枚举,但它说它无法转换,所以我尝试。。。这: case 225: {//Flying Press -- INCOMPLETE, needs Flying-type setup.Multiplier *= Server.Moves.Move.Element.Flying; } break; 但是,我得到一个错误,Server.Moves.Move.Element.get需要对象

我想做一个,呃。。。一团糟

我需要让一个乘法器乘以一个普通数以外的数。起初我做了一个枚举,但它说它无法转换,所以我尝试。。。这:

case 225: {//Flying Press -- INCOMPLETE, needs Flying-type
        setup.Multiplier *= Server.Moves.Move.Element.Flying;
     }
     break;
但是,我得到一个错误,
Server.Moves.Move.Element.get
需要对象引用。显然,你是通过使它静止来实现的。但是,我不能直接去那里,让它静止。我是一名游戏程序员,但我只能访问游戏的一小部分。它也是一个非常朴素的编辑器——想象一下,Visual Basic除了删除了错误日志和保存/打开按钮外,还删除了所有功能

我想在这里完成的是使案例225,一次攻击,在飞行元素造成伤害时计算在内。我可以根据敌人设置不同的元素,但我希望避免这样做。非常。。。只是,周围的一切都不愉快,不是我真正想要完成的


那么,呃,有什么方法可以把它设为静态的吗?或者,给它一个对象引用?我对C#非常陌生,所以即使是基础知识对我来说也很难>

你不能从静态方法访问非静态成员,也不能使非静态成员成为静态成员。我只有你的代码的一小部分,但是为什么你不能让setup.Multiplier成为静态的呢。或者创建一个静态方法乘数,并传入需要相加的值

public static void multiplier(int value){
    setup.Multiplier *= value ; 
}

不能从静态方法访问非静态成员,也不能使非静态成员成为静态成员。我只有你的代码的一小部分,但是为什么你不能让setup.Multiplier成为静态的呢。或者创建一个静态方法乘数,并传入需要相加的值

public static void multiplier(int value){
    setup.Multiplier *= value ; 
}

解决方案不是使字段成为静态的,因为(很可能)服务器代码的其余部分取决于它是否是非静态成员。非静态成员需要一个对象引用——对象必须先实例化并存储在某个地方,您不能仅仅尝试使用类名访问它


您需要找到对
Server.Moves.Move
对象的引用,以便能够访问其成员。在运行时可能存在任意数量的此类对象。在不知道您正在使用的服务器的API的情况下,没有人能够真正猜到在哪里可以找到一个(以及正确的一个)。

解决方案不是将字段设置为静态,因为(很可能)服务器代码的其余部分取决于它是否是非静态成员。非静态成员需要一个对象引用——对象必须先实例化并存储在某个地方,您不能仅仅尝试使用类名访问它


您需要找到对
Server.Moves.Move
对象的引用,以便能够访问其成员。在运行时可能存在任意数量的此类对象。在不知道您正在使用的服务器的API的情况下,没有人能够真正猜到在哪里可以找到一个(以及正确的一个)。

找到了解决方法。在看到大家都说我不能让它静止之后,我研究了其他方法来改变损坏

case 225: {//flying press
        int fly = DamageCalculator.CalculateTypeMatchup(Enums.PokemonType.Flying, setup.Defender.Type1) + DamageCalculator.CalculateTypeMatchup(Enums.PokemonType.Flying, setup.Defender.Type2);
            setup.Multiplier *= fly;
            setup.Multiplier /= 4;
}
break;
我让案例计算了
元素对防御者造成的伤害。飞行
(虽然是以枚举形式写的)会对防御者造成什么伤害,并使乘数受到伤害的影响。由于它给我的伤害超过了上限,我计算出了正常的伤害应该是多少,然后用它来划分
fly
。四舍五入到最接近的数字,使乘数除以它


我想这个案子有点特别,但是@其他有这个问题的人——看看你是否能找到像我一样影响乘数的解决办法。

找到了解决办法。在看到大家都说我不能让它静止之后,我研究了其他方法来改变损坏

case 225: {//flying press
        int fly = DamageCalculator.CalculateTypeMatchup(Enums.PokemonType.Flying, setup.Defender.Type1) + DamageCalculator.CalculateTypeMatchup(Enums.PokemonType.Flying, setup.Defender.Type2);
            setup.Multiplier *= fly;
            setup.Multiplier /= 4;
}
break;
我让案例计算了
元素对防御者造成的伤害。飞行
(虽然是以枚举形式写的)会对防御者造成什么伤害,并使乘数受到伤害的影响。由于它给我的伤害超过了上限,我计算出了正常的伤害应该是多少,然后用它来划分
fly
。四舍五入到最接近的数字,使乘数除以它


我想这个案子有点特别,但是@还有其他人有这个问题吗?看看你是否能找到像我一样影响乘数的方法。

hmm。。为什么它不能转换枚举?你试过投吗?。否则,您可以新建您的类并通过对象实例访问该属性。您可能需要提供更多信息以向我们说明您遇到的问题,例如,您的
服务器.Moves.Move.Element.Flying
.I。。。不知道/如何/铸造它,也不知道如何转换它。再说一次,菜鸟。还有,呃,你说“这是什么”是什么意思,亚历克斯?嗯。。为什么它不能转换枚举?你试过投吗?。否则,您可以新建您的类并通过对象实例访问该属性。您可能需要提供更多信息以向我们说明您遇到的问题,例如,您的
服务器.Moves.Move.Element.Flying
.I。。。不知道/如何/铸造它,也不知道如何转换它。再说一次,菜鸟。还有,呃,Alex,你说的“它是什么”是什么意思?我不能使它成为静态的,因为正如我所说的,我只能访问代码的一小部分。它不包括任何类似的东西。当我把它放到类中时,它只是把我搞错了,说我需要在发布乘数之前关闭案例225。我不能使它成为静态的,因为正如我所说的,我只能访问代码的一小部分。它不包括任何类似的东西。当我把它放到课堂上时,它只是把我搞错了,说我需要在发布乘数之前关闭案例225。我会链接GitHub上的服务器文件,但我怀疑管理员是否会感谢我这样做。不过,谢谢你,这是有道理的。我会链接GitHub上的服务器文件,但我不知道