Skocz do zawartości
  • 0

Możliwość wybrania konta


Klaudiusz258
 Udostępnij

Pytanie

Siemka, robię serwer rpg ale od dłuższego czasu myślę jak zrobić jedna rzecz, mianowicie chodzi mi o to ze gdy gracz wchodzi na serwer Otwiera mu się gui i tam może wybrać postać w sensie: Zapis 1 gry, Zapis 2, gry takie wczytywanie postaci jest takie cos na WynnCraft. Jeżeli ktoś nadal nie ogarnia napiszcie napisze jakoś inaczej :D

Odnośnik do komentarza
Udostępnij na innych stronach

11 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

to bedzie trudne jeśli na serwerze jest logowanie a najpewniej jest musiałbyś zrobić tak że jak np gracz sie zaloguje czyli wpisze poprawne haslo to go teleportuje do innego świata w którym zawsze jest otwarte GUI z zapisami

1 pytanie ile może byś max zapisów nie polecam wiecej niz 54 bo tyle ma ma podwójna skrzynka

2 pytanie do tego bedą klasy?

3 pytanie jak mają wyglądać itemki np zapis gry end stone a nowa gra np zielona wełna

4 pytanie ma zapisywać pozycje ? po wyjściu

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Spoiler
options:
	swiat.po.logowaniu.z.GUI: world     #podaj swiat w którym ustawiles /setlogowanie świat pokaze ci sie przy wpisaniu komendy /setlogowanie#
	item.nowa.gra: end stone			#item który pokazuje nową gre#
	item.zapis.gry: green wool			#item który pokazuje zapisaną gre#
	item.usuwanie.gry: red wool			#item który pokazuje usuwanie zapisu gry#
	komenda.na.zmiane.zapisu.gry: /nowy #komenda która pozwala zmieniać zapisy gry bez wylogowywania z serwera#

#-----------------------------------------------#
#Komendy do ustawienia WAZNE!!! TYLKO GRACZ Z OP#
#-----------------------------------------------#
	
command /setspawn:
	trigger:
		if player is op:
			set {spawn} to location of player
			send "&e&lPomyslnie ustawiono miejsce spawnu"
		
command /setlogowanie:
	trigger:
		if player is op:
			set {miejsce.logowania} to location of player
			send "&e&lPomyslnie ustawiono miejsce logowania [swiat: %world of player%]"

#-----------------------------------------------#
#JEDYNA KOEMNDA W TYM SKRIPT DLA ZWYKLYCH GRACZY#
#-----------------------------------------------#
		
command {@komenda.na.zmiane.zapisu.gry}:
	trigger:	
		if {w.grze::%player%} is set:
			set {itemy::%player%::%{w.grze::%player%}%} to serialized inventory of player
			set {helm::%player%::%{w.grze::%player%}%} to helmet of player
			set {klata::%player%::%{w.grze::%player%}%} to chestplate of player
			set {spodnie::%player%::%{w.grze::%player%}%} to leggings of player
			set {buty::%player%::%{w.grze::%player%}%} to boots of player
			set {wylogowanie::%player%::%{w.grze::%player%}%} to "%now%"
			set {miejsce::%player%::%{w.grze::%player%}%} to location of player
			clear {w.grze::%player%}
			wait 5 tick
			clear player's inventory
		
#----------------------------#
#EVENTY ZAPISUJĄCE NIE RUSZAĆ#
#----------------------------#

on join:
	clear player's inventory
	teleport player to {miejsce.logowania}
on quit:
	if {w.grze::%player%} is set:
		set {itemy::%player%::%{w.grze::%player%}%} to serialized inventory of player
		set {helm::%player%::%{w.grze::%player%}%} to helmet of player
		set {klata::%player%::%{w.grze::%player%}%} to chestplate of player
		set {spodnie::%player%::%{w.grze::%player%}%} to leggings of player
		set {buty::%player%::%{w.grze::%player%}%} to boots of player
		set {wylogowanie::%player%::%{w.grze::%player%}%} to "%now%"
		set {miejsce::%player%::%{w.grze::%player%}%} to location of player
		clear {w.grze::%player%}
		wait 5 tick
		clear player's inventory		

#----------------------------------------------#
#KOEMDY WYKONYWANE PRZEZ KONSOLE NIE RUSZAĆ !!!#
#----------------------------------------------#

command /nowagra [<player>]:
	executable by: console
	trigger:
		set {_} to size of {zapisy::%player-arg%::*} +1
		set {zapisy::%player-arg%::%{_}%} to {_}
		set {w.grze::%player-arg%} to "%{_}%"
		teleport player-arg to {spawn}
		send "&e&lZaczynasz nowa przygode. Powodzenia!" to player-arg
command /usunzapis [<text>] [<player>]:
	executable by: console
	trigger:
		clear {w.grze::%player-arg%}
		clear {helm::%player-arg%::%arg-1%}
		clear {klata::%player-arg%::%arg-1%}
		clear {spodnie::%player-arg%::%arg-1%}
		clear {buty::%player-arg%::%arg-1%}
		clear {miejsce::%player-arg%::%arg-1%}
		clear {wylogowanie::%player-arg%::%arg-1%}
		clear {zapisy::%player-arg%::%arg-1%}
		clear {itemy::%player-arg%::%arg-1%}
command /zapis [<text>] [<player>]:
	executable by: console
	trigger:
		set {w.grze::%player-arg%} to arg-1
		restore inventory of player-arg from {itemy::%player-arg%::%arg-1%}
		wait 5 tick
		equip player-arg with "%{helm::%player-arg%::%arg-1%}%" parsed as item
		equip player-arg with "%{klata::%player-arg%::%arg-1%}%" parsed as item
		equip player-arg with "%{spodnie::%player-arg%::%arg-1%}%" parsed as item
		equip player-arg with "%{buty::%player-arg%::%arg-1%}%" parsed as item
		teleport player-arg to {miejsce::%player-arg%::%arg-1%}
		send "&e&lKontynulujesz zapis gry z dnia &2&l[%{wylogowanie::%player-arg%::%arg-1%}%]" to player-arg
#----------------------------------------------------------------------------------------------#
#OTWIERANIE GUI NIE RUSZAĆ!!! PS: NIEBEDZIE LAGOWAĆ [every second] ale tylko dla jednego świata#
#----------------------------------------------------------------------------------------------#		
every second:
	loop all players in world "{@swiat.po.logowaniu.z.GUI}":
		if {w.grze::%loop-player%} is not set:
			if inventory name of loop-player's current inventory is not "Twoje zapisy gry":
				open chest with 3 rows named "Twoje zapisy gry" to loop-player
			if size of {zapisy::%loop-player%::*} > 0:
				set {_} to 0
				loop {zapisy::%loop-player%::*}:
					format slot {_} of loop-player with {@item.zapis.gry} named "&2Zapis Nr.&c&l%{_}+1%" with lore "&2&l[%{wylogowanie::%loop-player%::%loop-value%}%]" to close then run "zapis %loop-value% %loop-player%"
					format slot {_}+18 of loop-player with {@item.usuwanie.gry} named "&cUsun Zapis Nr.&c&l%{_}+1%" with lore "&2&l[%{wylogowanie::%loop-player%::%loop-value%}%]" to close then run "usunzapis %loop-value% %loop-player%"
					add 1 to {_}
				if size of {zapisy::%loop-player%::*} <= 4:
					format slot 26 of loop-player with {@item.nowa.gra} named "&e&lNowa gra" to close then run "nowagra %loop-player%"
			else:
				format slot 26 of loop-player with {@item.nowa.gra} named "&e&lNowa gra" to close then run "nowagra %loop-player%"	

 

prosze licze na plusiki pod postami siedziałem nad tym około 3 godzinki wszystko działa wszystko czyli:

1.musisz ustawić że po zalogowaniu trzeba np wejsc w portal który teleportuje do osobnego swiata i ustaw tan świat  w options: swiat.po.logowaniu.z.GUI: TUTAJ

2. teraz to co jest dodane w skript:

2.1:zapisywanie automatyczne przy wyjsciu

2.2:zapisywanie komendą standardowo /nowy ale można zmienic w options:

2.3:usuwanie zapisu gry

2.4:podana data ostatniego grania na danym zapisie

2.5:tworzenie nowej gry

2.6:mozliwosc ustawienia bloków w GUI w options:

2.7:aktualnie max jest 5 zapisów ale może być max 8 [w 112 linijce "if size of {zapisy::%loop-player%::*} <= 4:" 4 zamieniamy na liczbe zapisów tylko że 1 oznacza 2 zapisy 3 oznacza 4 itd..]

i to tyle jeszcze raz licze na plusiki pod postami :)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Jeśli o to czyszczenie chodzi, to pewnie jest taki łopatologiczny sposób z poziomu skryptu przez variables.csv, a mianowicie wczytanie zawartości pliku (najlepiej pojedynczych linijek), sprawdzenie czy dana sekcja zawiera gracza i usunięcie tych sekcji, które go zawierają. Nie wiem na ile zadowala cię ten sposób :P

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...