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

parse i takie sprawy


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

#1 mlekovita

    Zaawansowany

  • Użytkownik

Reputacja: 7
Nowy

  • Postów:149
  • Imię:Dawid
Offline

Napisano 14.09.2019 21:11

Witam, kiedy podczas zapisu w pliku widnieje takie coś:

new szData[128];

if(!szData[0] || szData[0] == ';' || (szData[0] == '/' && szData[1] == '/')) continue;

to jakbym wziął i zmienił  if(szData[0] na szData[1] lub szData[3] <- to co wtedy sprawdzi?


  • +
  • -
  • 0

#2 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 14.09.2019 21:31

Aktualnie to sprawdza czy:
Pierwszy znak nie jest znakiem zero (null terminator) lub średnikiem, lub czy dwa pierwsze znaki w linii to /.

Zmiana jaka opisałeś nie spowoduje nic oprócz przesunięcia indeksów o jeden. Czyli sprawdzi czy drugi znak jest znakiem zero lub średnikiem itp itp

To samo z [3] tylko przesunie o 3 znaki.


Powiedz co chcesz osiągnąć
  • +
  • -
  • 0

#3 mlekovita

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 7
Nowy

  • Postów:149
  • Imię:Dawid
Offline

Napisano 14.09.2019 21:51

Aktualnie jest tak że ; wstawia sie przed nick pierwotny

natomiast chciałbym osiągnąć tak żeby ; (średnik) wstawiał się nawet jak ktoś zmieni nick ale sid zostanie ten sam.

 

wyglada to tak

 

Dell VALVE_1:0:342181978 "Noob"

Jeżeli graczowi usunie sie oznaczenie

to robi się tak:

;Dell VALVE_1:0:342181978 "Noob"

 

Natomiast jeśli gracz zmieni nick i usunie sie mu oznaczenie to ; (średnik) sie nie stawia i zostaje jak było:

Dell VALVE_1:0:342181978 "Noob"

 

http://www.wklejto.pl/764260


Użytkownik mlekovita edytował ten post 14.09.2019 21:52

  • +
  • -
  • 0

#4 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 15.09.2019 08:40

To jak na moje trzeba łapać zmiane nicku gracza i w momencie zmiany wyłączyć admina z tego starego nicku, a włączyć (i dodać do pliku) ten nowy nick


  • +
  • -
  • 0

#5 mlekovita

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 7
Nowy

  • Postów:149
  • Imię:Dawid
Offline

Napisano 15.09.2019 12:45

Nie bardzo rozumiem twoj sposob moze zasmiecac plik bo jak beda zmieniac nicki to sie narobi troche nieprzyjemnie. A czy jest mozliwosc wylapywania w pliku nicku na podstawie sid a nastepnie ; przed nickiem?
  • +
  • -
  • 0

#6 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 15.09.2019 13:08

można, wystarczy w parse() pobrać nastepny argument i to bedzie sid


  • +
  • -
  • 0

#7 mlekovita

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 7
Nowy

  • Postów:149
  • Imię:Dawid
Offline

Napisano 15.09.2019 16:19

w taki sposób?

parse(szData, szNick, 31);
parse(szData, szSid, 31);
 
                        if(equali(nick[i], szNick) || equali(sid[i], szSid) {  
                                format(szData, 127, "; %s", szData);
                                write_file(szFile, szData, Line - 1);
                                break;
                        }

  • +
  • -
  • 0

#8 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 15.09.2019 17:09

Jakbyś zajrzał do naszej ukochanej dokumentacji to byś wiedział

parse(szData, szNick, 31, sid[id], 31);

  • +
  • -
  • 0

#9 mlekovita

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 7
Nowy

  • Postów:149
  • Imię:Dawid
Offline

Napisano 15.09.2019 18:44

nie działa

 

parse(szData, szNick, 31, sid[i], 31);

 
                       
if(equali(nick[i], szNick) || equali(sid[i], szSid) {  
                                format
(szData, 127, "; %s", szData);
                                write_file(szFile, szData, Line - 1);
                                break;
                        }


  • +
  • -
  • 0

#10 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 15.09.2019 19:06

pokaż cały kod jaki masz

parse(szData, szNick, 31, szSid, 31);

Spróbuj tak, źle wcześniej podalem tą linijke.

 

Czy do tablicy sid, pobierasz steamid gracza przy wchodzeniu na serwer?


  • +
  • -
  • 0

#11 mlekovita

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 7
Nowy

  • Postów:149
  • Imię:Dawid
Offline

Napisano 15.09.2019 19:51

Caly kod jest w drugim moim poscie To jest cały kod.

Sid mam przy wchodzeniu na serwer pobierane

dalej nie działa ;/


  • +
  • -
  • 0

#12 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 17.09.2019 08:59

To nie jest cały kod, bo chciałem sobie to przetestować, ale cóż...

 

 

Dodaj sobie logi i zobacz co jest nie tak, wypisz np sid, które da ci 'parse', wypisz to ktore wczytane z pliku jest, wypisz linie z pliku. No musisz wykminić co tam nie tak i w którym miejscu coś się sypie (np jakas zmienna ma nie taka wartosc jak byc powinna)


  • +
  • -
  • 0




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

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