C# 使事情发生的可能性增加#

C# 使事情发生的可能性增加#,c#,.net,visual-studio,scripting,C#,.net,Visual Studio,Scripting,如何制作一个脚本,使一件事情发生4/5次,另一件事情发生1/5次 我需要它在这之后出现 private void Arrest() { Ped Criminal = Player.GetTargetedPed(); if (Exists(Criminal) && (Player.Character.Position.DistanceTo(Criminal.Position) <= 10.0F)) { 私人无效逮捕() { Ped

如何制作一个脚本,使一件事情发生4/5次,另一件事情发生1/5次

我需要它在这之后出现

private void Arrest()
{
    Ped Criminal = Player.GetTargetedPed();
    if (Exists(Criminal) && 
        (Player.Character.Position.DistanceTo(Criminal.Position) <= 10.0F))
    {
私人无效逮捕()
{
Ped Criminal=Player.getTargeted();
如果(存在)(犯罪)和
(玩家。角色。位置。距离(罪犯。位置)
重要的是,不要在每次调用时重新创建
随机
实例。应该保留旧实例并重用它。否则,随机生成的序列将不会均匀分布


重要的是,每次调用时不要重新创建
Random
实例。你应该保留旧实例并重新使用它。否则,随机生成的序列将不会均匀分布。

抱歉,我没有具体说明,但我需要它出现在这个Ped Criminal=Player.getTargeted()之后;如果(存在(犯罪)&(玩家.角色.位置.距离(犯罪.位置)@Lillmcnessy:那么?把它放在那里,修改它来做你想做的。我们不会为你做的工作,我们在这里为你回答问题,帮助你成为一个更好的程序员。在这种情况下,@Mehrdad深思熟虑地为你提供了一种模式,允许你每五次发生一件事,另一件事每五次就发生四次。所以我认为你的恰当回答是“谢谢”,而不是“把它放在我的代码后面,让它为我工作”@Mehrdad:更糟糕的是,如果你在每次调用中使用空构造函数重新创建随机实例,你有可能会得到完全相同的重复序列,因为空构造函数的种子是基于时间的值。几个月前有个问题,提问者确信他奇迹般地生成了重复序列GUIDs,当时他所做的只是用相同的基于时间的值实例化两个随机实例。@Randolpho我向Mehrdad道歉,因为我没有明确地说想要我想要,我也没有要求“把它放在我的代码后面,让它为我工作”,我不是很有经验,所以我需要一点经验help@lilmcnessy:这是可以理解的,但如果你想获得必要的经验,你会胡闹,直到你做对为止。最好的学习方法之一是自己动手。很抱歉,我没有具体说明,但我需要它出现在这个Ped Criminal=Player.getTargeted()之后;如果(存在(犯罪)&(玩家.角色.位置.距离(犯罪.位置)@Lillmcnessy:那么?把它放在那里,修改它来做你想做的。我们不会为你做的工作,我们在这里为你回答问题,帮助你成为一个更好的程序员。在这种情况下,@Mehrdad深思熟虑地为你提供了一种模式,允许你每五次发生一件事,另一件事每五次就发生四次。所以我认为你的恰当回答是“谢谢”,而不是“把它放在我的代码后面,让它为我工作”@Mehrdad:更糟糕的是,如果你在每次调用中使用空构造函数重新创建随机实例,你有可能会得到完全相同的重复序列,因为空构造函数的种子是基于时间的值。几个月前有个问题,提问者确信他奇迹般地生成了重复序列GUIDs,当时他所做的只是用相同的基于时间的值实例化两个随机实例。@Randolpho我向Mehrdad道歉,因为我没有明确地说想要我想要,我也没有要求“把它放在我的代码后面,让它为我工作”,我不是很有经验,所以我需要一点经验help@lilmcnessy当前位置这是可以理解的,但是如果你想获得必要的经验,你会胡闹,直到你做对为止。最好的学习方法之一就是自己动手。
static Random rnd = new Random();
static void DoOne() { ... }
static void DoTwo() { ... }
static void RollDice() {
   if (rnd.Next(5) == 0)
       DoOne(); // happens 1/5 times
   else
       DoTwo(); // happens 4/5 times
}