Gra MMORPG - możliwość posiadania przedmiotów


(Szubi993) #1

Piszę sobie grę przeglądarkową typu MMORPG i mam taki mały dylemat dotyczący posiadania przedmiotów przez daną postać.

Otóż nie mam żadnego pomysłu na napisanie kodu w PHP z użyciem MySQL, który umożliwiałby posiadania ekwipunku przez postać, możliwość zdobywania przeróżnych stworzonych przeze mnie przedmiotów oraz ich używania etc.

W Google znalazłem bardzo ciekawe odpowiedzi w stylu "php + mysql styknie". Ja to wiem, że to styknie z pomocą tego, ale czy mógłby mi ktoś podpowiedzieć, czego użyć i jak to zamieszczać w bazie danych? Nie chcę gotowego skryptu, ale jakiegoś schematu działania wraz z użytymi rozwiązaniami.

Z góry dziękuję.


(Wszerad91) #2

Jak masz problem z czymś takim to marnie to widzę:smiley: Mam wrażenie, że brakuje ci obycia z programowaniem i radził bym książkowy kurs + pisanie własnych krótkich skryptów dopóki nie zrozumiesz jak miało by to wyglądać... Gdyby każdy był w stanie coś takiego zrobić to mielibyśmy miliony różnych gier!


(Szubi993) #3

Nie ukrywam, że wielkiego doświadczenia związanego z programowaniem nie mam, jednakże podstawy tego, co potrzebuję - znam.

Brakuje mi obycia, to fakt, nie pisałem wielu skryptów. Jednakże zawsze jestem otwarty na naukę.

Piszesz, że polecasz jakiś książkowy kurs... cóż, powiem Ci, że lepiej się uczę przez Internet :slight_smile: Aczkolwiek znajdę tam więcej podstaw, niż praktycznych użyć. Jak się odchoruję to i tak przejdę się do księgarni i zobaczę, co tam ciekawego :stuck_out_tongue:

Każdy jest w stanie zrobić coś takiego, tylko nie każdy potrafi się nauczyć :stuck_out_tongue:

Czekam na dalsze porady :>


(Wszerad91) #4

Z PHP nie jest taka prosta sprawa, niestety nie da się znaleźć porządnego kursu w internecie a to głównie dlatego, że to język bardzo obszerny i zmieniający się z czasem. No ale jak chcesz to mogę ci coś powiedzieć z moich doświadczeń chociaż sam nigdy czegoś takiego nie robiłem.

Tworzysz bazę przedmiotów, nadajesz im id, nazwę, atrybuty(niekoniecznie po imieniu ale np: atr1, atr2) a bierze się to stad, że różne przedmioty maja różne funkcje i przeznaczenie. Dajesz jedna kolumnę określającą typ przedmiotu(bron,tarcza,nogawice,...). W innej tablicy masz dane postaci takie jak głowa,reka1,reka2 i tak dalej... Jeżeli chcesz założyć przedmiot to w odpowiedniej kolumnie dajesz odpowiednie id przedmiotu, ale w zależności od jego kolumny przeznaczenia pozwalasz na to lub nie(tarcza nie może być założona na głowę:D), wcześniej sprawdzasz czy w kolumnie "worek" zawierającej listę przedmiotów masz taki przedmiot(nie możesz założyć czegoś czego nie masz). Potem w kodzie PHP określasz jakie znaczenie mają atrybuty np: dla potiona - [waga,ilość zwiększana prze wypicie,a tu dopiero co zwiększa(siłę,int,zdrowie,ilość maksymalnego zdrowi,...)] i tak dla każdego typu. Oczywiście w tabeli postaci musisz uwzględnić te własności takie jak siła,int,..


(Szubi993) #5

O coś takiego mi mniej więcej chodziło, dzięki wszerad :wink:

A ja przed chwilą wykombinowałem takie coś:

Posiadane przedmioty przez danego użytkownika będą zapisane w postaci dwuwymiarowej tablicy (załóżmy, że $przedmiot).

Klucze tej tablicy będą posiadały kolejno: id przedmiotu, ilość danego przedmiotu.

By wypisać wszystkie posiadane przedmioty, użyłbym pętli foreach:

foreach($przedmiot as $id => $ilosc){


switch($id){

case 0:

$co = "Trójząb";

$ile = $ilosc;

break;


// ... 

}


}


//coś w tym stylu

By dodać przedmiot do inwentarza, po prostu dodajemy do tablicy jego id oraz ilość. Usuwanie przedmiotu odbyłoby się za pomocą funkcji foreach i bloku warunkowego.

$usuwany_przedmiot_id = 12;

foreach($przedmiot as $id => $ilosc){

if($id == $usuwany_przedmiot_id)

{

//blok warunkowy, coś tam coś tam :P

}


}

To jest taka podstawa, która by mi była wystarczająca na ten moment, aczkolwiek chyba popełniłem gdzieś gafę...

Natomiast najbardziej boli mnie zapisanie tablicy do bazy. Nie wiem, czy da się to zrobić, zaraz będę to Googlował, chyba, że Wy doradzicie mi jakimś patentem :wink:

edit: no i chyba coś znalazłem, chyba serialize i unserialize mi pomoże w eksporcie/imporcie takiej tablicy, tak? :smiley:


(Wszerad91) #6

Na razie wszystko wygląda ok, tak naprawdę problemy zaczynają się dalej i to w mało spodziewanych momentach. Niestety w samym PHP raczej niewiele będę mógł ci pomóc bo piszę w JS i po stronie klienta serwera ale jeżeli chodzi o algorytmy to jak najbardziej.