2012年3月12日月曜日

RubyのMechanizeでGREEにログイン&投稿

573の某ソーシャルゲームにすっかりはまっている。
体力の効率的な消費を模索し、自然回復が無駄にならないよう、常に体力は低下状態を保つようチェック。朝起きたら、まずは溜まった体力を消費する作業。

レベルアップ時の全回復を効率的に行うため、体力を消費しきった瞬間に経験値がMAXになるよう、必要な残り時間を計算しアラームを設定、体力0から全回復後、職場にいようがトイレに駆け込み体力消費作業に入る。
回復アイテム=資産であり極力使用を避け、イベントの都合上どうしても回復薬使用が必要な際は、レベルアップ時と同様、体力0になるまで冒険へ。

回復=資産であり、トレードコミュニティはマーケットである。
機能改修・カード追加・次期イベント内容を見極め、値上がりが予想される物件を底値の回復薬で購入し、
売りさばく。転売、保有、現実のマーケットほどのリスクと複雑さを伴わない投機の実験場だ。

そうして得た資産はそのままデッキの強さとなる。しかしながら、デッキ強化のためのレアカード購入は、とりわけ資産価値の低下がはやいソーシャルゲームにおいては大きな保有リスクとなり、結果的に資産の減少を招く。
したがって、ソーシャルゲームの目的はデッキを強化し他プレイヤーより優位に立つことから、いかにゲーム内で価値の上昇する資産を持つかというむき出しの富のゲームへといたる。

仮にRMTが絡めば、いきなり現実のマーケットと地続きの駆け引きも生じる(参考)。

ここにおいて、最速の攻略というものを目指すならば、ソーシャルゲームからは射幸心を煽る課金システムは意味をなくすはずである。どんな演出があろうと、バトルで勝つためにデッキを強化することは非合理な行動である。ガチャでレアカードを手に入れるよりも、マーケットで同カードを購入した場合の方が期待値で圧倒的に低コストである。私たちの身体に訴えかけるキラキラした快よりも、最適な価格で商品を入手できたという合理的な快が勝る。
ソーシャルゲームのRTAがあるとすれば。このような投機的な行動の結果によるはずであり、それはそれで、いっぱんにRTAと呼ばれているプレイングとは大きく違ってしまうが、課金アイテムを度外視して最善の攻略を目指したとき、このようなことになるであろうと思う。

---

と、いうのはあくまで資産に偏ったプレイングの例ですが、こういった駆け引きを好む人には食わず嫌いかもしれないということで、いちどやってみるといいですよ、ガチャガチャポチポチソーシャルゲーム。

そこで本題ですが、GREEのコミュニティに自動投稿するスクリプトを公開。
iMacrosなどを導入した方が話は早いし、トレードコミュニティでも、投稿先を個人のブログに設定しているところには、うまくポストできないんで、半端なコードですが。
GREEのブログへのコメントフォームは、jsかなにかで動的に生成しているみたいで、Mechanizeでポストする方法がわからなかった。誰か教えてください。


require 'rubygems'
require 'mechanize'
require 'kconv'

#それぞれ入力
email = '[Email-address]'
passwd = '[Password]'
comment = "[投稿内容]"

#インスタンスの生成
agent = Mechanize::new

#サイト内容取得
agent.get('http://gree.jp/')

#loginフォーム処理
agent.page.form_with(:name => 'login'){|form|
  form.field_with(:name => 'user_mail').value = email.toutf8
  form.field_with(:name => 'user_password').value = passwd.toutf8
  form.click_button
}

#コミュニティにアクセス
agent.get('[http://gree.jp/コミュニティのURL/]')

#括弧内にはクリックしたいリンクを入力
#ページ遷移は下の行をコピペで
agent.page.link_with(:text => /#{"[自己紹介スレッド]"}/).click

agent.page.form_with(:action => 'http://gree.jp/#form'){|form|
  form.field_with(:name => 'thread_msg').value = comment.toutf8
  form.click_button
}

0 件のコメント:

コメントを投稿