| Autor | Zpráva | ||
|---|---|---|---|
| stepi15 Profil |
#1 · Zasláno: 17. 8. 2008, 14:42:58
dobry den poreboval bych tento vzorec obratit
function experience($L) {
$a=0;
for($x=1; $x<$L; $x++) {
$a += floor($x+300*pow(2, ($x/7)));
}
return floor($a/4);
}
$sad = $cilovy_lvl;
$cilovy_xp = experience($sad);
kdyz promenou $cilovy_lvl dam 2 tak $cilovy_xp se bude rovnat 83 a ja bych potreboval ze budu davat promenou $cilovy_xp a bude me to pocitat $cilovy_lvl predem diky jestli se bude nekomu chtit |
||
| nightfish Profil |
#2 · Zasláno: 17. 8. 2008, 14:49:22
pokud $cilovy_lvl je celé číslo v nějakých rozumných hranicích (řekněme 0..1000), tak bych si pro každý level spočítal hodnotu $cilovy_xp a pak podle hodnoty $cilovy_xp vyhledával v takto vzniklé "tabulce"
|
||
| stepi15 Profil |
#3 · Zasláno: 17. 8. 2008, 14:50:37 · Upravil/a: stepi15
no cilovy xp je bude od 83 az do 13034431
a cilovy lvl je od 2 do 99 v celych cislech |
||
| nightfish Profil |
#4 · Zasláno: 17. 8. 2008, 16:53:40
stepi15
„a cilovy lvl je od 2 do 99 v celych cislech“ $pole = array();
for ($lvl=2; $lvl<=99; $lvl++) {
$pole[$lvl] = experience($lvl);
}
function getLevel($xp) {
global $pole;
$lvl = 2;
while ($pole[$lvl] < $xp) $lvl++;
return $lvl;
}(samozřejmě pole $pole si někam uložíš předgenerované, nebudeš ho vypočítávat při každém načtení stránky) (algoritmus počítá s tím, že levely jsou celá čísla, tzn. např. hodnoty 442 a 443 odpovídají stejnému číslu levelu...) |
||
| stepi15 Profil |
#5 · Zasláno: 17. 8. 2008, 17:03:14 · Upravil/a: stepi15
takze me toto vypocitat z cisla 83 a vysledek by mek byt 2
uz sjem anto prisel ale ovlivnuje me to ten vzorec ja tam mam totiz 2 ten puvodni a ten obraceny |
||
|
Časová prodleva: 18 let
|
|||
0