Skocz do zawartości
  • 0

Możliwość wybrania konta


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
https://skript.pl/temat/18037-mo%C5%BCliwo%C5%9B%C4%87-wybrania-konta/
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
https://skript.pl/temat/18037-mo%C5%BCliwo%C5%9B%C4%87-wybrania-konta/#findComment-123319
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
https://skript.pl/temat/18037-mo%C5%BCliwo%C5%9B%C4%87-wybrania-konta/#findComment-123478
Udostępnij na innych stronach

  • 0

Dzięki, odwaliłeś dobra robote lajczki już ci dałem :D Tylko ja chciałem żeby to działało na takiej zasadzie, np ze jak stworzymy nowy zapis gry to tak jakby gramy pod innym nickiem po wtedy wszystko jest od "zera" zmienne sa inne w skryptach itpd

Odnośnik do komentarza
https://skript.pl/temat/18037-mo%C5%BCliwo%C5%9B%C4%87-wybrania-konta/#findComment-123501
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
https://skript.pl/temat/18037-mo%C5%BCliwo%C5%9B%C4%87-wybrania-konta/#findComment-123660
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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