Berekening voor attack.
Nu loop ik tegen het volgende aan.
Ik moet een bereking uitvoeren aan de hand van deze gegevens
player attack = 50
player defence = 45
player health = 100
monster attack = 30
monster defence = 1
monster health = 171
het moet niet zo zijn zoals criminals dat als player attack groter is
dan monster attack dat je altijd wint.
hier wil ik het dus zo doen dat als player 50 attack heeft en de monster 171 health heeft en 1 defence dat de player dus met 49 attackt en dus dan
al 4 keer moet slaan voordat ie de monser dood heeft
vice versa ook. wie kan mij hiermee helpen zou het zeer op prijs stellen.
ik heb even snel wat in elkaar gezet. ik denk dat je hem verder wel kan aanpassen naar je eigen wensen.
je zou ook nog het aanvallen variabel kunnen maken. zodat hij soms mis slaat en soms maar op 50% van zijn kracht slaat.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
while(true){
// p = player; m = monster
if( p_attack - m_def > 0){ // als de speler meer attack heeft, dan de defence van het monster
m_health -= p_attack - m_def;
if(m_health <= 0) break; //als monster dood is, stop de while
}
if( m_attack - p_def > 0){ // als het monster meer attack heeft, dan de defence van de speler
p_health -= m_attack - p_def;
if(p_health <= 0) break; //als de speler dood is, stop de while
}
}
?>
while(true){
// p = player; m = monster
if( p_attack - m_def > 0){ // als de speler meer attack heeft, dan de defence van het monster
m_health -= p_attack - m_def;
if(m_health <= 0) break; //als monster dood is, stop de while
}
if( m_attack - p_def > 0){ // als het monster meer attack heeft, dan de defence van de speler
p_health -= m_attack - p_def;
if(p_health <= 0) break; //als de speler dood is, stop de while
}
}
?>
Je kan procentueel een sterkte berekenen en dat menemen in de random van wie er wint of verliest
En als je dan toch bezig bent verschillende classes inbouwen zoals Archer, Mage, Soldier, Knight. Met verschillende statistieken en aanvallen.
Ik denk niet dat mensen 1 op 1 gevechten zo interessant gaan vinden.
Gewijzigd op 01/01/1970 01:00:00 door - Mark -
Ja klopt je moet nog wel controleren of minimaal 1 van de 2 schade aan kan richten bij de andere. Als dat zo is, dan mogen de healt waarde wel heel groot zijn en de attack heel laag wil je een max execution time error krijgen(als de rest van het script ook niet heel groot is).
maar een sterkte berekening is inderdaad wel mooier dan een while.
@mark
nee klopt, dat kan dan niet. Maar ik ging er van uit dat het geen live gevecht, maar een gesimuleerd gevecht is.
Quote:
Geblokkeerd van PHPhulp
Jou IP adres is geblokkeerd op PHPhulp. Dit omdat je één van de volgende normen hebt overtreden:
Je spammed,
je stelt vragen over 'criminal games',
een andere reden..
Heeft 'jouw broertje' dit gedaan of wil je het goedmaken? Dan kun je contact opnemen met [email protected]. Ook wanneer je denkt dat dit niet op zijn plaats is kun je contact opnemen. Vermeld hierbij duidelijk je loginnaam en echte naam!
PHPhulp team
Jou IP adres is geblokkeerd op PHPhulp. Dit omdat je één van de volgende normen hebt overtreden:
Je spammed,
je stelt vragen over 'criminal games',
een andere reden..
Heeft 'jouw broertje' dit gedaan of wil je het goedmaken? Dan kun je contact opnemen met [email protected]. Ook wanneer je denkt dat dit niet op zijn plaats is kun je contact opnemen. Vermeld hierbij duidelijk je loginnaam en echte naam!
PHPhulp team
XD
Gewijzigd op 01/01/1970 01:00:00 door Pepijn
Is wat de TS bedoeld een criminal game? Ik dacht dat het alleen maffia games waren.
Ennuh trouwens [email protected] werkt niet meer XD En ook is het irritant dat ik op mijn stage bedrijf af en toe geblokkeerd wordt, maar dat komt omdat ze geen vast ip hebben
Het is een fantasygame met meerder classen.
Sommige kennen het spel wel.
deze browser game is gebaseerd voor een groot gedeelte(zover als het me lukt) op FLYFF.
Heb met hun overlegt en mocht het maken.
Je begint als vagrant en vanaf lvl 15 kun je een mercenary acrobat magician assist worden. vanaf lvl 60 kun je de 2de baan nemen
mercenary wordt dan blade of knight.
acrobat range met pijl en boog
jester met yo-yo noem maar op. ook de armor wordt op de character aangepast.
Dit wordt ook met een item gedaan.
Elke class heeft zijn eigen wapens
Invite zou het nog wel kunnen met een while loopje.
Als het me lukt laat ik het weten
@victor
Nee staat nog niks online ben nog maar bezig met het begin.
Moet alles in mijn eentje doen. heb geen vriendin en of famillie
die er wat vanaf weten.(helaas xD).
Allemaal bedankt voor jullie tips
Weet je al welke classes(objecten) je gaat maken?
OOP nog nooit van gehoord.
is dat beter dan de traditionele manier?
en wat bedoel je met classes(objecten)
bedoel je de character classes of iets anders?
is het echt alleen maar om je code hebruikbaar te maken
en als er wat verandert moet worden makkelijker wordt?
zit er wel leuk uit om mee te beginnen met klein project.
als ik dat er nu bij moet gaan doen dan loopt mijn hoofd vast xD
Dan moet ik weer anders denken. terwijl ik het nu goed in mijn hoofd
heb zitten.
en heb geen classes ik ben een beginner dat zul je denk ik nu wel merken
maar ik leer snel xD
@roy
Ik heb de code aangepast maar hoe zet ik er een echo in van
je hebt gewonnen of verloren heb nu dit
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
if($p == "attack" AND $id == $_GET['id'])
{
//Attack berekening
while(true)
{
//p = player m = monster
if($char_attack - $monsters['defence'] > 0){ //als de speler meer attack heeft dan defence van het mosnter
$monsters['health'] -= $char_attack - $monsters['defence'];
if($monsters['health'] <= 0)
echo "You won";
break; //Als het monster dood is dan script stoppen
}
if($monsters['attack'] - $char_def > 0){ //Als het monster meer attack heeft dan defecen van char
$char_health -= $monsters['attack'] - $char_def;
if($char_health <= 0)
echo "You lose";
break; //Als de char dood is dan script stoppe
}
}
}
?>
if($p == "attack" AND $id == $_GET['id'])
{
//Attack berekening
while(true)
{
//p = player m = monster
if($char_attack - $monsters['defence'] > 0){ //als de speler meer attack heeft dan defence van het mosnter
$monsters['health'] -= $char_attack - $monsters['defence'];
if($monsters['health'] <= 0)
echo "You won";
break; //Als het monster dood is dan script stoppen
}
if($monsters['attack'] - $char_def > 0){ //Als het monster meer attack heeft dan defecen van char
$char_health -= $monsters['attack'] - $char_def;
if($char_health <= 0)
echo "You lose";
break; //Als de char dood is dan script stoppe
}
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door thomas
En kan je niet beter wiskundig gaan berekenen wie er wint?
if($monsters even elseif van maken
Wanneer de code die moet uitgevoerd worden slecht uit één lijn bestaat, mogen de accolades weggelaten worden, anders moet je ze gebruiken.
Om ze altijd neer te zetten kost 1 seconden,,
Om ze naderhand neer te zetten,, kost 10 seconden.
En het is gewoon netter, vind ik.
Ook omdat je de witregels tussen de statements krijgt.
En om zo'n spel te maken kost heel veel tijd, zeker als je alleen bent en nog niet goed php kent (denk ik tenminste dat je niet goed in php bent).
Het script is ook nog niet af, want als beide 'personen' niet kunnen aanvallen (lagere attack dan defence) dan kom je in een oneindige lus. dat zal je dus ook nog op moeten letten. Maar dat mag je zelf proberen.
@nico
klopt het is ook niet de tijd, maar ik vind het overzichtelijker (bij korte regels).