[nVault] zapisz/odczyt get_time() + tekstu...
ogieR8
06.02.2012
~ Witam.
Opiszę to trochę w mega skrócie. Mam system logowanie (rezerwacja statystyk, nie nicku) na serwerze by me. Są tam różne kombinacje kodu i w ogóle. Zrobiłem natomiast, że jak ktoś źle wpisze kod to zapamiętuje datę i jest potem wyświetlana w menu z rezerwacją, jako "Ostanie nie udane logowanie", ktoś kto zobaczy to pomyśli, ze jego konto jest zagrożone i musi hasło zrobić trudniejsze (prosta logika, przynajmniej ja bym tak zrobił, jakbym miał laik hasło), no a hasło wpisuje się poprzez wywołanie messagemode, tak jak z własnym powodem do bana. No, wszystko spoko, cały silnik i konstrukcje mam w swojej skrzynce, ale nie zapisuje daty ost. błędnego logowania i stworzonego hasła umieszczonego w zmiennej i nie wczytuje. Zapis/odczyt działa w skrzynce, bo jest tam 9 zmiennych, typu: kod1,kod2,kod3,kod4 (tak jak zapięcie do roweru, jak PIN do telefonu itd.. 4 cyfry z menu się wybiera itd, ale nie to ważne), ile nieudanych logowań było itd. Tam gdzie zapis/odczyt polega tylko na cyfrach to nie ma większego problemu, ale z zapisem/odczytem tych danych jest problem.. Tutaj dam okrojoną część z mojej skrzyni, która zostanie opublikowana jak ją całą skończę, bo teraz nie chcę dawać nie działającej poprawnie bety i w ogóle.. i powiedzcie mi co ja tutaj mam zmienić ? Już w ogóle cudowałem z Odczytem, bo zapis to jako tako było coś tam widać w pliki .vault, ale odczyt to miałem errory z indexem i w sumie to postrzelałem trochę, ech..
Oto kod :
A tu jak ktoś nie lubi czytać ze spoilera :
http://wklej.to/VrE5U
Pozdrawiam i proszę o pomoc i rozwiązanie sprawy, najlepiej jakby ktoś tu nie strzelał z rozwiązaniem, bo już mnóstwo kombinacji zrobiłem, głównie z indexami i nic. Solidne porady poproszę
@EDIT: Ogólnie plugin dużo bardziej rozbudowany, na dzień obecny ma ponad 23kb i ~ 800 linijek, ale nie chcę się tutaj chwalić czy coś bo pewnie słaba optymalizacja kodu, no ale.. tylko mówię, że to bardzo wyciągnięte teraz sedno sprawy i kłopotu z pluginu. Reszta mi działa, czas z błędu ostatniego się pojawia jak należy i hasło z rejestracji też, bo sprawdzam to sobie w hudmessage, ale tutaj akurat tego do testowania nie wrzuciłem, bo nie potrzeba. Piszę na serwerze ładnie w hudzie:
haslo: xxx
ost. zle logowanie: 03 February 2012 01:05:45
No, ale.. problem tkwi w odczycie/zapisie danych do nVault. Zapis to sie pojawia raczej, wiec tu problemu nie powinno byc, tylko problem jest z odczytem
Użytkownik ogieR- edytował ten post 06.02.2012 02:49
Opiszę to trochę w mega skrócie. Mam system logowanie (rezerwacja statystyk, nie nicku) na serwerze by me. Są tam różne kombinacje kodu i w ogóle. Zrobiłem natomiast, że jak ktoś źle wpisze kod to zapamiętuje datę i jest potem wyświetlana w menu z rezerwacją, jako "Ostanie nie udane logowanie", ktoś kto zobaczy to pomyśli, ze jego konto jest zagrożone i musi hasło zrobić trudniejsze (prosta logika, przynajmniej ja bym tak zrobił, jakbym miał laik hasło), no a hasło wpisuje się poprzez wywołanie messagemode, tak jak z własnym powodem do bana. No, wszystko spoko, cały silnik i konstrukcje mam w swojej skrzynce, ale nie zapisuje daty ost. błędnego logowania i stworzonego hasła umieszczonego w zmiennej i nie wczytuje. Zapis/odczyt działa w skrzynce, bo jest tam 9 zmiennych, typu: kod1,kod2,kod3,kod4 (tak jak zapięcie do roweru, jak PIN do telefonu itd.. 4 cyfry z menu się wybiera itd, ale nie to ważne), ile nieudanych logowań było itd. Tam gdzie zapis/odczyt polega tylko na cyfrach to nie ma większego problemu, ale z zapisem/odczytem tych danych jest problem.. Tutaj dam okrojoną część z mojej skrzyni, która zostanie opublikowana jak ją całą skończę, bo teraz nie chcę dawać nie działającej poprawnie bety i w ogóle.. i powiedzcie mi co ja tutaj mam zmienić ? Już w ogóle cudowałem z Odczytem, bo zapis to jako tako było coś tam widać w pliki .vault, ale odczyt to miałem errory z indexem i w sumie to postrzelałem trochę, ech..
Oto kod :
Spoiler
A tu jak ktoś nie lubi czytać ze spoilera :
http://wklej.to/VrE5U
Pozdrawiam i proszę o pomoc i rozwiązanie sprawy, najlepiej jakby ktoś tu nie strzelał z rozwiązaniem, bo już mnóstwo kombinacji zrobiłem, głównie z indexami i nic. Solidne porady poproszę
@EDIT: Ogólnie plugin dużo bardziej rozbudowany, na dzień obecny ma ponad 23kb i ~ 800 linijek, ale nie chcę się tutaj chwalić czy coś bo pewnie słaba optymalizacja kodu, no ale.. tylko mówię, że to bardzo wyciągnięte teraz sedno sprawy i kłopotu z pluginu. Reszta mi działa, czas z błędu ostatniego się pojawia jak należy i hasło z rejestracji też, bo sprawdzam to sobie w hudmessage, ale tutaj akurat tego do testowania nie wrzuciłem, bo nie potrzeba. Piszę na serwerze ładnie w hudzie:
haslo: xxx
ost. zle logowanie: 03 February 2012 01:05:45
No, ale.. problem tkwi w odczycie/zapisie danych do nVault. Zapis to sie pojawia raczej, wiec tu problemu nie powinno byc, tylko problem jest z odczytem
Użytkownik ogieR- edytował ten post 06.02.2012 02:49
Stachuu :D ??
06.02.2012
jesli zapisujesz STRING formatex(vaultdata,127,"^"%s^"", xxxxx[id])jesli odczytujesz
nvault_get(g_vault,vaultkey,vaultdata,127) new ps[12] parse(vaultdata, ps, 11) copy(xxx[id], 31, ps);
i nie wiem czy to nie blad bo jesli twoje dane to liczba dlaczego do zapisu uzywasz %s
ogieR8
06.02.2012
Mam rozumieć :
jest zamiast:
? Z tego tak wynika, zaraz to sprawdzę, jeśli będzie odpowiednio działać to oczywiście wynagrodzenie +'kowe będzie, a jeśli nie to i tak coś wymyślę za zainteresowanie
copy(xxx[id], 31, ps);
jest zamiast:
xxx[id] = str_to_num(ps);
? Z tego tak wynika, zaraz to sprawdzę, jeśli będzie odpowiednio działać to oczywiście wynagrodzenie +'kowe będzie, a jeśli nie to i tak coś wymyślę za zainteresowanie
Właśnie chodzi o to, że osoba może tam praktycznie wszystko wpisać. Mogą to być liczby same, albo litery, albo to i to i w ostateczności dałem %s, bo jak ktoś wpisze różnojakie hasło to .. odwołałem się do nicku, bo tam też ludzie mają różne, a silnik nVault jest podciągnięty z CoD'a, a tam player_name[id] też jest pod %s ;PPi nie wiem czy to nie blad bo jesli twoje dane to liczba dlaczego do zapisu uzywasz %s
Stachuu :D ??
06.02.2012
dam ci moj zapis hasla w diablo moze cos ci pomoze
public stworz_haslo(id) { new text[192] read_argv(1,text,191) format(password, charsmax(password), "%s", text) new Unique_name[100] add(Unique_name,99,text) player_password[id] = Unique_name if(equali(player_password[id],"")) { ColorChat(id,GREEN,"[*Pass*]^x01 Zle haslo") return PLUGIN_HANDLED; } if(strlen(player_password[id]) < 5 ) { ColorChat(id,GREEN,"[*Pass*]^x01 Haslo za krotkie") Wczytaj(id) return PLUGIN_HANDLED; } if(strlen(player_password[id]) > 15 ) { ColorChat(id,GREEN,"[*Pass*]^x01 Haslo za dlugie") Wczytaj(id) return PLUGIN_HANDLED; } new AuthID[35] get_user_name(id,AuthID,34) new vaultkey[64],vaultdata[128] formatex(vaultkey,63,"%s",AuthID) formatex(vaultdata,127,"^"%s^"", player_password[id]) nvault_set(g_vault,vaultkey,vaultdata) ColorChat(id,GREEN,"[%s]^x01 Pomyslnie zapisano haslo ",player_password[id]) return PLUGIN_HANDLED } public wpisz_haslo1(id) { new text[192] read_argv(1,text,191) format(wpisane_haslo, charsmax(wpisane_haslo), "%s", text) new Unique_name[100] add(Unique_name,99,text) if(equali(player_password[id],Unique_name)) { ColorChat(id,GREEN,"[*Diablo*]^x01 Haslo poprawne") dobre_haslo[id] = 1 showmenu(id) } else ColorChat(id,GREEN,"[*Diablo*]^x01 Podales zle haslo") } public Wczytaj(id) { new AuthID[35] get_user_name(id,AuthID,34) new vaultkey[64],vaultdata[128] formatex(vaultkey,63,"%s",AuthID) nvault_get(g_vault,vaultkey,vaultdata,127) new ps[12] parse(vaultdata, ps, 11) copy(player_password[id], 31, ps); return PLUGIN_CONTINUE }
mierzwi 06.02.2012
ostatni_blad[id][31] = str_to_num(ost_blad); szText1[id][63] = str_to_num(odpowiedz);str_to_num to jest tekst do liczby, a ty masz tekst do tekstu więc musisz użyć copy.
replace_all(vaultdata, charsmax(vaultdata), "#", " "); new ost_blad[32], odpowiedz[32]; parse(vaultdata, ost_blad, 31, odpowiedz, 31);Użyłeś parse, a data zawiera spację, więc kod na ogól będzie się mylił ponieważ parse dzieli linię na podstawie spacji na pojedyncze elementy. Dobrym sposobem może być pobieranie czasu w taki oto sposób:
get_time("%d_%B_%Y_|-|_%H:%M:%S", ostatni_blad[id], 31)Przy czym w menu dasz:
replace_all(ostatni_blad[id], sizeof (ostatni_blad[id]) - 1, "_", " ");
ogieR8
06.02.2012
Dobra, oddzielny plugin 'błąd.amxx' działa, zobaczymy jak te zmienne wcisne do reszty i jak to bedzie z zapisem i odczytem. Aż już się boje ;d
Dzięki za trafne porady maslo, oczywiście plusiki będą Tak więc temat można zamknąć, ale może ktoś ogarnie to ? :
http://amxx.pl/topic...-rzut-granatem/, tak aby nie bylo tego paska i w ogóle. Tylko po prostu: jest CVAR, a plugin działa tak, że granat leci o CVAR razy dalej. Np 1.0 - granat leci normalnie, 1.5 - granat leci o połowe swojego dystansu dalej. Tak, aby granat łapał też przy tym wiadomo odpowiedni kierunek na jaki się patrzy, a nie że granat zawsze leci w kierunku 0.0,0.0,0.0, nawet jak patrzymy w kierunek przeciwny to granat ma w tym samym kierunku lecieć ( tak jak to działa z granatami), a nie, że one lecą w tył, albo w bok ;0
Użytkownik ogieR- edytował ten post 06.02.2012 16:04
Dzięki za trafne porady maslo, oczywiście plusiki będą Tak więc temat można zamknąć, ale może ktoś ogarnie to ? :
http://amxx.pl/topic...-rzut-granatem/, tak aby nie bylo tego paska i w ogóle. Tylko po prostu: jest CVAR, a plugin działa tak, że granat leci o CVAR razy dalej. Np 1.0 - granat leci normalnie, 1.5 - granat leci o połowe swojego dystansu dalej. Tak, aby granat łapał też przy tym wiadomo odpowiedni kierunek na jaki się patrzy, a nie że granat zawsze leci w kierunku 0.0,0.0,0.0, nawet jak patrzymy w kierunek przeciwny to granat ma w tym samym kierunku lecieć ( tak jak to działa z granatami), a nie, że one lecą w tył, albo w bok ;0
Użytkownik ogieR- edytował ten post 06.02.2012 16:04