Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> javascript, nie działa
nakers2
post
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 2.05.2011

Ostrzeżenie: (30%)
XX---


Mam system walki w grze, niestety wygląda to fatalnie. Gdy u gracza uruchamia się walka, od razu wyświetla wszystkie kolejki (ile on zadał dmg mobowi i ile mob mu), dzieje się to od razu.

Nie chodzi mi np. o to by co określoną liczbę sekund ładował się element z pętli odpowiadający za obliczenie wywieranego dmg na mobie - Tylko po prostu żeby co określony czas np. pół sekundy wyświetlało się echo z informacją o tym ile gracz zadał DMG mobowi / mob graczowi.
W skrócie: ma to działać po stronie przeglądarki, nie serwera... samo odkrywanie "echo"... dla samego efektu.

Edit, mam już to:

Kod
<script type="text/javascript">
function display() {
document.getElementById("graczatak").innerHTML += "";
}
window.setInterval(display, 1000);</script>
</script>


i potem w kodzie mma tak:

echo "<div id='graczatak'>&nbsp;+ Zadałeś przeciwnikowi <font color = '#7ffa88'>".$dam."</i></font> DMG<br></div>";

niestety nie pojawia mi się te echo w odstępach czasowych mimo poprawności kodu,
dodam że te echo jest w pętli while, to może być tego przyczyną ?

cały kod wygląda tak:

Kod
$bonus = floor($oGracz['atak'] / $potwor['obrona']);
if($bonus > 2) $bonus = 2;
$oGracz['omin'] = floor($oGracz['omin'] * $bonus);
$oGracz['omax'] = floor($oGracz['omax'] * $bonus);
$bonus = floor($potwor['atak'] / $oGracz['obrona']);
if($bonus > 2) $bonus = 2;
$potwor['omin'] = floor($potwor['omin'] * $bonus);
$potwor['omax'] = floor($potwor['omax'] * $bonus);
while(($oGracz['zycie'] > 0) && ($potwor['zycie'] > 0)){
    $czas ++;    
    $dam =rand($oGracz['omin'],$oGracz['omax']) - $potwor['absorpcja'];
    if($dam < 1) $dam = 1;
    $potwor['zycie'] -=$dam;
    echo "<div id='graczatak'>&nbsp;+ Zadałeś przeciwnikowi <font color = '#7ffa88'>".$dam."</i></font> DMG<br></div>";


co w tym powoduje to że nie wyświetla danego echa w odstępach czasowych ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nakers2
post
Post #2





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 2.05.2011

Ostrzeżenie: (30%)
XX---


aha rozumiem, ale chce by było jednak obowiązkowe JS bo i tak gracz nawet jak by miał wyłączone JS dostanie potem raport o tym że odbyła się walka z częściowym jej opisem

aha i ten kod nie działa jednak, nic się nie pojawia

Kod
<?php
$aKomunikat = array();
while(($oGracz['zycie'] > 0) && ($potwor['zycie'] > 0)){
    $czas ++;    
    $dam =rand($oGracz['omin'],$oGracz['omax']) - $potwor['absorpcja'];
    if($dam < 1) $dam = 1;
    $potwor['zycie'] -=$dam;
    $aKomunikat[] = "\"<div id='graczatak'>&nbsp;+ Zadałeś przeciwnikowi <font color = '#7ffa88'>".$dam."</i></font> DMG<br></div>\"";
// DODAŁEM JESZCZE CYCTATY W WYŚWIETLANYM KODZIE HTML - ZOSTANIE WYŚWIETLONY PÓŹNIEJ
}
?>
<script type="text/javascript">
    var aKomunikaty = [
        <?php echo implode(',', $aKomunikat);?>
    ];
    var i = 0, iL = aKomunikaty.length;
    var interval;
    function display() {
    if(i<iL) document.getElementById("graczatak").innerHTML += aKomunikaty[i++];
    if(i===iL) clearInterval(interval);
    };
    interval = setInterval(display, 1000);
</script>


to w ogóle nie działa

Ten post edytował nakers2 31.05.2011, 17:48:13
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 19:58