JeuWeb - Crée ton jeu par navigateur
[Résolu][PHP] Script de petite bataille basique - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu][PHP] Script de petite bataille basique (/showthread.php?tid=6437)



[Résolu][PHP] Script de petite bataille basique - LoKeD - 09-10-2012

Bonsoir bonsoir !

Je viens quérir votre aide pour un script que j'essaye de mettre au point pour un système de combat, le hic c'est que j’obtiens une erreur lorsque le mt_RAND atteint la valeur "2", or la variable qui porte le nom[2] (Ici Destroyer) s'affiche bien. D'où pourrait venir le problème s'il vous plait ?

Voici ce que j'ai sur ma page :
Citation :Notice: Undefined offset: 2 in C:\wamp\www\test_atk\index.php on line 30

RND Atk : 2 RND Def : 1

Destroyer20 vs 35Destroyer

Le code php qui génère tout ça :
Code PHP :
<?php
$atk
[1] = 10; // Nombre Mother Ship
$atk[2] = 20; // Nombre Destroyer
$def[1] = 50; // Nombre Destroyer
// Caractéristiques Attaquant
// Caractéristiques Mother Ship
$atk_nom[1] = "Mother Ship";
$atk_atk[1] = 120;
$atk_bou[1] = 500;
$atk_str[1] = 80;
// Caractéristiques Destroyer
$atk_nom[2] = "Destroyer";
$atk_atk[2] = 60;
$atk_bou[2] = 0;
$atk_str[2] = 160;

// Caractéristiques défenseur
$def_nom[1] = "Destroyer";
$def_atk[1] = 60;
$def_bou[1] = 0;
$def_str[1] = 160;

for(
$i = 1; $i <= 6; $i++)
{
$rnd_atk = mt_RAND(1, 2);
$rnd_def = mt_RAND(1, 1);

// <- Défense totale des unités visées -> - <- Attaque totale attaquants ->/ Addition bouclier+structure par unité pour redonner le nombre sortant d'unités vivantes.
$def[$rnd_def] = floor(((($def_bou[$rnd_def]+$def_str[$rnd_def])*$def[$rnd_def])-($atk_atk[$rnd_def]*$atk[$rnd_atk]))/($def_bou[$rnd_def]+$def_str[$rnd_def]));
$atk[$rnd_atk] = floor(((($atk_bou[$rnd_atk]+$atk_str[$rnd_atk])*$atk[$rnd_atk])-($def_atk[$rnd_atk]*$def[$rnd_atk]))/($atk_bou[$rnd_atk]+$atk_str[$rnd_atk])); // Ligne 30 en question dans l'erreur

echo $rnd_atk."<br><br>";

if(
$def[$rnd_def] <= 0) $def[$rnd_def] = 0;
if(
$atk[$rnd_atk] <= 0) $atk[$rnd_atk] = 0;
echo
"RND Atk : ".$rnd_atk." RND Def : ".$rnd_def."<br><br>";
echo
"<font color=red>".$atk_nom[$rnd_atk]."</font>".$atk[$rnd_atk]." vs ".$def[$rnd_def]."<font color=green>".$def_nom[$rnd_def]."</font><br>";
}
?>

Cordialement,


RE: [PHP] Script de petite bataille basique - Ter Rowan - 09-10-2012

Regarde les premières lignes du script, l erreur est au debut


RE: [PHP] Script de petite bataille basique - LoKeD - 09-10-2012

Effectivement --' j'ai mal analysé, toutes mes excuses. ^^'

Le sujet est donc résolu. Merci bien. :langue2: