JeuWeb - Crée ton jeu par navigateur
Système d'attaques - 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 : Système d'attaques (/showthread.php?tid=4713)

Pages : 1 2


Système d'attaques - noxo. - 07-04-2010

Salut tout le monde =)

Comme vous le savez, je développe un petit jeu là ^^

J'aimerai faire un système d'attaques entre joueurs.

Exemple, je suis le joueur A, j'ai une Arme 1, je tape le joueur B, je lui fais X de dégâts en fonction de son arme 2 et il riposterai (éventuellement) avec X de dégâts en fonction de mon Arme 1

Ca doit être flou là j'avoue ^^
Mon soucis est que je ne sais pas comment est ce que je vais m'y prendre pour réaliser ce système là.

Tout ce que j'ai pour l'instant... c'est rien du tout ^^

Je lance ce topic pour avoir des suggestions et avoir des idées sur la méthode à utiliser.
Je n'en suis pas encore au stade des attaques mais j'y réfléchis déjà car ça va être dur ^^

Merci d'avance pour votre aide.

Cordialement,
noxo.


RE: Système d'attaques - Halfman - 07-04-2010

Tu préférerais faire ça en orienté objet? (Ce que je te conseil grandement)


RE: Système d'attaques - noxo. - 07-04-2010

Mon site en lui même n'est pas en OO donc je préfère quand même rester sur quelque chose que je maitrise ^^


RE: Système d'attaques - Halfman - 07-04-2010

J'aurais fait une fonction damage($player1, $player2); mais comme tu n'es pas très à l'aise avec la poo j'ai essayé de te faire un bout de code simple.

Code PHP :
<?php

$player1
= 'player';
$player2 = 'player2';

// Loop for fetching data
$loop = 1;
while (
$loop = 1) {
$a = $a+1;

$selectarray[$a] = mysql_query('SELECT * FROM {{table}} WHERE username=`player' . $a '`');
$fetch = mysql_fetch_array($selectarray[$a]);
$weapondmg[$a] = $fetch['weapondmg'];
$pv[$a] = $fetch['playerpv'];

if (
$weapondmg[$a] == null) {
$loop = 0; }}

// PV after attack
$player2pv = $pv[2] - $weapondmg[1];
$player1pv = $pv[1] - ($weapondmg[2]/2);

mysql_query('UPDATE {{table}} SET playerpv=`' . $player1pv . '` WHERE username=`' . $player1 . '`');
mysql_query('UPDATE {{table}} SET playerpv=`' . $player2pv . '` WHERE username=`' . $player2 . '`');

echo
'Le Joueur ' . $player1 . ' attaque ' . $player2 . ' et inflige ' . $weapondmg[1] . '<br/>' . $player2 . ' riposte et inflige ' . $weapondmg[2] . ' (divisé par 2 car riposte) <br/> Bilan : ' . $player1 . ' à désormais ' . $player1pv . ' et ' . $player2 . ' à désormais ' . $player2pv . '.';
?>

ps : je sais que pour la boucle j'aurais pu faire while($fetch = mysql_fetch_array($selectarray)) et refaire une boucle mais comme ça normalement ça marche.
ps2 : je n'ai pas testé le code donc c'est très probable qu'il y ait des erreurs (notamment du côté des query sql)


RE: Système d'attaques - noxo. - 07-04-2010

Un code qui mérite d'être testé en tout cas merci ^^

Seulement, je ne comprends pas comment tu définis les dégâts ? =)

Car par exemple j'ai l'arme A qui ferait entre 0 et 5 de dégâts, je veux que ce soit aléatoire mais qu'il fasse plus de dégâts si le mec n'a rien et qu'il en fasse moins si le mec a une arme ou autre... :/


RE: Système d'attaques - Halfman - 07-04-2010

Ah dans ce cas rien ne t'empêche de remplacer par exemple $weapondmg par rand(0, 5); (pour une valeur aléatoire entre 0 et 5)

Et pourquoi pas après mettre dans ta db au niveau des dommages 0-15 et faire un explode de cette valeur pour définir la valeur min/maxi du random Wink


RE: Système d'attaques - noxo. - 07-04-2010

très très pas con quand même ^^
J'ai mon système de deal à finir et quelques trucs donc je regarderai ça de plus près d'ici quelques jours certainement =)


RE: Système d'attaques - xepos - 07-04-2010

Salut,

Je vais essayer de te proposé un petit code car j'ai un peu de temps libre ce soir Wink

Je te met le code ici dans la soirée

Édit: Comment ce termine le combat? Quand le joueurs 1 ou 2 meurt ?? Ou met tu un nombre de round ??


RE: Système d'attaques - Halfman - 07-04-2010

Mon script est prévu pour un seul coup mais après rien ne t'empêche de faire une boucle du bout de code qui retire les pv pour chaque round (avec random par exemple) ou si les pv de l'un des joueurs tombent en dessous de 0 (dans ce cas pense a redéfinir les pv du perdant par 0 pour ne pas avoir de valeur negative.).

En tout cas je te conseillerais de tester le code avant de le modifier.


RE: Système d'attaques - noxo. - 07-04-2010

En fait, 30 PA.
Chaque attaque coute 10PA.

Je fais X de dégâts, la vie de l'adversaire diminue point.
Si je ne le tue pas, et que quelqu'un d'autre le tape et le met à zero, il se retrouve au niveau 1 donc mort =)