←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Zapis/Odczyt nvault tablicy

  • +
  • -
ELOS - zdjęcie ELOS 30.08.2012

Siema mam pytanie jak zrobić standardowy zapis oraz odczyt tablicy?

Przykładowo posiadam tablice

new tablica[33][10];

i jak zapisać/odczytać wartość takiej tablicy za pomocą nvalut ? przykładowa wartość

tablica[id][4] = 1;

Proszę o szybką odpowiedź, daje + ;o
Odpowiedz

  • +
  • -
ELOS - zdjęcie ELOS 30.08.2012

Potrafię zrobić zwykły zapis... Ciekawi mnie natomiast jak zapisać taką tablice.. Szukałem i nigdzie nie znalazłem aby zapisać wartość tablicy.
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 30.08.2012

Przecież to robi się tak samo ^ ^

Domyślam się o co Ci chodzi, ale na razie piszesz to w taki sposób, jakbyś nie umiał zapisać czegokolwiek do pliku vault.
Odpowiedz

  • +
  • -
ELOS - zdjęcie ELOS 30.08.2012

To niestety ja nie wiem jak ; / jeżeli mi ktoś pomoże to dam +
Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 30.08.2012


dozapisu[128]
formatex(dozapisu, 127, "%d#%d#%d#%d#%d#%d#%d#%d#%d#%d", tablica[id][0], tablica[id][1], tablica[id][2], tablica[id][3], tablica[id][4], tablica[id][5], tablica[id][6], tablica[id][7], tablica[id][8], tablica[id][9])


Może tak spróbuj zapisywać dla każdego gracza.
Odpowiedz

  • +
  • -
ELOS - zdjęcie ELOS 30.08.2012

własnie tego sposobu chciałem uniknąć ;/ czy nie ma innego ?
Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 30.08.2012

A co masz złego w tym zapisie?
Odpowiedz

  • +
  • -
ELOS - zdjęcie ELOS 30.08.2012

powtarzająca się zmienna ; p nie lubię mieć nawalone w kodzie i dla tego się cały czas szukam innego sposobu ;/
Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 30.08.2012

Zawsze możesz użyć pętli i funkcji add xD
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 30.08.2012

Jeśli znasz wielkość tablicy, to nie ma sensu robić tego inaczej.
Odpowiedz

GT Team - zdjęcie GT Team 30.08.2012

add to najlepsze rozwiązanie, a jak chcesz wczytać to pisz na pw
Odpowiedz

  • +
  • -
ELOS - zdjęcie ELOS 30.08.2012

No dobra skoro tak to zrobię kilka razy tą samą zmienna.
Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 30.08.2012

@PaTrIcKx

Po co pw, ktoś potem będzie szukał rozwiązania i niepotrzebny temat, przy wczytywaniu zamieniasz "#" na " " przy użyciu replace_all, a potem dzielisz to sobie przy użyciu parse, ot cała filozofia.
Odpowiedz

  • +
  • -
ELOS - zdjęcie ELOS 30.08.2012

Nie rozumiem możesz pokazać to po przez przykład ? *(chodzi mi o funkcje add)
tego chciałem uniknąć look
Spoiler


Zapewne mi wyskoczy błąd że za dużo kodu w jednej linijce..

Edit kochani ; ]

error 075: in put line too long (after substitutions)
Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 30.08.2012


formatex(vaultdata, 127, "%d", odblkowane[id][1])
//i teraz pętla
for(new i=2; i < rozmiartablicy; i++)
{
add(vaultdata, 127, "#%d", odblokowanie[id][i])
}

coś koło tego :D
Odpowiedz

  • +
  • -
ELOS - zdjęcie ELOS 31.08.2012

K!113r, co do zapisu działa dzięki. Teraz mam pytanie co do wczytania danych tutaj zdaję się być bardziej skomplikowane posiadam taki kod:
Spoiler

muszę teraz jakaś wrzucić formatexa do parse.
Odpowiedz

  • +
  • -
dasiek - zdjęcie dasiek 31.08.2012

jeśli ilość elementów tablicy jest taka sama to oddziel ją Darkowskim Explode http://amxx.pl/topic/43223-explode/ z vaultdata do tablicy odblokowane (dodając str_to_num)
Odpowiedz

  • +
  • -
ELOS - zdjęcie ELOS 31.08.2012

jeśli ilość elementów tablicy jest taka sama to oddziel ją Darkowskim Explode http://amxx.pl/topic/43223-explode/ z vaultdata do tablicy odblokowane (dodając str_to_num)

Niestety nie wiem o co chodzi ;/
Odpowiedz

  • +
  • -
dasiek - zdjęcie dasiek 31.08.2012

jak masz rekord np

23#44#9#1#4#

to jak chcesz szybko zapisać poszczególne wartości do tablicy to zrób to tak.
new out[5][3];
explode(vaultdata,'# ',out,5,3)
for(new i = 0 ; i<5;i++)
       tablica[id][i] = str_to_num(out[i])
Odpowiedz