Autor | Zpráva | ||
---|---|---|---|
Viktor 36 Profil |
#1 · Zasláno: 19. 6. 2010, 18:10:02
Mam takýto PHP script a potreboval by som aby aj premenna "$freecombat" bola ako pole, pretože mená v "@$obsahstranky" mi vypisuje pekne pod seba ale "$freecombat" píše stále len od prvého hráča a chcel by som aby aj to freecombat písalo od ostatných ako Array.
Poradí mi niekto ako to má byť? <?php $i_username = array('Viktor 36','Vojto29','Stromovous1','Vrah5'); $username = Count($i_username); for($i=0;$i<$username;$i++) { //------ $username = $i_username[$i]; @$obsahstranky = file_get_contents("http://hiscore.runescape.com/index_lite.ws?player=$username"); function dajlvl($trojka) { $trojka = explode(",",$trojka); return $trojka[1]; } $obsahstranky = explode("\n",$obsahstranky); $attack = dajlvl($obsahstranky[1]); $strength = dajlvl($obsahstranky[3]); $defence = dajlvl($obsahstranky[2]); $hitpoints = dajlvl($obsahstranky[4]); $prayer = dajlvl($obsahstranky[6]); $magic = dajlvl($obsahstranky[7]); $ranged = dajlvl($obsahstranky[5]); $summoning = dajlvl($obsahstranky[24]); if($attack < 1) $attack = 1; if($strength < 1) $strength = 1; if($defence < 1) $defence = 1; if($hitpoints < 1) $hitpoints =10; if($prayer < 1) $prayer = 1; if($magic < 1) $magic = 1; if($ranged < 1) $ranged = 1; if($summoning < 1) $summoning = 1; if($attack > 99) $attack = 99; if($strength > 99) $strength = 99; if($defence > 99) $defence = 99; if($hitpoints > 99) $hitpoints = 99; if($prayer > 99) $prayer = 99; if($magic > 99) $magic = 99; if($ranged > 99) $ranged = 99; if($summoning > 99) $summoning = 99; function combatLevel($attack, $defence,$strength, $hp, $prayer, $ranged, $magic, $summoning) { $base = 0.25*($defence+$hp+floor($prayer/2)+floor($summoning/2)); $melee = 0.325*($attack + $strength); $ranged = 0.325*(floor($ranged/2)+$ranged); $magic = 0.325*(floor($magic/2)+$magic); $max = max($melee,$ranged,$magic); $combat = $base + $max; return $combat; } $freecombat = combatLevel($attack, $defence, $strength, $hitpoints, $prayer, $ranged, $magic,1); //------ echo $i_username[$i].' -> '.$freecombat.'<br>'; echo $i_username[$i+1].' -> '.$freecombat.'<br>'; echo $i_username[$i+2].' -> '.$freecombat.'<br>'; echo $i_username[$i+3].' -> '.$freecombat.'<br>'; } ?> |
||
radvis Profil * |
#2 · Zasláno: 19. 6. 2010, 18:56:09
Pouhý pokus:D : return array('base'=>$base, 'melee'=>$melee,); a tak dále
|
||
jsim Profil |
#3 · Zasláno: 19. 6. 2010, 19:01:46
Viktor 36:
proč proboha deklaruješ funkce uvnitř cyklu? |
||
AM_ Profil |
#4 · Zasláno: 19. 6. 2010, 21:48:52
Já nevím, jestli vůbec má smysl něco z tohoto kódu komentovat, nebo říct staré dobré moudro. Zapomeň na online hry, běž do obchodu nebo na google, kup si knížku/vygoogli si seriál o začátcích programování/PHP, a začni od začátku. Tvůj kód je naprosto příšerný a nesmyslný, stejně jako tvůj dotaz, datový typ proměnné nemá nic společného s tím, co vypisuješ na výstup. Ten @ před $obsahstranky evidentně také vůbec netušíš k čemu je, opsal jsi to zřejmě z nějakého kódu bez pochopení.
|
||
Viktor 36 Profil |
#5 · Zasláno: 20. 6. 2010, 11:41:37
AM:
mne ten script napísal kamarát a povedal, že nevie urobiť aj to aby tam bolo tak ako ja chcem ale ovládam niečo v PHP aj ja sám ale som len začiatočník |
||
fuckin Profil |
#6 · Zasláno: 20. 6. 2010, 19:29:12
Tak řekni kamarádovi ať už nikomu radši nic neposílá, neboť je to hnus. Ty funkce v cyklu, to je fakt síla.
Nicméně tvůj dotaz jsem nepochopil takže poradit nemůžu. |
||
Nox Profil |
#7 · Zasláno: 20. 6. 2010, 19:38:07
vždyť je to ale nesmysl, proč máš Xkrát echo za sebou když v jednom průchodu bereš jen jednoho uživatele
řádky 3,4,6 jsou taky dost šílenost, ve druhém průchodu už je ve for nesmyslná hodnota |
||
AM_ Profil |
#8 · Zasláno: 21. 6. 2010, 16:01:39
[#5] Viktor 36
to nic nemění na tmo, co říkám, ten kód je prostě strašný, tady ti nepomůže dát jednu radu (to, co napsal radvis, je zřejmě to, co chceš), protože s takovýmhle kódem je jasné, že do deseti minut budeš mít další problém, se kterým si nebudeš vědět rady. Opravdu, ber to jako dobrou radu: buď se nauč programovat, nebo si ten kód nech od někoho pořádně napsat, ale tohle opravdu nemá smysl... |
||
Viktor 36 Profil |
#9 · Zasláno: 21. 6. 2010, 22:35:27
Tak moja odpoveď všetkým :
Nenadávajte mi tu na funkcie, tie funkcie normálne fungujú, keď to robím pre jedného užívateľa ja som chcel vedieť ako sa to dá urobiť pre viacerých naraz a nechcel som aby ste mi to celé skritizovali, aj keď to funguje :D ale Ďakujem :( |
||
Keeehi Profil |
#10 · Zasláno: 21. 6. 2010, 22:53:12
Viktor 36:
Měj si kód jaký chceš. Když tomu ale nikdo nebude rozumět, nikdo ti nemůže ani poradit. Sám jsem se pokoušel pochopit, co ten kód má dělat, nepovedlo se mi to však. „aj keď to funguje“ Teď možná nějakým zázrakem ano, ale netuším jakým. příklad: $username = Count($i_username); for($i=0;$i<$username;$i++) { $username = $i_username[$i]; //blablabla } $username = Count($i_username); <- v $username je momentálně 4
for($i=0;$i<$username;$i++) { <-cyklus $i je momentálně 0 > je 0<4 > Ano, cyklus může začít
$username = $i_username[$i]; <- v proměnné $username je string Viktor 36
//blablabla <- nepodstatné
} <- došli jsme ke konci cyklu, vracíme se na začátek k podmínce a $i zvyšujeme o 1 > $i je tedy 1
for($i=0;$i<$username;$i++) { <- a jak to vypadá teď? $i=1, $username="Viktor 36", tobě nepřijde zvláštní je 1 menší než Viktor 36? Mě tedy jo. Až (a pokud) opravíš tuto chybu, bude na tebe čekat další překvapení, ten script se bude snažit vytvořit znovu funkci o stejném jménu, což pravděpodobně skončí nějakou chybou.
|
||
Viktor 36 Profil |
#11 · Zasláno: 22. 6. 2010, 18:58:18
dakujem za radu
|
||
Časová prodleva: 14 let
|
0