新規さん

ネトゲの活況さを表す指標の一つに、新規さんがどれだけ入ってくるか、というのがある。そして、どれだけ定着してくれるか。

普段あまり気づかないけれど、ロードスには案外新規さんが入ってきてくれているみたいで、少しだけ安心。だけど定着に関してはどうしても不安になってしまう。

オープン当初のロードスは、ザクソン、アラン、ロイドと進むにつれキャラが成長し、スキルも徐々に増え、少しずつ操作を覚えていけた。けれど今は右も左もわからないまま面倒なメインクエをやらされキャラのレベルだけが上がり、厳しい狩場に放り出される感じ。

これで本当にロードスに残ってくれるの?…って考えてみると、ギルドの果たす役割って大きいだろうなと思う。

現在、ロードスには初心者支援を謳っているギルドがいくつかある。実は、今回、その中の一つのギルドのマスターさんにお話を聞かせて貰う機会があった。どうもありがとう。

そのお話を載せようと思ったけれど、一旦今日はここまで。聞いたお話の中身についてはまた後日。

課金装備 (2018/11/7 - 12/26)

課金装備 (2018/12/26 - 1/30) - お茶の国 プリ日記 ロードス島 調査兵団
課金装備 (2019/1/30 - 3/6) - お茶の国 プリ日記 ロードス島 調査兵団

モニカの神秘的な箱 (2018/12/19 - 12/26)

https://lodoss.pmang.jp/notices/2095

幻惑の轍 (U1 足)

レベル50制限 (U2化 不可)
OP1[固定] 移動速度 +30%
OP2[固定] クリ率 +35% - 45%
OP3[固定] 攻撃力 +20% - 25%
OP4[固定] CT減 15% - 20%

ティキの神秘的な箱 (12/5 - 12/19)

https://lodoss.pmang.jp/notices/2070

[最上級]破壊の古代王国期の肩防具 (U2 肩)

レベル60制限
OP1[固定] 攻撃力 +40%
OP2[固定] クリ率 +65%
OP3[ランダムで1種] 筋力 or 器用さ +3

[最上級]賢者の古代王国期の肩防具 (U2 肩)

レベル60制限
OP1[固定] 攻撃力 +40%
OP2[固定] クリ率 +65%
OP3[ランダムで1種] 知力 or 判断力 +3

[最上級]古代王国期の指輪 (U2 指輪)

レベル60制限 (装備制限1個)
OP1[固定] 攻撃力 +30%
OP2[固定] クリ率 +35%
OP3[固定] 筋力+3
OP4[固定] 知力+3
OP5[ランダムで1種] 器用さ or 判断力 +1

ギムの友誼ある箱 (11/28 - 12/5)

https://lodoss.pmang.jp/notices/2053

新装備なし

エトの友誼ある箱 (11/21 - 11/28)

https://lodoss.pmang.jp/notices/2036

新装備なし

ウッドの友誼ある箱 (11/7 - 11/21)

https://lodoss.pmang.jp/notices/2015

ブリリアントシルエット(U1 上衣)

レベル50制限
OP1[固定] 被ダメ(魔法) -25%
OP2[固定] クリ率 +20%
OP3[固定] 攻撃力 +15%
OP4[固定] クリ攻撃を20%で回避

U2化時
OP1[固定] 被ダメ(魔法) -30%
OP2[固定] クリ率 +30%
OP3[固定] 攻撃力 +20%
OP4[固定] クリ攻撃を20%で回避 (変更なし)

無形の腰帯 (R6 腰)

OP1[ランダムで1種] 被ダメ(物理) -5% or -10% or -15% or -30%
OP2[ランダムで1種] 攻撃力 +5 or +10 or +15 or +25
OP3[ランダムで1種] クリ率 +5% or +10% or +15% or +30%
OP4[ランダムで1種] 詠唱速度 +15% or +25% or 命中率 +15% or +25%

攻撃速度上昇の効果

キャラのステの「攻撃速度上昇」は、その名の通り攻撃の速度を上げる効果を持っているけれど、正確にどの程度速くするのかについては、実はよく分かっていない。

例えば、攻撃速度上昇100%のときは全ての動きが2倍の速さになる、言い換えれば動作の所要時間が半分になる、…様に思えるけれど、どうやらそうなっていないっぽい

これには、次の二つの可能性が考えられる。

  • 仕様上 2倍速にならない
  • 仕様上は 2倍速だが、鯖の処理が追い付かず、実際にはならない

この辺に関して、少し調べてみたい。というか、考える材料を集めてみたい。

DPS予想プログラム

そこで、今作っている途中のDPS予想プログラムを使ってみる。このプログラムで、各動作の所要時間を半分にしてデータを取ってみる。

このデータと、キャラの攻撃速度上昇を100%のした時の実際の与ダメを比較してみたい。

理論通りなら結果が一致することが期待できるけれど、果たしてどうなるか。

結果の比較

まず、プログラムの計算結果がこちら。
f:id:ochanikki:20190308235542p:plain
2分間かかしを叩いた時の与ダメが 140万 - 155万ぐらいと見て取れる。

一方、実際に攻撃速度上昇を100%にして、かかしを叩いてみた結果がこちら

1,134,313
1,142,663
1,175,967

大体115万前後。やっぱり低いね。

攻撃速度上昇を100%にしたからと言って、実際そこまで速くなっていないことが分かる。ただ、これは 夜11時前後の鯖の混んでる時間帯での結果なので、空いているときにやればまた変わってくるかもしれない。

プログラムの検証

少し前にDPS予想プログラムを作った。

モンクDPS予想4 - お茶の国 プリ日記 ロードス島 調査兵団

今日はこの検証をしてみる。

予想値と実測値の比較

まず、プログラムを実行し予想させた結果がこちら。
f:id:ochanikki:20190307235316p:plain
横軸が2分間の総与ダメで、縦軸がその頻度。なので、58万ぐらいが平均で
振れ幅としては50万 - 65万ぐらいだと思って良さそう。そこで、今度は実際にかかしを叩いてみる。その結果がこちら

622,018
621,721
693,456

分析

うーん。いつものことなんだけれど、どうも予想プログラムより実測値の方が高く出てしまう。今回の場合、最初の2回分はやや高いとは言え大まかには合っている。けれど、3回目のデータは外れと言うしかない。

何かを見落としているかもしれないのだけれど、何なんだろう…。

イベレイド

今日から2週間イベレイドがある。詳しい情報はこちら

https://lodoss.pmang.jp/notices/2247

イベレイドはLv31以上の31レイドと、Lv101以上の101レイドとがある。
Lv101以上のキャラなら両方のレイドに出て報酬を両方貰える。今回、報酬はかなりいいらしい。

101レイド

出てくる敵は31レイドと同じだけれど、敵のレベルが120になっている。種族は

幻想、人間、不死、魔法、人間
(2体目雑魚は魔法、5体目雑魚は幻想)

報酬

報酬が貰えるのは一日一回まで

4体目から「輝く武器強化[ユニーク][取引可能]」
5体目から「マナと真銀ボックス (真銀の欠片 or マナの精髄のランダム)」

が貰える。パぺ、経験値はもらえない

命中率/LP/クリ率

敵の回避がかなり高いらしく物理職の人はほとんど当たっていないみたい。
念のため命中率補正はこんな感じ。

Lv110以下 濃い赤 (命中率補正 50%)
Lv111-114 薄い赤 (命中率補正 30%)
Lv115- 黄色

聞いた話では命中率300%あっても、実際の命中率が10%くらいなんだとか。

ただ、自分が昔調べた限りでは、どんなに命中率が低くくても(あるいは、敵の回避が高くても)最低限20%は当たるハズなんだけどどうなんだろう。

命中/回避実験20 - お茶の国 プリ日記 ロードス島 調査兵団

昔と仕様が変わってしまったのか、レイドは別扱いという事なのか、あるいは10%というのがかなり謙遜して言ってたという事なのか…。

ともかく、現状では魔職にかなり依存した倒し方にならざるを得ない。また、魔職の場合与ダメ1問題が残っていると思うのでエレ、ウォロ、ナイトなどの防御力減デバフを付けられる職が重要になる。

幸い敵のLPは低いらしいので火力のある魔職がいればわりと早く倒せている。

ただクリを出そうと思ったら、クリ率が1000近く要るんだとか><

傭兵バグ

今日は傭兵バグについて。

傭兵バグ

傭兵が死んだときに、何故か自分も巻き込まれて死んでしまうというバグ。症状としては、こんな感じ。

  • 灰色画面になる
  • しかし、自分のLPは残っている
  • 聖女復活ダイアログが出るのにOKを押しても何も起きない

実は、このバグが起きたときPTの他の人からは、その人は死んだように見えていない。ほんと、フツーに生きているように見えている。なので、プリがリザすることもできない。

聖女復活もダメ、リザもダメ、なのでこのバグが起きたらch移動するかリログするかしかない。ところが、困ったことにch移動、リログすらできない事さえある。

鯖側から見ると

何故ch移動、リログができなくなるかは、鯖側からみた状況が分かると納得できる。というのも、このバグ、本人には死んだように見えているけれど、鯖側からは生きていると認識されている。そして、生きているだけでなく敵を叩いていたり敵に叩かれていたりする事さえある。なので、ロードスの仕様として、その状況ではch移動もリログもできないという事になる。ch移動、リログをする前に、まとわりついた敵を何とかしないといけない。

治し方

となると、PT中にこのバグを受けたなら、治す流れはこんな感じになる。

  • 「傭兵バグになった」と周りに伝える
  • 周りの人に、まとわりついている敵が居れば剥がしてもらう。あるいは倒してもらう。
  • その後、ch移動orリログ

逆に言うと、PT中に誰かが「傭兵バグだ><」と叫んだら、とにかくその人にまとわりついている敵を倒してあげるのが大事。

ch移動後

しかも、ch移動後も受難は続く。傭兵バグで無事にch移動をすると、キャラは敵のど真ん中に出る。当然敵に叩かれる。その後プリさんにコールされると、例の抜刀バグが発生する。

抜刀バグ1 - お茶の国 プリ日記 ロードス島 調査兵団
抜刀バグ2 - お茶の国 プリ日記 ロードス島 調査兵団

なので、戦線に復帰するためには

ch移動 → コール → 抜刀バグ発生 → 安全地帯に移動 → リログ → コール

という手順を踏むことになる。

こんなバグ放置してるのホント酷い話だけれど、バグとの付き合いも含めてロードスだからね。

モンクDPS予想4

以前の日記で、モンクがブロー系チェインを付けたときの与ダメ予想プログラムを載せたけれど、そのときはまだ武器は訓練用の武器専用だった。今日は一般の武器でも予想できるようにプログラムを書き換えてみた。こんな感じ。

N=10000                  # 実験回数

FB=0.45*(1.21+0.05)      # FB発動率
BB=0.05*(1.21+0.05)      # BB発動率
FnB=0.05*(1.21+0.05)     # FnB発動率


AT_N  = 363..378         # 通常攻撃与ダメ
N_ADD = 19               # 通常物理攻撃上昇
AT_FB = 595..615         # FB与ダメ
AT_BB = 1008..1042       # BB与ダメ
AT_FnB= 1906..1971       # FnB与ダメ

R_UP  = 0.35+0.02        # リアクションスキルダメージ増
F_UP  = 0.10             # 最終ダメ増
D_Nat = 0.15             # 自然ダメ増

ST_N  = (2+1)*1.3*1.3    # 通常スタ攻
ST_FB = (4+1)*1.3        # FBスタ攻
ST_BB = (6+1)*1.3        # BBスタ攻
ST_FnB= (8+1)*1.3        # FnBスタ攻

TM_N  = 1.04             # 通常攻撃の時間
TM_FB = 0.53             # FBの時間
TM_BB = 0.53             # BBの時間
TM_FnB= 0.53             # FnBの時間

CT_FnB= 5*0.8            # FnBのCT

CRI=0.8                  # クリ率
CRI_DM=1.5+1.0+0.07      # クリダメ増
GRO_DM=1.0+1.2           # グロダメ増

MaxStamina = 280         # かかしの最大スタミナ

AT_Hash={:normal => AT_N, :fb => AT_FB, :bb => AT_BB, :fnb => AT_FnB}
ST_Hash={:normal => ST_N, :fb => ST_FB, :bb => ST_BB, :fnb => ST_FnB}
TM_Hash={:normal => TM_N, :fb => TM_FB, :bb => TM_BB, :fnb => TM_FnB}

$frand=Random.new()
def occ(q)
  $frand.rand(1.0) < q
end

# 攻撃の種類を決める
def at_type(prev, time, fnb_ct)
  fnb = time >= fnb_ct    # FnBのCTが終わっているか
  case prev
  when :normal
    return :fnb if fnb && occ(FnB)
    return :bb if occ(BB)
    return :fb if occ(FB)
  when :fb
    return :fnb if fnb && occ(FnB)
    return :bb if occ(BB+0.45)
    return :fb if occ(FB)
  when :bb
    return :fnb if fnb && occ(FnB+0.30)
    return :fb if occ(FB)
  when :fnb
    return :bb if occ(BB)
    return :fb if occ(FB)
  end
  return :normal
end

def attack (type)
  rand AT_Hash[type]
end

def sim (max_time)
  type=:start
  stamina=MaxStamina
  gro_time=0
  time=0
  total=0
  fnb_ct=0
  
  while time < max_time
    type=at_type(type, time, fnb_ct)

    fnb_ct = time+CT_FnB if type==:fnb
    at = attack(type)
    dm = type == :normal ? at+N_ADD : at*(1.0+R_UP)

    dm *= CRI_DM if occ(CRI)

    if time <= gro_time then   # グロ中
      dm *= GRO_DM
    else                       # グロ中でない
      stamina -= ST_Hash[type]
    end

    dm *= (1.0+F_UP)

    total +=dm.to_i
    time  +=TM_Hash[type]

    if stamina < 0 then
      stamina = MaxStamina
      gro_time = time + 5      # 5秒間グロ
    end
  end
  total
end

N.times do
  p sim(2*60)
end

このプログラムの正しさの検証はまた後日。