Goedendag ik heb een vraag?
Ik ben bezig met een attack script en nee niet voor criminals.

Er moet rekening worden gehouden met de volgende variabelen.
$p = player $m= monster

$p_health = 1200
$m_health = 300

$p_attack = 225
$m_attack = 85

$p_defence = 200
$m_defence = 80

$p_critical = 2%
$m_critical = 1%

$p_blockrate = 8%
$m_blockrate = 3%

Nu wil ik dit in een while loopje verwerken.
Bijvoorbeel dat als monster health=0 dan player won
anders om is you lose

Ik weet alleen niet waar te beginnen wie kan mij een setje in de goede
richting geven. jullie hoeven niet alles voor te kauwen wil natuurlijk wel
leren.
Alvast bedankt

Het lijkt mij een stuk handiger als je objecten maakt. Bijvoorbeeld het object player met de functies attack, defend, run etc...
zoals ivo zegt, leer OOP, ik heb 2x een online vecht-systeem gemaakt, 1x 'gewoon' zonder objecten, en de 2e OOP,

echt het scheelt je een wereld van troubleshooten,
Zijn ze verder geheel hetzelfde?

Dan bijvoorbeeld (niet getest en heel basis)
<?php
class Fighter{
private $health;
private $attack;
private $defence;
private $critical;
private $blockrate;

private $name;

public __construct($health,$attack,$defence,$critical,$blockrate,$name)
$this->health = $health;
$this->attack = $attack;
$this->defence = $defence;
$this->critical = $critical;
$this->blockrate = $blockrate;
$this->name = $name;
}

public function attack()
{
$damage = $this->attack;
if(rand(0,100)<= $$this->critical)
{
//doe wat met je critical, heb maar een voorbeeldje genomen
$damage+=$damage; //verdubbelen
}
return $damage;
}

public function defence($damage)
{
if(rand(0,100) > $this->blockrate)
$this->health -= $damage;
if($this->health <0 )
{
$this->health = 0;
}
}
}

public function getHealth()
{
return $this->health;
}

public function getName()
{
return $this->name;
}
}

class Arena
{
private $player;
private $monster;

public __construct($player,$monster)
{
$this->player = $player;
$this->monster = $monster;
}

public function round()
{
$this->monster->defence($this->player($attack));
if($this->monster->getHealth() > 0)
{
$this->monster->defence($this->player($attack));
}
}

public function fight()
{
$winner;
while($this->player->getHealth() > 0 && $this->monster->getHealth() > 0)
{
$this->round();
}
if($this->player->getHealth() > 0)
{
$winner = $this->player;
}
else
{
$winner = $this->monster;
}
return $winner;
}
}

//voorbeeld gevecht
$player = new Fighter(1200,225,200,2,8);
$monster= new Fighter(300,85,80,1,3);

$arena = new Arena($player,$monster);
$winner = $arena->fight();
echo 'The winner is '.$winner->getName();
?>
nee, zaten nogal wat verschillen in de 2 die k maakte, werkte wel op hetzelfde princype,

leuk voorbeeld btw, :)

Reageren