|
  
骑士
- UID
- 307590
- 精华
- 1
- 积分
- 1108
- 帖子
- 14
- 威望
- 2 点
- 银币
- 5598 元
- 女仆
- 0 个
- 阅读权限
- 50
- 注册时间
- 2009-8-4
|
之前kimon 弄的php 外掛, 功能強勁得很, 幾乎涵蓋所有功能, 還好像能探知村裡有沒有兵, 再決定是否出去吃羊.
不过這個php 用法貌似挺複雜, 安裝時有點難搞, 不知道有沒有人熟悉php 呢?
可不可能做一個簡化版呢? (如果 it 鬼才 kimon能出手就最好啊)
目標:
1. 搖控輸入 http://s4.travian.com/a2b.php的 中表格:
<form action="http://s4.travian.com/a2b.php" name="snd" method="post">
<input name="b" value="1" type="hidden">
Legion<input name="t1" value="0" size="1" type="text">
Imper<input name="t3" value="0" size="1" type="text">
EI<input name="t5" value="0" size="1" type="text">
Scout<input name="t4" value="0" size="1" type="text">
Praet<input name="t2" value="0" size="1" type="text">
EC<input name="t6" value="0" size="1" type="text">
<BR>
Cata<input name="t8" value="0" size="1" type="text">
Ram<input name="t7" value="0" size="1" type="text">
Sen<input name="t9" value="0" size="1" type="text">
Set<input name="t10" value="0" size="1" type="text">
<BR>
<input class="radio" name="c" value="2" type="radio">Re
<input class="radio" name="c" value="3" type="radio">Nor
<input class="radio" name="c" value="4" checked type="radio">Raid
<BR>Coordinate:
<input class="text" name="x" value="114" size="2" maxlength="4" type="text">
<input class="text" name="y" value="160" size="2" maxlength="4" type="text"><BR>
<input value="ok" name="s1" alt="OK" type="submit">
2. 利用 .txt 的 flat database 去找出決定打哪隻肥羊, 例如:
x y t1 t2 t3 t4 (t1= clubswingers 或 legionnaire)
112 202 3 0 0 0 0 0 0 0 0 0 0 // 出 3 隻 cs 去打112 202
122 202 3 0 0 0 0 0 0 0 0 0 0
121 202 3 0 0 0 0 0 0 0 0 0 0
132 202 3 0 0 0 0 0 0 0 0 0 0
112 232 3 0 0 0 0 0 0 0 0 0 0
.txt 每被讀一次, 首行資料就被 truncate 一次,
但我只懂 fopen ( "farm_list.txt", w ) 這種方法, 卻會把整個文件都清洗的,
不知道怎樣才能只刪首行數據
3. 再用 cronjob 每隔一段時間執行一次.
4. 效果: 日後只要掛在自己的個人網頁服務器上, 就能自動攻肥羊, 連電腦也不用打開, 也不怕忽然停電或掛線啊~~~~  
但我不太熟悉 php, 請IT 鬼才 kimon 出手增援啦~~~~
<?
require_once('common.php');
// 假設已經登入
login();
// 在a2b 抽出類似句子 <a href="#">(20)
$url = "http://$server/a2b.php";
if ($fp = fopen("$url", "r"))
{
while(!feof($fp))
{
$line = fgets($fp,1024);
if (eregi('on[cC]lick="document\.snd\.t([0-9]+)\.value=([0-9]+); return false;',$line)',$line))
{
$army = $line; // 這能弄出 $outtext[1...8] 的array , 把每一個符合句子放入去嗎?
}
}
fclose($fp);
}
// 得出 <a href="#"> 這類句子後,
// 如何向電腦說明:
// $t3= 20;
// $t1 = 10; 等等呢?
// 這樣行不行呢?
// 不懂啊....
// 超菜鳥方法...
$num = count($army) // 點算有多少個 array 在army 內
while ( $counter < $num ) {
$counter = $counter + 1;
$army_info_cutting = eregi_replace("(.*).value=", "", $outtext[$counter]); // 把 .value= 及之前的東西砍掉
$army_info_cutting = eregi_replace("; return(.*)", "", $outtext[$counter]); // 把 ; return 及之後的東西砍掉
$troop($counter) = $army_info_cutting
}
// 打開 Flat database
// farm_list.txt 數據格式如下:
// number(出擊的次序) X Y (座標) T1 T2 T3 .... T11 (兵的編號)
// 1 110 152 0 0 10 0 0 0 0 0 0 0 0 <--- 第一項攻擊, 出五隻 imperian, 其餘為 0
// 2 111 152 3 0 0 0 0 0 0 0 0 0 0 <--- 第二項攻擊, 出 3 隻 Legion, 其餘為 0
//
$fh = fopen("farm_list.txt","r");
while($attack = fgets($fh))
{
... 不懂怎處理..... . 要再研究研究....
}
}
哎.... 寫得好慢, 每寫一行都在翻書, 各位熟悉 php 的高手請來協助一下啦. |
|