[分享 & 求助]水怪五子棋安裝經驗[已解決]

phpBB 2 MOD Support
無論是官方或非官方認證之外掛,安裝與使用問題討論。
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8547
註冊時間: 2004-04-30 01:54
來自: Taiwan

[分享 & 求助]水怪五子棋安裝經驗[已解決]

文章 心靈捕手 »

●架設主機作業系統:Windows XP SP2
●快速架站程式:Appserv 2.41
●您的上網方式:ADSL
●您安裝的程式:Apache + php + MySql
●您的 phpBB2 版本:phpBB 2.0.13
●您的 domain(網域名稱) :wang5555.dnsfor.me
●您的 phpBB2 連結網址: http://220.134.232.37/phpbb2/viewtopic. ... 5781#25781
●錯誤狀態: 3. 贏得比賽並沒有獲得獎金;

今天有會員分享" 水怪五子棋"( 請參見上述連結網址);

我在試裝以後發現了一些問題:
1. 原來的" 簡體字" 似乎很難轉換為" 繁體字",
只好揣摩上下文的語義, 自行將一部分簡體字翻做繁體中文:

代碼: 選擇全部

#
#-----[ OPEN ]-----
#
templates/YOUR_THEME/rpg_five.tpl

#
#-----[ FIND ]-----
#
鳩炰斕ㄛ斕荇賸ㄐ

#
#-----[ REPLACE WITH ]-----
#
恭喜您贏了!

#
#-----[ FIND ]-----
#
斕眒冪怀賸ㄐ

#
#-----[ REPLACE WITH ]-----
#
您輸了, 下次加油吧!

#
#-----[ OPEN ]-----
#
rpg/five.php

#
#-----[ FIND ]-----
#
殿隙

#
#-----[ REPLACE WITH ]-----
#
返回

#
#-----[ FIND ]-----
#
籵徹贗薯ㄛ斕鳳腕賸踢

#
#-----[ REPLACE WITH ]-----
#
恭喜您贏得了獎金

#
#-----[ FIND ]-----
#
$page_title = "嗽箄諦梬 RPG 忑珜";

#
#-----[ REPLACE WITH ]-----
#
$page_title = "歡樂的五子棋";

#
#-----[ FIND ]-----
#
'L_NOWMENU' => '辣 氈拻赽',

#
#-----[ REPLACE WITH ]-----
#
'L_NOWMENU' => '來下一盤吧!',

#
#-----[ SAVE & CLOSE ]-----
#
2. 圖片檔的路徑, 可以做下列的修改:
(如果您有安裝許多風格的話, 就不必將圖片丟在每個風格底下了.)

代碼: 選擇全部

#
#-----[ OPEN ]-----
#
templates/YOUR_THEME/rpg_five.tpl

#
#-----[ FIND ]-----
# 有兩個相同的地方\r
src="images/five/s'+f[i][j]+'.gif"

#
#-----[ REPLACE WITH ]-----
#
src="../images/five/s'+f[i][j]+'.gif"

#
#-----[ SAVE & CLOSE ]-----
#
3. 贏得比賽並沒有獲得獎金;

這一部分, 需要修改 rpg/five.php 裡頭的程式,...
一來是我的功力不足, 二來是要贏電腦, 還蠻難的, 很難判定自己是否修正成功? :oops:

因此, 我整理好部分資料後, 到此提問, 請求其他大大共同解決.

目前, 先加以備註如下:

代碼: 選擇全部

#
#-----[ OPEN ]-----
#
templates/YOUR_THEME/rpg_five.tpl

#
#-----[ FIND ]-----
#
<input type="hidden" name="act" value="save">

#
#-----[ AFTER, ADD ]-----
#
<p align="center">備註: 目前純屬娛樂, 贏了沒有獎金, 輸了也不會扣錢.</p>
 
#
#-----[ SAVE & CLOSE ]-----
#
最後由 心靈捕手 於 2005-03-28 11:57 編輯,總共編輯了 2 次。
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8547
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

補充說明:
如果要順利在您目前的水怪系統中執行的話,
那麼以下的修改, 提供您參考:

代碼: 選擇全部

# 
#-----[ OPEN ]----- 
# 
templates/YOUR_THEME/rpg_header.tpl 

# 
#-----[ FIND ]----- 
#
<a href="rpg.php?action=race" class="gen">水怪賽馬遊戲</a><br /><br />

# 
#-----[ AFTER, ADD ]----- 
#
<a href="rpg.php?action=five" class="gen">歡樂的五子棋</a><br /><br />

# 
#-----[ OPEN ]----- 
# 
rpg.php

# 
#-----[ FIND ]----- 
#
	if ( $mode == 'gamble' )
	{
		if ( !$userdata['session_logged_in'] )
		{
			$header_location = ( @preg_match("/Microsoft|WebSTAR|Xitami/", getenv("SERVER_SOFTWARE")) ) ? "Refresh: 0; URL=" : "Location: ";
			header($header_location . append_sid("login.$phpEx?redirect=rpg.$phpEx&action=gamble", true));
			exit;
		}
		include($phpbb_root_path . 'rpg/gamble.'.$phpEx);
		exit;
	}

# 
#-----[ AFTER, ADD ]----- 
#
	if ( $mode == 'five' )
	{
		if ( !$userdata['session_logged_in'] )
		{
			$header_location = ( @preg_match("/Microsoft|WebSTAR|Xitami/", getenv("SERVER_SOFTWARE")) ) ? "Refresh: 0; URL=" : "Location: ";
			header($header_location . append_sid("login.$phpEx?redirect=rpg.$phpEx&action=five", true));
			exit;
		}
		include($phpbb_root_path . 'rpg/five.'.$phpEx);
		exit;
	}

# 
#-----[ SAVE & CLOSE ]----- 
# 
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8547
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

很抱歉!

原本我的論壇" 架站經驗談" 的版面, 是設定所有會員都可以下載檔案的.

但是經過剛才查看,
上頭貼的文章( [分享]水怪五子棋) 雖然有 30 多位瀏覽過,
但是, 附加的檔案卻從沒有被下載過;

還以為大家可能對這個外掛沒有興趣,
突然發現: 原來訪客看不到附加檔案? :-o

會不會是因為, 這個主題的第一篇文章, 有設定付費瀏覽,
而我發表的這篇文章, 又有該篇文章的引言回覆, 所造成呢? :-?

關於這部分, 我會自己再多加留意;
也請其他大大抽空相助.

特將該附加檔案( 水怪五子棋) 的連結, 公佈於此:
按此下載
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
~倉木麻衣~
竹貓忠實會員
竹貓忠實會員
文章: 1405
註冊時間: 2004-03-21 21:00

文章 ~倉木麻衣~ »

獲勝了但沒拿到獎金~
是畫面上有寫「恭喜您贏得了獎金1000」~但實際上卻沒拿到?
那我建議先做個debug
在底下這句\r

代碼: 選擇全部

$sql="update phpbb_users set user_money ='$jq',fivetime='$fivetime' where user_id='".$profiledata[user_id]."'";
之後加上

代碼: 選擇全部

message_die(GENERAL_MESSAGE, $sql);
看看sql 的內容對不對

ps1.
我現在的論壇上沒裝水怪了~所以只能用猜的方式來找答案了:p

ps2.
簡體字的部份可以用EmEdit來編輯~它內建如同瀏覽器一樣的編碼選擇~蠻方便的
只是改成繁體時要記得切回big5
不然也可以試看看用ConvertZ~更方便

ps3.
抱歉~剛忘了在最後message_die()後面加;了
最後由 ~倉木麻衣~ 於 2005-03-26 21:58 編輯,總共編輯了 1 次。
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8547
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

~倉木麻衣~ 寫:獲勝了但沒拿到獎金~
是畫面上有寫「恭喜您贏得了獎金1000」~但實際上卻沒拿到?
那我建議先做個debug
在底下這句\r

代碼: 選擇全部

$sql="update phpbb_users set user_money ='$jq',fivetime='$fivetime' where user_id='".$profiledata[user_id]."'";
之後加上

代碼: 選擇全部

message_die(GENERAL_MESSAGE, $sql)
看看sql 的內容對不對

ps1.
我現在的論壇上沒裝水怪了~所以只能用猜的方式來找答案了:p

ps2.
簡體字的部份可以用EmEdit來編輯~它內建如同瀏覽器一樣的編碼選擇~蠻方便的
只是改成繁體時要記得切回big5
不然也可以試看看用ConvertZ~更方便
謝謝 ~倉木麻衣~ 兄的傾囊相助!

其實, 我已經有仿照您修改過 骰子 部分的程式碼修改了,
您上頭提到的部份, 我會再試試! :-)

老實說, 也許是心急, 我和電腦下的勝率還不到 5 %,
倒是曾經贏過一兩次( 輸了不計其數), :oops:
並不會出現" 恭喜您贏得了獎金1000"( 預設應該是 10000),
當然, 實際的虛擬貨幣也沒有增加.

另外, 我已經有使用過許多" 簡轉繁" 的工具( 包含您提到的 ConvertZ),
但是都無法順利轉換.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
~倉木麻衣~
竹貓忠實會員
竹貓忠實會員
文章: 1405
註冊時間: 2004-03-21 21:00

文章 ~倉木麻衣~ »

獲勝不會出現「恭喜您贏得了獎金xxxx」這句丫?
那....問題點要再往前推了~
要推到這句上了

代碼: 選擇全部

if($time2<$fivetime)
另~您附上的五子棋壓縮檔裡的中文弄好了:p
rpg_five_cht.rar
ps.
prohosting的限制~來源參照必須是來自prohosting

ps2.
抱歉~之前那篇忘了在最後message_die()後面加;了
~倉木麻衣~
竹貓忠實會員
竹貓忠實會員
文章: 1405
註冊時間: 2004-03-21 21:00

文章 ~倉木麻衣~ »

v_v~
真糟糕~忘了要先搜尋了
http://www.phpbb-tw.net/phpbb/viewtopic.php?t=20437
http://www.phpbb-tw.net/phpbb/viewtopic ... 190#117190
一年前就有人提出來過了:p
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8547
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

~倉木麻衣~ 寫:獲勝不會出現「恭喜您贏得了獎金xxxx」這句丫?
那....問題點要再往前推了~
要推到這句上了

代碼: 選擇全部

if($time2<$fivetime)
另~您附上的五子棋壓縮檔裡的中文弄好了:p
rpg_five_cht.rar
ps.
prohosting的限制~來源參照必須是來自prohosting

ps2.
抱歉~之前那篇忘了在最後message_die()後面加;了
感謝 ~倉木麻衣~ 兄的幫忙, 已經繁體中文化成功!

測試回報:
剛才進入水怪時候, 預先記錄自己目前的財產( 如下圖):
圖檔

贏了一局後, 出現系統訊息( 如下圖):
圖檔
ps. 並未出現" 恭喜您贏得了獎金xxxx".

但是, 我再次進入水怪, 重新整理後, 發現財產狀況沒有改變.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
~倉木麻衣~
竹貓忠實會員
竹貓忠實會員
文章: 1405
註冊時間: 2004-03-21 21:00

文章 ~倉木麻衣~ »

看來sql是沒錯的~
那麼請將message_die() 那行拿掉吧~
剛才去測試時竟然也讓我獲勝了一場~真是難得@@"
沒記錯的話~message_die()會乎略它底下的程式碼~
因此~若message_die是加在底下那行之前的話~就不會將結果存入資料庫了

代碼: 選擇全部

$records = $db->sql_query($sql);
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8547
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

經過修改以後, 目前贏得一場, 會有獎金了! :-D

以下修改, 提供給各位玩家參考:

代碼: 選擇全部

#
#-----[ OPEN ]-----
#
rpg/five.php

#
#----[ FIND ]-----
#
	  $time=time();
	   $time2=$time-$row[fivetime];
	   
	   if($time2<$fivetime)
	   {
	   $time3=$fivetime-$time2;
	   $five_result = "<span class=gen>您還需要".$time3."秒才可以繼續!</span><br />";
	   }
	   else
	   {

#
#-----[ REPLACE WITH ]-----
# 暫時註解掉
	  /*$time=time();
	   $time2=$time-$row[fivetime];
	   
	   if($time2<$fivetime)
	   {
	   $time3=$fivetime-$time2;
	   $five_result = "<span class=gen>您還需要".$time3."秒才可以繼續!</span><br />";
	   }
	   else
	   {*/

[color=red]#
#----[ FIND ]-----
#
 $sql="update phpbb_users set user_money ='$jq',fivetime='$fivetime' where user_id='".$profiledata[user_id]."'";

#
#-----[ REPLACE WITH ]-----
#
 $sql="update phpbb_users set user_money ='$jq' where user_id='".$profiledata[user_id]."'";[/color]

#
#-----[ FIND ]-----
#
 $five_result = "<span class=gen>恭喜您贏得了獎金".$money."</span></br>";
          }

#
#-----[ REPLACE WITH ]-----
# 暫時註解掉
 /*$five_result = "<span class=gen>恭喜您贏得了獎金".$money."</span></br>";
          }*/

#
#-----[ OPEN ]-----
#
templates/YOUR_THEME/rpg_five.tpl

#
#-----[ FIND ]-----
#
  setTimeout('gameOver=1;alert("恭喜您贏了!")',dly);

#
#-----[ REPLACE WITH ]-----
# 此處獎金必須對應 five.php 裡頭的 $money = 10000;
  setTimeout('gameOver=1;alert("恭喜您贏了! 獲得獎金 10000 !")',dly);

#
#-----[ SAVE & CLOSE ]-----
#
嚴格來講, 不能算是完全解決!

對於其中 fivetime 的意義與功用, 並不十分清楚;
我猜想: 是否原意, 是必須贏得幾局後, 才給獎金呢?

但是, 因為沒有做資料庫相關更新設定,
又該如何去紀錄贏了幾局呢?

索性將相關判定的函式, 暫時註解掉,
居然, 贏一場後, 金額就隨著獎金增加了;

而因為未出現" 恭喜您贏得了獎金xxxx",
所以將 rpg_five.tpl 中原本的"恭喜您贏了!"修改, 取代之.
最後由 心靈捕手 於 2005-03-27 20:38 編輯,總共編輯了 1 次。
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
~倉木麻衣~
竹貓忠實會員
竹貓忠實會員
文章: 1405
註冊時間: 2004-03-21 21:00

文章 ~倉木麻衣~ »

從昨天提供的圖以及程式來看~
fivetime應該是記錄上次下完棋時的時間
之前的討論中有提到只要下贏一盤~再一次reload就能重覆拿獎金了
所以猜測應該是有意做時間管控~不想讓使用者能利用這個bug一直賺錢吧\r
不過~今天倒是歸納出了必勝下棋法~總計要用掉12顆棋:p
已經連勝三場了~都是利用33獲勝 XD
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8547
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

~倉木麻衣~ 寫:從昨天提供的圖以及程式來看~
fivetime應該是記錄上次下完棋時的時間
之前的討論中有提到只要下贏一盤~再一次reload就能重覆拿獎金了
所以猜測應該是有意做時間管控~不想讓使用者能利用這個bug一直賺錢吧\r
不過~今天倒是歸納出了必勝下棋法~總計要用掉12顆棋:p
已經連勝三場了~都是利用33獲勝 XD
突然看到您上頭提到:
我最初搜尋時並未發現這一篇? :oops:

但是, 我猜想會不會像骰子, 賽馬一樣,
到了 phpbb 2.0.10 以後, 就不正常了呢?

我有仿照您修改的地方如下:

代碼: 選擇全部

# 
#-----[ OPEN ]----- 
# 
rpg/five.php 

# 
#----[ FIND ]----- 
# 
$act = trim($act); 

# 
#-----[ REPLACE WITH ]----- 
#
$act = trim($_POST['act']);

# 
#----[ FIND ]----- 
#
if ($act=='save')

# 
#-----[ REPLACE WITH ]----- 
#
if ( $_POST['act'] =='save')

#
#-----[ SAVE & CLOSE ]-----
#
最近功力也增加不少,
如您所言, 只要伺機製造" 雙活 3", 也就勝券在握了!

剛才試了一下, 目前, reload 並不能重覆拿獎金, 也就安心多了.
為了擔心我的學生沉迷於此, 我也只設定: 贏得一場, 獲得獎金 500.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8547
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

上一篇測試" reload 並不能重覆拿獎金" 有誤!

我是在按下確定( 恭喜您贏了! 獲得獎金 10000 !)後, 回去" 檢視個人資料",
發現金額有增加後, 再按 reload, 所以並不能重覆拿獎金.

最近幾次的測試發現:
如果在按下確定( 恭喜您贏了! 獲得獎金 10000 !)後, 先不回去" 檢視個人資料",
每按一次 reload, 便會獲得一次獎金;
例如按下兩次 reload, 再去" 檢視個人資料", 獲得的金額將是獎金的三倍.
(一倍是應得的, 另外兩倍則是因為按了兩次 reload)

另外上頭的( 前 3 篇)文章中, 漏掉紀錄一個修改的地方( 已經用紅字補上),

代碼: 選擇全部

# 
#----[ FIND ]----- 
# 
 $sql="update phpbb_users set user_money ='$jq',fivetime='$fivetime' where user_id='".$profiledata[user_id]."'"; 

# 
#-----[ REPLACE WITH ]----- 
# 
 $sql="update phpbb_users set user_money ='$jq' where user_id='".$profiledata[user_id]."'";
誠如 ~倉木麻衣~ 兄所言, 這個 fivetime 值應該是有意做時間管控...

如今我面臨的問題是:
  • 若在 $sql 中保留 fivetime='$fivetime' 的話,
    則在贏的時候, 並不會增加獎金( reload 也不會有).
  • 若在 $sql 中移除 fivetime='$fivetime' 的話,
    則在贏的時候, 會增加獎金( reload 一次, 增加一倍獎金).
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
~倉木麻衣~
竹貓忠實會員
竹貓忠實會員
文章: 1405
註冊時間: 2004-03-21 21:00

文章 ~倉木麻衣~ »

剛才再次看了一下five.php以及之前的討論
之前的討論是說將「,fivetime='$fivetime'」這行拿掉即可\r
這讓我想到一個可能~那就是user資料表裡根本就沒有fivetime這個欄位
因此在進行UPDATE語法是傳回了false
然而five.php裡並未對「$records = $db->sql_query($sql);」這句做查驗
所以就算是獲勝了也不會發放獎金(前提是資料表裡沒有fivetime這個欄位)

於是我做了一個測試~寫一個php程式去更新我自己的資料
預計是要變更「user_money」及「user_bank」這二個值\r
但我故意將欄位寫成user_money及userbank
大致如下

代碼: 選擇全部

$sql="UPDATE phpbb_users SET user_money ='9999', userbank='9999' where user_id='我的id'";
if (!$records = $db->sql_query($sql))
{
   $message .= 'Could not obtain user information<br>' . mysql_errno() . ': ' . mysql_error() . '<br>' . $sql;
}
執行結果如下:
Could not obtain user information
1054: Unknown column 'userbank' in 'field list'
UPDATE phpbb_users SET user_money='9999',userbank='9999' WHERE user_id='我的id'
結論是可能當初新增五子棋時就沒有提到要在user資料表裡建立fivetime欄位
因此才會造成獲勝後拿不到獎金的狀況產生
試看看在user資料表裡新增fivetime欄位

代碼: 選擇全部

ALTER TABLE phpbb_users ADD fivetime INT (11) DEFAULT "0" NOT NULL
ps.請依實際狀況修改phpbb_users以對應到你的資料表\r
然後再把先前註解掉的取消再次測看看了~
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8547
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

~倉木麻衣~ 寫:結論是可能當初新增五子棋時就沒有提到要在user資料表裡建立fivetime欄位
因此才會造成獲勝後拿不到獎金的狀況產生
試看看在user資料表裡新增fivetime欄位

代碼: 選擇全部

ALTER TABLE phpbb_users ADD fivetime INT (11) DEFAULT "0" NOT NULL
ps.請依實際狀況修改phpbb_users以對應到你的資料表\r
然後再把先前註解掉的取消再次測看看了~
感謝您不厭其煩的鼎力相助! :-D

果然是少了這道" 建立fivetime欄位" 的程序,
修正 SQL 後, 經過測試已經可以" 獲得獎金" 以及" 避免 reload 重複累計獎金".

由於網友提供該檔案時, 並沒有相關安裝說明, 所以就一直卡在這道關卡;
如今總算是真相大白囉!

後記:
  • 原系統預設\r

    代碼: 選擇全部

    $fivetime = 20;
    
    經過測試, 最好是改成大一些比較好, 例如

    代碼: 選擇全部

    $fivetime = 200;
    
  • 另外, 也參考 http://www.phpbb-tw.net/phpbb/viewtopic ... 190#117190
    做了一些修正如下:

    代碼: 選擇全部

    # 
    #-----[ OPEN ]----- 
    # 
    templates/YOUR_THEME/rpg_five.tpl 
    
    # 
    #-----[ FIND ]----- 
    # 
    <input type="hidden" name="act" value="save"> 
    
    # 
    #-----[ AFTER, ADD ]----- 
    # [color=red]取代上頭第 1 篇文章的修改[/color]
    <p align="center"><font color="#ff0000"><b>{FIVE_RESULT}</b></font></p> 
      
    # 
    #-----[ SAVE & CLOSE ]----- 
    # 
    
  • 昨天, 發現" 骰子" 遊戲, 也有" reload 重複累計獎金" 的問題;
    將參考" 五子棋" 的修定, 加以修改看看;
    如果成功了, 那麼再貼出供大家分享.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
主題已鎖定

回到「外掛問題討論」