Opublikowano 5 Sierpnia5 Sie Krótko i na temat, umie ktoś wytłumaczyć na czym polega 'state' w tych questach?Że też słyszałem że nie należy mieć dużo questów bo "state sie zapycha"
Opublikowano 5 Sierpnia5 Sie 📌Wskazówki - jak szybciej uzyskać pomoc i uniknąć zbędnych pytań Co powinieneś dołączyć do tematu?sysser, syslog (z odpowiedniego kanału gry, klienta, db, auih)Opisz dokładnie problemCo się dzieje i w jakich okolicznościach?Jakie pliki/systemy edytowałeś?Jakie pliki serwerowe / źródło używasz?Jeśli dodawałeś jakiś system podaj nazwę lub link/załącznik.Dobre praktykiKod dodawaj zawsze jako 'blok kodu' - będzie łatwiejszy do analizowania (opcje znajdziesz w pierwszej liście rozwijanej w edytorze)Nie wklejaj logów jako tekst - dodaj jako załączniki.Udało Ci się rozwiązać problem samemu? Napisz JAK! Pomożesz wtedy również innym.Awaria serwera? (awaria kanału gry, logowania, bazy)Sprawdź, czy pojawił się plik '.core' w katalogu kanału/db/auth będzie on zawierał informacje o przyczynie awarii. Zrób debug tego pliku następnie wrzuć wynik (screen lub log) do tematu.
Opublikowano 6 Sierpnia6 Sie Jedyne obostrzenia apropo questów jakie słyszałem, to żeby nie uzywac reload quest w grze ale to tylko w momencie jak sie chujowo questflagi zapisuje. chodzi mniej więcej o to:when login with pc.getf("first_login") == 0 beginpc.setf("first_login", 1)jak masz ustawiony flag jak powyżej to state'y mogą przeskoczyć i quest wykonywać się od nowa. when login with pc.getf("settings","first_login") == 0 beginpc.setf("settings","first_login", 1)jak masz zrobione jak tutaj, to wszystko będzie si.i mam dużo questów na serwerach i brak z nimi problemów. Edytowane 6 Sierpnia6 Sie przez mrvns
Opublikowano 6 Sierpnia6 Sie State w questach działa tak, że jak kompilujesz sobie questy to Twoje qc z każdej nazwy state w quescie tworzy crc32 checksum i zapisuje Ci to w object, stąd tez masz w bazie w player.quest do każdego questu __status i value te value to checksum nazwy state, wszystko poza state start które jest hardcodowane na 0 ma tak przypisany index, a gra po tym indexie wie po prostu w którym miejscu danego questu jest dany gracz.Możesz mieć w queście 500 state i się nic nie stanie, możesz mieć te same nazwy state w różnych questach i się nic nie stanie. To o czym słyszałeś to pewnie suspend quest state to jest co innego i jest to normalne działanie poczas np wait() / select() itp. aczkolwiek powoduje problemy przykładowo jak gracz wisi w suspend quest state i w tym momencie wykona inny quest to się on po prostu nie wykona w ogromnym skrócie. Czyli jak odpalisz sobie prosty quest i dasz w nim wait() i będziesz miał go otwartego i w tym samym momencie zabijesz moba który ma przypisane w queście wykonanie jakiejś akcji po .kill to się to nigdy nie wykona, tak samo na dungeonach. I jest to m.in jeden z kilku powodów dlaczego niektóre rzeczy przepisuje się do c++ z lua bo widziałem, że niektórzy się zastanawiali w jakimś temacie po co.Reload quest crash też wynika z tego samego questflagi nie mają tutaj żadnego znaczenia
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.