KalashaLv Posted May 30, 2017 Report 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
KalashaLv Posted May 31, 2017 Author Report 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
Val Posted May 31, 2017 Report 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
KalashaLv Posted May 31, 2017 Author Report 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
zeCode Posted May 31, 2017 Report 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
KalashaLv Posted May 31, 2017 Author Report 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
zeCode Posted May 31, 2017 Report 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
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.