PHP Server, Help

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Dylan S

Dylan S

19/07/2013 10:34:09
Quote Anchor link
Hallo, ik ben een PHP BrowserGame aan het maken en ik wil een 'Server' maken voor de game..
De server houdt bij de punten en de tijd OOK als er geen spelers online zijn.. (dus geen connectie met client / browser)Zoals bij de Game: Travian
Maar ik weet alleen niet hoe ik dat doe.., Hoe maak ik een PHP server-side script die MySQL en Javascript gebruikt...

Bedankt voor het helpen.
 
PHP hulp

PHP hulp

26/09/2020 13:27:30
 
Frank Nietbelangrijk

Frank Nietbelangrijk

19/07/2013 10:36:03
Quote Anchor link
Google eens op cronjob.
 
Dylan S

Dylan S

19/07/2013 10:38:57
Quote Anchor link
Kun je cronjobs veranderen?? via $row / database data?

Edit: Cronjobs gaan niet lager dan 1 minuut, maar de clocken rekenen op 1 seconde of minder...
Gewijzigd op 19/07/2013 10:42:11 door Dylan S
 
Frank Nietbelangrijk

Frank Nietbelangrijk

19/07/2013 10:42:42
Quote Anchor link
een cronjob is gewoon een php script. deze laat je vervolgens periodiek door de server uitvoeren. Omdat er geen output naar een browser is zul je ofwel de output naar je toe moeten laten emailen door de server ofwel je maakt een logbestand. Maar je kunt je script natuurlijk wel gewoon testen door hem vanuit je browser op te vragen en dan krijg je wel de output te zien.
 
Erwin H

Erwin H

19/07/2013 10:45:43
Quote Anchor link
Dylan S op 19/07/2013 10:34:09:
Hoe maak ik een PHP server-side script die MySQL en Javascript gebruikt...

Niet.... nou ja, in elk geval wat betreft javascript dan. Javascript draait in de browser, dus dat kan je nooit gebruiken als je een script puur op de server draait.



Toevoeging op 19/07/2013 10:47:48:

Dylan S op 19/07/2013 10:38:57:
Kun je cronjobs veranderen?? via $row / database data?

Edit: Cronjobs gaan niet lager dan 1 minuut, maar de clocken rekenen op 1 seconde of minder...

En dus ben je met een compleet verkeerde aanpak bezig.
Laat me raden, je wil dat bepaalde punten of resources elke seconde worden opgehoogd, zelfs als een speler niet actief is. Dat moet je dus helemaal niet via een cronjob doen. Zoek eens hier op het forum, een dergelijke vraag komt hier pakweg elke week voorbij. Weet je ook meteen dat er al tig van die spellen zijn....
 
Frank Nietbelangrijk

Frank Nietbelangrijk

19/07/2013 11:05:56
Quote Anchor link
Oh zo ..

Ja als je realtime wilt werken dan wordt het lastig.
Maar je kunt wel telkens als een speler weer online komt de database bijwerken en daarbij kun je ook rekenen met de verschillen in de tijden
 
Dylan S

Dylan S

19/07/2013 12:51:27
Quote Anchor link
Frank, ik heb dat geprobeerd maar het geeft mij een negatief getal terug (de punten)...
 
Frank Nietbelangrijk

Frank Nietbelangrijk

19/07/2013 15:09:41
Quote Anchor link
Dylan vertel ons dan eens je indeling van je tabel met de types:

bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
Tabel users:
UserId:     INT, autoincrement, primary key.
Name:       VARCHAR
Lastactive: DATETIME
 
Dylan S

Dylan S

19/07/2013 18:02:49
Quote Anchor link
Frank, het is ong. hetzelfde als jij zij in de Post ^^..
Maar hoe doe ik de DATETIME ding?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

19/07/2013 19:22:25
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT TIMEDIFF(now(),`Lastactive`) AS `hours` FROM `users` WHERE `UserId`=21


geeft een $row['hours'] met een waarde dat bijvoorbeeld kan zijn: 838:59:33 (838 uur, 59 minuten en 33 seconden)
 
Dylan S

Dylan S

19/07/2013 19:54:31
Quote Anchor link
Ik bedoel, (ik weet hoe de db ding) hoe je tijden vergelijkt, ik heb al heel veel geprobeerd zonder success..
 
Frank Nietbelangrijk

Frank Nietbelangrijk

19/07/2013 20:52:18
Quote Anchor link
Dylan leg eens in normaal nederlands met een voorbeeld uit waar je dan op vast loopt
 
Dylan S

Dylan S

19/07/2013 21:09:19
Quote Anchor link
Sorry, ik type heel snel en dan mis-type of vergeet ik woorden... :P

1. Ik loop vast op het server-side handling van data, zoals: Een server klok, Punten, Aanvallen en Bouwen..
Gewijzigd op 19/07/2013 21:12:52 door Dylan S
 
- SanThe -

- SanThe -

19/07/2013 21:12:14
Quote Anchor link
Ik hoop dat Frank het snapt, maar mij ontgaat zo een beetje je hele schrijven. Beetje meer uitleg/duidelijkheid lijkt mij niet overboding.
 
Kevin Kroos

Kevin Kroos

20/07/2013 00:46:56
Quote Anchor link
Als je oplossingen zoekt voor het realtime verwerken van data moet je zeker eens kijken naar NodeJS, dit is een soort ajax protocol.

"Zoals bij de Game: Travian"

laat het duidelijk zijn dat zij geen realtime data processing hebben, voor een server met veel bezoekers is dit erg zwaar. Zij gebruiken "cronjobs" en updaten de scores eens per kwartier. Net als Ikariam trouwens.

Ik ben zelf van mening dat PHP niet de juiste taal is voor wat je wilt doen. ASP.NET staat met SignalR om bekend om zijn goede comptabiliteit met realtime data. En zeker als het om een zwaar spel gaat is PHP niet de juiste keus, aangezien je per pagina weer je files moet compilen.
 
Dylan S

Dylan S

20/07/2013 10:03:56
Quote Anchor link
Updaten eens in de kwartier???? het wordt berekend per seconde...
Voorbeeld: Als je graanakkers allemaal op lvl 20 staan krijg je zo'n 4 graan per seconde..
En PHP is wel de juiste.., voor text-based grid games... (PHP is een van de meest gebruikte browsergame protocol)

Alleen..: Cronjobs? Kun je die updaten via database..., want als er verschillende mensen online zijn moet de cronjob voor elke User apart worden ingesteld...
 
- Mark -

- Mark -

20/07/2013 11:20:11
Quote Anchor link
Gewoon kijken hoelang het geleden is dat de speler zijn of haar graanakkers heeft bezocht. Dan kun je uitreken hoevel graan erbij moet komen.
 
Jasper DS

Jasper DS

20/07/2013 12:06:25
Quote Anchor link
Zoals Mark het hierboven al zegt. Je hoeft helemaal geen cronjobs te gebruiken. Je houdt gewoon de tijd bij per user. Stel nu iemand creëert graan op LVL 20 tegen 600 eenheden per uur (=10 p/m). Dan bereken je gewoon hoeveel eenheden graan er bij zijn gekomen in de tijd sinds de laatste keer dat je het aantal eenheden graan van die speler opsloeg in de database. Per request naar het aantal eenheden graan berekent je PHP-script dus gewoon hoeveel graan de speler heeft aan de hand van die laatste tijd en aantal in de db. Stel dat de speler met dat graan iets koopt / bouwt dan zet je een nieuwe row in je db met de tijd en het aantal resources op dat moment en alles begint weer zoals voorheen.

Het enige waar je dan nog rekening mee moet houden is het maximaal aantal grondstoffen maar dat is ook niet moeilijk te implementeren.
 
Dylan S

Dylan S

20/07/2013 20:26:31
Quote Anchor link
Das waar, maar met aanvallen..., als de aanval afgelopen is als je off bent hoe moet het dan??
 
Bart V B

Bart V B

20/07/2013 22:11:03
Quote Anchor link
Als je offline bent neem je toch ook geen deel aan het spel?
Of ben ik te oud aan het worden?
 
Jasper DS

Jasper DS

20/07/2013 22:14:33
Quote Anchor link
je moet het "ik heb dat aantal grondstoffen op die moment dus dat moet ergens opgeslagen en berekent worden" uit je hoofd halen. Je berekent telkens wat je nodig hebt slechts als je het nodig hebt.

Logt iemand 5 dagen niet in dan moet je die 5 dagen niet weten welke grondstoffen die speler heeft. pas als iemand hem aanvalt of hij terug online komt en er dus geweten moet worden hoeveel grondstoffen die speler heeft, bereken je het aantal grondstoffen.
 

Pagina: 1 2 volgende »



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.