2010-01-11 87 views
0

有人可以幫我弄清楚如何做到這一點。雖然查詢的PHP問題

我有一個遊戲,玩家可以使用藥劑來提高他們的能力。

這是一個很好的計時器。然而,我現在正在尋找添加到這個查詢時,玩家使用2種不同類型的藥水。我可以得到它的工作,但不是100%,我希望如此。

玩家使用藥水1,他們的屬性在20分鐘內被提升20%。 玩家隨後使用藥水2,並且他們的屬性在20分鐘內被提升60%。

我的代碼目前

$check = sprintf("SELECT time,strmod FROM `effects` WHERE `userid` = %u", $userid); 

$exe = mysql_query($check); 

while($bonus = mysql_fetch_array($exe)) 
{ 

$last = $bonus['time']; 

$strmod=$bonus['strmod']); 

它會顯示用戶的獎金(基本實力在這個例子中是2364195)

藥水1提升你的基地實力2837034(+ 20%) 藥水2將你的基礎力量提高到3782712(+ 60%)

有沒有一種解決方法,我可以得到第二個60%的藥水來考慮從第一藥劑中獲得的獎勵。因此,2837034的60%而不是2364195.在我考慮重新編碼整個事情之前:D

我希望這清楚有點難以解釋。

感謝

回答

0

可能不是你的方式做這件事,因爲你沒有記錄原始的玩家HP,您只要有電流(改性劑已經被應用之後)HP。

1

我假設數據庫表中包含有效的藥水清單。嘗試一些東西,保持在while循環的價值...

$multiplier = 1; 
while($bonus = mysql_fetch_array($exe)) 
{ 
    $last = $bonus['time']; 
    $strmod=$bonus['strmod']); 
    $multiplier += $strmod/100; // convert from percent to decimal 
} 

$currStrength = $multiplier*$baseStrength; 
+0

做的工作現場感謝! – anadin