dwie zmienne w jednej linii 10234 25

O temacie

Autor karus

Zaczęty 9.12.2011 roku

Wyświetleń 10234

Odpowiedzi 25

karus

karus

Użytkownicy
posty122
  • Użytkownicy

karus

dwie zmienne w jednej linii
2011-12-09, 11:41(Ostatnia zmiana: 2011-12-09, 11:42)
Witam

Dajmy na to że zadeklaruję dwie zmienne tekstowe

var string zmienna1;
var string zmienna2;

I pytanie, jak połączyć te dwie zmienne tak by były w jednej linii, np w dokumencie jako odwołanie (mowa o Doc_PrintLine   ( nDocID,  0, "zmienna1 + zmienna 2"); )

Pozdrawiam
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
http://themodders.org/index.php?/topic/14222-wlasny-dziennik/

Przecież tu masz wszystko na tacy... Czekaj, czy to nie ty już o to pytałeś?

karus

karus

Użytkownicy
posty122
  • Użytkownicy

karus

dwie zmienne w jednej linii
#2 2011-12-09, 11:53(Ostatnia zmiana: 2011-12-09, 11:55)
Tak, ale rzecz w tym że w praktyce gdy wybiorę literę A, wyskakuje A, wybiore B, wyskakuje B tyle że pod A a nie obok. A mi chodzi o to żeby połączyć zmienne tekstowe w taki sposób żeby B pojawiało się obok A. Jak dodać do siebie zmienne tekstowe? Uczę się tego, więc nie wszystko mogę od razu łapać.

Pokombinowałem trochę później i B pojawia się obok A, tyle że najpierw muszę wybrać B, potem A, bo odwrotnie to B kasuje całość.
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja

Adanos
Administrator

dwie zmienne w jednej linii
#3 2011-12-09, 11:55(Ostatnia zmiana: 2011-12-09, 14:32)
var string zmienna1;
var string zmienna2;
var string tekst;
tekst = ConcatStrings(zmienna1, ConcatStrings(" ", zmienna2));

Doc_PrintLine ( nDocID, 0, tekst);

Cytuj
Jak dodać do siebie zmienne tekstowe?
Nie dodajesz, tylko łączysz poprzez ConcatStrings.

EDYCJA
Poprawiłem xD

karus

karus

Użytkownicy
posty122
  • Użytkownicy

karus

dwie zmienne w jednej linii
#4 2011-12-09, 19:10(Ostatnia zmiana: 2011-12-09, 19:11)
Syntax error TEKST (line 13).

Tutaj:
tekst = ConcatStrings(zmienna1, ConcatStrings(" ", zmienna2));

Trochę męczę się z tym, ale ciągle wywala ten błąd.
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja

Adanos
Administrator

dwie zmienne w jednej linii
#5 2011-12-09, 19:14(Ostatnia zmiana: 2011-12-09, 19:15)
Daj trochę więcej tego skryptu. Najlepiej co masz wyżej.

karus

karus

Użytkownicy
posty122
  • Użytkownicy

karus

dwie zmienne w jednej linii
#6 2011-12-09, 19:17(Ostatnia zmiana: 2011-12-09, 19:19)
// *************************
// Globalvariablen für Story
// *************************
// *************************
// *********

var string x;
var string xn;
var string tekst;
tekst = ConcatStrings(x, ConcatStrings(" ", xn));

A potem leci standardowa zawartość story_globals
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja

Adanos
Administrator

dwie zmienne w jednej linii
#7 2011-12-09, 19:20(Ostatnia zmiana: 2011-12-09, 19:23)
To wszystko masz w pliku zmiennych globalnych? Jak tak, to musisz przypisanie
tekst = ConcatStrings(zmienna1, ConcatStrings(" ", zmienna2));dać do bloku swojej funkcji, tam gdzie masz ten dziennik.

EdekSumo

EdekSumo

Wyspa Khorinis
posty1739
Propsy925
ProfesjaLvl designer
  • Wyspa Khorinis

EdekSumo
Wyspa Khorinis

dwie zmienne w jednej linii
#8 2011-12-09, 19:21(Ostatnia zmiana: 2011-12-09, 19:25)
@karus ustalanie wartości zmiennej musi odbywać się w jakiejś metodzie.

Adanos mnie wyprzedził ^^
 

karus

karus

Użytkownicy
posty122
  • Użytkownicy

karus

dwie zmienne w jednej linii
#9 2011-12-09, 19:31(Ostatnia zmiana: 2011-12-09, 19:33)
Okej więc zadeklarowałem wartość zmiennej tam gdzie mam księgę, no i... nadal Syntax error wali.

Kod księgi

//////////////// \\\\\\\\\\\\\\\\\\
INSTANCE CzystaKsiega (C_ITEM)

{
        name = "Czysta Ksiega";

mainflag = ITEM_KAT_DOCS;
flags = ITEM_MISSION;


   visual = "ItWr_Book_02_03.3ds";
material = MAT_LEATHER;

scemeName = "MAP";
on_state[0] = UseCzystaKsiega;
description = name;

TEXT[0] = "";
};

FUNC VOID UseCzystaKsiega()
{

var int nDocID;
               tekst = ConcatStrings(x, ConcatStrings(" ", xn));

nDocID = Doc_Create ()  ; // DocManager
Doc_SetPages ( nDocID,  2 );                         //wieviel Pages

Doc_SetPage ( nDocID,  0, "Book_Mage_L.tga", 0 );
Doc_SetPage ( nDocID,  1, "Book_Mage_R.tga", 0 );

//1.Seite
 
  Doc_SetFont ( nDocID, -1, "font_15_book.tga"   ); // -1 -> all pages
  Doc_PrintLine ( nDocID,  0, "");
  Doc_PrintLine ( nDocID,  0, "");
Doc_SetMargins ( nDocID,  0,  275, 20, 30, 20, 1   );  //  0 -> margins are in pixels
Doc_PrintLine ( nDocID,  0, " " );
Doc_SetFont ( nDocID, -1, "font_10_book.TGA"   ); // -1 -> all pages
Doc_PrintLine ( nDocID,  0,  "");
Doc_PrintLine ( nDocID,  0, "");
Doc_PrintLines ( nDocID,  0, tekst);
Doc_PrintLines ( nDocID,  0, "");
//2.Seite
Doc_SetMargins ( nDocID, -1, 30, 20, 275, 20, 1   );  //  0 -> margins are in pixels (Position des Textes von den Ränder des TGAs aus, links,oben,rechts,unten)
Doc_PrintLine ( nDocID,  1, "");
Doc_PrintLine ( nDocID,  1, "");
Doc_PrintLine ( nDocID,  1, "");
Doc_PrintLine ( nDocID,  1, "");
Doc_PrintLines ( nDocID,  1, "");
Doc_PrintLine ( nDocID,  1, "");
Doc_PrintLine ( nDocID,  1, "");
Doc_PrintLine ( nDocID,  1, "");
Doc_Show ( nDocID );

};

początek pliku story_globals.d

// *************************
// Globalvariablen für Story
// *************************
// *************************
var string zmienna1;
var string zmienna2;
var string tekst;
 

EdekSumo

EdekSumo

Wyspa Khorinis
posty1739
Propsy925
ProfesjaLvl designer
  • Wyspa Khorinis

EdekSumo
Wyspa Khorinis

dwie zmienne w jednej linii
#10 2011-12-09, 19:32(Ostatnia zmiana: 2011-12-09, 19:36)
Albo nie spróbuj tak:
var string a;
a = ConcatStrings(x, " ");
tekst = ConcatStrings(a, xn);
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
A te zmienne x i xn masz zadeklarowane?

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
dobra koniec milczenia do tego potrzebna ci jedna zmienna w dialogu dajesz
func void DIA_Questob_ST_Wybor1 ()
{
        x = ConcatStrings(x, "A");
};

func void DIA_Questob_ST_Wybor2 ()
{
        x = ConcatStrings(x, "B");
};

func void DIA_Questob_ST_Wybor3 ()
{
        x = ConcatStrings(x, "C");
};
w książce dajesz
Doc_PrintLines  ( nDocID,  1, ""); ważne jest te s na końcu zeby ci po za marginesy nie wychodziło

karus

karus

Użytkownicy
posty122
  • Użytkownicy

karus

dwie zmienne w jednej linii
#13 2011-12-09, 20:23(Ostatnia zmiana: 2011-12-09, 20:24)
Cytuj
A te zmienne x i xn masz zadeklarowane?

Tak.

Cytuj
Albo nie spróbuj tak:

var string a;
a = ConcatStrings(x, " ");
tekst = ConcatStrings(a, xn);


Zrobiłem, nie wywala błędu, ale przy wybieraniu literek, nie pojawiają się w księdze, chyba że znów źle zrobiłem odwołanie do zmiennej - wrzucam aktualny kod

INSTANCE CzystaKsiega (C_ITEM)

{
        name = "Czysta Ksiega";

mainflag = ITEM_KAT_DOCS;
flags = ITEM_MISSION;


   visual = "ItWr_Book_02_03.3ds";
material = MAT_LEATHER;

scemeName = "MAP";
on_state[0] = UseCzystaKsiega;
description = name;

TEXT[0] = "";
};

FUNC VOID UseCzystaKsiega()
{
a = ConcatStrings(x, " ");
tab = ConcatStrings(a, xn);
var int nDocID;

nDocID = Doc_Create ()  ; // DocManager
Doc_SetPages ( nDocID,  2 );                         //wieviel Pages

Doc_SetPage ( nDocID,  0, "Book_Mage_L.tga", 0 );
Doc_SetPage ( nDocID,  1, "Book_Mage_R.tga", 0 );

//1.Seite
 
  Doc_SetFont ( nDocID, -1, "font_15_book.tga"   ); // -1 -> all pages
  Doc_PrintLine ( nDocID,  0, "");
  Doc_PrintLine ( nDocID,  0, "");
Doc_SetMargins ( nDocID,  0,  275, 20, 30, 20, 1   );  //  0 -> margins are in pixels
Doc_PrintLine ( nDocID,  0, " " );
Doc_SetFont ( nDocID, -1, "font_10_book.TGA"   ); // -1 -> all pages
Doc_PrintLine ( nDocID,  0,  "");
Doc_PrintLine ( nDocID,  0, "");
Doc_PrintLines ( nDocID,  1, tab);
Doc_PrintLines ( nDocID,  0, "");
//2.Seite
Doc_SetMargins ( nDocID, -1, 30, 20, 275, 20, 1   );  //  0 -> margins are in pixels (Position des Textes von den Ränder des TGAs aus, links,oben,rechts,unten)
Doc_PrintLine ( nDocID,  1, "");
Doc_PrintLine ( nDocID,  1, "");
Doc_PrintLine ( nDocID,  1, "");
Doc_PrintLine ( nDocID,  1, "");
Doc_PrintLines ( nDocID,  1, "");
Doc_PrintLine ( nDocID,  1, "");
Doc_PrintLine ( nDocID,  1, "");
Doc_PrintLine ( nDocID,  1, "");
Doc_Show ( nDocID );

};

func void DIA_Questob_ST_Wybor1_1_1()
{
x = ConcatStrings(x, "A");
};

func void DIA_Questob_ST_Wybor3_1()
{
xn = ConcatStrings(xn, "B");
};

// *************************
// Globalvariablen für Story
// *************************
// *************************
// *********
var string a;
var string x;
var string xn;
var string tab;

@RafalBudzis - podobnie jest jak w propozycji edka. Wszystko sie parsuje poprawnie, ale brak literek po jej wybraniu w ksiazce...

Hmm co moze byc jeszcze nie tak... :D
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
@RafalBudzis - podobnie jest jak w propozycji edka. Wszystko sie parsuje poprawnie, ale brak literek po jej wybraniu w ksiazce...
Doc_PrintLines  ( nDocID,  1, "");  to był tylko przykłda żebyś nie dał przypadkiem Doc_PrintLine bez s
a prawidłowy skrypt powinien wyglądać on tak
Doc_PrintLines  ( nDocID,  1, x);
Myślałem ze się połapiesz sorry




@down o cholerka to nie wiem ale jestem pewny ze można to zrobić na 1 zmiennej

karus

karus

Użytkownicy
posty122
  • Użytkownicy
Dałem tam x ;) Aż taki newbie nie jestem :lol:
 

Shothic

Shothic

Użytkownicy
posty38
Propsy17
  • Użytkownicy
Najpierw ustaw marginesy a potem napisz


Doc_PrintLines  ( nDocID,  1, tab); // Doc_PrintLines  ( nDocID,  0, tab)
Doc_PrintLines  ( nDocID,  0, "");
//2.Seite
Doc_SetMargins  ( nDocID, -1, 30, 20, 275, 20, 1  
 
 

karus

karus

Użytkownicy
posty122
  • Użytkownicy
To samo, brak liter w księdze.  :blink:
 

Shothic

Shothic

Użytkownicy
posty38
Propsy17
  • Użytkownicy
No to coś źle wpisujesz, bo mi wszystko działa.
Odpal print i zobacz czy wypisze tego stringa.
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
A kiedy przypisujesz jakąś wartość zmiennym x i xn? Kiedy wywołujesz tą funkcję: DIA_Questob_ST_Wybor1_1_1?


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