Cze??. Nie jestem jakim? bardzo dobrym programist?, ale postanowi?em zrobi? system rejestracji. Robi?em go wed?ug poradnika znalezionego na forum samp'a, ale jest problem bo tak:
Nie zapisuje si?:
kasa,
score,
pozycja gracza.
Dodatkowo w pliku pisze mi, ?e mam 5000 $, nawet wtedy, gdy podczas wychodzenia z serwera mia?em np. 100 $, ale i tak nie dostaj? ?adnej kasy ani nie spawnuje mnie w pozycji, w kt?rej by?em podczas wyj?cia z serwera.
Kod:
System zapisu jaki u?ywam to INI, link tutaj: klik
Tutaj jeszcze kod z scriptfiles:
Jak jeszcze co? z kodu trzeba poda? to prosz? pisa?.
Ja bym zacz?? od samej zmiany systemu zapisu danych na co? bardziej praktycznego. Na przyk?ad SQLite, dzi?ki temu pisany gamemode w dalszym czasie b?dzie ?atwiejszy do przerobienia na MySQL, dzi?ki kt?remu b?dzie mo?na utworzy? rejestracje poprzez strone WWW, albo chocia?by panel online konta. W dalszym czasie, usun??bym z tablicy pozycje gracza. Tablica znacznie wi?cej danych u?ywa ni? zwyk?a zmienna. Prawd? jest ?e przy 50 gracza nie ma to wi?kszej r??nicy, ale ju? przy 300 i kilku takich innych tablicach na prawd? robi to r??nice. Je?eli dany gracz i tak zaraz wyjdzie z serwera, to po co mu nadawa? globalnie dane, skoro mo?na da? mu wewn?trzn? zmienn? i ograniczy? zu?ycie pami?ci. Dodatkowo dane w pliku o nazwie "IsRegistered" jest wed?ug mnie zb?dne. Chyba ?e na serwerze nie jest wymagana rejestracja, w takiej sytuacji mo?e to si? przyda? aby zapisywa? dane graczy niezarejestrowanych(cz?sto jest to wykorzystywane na serwerach, kt?re chc? pozyska? graczy nawet takich przej?ciowych z innych kraj?w, kt?rzy by? mo?e nie znaj? j?zyka zapisanego w skrypcie na serwerze).
Podstawowym pytaniem jakie musisz sobie zada? przy rozpoczynaniu pisania skryptu to, co chcesz aby dany skrypt Ci przyni?s?? Jakie powinny by? cechy danego skryptu, aby dzia?a? On odpowiednio na serwerze.
A wydaje mi si? ?e ten skrypt nie dzia?a dlatego, ?e wyszukujesz pliku gracza po jego ID(identyfikator danej sesji gracza na serwerze), kt?re raz ?e za ka?dym razem jest inne dwa ?e pewnie nie ma nic wsp?lnego z tym co jest w plikach. Zamie? playerid na playername wyci?gni?ty za pomoc? playerid, wtedy powinno wszystko dzia?a? jak nale?y .
Edit: Poka? jeszcze ca?o?? prawdopodobnie callbacka Userpath. Mo?e w nim tkwi? problem, a nie w tym co opisa?em wy?ej .
Wszystko jest do nauczenia si? .
Podaj mi jeszcze definicje USER_PATH z g?ry ca?ego skryptu.
Edit: Przy file_close nie masz wpisanej nazwy pliku, kt?ry ma zosta? zamkni?ty. Osobi?cie nie do ko?ca wiem jak dzia?a ten system bo nigdy z niego nie korzysta?em, ale spr?buj bo mo?e by? tak ?e nie zapisuje Ci pliku, bo go nie zamykasz .
file_Save(filename[])
Writes data back into <filename> always use this after using the file_Set functions
But you don't have to if you just reading from the file [file_Get functions]
But after any action always use the next one!
Og?lnie to chyba napisz? nowy system rejestracji pod DOF2, bo jako? coraz wi?cej problem?w jest z tym systemem, poniewa? gdy w polu wpisania has?a do zalogowania wpisze cokolwiek to i tak mnie zaloguje na konto. Napisz? rejestracj? chyba pod DOF2, na razie tematu nie zamykam, bo jak b?d? mia? jeszcze jakie? problemy na ten temat to b?d? pisa?.
MySQL nie jest trudne do nauczenia, podstawy s? proste. Co do tematu, zapis pozycji nie dzia?a, bo nie mo?na u?ywa? GetPlayerPos w callbacku OnPlayerDisconnect, zreszt? nie tylko GetPlayerPos, wi?cej znajdziesz na wiki -> http://wiki.sa-mp.com/wiki/OnPlayerDisconnect
Kasa i respekt powinny dzia?a?, zale?y czy trzymasz to w tablicy gracza czy korzystasz z GetPlayerScore. Co do logowania, to przyda?by si? kod, ?eby stwierdzi? co jest przyczyn? b??dnego dzia?ania.
Co do tamtego systemu to ju? chyba nie b?d? zadawa? pyta?, bo jak wspomnia?em, napisz? nowy system pod DOF2. Co do MySQL to jako? po prostu nie mog? si? po?apa? o co gdzie chodzi, nie wiem, mo?e przyzwyczai?em si? za bardzo do plik?w i to dlatego.
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach