Berekening voor attack.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Thomas

thomas

02/01/2010 18:29:00
Quote Anchor link
Goedendag ik ben bezig met een fantasy game waar je monster moet attacken om zo snel mogelijk lvl up te komen.

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.
 
PHP hulp

PHP hulp

22/12/2024 07:55:14
 
Roy

roy

02/01/2010 19:05:00
Quote Anchor link
Het zou in een while lusje kunnen en dan net zo lang door gaan tot dat 1 van de 2 dood is.
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)
PHP script in nieuw venster Selecteer het PHP script
1
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
       }
}

?>
 
Noppes

Noppes

02/01/2010 19:08:00
Quote Anchor link
Tja, dan loop je wel tegen de max execution time op!

Je kan procentueel een sterkte berekenen en dat menemen in de random van wie er wint of verliest
 
- Mark -

- Mark -

02/01/2010 19:16:00
Quote Anchor link
while is leuk maar dan heb je dus geen kans meer om bijvoorbeeld een ITEM te gebruiken om bijvoorbeeld beter te worden. En hoezo 1 tegen 1 gevechten direct het zo maken dat je tegen meerde monsters kunt vechten en met meerdere mensen in je groep.

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 -
 
Roy

roy

02/01/2010 19:49:00
Quote Anchor link
@Noppes
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.
 
Victor Php

Victor Php

02/01/2010 19:51:00
Quote Anchor link
@ Mark

Idd.. gaat na 2 minuten saai worden ^^
Gewijzigd op 01/01/1970 01:00:00 door Victor Php
 
Pepijn

Pepijn

02/01/2010 20:52:00
Quote Anchor link
Wisten jullie dat er een ban staat op vragen over criminal games:
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


XD
Gewijzigd op 01/01/1970 01:00:00 door Pepijn
 
Niels K

Niels K

02/01/2010 20:55:00
Quote Anchor link
@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
 
Thomas

thomas

02/01/2010 21:05:00
Quote Anchor link
Bedankt voor de reactie
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
 
Pepijn

Pepijn

02/01/2010 21:11:00
Quote Anchor link
Zo'n project wordt toch wel OOP he?

Weet je al welke classes(objecten) je gaat maken?
 
Thomas

thomas

02/01/2010 21:27:00
Quote Anchor link
@pepijn
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?
 
Pepijn

Pepijn

02/01/2010 21:30:00
Quote Anchor link
Ik zal als ik jou was eerst OOP leren:
tut van blanche
classes zijn groepen van functies bij elkaar die samen een doel vervullen.
 
Thomas

thomas

02/01/2010 21:46:00
Quote Anchor link
Ke heb de tut doorgenomen.
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)
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
<?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
        }
    }
}

?>
Gewijzigd op 01/01/1970 01:00:00 door thomas
 
Nicoow Unknown

Nicoow Unknown

02/01/2010 22:14:00
Quote Anchor link
check regel 11 en 17,, heb je dat al niet gedaan?
En kan je niet beter wiskundig gaan berekenen wie er wint?
 
Pepijn

Pepijn

02/01/2010 22:26:00
Quote Anchor link
if($monsters even elseif van maken
 
Yearupie Achternaamloos

Yearupie Achternaamloos

02/01/2010 23:03:00
Quote Anchor link
Wanneer de code die moet uitgevoerd worden slecht uit één lijn bestaat, mogen de accolades weggelaten worden, anders moet je ze gebruiken.
 
Nicoow Unknown

Nicoow Unknown

02/01/2010 23:06:00
Quote Anchor link
Gebruik gewoon accolades,, dan weet je zeker dat je altijd goed zit,,
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.
 
Roy

roy

03/01/2010 00:40:00
Quote Anchor link
@thomas het antwoord is al gegeven door Yearupie. Ik weet niet hoe goed je php kennis, maar ik denk dat je beter kan beginnen met een ander project om php wat beter te leren. Het namelijk niet makkelijk om een goed spel te maken in php. En zeker niet een spel dat goed en efficiënt werkt. Want het script wat ik gaf is inderdaad niet de beste oplossing. voor een paar gebruikers is het leuk, maar als je veel gebruikers hebt, dan gaat je server niet heel leuk vinden.
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).
 



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.