Nyersanyag vizsgálás
2010-08-06T21:23:36+02:00
2010-08-08T22:25:24+02:00
2022-06-29T09:05:39+02:00
  • 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á.


    W
    Mutasd a teljes hozzászólást!
  • 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!
  • 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!
  • - 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!
  • 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!
  • 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!
  • 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!
  • 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!
  • 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!
  • 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!
  • 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!
  • 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álaszt
    Mutasd a teljes hozzászólást!
  • 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!
  • 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!
  • 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!
  • 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!
  • Hogyhogy milyen kódokkal?
    Mutasd a teljes hozzászólást!
  • Ezt értem, csak azt nem hogy milyen kódokkal.
    Mutasd a teljes hozzászólást!
  • 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étlem A használatának lényege az az, hogy lefutatsz vele egy programot. Pont. Nincs tovább.
    Mutasd a teljes hozzászólást!
  • 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!
  • 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!
  • 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ítettem
    Mutasd a teljes hozzászólást!
  • 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!
abcd