Pobieranie zmiennej string z tablicy 3107 8

O temacie

Autor Xardas47

Zaczęty 4.05.2016 roku

Wyświetleń 3107

Odpowiedzi 8

Xardas47

Xardas47

Użytkownicy
Mhroczny charakterek
posty249
Propsy150
ProfesjaProgramista
  • Użytkownicy
  • Mhroczny charakterek
Jak w temacie, mam problem z pobraniem stringa z tablicy do innej zmiennej czy zastosowaniem go jako parametr funkcji. Co najdziwniejsze problem dotyczy tylko zmiennych tekstowych, czyli na przykład: CONST int tablica[2] =
{
   1,
   2
};
print(IntToString(tablica[0]));
Parsuje się bez problemu, przy czym taki sam skrypt z tablicą stringów:
CONST string tablica[2] =
{
   "1",
   "2"
};
print(tablica[0]);
wywala błąd o spodziewanym nawiasie przed indeksem tablicy. Co ciekawe skrypt parsuje się prawidłowo, jeśli pominie się index tablicy, jednak jako parametr wykorzystywana jest wtedy pierwsza zmienna z tablicy, co oczywiście mi nie odpowiada.

Miał ktoś kiedyś podobny problem i wie jak go rozwiązać lub pokaże gdzie zrobiłem jakiś głupi błąd?
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Do printów nie da się dodawać zmiennych/stałych z nawiasami.

var string msg; msg = tablica[0];
Print(msg);

Powinno zadziałać.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Xardas47

Xardas47

Użytkownicy
Mhroczny charakterek
posty249
Propsy150
ProfesjaProgramista
  • Użytkownicy
  • Mhroczny charakterek
Niestety, tego też próbowałem. Wtedy parser domaga się średnika przed indexem. Funkcje print podałem jako przykład, tak naprawdę nie mogę wykonać chyba żadnej operacji na zmiennej z tablicy ze stringami, przy czym te z intami działają bez problemu.
 

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
Jak masz Ikarusa, to użyj funkcji MEM_ReadStatStringArr.
Print (MEM_ReadStatStringArr (tablica, 0));
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Xardas47

Xardas47

Użytkownicy
Mhroczny charakterek
posty249
Propsy150
ProfesjaProgramista
  • Użytkownicy
  • Mhroczny charakterek
Wielkie dzięki, z tą funkcją wszystko działa. W sumie, to właśnie miałem szukać rozwiązania w funkcjach Ikarusa więc dzięki za oszczędzenie czasu. Swoją drogą ciekawe co powoduje taki problem. Czyżby błąd parsera? Mimo to, jeszcze raz dzięki.
 

Xardas47

Xardas47

Użytkownicy
Mhroczny charakterek
posty249
Propsy150
ProfesjaProgramista
  • Użytkownicy
  • Mhroczny charakterek
Byłbym zapomniał. Problem rozwiązany więc do zamknięcia, czy coś tam.
 

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
jeszcze co do stringów, mamy taki string jak topic (w b_logentry), załóżmy, że kiedy rozpoczynamy nowe zadanie to wyświetla się nazwa topicanp. nowe zadanie (topic) ,ale musi być to robione tylko jeden raz.

czy silnik przechowuje nazwy stringów juz wcześniej wywołane?

alternatywnie można dopisać zmienna to każdej funckji z wywołaniem stringa i zmieniać jej wartość i dodać warunek, ale jest to robota bardzo pracochłonna. do każdej nazwy zadania trzseba tworzyć zmienną i funkcję sprawdzającą.  nie ma szybszej metody?
 

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
Cytuj
czy silnik przechowuje nazwy stringów juz wcześniej wywołane?
Zmiennych się nie wywołuje :| Używa się ich w warunkach lub po prostu by ułatwić sobie pisanie w funkcji. Każdy obiekt w grze ma swój własny adres (wskaźnik) w pamięci silnika.
Cytuj
załóżmy, że kiedy rozpoczynamy nowe zadanie to wyświetla się nazwa topicanp. nowe zadanie (topic) ,ale musi być to robione tylko jeden raz.
Musiałbyś napisać własną funkcję i podmieniać ją w każdym miejscu, które rozpoczyna lub kończy zadanie.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Cytuj
czy silnik przechowuje nazwy stringów juz wcześniej wywołane?
Zmiennych się nie wywołuje :| Używa się ich w warunkach lub po prostu by ułatwić sobie pisanie w funkcji. Każdy obiekt w grze ma swój własny adres (wskaźnik) w pamięci silnika.
Cytuj
załóżmy, że kiedy rozpoczynamy nowe zadanie to wyświetla się nazwa topicanp. nowe zadanie (topic) ,ale musi być to robione tylko jeden raz.
Musiałbyś napisać własną funkcję i podmieniać ją w każdym miejscu, które rozpoczyna lub kończy zadanie.
albo edytowac b_logentry co w sumie na jedno wychodzi, tyle że nie edytuje w każdym zadaniu i mniej pracy, tak też zrobiłem, dzięki.
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry