star_2056 发表于 2016-9-22 20:46

CS小白向大神求助,为什么我改的这段代码没作用?

我去N站下了一个召唤食物的MOD
用CS打开,里面的脚本代码是这样的

scn SummonFood
    short random

begin ScriptEffectStart

    set random to GetRandomPercent
   
    ;Message "Value = %.2f", random

    if random >= 00 &&random <= 10
      AddItem HouseServantPie, 1
    endif

    if random >= 11 && random <= 20
      AddItem Apple, 1
    endif

    if random >= 21 && random <= 30
      AddItem Beef, 1
    endif

    if random >= 31 && random <= 40
      AddItem CheeseWheel, 1
    endif

    if random >= 41 && random <= 50
      AddItem Corn, 1
    endif

    if random >= 51 && random <= 60
      AddItem Breadloaf, 1
    endif

    if random >= 61 && random <= 70
      AddItem Venison, 1
    endif

    if random >= 71 && random <= 80
      AddItem Potato, 1
    endif

    if random >= 81 && random <= 90
      AddItem Mutton, 1
    endif

    if random >= 91 && random <= 100
      AddItem Sweetroll, 1
    endif

end

百度了一下看不懂的地方,大概了解了,是施放法术时,随机生成一个2位小数,按照小数点后两位决定得到什么食物
于是我打算修改以便有更多选择,我改成了这样

scn SummonFood
    short random

begin ScriptEffectStart

    set random to GetRandomPercent
   
    ;Message "Value = %.3f", random

    if random >= 000 &&random <= 010
      AddItem HouseServantPie, 1
    endif

    if random >= 011 && random <= 020
      AddItem Apple, 1
    endif

    if random >= 021 && random <= 030
      AddItem Beef, 1
    endif

    if random >= 031 && random <= 040
      AddItem CheeseWheel, 1
    endif

    if random >= 041 && random <= 050
      AddItem Corn, 1
    endif

    if random >= 051 && random <= 060
      AddItem Breadloaf, 1
    endif

    if random >= 061 && random <= 070
      AddItem Venison, 1
    endif

    if random >= 071 && random <= 080
      AddItem Potato, 1
    endif

    if random >= 081 && random <= 090
      AddItem Mutton, 1
    endif

    if random >= 091 && random <= 100
      AddItem Sweetroll, 1
    endif

    if random >= 101 && random <= 110
      AddItem Strawberry, 3
    endif

end

红字是我修改和添加的部分
我打算让它生成3位小数,这样应该会有更多随机数可以生成食物
但是编译,保存,进游戏以后
发现不管怎么施放法术都无法激活红字那一段
请问这是什么原因?我应该怎么办?

cainiaoxp 发表于 2016-9-29 20:59

本帖最后由 cainiaoxp 于 2016-9-29 21:01 编辑

难得现在还有琢磨这个的。
random函数是专门用来生成0~99之间的随机整数的。如果要生成3位数,可以改用rand函数,不过这个函数貌似生成的是float
比如:set random to rand 0 110
message这个函数是用来在屏幕上显示消息的,而且已经被注释掉了。
顺便给你一个网址,可以在上面查询老滚4的函数,不过需要穿越。
http://cs.elderscrolls.com/index.php?title=Main_Page

star_2056 发表于 2016-10-2 19:23

cainiaoxp 发表于 2016-9-29 20:59
难得现在还有琢磨这个的。
random函数是专门用来生成0~99之间的随机整数的。如果要生成3位数,可以改用ran ...

实在是非常感谢你的解答,我去CS的WIKI专门看了下,现在已经搞定了,而且我竟然实力眼瞎,没看到那个注释的分号,谢谢你

s2321787625 发表于 2016-12-19 20:05

努力升级赚积分(⊙o⊙)…

huang7400 发表于 2016-12-24 17:49

不懂啊 代码

huang7400 发表于 2016-12-24 17:49

不懂啊 代码

s2321787625 发表于 2016-12-31 19:48

努力升级赚积分(⊙o⊙)…
页: [1]
查看完整版本: CS小白向大神求助,为什么我改的这段代码没作用?