KalashaLv Posted May 30, 2017 Report Share Posted May 30, 2017 Heyy, problēmiņa. Vēlos uztaisīt precentage līniju kas sākas no jauna ar jaunu ranga sasniegšanu. domāju, ka var šādi, bet kas man ir jāraksta iekš "pipshimax"? gan jau ka šis kods ir galīgi garām. ā un ja kas izmantoju ipbwi. $pipshi = $ipbwi->member->pips(); pipshimax = ; $percents = round(($pipshi / $pipshimax) * 100); Quote Link to comment Share on other sites More sharing options...
aaxc Posted May 31, 2017 Report Share Posted May 31, 2017 Kas ir pipshimax ? Quote Link to comment Share on other sites More sharing options...
KalashaLv Posted May 31, 2017 Author Report Share Posted May 31, 2017 35 minutes ago, aaxc said: Kas ir pipshimax ? tur tā lieta, ka es nezinu kas tur jāliek. es ar precentage vispār pirmo reizi. Quote Link to comment Share on other sites More sharing options...
Val Posted May 31, 2017 Report Share Posted May 31, 2017 Ehh :D pieņemsim, ka userim ir 5 "pipshi". Ja tu pats izvēlies maksimālo "pipshi" skaitu katrā līmenī, ko useris var iegūt, piemēram, = 100, tad procentuāli tas sanāk 5x100/100 = 5% no "pipshimax". Labāk jau skaiti pipshus kopā (0 līdz 10'000, pofig) un tad dali ar pipshimax, tad dalījums būs esošais līmenis, bet atlikums būs esošie pipshi, Pamatskola. Quote Link to comment Share on other sites More sharing options...
KalashaLv Posted May 31, 2017 Author Report Share Posted May 31, 2017 2 minutes ago, Val said: Ehh :D pieņemsim, ka userim ir 5 "pipshi". Ja tu pats izvēlies maksimālo "pipshi" skaitu katrā līmenī, ko useris var iegūt, piemēram, = 100, tad procentuāli tas sanāk 5x100/100 = 5% no "pipshimax". Labāk jau skaiti pipshus kopā (0 līdz 10'000, pofig) un tad dali ar pipshimax, tad dalījums būs esošais līmenis, bet atlikums būs esošie pipshi, Pamatskola. paskaidrot tu māki, es darīt to nemācēšu. tur tā lieta, ka mācos php tikai :D Quote Link to comment Share on other sites More sharing options...
zeCode Posted May 31, 2017 Report Share Posted May 31, 2017 Tad izmanto loģiku, matemātiku vai uzzime vizuāli shēmu (blokshēmu) varbūt vieglāk saprast. Janodefinē katra nakamā līmņa minimālais punktu skaits $levels[ 2 => 100, 3 => 150, 4 => 200...] Atrodi aktīvo līmeni . Piemēram, ja lietotājam ir 152 punkti tad izejot cauri visiem leveliem lai atrastu pašreizejo līmeni ( 100 <= 152 && $level > $user_level) {$user_level = $level;} tadejadi tas apstāsies pie 3 līmeņa ... Procenti nepieciešami lai sasniegtu nākamo līmeni . Piemērs 1 - (152 - 150) / (200 - 150) ... 1 - 2 / 50 = 1 - 0.04 = 96% $user_level = 1; $levels = [1 => 0, 2 => 100, 3 => 150, 4 => 200]; $user_points = 200; foreach ($levels as $level => $points) { if ($points <= $user_points && $level > $user_level) { $user_level = $level; } } $level_start_points = $levels[$user_level]; $next_level_start_points = isset($levels[$user_level + 1]) ? $levels[$user_level + 1] : 0; $prc = ($next_level_start_points) ? ($user_points - $level_start_points) / ($next_level_start_points - $level_start_points) : NULL; Quote Link to comment Share on other sites More sharing options...
KalashaLv Posted May 31, 2017 Author Report Share Posted May 31, 2017 32 minutes ago, zeCode said: Tad izmanto loģiku, matemātiku vai uzzime vizuāli shēmu (blokshēmu) varbūt vieglāk saprast. Janodefinē katra nakamā līmņa minimālais punktu skaits $levels[ 2 => 100, 3 => 150, 4 => 200...] Atrodi aktīvo līmeni . Piemēram, ja lietotājam ir 152 punkti tad izejot cauri visiem leveliem lai atrastu pašreizejo līmeni ( 100 <= 152 && $level > $user_level) {$user_level = $level;} tadejadi tas apstāsies pie 3 līmeņa ... Procenti nepieciešami lai sasniegtu nākamo līmeni . Piemērs 1 - (152 - 150) / (200 - 150) ... 1 - 2 / 50 = 1 - 0.04 = 96% $user_level = 1; $levels = [1 => 0, 2 => 100, 3 => 150, 4 => 200]; $user_points = 200; foreach ($levels as $level => $points) { if ($points <= $user_points && $level > $user_level) { $user_level = $level; } } $level_start_points = $levels[$user_level]; $next_level_start_points = isset($levels[$user_level + 1]) ? $levels[$user_level + 1] : 0; $prc = ($next_level_start_points) ? ($user_points - $level_start_points) / ($next_level_start_points - $level_start_points) : NULL; Ja to automatizē, something like this? $user_level = $ipbwi->member->pips(); $levels = [1 => 0, 2 => 10, 3 => 20, 4 => 30, 5 => 40, 6 => 50]; $user_points = $info['posts']; foreach ($levels as $level => $points) { if ($points <= $user_points && $level > $user_level) { $user_level = $level; } } $level_start_points = $levels[$user_level]; $next_level_start_points = isset($levels[$user_level + 1]) ? $levels[$user_level + 1] : 0; $prc = ($next_level_start_points) ? ($user_points - $level_start_points) / ($next_level_start_points - $level_start_points) : NULL; Quote Link to comment Share on other sites More sharing options...
zeCode Posted May 31, 2017 Report Share Posted May 31, 2017 Es ieteiktu pieskirt $user_points vienibu skaitu cik tev foruma ieraktsi vai darbibas atteicigajam lietotājam, nu uz ka pamata tu piesķirsi līmeni. $user_level vajadzetu but tikai no apgalaba no 1 lidz 6 tava gadijuma ja tu brutāli uzstādisi tad tas nestrādās ... Piemeram, ja $ipbwi->member->pips(); ir 33 ... $user_level = 4 , $level_start_points = 30, $next_level_points = 40, $prc = (33-30) / (40 - 30) = 3/10 = 0.3 ( 30% ) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.