PHP вопрос о запросе - PullRequest
       22

PHP вопрос о запросе

0 голосов
/ 11 января 2010

Может ли кто-нибудь помочь мне понять, как это сделать.

У меня есть игра, в которой игрок может использовать зелья для улучшения своих способностей.

Это таймер, который работает нормально.Однако теперь я хочу добавить к этому запросу, когда игрок использует 2 разных типа зелий.Я могу заставить его работать, но не на 100%, как мне хочется.

Игрок использует зелье 1, и его характеристики повышаются на 20% в течение 20 минут.Затем игрок использует зелье 2, и его характеристики повышаются на 60% в течение 20 минут.

С моим кодом на данный момент

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

Это покажет бонус пользователя (базовая сила в этом примере2 364 195)

Зелье 1 повышает базовую силу до 2837034 (+ 20%) Зелье 2 повышает базовую силу до 3782712 (+60%)

Есть ли решение, в котором я могу получить второеЗелье 60% для учета бонуса, полученного от 1-го зелья.Итак, 60% из 2837034, а не 2364195. Прежде чем я расскажу о перекодировании всего этого: D

Надеюсь, это довольно сложно объяснить.

Ответы [ 2 ]

1 голос
/ 11 января 2010

Я предполагаю, что таблица базы данных содержит список действующих зелий. Попробуйте что-то, что сохраняет значение в цикле 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 голосов
/ 11 января 2010

Вероятно, не так, как вы это делаете, поскольку вы не записываете оригинальные плееры HP, у вас просто есть текущий (после применения модификаторов) HP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...