<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Noova.pl blog &#187; via www</title>
	<atom:link href="http://noova.pl/blog/index.php/category/gry/via-www/feed/" rel="self" type="application/rss+xml" />
	<link>http://noova.pl/blog</link>
	<description>Programmer is an organism that turns coffee into software.</description>
	<lastBuildDate>Thu, 12 Aug 2010 04:48:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>How it&#8217;s made: Bank</title>
		<link>http://noova.pl/blog/index.php/2009/10/17/how-its-made-bank/</link>
		<comments>http://noova.pl/blog/index.php/2009/10/17/how-its-made-bank/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 17:35:00 +0000</pubDate>
		<dc:creator>matergames</dc:creator>
				<category><![CDATA[gry]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programowanie]]></category>
		<category><![CDATA[via www]]></category>
		<category><![CDATA[The Godfather Online]]></category>

		<guid isPermaLink="false">http://noova.pl/blog/index.php/2009/10/17/how-its-made-bank/</guid>
		<description><![CDATA[Tak, trywialne, ale może i się przyda Sugestie mile widziane ^_^ A więc &#8211; pisanie banku w grze. Dodajemy sobie pole bank oraz bank_time do tabeli z graczami. bank będzie przechowywał gotówkę gracza a bank_time ostatni update odsetek (zakładamy, że gracz dostaje 3% swojej gotówki co 24h) ///Przy okazji &#8211; muszę przepisać od nowa system [...]]]></description>
			<content:encoded><![CDATA[<p>Tak, trywialne, ale może i się przyda <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Sugestie mile widziane ^_^</p>
<p>A więc &#8211; pisanie banku w grze.</p>
<p>Dodajemy sobie pole bank oraz bank_time do tabeli z graczami.</p>
<p>bank będzie przechowywał gotówkę gracza a bank_time ostatni update odsetek (zakładamy, że gracz dostaje 3% swojej gotówki co 24h)</p>
<p>///Przy okazji &#8211; muszę przepisać od nowa system banku w TGO, bo jest tak stary, że pisany wręcz tragicznie <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Zaczynamy! <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$p</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'bank_time'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">//$p to tablica z pobranymi danymi gracza</span>
  <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;UPDATE `players` SET `bank_time` = UNIX_TIMESTAMP() WHERE `id`='<span style="color: #006699; font-weight: bold;">$p[id]</span>'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$p</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'bank'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">!=</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">//Jeśli gracz ma coś w banku</span>
  <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #000088;">$p</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'bank_time'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">86400</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
   <span style="color: #666666; font-style: italic;">//Jeśli ostatni update był ponad 24h temu</span>
   <span style="color: #000088;">$p</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'bank'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+=</span> <span style="color: #990000;">floor</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #000088;">$p</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'bank_time'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">86400</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color:#800080;">0.03</span><span style="color: #339933;">*</span><span style="color: #000088;">$p</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'bank'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
   <span style="color: #666666; font-style: italic;">//Obliczamy ile kasy w banku ma teraz gracz</span>
   <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;UPDATE `players` SET `bank` = '<span style="color: #006699; font-weight: bold;">$p[bank]</span>', `bank_time` = UNIX_TIMESTAMP() WHERE `id`='<span style="color: #006699; font-weight: bold;">$p[id]</span>'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span></pre></div></div>

<p>Mam nadzieję, że się nigdzie nie pomyliłem, ja to z palca piszę <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /><br />
Czyli mamy już odsetki, teraz zajmiemy się wyjmowaniem i deponowaniem pieniędzy.</p>
<p>Przelewy są opcjonalne i nie będę ich teraz brał pod uwagę, warto zaznaczyć jednak, żeby zrobić limit lvl od którego można robić przelewy,<strong>jeśli</strong> gracz dostaje pieniądze na start.</p>
<p>Dlaczego?<br />
Ano, bo pozakłada sobie 10 kont, z każdego po dajmy na to 150$ prześle i już ma 1500$ dodatkowo <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Wstawiamy sobie dwa formularze &#8211; action=POST, sposób w jaki przekażecie typ operacji nie jest zbytnio ważny, może to być ukryte pole, a może to być tylko jeden formularz ale za to z radio buttonem do wyboru akcji &#8211; to już zostawiam wam.<br />
Ja opiszę na przykładzie ukrytego pola w formularzu o nazwie op &#8211; 0 będzie oznaczało wypłatę o 1 wpłatę <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'op'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">0</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'cash'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">//Jeśli formularz został wysłany</span>
<span style="color: #000088;">$cash</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'cash'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//Filtrujcie wszystkie zmienne pochodzące od gracza, tyle to za mało.</span>
<span style="color: #666666; font-style: italic;">//To jest tylko mini-poradnik, więc nie robię wszystkiego za was :D</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cash0</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$p</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'bank'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #000088;">$cash</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">//Sprawdzamy, czy taką kwotę da się wypłacić</span>
<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;UPDATE `players` SET `bank`= `bank` - <span style="color: #006699; font-weight: bold;">$cash</span>,`kasa`=`kasa`+<span style="color: #006699; font-weight: bold;">$cash</span> WHERE `id`='<span style="color: #006699; font-weight: bold;">$p[id]</span>'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'op'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'cash'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">//Jeśli formularz został wysłany</span>
<span style="color: #000088;">$cash</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'cash'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//Filtrujcie wszystkie zmienne pochodzące od gracza, tyle to za mało.</span>
<span style="color: #666666; font-style: italic;">//To jest tylko mini-poradnik, więc nie robię wszystkiego za was :D</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cash0</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$p</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'kasa'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #000088;">$cash</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">//Sprawdzamy, czy taką kwotę da się wypłacić</span>
<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;UPDATE `players` SET `kasa`= `kasa` - <span style="color: #006699; font-weight: bold;">$cash</span>,`bank`=`bank`+<span style="color: #006699; font-weight: bold;">$cash</span> WHERE `id`='<span style="color: #006699; font-weight: bold;">$p[id]</span>'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Wszelkie informacje o gracza o pomyślnym lub też nie wykonaniu operacji pozostawiam wam, gdyż to nie wymaga specjalnych umiejętności <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /><br />
To byłoby na tyle w dzisiejszym How It&#8217;s made, zapraszam do następnego odcinka który ukarze się <em>nie wiadomo kiedy</em> <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /><br />
Jeśli gdzieś zrobiłem błąd to napiszcie w komentarzach <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://noova.pl/blog/index.php/2009/10/17/how-its-made-bank/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How it&#8217;s made: zapowiedź</title>
		<link>http://noova.pl/blog/index.php/2009/10/04/how-its-made-zapowiedz/</link>
		<comments>http://noova.pl/blog/index.php/2009/10/04/how-its-made-zapowiedz/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 18:26:00 +0000</pubDate>
		<dc:creator>matergames</dc:creator>
				<category><![CDATA[The Godfather Online]]></category>
		<category><![CDATA[gry]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programowanie]]></category>
		<category><![CDATA[via www]]></category>

		<guid isPermaLink="false">http://noova.pl/blog/index.php/2009/10/04/how-its-made-zapowiedz/</guid>
		<description><![CDATA[Oto, wszem i wobec zapowiadam nową serię wpisów na blogu, gdzie będę krok po kroku (może nie jak dla totalnego laika) wyjaśniał jak niektóre rzeczy w TGO są zrobione i jak napisać taki skrypt Jeszcze nie wiem, czy będzie to regularnie w jakieś dni, dzisiaj tylko zapowiedź bo i z Rytra wracałem i się z [...]]]></description>
			<content:encoded><![CDATA[<p>Oto, wszem i wobec zapowiadam nową serię wpisów na blogu, gdzie będę krok po kroku (może nie jak dla totalnego laika) wyjaśniał jak niektóre rzeczy w TGO są zrobione i jak napisać taki skrypt <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Jeszcze nie wiem, czy będzie to regularnie w jakieś dni, dzisiaj tylko zapowiedź bo i z Rytra wracałem i się z Kasyx&#8217;em na mieście widziałem i jeszcze muszę na jutro jedną rzecz napisać, także czasu mam mało ;p</p>
]]></content:encoded>
			<wfw:commentRss>http://noova.pl/blog/index.php/2009/10/04/how-its-made-zapowiedz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zanim założysz projekt gry&#8230;</title>
		<link>http://noova.pl/blog/index.php/2009/05/25/zanim-zalozysz-projekt-gry/</link>
		<comments>http://noova.pl/blog/index.php/2009/05/25/zanim-zalozysz-projekt-gry/#comments</comments>
		<pubDate>Mon, 25 May 2009 16:02:00 +0000</pubDate>
		<dc:creator>Kasyx</dc:creator>
				<category><![CDATA[gry]]></category>
		<category><![CDATA[via www]]></category>

		<guid isPermaLink="false">http://noova.pl/blog/index.php/2009/05/25/zanim-zalozysz-projekt-gry/</guid>
		<description><![CDATA[Wszyscy mają jakieś marzenia (no większość, ale uogólniając&#8230;). Jedni marzą o locie w kosmos, inni o o szybkim samochodzie. Dziś chciałem się skupić na marzeniach związanych z tworzeniem gier. Skupię się na grach via www, ale problem można uogólnić do każdego rodzaju takich produkcji. Sam doskonale wiem jak świetną rzeczą jest założyć projekt występować w [...]]]></description>
			<content:encoded><![CDATA[<p>Wszyscy mają jakieś marzenia (no większość, ale uogólniając&#8230;). Jedni marzą o locie w kosmos, inni o o szybkim samochodzie. Dziś chciałem się skupić na marzeniach związanych z tworzeniem gier. Skupię się na grach via www, ale problem można uogólnić do każdego rodzaju takich produkcji. Sam doskonale wiem jak świetną rzeczą jest założyć projekt występować w nim jako szef wszystkich szefów. To jest szczyt marzeń z kategorii tworzenia gier, nic więc dziwnego, że większość twórców od razu chce zostać tym wymarzonym administratorem.</p>
<p>No i tu powstaje problem&#8230; Ogromna ilość gier (a najczęściej projektów, które KIEDYŚ miałyby spłodzić grę) pada w trybie prawie natychmiastowym. Dlaczego? Czasem drobne problemy przeróżnej natury powodują, że twórcy się cała zabawa po prostu nudzi. No to jest skrajnie żałosne i niestety dla takich ludzi nie przewiduję ratunku. Jedyna nadzieja, że nie wrócą oni na arenę gier via www w przyszłości. Ale o zgrozo zdarzają się i tacy, co okresowo próbują swoich sił cały czas &#8222;padając&#8221; na tym samym lub podobnym błędzie. No cóż, pozostawię to bez komentarza.</p>
<p>Przejdźmy lepiej do meritum sprawy i postawmy sobie pytanie: <strong>Czy powinienem założyć projekt gry?</strong><br />Każdy, kto zakłada grę ma na nią pomysł. Ale to na pewno nie wystarczy! I zapamiętajcie sobie, że pomysł gry jeszcze nie czyni. Jest on fundamentem gry, ale to stanowczo za mało. Po pierwsze ważny jest fakt, jak dobry jest ten pomysł. Jeśli ma to być kolejne The Crims, Ogame czy Vallheru&#8230; Darujcie sobie. Naprawdę nie ma sensu. Te gry mają już swoje hity i musielibyście zrobić coś naprawdę dobrego, aby się wybić. A jeśli macie umiejętności, które Wam to umożliwią to raczej idźcie w coś nowego. Szkoda zmarnowanej energii.<br />Więc co jest najważnijesze, jeśli nie pomysł? <strong>Autorytet</strong>, z wszelkimi sekretami kryjącymi się pod tym słowem. Jeśli chcecie być administratorem projektu, Wasi ludzie muszą Was szanować i innej opcji nie ma. To jest kolejny problem wielu projektów: gry zakłada byle kto, bez najmniejszego doświadczenia. Nie tędy droga! Takie projekty już na wstępie skazane są na porażkę. Projekt to nic innego jak zarządzanie pewną grupą ludzi. To tak samo, jakby każdy zakładał sobie państwo i był samozwańczym królem. To nie ma głębszego sensu. Przywódca musi mieć w sobie to <strong>coś</strong> co ciągnie za nim ludzi i zachęca do działania. Jak zbudować ten autorytet? Są dwie drogi:<br />- <strong>pieniądze</strong> &#8211; jak płacisz teamowi, to jesteś szanowany i ludzie chętnie za Tobą pójdą, bo mają z tego oczywiste korzyści. Tu nawet nie ma co dyskutować. Jak masz kasę, to zrobisz wszystko i kupisz (prawie) wszystkich. Brzmi to brutalnie no ale tak to już jest.<br />- <strong>wiedza i doświadczenie</strong> &#8211; te prawie zawsze idą w parze. Według mnie są o wiele silniejszym autorytetem bo wzbudzają jednocześnie szacunek do administratora. Przy tworzeniu gier tą wiedzą będzie oczywiście bardzo dobra znajomość php, natomiast doświadczeniem inne projekty, które zakończyły się sukcesem (skrajną głupotą jest sie chwalić, że miało się 100 gier i każda padła! Liczą się tylko sukcesy!). Taki autorytet zapewnia bezpieczeństwo. Team wtedy wie, że ma nad sobą osobę kompetentną, na której można polegać.</p>
<p>I to jest właśnie istota problemu! Jak chcesz założyć grę to zastanów się najpierw nad sobą i odpowiedz na pytanie: czy ja się do tego nadaję? Czy mam wiedzę, doświadczenie albo kasę? Jeśli uzyskasz odpowiedź twierdzącą to jesteś na dobrej drodze aby stworzyć dobry projekt.<br />Jeśli jednak nie&#8230; To zaciągnij się do innych projektów, których jest od groma. Tam zyskasz potrzebną wiedzę i doświadczenie. Zobaczysz jak robią to inni i nauczysz się kilku przydatnych technik. Nie od razu Rzym zbudowano, więc idź do przodu małymi i systematycznymi krokami a nim się obejrzysz to sam będziesz na czele projektu, który to być może odmieni nasze spojrzenie na gry via www.</p>
<p>Pozdrawiam<br />Kasyx</p>
]]></content:encoded>
			<wfw:commentRss>http://noova.pl/blog/index.php/2009/05/25/zanim-zalozysz-projekt-gry/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mini poradnik dla początkujących &#8222;twórców gier&#8221;</title>
		<link>http://noova.pl/blog/index.php/2009/05/23/mini-poradnik-dla-poczatkujacych-tworcow-gier/</link>
		<comments>http://noova.pl/blog/index.php/2009/05/23/mini-poradnik-dla-poczatkujacych-tworcow-gier/#comments</comments>
		<pubDate>Sat, 23 May 2009 10:51:00 +0000</pubDate>
		<dc:creator>matergames</dc:creator>
				<category><![CDATA[gry]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programowanie]]></category>
		<category><![CDATA[via www]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://noova.pl/blog/index.php/2009/05/23/mini-poradnik-dla-poczatkujacych-tworcow-gier/</guid>
		<description><![CDATA[To zrozumiałe, że wiele osób chce zrobić własną grę via www i nie ma w tym nic złego.(Na wstępie jeszcze radze przeczytać wpis nt. problemu polskiej sceny tegóż to typu gier, na tym blogu) .Nie jest to how-to, ilustrujące krok po kroku proces tworzenia gry, ale generalne wytyczne dla ludzi, którzy chcą się tą dziedziną [...]]]></description>
			<content:encoded><![CDATA[<p>To zrozumiałe, że wiele osób chce zrobić własną grę <em>via www</em> i nie ma w tym nic złego.<br />(Na wstępie jeszcze radze przeczytać wpis nt. problemu polskiej sceny tegóż to typu gier, na tym blogu) .<br />Nie jest to how-to, ilustrujące krok po kroku proces tworzenia gry, ale generalne wytyczne dla ludzi, którzy chcą się tą dziedziną zajmować.<br />Zanim jeszcze zabierzemy się do nauki czegokolwiek, warto zadać sobie pytanie czy naprawdę to jest to co chcemy robić? Czy nie jest to tylko zachcianka? Słomiany zapał i gry via www to złe połączenie..<br /><strong>Musicie</strong> wbić sobie do głowy, że stworzenie gry, w którą grać będą nie tylko znajomi, nie polega na postawieniu gotowego silnika i <em>jaraniu się super-pro-uber </em>kontem admina.<br />Dobrze, wiemy już, że bez nauki html,css,php i ewentualnie js ani rusz.<br />Ale zanim do tego przejdziemy, zastanówcie się, czy znacie język polski.<br />Nie, nie żartuję.<br />Jeśli podczas tworzenia gry napotkacie problem, a na forum napiszecie &#8222;nie ciaua mi gra, pomuszcie!!!&#8221; to raczej nikt wam nie pomoże.<br />Tak samo, gracze wchodzący na główną stronę i widzący same błędy ortograficzne, stylistyczne i gramatyczne, raczej niezbyt chętnie zarejestrują się w waszej grze.<br />Nie wymagam umiejętności pisania 500 stronnicowych esejów, sam też czasem zrobię  jakiś błąd, ale nie 3 byki w 2 wyrazach..<br />Skoro umiemy już się wysławiać, możemy iść dalej <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <br />Teraz pytanie &#8211; kupujemy książkę, czy czytamy kursy.<br />Powiem tak &#8211; nt. kursów mam nieco mieszane odczucia, sam uczyłem się z książki niemniej jednak, osobom które niezbyt mogą w danym momencie wydać 100zł na np. świetną moim zdaniem książkę Helionu &#8222;PHP5 i MYSQL &#8211; Biblia&#8221; (<em>o tym, że komuś nie chce się czytac 1000 stron, nie chcę nawet slyszeć, lenistwo to największy problem młodych twórców gier</em>) polecam <a href="http://www.mmocenter.pl/f22-php-mysql/php-kursy-php-89.html">temat na mmocenter</a> i oczywiście <a href="http://www.php.net/manual/pl/">manuala</a> <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <br />Jeśli np. nie wiemy, co dana funkcja robi, warto zajrzeć na powyższą stronę <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Jest tam też FAQ i właściwie wszystko co byście chcieli wiedzieć, bez php.net czasami ani rusz <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> <br />Oczywiście, zanim php to html i css.<br />Tutaj to uczyłem się sam, już nawet nie pamiętam jak, ale z dobrych kursów jest <a href="http://kurshtml.boo.pl">ten</a>.<br />I na koniec kilka małych porad co do pisania w php <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> 
<ul>
<li>Wcięcia &#8211; łatwiej będzie Ci potem czytać kod</li>
<li>Normalne nazwy zmiennych &#8211; nie trzeba potem szukać w całym kodzie co zmienna $xd przechowuje</li>
<li>Porządek w plikach &#8211; folder &#8222;dupa&#8221; może i wydać się sensowny teraz, ale za pare tygodni będziesz przeglądał w nim pliki, żeby dojść do tego, co on tam w ogóle robi</li>
<li?Nie pakuj wszystkiego w funkcje - ok, przydają się i jak najbardziej należy ich używać, ale niektórzy przesadzają dając funkcję error(), która nie robi nic innego jak echo z komunikatem..</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://noova.pl/blog/index.php/2009/05/23/mini-poradnik-dla-poczatkujacych-tworcow-gier/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Problem polskiej sceny gier via www</title>
		<link>http://noova.pl/blog/index.php/2009/04/23/problem-polskiej-sceny-gier-via-www/</link>
		<comments>http://noova.pl/blog/index.php/2009/04/23/problem-polskiej-sceny-gier-via-www/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 15:43:00 +0000</pubDate>
		<dc:creator>matergames</dc:creator>
				<category><![CDATA[bezedury matergamesa]]></category>
		<category><![CDATA[free-time]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[via www]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://noova.pl/blog/index.php/2009/04/23/problem-polskiej-sceny-gier-via-www/</guid>
		<description><![CDATA[Uwaga: Będzie trochę o kotletach, książkach i jak zwykle parę moich herezji Od jakiegoś czasu obserwuje sobie co dzieje się na polskiej scenie gier via www. Generalnie (pomijając projekty typu Lunaroth, w których autorzy naprawdę wprowadzają coś nowego, a ostatnio w ogóle tworzą własny silnik) to dużo gier opiera się na starych, zabugowanych, dziurawych skryptach [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: orange;">Uwaga: Będzie trochę o kotletach, książkach i jak zwykle parę moich herezji <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </span><br />
Od jakiegoś czasu obserwuje sobie co dzieje się na polskiej scenie gier via www.<br />
Generalnie (<span style="font-style: italic;">pomijając projekty typu Lunaroth, w których autorzy naprawdę wprowadzają coś nowego, a ostatnio w ogóle tworzą własny silnik</span>) to dużo gier opiera się na starych, zabugowanych, dziurawych skryptach typu Vallheru,Ugamela czy XNova.<span id="more-29"></span><br />
Już nawet nie jest złe to, że te silniki się wykorzystuje, ale to, że &#8222;admini&#8221; tych &#8222;gier&#8221; nie wprowadzają żadnych zmian do silnika a na pytanie &#8222;Czy znasz php?&#8221; odpowiadają &#8222;A co to??&#8221;..<br />
<span style="font-weight: bold;">Wiele osób myśli</span>, że nie potrafiąc napisać w php Hello World, lub znając może ze 3 funkcje zrobią super-mega-hiper grywalną grę w której zarejestrują się miliony.<br />
Mówiąc delikatnie, to zwykły <span style="font-style: italic;">bullshit</span>.<br />
Przyznam się &#8211; jak jeszcze znałem tylko HTML i CSS to stwierdziłem, że może fajnie będzie założyć sobie grę.<br />
Nieświadomy zła, które czynie, sięgnąłem po Vallheru.<br />
Wgrałem, obejrzałem i wywaliłem.<br />
Stwierdziłem, że nie chce mi się zbytnio uczyć php, ale na takim czymś to ja gry nie postawie, nie ma mowy.<br />
Akurat odbywały się wtedy targi książki w Krakowie.<br />
Wybrałem się tam, podszedłem do stoiska Helionu i zakupił opasłe tomisko (1000 stron z hakiem z tego co pamiętam) o nazwie <span style="font-weight: bold;">PHP5 i MYSQL &#8211; Biblia</span>.<br />
Zacząłem sobie czytać, na początku z lekką niechęcią, ale z kolejnymi stronami pochłaniało mnie to coraz bardziej.<br />
Nim się obejrzałem, książkę przeczytałem.<br />
Ruszyłem więc do praktyki.<br />
Zainstalowałem sobie (wtedy na WinXp) AppSrv i zacząłem bawić się prostymi skryptami.<br />
Pisałem, pisałem i jakoś o tej grze zapomniałem.<br />
Dobra, nie przynudzając &#8211; w końcu nauczyłem się w miarę dobrze php, mysql jakoś ogarniałem i siadłem do wersji pierwszej TGO.<br />
Dzisiaj projekt jest już dość rozwinięty.<br />
<span style="color: red;">Nie sugerujcie się czasem pisania tej wersji TGO, bo tak naprawdę grę można napisać w miesiąc, ale poświęcając dziennie na to przynajmniej z 6h.</span><br />
Ja niestety takiej możliwości nie mam, czasem nie jestem w stanie zdobyć 30minut dziennie, więc prace idą jak idą.</p>
<p>Jak widzę kolejną reklamę &#8222;Nasza super gra, zarejesrtój siem, nie porzałójesz!!!!!!!!!! pierfsze 3 osoby dostanom adma!!!!!!!&#8221; (jakby co &#8211; błędy oczywiście zamierzone..) to mam wrażenie, że mi zaraz coś się stanie i wy&#8230;rzucę monitor za okno.</p>
<p>Tak samo jeśli reklama jakiejś gry zaczyna się od słów &#8222;To coś jak&#8221; to od razu zamykam kartę i idę po szklankę whisky. Rynek jest wypełniony kiepskiej jakości plagiatami innych gier.<br />
Tworzenie kolejnego to tak samo durny pomysł jak leczenie bólu głowy uderzaniem się młotkiem w stopę. Jeśli Twoja gra ma być dobra, to musi być unikalna! Można by powiedzieć, że jestem hipokrytą bo gier gangsterskich jest w ch.. ekhm, bardzo dużo.<br />
I tu się mylicie &#8211; nasza gra opiera się na Ojcu Chrzestnym i nie chcemy w niej graczy, którzy tego nie widzieli, lub nie czytali. To ma być klimatyczna gra, a nie kolejny nudny klikacz. Poza tym akcja dzieje się w 1945r w Nowym Yorku i nie polega na szpanowaniu brykami <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><br />
I jeśli myślisz, że Twoja Ugamela będzie tak dobra jak Ogame, to uwierz, mylisz się strasznie.<br />
Odgrzewany kotlet nie jest już taki dobry.. (co przypomina mi, że obiadu nie jadłem xP)</p>
<p>Jeśli konieczne chcesz mieć jakiś udział w robieniu gry a nie chcesz się uczyć php, to zawsze pozostają tekściarze,graficy i support. Ale nie oczekuj, że możesz się opierdalać a i tak potem zostać uwieczniony w credistach. Nikt nie jest głupi i musisz coś zrobić dla gry. A &#8222;coś&#8221; to nie podanie pomysłu na układ menu, musisz mieć naprawdę duży wkład w tworzenie gry.<br />
I to, że masz pomysł na grę to nie oznacza, że jest dobry, ani to, że ktoś go zrealizuje.<br />
Ludzie mają swoje własne pomysły, a już totalnie bezczelne jest oczekiwanie, że poda się pomysł, potem przez całą fazę produkcji nic nie będzie się robić a na koniec domagać się head admina.<br />
A więc, dla ludzi, którzy i tak pewnie zescrollowali tutaj i dla tych co jednak wytrwali:</p>
<ul>
<li>Vallheru <span style="font-weight: bold;">to nie jest skrypt typu postaw-graj</span>, to tylko może być podstawa, do przerobienia!</li>
<li>Nie znasz php? To zapraszam jak już się nauczysz, bez tego gry nie zrobisz.</li>
<li>Gra powinna być unikalna &#8211; plagiaty to zło.</li>
<li>Jeśli nie chcesz się nauczyć php to postaraj przydać się jakoś inaczej przy projekcie</li>
<li>Musisz coś w teamie robić, nikt nie lubi bumelantów</li>
<li>Raczej nikt nie zrobi dla Ciebie gry i potem pozwoli się pod tym podpisać Tobie</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://noova.pl/blog/index.php/2009/04/23/problem-polskiej-sceny-gier-via-www/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Tgo i zaproszenia</title>
		<link>http://noova.pl/blog/index.php/2009/04/04/tgo-i-zaproszenia/</link>
		<comments>http://noova.pl/blog/index.php/2009/04/04/tgo-i-zaproszenia/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 13:20:00 +0000</pubDate>
		<dc:creator>matergames</dc:creator>
				<category><![CDATA[The Godfather Online]]></category>
		<category><![CDATA[free-time]]></category>
		<category><![CDATA[gry]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[via www]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://noova.pl/blog/index.php/2009/04/04/tgo-i-zaproszenia/</guid>
		<description><![CDATA[Postanowiłem dzisiaj włączyć rejestracje do BETY TGO &#8211; w końcu jest już bardzo dużo zrobione A więc &#8211; żeby się zarejestrować trzeba zdobyć od osoby już zarejestrowanej kod zaproszenia, który trzeba wpisać potem przy rejestracji.A tak dla próby wygenerowałem 6 3 kodów, które oddaje w wasze (mam nadzieję dobre) ręce.. 6061b15e703b219d8cc874dfac34e9f0 75fda2ffeca7675a5902c5487d97a165 9d2f97d4f1ffe1e35db49103dc76ce86 Zaznaczam, że [...]]]></description>
			<content:encoded><![CDATA[<p>Postanowiłem dzisiaj włączyć rejestracje do BETY TGO &#8211; w końcu jest już bardzo dużo zrobione <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> <br />A więc &#8211; żeby się zarejestrować trzeba zdobyć od osoby już zarejestrowanej kod zaproszenia, który trzeba wpisać potem przy rejestracji.<br />A tak dla próby wygenerowałem <del datetime="2010-01-15T17:58:53+00:00">6</del> 3 kodów, które oddaje w wasze (mam nadzieję dobre) ręce..
<pre>6061b15e703b219d8cc874dfac34e9f0
75fda2ffeca7675a5902c5487d97a165
9d2f97d4f1ffe1e35db49103dc76ce86
</pre>
<p><span style="color:#FF0000">Zaznaczam, że dalej jest to beta i że stoi u mnie, na localu, także nie oczekujcie super-mega-hiper-ekstra prędkości <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  Chociaż, jak na razie z innych kompów dostęp jest w miare szybki, no, pożyjemy &#8211; zobaczymy <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </span><br /><span style="color:green">Kody są jednorazowego użytku</span></p>
]]></content:encoded>
			<wfw:commentRss>http://noova.pl/blog/index.php/2009/04/04/tgo-i-zaproszenia/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Reflinki</title>
		<link>http://noova.pl/blog/index.php/2009/03/17/reflinki/</link>
		<comments>http://noova.pl/blog/index.php/2009/03/17/reflinki/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 16:39:00 +0000</pubDate>
		<dc:creator>matergames</dc:creator>
				<category><![CDATA[gry]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programowanie]]></category>
		<category><![CDATA[via www]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://noova.pl/blog/index.php/2009/03/17/reflinki/</guid>
		<description><![CDATA[W wielu grach występują tzw. &#8222;reflinki&#8221; &#8211; ktoś kliknie na specjalny link to któryś gracz dostaje jakieśtam niewielkie bonusy typu 5$/ileśtam szacunku itp. Przy czym warto ustawić aby dany gracz mógł otrzymać tylko raz na 24h profity od danej osoby. To zabieramy się do roboty Tworzymy sobie taką tabelę w bazie: CREATE TABLE `ref` &#40; [...]]]></description>
			<content:encoded><![CDATA[<p>W wielu grach występują tzw. &#8222;reflinki&#8221; &#8211; ktoś kliknie na specjalny link to któryś gracz dostaje jakieśtam niewielkie bonusy typu 5$/ileśtam szacunku itp.<br />
Przy czym warto ustawić aby dany gracz mógł otrzymać tylko raz na 24h profity od danej osoby.<br />
To zabieramy się do roboty <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Tworzymy sobie taką tabelę w bazie:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #ff0000;">`ref`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`kiedy`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`ip`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`user`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span>
<span style="color: #66cc66;">&#41;</span></pre></div></div>

<p><span style="font-weight: bold;">Kiedy</span> &#8211; to pole odpowiada za czas (time()) &#8211; czyli kiedy dana osoba weszła na ten link<br />
<span style="font-weight: bold;">Ip</span> &#8211; IP delikwenta<br />
<span style="font-weight: bold;">User</span> &#8211; nick/można oczywiście użyć id usera na którego konto wpłyneły profity</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">//Po odpowiednim przefiltrowaniu pobieramy dane gracza z bazy</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$istnieje</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Taki gracz nie istnieje!'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$blad</span><span style="color: #339933;">++;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;logged&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$info</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;login&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Nie mozesz atakowac samego siebie!'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$blad</span><span style="color: #339933;">++;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$blad</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$p</span> <span style="color: #339933;">=</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">86400</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//Czasami w ten sposób można oszukać proxy, ale tylko czasami..</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED_FOR'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000088;">$ip</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_FORWARDED_FOR'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span> <span style="color: #000088;">$ip</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">//Sprawdzamy czy z takiego IP ktoś w ciągu ostatnich 24 godzin wchodził na reflinka tej osoby</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$byl</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$now</span> <span style="color: #339933;">=</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;INSERT INTO ref VALUES ('<span style="color: #006699; font-weight: bold;">$now</span>','<span style="color: #006699; font-weight: bold;">$_SERVER[REMOTE_ADDR]</span>','<span style="color: #006699; font-weight: bold;">$info[0]</span>')&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//Wyświetlamy informacje do usera, mówiącą co właśnie się stało</span>
<span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'{nick gracza} sprzatnął/eła Cię i w dodatku zgarnął/eła 50 dolarów!'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$kasa</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$info</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">50</span><span style="color: #339933;">;</span>
<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;UPDATE players SET kasa=<span style="color: #006699; font-weight: bold;">$kasa</span> WHERE nick='<span style="color: #006699; font-weight: bold;">$info[0]</span>'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span><span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$info</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' załatwił cie w ciagu ostatnich 24 godzin. Tym razem da Ci spokój'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://noova.pl/blog/index.php/2009/03/17/reflinki/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Na szybko: Bezpieczeństwo sesji</title>
		<link>http://noova.pl/blog/index.php/2009/03/12/na-szybko-bezpieczenstwo-sesji/</link>
		<comments>http://noova.pl/blog/index.php/2009/03/12/na-szybko-bezpieczenstwo-sesji/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 20:42:00 +0000</pubDate>
		<dc:creator>matergames</dc:creator>
				<category><![CDATA[gry]]></category>
		<category><![CDATA[na szybko]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programowanie]]></category>
		<category><![CDATA[via www]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://noova.pl/blog/index.php/2009/03/12/na-szybko-bezpieczenstwo-sesji/</guid>
		<description><![CDATA[Na szybko, bo jeszcze muszę coś dla TGO zrobić &#8211; inaczej czuje że albo Oliwier albo ktoś inny by mnie zadźgał ^^A więc dzisiaj pomówimy o małym skrypcie który (przynajmniej trochę) zwiększy bezpieczeństwo od strony użyszkodników. Zaczynajmy if &#40;!isset&#40;$_SESSION&#91;'start'&#93;&#41;&#41;&#123; session_regenerate_id&#40;&#41;; $_SESSION&#91;'start'&#93; = true; $_SESSION&#91;'ip'&#93; = $_SERVER&#91;'REMOTE_ADDR'&#93;; &#125; if&#40;$_SESSION&#91;'ip'&#93; !== $_SERVER&#91;'REMOTE_ADDR'&#93;&#41;&#123; session_regenerate_id&#40;&#41;; unset&#40;$_SESSION&#91;&#34;logged&#34;&#93;, $_SESSION&#91;&#34;nick&#34;&#93;&#41;; &#125;&#60;br /&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Na szybko, bo jeszcze muszę coś dla TGO zrobić &#8211; inaczej czuje że albo Oliwier albo ktoś inny by mnie zadźgał ^^<br />A więc dzisiaj pomówimy o małym skrypcie który (<span style="font-style:italic;">przynajmniej trochę</span>) zwiększy bezpieczeństwo od strony użyszkodników. <br />Zaczynajmy <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'start'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #990000;">session_regenerate_id</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'start'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'ip'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'ip'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!==</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #990000;">session_regenerate_id</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">unset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;logged&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;nick&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #009900;">&#125;</span><span style="color: #339933;">&lt;</span>br <span style="color: #339933;">/&gt;</span></pre></div></div>

<p>Kod już pewnie wiecie gdzie wkleić <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <br />A więc pora na małe objaśnienie &#8211; jeśli zmienna sesyjna &#8222;start&#8221; nie ma wartości true, to ustalamy nowe ID dla sesji i przydzielamy odpowiednie wartości.<br />Potem sprawdzamy czy IP zapisane w sesji zgadza się z tym z którego wchodzi user &#8211; jak nie, to ustalamy nowe ID sesji i wylogowywujemy delikwenta.<br />Zapobiegnie to tzw. &#8222;session hijacking&#8221; (zdzielcie mnie jeśli coś tutaj namieszałem).<br />Można dodać autowylogowywanie jeśli user nie był aktywny od powiedzmy 10 minut &#8211; to przynajmniej w pewnym stopniu powinno rozwiązać problem userów, którzy korzystając z kafejki nie wylogowywują się.<br />Oczywiście (<span style="font-style:italic;">a właściwie niestety</span>) żadne skrypty nie zastąpią mózgu, także warto gdzieś na stronie umieścić mały tekst o bezpieczeństwie konta itp. &#8211; nawet jeśli szanse, że ktoś go przeczyta są znikome</p>
]]></content:encoded>
			<wfw:commentRss>http://noova.pl/blog/index.php/2009/03/12/na-szybko-bezpieczenstwo-sesji/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Antyflood na chacie</title>
		<link>http://noova.pl/blog/index.php/2009/03/08/antyflood-na-chacie/</link>
		<comments>http://noova.pl/blog/index.php/2009/03/08/antyflood-na-chacie/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 13:20:00 +0000</pubDate>
		<dc:creator>matergames</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[programowanie]]></category>
		<category><![CDATA[via www]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://noova.pl/blog/index.php/2009/03/08/antyflood-na-chacie/</guid>
		<description><![CDATA[Witam.Dość ważą rzeczą jest zabezpieczenie swojego systemu chatu/shoutboxa jakimś skryptem, który by zapobiegał floodowaniu. Można by zrobić tabelę w bazie z zapisywanym ostatnim czasem wpisu z danego konta i jeśli różnica obecnego czasu a tamtego jest mniejsza niż 30sekund blokować wysłanie wiadomości, jednak to niezbyt mi sie podoba.Zdecydowałem się na sesje (co prawda gracz może [...]]]></description>
			<content:encoded><![CDATA[<p>Witam.<br />Dość ważą rzeczą jest zabezpieczenie swojego systemu chatu/shoutboxa jakimś skryptem, który by zapobiegał floodowaniu. <br />Można by zrobić tabelę w bazie z zapisywanym ostatnim czasem wpisu z danego konta i jeśli różnica obecnego czasu a tamtego jest mniejsza niż 30sekund blokować wysłanie wiadomości, jednak to niezbyt mi sie podoba.<br />Zdecydowałem się na sesje (co prawda gracz może się wylogować i zalogować ponownie, wtedy wszystkie dane sesyjne są niszczone, ale komu by się to chciało).<br />To do roboty <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <br />Podczas wysyłania wiadomości robimy tak:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'last_msg'</span><span style="color: #009900;">&#93;</span><span style="color: #cc66cc;">30</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Odczekaj 30 sekund przed wysłaniem wiadomości'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'last_msg'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//Tutaj reszta kodu odpowiedzialna za wysyłanie wiadomości</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Nie było to trudne.<br />Ja w TGO jeszcze zastosowałem sprawdzanie:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$last_user_msg</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_fetch_array</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT `tresc` FROM `tabela_z_chatem` WHERE `nick`='<span style="color: #006699; font-weight: bold;">$zmienna_z_nickiem</span>' ORDER BY `id` DESC LIMIT 0, 1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$msg</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span><span style="color: #000088;">$last_user_msg</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Nie spamuj.'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://noova.pl/blog/index.php/2009/03/08/antyflood-na-chacie/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google i autologowanie</title>
		<link>http://noova.pl/blog/index.php/2009/03/03/google-i-autologowanie/</link>
		<comments>http://noova.pl/blog/index.php/2009/03/03/google-i-autologowanie/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 15:54:00 +0000</pubDate>
		<dc:creator>matergames</dc:creator>
				<category><![CDATA[gry]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programowanie]]></category>
		<category><![CDATA[via www]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://noova.pl/blog/index.php/2009/03/03/google-i-autologowanie/</guid>
		<description><![CDATA[Nie od dziś wiadomo, że im więcej stron bot googl&#8217;a zaindeksuje tym lepiej. Niestety, w wielu grach tzw. layout zewnętrzny jest dość skromny i obejmuję nie wiele ponad rejestracje i regulamin, rzadko ranking..O ile z botem googla do reklam adsense nie ma problemu, bo można kazać mu się zalogować, to niestety z zwykłym spiderem zrobić [...]]]></description>
			<content:encoded><![CDATA[<p>Nie od dziś wiadomo, że im więcej stron bot googl&#8217;a zaindeksuje tym lepiej. Niestety, w wielu grach tzw. layout zewnętrzny jest dość skromny i obejmuję nie wiele ponad rejestracje i regulamin, rzadko ranking..<br />O ile z botem googla do reklam adsense nie ma problemu, bo można kazać mu się zalogować, to niestety z zwykłym spiderem zrobić tak nie możemy.<br />Podczas rozmowy ze znajomym programistą (z tego miejsca chciałbym serdecznie pozdrowić Kayen&#8217;a <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ) wpadłem na pomysł autologowania bota googl&#8217;a.<br />Można by zrobić listę IP tegoż bota, ale przeszukiwanie takiej tablicy nie jest zbytnio fajne..<br />Można też rozpoznawać bota po UA string, ale ten z kolei każdy user może sobie zmienić..<br />Ale za to host bota google jest zawsze w postaci crawl-IP.googlebot.com.<br />To bierzmy się do roboty ;P</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">gethostbyaddr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">11</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;.google.com&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
logujemy<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Kod umieszczamy najlepiej w jakimś pliku includowanym na początku, u mnie to core.php <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> <br />Pierwsza linijka to ucięcie 11 znaków z hosta i sprawdzenie czy otrzymany string to &#8222;.google.com&#8221;.<br />Potem zwyczajnie logujemy bota na jakieś stworzone do tego celu konto i voila <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  <br />Ten sposób jakoś znacznie nie powinien obciążać serwera, a raczej jest to dobry sposób na sprawdzenie czy na stronie jest bot googl&#8217;a.<br />Można też analogicznie pobawić się z botami yahoo czy innych wyszukiwarek, ale to zostawiam wam <img src='http://noova.pl/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Edit:<br />
Wersja poprawiona parę postów dalej.</p>
]]></content:encoded>
			<wfw:commentRss>http://noova.pl/blog/index.php/2009/03/03/google-i-autologowanie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
