開心網外掛開發手冊
2009-03-19 20:25:55| 分類: 預設分類 | 標籤: |字號大中小 訂閱
開心網外掛開發手冊
核心提示:做一個Web遊戲外掛需要的準備知識:1) 需要有耐心2) 熟悉HTML, JavaScript,特別是FORM3) 熟悉HTTP協議,特別是Cookie, URL的編碼方式和POST, GET內容格式4) 熟悉遊戲本身,能抽象出最優的賺錢/...
做一個Web遊戲外掛需要的準備知識:1) 需要有耐心
2) 熟悉HTML, JavaScript,特別是FORM
3) 熟悉HTTP協議,特別是Cookie, URL的編碼方式和POST, GET內容格式
4) 熟悉遊戲本身,能抽象出最優的賺錢/升級的數學模型
5) 掌握一門語言,白菜蘿蔔都可以,我比較喜歡用Python和C#
6) 需要一些抓包的工具,比如Fiddler
好了,來個例子,開心網爭車位.
首先,我們看看一個正常使用者玩的時候是怎麼玩的。
1) 瀏覽器輸入 www.kaixin001.com ,輸入使用者名稱,密碼,點登陸
2) 登陸後選擇左側的“爭車位”,進入到爭車位
3) 看看誰在我的車位裡,一一貼條
4) 看看自己的車哪些停車時間操作15分鐘了,一一找個空的不免費的車位挪過去
5) 登出開心網,關閉瀏覽器
看看讓程式怎麼來實現1-6。
1) 登陸開心網
在Fiddler的幫助下,我們知道登陸是把FORM提交到/login/login.php,POST內容是[email=url=%2F&email=xxx@xxx.com&password=xxx]url=%2F&email=xxx@xxx.com&password=xxx[/email]
用C#可以方便的完成這個POST操作,然後得到伺服器的返回,然後根據返回的內容裡找一個關鍵字就可以判斷這次登陸操作是否成功了。(比如我找的就是"<title>我的首頁 - 開心網</title>")
2) 登陸爭車位
這次是一個GET操作,URL是/app/app.php?aid=1040。
需要說明一下的是,這裡沒有提供使用者名稱密碼,伺服器怎麼能知道是哪個使用者呢?Cookie在這裡就發揮了它的作用。
C#裡存放Cookie的方法是new 一個CookieContainer,然後所有的HttpWebRequest的CookieContainer都用它。
好了,取得這個頁面以後,我們能得到很多資訊:(這些資訊是JSON格式)
a) 好友列表,每個好友的狀態(線上/車位滿)
b) 自己的車庫資訊,停了那些好友的哪些車,分別賺了多少錢
c) 自己的汽車資訊,多少輛車,分別停在哪裡,賺了多少錢
根據這些資訊,我們可以得到一個停放的列表(車位不滿的好友列表)
3) 貼條
貼條是一個POST操作,URL是/parking/post.php,內容是verify=xxx&parkid=yyy&p=1&_=
parkid很好理解,車庫資訊裡直接可以取到,那麼verify怎麼得到的呢?
我當初的第一反應是Cookie資料通過某種運算得到的,不過後來我看了登陸爭車位的html後才發現原來這個verify是這樣寫的:
...
<script language=javascript>
var fs2_pars = "f1";
var g_verify = "383639_1040_383639_1221703779_49963b942199e94b88e405d0f7b1651d";
var g_first = parseInt("0");
var g_touid = parseInt("0");
var g_checkswf = 0;
.....
很好,直接去這個從HTML取得的值就好了。
4) 挪車位
這個操作稍微複雜了一點點,具體的HTTP請求大家可以去分析一下,我分析的結果如下:
a) 是否是免費車位
在JavaScript裡有程式碼:
v_park_free = (v_parkid >> 16) & 0xff;
if (v_park_free)
{
v_mycar += '免費車位';
}
else
{
v_mycar += '私家車位';
}
c) 讀取鄰居家車庫資訊
URL: /parking/neighbor.php
POST內容: verify=xxx&puid=yyy&_=
d) 讀取鄰居家車庫資訊
URL: /parking/user.php
POST內容: verify=xxx&puid=yyy&_=
e) 停車
URL: /parking/park.php
POST內容: verify=xxx&park_uid=xxx&parkid=xxx&carid=xxx&neighbor=xxx&a=1&first_fee_parking=0&_=
5) 登出
GET URL: /login/logout.php
恭喜你,基本的操作你都明白了。
開心網爭車位遊戲中無法顯示flash動畫的解決辦法:
進入登錄檔下面位置
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent]
把裡面的Post Platform目錄刪掉後重啟IE瀏覽器即可。
原因:被未知病毒或者外掛修改了登錄檔導致無法顯示。
此故障的特點:大部分網站的flash可以顯示,就開心網的爭車位無法正常顯示
本文來自開心網外掛,功略,教程,開心369,原文地址:http://www.kaixin369.com.cn