Probleem met bijwerken van de gegevens

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marco Eilander

Marco Eilander

28/04/2014 10:56:01
Quote Anchor link
Hallo,

Ik zit met het volgende probleem :

Ik maak een klikspelletje, waarbij je moet vechten.
Nu is het zo, dat als je op een attack style klikt (een button), dan zie je de hp van jou of van je tegenstander niet veranderd (wel in de database). Pas als je de pagina refreshed, word het pas op de pagina zelf veranderd.


Ik had het probleem eerder opgelost met een meta refresh, maar leek niet zo verstandig, omdat je ip regelmatig wordt geblokkeerd wegens teveel connecties maken...

Ik heb het ook probeert met header(), maar ook dat werkt niet.


Iemand een idee, hoe ik dat kan doen?


Stukje code

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
//AANVALLEN MET MELEE
if(isset($_POST['melee'])){
    $killmode = "Melee";
        
//kijken of de gebruiker een dragonfire shield heeft
     $shield = mysql_query("SELECT * FROM inventory WHERE player_name = '".$_SESSION['SESS_LOGIN_NAME']."' AND item_name = 'Dragonfire shield'")
    or die(mysql_error());  
    $dragonfire = mysql_num_rows($shield);
        
        
//hit on npc
    if(empty($info['selected_weapon'])){
        $bonus = 0;
    }
else{
        $wapen = mysql_query("SELECT * FROM weapons WHERE item_name = '".$info['selected_weapon']."'")
        or die(mysql_error());  
            $wapeninfo = mysql_fetch_array($wapen);        
            $bonus = $wapeninfo['strength_bonus'];
    }

        
    $hit = $info['strength_lvl'] * 20;
    $maxhit = $hit+$bonus;
    $damagenpc = rand(0,$maxhit);
        if($info['npc_hp'] > $damagenpc){
            $damagetonpc = $damagenpc;
        }
else{
            $damagetonpc = $info['npc_hp'];
        }

            
    //HIT ON PLAYER
                    
    //BEGIN ====== DRAGONFIRE//        

        if($dragonfire >='1' AND $info['npc_name']== 'King Dragon'){
            $npc_maxhit ='1000';
        }
else{
            $npc_maxhit = $info['npc_maxhit'];
        }

    
    //EINDE ====== DRAGONFIRE//
        $damageplayer = rand(0,$npc_maxhit);
            if($info['player_hp'] > $damageplayer){
                $damagetoplayer = $damageplayer;
            }
else{
                $damagetoplayer = $info['player_hp'];
            }

                mysql_query("UPDATE battles SET `npc_hp`='".$info['npc_hp']."'-'".$damagetonpc."',`player_hp`='".$info['player_hp']."'-'".$damagetoplayer."' WHERE player_name = '".$_SESSION['SESS_LOGIN_NAME']."'");
            
            if($info['npc_hp'] >  $maxhit){
            header("location: battle-fix.php"); //dit was eerst de meta refresh, maar werkt helaas ook niet.
            }
}
            
            ?>


Form
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<form method="POST">
    <input type="submit" value="Melee" onmouseover="mouseoversound.playclip()" class="attbtn" name="melee"/>
    <input type="submit" value="Magic" onmouseover="mouseoversound.playclip()" class="attbtn" name="magic"/>
    <input type="submit" value="Ranged" onmouseover="mouseoversound.playclip()" class="attbtn" name="ranged"/>
        
        <?php
        
        if(empty($info['selected_weapon'])){
            $bonus = 0;
        }
else{
            $wapen = mysql_query("SELECT * FROM weapons WHERE item_name = '".$info['selected_weapon']."'")
        or die(mysql_error());  
            $wapeninfo = mysql_fetch_array($wapen);        
            $bonus = $wapeninfo['strength_bonus'];
        }

            $hit = $info['strength_lvl'] * 20;
            $maxhit = $hit+$bonus;
        ?>
    
        <select name="voedselkeuze">
            <?php
                $food
= mysql_query("SELECT * FROM inventory WHERE player_name='".$_SESSION['SESS_LOGIN_NAME']."' AND category = 'food'");
            while($eat = mysql_fetch_assoc($food)) {
                echo "<option value='".$eat['item_name']."'>".$eat['item_amount']."x ".$eat['item_name']."</option>";
            }

            ?>

        </select>
            <input type="submit" value="Eat" class="attbtn" onmouseover="mouseoversound.playclip()" name="food"/><br>
            <select name="wapenkeuze">
        <?php
            $weapon
= mysql_query("SELECT * FROM inventory WHERE player_name='".$_SESSION['SESS_LOGIN_NAME']."' AND category = 'weapon'");
                while($selected_weapon = mysql_fetch_assoc($weapon)) {
                    echo "<option value='".$selected_weapon['item_name']."'>".$selected_weapon['item_name']."</option>";
                }

        ?>
    
            <input type="submit" value="Choose weapon" class="attbtn" onmouseover="mouseoversound.playclip()" name="chooseweapon"/
</form>
Gewijzigd op 28/04/2014 12:53:22 door Marco Eilander
 
PHP hulp

PHP hulp

28/03/2024 13:10:02
 
- Ariën  -
Beheerder

- Ariën -

28/04/2014 11:03:40
Quote Anchor link
Kan je wat relevante code laten zien?
 
Marco Eilander

Marco Eilander

28/04/2014 11:46:25
Quote Anchor link
- Aar - op 28/04/2014 11:03:40:
Kan je wat relevante code laten zien?


Ja hoor. Ik dacht dat het niet nodig zou zijn, aangezien ik hier alleen vraag om advies.
 
- Ariën  -
Beheerder

- Ariën -

28/04/2014 11:49:17
Quote Anchor link
Gezien het feit dat je dan een POST opnieuw moet refreshen klinkt het mij eerder in de oren als een verkeerde opbouw van het script.
 
Marco Eilander

Marco Eilander

28/04/2014 12:23:24
Quote Anchor link
- Aar - op 28/04/2014 11:49:17:
Gezien het feit dat je dan een POST opnieuw moet refreshen klinkt het mij eerder in de oren als een verkeerde opbouw van het script.


Ik heb de code er bij gezet ;)
 
Obelix Idefix

Obelix Idefix

28/04/2014 12:30:04
Quote Anchor link
Marco Eilander op 28/04/2014 11:46:25:
Ik dacht dat het niet nodig zou zijn, aangezien ik hier alleen vraag om advies.

Je hebt een probleem. Staat tenminste in je topic-titel ;-)
Gaat dus niet alleen om advies, maar je wilt een oplossing.
 
Donny Wie weet

Donny Wie weet

28/04/2014 14:25:22
Quote Anchor link
Marco, zorg ervoor dat je eerst de "aanval" uitvoerd (updaten van je database) en haal dan de HP weer uit de database. Wat je nu doet is eerst ophalen en dan updaten. Dat is wat Aar bedoelt met een verkeerde opbouw van je script
 
Marco Eilander

Marco Eilander

29/04/2014 13:25:30
Quote Anchor link
Donny Wie weet op 28/04/2014 14:25:22:
Marco, zorg ervoor dat je eerst de "aanval" uitvoerd (updaten van je database) en haal dan de HP weer uit de database. Wat je nu doet is eerst ophalen en dan updaten. Dat is wat Aar bedoelt met een verkeerde opbouw van je script


Bedankt, ik zal er straks naar kijken en proberen.
Want ik moet het sowieso eerst ophalen, anders kan de battle niet beginnen.

Toevoeging :

Ik krijg het niet voor elkaar.
Gewijzigd op 01/05/2014 11:11:47 door Marco Eilander
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.