Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki od 1 do 10 z 13

Wątek: Dziennik potworów

  1. #1
    Zarejestrowany
    Dołączył
    May 2008
    Posty
    195

    Domyślnie Dziennik potworów

    Witam. Mam problem z utworzeniem w bazie tabeli z dziennikami, w których będą zapisywane potwory spotkane przez gracza. Ale żeby taki potwór został w pełni zapisany w dzienniku trzeba zdobyć wszystkie informacje na jego temat, inaczej wpis będzie niekompletny. Dokładnie 3 dane, pomijając to, że już wiemy jak się potwór nazywa:

    * typ (roślinożerca, mięsożerca)
    * podatność (na co jest wrażliwy)
    * występowanie (na jakim terenie występuje)

    Ale jak zaplanować bazę? Myślałem o takim czymś:

    IDdziennika | IDgracza | IDpotwora | dane1 | dane2 | dane3

    1 | 1 | 1 | 0/1 (w zależności czy znamy czy nie) | 0/1 | 0/1

    Czy tak może być?

  2. #2
    Zarejestrowany
    Dołączył
    Aug 2010
    Posty
    9

    Domyślnie

    A te pozostałe 3 dane nie są zapisane w tabeli potworów?

    Pozdrawiam ~Skipi.
    http://reflection-games.com
    Przywróćmy ludziom marzenia.

  3. #3
    Zasłużony Awatar karer
    Dołączył
    Apr 2008
    Posty
    2,554

    Domyślnie

    Mozesz zrobic to nawet jeszcze lepiej. Spakowac te 3 bity w 1 liczbe. Wtedy bedziesz mogl wybierac po jednym polu w bazie danych zamiast po 3.
    000=0
    001=1
    010=2
    011=3
    100=4
    101=5
    110=6
    111=7
    Teraz moglbys bez najmniejszego problemu zapisywac tylko jedna liczbe do bazy. Masz 8 mozilwosci wiec to troche sporo tak czy siak. Operowanie na tym jest bardzo proste.

  4. #4
    Programista
    Dołączył
    Dec 2008
    Posty
    776

    Domyślnie

    karer przekombinowałeś. Znacznie wygodniejsze dla operowania są 3 pola w bazie. Takie coś można użyć w jakiś mega skryptach lub wolnym serwerze, gdzie zależy nam na szybkości, ale nie wydaje mi się, by w jego wypadku było to konieczne. Nie jest to złe, jest dobre, ale niewygodne.
    Ostatnio edytowane przez Khulmar ; 24-08-2010 o 20:43
    Kod php:
    echo 'A kij wam w oko!'
    Każdą decyzję analizuje na podstawie tysięcy IF'ów i ELSE'ów. ... na zasadzie (if) obiecałem (then) dzwonię - nonsopedia, informatyk

  5. #5
    Zarejestrowany
    Dołączył
    May 2008
    Posty
    195

    Domyślnie

    Skipi, nie mogę, gdyż wtedy jakby się uprzeć to mogłyby być 2 pola: IDdziennik będące zarówno identyfikatorem dziennika, który przybiera IDgracza i potwory z zapisanymi IDpotworów, ale wtedy gracz znałby wszystkie informacje na ich temat. A ja chce żeby znał tylko te, które znalazł/dowiedział się.

    Karer dzięki tak zrobię:P Może w późniejszym czasie dojdzie więcej danych:

  6. #6
    Zarejestrowany
    Dołączył
    Aug 2010
    Posty
    9

    Domyślnie

    @Ligolis
    Nie znałby, przecież nie musisz pobierać wszystkich pól z tabeli potwora, tylko wybrane.
    http://reflection-games.com
    Przywróćmy ludziom marzenia.

  7. #7
    Zasłużony Awatar karer
    Dołączył
    Apr 2008
    Posty
    2,554

    Domyślnie

    Khulmar kurde co przekombinowalem? Co jest niewygodne? Wiadomo ze jesli chcesz na tym operowac to sobie przygotowujesz osobna funkcje do tego. Czy tak trudno zapamietac te pare stanow? Zwlaszcza ze jest ich tylko 8? Znajdz mi niewygode w tym wypadku to bedziesz dobry bo jesli dla ciebie niewygodne jest jednorazowe napisanie sobie funkcji w 2 minuty do operowania na tych wartosciach to sie nie zrozumiemy.

    Jesli sie nie myle to mysql ma wygodna funkcje do zamiany 1001 przykladowo na 9. Jesli ta funkcje w zapytaniu bedziemy stosowac to juz wogole jestesmy w domu.

  8. #8
    Zarejestrowany
    Dołączył
    May 2008
    Posty
    195

    Domyślnie

    Karer jaka to funkcja?

  9. #9
    Zasłużony Awatar karer
    Dołączył
    Apr 2008
    Posty
    2,554

    Domyślnie

    CONV(1010,2,10)
    Ta funkcja konwertuje liczbe 1010 systemu 2-jkowego na liczbe systemu 10-tnego.

    Tylko oczywiscie nie stosuj tej funkcji w warunku WHERE bo wtedy bedzie wykonywana zbyt czesto. Mozesz stosowac ja po SELECT tak zeby od razu ci wywalalo to na czym chciales operowac.

    Jesli chcesz zamienic liczbe 9 na 1001 to jest do tego funkcja BIN(). BIN(9) zwroci ci 1001. Mozesz jej nie uzywac i wszedzie stosowac CONV.

  10. #10
    Zarejestrowany
    Dołączył
    May 2008
    Posty
    195

    Domyślnie

    Aha, dzięki.

Strona 1 z 2 12 OstatniOstatni

Informacje o wątku

Użytkownicy przeglądający ten wątek

Aktualnie 1 użytkownik(ów) przegląda ten wątek. (0 zarejestrowany(ch) oraz 1 gości)

Podobne wątki

  1. Dziennik/Poczta
    Przez Bloodmoon24 w dziale Support Vallheru
    Odpowiedzi: 8
    Ostatni post / autor: 09-09-2010, 15:53
  2. Mu online, numery wszystkim mobów (potworów)
    Przez htmlxp w dziale Stawianie i konfiguracja serwera Mu Online
    Odpowiedzi: 0
    Ostatni post / autor: 05-02-2009, 11:18
  3. Lista potworów
    Przez Erossek w dziale Problemy przy tworzeniu własnej gry
    Odpowiedzi: 13
    Ostatni post / autor: 29-07-2008, 20:32
  4. Walka, lista potworów
    Przez HoHeLkA w dziale Problemy przy tworzeniu własnej gry
    Odpowiedzi: 1
    Ostatni post / autor: 01-07-2008, 14:43
  5. Dodawanie potworów.
    Przez Wiktor w dziale prp
    Odpowiedzi: 0
    Ostatni post / autor: 07-10-2007, 19:02

Zakładki

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •