Iken sorguda PHP soru

2 Cevap

Birisi bana bunu nasıl anlamaya yardımcı olabilir.

Ben bir oyuncu yeteneklerini geliştirmek için iksir kullanabileceğiniz bir oyun var.

Bu iyi çalışır bir zamanlayıcı üzerinde. Ancak şimdi Im oyuncu iksir 2 farklı tür kullandığında bu sorgu eklemek için arıyorum. Ben isterdim nasıl% 100 işe almak ama olamaz.

Player uses potion 1 and their stats are boosted by 20% for 20minutes. Player then uses potion 2 and their stats are boosted by 60% for 20minutes.

Şu anda benim koduyla

$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']);

Bu kullanıcıların bonusu gösterecektir (bu örnekte baz gücü 2.364.195 olan)

Potion 1 boost your base strength to 2837034 (+20%) Potion 2 boost your base strength to 3782712 (+60%)

Ben hesaba 1 iksir alınan bonusu almak için ikinci 60% iksir olsun bir çözümü var. .: D Yani 60 2837034 arasında% ziyade 2364195 ben her şeyi Recoding düşünün önce

Ben açıklamak vericidir net biraz zor umuyoruz.

Teşekkürler

2 Cevap

Ben veritabanı tablo etkisi iksir listesini içerir tahmin. While döngüsü üzerinde değeri tutar bir şey deneyin ...

$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;

Muhtemelen senin yapıyor yolu, sizin (modifiye uygulandıktan sonra), HP, sadece HP geçerli olan orijinal oyuncuları kayıt yana değil.