Autor Zpráva
Viktor 36
Profil
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 *
Pouhý pokus:D : return array('base'=>$base, 'melee'=>$melee,); a tak dále
jsim
Profil
Viktor 36:
proč proboha deklaruješ funkce uvnitř cyklu?
AM_
Profil
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
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
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
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
[#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
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
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
dakujem za radu

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0