• Psst! Ano, Ty! Ještě nejsi zaregistrovaný na našem herním fóru? Přicházíš tak o možnost zapojit se do diskuzí a navíc si tu můžeš zkrátit čekání například při výstavbě nové budovy či jednotek. Zaregistruj se ještě dnes pomocí následujícího odkazu:

    » Vytvořit účet na fóru

barbarske vesnice v externich datech

DeletedUser7531

Guest
pro zatim to mam tak, ze to nahraje 20 000 vesnic, a pak se to pres php-header reloadne a nahraje dalsi ... nevyhodou je, ze to soubor z kmenu nacita asi petkrat, vyhodou je, ze tento import muzu povolit vice lidem, i tem, kteri nemaji vlastni db a tedy moznost vytvorit soubor se zmenami.

moznym zrychlenim by bylo sloucit 20 000 mysql queries do treba 20 a vkladat po 1000 vesnicich.

ale ted bych dal prednost vyreseni ceskych znaku.
a taky musim nahrat 1 000 000 radku s terenem :) - to budu mozna taky nejak muset orezat, jeste uvidim.

jinak na mape se jiz vesnice zobrazuji! takze si to lze prohlednout a okomentovat.

Delas mapu? Uz je nekde k videni? Ja si udelal ted provizorni, ale ne v php. Fascinuje me, jak se vesnice jedna po druhe vykresluji od stredu smerem k okraji. Hezky postupne jako by se mi pred ocima zrychlene registrovali hraci a vytvareli se vesnice :pardon ...
 

DeletedUser

Guest
abych opet doplnil informace: sloucenim mysql prikazu do mene ale delsich je rozhodne vyhodnejsi. teren jiz je taky hotov. ceske znaky stale pokulhavaji.
pokud jste se nekdo na tu stranku podivali, prosim o komentare a navrhy .dekuji
 

DeletedUser7531

Guest
Pekne. :pardon

Nejsem zadnej expert takze nevim, ale jak ctes ten soubor s pozadim mapy? (lesy, voda, trava)
 

DeletedUser

Guest
netusil jsem, ze php zvlada i praci s takovyhlema znakama, to to budu muset predelat :). ja to zobal z db, do ktery jsem si to nahral.
 

DeletedUser7531

Guest
netusil jsem, ze php zvlada i praci s takovyhlema znakama, to to budu muset predelat :). ja to zobal z db, do ktery jsem si to nahral.

Tak jsem to zkusil podle turgona. Jde to. Jsou to binarnidata, takze si je musis prevest na dekadickou soustavu. K tomu by mela slouzit funkce bindec() , ale me to s ni nefungovalo, takze muj kod byl nasledujici:


Kód:
$worlddat=file_get_contents("world.dat"); 

For($i=0;$i<1001;$i++){
   For($j=0;$j<1001;$j++){
     
     $c=hexbin(bin2hex($worlddat[$i+1000*$j]));
     //Zde by byl nejaky kod, co s tim aktualnim x udelas. Viz.dole.
     
   }
}


Pozn.: Ten cyklus udela 1 milion kroku - takze to radsi nezkousej spustit. Musis si to upravit podle souradnic.
Nevim proc, ale primo funkce bindec() nefungovala, tak jsem to presunul pres hexadecimalni soustavu. Z binarni do sestnactkove a z sestnactkove do desitkove....
 

DeletedUser2029

Guest
... Jde to. Jsou to binarnidata, takze si je musis prevest na dekadickou soustavu. ...
Opravdu musíš? Kde to dělal problémy použít rovnou?

Pravda, já jen testuji na světlé a tmavé místo (by mé mapy vypadaly stejně jako mapy ingame), takže nepotřebuji nic extra, ale toto mi funguje:

PHP:
     $c=$worlddat[$i+1000*$j];
     if(ord($c)>3) ...
Aha, já tam mám ord, takže zpět, také nepoužívám rovnou.

EDIT:
P.S.: Běží mi to na windows a případné problémy s /možným chybným automatickým/ převodem LF na CRLF nejsou. Nedojde k /chybnému/ převodu. Takže to považuji za spolehlivé.
 
Naposledy upraveno moderátorem:

DeletedUser7531

Guest
Turgon: S timto formatem jsem se zatim nikde nikdy nesetkal, nevim jak se to zpracovava normalne nebo bezne. Ja jsem postupoval stylem pokus&omyl, tak trochu jsem experimentoval az jsem z toho nakonec ty data vytahal...
 

DeletedUser2029

Guest
Právě se dívám do zdrojáků PHP, zda bude vhodnější ord nebo jinak, když už se tím zabýváme.

"ord" používá convert_to_string_ex a pak vrátí první znak (takže pozor, nestrkat mu tam string více znaků, ale jen znak, jinak zbytečně konvertuje všechny, asi, asi), ale teď musím mimo, takže více nestíhám. Omrknu to odpoledne či večer
 
Nahoru