You are not logged in.



Dear visitor, welcome to Runes of Magic PL. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Tuesday, May 15th 2018, 7:00pm

Wpisywanie danych gry do pliku testowego

Witam.
Czy ktoś może z was bawił się w LUA obslugą plików z poziomu gry?

Chodzi mi tak właściwie o:
1. utworzenie pliku *txt w katalogu addona, jezeli nie istnieje
2. zczytanie petla calosci zawartosci do tablicy, jezeli byly jakies tresci
3. dopisanie informachi do pliku

probowalem z IO, lecz coś mi nie idzie :

Spoiler Spoiler

function plik()
file = io.open("test.lua", "w")
io.output(file)
io.write("-- End of the test.lua file")
file:close()
end

Razz

Wygrałem II Wojne Spamowa !

Posts: 1,028

Location: Gdynia

  • Send private message

2

Wednesday, May 16th 2018, 8:00am

Z tego co wiem API roma nie pozwala na operacje na plikach.

3

Wednesday, May 16th 2018, 9:06pm

W takim razie, na jakiej zasadzie dzialaja addony altsync itp>? przeciez gdzies w jakis sposob musza zapisywac swoje sutawienia

Razz

Wygrałem II Wojne Spamowa !

Posts: 1,028

Location: Gdynia

  • Send private message

4

Thursday, May 17th 2018, 6:40pm

Gra automatycznie zapisuje zapisuje wskazane zmienne w specjalnym pliku, po wylogowaniu postaci (event SAVE_VARIABLES). Podczas logowania następuje event LOAD_VARIABLES, w którym zmiennie są wczytywane z tego pliku. Jak wspomniałem wyżej, z tego co wiem, ręczne otwieranie/zamykanie plików nie jest możliwe.

Uure

Szalony Siecznik

Posts: 209

Location: Saoraid

  • Send private message

5

Friday, May 18th 2018, 6:43pm

Zaraz, zaraz, zapisywanie to chyba jest zablokowane, ale czytanie? Sprobowalbym.

Na 100% dofile() dziala, bo to podstawa macrohelpera. Natomiast w kodzie macrohelpera jest tez loadfile()

Source code

1
2
3
4
5
	local func, err = loadfile(f);
	if (err) then
		return false, err;
	end;
	dofile(f);

- ciekawe, ze nie uruchamiaja wyniku "func();" tylko wolaja jeszcze raz dofile() na tym samym pliku. Moze loadfile() tylko zwraca blad lub nie, ale nie daje zawartosci? Nie sprobowalem.

Natomiast zapisywanie - tak, z tego co wiem jest zablokowane, i dobrze (nawet ograniczone do katalogu gry byloby niebezpieczne).


PS: Natomiast dziala pisanie do clipboardu. Nie az tak wygodne, ale moze dla ciebie wystarczy? Np. taki kod

Source code

1
2
3
4
5
6
7
8
9
debug_string = ""
function DEBUG_MSG(new_txt)
	if new_txt == nil then
	   new_txt = "[NIL]"
	end
	debug_string = debug_string .. "\n" .. new_txt
	Chat_CopyToClipboard(string.sub(debug_string, -1023))
	ChatFrame1:AddMessage(new_txt);
end

za kazdym razem kiedy zawolasz DEBUG_MSG("AAA"), to "AAA" nie tylko zostanie wypisane na czacie, ale tez dodane do schowka. Zawartosc schowka przezywa nawet crashe - nieocenione przy pisaniu skryptow! :)
------------- NAWIA - najlepszy polski serwer! :P -------------

1 user apart from you is browsing this thread:

1 guests