Jump to content

dzek (varez)

Retired Staff
  • Posts

    4,144
  • Joined

  • Last visited

Everything posted by dzek (varez)

  1. https://wiki.multitheftauto.com/wiki/Han ... berOfGears na pewno to (+set) --- btw: WIKI!, któryś parametr powinien wpływać (miej lub bardziej) na to jaką maksymalną prędkość możemy uzyskać na danym biegu (tj. nie będzie to po kolei, raczej jedna wartość do wyliczenia) - na pewno maksymalna prędkość dźwięk odtwarzasz raz - w pętli - jak zrobisz nowy dźwięk co każdą klatkę to nic sensownego z tego nie będzie. więc przy tworzeniu/wsiadaniu do samochodu tworzysz dźwięk 3d, przyklejasz do samochodu, i w zależności od prędkości/biegu - nadajesz mu modulację. i tylko modulację zmieniasz w onClientRender
  2. Cóż, GTA nigdy nie przejmowało się dobrą synchronizacją dźwięków i biegów (np. gdy gra się zwieszała podczas wciskania gazu - było słychać narastający dźwięk, potem zmianę biegu i narastający dźwięk - i tak w nieskończoność ). Ja bym dostosował zmiany biegów właśnie do wartości pokazywanych przez ww funkcję - samochodom można zmieniać biegi w handling i na pewno będzie to bardziej uniwersalne rozwiązanie. Nie wiem jak wyciszyć oryginalny dźwięk tylko pojazdów, ale przejrzałem za Ciebie wiki dokładniej i znalazłem to: https://wiki.multitheftauto.com/wiki/SetSoundProperties edit: najlepszy efekt uzyskasz przyklejając te dźwięki do samochodów (w 3D) - będzie fajny efekt, jak ktoś będzie przejeżdżał obok (w dodatku MTA samo ogarnie efekt dopplera) natomiast ten dźwięk nie będzie odtwarzany jako 3D dla graczy siedzących w danym pojeździe - żeby lepiej był słyszalny, lepiej odtwarzać go poza środowiskiem 3D.
  3. Ciężko powiedzieć jak to jest wykonane. Nie wiem jak pobrać obroty silnika, jedynie aktualny bieg: https://wiki.multitheftauto.com/wiki/Get ... urrentGear Nie mam pojęcia też w jaki sposób zmodyfikować wysokość tonu (pitch) dźwięku. Swoją drogą - świetny zasób ten ktoś zrobił. Może popytaj autora w jaki sposób (jakich funkcji użył) pobiera obroty silnika i jak modyfikuje pitch dźwięku.
  4. Kup oryginała, nie wspieramy piractwa. EOT.
  5. To będziemy szukać rozwiązania, póki co nie możemy Ci pomóc. MTA jest aplikacją wstrzykującą kod w proces GTA. Jest to bardzo inwazyjna metoda, gdzie najmniejszy błąd scrashuje aplikację. Jeżeli używasz innej wersji niż zalecana (MTA było pisane pod działanie z oryginalnym GTA) to adresy pamięci poszczególnych elementów, które MTA modyfikuje - mogą być inne. Jeżeli MTA miało zmodyfikować w pamięci np. adres 0x003FA012 (to losowy przykład), który odpowiadał np. za poziom życia, to w Twojej pirackiej wersji może się tam znaleźć inna wartość - kluczowa do działania samej gry. MTA ją modyfikuje i gra się wywala. To takie łopatologiczne wyjaśnienie.
  6. Compile your scripts with 32-bit version of Lua! MTA runs always as 32 bits, and compiled scripts differ if you compile them with 32 and 64 bit. I was fighting with this too.
  7. Skinpack - do you mean single players mods? At times of Vice City - modding gta3.img was causing graphical glitches, typically represented by disappearing objects/textures. Not sure if this was happening in San Andreas, as I wasn't touching gta3.img too much in SA. If this was not happening before you installed skinpack - then it's skinpack's fault. You can try to "rebuild" gta3.img in gta3.img editor. It may help.
  8. dzek (varez)

    InResultQueue

    Some of your resources seems to be written by newbie. Try to stop some resources to see which one is causing this. edit: first try these using database (MySQL), it's probably because results aren't freed
  9. Nie wspieramy tu piractwa. Kup na Steam, drogie to nie jest, a skoro przewaliłeś na tę grę zapewne setki godzin swojego życia to daj ekipie tworzącej tę grę te parę złotych (aktualnie 42 w przeliczeniu, jak są promocje to wiele taniej). Edit: Na allegro masz za 22zł i jeszcze jakiś gratis.
  10. You can use my site to generate a resource: http://mta.dzek.eu/vehicle/
  11. try using http://convertffs.com/
  12. A samą grę z jakiego źródła masz?
  13. dzek (varez)

    Optimization

    Fixed translation: Is there any way to replace loops with something else, is this even possible? He can't write proper Polish, so translation is even worse than it should be. He already posted same question in Polish section. I don't understand why he tries to remove loops completely. And what does he mean by "loops" (as there are many loop statements).
  14. 1) may depend on gamemode 2) depend on gamemode. on default freeroam there is no way to set spawnpoints via map editor. keep in mind that resource called "play" is respawning players (and well, it's all that it does) - this is a gamemode. "freeroam" is gui with all freeroam stuff, but it's not a gamemode itself (it doesn't spawn players) 3) don't compile server by yourself, use precompiled packages. server resources are available here: https://community.multitheftauto.com 4) check server config files. try to disable everything you think you dont need. make sure "play" resource is set to autostart. look at the code of this resource - it may help you to write own simple gamemode. you can start "freeroam" as well to have freeroam stuff available. also make sure to rtfm https://wiki.multitheftauto.com/wiki/Server_Manual
  15. Mega konwerter między wieloma formatami: http://convertffs.com/
  16. You can run not-so-filled-with-scripts mta server with 30-40 players on 500Mhz CPU, 256MB RAM. So i7 + 1GB is more than enough.
  17. i'd suggest to make sure to check the scripts even if you think that nobody could disable it - i find this very good idea, so maybe im not the only one
  18. po `local row = mysql_fetch_assoc(oResult)` dostaw: outputDebugString('Ilosc wierwszy: '..row['cnt']) Możesz też już wyrzucić moje komentarze z kodu `mysql_free_result()` wywołuj poza if-em z row['cnt'] (bo inaczej czyścisz wynik tylko dla określonego warunku, w innym przypadku śmiecie zostają w pamięci). do `mysql_free_result()` podajesz wynik z zapytania, a nie handler połączenia! (czyli oResult) Co do tego wieszania się - przeanalizujemy potem. Gdzieś się coś zapętla zdaje się. Aha, i na razie testuj jedną rzecz - rejestrację. Logowanie potem.
  19. W sumie to przerób to. Zrób: `SELECT COUNT(*) AS cnt FROM ....` potem zamiast `if (not mysql_num_rows ...` daj local row = mysql_fetch_assoc(result) if (row['cnt']==0) then -- row['cnt'] to odwolanie do elementu tablicy, nie pamietam czy tak to sie w lua robilo
  20. uhm. nie dość, że nie pamiętam - to jeszcze to były skomplikowane zapytania. ty znasz tylko proste SELECT/INSERT/UPDATE/DELETE. Kiedyś nauczysz się co to JOIN np. oraz masę innych ciekawostek, oraz jak w praktyce z tego korzystać
  21. Dziwi mnie, szczerze dziwi, że ta rejestracja Ci działa pseudo-pseudokod, dla mnie coś takiego będzie najczytelniejsze (to jest rejestracja!) local sQuery = "SELECT .... LIMIT 1"; -- LIMIT spowoduje, ze zapytanie bedzie delikatnie szybsze w przypadku kiedy znajdziemy odpowiednik (nie trzeba bedzie przeszukiwac reszty wierszow). NIE SPRAWDZAJ TU PODANEGO HASLA! bo jak bedzie bledne, to skrypt uzna ze user nie istnieje i doda drugiego o tym samym loginie local oResult = mysql_query(sQuery); if (oResult) then -- skad tez u Ciebie ta mania robienia falszywego warunku jako pierwszego? -- zapytanie powiodlo sie, praktycznie nie ma szans zeby nie mialo (samo zapytanie musialoby miec blad skladniowy, albo brak zabezpieczenia przed sql injection) if (not mysql_num_rows(oResult)) then -- jezeli 0/false/nil (w naszym przypadku zero) -- rejestrujemy nowe konto else -- wywalamy blad, ze konto istnieje end else -- wywolanie "nieznanego bledu" end
  22. SQLLite jest też bardziej ograniczone, nie zrobisz tak złożonych zapytań jak w MySQL.
  23. 1) Dlaczego w zapytaniu MySQL mającym na celu sprawdzenie czy istnieje taki user - sprawdzasz login i hasło? Sam login powinieneś. 2) wg wiki mysql_query zwraca albo handler MySQLResult albo nil, ty przyrównujesz to do false (choć chyba lua rzutuje zmienne przy ~= a sprawdza dokładnie typ zmiennych przy ~== - niestety już nie pamiętam). W każdym razie, zmianna login będzie nil tylko w momencie jak zapytanie MySQL się nie powiedzie! To, że nie wybrało żadnego rekordu nie oznacza, że samo zapytanie się nie powiodło!
  24. Każdy problem będzie miał inne optymalne rozwiązanie. Gdyby istniała zawsze jedna optymalna metoda - po co byłoby w ogóle tworzyć alternatywne możliwości. Co do czego to sam wybadasz, póki co po prostu pisz i poznawaj język - wszystko przyjdzie z czasem.
×
×
  • Create New...