作者laechan (小太保)
看板RO
標題Re: [閒聊] 大概50顆夏之蛋
時間Tue Feb 1 15:16:05 2011
※ 引述《smpi (化完妝的恐龍(。??。))》之銘言:
: 你內物怎麼可能 “還沒開就決定?”
inherit BOX;
void main()
{
set("name","夏之蛋II");
set("describe","一顆夏之蛋, 可以轉出物品.\n");
set("mass",10);
}
void player_buy_it()
{
先執行轉蛋物品轉出程序;
set("box_content",轉出物標記);
}
假設上述物件叫 box,當玩家在購買轉蛋的同時..
box->player_buy_it();
box->move_to_player();
這樣這顆轉蛋不必先開,其內容物就可以早早被決定,
而玩家只看的到轉蛋的名字、敘述、重量,看不到隱藏
的物件資料。而轉蛋「沒有被買時」其物件資料就不會
含有 "box_content" 這項資料,被買後才會設進去。
這是物件導向設計的初步概念。
要做的狠一點我可以舉例,例如神金,打死某些怪物會
掉神金這個大家都知道,我可以在怪死後神金掉落的同
時「就設定這顆神金用來精鍊會不會失敗」。
: ex:
: 我用雙視沒用放大鏡 就知道結果了 更何況轉蛋還可以交易
: 那不是 買來先透視一下 再七日內退貨
我舉個例,底下是某程式...
inherit UNKNOWN;
int i=1;
void main()
{
set("name","未鑑定物");
set("describe","需用放大鏡檢視喔");
set("origin_object","一洞斗篷");
}
特定的雙窗程式或許可以直接讀取物件資料「origin_object」
,但是只要沒有撰寫讀取變數 i 的函數(方法),那麼變數 i
不管你再怎麼厲害都是無法得知其值的。
這亦是物件導向程式設計的用途之一,資料具有良好隱藏性,
除非撰寫方法不然無法讀取, 但又無礙程式內本身的相關計算
簡單的說就是,今天它只是將未鑑定物的實際資料登錄如上,
讓你不需放大鏡也能看到而已,它也可以將未鑑定物的實際資
料登錄為變數資料, 只是它沒這麼做罷了.
RO實際運作方式則是將一洞斗蓬偽裝為未鑑定物, 這就可以回
歸到我上面所講的以及你所質疑的
你內物怎麼可能 “還沒開就決定?”
你舉例的做法就恰好是其中一種解答。
: 公司沒有傻成這樣啦!!! 要是我說的可行 這也太豪洨了吧
我在某 mud 實作過這種東西。
: 你講的很復雜 但我看似是很簡單的
: 跟系統負擔有什麼關係? 我實在看不懂!
比方轉一顆轉蛋跑一次「轉蛋內容物隨機取得副程式」
該程式是可以寫的簡單、亦能寫的複雜的。若寫成後者型式
則一般程式設計者會避免玩家在短暫時間內快速開轉蛋。
舉例的話例如它讓玩家存東西到倉庫只能一種類一種類存,
沒有選取多個然後一次存倉的方法,程式實際上寫的出來,
不寫就可能是有其考量。
對系統造成的負擔有時就可能是其考量之一,存某物到倉庫
這樣的動作看似簡單,但若跟資料儲存(保全)結合的話就一
定得考量對系統整體的負擔。
我舉例,當你存A到倉庫,準備存B到倉庫時,突然系統當機
,然後又重開你又順利登入了,這時你的直覺想法就是身上
的A物「剛剛應該有順利存進倉庫吧?」
如果你期望這樣的事,那就該想想有沒有可能你每做一個可
能更動到資料的事情,系統就得儲存一次你的資料?
: 就跟你打一隻波利 掉什麼東西 定的機率相似啊
: 隨便舉例子
: 結晶石50%
: APPLE 30%
: 波利卡片 0.02%
: 還用分什麼拉機組合 轉蛋 我是沒買過
: 如果像打波利一樣
: 是沒看過一次噴二張卡過 (除非他偷吃)
: 但有看過結晶石跟APPLE同時出現的啦
我在某個 mud 板有大致提過 RO 的掉寶設定。
我在那個板沒寫到的東西就是,在一個掉寶函數裡面其實是可以
攙入相當多程式段的。
為什麼?因為 0.02% 是一個相當小的機率,小到讓我有很多動手
腳的空間,今天我「公開」一隻怪打到卡片的機率是 0.02%..
一、但我可以設實際機率是 0.002%
二、我也可以在高興時調高它一些例如變成 0.2%
三、我甚至可以在不爽時讓它在 2/1~2/3 絕對不會掉一張卡
四、甚至我可以設定如果它在 2/1 被打到卡,那麼在 3/1 前絕對
不會再掉卡、或者往後一個月掉卡機率自動變成 0.00002%
那麼對玩家而言,「如果我不說破」,玩家會去懷疑 0.02% 這個
機率設定嗎?
今天假若打一隻怪會掉 m 種物品,我只要動其中的 2~3 項關鍵物
品的掉落機率即可,玩家就會因一般物品的打到機率看起來很平常
、而自動無感我對關鍵物品的隱藏設計。
: 很簡單的東西被你想到很難................
: 定機率好像 沒你說的那麼難吧XD
: 如果每次怪 噴的東西 不是ko時 遊戲公司那邊程式幫你決定
: 那不就玩單機遊戲就好?
: 轉蛋也一樣道理 不公佈機率
: 你花了摳摳$$下去 是生或是死 都是遊戲公司那邊程式幫你決定
: 你能中什麼 這也就是運了!! 不是你電腦等級超快可以連開不延遲
: 就可以改變遊戲公司的設定......沒那麼神啦!!!
某一個 mud 有 777 拉霸的設定,每一數字輪為 1~9 九個
數字,在這情況下轉出 777 的機率是 1/9x9x9 = 1/729
底下是概略程式碼...
int r1,r2,r3;
r1=1+random(9); // 採用程式中的亂數種子
r2=1+random(9);
r3=1+random(9);
if(r1==7 && r2==7 && r3==7)
玩家拉中頭獎彩金;
結果實際運作情況怎樣捏?就是 n 個玩家,每個人都身懷巨款,
開始在拉霸前狂拉狂賭,三不五時就看到公頻出現某人拉中777
「理論上拉 729 次才會中一次的777三不五時出現」,你不更
改設計的結果就是玩家每個都相信勤賭必中然後每個都賺大錢。
像上述還算好的至少還能看出中獎機率是 1/729(雖然實際上有可
能並非如此),
完全不寫物品對應轉中機率的轉蛋,就完全隨原廠
高興怎麼訂就怎麼訂。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 115.82.241.154
1F:推 satou20444:變成程式碼的討論串了 02/01 15:20
2F:推 wingthink:請先翻譯成哥布靈語 02/01 15:31
3F:→ laechan:另外補充一點,假設RO公布轉到卡片機率0.01%,有人真的買1萬 02/01 15:41
4F:→ laechan:顆轉蛋去轉結果連張卡片都轉不出來,這個似乎可以告的樣子 02/01 15:41
5F:→ laechan:或許這也是不公布機率的主因之一 02/01 15:41
6F:→ laechan:(像大樂透若你49個號碼全包就一定會中) 02/01 15:42
7F:→ annie6119:我是不是看到printer 02/01 16:34
8F:推 smpi:商人都是穩賺不賠的 要是做莊還會了錢 誰要去做啊XD 02/01 16:38
9F:→ smpi:還有告不成 只買1萬個 太少....... 02/01 16:39
10F:→ smpi:不過會數學的一定有辦法算出來 02/01 16:41
11F:→ shining504:印象中 轉蛋是固定物品的沒錯...因為上一期塔奧轉蛋 02/01 16:43
12F:→ shining504:某些人不用用負重篩選法就能得知轉蛋內容 02/01 16:44
13F:噓 jack88144:如果你開到塔奧 妳今天就不會來這長篇大論了 02/01 16:44
我這次花 500 買轉蛋開有三個目的..
一、拼一下塔奧卡
二、用遊戲制作者的角度去感受這個轉蛋給我的感覺
三、剛好領年終就花點小錢開個轉蛋再把結果貼出來分享
如果我開到塔奧我可以跟你說, 我會插卡自用. 賣這張卡
是很麻煩的(除非它R幣價錢低於9999萬那我會賣掉), 自
用的話我一堆體的角色都用的到.
那, 最終目的還是在勸大家, 花錢買轉蛋, 不如買樂透.
14F:→ shining504:新斷線賣轉蛋怎樣都不會虧錢 因為那是虛寶阿 傻傻的 02/01 16:44
15F:推 qwe96325:ㄜ 那大概不可行哦.. 02/01 16:53
16F:→ qwe96325:1個機率是100%的跟100個機率1%的期望值都是100%沒錯 02/01 16:54
17F:→ qwe96325:但是只是期望值 100個1%的可能開出1~100個 02/01 16:54
18F:→ qwe96325:若是這樣可以告 那機率也不會是1%了 02/01 16:55
19F:→ qwe96325:因為0的機率就不存在 期望值高過1 不符合原本理論 02/01 16:55
20F:推 qwe96325:發現第三句打錯= =" 原本可能性有0~100個才對 02/01 17:02
※ 編輯: laechan 來自: 115.82.241.154 (02/01 18:44)