Project1

标题: 请教关于用开关判断随机数的做法。 [打印本页]

作者: 遗忘的初心者    时间: 2020-6-13 10:33
标题: 请教关于用开关判断随机数的做法。
感觉用任务来形容,可能比较让人明白。
一个情报商提供随机10个任务,会重复,如果你已经执行其中的任务,该任务情报就不再出现,如果执行所有任务,情报商就只会闲聊…
这样该如何做?搜寻过帖子貌似没有类似的…事件党可能没办法处理…吧?毕竟判断的条件太多…

如果 1~10开关=on
 执行闲聊
否则
 随机变数=1~10 
 如果 1开关=on
  随机变数=2~10
  如果随机变数=2
   执行情报2
   否则
    如果随机变数=3
   执行情报3
   否则
   ……
 否则 2开关=on
  ……
 如果 1,3开关=on
  随机变数=??

还是要用廻圈来执行?
作者: KB.Driver    时间: 2020-6-13 10:33
本帖最后由 KB.Driver 于 2020-6-13 19:22 编辑
遗忘的初心者 发表于 2020-6-13 15:07
chanszeman1018大佬真是幽默,但貌似我真的需要范例…
回复ppspssss大佬
  我这里本身没有xp, ...

抱歉,我忘了判断a为空的情况了。我把完整的在下面重新发一次吧。



第一段代码
RUBY 代码复制
  1. a = []
  2. 10.times do |i|
  3.   a << i if $game_variables[21][i] == 0
  4. end
  5. $game_variables[22] = a.sample + 1


第二段代码
RUBY 代码复制
  1. v = $game_variables
  2. v[21] |= 2**(v[22]-1)


中间代码复制粘贴的时候注意一下,我这里是以21号为已完成的任务,22号为随机到的任务编号
具体到你的工程里,编号可能会不同,需要你对应去调整。

至于开关,你只要在后面事件的分支里再打开就行了
【注意】第二段代码的目的是,让某个任务不会再被抽到
这里没有对它施加条件,在你的工程中,请保留22(任务编号)变量的值,然后在任务完成的地方调用它。

作者: chanszeman1018    时间: 2020-6-13 11:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: ppspssss    时间: 2020-6-13 12:29
这类抽了的東西就从獎池扣掉的, 用事件可以弄,紀錄已做的任务數量,如果抽了的任务已完成再抽一次, 已做任务>=10就不再抽而轉移去閑聊
我自己就用腳本, 还是用RPGXP, 仅限參考,






XP的范例.rar (203.07 KB, 下载次数: 82)
作者: KB.Driver    时间: 2020-6-13 13:50
本帖最后由 KB.Driver 于 2020-6-13 23:02 编辑



RUBY 代码复制
  1. a = []
  2. 10.times do |i|
  3.   a << i if $game_variables[21][i] > 0
  4. end
  5. $game_variables[22] = a.sample + 1


RUBY 代码复制
  1. v = $game_variables
  2. v[21] |= 2**(v[22]-1)


中间代码复制粘贴的时候注意一下,我这里是以21号为已完成的任务,22号为随机到的任务编号
具体到你的工程里,编号可能会不同,需要你对应去调整。

至于开关,你只要在后面事件的分支里再打开就行了
作者: 遗忘的初心者    时间: 2020-6-13 15:07
chanszeman1018大佬真是幽默,但貌似我真的需要范例…
回复ppspssss大佬
  我这里本身没有xp,下载也没办法打开,真是抱歉。
  类似的思路可以搜寻的到,像是喵呜喵5大的随机抽取
  或是随机必中类似的,还是感谢提供参考。
回复KB.Driver大佬
  可能我复制哪里错了…(开关1~100,变数1~100我都没使用,应该不用更改?)

我写的内容(应该不是脚本冲突吧?)


回复chanszeman1018大佬
  我语法真的差阿…就算是简单的范例,至少我还可以用复制,更改数字然后去使用吧?
我真的不认为那是hi…但是看大佬的图片我真的不会打阿…

像这一段的条件脚本&& $game_party.g****我该如何打?



作者: chanszeman1018    时间: 2020-6-13 16:43
提示: 作者被禁止或删除 内容自动屏蔽
作者: 遗忘的初心者    时间: 2020-6-13 19:35
chanszeman1018 发表于 2020-6-13 16:43
忘了说,我的那个是要打开控制台才能看到效果的

感谢大佬回复…
放大3倍,看起来像不像h…应该是字型问题吧。

我可以理解将这10个数值存进变数1234裏

随着任务进行…2234变数会有变动

然后越来越多…



检查之后剩下500?

所以…我该如何在游戏中操作?
给情报时…
条件分歧 变数1234=10
  否则
  条件分歧 变数1234=9
  否则
  条件分歧 变数1234=8
  否则… 
??????
当完成任务4时,设变数2234=4,然后跑一次"检查",以此类推?


作者: chanszeman1018    时间: 2020-6-13 20:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: 遗忘的初心者    时间: 2020-6-15 20:46
chanszeman1018 发表于 2020-6-13 20:12
重複接10个隨机任務,竟然被你接到沒3号任務的10个任務,这机率有多低呢......
9^10/10^10=3486784401/100 ...

任务会重复阿?还是大佬误会我的意思了?
一个情报商提供随机10个任务,会重复,如果你已经执行其中的任务,该任务情报就不再出现,如果执行所有任务,情报商就只会闲聊…
情报商事件页面,只要有确认就是随机1~10个任务情报,会重复…(不是强制执行任务,要强制就加上第3张图的变数和语法)


如果执行假设1号任务,不管是在和情报商对话前或之后,执行该事件后,对话就不再会出现1号任务。

全部10个任务执行后,情报商对话就是闲聊…
话说…1023是指2^10-1吗?所以我只要5个任务那就是>=31吗?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1