MACIEKW89 Posted September 11, 2013 Share Posted September 11, 2013 Witam! Tworzę serwer RP(pewnie jak skończe to was zaproszę ). Robię panel logowania z rejestracją oraz tworzeniem i wybraniem postaci. Pytanie : Jak przypisać postać do danego konta? Chodzi mi o to, że klikne "Stwórz" i w tedy pobiera z editów (i jednego memo) text i przypisuje w setElementData... może to być nie do końca zrozumiałe. Chce zrobić żeby można było stworzyć max 4 postacie. Wyobraźnie ponoć mam wysoko-rozwiniętą...ale nie pozwala mi tego wymyślić . Z góry dziękuję. Link to comment
bober370 Posted September 11, 2013 Share Posted September 11, 2013 Postacie zapisuj w bazie danych (np mysql) a następnie sprawdzaj ile gracz ma postaci (1 wpis w bazie = 1 postać) Link to comment
MACIEKW89 Posted September 11, 2013 Author Share Posted September 11, 2013 Właśnie nie chce robić tego z pomocą bazy danych (nie ogarniam tego i nie mam czasu się uczyć). Wolę przez setElementData no i get . Link to comment
dzek (varez) Posted September 11, 2013 Share Posted September 11, 2013 wbudowane logowanie i setAccountData Link to comment
Wielebny Posted September 12, 2013 Share Posted September 12, 2013 Nie polecam wykorzystywania wbudowanego mechanizmu autoryzacji i przechowywania danych graczy. Jest tam kilka niedociągnięć, poza tym baza lubi się wysypać w najmniej spodziewanym momencie - mi to się zdarzyło jak na serwerze zarejestrowało się kilkadziesiąt tysięcy graczy. Od tego czasu wszystkie dane graczy przechowuje w bazie SQL, a jedyne konto w wbudowanym mechanizmie autoryzacji należy do administatorów, którzy potrzebują dostępu do takich funkcji jak restartowanie zasobów. Nie mniej jednak jeśli chcesz się oprzeć na tym mechanizmie, powinieneś stworzyć sobie strukturę danych przechowującą postacie i zapisywać ją w account data, np.: Zapisywanie wszystkich postaci: local postacie={ {imie="Stefan", nazwisko="Batory", skin=12, kasa=31337, ostatnia_pozycja={0,0,5} }, {imie="Amelia", nazwisko="Poulain", skin=33, kasa=0, ostatnia_pozycja={100,200,10} }, } setAccountData(getPlayerAccount(plr), "postacie", postacie) Wczytywanie jednej postaci i zapisywanie jej w element data do dostępu w trakcie trwania sesji użytkownika po stronie server i client side: local function wczytajPostac(plr,numer_postaci){ local postacie=getAccountData(getPlayerAccount(plr), "postacie") if not postacie then return false, "Ten gracz nie ma żadnych postaci" end if not postacie[numer_postaci] then return false, "Nie odnaleziono postaci o danym ID" end setElementData(plr, "postac", postacie[numer_postaci]) setElementData(plr, "numer_postaci", numer_postaci) return true } Przyklad zapisu wczesniej wczytanej postaci przy wyjsciu z serwera: local function zapiszPostac(plr) local numer_postaci=getElementData(plr,"numer_postaci") local postac=getElementData(plr, "postac") if not numer_postaci or not postac then return false end -- gracz nie mial wczytanej postaci -- aktualizacja niektorych danych postac.ostatnia_pozycja = getElementPosition(plr) postac.kasa = getPlayerMoney(plr) -- zapis do account data local postacie=getAccountData(getPlayerAccount(plr)) postacie[numer_postaci]=postac setAccountData(getPlayerAccount(plr), "postacie", postacie) return true end addEventHandler("onPlayerQuit", root, function() if zapiszPostac(source) then outputChatBox("Zapisano postać gracza ".. getPlayerName(source)) end end) Powyższy kod to tylko koncepcja, do dalszego rozwoju. Jeśli zdecydujesz się na stworzenie postaci w zewnętrznej bazie danych SQL to zerknij do tego projektu: https://github.com/lpiob/MTA-XyzzyRP - znajdziesz tam i struktury tabel przechowywujące użytkowników, ich postacie jak i np. ekwipunek, a także cały kod z tym związany. Link to comment
MACIEKW89 Posted September 12, 2013 Author Share Posted September 12, 2013 Pomożesz dalej ? Nie wiem za co się zabrać Znowu rzuciłem się na głęboką wodę Chcę zrobić panel logowania....Logowanie, Rejestracja, Wybór Postaci, Tworzenie Postaci. Wszystko to w gui (zamiast gui mam zrobione obrazki w photoshopie). Już nie zależy mi na setElementData (wywalało mi takie błędy, że szkoda gadać). Może to być pod MySQL tylko nie wiem wogóle jak się połączyć z bazą, jak coś do niej zapisać - wogóle niczego co jest związane z SQL zrobić nie umiem. Proszę o dokładne wytłumaczenie wszystkiego od początku. Z góry dziękuję za chęci i czas mi poświęcany (a trochę go na mnie tracicie ). Link to comment
Wielebny Posted September 13, 2013 Share Posted September 13, 2013 Musisz nauczyć się eksperymentować, analizować swoje błędy i wyszukiwać odpowiedzi. Nawet jakby ktoś Ci tu dał całkowity gotowiec, to co Ci po nim jak nie będziesz wiedział jak działa? Chętnie postaramy Ci się pomóc, ale musisz zadawać konkretne pytania, najlepiej w osobnych wątkach. Link to comment
dzek (varez) Posted September 13, 2013 Share Posted September 13, 2013 Oj Maciek, a taki wielki programista byłeś ;] Jeżeli chcesz się czegoś nauczyć to: 1) nie rzucaj się na głęboką wodę - po kolei pisz skrypty coraz bardziej zaawansowane i coraz bardziej rozubodowane. od zera rozbudowanego nie stworzysz 2) naucz się angielskiego - bez tego niektórzy Ci powiedzą, że będzie ok, ale to zupełnie inny świat jak masz dostęp do materiałów w języku angielskim 3) czytaj manuale, korzystaj z wyszukiwarek - niektórym nawet nie chce się odpisać "było, poszukaj", kiedy ktoś zadaje pytania zbyt banalne, z kolei nie wszyscy też będą poświęcać czas na gościa, który wpadnie i wypisze listę rzeczy, które chce zrobić, a potem powie "nauczucie mnie" Link to comment
MACIEKW89 Posted September 13, 2013 Author Share Posted September 13, 2013 Oj Maciek, a taki wielki programista byłeś ;] Nie uważam się za nawet dobrego programiste...to jedynie twoje zdanie 1) nie rzucaj się na głęboką wodę Już od dawna o tym wiem... a ja uparty. 2) naucz się angielskiego Angielski jest izi...i po angielsku mogę rozmawiać. niektórym nawet nie chce się odpisać "było, poszukaj" Zauważyłem. z kolei nie wszyscy też będą poświęcać czas na gościa, który wpadnie i wypisze listę rzeczy, które chce zrobić, a potem powie "nauczucie mnie" Yyy...że mnie na myśli miałeś? Nie wpadłem i powiedziałem "nauczcie mnie". Poprosiłem jedynie o wytłumaczenie o co w tym całym MySQL chodzi...poradnik (link) też by wystarczy, a ty takie coś od razu. Z góry dzięki za chęci. Temat myślę, że można zamknąć. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now