PHP Server, Help
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.
Google eens op cronjob.
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
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.
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...
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....
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
Frank, ik heb dat geprobeerd maar het geeft mij een negatief getal terug (de punten)...
bijvoorbeeld:
Maar hoe doe ik de DATETIME ding?
geeft een $row['hours'] met een waarde dat bijvoorbeeld kan zijn: 838:59:33 (838 uur, 59 minuten en 33 seconden)
Ik bedoel, (ik weet hoe de db ding) hoe je tijden vergelijkt, ik heb al heel veel geprobeerd zonder success..
Dylan leg eens in normaal nederlands met een voorbeeld uit waar je dan op vast loopt
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
Ik hoop dat Frank het snapt, maar mij ontgaat zo een beetje je hele schrijven. Beetje meer uitleg/duidelijkheid lijkt mij niet overboding.
"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.
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...
Gewoon kijken hoelang het geleden is dat de speler zijn of haar graanakkers heeft bezocht. Dan kun je uitreken hoevel graan erbij moet komen.
Het enige waar je dan nog rekening mee moet houden is het maximaal aantal grondstoffen maar dat is ook niet moeilijk te implementeren.
Das waar, maar met aanvallen..., als de aanval afgelopen is als je off bent hoe moet het dan??
Of ben ik te oud aan het worden?
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.