Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

[nVault] zapisz/odczyt get_time() + tekstu z messagemodebrak reakcji..


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
5 odpowiedzi w tym temacie

#1 ogieR8

    Wszechmogący

  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 06.02.2012 02:42

~ 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 :

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

  • +
  • -
  • 0

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !


#2 Stachuu :D ??

    Wszechobecny

  • Użytkownik

Reputacja: 237
Wszechwidzący

  • Postów:476
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Karsznice
Offline

Napisano 06.02.2012 09:18

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
  • +
  • -
  • 1

#3 ogieR8

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 06.02.2012 14:07

Mam rozumieć :

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 ^^

i nie wiem czy to nie blad bo jesli twoje dane to liczba dlaczego do zapisu uzywasz %s

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 ;PP
  • +
  • -
  • 0

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !


#4 Stachuu :D ??

    Wszechobecny

  • Użytkownik

Reputacja: 237
Wszechwidzący

  • Postów:476
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Karsznice
Offline

Napisano 06.02.2012 14:36

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
}

  • +
  • -
  • 1

#5 mierzwi

    Banned

  • Zbanowany

Reputacja: 235
Wszechwidzący

  • Postów:651
  • Lokalizacja:Polska
Offline

Napisano 06.02.2012 15:43

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, "_", " ");

jeśli masz fejsa i chcesz mi pomóc to wejdź tutaj: Zaproś kumpla by lubił nasz sklep | Facebook

na pewno jakoś C się odwdzięczę!


#6 ogieR8

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 06.02.2012 15:56

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

  • +
  • -
  • 0

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych