- woodoo4válasza Árnyék (13:03) részére
- 2010.08.08. 22:25
- permalink
csináltam egy 'etc' mappát:
ezen belül van : 'var' mappa
'init.d' file
Már szerintem itt el van rontva, ezeknek a könyvtáraknak kapásból rendelkezésre kéne álljanak.
Ugyan...
Ez a WinuX.
A kérdezőnek:
Még szerintem is van mit tanulnod, és olvasgatnod, mielőtt elkezdenél megírni egy játékot.
Viszont -->
Itt egy szép kis forrás, ami egy komplett Böngészős MMO.
Sok sikert hozzá.
WMutasd a teljes hozzászólást!- X-8100válasza sir_joe (14:27) részére
- 2010.08.07. 14:43
- permalink
Köszönöm az eddigi válaszokat.
Kezdem már érteni, és a ál-travian-t is megnézem.
A baj hogy az uw-nál is naponta csak egyszer lehet.
Mutasd a teljes hozzászólást!- sir_joeválasza X-8100 (21:23) részére
- 2010.08.07. 14:27
- permalink
Arab srácok elkezdték újraírni a Traviant, töltsd le, nézd meg, hogyan oldották meg. (Nem használtak cront.)
http://forum.ragezone.com/f583/new-developments-travian-akakori-6649..Mutasd a teljes hozzászólást!- SHADOWválasza X-8100 (12:37) részére
- 2010.08.07. 13:40
- permalink
- a cronnak globálisan kell feltelepítve lennie a szerverre
- a freeweb.hu nem ad cron hozzáférést, ott nem futtathatsz (legalábbis ~8 éve nem lehetett)
- az uw.hu-n pl. lehet (legalábbis ~8 éve lehetett), ott az adminfelületen annyit kellett tenned, hogy az "ütemezett feladatok" részen megadtad, melyik php-det mennyi időnként futtassa le
- ingyenes szolgáltató nem fogja megengedni, hogy percenként ütemezett feladatot futtass. Maxium naponként/óránkénti lehetőséget fogsz kapni
- de leginkább: amíg ilyen szinten fogalmad sincs az egészről, hogy tényleg megcsináltad amit ebben a hozzászólásodban leírtál, inkább próbálkozz valami egyszerűbbel. És a műveletsor alapból még hagyján, de ezek szerint azt sem sikerült kibogoznod a szövegből, hogy a var az az etc-n kívül van, vagy hogy az init.d és a cron.hourly azok mappák - addig pedig főleg nem jutottál el, hogy beírd a google-be hogy init.d, és rájöjj, hogy ez a mappa mit is csinál linux/unix alatt, és miért nem is működhet, amit te megpróbáltál...Mutasd a teljes hozzászólást!- Árnyékválasza X-8100 (12:37) részére
- 2010.08.07. 13:03
- permalink
csináltam egy 'etc' mappát:
ezen belül van : 'var' mappa
'init.d' file
Már szerintem itt el van rontva, ezeknek a könyvtáraknak kapásból rendelkezésre kéne álljanak.
Szerintem keress egy ingyenes szolgáltatót, ahol van cron. Ott kapsz egy webes felületet is az ütemezéshez, ott tesztelj előbb. Aztán ha már ott jól megy, akkor kezdj csak el linux/unix szerver üzemeltetéssel foglalkozni. Addig felejtős. Nulla ismerettel és úgy, hogy semmit nem tudunk az üzemeltetési környezetedről, se magad nem fogod tudni megoldani, se mi nem tudunk neked segíteni.Mutasd a teljes hozzászólást!- Benjyválasza X-8100 (12:37) részére
- 2010.08.07. 12:45
- permalink
Nem értek a cronhoz. Szóval csak felsorom amik lehetségesek szerintem.
a cron.hourly fájlnak nem php a kiterjesztése, így az értelmező magától biztos nem fogja lefuttatni a benne található kódot.
a cron.hourly fájlt nem így kéne átadni, hanem legalább az értelmezőnek meg kéne mondani, hogy futtassa le.
szerintem a cron.hourly fájlnak nem ezt kéne tartalmaznia, hanem valami ilyesmit, de mondom, nem néztem utána:
php /jatek/nyersanyagszamolo.php
Javaslom teszteléshez ne a hourly hanem legalább a minute-os fájlt használd, ha van.
Ajánlom azt is, hogy előbb a php-dat próbáld meg lefuttatni parancssorból (mivel a cron se csinál mást), és ugyanazt kéne neki beadni, amivel ott működik.Mutasd a teljes hozzászólást!- X-8100válasza Árnyék (23:35) részére
- 2010.08.07. 12:37
- permalink
Utána néztem és próbáltam is egy példát.
Úgy kéne kinéznie hogy minden percben hozzáad a cron nevű mysql táblázathoz egy olyan sort melynek a szám nevű oszlopnak az értéke 5.
Remélem érted :D
Szóval a táblázat kész van.
csináltam egy 'etc' mappát:
ezen belül van : 'var' mappa
'init.d' file
az init.d file tartalma:
# for vixie cron
#
# $Header: /var/cvsroot/gentoo-x86/sys-process/vixie-cron/files/crontab-3.0.1-r4,v 1.1 2005/03/04 23:59:48 ciaranm Exp $
#
#
# Global variables
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# check scripts in cron.hourly, cron.daily, cron.weekly and cron.monthly
0 * * * * root rm -f /var/spool/cron/lastrun/cron.hourly
a cron.hourly tartalma pedig:
<?php
mysql_connect("-.sql.freeweb.hu", "-", "-") or die(mysql_error());
mysql_select_db("-") or die(mysql_error());
mysql_query("INSERT INTO cron(szam) VALUES('14')")or die(mysql_error());
print "Sikeres adatbevitel";
?>
Nem működik:S
Pedig az egyik honlapon, így írták le:S
Vagy nagyon el van rontva?Mutasd a teljes hozzászólást!- Pistaapunkválasza Árnyék (21:53) részére
- 2010.08.07. 11:01
- permalink
Szia
Igazad van, ha tényleg ilyen összetett játékot akar. Én is írtam, hogy nyűgösebb megoldás, és elnézést, amiért kihagytam, hogy nem valami rugalmas módszer...De kivitelezhető ezzel a megoldással is, csak sokkal több munka összetett játéklogika esetén.
De szerintem a kérdezőnek nem annyira aktuális ez még..Mutasd a teljes hozzászólást!- Árnyékválasza X-8100 (22:59) részére
- 2010.08.06. 23:35
- permalink
Vagyis feladatütemezővel kéne a program ami percenként frissíti az oldalt. És így anélkül is változni a mysql eltárolt adat hogy én megnyitnám az oldalt, hanem csak a feladatütemező miatt növekdne 1-el a szám.
Vedd elő a józan paraszti eszedet egy picit! Mit csinál egy feladatütemező? Lefuttat egy programot a beállításainak megfelelően. Akkor, ha te percenként akarsz valamit csinálni, akkor mi a teendő? Beállítod, hogy a feladatütemező percenként futtassa a programodat.
Mit kell a programnak csinálnia? Kapcsolódnia a db-hez, kiadni az sql utasítást, ami a mező értékét megnöveli eggyel.
Könyörgöm, ebben mi olyan nehéz?Mutasd a teljes hozzászólást!- Árnyékválasza X-8100 (22:55) részére
- 2010.08.06. 23:31
- permalink
Ha ismernéd a php-t és a mysql-t, akkor minek kérdezted, hogy hogyan tudod megcsinálni a páros percenkénti növelést ember?
Nem értem, mivel még nem láttam egyetlen egy példát sem a feladaütemezésből.
Figyu, én csak annyit csináltam, hogy beírtama gugliba, hogy cron és dőlnek a példák. Lásd pl. http://www.freebsd.org/doc/hu/books/handbook/configtuning-cron.html
meg
http://www.sulinet.hu/tart/fcikk/Ka/0/25828/1
Wndows feladatütemezőre meg A Feladatütemező áttekintése
a keresőkifejezés szépen bővíthető, pl. php futtatása cron.Mutasd a teljes hozzászólást!- X-8100válasza X-8100 (22:55) részére
- 2010.08.06. 22:59
- permalink
Ja és félreírtam a programot. Vagyis feladatütemezővel kéne a program ami percenként frissíti az oldalt. És így anélkül is változni a mysql eltárolt adat hogy én megnyitnám az oldalt, hanem csak a feladatütemező miatt növekdne 1-el a szám.Mutasd a teljes hozzászólást!- X-8100válasza Árnyék (22:46) részére
- 2010.08.06. 22:55
- permalink
Nem érted mire gondolok
Én ennek a feladatütemező felépítését nem értem.
Nem használtam még, és mióta válaszoltál először, egész végig keresek google-n hogy hogy működik.
Nem értem, mivel még nem láttam egyetlen egy példát sem a feladaütemezésből.
De csak a feladatütemezőt nem értem.
A php-t és a mysql-t igen.
Azt is értem hogy a feladatütemezővel bizonyos időnként bizonyos feladatokat végez el. (A feladat például ellenőrzi a nyersanyagot)
Én csak azt nem értem hogy milyen kóddal érem el hogy bizonyos időnként frissítse az oldalt.
Erre nem találom a választMutasd a teljes hozzászólást!- Árnyékválasza X-8100 (22:33) részére
- 2010.08.06. 22:46
- permalink
Most őszinte leszek hozzád, amin vagy megsértődsz vagy nem. A tudásod nincs azon a szinten, hogy ilyen játék megírásába belekezdj. Lépj vissza egy picit, ismerkedj meg egy választott webes programozási nyelvvel (felőlem lehet az a php), egy db kezelővel és az sql-lel, majd utána próbálkozz a játék elkészítésével.
Miért? mert az utolsó kérdésed alapján még azt sem tudod, hogy php-ből hogyan kell mysql-hez csatlakozni és sql utasítást küldeni. Ráadásul ennek az eredeti kérdéshez már nagyon nincs köze.Mutasd a teljes hozzászólást!- X-8100válasza Árnyék (22:22) részére
- 2010.08.06. 22:33
- permalink
egy egyszerű kis példát mutatnál nekem?
Azon megérteném a használatát.
Mondjuk van egyetlenegy mező a mysql-ben, minek az értéke 5.
És ha a perc páros (vagyis x%2==0) akkor a számhoz adjon hozzá 1-t
Ezen megérteném, hogy milyen file-t kell használom.
Mutasd a teljes hozzászólást!- Árnyékválasza X-8100 (22:16) részére
- 2010.08.06. 22:22
- permalink
1. No comment. Bocsi, de ezt gondold még1x végig! Én azt sem mondtam, hogy cron-t használj, hanem azt, hogy feladatütemezőt. a cron ezek közül csak az egyik.
2. Miért kéne php-t írnod? A feladatütemező minden futtattható file-t tud futtatni. Pont ez a lényege. Windows-on simán lehet egy exe is a program, de linux/unix alatt is lehet egy lefordított programfile. Rád van bízva. Csak az a program csinálja meg azt, amit szeretnél.
3. A webszervereden legyen mind a feladatütemező (és a feladatütemező ugyebár fusson a webszerver oprendszerén), mind a futtatott file.Mutasd a teljes hozzászólást!- X-8100válasza Árnyék (22:12) részére
- 2010.08.06. 22:16
- permalink
Még nem foglalkoztam feladat ütemezővel.
Szóval ebből azon kívül hogy beállítok egy időt meg egy feladatot és azt végrehajtja azon kívül nem értek semmit sem.
A kérdéseim:
1; Honnan töltsem le a programot
2; Milyen programot kell írnom (gondolom php-t)
3; Hova kell feltöltenem
Mutasd a teljes hozzászólást!- Árnyékválasza X-8100 (22:12) részére
- 2010.08.06. 22:12
- permalink
Hogyhogy milyen kódokkal?Mutasd a teljes hozzászólást!- X-8100válasza Árnyék (22:08) részére
- 2010.08.06. 22:12
- permalink
Ezt értem, csak azt nem hogy milyen kódokkal. Mutasd a teljes hozzászólást!- Árnyékválasza X-8100 (22:04) részére
- 2010.08.06. 22:08
- permalink
Kérhetnék egy kis magyarázatot a használatáról.
Mit magyarázzak még rajta? Beütemezel vele (vagy bármilyen más feladatütemezővel) egy kis programocskát, hogy mondjuk óránként futtassa le. A kis programocska elvégzi a szükséges db módosításokat. Ezt a kis programocskát szokták körváltónak hívni.
Most kerestem neten utána, de még nem találtam megfelelő megoldást a használatára.
Ezt roppant erősen kétlemA használatának lényege az az, hogy lefutatsz vele egy programot. Pont. Nincs tovább. Mutasd a teljes hozzászólást!- X-8100válasza Árnyék (21:32) részére
- 2010.08.06. 22:04
- permalink
Akkor ha jól értem, akkor a cron-t érdemesebb használni mint ha én ellenőrizgetném.
Kérhetnék egy kis magyarázatot a használatáról.
Most kerestem neten utána, de még nem találtam megfelelő megoldást a használatára.
Végülis az egészet leírhatod, mert nem nagyon értem.Mutasd a teljes hozzászólást!- Árnyékválasza Pistaapunk (21:49) részére
- 2010.08.06. 21:53
- permalink
Szerintem ezt nagyon nem gondoltad végig! Miért? Mert nem csak támadáskor kell az adatokat frissíteni, hanem akkor is, amikor mondjuk célpontot keres egy másik fél (pontszám), netán kémkedik. Innentől kezdve nemhogy kevesebb sql-re lenne szükség, hanem egyenesen többre, és sokkal komplikáltabb lenne a kód, mint egy ütemezős megoldásnál.
Hacsak nem akar másodperc szintű követést, mint pl. a travian-ban (és kezdő ne is akarjon), akkor a feladatütemezős megoldás a legjobb és a leghatékonyabb.Mutasd a teljes hozzászólást!- Pistaapunkválasza X-8100 (21:23) részére
- 2010.08.06. 21:49
- permalink
Szia
Esetleg tárolhatsz minden számodra érdekes infót is és ezekből tudsz számolni. Pl.: tárolod, hogy mikor indított be egy bányát (idő), és hogy hány raktára van, meg persze a raktárak kapacitását is. Még egy idő mezővel jelzed, hogy mikor volt utoljára frissítve az adatbázisban az érceinek száma. Ha x perccel korábban, mint amikor belépett, akkor frissíted, ha meg az utolsó adatbázisba írás óta csak 10mp telt el, akkor békén hagyod.
Olyan esetekben, amikor mondjuk háború van, a megtámadott játékos adatbázis sorát frissíted először utána pedig levonod az elveszített ércek számát.
Tehát minden esetben, amikor az aktuális ércek számát kell megjeleníteni, egyben frissíted is az adatbázisban az utolsó frissítés/eltelt idők/bányák száma/raktárak kapacitása alapján az adatbázist. Ez a módszer azonban nyűgösebb, mint a feladatütemezős, de kevesebb sql-t kell futtatni, mert így aki havonta egyszer lép be, és nem támadja senki, annak havonta egyszer kell csak frissíteni (a belépés után) az adatbázis sorát.
Bocsánat, a monológért, remélem segítettemMutasd a teljes hozzászólást!- Árnyékválasza X-8100 (21:23) részére
- 2010.08.06. 21:32
- permalink
Oprendszeri feladatütemezővel (windows scheduler, cron, stb.) vagy az újabb mysql verziókban lévő mysql-es feladatütemezővel beütemezel egy programocskát (mondjuk php szkriptet) vagy egy sql utasítást (mysql-es ütemező esetén) a kívánt időintervallumonkénti futtatásra és hátra is dőlhetsz.
Indoklás? Mindenki így csinálja
Ha mondjuk a cron szóra rákeresel a prog.hu-n, akkor látod, hogy kb. minden 2. érintett téma ugyanerről szól...Mutasd a teljes hozzászólást!- Sziasztok!
Az érdekelne engem, hogy ha van egy olyan háborús játék ahol különböző dolgokat gyűjt pl: ércet.
Van raktára és a raktár megszabja hogy maximum 200 ércem lehet. (Ez idáig nagyon könnyű)
Ezen felül van mondjuk egy érctermelőm, és ez óránként ad mondjuk 36 ércet. (Ezt csak félig tudnám megcsinálni)
Szóval a mysql-i részt meg tudnám oldani, de amit nem tudok hogy hogy oldja meg az az hogy mikor adja hozzá.
Én olyasmin gondolkodtam hogy eltárolom hogy hány percenként kap az illető 1 ércet, és mindig amikor megkapja, akkor az utóbbi mezőben eltárolja hogy mikor kapta az utolsó ércet, és következőnek 6 perccel később fog hozzáadni 1-t és ez így menne.
De ezzel nagyon sok gond van. Mi van ha a felhasználó inaktív? Mi van ha épp nem frissít az illető, és így elcsúszik az idő?
A másik amire gondoltam az hogy kiszámolja mindig a legutóbb frissített és a mostani idő között hogy mennyit kell hozzáadnia.
Na de ebben is van probléma.
Mi van ha közben építek egy raktárat és 200 több ércet termelek?
Ez nem is lenne baj mert amint a felhasználó belép a nevébe akkor kivon annyit hogy pont teli legyen és ne legyen több.
De ha közben egy másik játékos megtámadja (és ha neki mondjuk a raktára 200 ércet enged, de neki van 400, és még nem lépett be szóval nem vonta ki a gép) akkor ő akár 400 ércet is el bír lopni.
Vagy a támadásnál is ellenőrizzem hogy több van-e neki mint a raktára engedélyez?
Szóval a kérdésem az lenne hogy melyiket érdemes választani, és egy kis indoklással.
Forráskód nem kell, mivel még csak tanulgatom a PHP és a mysql-t, és csak a logikája érdekel.
Előre is köszönöm a válaszokat.Mutasd a teljes hozzászólást!