純美蘋果園

TRPG討論區 => 工具區 => 團力區 => 團務工具區 => 主题作者是: Sheepy 于 2007-03-18, 周日 10:32:00

主题: DnDBot 下載及使用法
作者: Sheepy2007-03-18, 周日 10:32:00
话说在2007年03月17日正牌 Dicebot 失踪了,所以 DnDBot 被征召为公用 bot. DnDBot 的冒险旅途从此开始...

DnDBot 是设计来在 IRC 中提升投骰、抓取跑团记录等用,要來辅助跑团用的 IRC 机器人。
DnDBot 并不是 IRC 客户端,跑团者请使用 mIRC, PalBot, FreeBot 等 IRC 软件连接到伺服器跑团。
因为 DnDBot 可进驻多个频道由多位用户使用,所以一般情况下跑团者不需要自己准备机器人。



本站下载: http://www.goddessfantasy.net/~sheepy/dndbot/DnDBot.7z (http://www.goddessfantasy.net/~sheepy/dndbot/DnDBot.7z)

===== 安装及执行 =====

  要求:爪哇 (Java) 执行环境 (JRE) 5 或以上,建议 6 或以上
大众爪哇下载地址:http://java.com/download/ (http://java.com/download/)
最新爪哇下载地址:http://java.sun.com/javase/downloads/index.jsp (http://java.sun.com/javase/downloads/index.jsp)

解压:发布档用 7zip 压缩,Windows 可以用 7zip (http://www.7-zip.org/zh-cn/) 或新版的 WinRAR 解压,Linux/Mac 可用 P7Zip/J7Zip (http://p7zip.sourceforge.net/)/Peazip (http://peazip.sourceforge.net/)/Zipeg (http://www.zipeg.com/) 等解压。
安装及使用 (Windows):发布档内含 .exe,可直接执行。
安装及使用 (其他):发布档内含 .jar,可直接(用爪哇)执行,或在指令行呼叫 java -jar DnDBot.jar 执行。
反安装:直接删除所有档案

原码:此软件为 GPL 开放源码软件,修改及再发布需要附带完整原码。原码以 zip 压缩的形式储存在 jar 内。



===== 图形介面 =====

执行后会显示出设定页面,在此可修改各种设定。设定在成功连线时会自动保存。

设定:
Server - IRC 伺服器名称
Port - 伺服器连接埠
Charset - 伺服器编码
Nickname - DB 的 IRC 昵称,如与别人相同就无法登入
Password - 登入密码,可空
Channel - 登入后加入的频道,可空
Admin Pwd - 管理员密码,可空
Language - DB 使用的语言

除了管理员密码和语言外,设定在登入后不可修改。
连线到苹果园请用 GBK 编码,语言记得设成中文。

设定好后按 "Run",DB 便会连接并登入。以下是常见错误:

Someone is using that nickname >>> 昵称已经被其他人使用
Connected but cannot login >>> 成功连线但无法登入
Cannot connect >>> 无法连线,一般为伺服器名称或连接埠错误。

成功登入后会切换至图形指令行,DB 已经可以在 IRC 内使用。

在任何时候把 DB 最小化,JRE 版本 6 或以上,DB 会缩至系统匣。
在任何时候关闭 DB 视窗,DB 会停止执行并退出。

跑团记录储存 / 转换
经由 log 页面可以储存正在/已经记录的跑团记录,也可以转换其他客户端储存的 mIRC 编码记录,会尽量转换所有已知的控制标记包括全彩粗体钭体底线反白。
输出可以选择不同类形,其中 bbc 类形可以直接张贴到论坛,txt 类形没有颜色或格色。高手可以修改 transform/log-???.xsl 自定输出结果。
所有用户设定 (.set 或 .here) 和未储存的跑团记录在 DB 关闭时会消失。


===== IRC 指令 =====

投骰:.r .rh .ra .d .dh .da
基本用法:"/invite dndbot #房间" 进行邀请,".here" 指定投骰房间,".r (算式) [形容]" 投骰; 算式里不能有空白
进阶:
私讯 ".set DM (DM 名称)" 可以把 .rh/.dh 暗投结果复制给 DM
多次投骰:".r 3 d+15" 投三次 +15 攻击
多次簡骰:".r 6x 4d6h3" 標準能力投骰, 只顥示總結果
取最高/最低骰:在投骰后加 'h' 取最高骰, 'l' 取最低骰,如 ".r 6 4d6h3" 投 6 次 4d6取高三
详细投法请私讯 ".help r"

重投:.rr .dd
重投上次投骰

快投:.rs .ds
储存快投:".rs melee d+15,2d8+d6" - 储存 melee 为两次投骰,分别是 1d20+15 和 2d8+1d6
使用快投:".r melee" - 投掷 melee
也可以储存完整指令,如 ".rs die .dic dying,.dic stable,.dic disabled" - 储存 die 为三次条目查找
储存空白指令则会清除指令。指令与登入名称相关联,重登入可能需要重新储存。

记录:.log
.log start 开始记录,.log stop 停止记录,.log get 下载记录(可指定格式)。记录也可以经由图形介面储存。
记录保存所有色彩,格式有 bbc (论坛),html,txt,和 xml 四种。转换模版存放在 transform 目录,可自由修改。

自动 Op:.auto-op
此功能可自动 op 新加入用户。
无论开启与否,假如所有管理员因任何原因全部(逐一)消失,DB 会 Op 所有余下的用户 ,如没有用户则 DB 会自动退出。

管理: .reconnect, .reset, .shutdown
私信 .shutdown 给 DB, DB 会结束执行。
.reset 主要是开发用,配合 hotswap 可重新载入表逹式及语言资源。
.reconnect 未知能否对抗各大客户端的无理封锁,有待实战确认。
如果有设定管理员密码,则需要先私讯一次 ".set admin (密码)" 确认身份。

設定: .here, .set colour, .on, .off
.here 設定投骰頻道,設定後可私訊對頻道投骰
.set colour off/on 可關閉/開啟顏色顯示
.on / .off 可在此頻道開啟/關閉 DnDBot. 也可以用 .dndbot on 或 .dndbot off

指令行
-min: 起始時自動最小化
-autoConn: 起始時自動連線
-noLog: 介面不記錄一般通訊
-Log: 介面會記錄一般通訊

已知问题
无 .k, .w 等投法 - 这是 D&DBot. 最高骰可用其他语法代替.
DnDBot 同一时间只能加入限定数量的房间 (服务器限制). 如果 invite 没有用, 可以私讯 ".here #(房间名称)" 之后私讯投。DB 会自动退出闲置频道,所以可以重试。
不正常掉线或下线后可能无法重连线;这是 PircBot 的内部问题,有待日后修正。


其他事项
DnDBot 很难因为指令处理错误而完全挂掉, 没反应时请确定 DB 没有被禁言或封锁, 及私讯 .here 取消输出设定.
主题: DnDBot 下載及使用法
作者: donkey2007-03-18, 周日 10:52:14
这个东西好像很好玩的样子
主题: DnDBot 下載及使用法
作者: Sheepy2007-03-20, 周二 18:09:10
嗯... 以所餘無幾的空閒時間積極開發中.

圖形介面已經完成, 開放下載, 地址及用法請看頂樓.

本程序需要足夠新的爪哇才能跑, 圖形介面也暫時沒打算沒計劃沒動機去中文化. (英文不好的自己翻字典, 才那數只字 :em030 )


主要更新 (詳看 About -> changelog)
2007-03-21 更新 0.7.3.1: 在對原碼作出一些調整後已經可以在 Java 5.0 上跑, 不過無法縮至系統匣
2007-03-22 更新 0.7.3.2: 跑團記錄完成, 不過使用區域網的人可能無法經 IRC 取得記錄. 我也沒有法.
2007-03-26 更新 0.7.3.3: 加入圖形介面指令行, 對記錄和監控等功能除錯
2007-03-27 更新 0.7.3.4: 加入攻擊修正值和重投指令,加入純文字記錄格式
2007-04-02 更新 0.7.4.0: 加入射距忽略, 主流遠射武器, 射距遠射; .r 和 .d 獨立重投記憶; 確認己修正 .here 及重連線的問題
2007-04-02 更新 0.7.4.1: 加入自動 Op 指令, 重連線指令, 自動退出閒置頻道 (未測試), 及對記錄功能的改良
2007-04-03 更新 0.7.4.2: 加入內建資料庫, 加入條目查找指令, 加入角色狀態條目, 補充原碼評注
2007-04-04 更新 0.7.4.3: 加入快投指令, 加入氣候條目, 原碼加入數據庫滙出
2007-04-06 更新 0.7.4.4: 加入連線狀態小窗, 快速投骰可清除, 少許雜項修正改良優化
2007-04-09 更新 0.7.4.5: 加入 IRC 記錄轉換功能, 加入監視器開關/清除, 記錄及圖形介面修正及改良, ref 更名為 dict
2007-04-12 更新 1.0 Beta 2: 加入計時和亂數表功能, 加入戰鬥行動和生物類形條目, 加入氣候地形和混亂狀態行動表, 數據庫指令加入通配符, 接受 notice 指令, 少量優化及介面改良
2007-04-16 更新 1.0 Beta 3: 抽離記錄轉換模版, 分離 jar, 及一些修正改良優化
2007-04-17 更新 1.0 Beta 4: 快投加入參數
2007-04-19 更新 1.0 Beta 5: 記錄轉換加入人流過濾, 加入百分比支援, 更新訊息控制符,  及一些修正改良優化
2007-04-23 更新 1.0 Beta 6: 所有私訊改用 notice 傳送, 修改多重攻擊語法, 記錄修正, 及其他修正
2007-05-09 更新 1.0 Beta 7: 加入簡體, 加入距離計算指令, 投骰訊息移除粗體, notice 改回私訊
2007-06-06 更新 1.0 Beta 8: 修正 bbc 輸出格式, 距離計算顯示 D&D 移動距離, 加入 !list 回應, 簡單計算只會顯示算式一次
2007-06-15 更新 1.1 Alpha 2: [開發版] 加入可設定預設骰面 ( .set dice 10 ), .r 和 .d 現在會讀 # 和 k, 加入忽略高骰/低骰, 對 !list 和 !help 作出回應, 加入 .dndbot 定向指令
2007-06-18 更新 1.1 Alpha 3: [開發版] 使用 # 的多次投骰轉為單行顯示, 加入 Freebot 保護提示, 少許優化
2007-07-03 更新 1.1 Alpha 4: [開發版] 延長閒置頻道退出時間, 部份指令改用 notice 提示狀態, 修正投骰形容顯示, 修正全域自動派帽切換, 採用 GPL3 授權
2008-04-07 更新 1.1: 加入 min/max/round/ceil/floor 函數, 一些訊息修正, 重整專案結構及建構檔, 加入建構指示 於 src.zip 內
主题: DnDBot 下載及使用法
作者: Sheepy2007-04-02, 周一 22:38:36
經過大半月的開發,就功能而言應該已經拋離 DiceBot (http://www.www.goddessfantasy.net/bbs/index.php?showtopic=102&st=0&#entry71290),log 功能也應比得上 jewel (http://www.www.goddessfantasy.net/bbs/index.php?showtopic=9065) 和 log 自动整理器 (http://www.www.goddessfantasy.net/bbs/index.php?act=ST&t=12039),唯一缺點是未經歷足夠測試。 :em004
最大特色大概是內建的指令說明,雖然很簡短。

地圖功能已經開始企劃,預料會以獨立軟件的形式開發而不是內建於 DnDBot 之內。 :em018
主要原因是 DnDBot 的定位是獨立的背景機器人而不是單一 DM 的跑團工具,把地圖獨立出來可能更合邏輯。

除了地圖外,想問一下大家最需要甚麼協助跑團的工具?
同時,也希望大家可協助測試。定期更新的 DnDBot 會保持長時間在線,歡迎使用。 :em888
會 Java 的人也可以自己解壓原碼研究大體已定的內部結構。
主题: DnDBot 下載及使用法
作者: wsxiaoys2007-04-04, 周三 09:09:40
羊羊最勤劳!
另:
http://www.aarg.net/~minam/dungeon.cgi (http://www.aarg.net/~minam/dungeon.cgi)
嗯……不过似乎没必要专门把这功能做进去……
主题: DnDBot 下載及使用法
作者: vopolo2007-04-17, 周二 20:52:50
不知道有什么用,打开貌似没有什么效果....  :em008  
主题: DnDBot 下載及使用法
作者: Donnie_Brasco2007-04-18, 周三 10:43:18
一般来说log都得经过整理才放出。
我每次都得把xxx已进入,xxx已退出之类的信息删掉。清洁版面。
xxx已更名为xxx
xxx设置xxx为+o
如果有个功能能删掉这类语句,就方便多了。
主题: DnDBot 下載及使用法
作者: Sheepy2007-04-18, 周三 12:22:23
如果有內建的記錄抓取功能的話那些訊已經自動消除. 不幸地因為近來我的網線和伺服器皆出現問題所以 DnDBot 不能保持長期在線... 不過發佈的目前就是大家可以自己抓下來用.

轉換方面我剛才測試過, 可以在轉換模版內處理. 雖然不能用表逹式但應該夠用了.

我手上的記錄使用的是 "现已将其昵称改为","新加入","已退出","已离开","踢出",和 "设置模式为", 如果你把你的記錄寄給我, 我可以替你把那些也加進去.

更新: 訊息清除功能已經完成在 Beta 6 中.
主题: DnDBot 下載及使用法
作者: Donnie_Brasco2007-04-19, 周四 09:35:27
赞美一下sheepy君 :wub:  
主题: DnDBot 下載及使用法
作者: 克莱尔2007-04-19, 周四 10:07:04
/ME 行骑士礼...
 
主题: DnDBot 下載及使用法
作者: Sheepy2007-04-19, 周四 15:12:58
嗯, 刪除功能已經加了, 用需要的人請試用, 有沒清掉的句子請把完整句子私訊給我.

感謝 Ellesime 提供空間
主题: DnDBot 下載及使用法
作者: Donnie_Brasco2007-04-19, 周四 22:06:06
那个多次投掷很好用,推荐大家以后就是用这个bot了 :em001  
主题: DnDBot 下載及使用法
作者: lance1232007-04-21, 周六 19:43:01
/ME  膜拜中...再次膜拜中...
主题: DnDBot 下載及使用法
作者: vopolo2007-04-21, 周六 22:27:57
搞明白怎么用的了....
主题: DnDBot 下載及使用法
作者: Sheepy2007-04-22, 周日 09:31:57
謝謝支持! :em009
大家覺得好用就好, 開始公測後發現還有很多東西要修... :em002

例如說, Beta 5 更新控制碼時沒有做好測試, 投骰結果在記錄中會變得怪怪的, 導致本星期五和六的部份團的記錄有點問題, 發佈檔已經臨時更新到開發中的 Beta 6, 希望能趕及星期天跑的團...

update: Beta 6 已發佈, 修正了一堆記錄功能, 希望問題會少一些...

update: Beta 7 開始會說簡體了喔, 也移除了粗體, 還有甚麼需要改?
主题: DnDBot 下載及使用法
作者: 柯洛丝2007-10-27, 周六 07:59:56
伺服器名称和伺服器连接埠填什么?
我一点都不会%……
主题: DnDBot 下載及使用法
作者: Sheepy2008-04-07, 周一 11:49:21
填入 IRC 伺服器, 因為這是 IRC 機器人... 果園用設定見附圖.





近來開始繼續改良了. 既然 jep 已經中止開源開發, 那麼就只好自己來了... 反正骰子用預處理硬插進 jep 不是很理想的做法. 現在自己寫, 要怎樣玩都可以了~

寫好, 加好自定 JS, 就可以出拖了大半年的 beta... :em006

EDIT: 我改變主意了. 1.1 會是最後一版使用 JEP 的版本. 大幅去蕪存菁後的下一版本應該會是 2.0...
為此 1.1 最終版的結構及 ant build 被重整了, 也加入(英文)建構指示, 方便想自行修改的人 (有嗎? 反正我自己也方便... 我前後換了多少機器了?)

圖示為工事中的 2.0 版新解譯器的目前成果.
主题: DnDBot 下載及使用法
作者: icefoggy2008-07-09, 周三 15:53:01
能不能开发一个无颜色版本,方便手机跑团,颜色在手机里无法正常显示
主题: DnDBot 下載及使用法
作者: AlbertNi2008-07-09, 周三 16:06:06
我更想知道姐姐的那个图表是怎么做出来的?
主题: DnDBot 下載及使用法
作者: Sheepy2008-07-10, 周四 10:26:15
更新了. 在頻道中說 ".set colour off" 可以把對那頻道的顏色和格式全部消除.
也可以私訊同一指令, 那麼只有向你發出的顏色和格式會消除.

另外, 也按貓兒的提議標記 d20 的 1. 雖然不是反白, 但最少加紅了. 黑色不太夠顯眼.

同時, 投標準能力值時 ( e.g. .r 6#4d6k3 ) 會自動計算總加值及點購價值. 加值比照 4e PHB 的提示上色.

樹型圖是用 ANTLRWorks 生成的, 左下的說明文字用 PS 加. 整個投骰解譯器都是用 ANTLR 生成的...

EDIT:
2.0a5 新增 .dndbot on, .dndbot off, .roll, 5d6h3 點購等
2.0a6 修正了快速投骰不出來的問題, d-2+4 變成 d-2 的優化 bug, 算式判定優先採用舊的無空格偵測, 以及簡略投骰現在會顯示骰數
2.0a7 加入了對拖著一串格式指令的指令偵測, 省略前錣點的私信指令也允許空格混合格式作開頭
2.0a8 實作 reroll below (i.e. Brutal 傷害重投) 和 reroll above.
2.0a8.1 調整了投骰方程式減低部份極端數序出現的機會.
主题: DnDBot 下載及使用法
作者: Sheepy2008-11-07, 周五 13:34:48
說一聲, 開發版和在線長掛版 DnDBot 支援 Brutal 了... 例如 4d10b2 會投 4d10 並重投所有的 1 和 2. 測試時我曾經 4d6 連投五個 1...
主题: DnDBot 下載及使用法
作者: AlbertNi2008-11-07, 周五 17:27:09
换用MT了……于是纯支持
话说姐姐知道什么免费的支持中文的irc么……
主题: DnDBot 下載及使用法
作者: Sheepy2008-11-07, 周五 18:15:35
引用
换用MT了……于是纯支持
话说姐姐知道什么免费的支持中文的irc么……
支持中文的麼... 我那個在線 IRC 支援. 需要對應非 GBK 的話我去略改一下就可以...

http://www.www.goddessfantasy.net/~sheepy/irc/ (http://www.www.goddessfantasy.net/~sheepy/irc/)
主题: DnDBot 下載及使用法
作者: Sheepy2009-01-06, 周二 15:35:41
恐怕好一段時間不會回來研究改進這邊,所以先提一下好了...

DDB 的投骰是可以分部標註的,對 DM 或其他人的理解會有幫助,使用方法是在 .r 後加 ` (Tab 上面, Esc 下面的那個小不點), 整句投骰的總評用雙格隔開.


例:
.r 3 `d+9+2 CA +1 威能 -2 隱 -2 掩  暴風三重!!!
.r `(4d10b2+12 +d6 WoG +2d8 獵)/2 衰弱  去死去死!!!

配合 .here 使用效果更悅目. 建議先熟習 .here 再用這類功能...
主题: DnDBot 下載及使用法
作者: Sheepy2009-03-12, 周四 09:15:23
DnDBot2 a8.1 改進了投骰算式, 人工減低 12345 症狀及投骰者多次獲得類近數值的機會.

這是由於用戶的意見而作出的改動. 一般人往往能從像樣的隨機數序裡找出樣式而否定它的隨機性, 這是個存在已久的現像. 希望這改動能改善用戶對 DnDBot 的印像.

由於時間不足, 暫時未實作關閉此"神之手"的指令.
主题: DnDBot 下載及使用法
作者: AlbertNi2009-03-12, 周四 11:13:59
引用
DnDBot2 a8.1 改進了投骰算式, 人工減低 12345 症狀及投骰者多次獲得類近數值的機會.

這是由於用戶的意見而作出的改動. 一般人往往能從像樣的隨機數序裡找出樣式而否定它的隨機性, 這是個存在已久的現像. 希望這改動能改善用戶對 DnDBot 的印像.

由於時間不足, 暫時未實作關閉此"神之手"的指令.
嗯……/me 举手弱弱地问……什么是12345?
主题: DnDBot 下載及使用法
作者: Sheepy2009-03-12, 周四 11:22:57
連續多次 (三次或以上) d20 投出 12345 之一的現像. 事實上, 是整體上連續投出類近數字的機會下降了, 同一人的連續重擊也會減少. 不過減少了還是有可能會發生就是... 具體的實作記載在 ExpressionContext 和 DiceExpression 裡.

筆記: bug - d% highlights 20s
主题: Re: DnDBot 下載及使用法
作者: poorlunch2010-10-28, 周四 03:00:18
/me 于是小声建议咩姐姐把加入了brutal指令的事情放到1楼去 XD

另外,人为调整骰子数字有必要么?
我记得有个出随机数字的法子,就是拿诸如系统时间的秒数(担心不够随机的话再乘个100什么的)当随机发生种子,这样基本上不管发生函数有多么糟糕,骰子的随机性基本可以保证,再引入一两个类似变量的话应该就没啥问题…… (例如直接取房间名用户名然后换成数字?)
主题: Re: DnDBot 下載及使用法
作者: Sheepy2010-10-28, 周四 08:06:19
你認識偽隨機嗎? 這一句實在太多糟點. 秒數, 乘 100, 不管函數多糟糕, 骰子的隨機性, 引入一兩個類似變量, 這五點可以逐點吐, 沒有技術含量.

所以, 假設你不會編程, 讓我們只看最後的一句"沒啥問題".



你認識隨機嗎? 提出這點之前, 有沒有問過數學老師, 查過維基, 谷歌, 或甚至(我的天)百度? 或者, 甚至乎, 首先問一問, 這是甚麼調整?

調整是, 減低類近骰面連續出現的機率.

讓我重覆一次.

DnDBot 的調整是, 減低 類近骰面連續出現 的機率.

不是迴避低骰.
也不是迴避連續低骰.
而是迴避連續類近骰面.
(而骰面, 在這句是指分佈值, 而不是經過骰面運算後得出的最終顯示結果. 也就是說, d20 出 20 跟 d10 出 10 算作連續的類近骰面, d20 出 10 跟 d10 出 10 不算.)



那麼, 甚麼是隨機, 甚麼是平均分佈, 甚麼會讓人類覺得是隨機?






即使骰子經過調整, 它依然有隨機性. 它只是局部不平均分佈 - 而這局部不平均分佈又視乎上次結果而變化, 長遠還是偏向平均分佈.
事實上, 這調整的目的就是提高有限的時間內的結果的總體平均性.

也就是說, 迎合人類這種生物對"隨機"的期望.




所以, 對, 的確是為了迎合隨機所以反而搞得不隨機. 問題出在那兒?


以 D&D 4e 為例, 假如我們將 1-20 分成四組, 第一組 1-5, 第二組 6-10, 第三組 11-15, 第四組 16-20. 每投一次骰子, 每組出現的機會都是四分一.
然後, 連續投三次, 連組出同一組的機會, 是 64 分一. 好像很細的機會.

但你一場戰鬥, 不止投三次骰子吧?

如果你平均每回合投三次骰子 (假設全為 d20),  五回合下連續最少三次出現同一組的機會就降到 25%.  如果這是個五人團, 那麼統計平均每團會有一個 PC 持續投出 12345.
如果我們進一步假設這些骰子中可能有一半或以上是 d6 d8 (長劍, 治療加值, 獵手標, 偷襲, 重擊...), 那麼"連續低骰數"出現的機會就會提高最少三倍 - 也就是大部分人都會有這個 12345 經驗.
高骰面結果因骰面數量不同而有大差異, 但低骰面結果頗固定 - d20 出 18 接 2d6 出 5+6, 這回合還不錯. d20 出 3 接 2d6 出 2+1, 你會詛咒骰子到戰鬥結束 - "怎麼總是 3 以下".
相對的, 沒甚麼玩家會就第一組數字說, "真牛逼, 骰面是好的 20%". 連我都不會.

如果連續的低骰到四五個, 人腦會開始尋找解釋 - 埋怨運氣, 檢討人品, 詛咒骰子, 座位風水, 甚至角色是不是改錯名. 這是人的天性. 即使連續低骰的可能性是已知數, 由於人類尋找(無中生有的)關聯的能力所以不良的感覺依然會佔高比率.

樓上不信的話可以自己找這方面的研究. 在香港氾濫的 iPhone/iPad 背後支援的 iTune 也受這種關聯機制的影響而用類似手法去迎合人類的隨機感 - 也就是蓄意迴避歌曲間的關聯. 迴避同歌手, 迴避同 CD, 迴避同一首歌等等. 在骰子上, 那就是迴避類近骰子.



那麼, 同一粒骰子, 同一套原理, 99.9% 相同的 DNA, DM 手氣為甚麼總是好呢? 想一想再往下看?




DM 如果每戰放五隻怪, 每回合出最少一次重擊的機會是 23%, 是單擊 PC 的 4.6 倍.

當然, 出 1 的機會也是 4.6 倍, 對.

可是沒人會記得 DM 打失多少, 因為重要的是打中多少.



說到尾, 都是人類在自尋煩惱.
主题: Re: DnDBot 下載及使用法
作者: poorlunch2010-10-28, 周四 08:19:26
唔……咱确实是很久没看编程了啦>_<  也就一般rand都是调系统时间这个还是记得的。最简单的应该就是直接读系统时钟然后mod骰子面数,这个应该无误……  :em031

不过后面那个12345的部分确实是完全不知道。于是学习,然后道歉 = =
虽然我个人的话应该是不怎么会吐槽骰子就是 :em002


唔,睡前留言一下吧。
我是学物理的,对电脑的伪随机不熟,不过纯随机应该是等概率的直线分布函数这个还是很清楚的。
最开始问的时候就是因为不知道调整数字的算法是啥。当然咩姐姐解释了就比较好理解。不过,从本质上来说,这就是在一个(伪)随机分布的函数上叠加了一个针对短期采样结果的修正,而且主要是针对pc自己的感觉吧?

如果修正的参数太大了,似乎有可能引起“大采样随机,小采样伪周期性”的情况(在物理上就是长程无序短程有序的液晶 >_< )?当然只要这个参数不太大就没有问题。
主题: Re: DnDBot 下載及使用法
作者: AlbertNi2010-10-28, 周四 08:45:32
/me 于是翻译了咩咩的话:
“你们人类(咦?无误……)就是喜欢盯着坏事看,所以我只好把连续发生坏事的概率调低一些让你们心理平衡一些啊!”
主题: Re: DnDBot 下載及使用法
作者: Sheepy2010-10-28, 周四 08:50:46
最簡單, 效果最好, 是去用現有的隨機生成程序.

首先, 時鐘會用來做種 - 包括 DDB - 但用的*一定不是秒*, 最少是微秒. 第二, 隨機質素的量度條件之一是連續隨機數的位元的變化的分佈性, mod 在此全敗.  第三, 如果有人採用多次投骰, 例如 ".r 6 3d6", 那麼同一秒收到的請求是不是應該出同一樣的結果, 不是的話同一個請求內的骰子, 時間總得一樣吧? 還是我們應該人工延後, 一秒 (或者 X 微秒) 出一粒骰子? (那還是隨機嗎?)

那怕是十多年老的 Mersenne Twister 也別介意, 用吧. mod 這個要說是偽隨機都有困難.
主题: Re: DnDBot 下載及使用法
作者: Sheepy2010-10-28, 周四 08:50:53
順便吐一吐糟. 在小說, 電影, 和遊戲中你常常會遇上一種說法是, "人類的不可預測性(隨機性/選擇非最優行動的可能性)導致到他們做出電腦沒期待到的結果, 取得勝利"云云.

這也是假的. 依照真正的遊戲理論, 人類進行非最優的選擇只會加速電腦的勝利. 沒達成此點的實作, 無非是實作不良或技術所限(例如運算速度限制)不能發揮到完美的遊戲理論.

別被人類自以為是的隨機騙了.
主题: Re: DnDBot 下載及使用法
作者: Sheepy2010-10-28, 周四 08:52:02
/me 於是翻譯了咩咩的話:
“你們人類(咦?無誤……)就是喜歡盯着壞事看,所以我只好把連續發生壞事的概率調低一些讓你們心理平衡一些啊!”
對, 就是你們這些兩隻腳高高在上, 將我們當作食糧看的人類!  :em023
主题: Re: DnDBot 下載及使用法
作者: aland2010-10-28, 周四 09:21:52
555...这突如其来的萌气场是怎么回事...
主题: Re: DnDBot 下載及使用法
作者: OiceBot2010-10-28, 周四 09:50:25
引用
說到尾, 都是人類在自尋煩惱.
无错!就是这些地球人坏的事,该让他们抱怨自己去,嗯嗯!
引用
一般rand都是调系统时间
也有加种子参数的…以便得到固定序列的一串……
主题: Re: DnDBot 下載及使用法
作者: Sheepy2010-10-28, 周四 10:10:37
引用
一般rand都是調系統時間
也有加種子參數的…以便得到固定序列的一串……
除了 C/Pascal 程序庫外, 目前還沒見過從我初學至今不變的序列方程式.  :em023
主题: Re: DnDBot 下載及使用法
作者: 逛吃逛吃2010-10-28, 周四 10:29:21
/me 於是翻譯了咩咩的話:
“你們人類(咦?無誤……)就是喜歡盯着壞事看,所以我只好把連續發生壞事的概率調低一些讓你們心理平衡一些啊!”
對, 就是你們這些兩隻腳高高在上, 將我們當作食糧看的人類!  :em023
/me 接着翻译了咩咩的潜台词

你们这些人类,变更后的代价就是连续发生好事的概率也变低了,咩咩(哼哼?)~
主题: Re: DnDBot 下載及使用法
作者: Sheepy2010-10-28, 周四 10:36:18
引用
最開始問的時候就是因為不知道調整數字的算法是啥。當然咩姐姐解釋了就比較好理解。不過,從本質上來說,這就是在一個(偽)隨機分佈的函數上疊加了一個針對短期採樣結果的修正,而且主要是針對pc自己的感覺吧?

如果修正的參數太大了,似乎有可能引起“大採樣隨機,小採樣偽周期性”的情況(在物理上就是長程無序短程有序的液晶 >_< )?當然只要這個參數不太大就沒有問題。

嗯. 正是如此, 吸收很快哇~

至於修正的系數... 意外的, 經實際測試發現範圍系數和機運系數太低的話情況沒改善多少.

目前, 修正基準是以用戶上一次的投骰, 各投骰者間互相獨立. 上次骰面會影響附近 25%-50% 的結果的概率, 最低點我記得低於 50% 機率.

所以, 小採樣是會出現比調整前高的週期現像, 不過不至於很明顯, 淹沒了在人類的感覺之中.
主题: Re: DnDBot 下載及使用法
作者: OiceBot2010-10-28, 周四 14:24:45
引用
一般rand都是調系統時間
也有加種子參數的…以便得到固定序列的一串……
除了 C/Pascal 程序庫外, 目前還沒見過從我初學至今不變的序列方程式.  :em023
VB里面可以设定一个种子……只要种子一样,出来的序列(几乎)总是一样的…… (加几乎是因为我没试过不同电脑用同一个种子的情况……)
主题: Re: DnDBot 下載及使用法
作者: Sheepy2010-10-28, 周四 14:51:32
我有分開發的最後一套 VB6 程序已經在上個月過渡到 VB.Net 了. 依然是 VB, 但那樣還會一樣嗎?

EDIT: VS 2008 是最後一套能將 VB6 轉化的 Visual Studio. 最新版 VS 2010 已經完全不支援 VB6, 難以維護下去...
主题: Re: DnDBot 下載及使用法
作者: OiceBot2010-10-28, 周四 15:49:38
呃,很久没玩VB了……最近在啃Python- -,和 mirc Script
主题: Re: DnDBot 下載及使用法
作者: Sheepy2010-10-28, 周四 15:58:57
/me 聳肩, 輕聲說 Python 的隨機演算在 2003 年 9 月更新過.
主题: Re: DnDBot 下載及使用法
作者: poorlunch2010-10-28, 周四 16:39:41
引用
一般rand都是調系統時間
也有加種子參數的…以便得到固定序列的一串……
除了 C/Pascal 程序庫外, 目前還沒見過從我初學至今不變的序列方程式.  :em023
VB里面可以设定一个种子……只要种子一样,出来的序列(几乎)总是一样的…… (加几乎是因为我没试过不同电脑用同一个种子的情况……)

对对,我印象里的随机数就是这么造的……需要一个足够大的种子,然后针对这个特定种子出来的数字序列是近乎随机的(只要采样数目不超过由种子决定的某个上限)

然后,如果种子本身使用一个随机数(例如系统时钟),那么即使是在同一台机器上运行,也总是能得到不同的随机序列。前面说的乘以100然后加个其他随机数,其实是增大种子的方法。不过显然咱弄混了随机种子数字本身跟随机事件,于是没说清楚 :em006
我一般是直接用物理模型类比随机数的。事件发生的时间mod骰子面数,应该是一个很不错的单次随机数——因为终端发出指令的时间是相当随机的——类似的还有取当时的cpu热涨落温度等等。当然,如果一次需要多个投骰,那么就只能用种子产生一个伪随机序列了(唔,其实以物理来说,如果cpu测温精度足够,那么延迟固定时间连取多个cpu温度也是可以的)……
主题: Re: DnDBot 下載及使用法
作者: Sheepy2010-10-28, 周四 18:36:57
嗯. 其他包括白噪音, 電壓值, 線程狀態, 可用記憶變化等. 不過這些以及時間/溫度都有精度及範圍的問題. 如果測量傳回來的是 8 位元, 那麼你的骰子只能有 256 面.
而這些東西是不是真能用, 甚麼部分能用, 又得逐個看, 甚至得等硬件回應... 因此獲取速度跟偽隨機相差最少數十倍.
例子有 Java 的 SecureRandom 的官方實作, 它利用這些真隨機數據作為資料來源之一, 進行處理後經 SHA1 轉化成 160 位元, 再從中抽取 64 位元作為結果.

至於編程常用的偽隨機, 包括無處不在的 LCG, 剛才提到的 Mersenne Twister, 或較新的 XORShift / WELL, 都屬於 linear recurrences modulo m 這一類演算法.
其中最簡單的 LCG 的算式基本是 R = (aX+c) mod m. a, c, m 的選擇直接影響結果好壞.
不過再好, 受限於算式的特質, 連續數字之間有很強的關聯, 將結果描出來往往可見呈條狀分佈.

也就是說, LCG 除了速度之外沒甚麼麼好... 不幸地, 大部分語言都還在用 LCG.
主题: Re: DnDBot 下載及使用法
作者: OiceBot2010-10-29, 周五 08:29:07
其实是你们人类被天网控制的第一步呀,哇哈哈哈哈哈
主题: Re: DnDBot 下載及使用法
作者: Sheepy2011-05-16, 周一 00:27:01
版本 2.0 Alpha 8.4

新增 "pointbuy" 點購計算指令
新增 "sw", "swh", "swp", "swd" 等指令進行劍世界投骰
  例: .sw 9 = 2d6+9
  例: .sw 4# 5 9 = 四次威力 5 加 9
新增 "swp" 功能進行劍世界投骰. 例: .r swp(5,2d6) 威力 5 投骰無修正
加入對重投大於/重投小於(凶暴武器)/爆炸骰(斬首武器)的平均值計算

EDIT: 增加爆炸骰 (x, =斬首), 重投大於 (a) 兩項投骰修正.
主题: Re: DnDBot 下載及使用法
作者: OiceBot2011-05-18, 周三 23:47:59
 :em012 开发出来了?     :em022 可恶,抢了我的饭碗……   
 :em031 呜呜呜……这下没人要我了     :em002  果然还是……   
主题: Re: DnDBot 下載及使用法
作者: princess2011-07-29, 周五 16:46:14
IRCserV
如何进入呢?错误第二项
主题: Re: DnDBot 下載及使用法
作者: 夜歌白憂伶2011-07-29, 周五 17:03:01
:em012 开发出来了?     :em022 可恶,抢了我的饭碗……   
 :em031 呜呜呜……这下没人要我了     :em002  果然还是……   

果然還是OT子最萌了!
主题: Re: DnDBot 下載及使用法
作者: princess2011-08-23, 周二 12:33:20
邀请不进来 什么情况呢 在console那里输入命令也无法进房间
主题: Re: DnDBot 下載及使用法
作者: Sheepy2011-08-23, 周二 14:17:57
可能是當了, 你可以下載後在自機跑或者改天再試  :em006
主题: Re: DnDBot 下載及使用法
作者: princess2011-08-25, 周四 15:39:57
就是   自機跑
主题: Re: DnDBot 下載及使用法
作者: Sheepy2011-08-25, 周四 17:37:08
那麼, 連線到了 IRC 沒有? 我記得預設的連線*不是*果園用的 IRC.
主题: Re: DnDBot 下載及使用法
作者: 密云不雨2012-08-15, 周三 22:47:29
团里想频繁用到一个随机抽牌的骰子,从一套牌中(编号1-10),随机抽出一张,扔掉后,从剩下的牌中继续抽。
所以如果有d10,如出5,6,7则重投,这样的语法,会非常有帮助,希望羊姐姐能加上。
主题: Re: DnDBot 下載及使用法
作者: Sheepy2012-08-16, 周四 13:37:02
团里想频繁用到一个随机抽牌的骰子,从一套牌中(编号1-10),随机抽出一张,扔掉后,从剩下的牌中继续抽。
所以如果有d10,如出5,6,7则重投,这样的语法,会非常有帮助,希望羊姐姐能加上。
設想會用 d10r5r6r7 這樣的語法去實作,不過因為目前不支援多於一個骰法所以要改 parser,發現手上沒那段的源碼,應該塞在不知那個舊硬盤裡了或者要從較早的備分找,需要一點時間。
主题: Re: DnDBot 下载及使用法
作者: 风铃2012-08-28, 周二 21:52:08
重装系统,又来下载,然后出个错误!难道我的浏览器又OUT了?

404 Not Found

--------------------------------------------------------------------------------

nginx/0.8.54
主题: Re: DnDBot 下載及使用法
作者: Sheepy2012-08-28, 周二 23:11:33
重装系统,又来下载,然后出个错误!难道我的浏览器又OUT了?

404 Not Found

--------------------------------------------------------------------------------

nginx/0.8.54
沒, 不是你的錯, 是我搬家後忘了放上去. 讓我找一找在那兒...  :em003
主题: Re: DnDBot 下載及使用法
作者: Sheepy2012-09-25, 周二 10:55:57
已修復下載連結.

翻出了 antlr 語法, 先備分一下  :em006