Technický vylomeniny a vylepšení

Archivovaná témata z neuskutečněného projektu, jehož cílem bylo změnit tvář CzechDnD.
Uživatelský avatar
Pjotr
Strojník
Příspěvky: 532
Registrován: 10. 9. 2001, 00:00
Bydliště: Praha@Zeme / Mirros@Mystara
Kontaktovat uživatele:

Příspěvek od Pjotr » 25. 7. 2004, 12:20

Max: OK, klidně pošli. Ale já vážně myslim že v tomhle případě to nebude vůbec potřeba dělat.

Uživatelský avatar
Pjotr
Strojník
Příspěvky: 532
Registrován: 10. 9. 2001, 00:00
Bydliště: Praha@Zeme / Mirros@Mystara
Kontaktovat uživatele:

Příspěvek od Pjotr » 25. 7. 2004, 16:16

Max: jaký máš zkušenosti s používáním jednoho cookie pro víc stránek? Chtěl bych takhle propojit nové stránky s forem, aby stačilo jedno přihlášení.

Uživatelský avatar
Sylvaen
Příspěvky: 916
Registrován: 13. 5. 2004, 11:34
Bydliště: Blaen bHóirne@Merian, Svaekke@Arlan, Romhäryl@Fiery Halls, Praha@Země
Kontaktovat uživatele:

Příspěvek od Sylvaen » 25. 7. 2004, 22:25

Pjotr píše:Max: jaký máš zkušenosti s používáním jednoho cookie pro víc stránek? Chtěl bych takhle propojit nové stránky s forem, aby stačilo jedno přihlášení.
Neni problem tohle udelat.
Mezi atributy cookie je DOMAIN, cili atribut kterej obsahuje cast nebo celou domenu pro kterou se ma odesilat.
Takze kdyz nastavis "" /prazdnou/, bude se odesilat pro vsechny domeny. Kdyz nastavis "czechdnd.cz", bude se odesilat pro vsechna URL a subdomeny czechdnd.cz..
Timeout doporucuju nastavit na "0", cimz se vytvori tzv. per-session cookie, ktera se automaticky vymaze jak skonci relace prohlizece se serverem, pripadne kdyz uzivatel uzavre browser.

Jinak, tip: vyplatilo se mi vzdycky nastavovat cookies primo a ignorovat pofiderni funkce ktere handluji session..

Kód: Vybrat vše

function set_session($source,$session_name) {
 global $init,$cfg,$glob,$_private;
    while(list($key,$val)=each($source)) {
     if($cfg['session_timeout']>0) { $timeout=time()+$glob['session_timeout']; }
                              else { $timeout="0"; }
     if(is_array($val)) {
       while(list($ikey,$ival)=each($val)) {
         if(is_string($ikey)) { setcookie("$session_name[$key][$ikey]",$ival,$timeout,"/","","0"); }
       }
     } else {
       if(is_string($key)) { setcookie("$session_name[$key]",$val,$timeout,"/","","0"); }
     }
   }
}

function unset_session($source,$session_name) {
 global $init,$cfg,$glob,$_private;
    while(list($key,$val)=each($source)) {
     $timeout="-1";
     if(is_array($val)) {
       while(list($ikey,$ival)=each($val)) {
         setcookie("$session_name[$key][$ikey]",FALSE,$timeout,"/","","0");
       }
     } else {
       setcookie("$session_name[$key]",FALSE,$timeout,"/","","0");
     }
   }
}
Tohle je vynatek z kodu ktery jsem napsal jako soucast ZOPE-like aplikacniho serveru nad PHPkem tak pred rokem a pul.
Staci vytvorit pojmenovany array (hash) hodnot, ktere chces nastavit do cookie a zavolat set_session($mujArray,"czechDND"); a ta funkce uz si to procykli a nastavi.
Dodatek, promennou $cfg['session_timeout'] jsem mel nastavenou na 0.
-"What's going on out there!?"
-"Murder. Want some?"
(George Stark in 'The Dark Half', Stephen King)

Uživatelský avatar
Max
Příspěvky: 101
Registrován: 23. 9. 2002, 15:08
Bydliště: Havlíčkův Brod
Kontaktovat uživatele:

Příspěvek od Max » 26. 7. 2004, 09:32

No prakticky vzato bych to přes sušenky vůbec nedělal.
Předpokládám že u PHP budeš používat SESSION proměnný takže v podstatě by se snad dalo do fóra přihlásit i přímo programově. Koukal sem teda jen zběžně na strukturu fora a jeho tabulek ale tohle by snad problém bejt neměl ...
Chcete snad žít věčně ?

Uživatelský avatar
Pjotr
Strojník
Příspěvky: 532
Registrován: 10. 9. 2001, 00:00
Bydliště: Praha@Zeme / Mirros@Mystara
Kontaktovat uživatele:

Příspěvek od Pjotr » 27. 7. 2004, 16:31

OK, to mi pro teď stačí, chtěl jsem jenom vědět, jestli na mě nečeká nějaká záludnost.

Uživatelský avatar
Pjotr
Strojník
Příspěvky: 532
Registrován: 10. 9. 2001, 00:00
Bydliště: Praha@Zeme / Mirros@Mystara
Kontaktovat uživatele:

Příspěvek od Pjotr » 28. 7. 2004, 21:17

Jak to budu nutit ke spolupráci s fórem, tak asi přihlašování a spol. udělám dost podobně jako je tady.

Jak je to s persistentním připojením k MySQL? Slyšel jsem teď ze dvou zdrojů naprosto protichůdný názory, tak bych si potřeboval udělat jasno.

Uživatelský avatar
Max
Příspěvky: 101
Registrován: 23. 9. 2002, 15:08
Bydliště: Havlíčkův Brod
Kontaktovat uživatele:

Příspěvek od Max » 28. 7. 2004, 23:01

viz.
http://php.oregonstate.edu/manual/cs/fe ... ctions.php

Myslim že tohle nebude tak žhavý aby se musely dělat trvalý připojení. To bych ten čas spíš pak věnoval nějaký optimalizaci tabulek či scriptů což přinese podle mě lepší výsledky.
Chcete snad žít věčně ?

Uživatelský avatar
Sylvaen
Příspěvky: 916
Registrován: 13. 5. 2004, 11:34
Bydliště: Blaen bHóirne@Merian, Svaekke@Arlan, Romhäryl@Fiery Halls, Praha@Země
Kontaktovat uživatele:

Příspěvek od Sylvaen » 29. 7. 2004, 10:51

Max píše:Myslim že tohle nebude tak žhavý aby se musely dělat trvalý připojení. To bych ten čas spíš pak věnoval nějaký optimalizaci tabulek či scriptů což přinese podle mě lepší výsledky.
Souhlas.. :-) Perzistentky jsou taková "možnost poslední záchrany", když už nemůžeš pro zrychlení udělat nic jinýho.. a spousta adminů to vůbec nevidí rádo..
-"What's going on out there!?"
-"Murder. Want some?"
(George Stark in 'The Dark Half', Stephen King)

Uživatelský avatar
Sylvaen
Příspěvky: 916
Registrován: 13. 5. 2004, 11:34
Bydliště: Blaen bHóirne@Merian, Svaekke@Arlan, Romhäryl@Fiery Halls, Praha@Země
Kontaktovat uživatele:

Příspěvek od Sylvaen » 13. 8. 2004, 10:12

Hm, ehm.. nedávno si tu na fórech kdosi posteskl že na žádném webu neexistuje trochu systémovější podpora pro online RPG (Play By Post)..
Takže jsem se toho chopil, a pohleďte..
Drobná vychytávka, kterou jsem vymyslel.. v tuto chvíli je to ve verzi 0.1, čili hluboký pravěk.. ale dělám na tom, a programuju back-end na PHP a MySQL, takže by Pjotr nemusel mít eventuelně tolik komplikací s integrováním do nového CzechDnD...

Návod: Stačí kliknout na místo kam chcete aby vaše postava šla, případně na předmět který má vzít.
Všechno je to psané v JavaScriptu (DHTML), takže kompatibilita prohlížečů není problém.

Vaše názory..?

gMUD[geek MultiUser Dungeon] (c)2004 Sylvaen

P.S. Vím že to má ještě řadu chyb a nedostatků, ale na vývoji se pracuje rapidním tempem.. tohle mi zabralo "pouhé" dva večery..
-"What's going on out there!?"
-"Murder. Want some?"
(George Stark in 'The Dark Half', Stephen King)

Uživatelský avatar
Vlasák
Administrátor
Příspěvky: 1419
Registrován: 7. 12. 2001, 00:00
Bydliště: Praha
Kontaktovat uživatele:

Příspěvek od Vlasák » 15. 8. 2004, 11:09

Sylvaen: paráda, získal jsem 50 zlatých a pak skončil v nějaký slepý uličce 8)
připomínka #1 (další třeba přídou :wink: ) - chtělo by to centrovat mapu na toho panáka. Aspoň v 800x600 se mi často stávalo, že nevidim "dopředu", kam jdu, ale za to mám nadhárnej rozhled přes celý okno na místa, z nichž jsem přišel.
Infinity forever! - Baldur's Gate II add-on CZ
Portál do světa RPG - Sigil.cz


Obrázek

Uživatelský avatar
Sylvaen
Příspěvky: 916
Registrován: 13. 5. 2004, 11:34
Bydliště: Blaen bHóirne@Merian, Svaekke@Arlan, Romhäryl@Fiery Halls, Praha@Země
Kontaktovat uživatele:

Příspěvek od Sylvaen » 15. 8. 2004, 15:49

Vlasák píše:Sylvaen: paráda, získal jsem 50 zlatých a pak skončil v nějaký slepý uličce 8)
připomínka #1 (další třeba přídou :wink: ) - chtělo by to centrovat mapu na toho panáka. Aspoň v 800x600 se mi často stávalo, že nevidim "dopředu", kam jdu, ale za to mám nadhárnej rozhled přes celý okno na místa, z nichž jsem přišel.
Yoyo.. to byla verze nula-nula-prd a ještě k tomu hluboce pravěká.. :)
Včera jsem tomu věnoval celý den, a kompletně jsem vyhodil celé jádro té aplikace.. zjistil jsem že tak jak to bylo napsaný, to nepodporovalo víc postaviček. Jejich pohyby se navzájem rušily a vyhazovalo to spoustu chyb..
Takže jsem to přepsal, naprogramoval celou novou Class, a už to frčí. Dokonce se dají předskriptovávat NPCčka, takže tam chodí a mluví na tebe a přechází z místnosti do místnosti... ;)
Centrování mapy už je taky vyřešený.. tou Class (GCharacter) se toho hodně vyřešilo, včetně centrování. Teď má každá postava své jméno, rychlost pohybu, unikátní obrázek, zobrazují se u ní ikonky jestli mluví nebo právě odchází z místnosti atd.. taky jsem vylepšil to, že se tam nová postava může objevit kdykoliv v průběhu hry (takže tam její obrázek nemusí být někde celou dobu schovaný) atd, atd.. :)

Teď k tomu připisuju další classy, pro projektily (např. vrhání kouzel, střelba z luku a kuše, atd.), pro předměty (viz těch 50 zlatejch) atd.. příští víkend mizím na 14 dní na dovolenou a z bezpečnostních důvodů nechám počítač doma, takže bych do té doby chtěl mít aspoň ty projektily a předměty napsaný.. uff. :)

Zatím jsem to neupdatoval na web, mám to jen tady u sebe.. ale v týdnu to tam dám a můžete se na to mrknout. :)
-"What's going on out there!?"
-"Murder. Want some?"
(George Stark in 'The Dark Half', Stephen King)

Uživatelský avatar
Markus
Vrchní krutovládce; Administrátor
Příspěvky: 14438
Registrován: 19. 8. 2001, 00:00
Bydliště: Mnohovesmír! Brno!
Kontaktovat uživatele:

Příspěvek od Markus » 18. 8. 2004, 18:13

Sylvaen: :clap: Jsem zvědavej, co se z toho nakonec vyklube, ale zatim moc pěkný :wink:

Uživatelský avatar
Sylvaen
Příspěvky: 916
Registrován: 13. 5. 2004, 11:34
Bydliště: Blaen bHóirne@Merian, Svaekke@Arlan, Romhäryl@Fiery Halls, Praha@Země
Kontaktovat uživatele:

Příspěvek od Sylvaen » 18. 8. 2004, 18:39

Markus píše:Sylvaen: :clap: Jsem zvědavej, co se z toho nakonec vyklube, ale zatim moc pěkný :wink:
Díky.. :D Už je nová verze: http://gmud.powered.cz
Záznamy o změnách a updatech najdete na http://blog.powered.cz

V téhle chvíli jsou hotové classy pro postavy, umožňuje to vícevrstvé sprity, takže postava může v jednu chvíli držet zbraň, štít a ještě něco povídat (všechno se zobrazuje ikonkama, jen zbraně budou jakoby skutečná velikost), dají se sbírat předměty, upravil jsem vytváření podlahy takže i na podlahu se dají přihodit modifikátory (např. stůl, krvavé fleky po souboji atd.)..
Mám tam napsanou jednoduchou podporu pro předskriptované sekvence (boti) a hodlám si nadeklarovat vlastní skriptovací formát aby se daly ošetřit různé události...

Uff.. :) Jak vidíte, mé večery jsou rušné.. :)


P.S. Kenny tam plká ptákoviny, ale aspoň to ukazuje že se dá předskriptovat i komunikace.. :)
-"What's going on out there!?"
-"Murder. Want some?"
(George Stark in 'The Dark Half', Stephen King)

Uživatelský avatar
Vlasák
Administrátor
Příspěvky: 1419
Registrován: 7. 12. 2001, 00:00
Bydliště: Praha
Kontaktovat uživatele:

Příspěvek od Vlasák » 30. 8. 2004, 00:42

BTW Pjotr: jak jsi daleko s developmentem? 8)
Infinity forever! - Baldur's Gate II add-on CZ
Portál do světa RPG - Sigil.cz


Obrázek

Uživatelský avatar
Pjotr
Strojník
Příspěvky: 532
Registrován: 10. 9. 2001, 00:00
Bydliště: Praha@Zeme / Mirros@Mystara
Kontaktovat uživatele:

Příspěvek od Pjotr » 4. 9. 2004, 01:43

Na preview se můžete podívat na reloaded.czechdnd.cz/index.php

Dostat to tam mi zabralo víc času než jsem čekal, takže o tom víc psát nebudu a radši půjdu spát...

Zamčeno

Zpět na „CzechDnD Reloaded“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host