Ułatwianie sobie życia jest trudne i niepotrzebne.
A czasem wręcz szkodzi.
O co chodzi? A o to, że dla lepsiejszej organizacji (^^) pracy potworzyłem sobie parę dysków wirtualnych za pomocą komendy subst. (instrukcje użycia otrzymać można po wpisaniu w cmd "subst /?").
Pomyślałem, że szybciej i fajniej będzie robić to za pomocą jakiegoś GUI a nie z poziomu cmd. Odpaliłem więc delphi, zakodziłem co trzeba, bez zbędnych bajerów i wyszło na to (bo ja nie myślę, zanim zrobię), że szybciej jest jednak wspisać komendę w cmd, o ile oczywiście ścieżka do folderu to nie jakieś poskręcane i dziwne ciągi znaków.
Tak czy inaczej, wrzucę to tutaj, niech sobie leży.
Pobierz plik. (206 kb), .rar
Co z „[Delphi] Piszemy prosty chat!” ?
Miało być, a nie ma bo mimo, że druga część jest prawie gotowa to nie mam kiedy jej dokończyć.
Poza tym przerzuciłem się teraz na Delphi 2009 i ni za cholerę nie pamiętam, które kontrolki są nowe, a które już były.
Zrobię tak: napiszę całą aplikację w delphi 2009 i wrzucę ją wraz ze źródłami, a potem postaram się to jakoś rozpisać na części.
Niestety nie wiem jak z kompatybilnością projektów, ale z tego co widzę powinno działać. Powinno.
Poza tym Delphi 7 ssie, bo jest strasznie niestabilne i ma porąbany układ okien.
Cheers
[Delphi] Piszemy prosty chat! Część 1 – wstępniak
Chwilę już nic nie pisałem, postanowiłem coś tutaj umieścić ![]()
Swego czasu stworzyliśmy dla muhacka kanał IRC, ale niestety nie za wiele osób z niego korzystało, zwykle świeciło tam pustkami.
Dlatego też jakiś już czas temu postanowiłem napisać w delphi specjalnie do chatu stworzoną aplikację - niestety pomysł też nie wypalił.
Dzisiaj zacznę pisać jak taką aplikację stworzyć - krok po kroku.
MuOnline a rejestr windowsa
Pisząc nową wersję MultiHacka chciałem dodać takie opcje jak muzyka on/off,dźwięki on/off, gra w oknie, rozdzielczość, głośność i zapamiętany login - czyli to, co oferują launchery.
Chwilka węszenia używając jakiegoś starego launchera z dysku i regedit - i już wiem
How it’s made: Bank
Tak, trywialne, ale może i się przyda
Sugestie mile widziane ^_^
A więc - 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 - muszę przepisać od nowa system banku w TGO, bo jest tak stary, że pisany wręcz tragicznie
Zaczynamy!
if(empty($p['bank_time'])){ //$p to tablica z pobranymi danymi gracza mysql_query("UPDATE `players` SET `bank_time` = UNIX_TIMESTAMP() WHERE `id`='$p[id]'"); } if($p['bank']!=0){ //Jeśli gracz ma coś w banku if(time()-$p['bank_time']=86400){ //Jeśli ostatni update był ponad 24h temu $p['bank'] += floor((time()-$p['bank_time'])/86400)*0.03*$p['bank']; //Obliczamy ile kasy w banku ma teraz gracz mysql_query("UPDATE `players` SET `bank` = '$p[bank]', `bank_time` = UNIX_TIMESTAMP() WHERE `id`='$p[id]'"); } }
Mam nadzieję, że się nigdzie nie pomyliłem, ja to z palca piszę ![]()
Czyli mamy już odsetki, teraz zajmiemy się wyjmowaniem i deponowaniem pieniędzy.
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,jeśli gracz dostaje pieniądze na start.
Dlaczego?
Ano, bo pozakłada sobie 10 kont, z każdego po dajmy na to 150$ prześle i już ma 1500$ dodatkowo
Wstawiamy sobie dwa formularze - 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 - to już zostawiam wam.
Ja opiszę na przykładzie ukrytego pola w formularzu o nazwie op - 0 będzie oznaczało wypłatę o 1 wpłatę
if($_POST['op']==0 && $_POST['cash']){ //Jeśli formularz został wysłany $cash = (int) $_POST['cash']; //Filtrujcie wszystkie zmienne pochodzące od gracza, tyle to za mało. //To jest tylko mini-poradnik, więc nie robię wszystkiego za was :D if($cash0 && $p['bank']=$cash){ //Sprawdzamy, czy taką kwotę da się wypłacić mysql_query("UPDATE `players` SET `bank`= `bank` - $cash,`kasa`=`kasa`+$cash WHERE `id`='$p[id]'"); } } if($_POST['op']==1 && $_POST['cash']){ //Jeśli formularz został wysłany $cash = (int) $_POST['cash']; //Filtrujcie wszystkie zmienne pochodzące od gracza, tyle to za mało. //To jest tylko mini-poradnik, więc nie robię wszystkiego za was :D if($cash0 && $p['kasa']=$cash){ //Sprawdzamy, czy taką kwotę da się wypłacić mysql_query("UPDATE `players` SET `kasa`= `kasa` - $cash,`bank`=`bank`+$cash WHERE `id`='$p[id]'"); } }
Wszelkie informacje o gracza o pomyślnym lub też nie wykonaniu operacji pozostawiam wam, gdyż to nie wymaga specjalnych umiejętności ![]()
To byłoby na tyle w dzisiejszym How It's made, zapraszam do następnego odcinka który ukarze się nie wiadomo kiedy ![]()
Jeśli gdzieś zrobiłem błąd to napiszcie w komentarzach
How it’s made: zapowiedź
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 Kasyx'em na mieście widziałem i jeszcze muszę na jutro jedną rzecz napisać, także czasu mam mało ;p
Mini poradnik dla początkujących „twórców gier”
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ą zajmować.
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..
Musicie wbić sobie do głowy, że stworzenie gry, w którą grać będą nie tylko znajomi, nie polega na postawieniu gotowego silnika i jaraniu się super-pro-uber kontem admina.
Dobrze, wiemy już, że bez nauki html,css,php i ewentualnie js ani rusz.
Ale zanim do tego przejdziemy, zastanówcie się, czy znacie język polski.
Nie, nie żartuję.
Jeśli podczas tworzenia gry napotkacie problem, a na forum napiszecie "nie ciaua mi gra, pomuszcie!!!" to raczej nikt wam nie pomoże.
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.
Nie wymagam umiejętności pisania 500 stronnicowych esejów, sam też czasem zrobię jakiś błąd, ale nie 3 byki w 2 wyrazach..
Skoro umiemy już się wysławiać, możemy iść dalej
Teraz pytanie - kupujemy książkę, czy czytamy kursy.
Powiem tak - 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 "PHP5 i MYSQL - Biblia" (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) polecam temat na mmocenter i oczywiście manuala
Jeśli np. nie wiemy, co dana funkcja robi, warto zajrzeć na powyższą stronę
Jest tam też FAQ i właściwie wszystko co byście chcieli wiedzieć, bez php.net czasami ani rusz
Oczywiście, zanim php to html i css.
Tutaj to uczyłem się sam, już nawet nie pamiętam jak, ale z dobrych kursów jest ten.
I na koniec kilka małych porad co do pisania w php
- Wcięcia - łatwiej będzie Ci potem czytać kod
- Normalne nazwy zmiennych - nie trzeba potem szukać w całym kodzie co zmienna $xd przechowuje
- Porządek w plikach - folder "dupa" 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
Z innej beczki: muzyka przy pracy
Pewnie zauważyliście, że kiedy pracuje się w ciszy, to po jakimś czasie wydaje się to takie dziwne.
Nie wiem, może to jakieś moje 'zboczenie', ale bez muzyki praktycznie nic nie napiszę ;p
"Po pierwsze - gatunek.
Osobiście lubie, a nawet kocham metal, szcególnie - Cannibal Corpse,Behemoth.
Ale powiedzmy szczerze, to się do pracy nie nadaje. Nie potrafię się aż tak skupić, by nie wypraszało mnie growlowanie i wreszczenie "SAAAATAN" w słuchawkach ;p
Dobra jest muzyka lekka, byle nie pop, najlepiej pare(naście) lat do tyłu. Idealne dla mnie były Queen i The Police, czy też Sting solo.
Jeśli przy rocko-podobnych zespołach jesteśmy, to kocham Gunsów, ale ich muzyka do pracy się niezbyt nadaje. Tak więc - dobry jest lekki rock, albo połączenie rocko-popu, byle nie coś w stylu Jonas Brothers* czy cuś takiego.
* - dobra, jak ktoś to toleruje to niech mu będzie, ale generalnie chodzi mi o to, że takie klasyczne, dzisiejsze zespoły się nie nadają.
Żadne techno,trance etc. mi do gustu nie przypadły, nawet nie chodzi o to, że takiej muzyki generalnie nie trawie, ale ciągłe "jebut,jebut,bam,jebut" to chyba nie jest muzyka do kodzenia.
Po drugie - głośność.
Nie ustawiajcie muzyki na cały regulator, bo potem zwyczajnie bolą uszy, starajcie się też raczej słuchać na głośnikach, nie męczy się tak wtedy uszu (mam dobre słuchawki, a mimo to po paru godzinach mam już dość).
Oczywiście może się okazać, że ktoś najlepiej pracuje przy Cannibal Corpse, albo przy Feel'u, ale moje zdanie znacie.
Poza tym ten post jest całkowicie subiektywny ^.-
Problem polskiej sceny gier via www
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 typu Vallheru,Ugamela czy XNova.
Google i autologowanie – wersja poprawiona
Pamiętacie tamten wpis dotyczący autologowania bota googl'a?
Otóż okazało się, że to nie działa.
Chwilkę poszukałem, ponaprawiałem, poczekałem cierpliwie aż bot zaindeksuje ponownie stronę i już wiem czemu
Otóż host bota nie kończy się na google.com a na googlebot.com.
Czyli teraz cały kod to:
<?php if(substr(gethostbyaddr($_SERVER['REMOTE_ADDR']), -13)=="googlebot.com"){ $_SESSION['nick']=="GoogleCrawler"; //Czy jak tam logujecie sobie GoogleBota :P }?>
I teraz (teoretycznie) działać
Ja już pozmieniałem w TGO i dam znać jak tylko google znowu utworzy kopię strony