Loading...
public static function checkXP($user, $user_params) {
$max_xp = self::maxXP($user->level);
if ($user_params['xp'] >= $max_xp && $user->level < 29) {
$user_params['level'] += 1;
$params = Users::calcParam($user->id_user);
$user_params['health_now'] = $params->totalHealth*2;
$user_params['energy_now'] = $params->totalEnergy*2;
$log = new BattleLog();
$log->battle_type = $user->battle_type;
$log->battle_id = $user->battle_id;
$log->id_user = $user->id_user;
$log->type = 6;
$log->info = 2;
$log->users = Users::getUsersForLog($user->id_user);
$log->save(false);
}
elseif ($user_params['xp'] >= $max_xp && $user->level == 29) {
$user_params['xp'] = $max_xp - 1;
}
return $user_params;
}

/**
* Проверяет апнулся ли клан
* @param type $id_guild
* @return boolean
* @throws CHttpException
*/
public static function checkGuildXP($id_guild, $user_guild_xp) {
$guild = Guilds::model()->findByPk($id_guild);
if ($guild) {
$guild->xp += $user_guild_xp;
if ($guild->xp >= self::maxGuildXP($guild->level) && $guild->level < 9) {
$guild->level += 1;
}
$guild->save(false);
}
return true;





Помогите испарвить что бы ур игрока аппался клан апается уровень игрок нет
Залей на pastebin плиз. Или хотя бы выдели тегом code. Тяжело читать
elseif ($user_params['xp'] >= $max_xp && $user->level == 29) {
$user_params['xp'] = $max_xp - 1;
}

ну так ты постоянно держишь юзера на уровне, потому что делаешь ему < $max_xp

если у тебя $max_xp = 100, а юзер набрал 100 или > 100, то ты ему делаешь в любом случае 99 и у тебя юзер вечно 1 опыта не набирает
Hunker, ап по уровням нужно делать так

НУЛЁВАЯ база

exp = 0 тип double
exp_max = 4 тип double

потом нагоняешь ему в локациях опыт и проверяешь

php
// если юзер набрал нужный для уровня опыт или больше, то
if ($user->exp >= $user->exp_max) {
// добавляем ему в уровень +1
$user->lvl++;
// отнимаем от набранного опыта нужный опыт, оставляя лишнее на следующем уровне без потери опыта
$user->exp -= $user->exp_max;
// увеличиваем опыт, нужный для следующего уровня на 20% (например)
$user->exp_max *= 1.2;
}

// тут ЕСЛИ надо ещё какие-то финты с $user



// в самом конце перед вбросом $user в вид делаем сохранение
$user->save(); // в вид полетели свежие данные с новым уровнем и новым опытом

________
посл. ред. 02.03.2021 в 14:57; всего 1 раз(а); by Вилы Выкидные
Онлайн: 3
Время:
Gen. 0.0882
(c) Bym.Guru 2010-2025