Skocz do zawartości

[WildSkript] Gildie: Wchodzenie oraz wychodze z terenu gildii (z intruzem) [+WildSkript].


Rekomendowane odpowiedzi

Witajcie w moim kolejnym (drugim) poradniku dotyczących gildii.

Wszystkie te poradniki dotyczących gildii wychodzą po to

żeby się ogólnie czegoś nauczyć pisząc skrypt na gildie.

 

Głównym obiektem naszego zainteresowania w tym tutorialu

jest wchodzenie oraz wychodzenie z terenu gildii (z intruzem).

 

O co w tym chodzi?

Chodzi w tym o to, że gdy wejdziemy lub wyjdziemy z terenu gildii

pojawi nam się informacje o wchodzeniu lub wychodzeniu

z danego terenu gildii. Gdy wchodzimy na teren gildii

w której nie jesteśmy członkami wszystkim członkom online w tej gildii

wyświetli się informacja o intruzie.

 

Bez zbędnego gadania przejdźmy do pisania, a przed zaczęciem

przypomnę tylko, że do poprawnego działania

kodu potrzebny jest dodatek: WildSkript.

 

No to zaczynamy:

 

Zmienne z których będziemy korzystać:

 

{gildie.%player%.step} = przetrzymywanie tagu gildii na którym się znajdujemy

{gildie.%player%.step-enabled} = zapobiega tylko spamowaniu wejściem/wyjściem.

{gildie.gildia.%{gildie.%player%.step}%.czlonkowie: :*} = członkowie gildii

{gildie.gildia.%{gildie.%player%.step}%.tag} = tag gildii

{gildie.gildia.%{gildie.%player%.step}%.nazwa} = nazwa gildii

 

Teraz przejdźmy do kodu:

 

1. Na początek stworzymy sobie event "on anymove" oraz przypiszemy lokalizacje gracza

do regionu w którym się znajduje:
 

on anymove:	set {_gildia} to Region.at{location of player};

2. Sprawdźmy czy gracz był już na terenie jakiejś gildii, żeby to sprawdzić zmienna:

{gildie.%player%.step} musi być "is set":

if {gildie.%player%.step} is set:

3. A teraz czas na resztę kodu od opuszczania terenu gildii:

			send " &8{@p} &7Opusciles teren gildii &6[%{gildie.gildia.%{gildie.%player%.step}%.tag}%] %{gildie.gildia.%{gildie.%player%.step}%.nazwa}%&7."			if {gildie.gildia.%{gildie.%player%.step}%.czlonkowie::*} doesn't contain "%player%":				loop {gildie.gildia.%{gildie.%player%.step}%.czlonkowie::*}:					send " &8{@p} &cIntruz opuscil teren twojej gildii &7(%player%)&c." to loop-value parsed as player			set {gildie.%player%.step-enabled} to false			delete {gildie.%player%.step}			stop

4. Co to za tutorial bez omówienia kodu:

 

- wyślij informacje do gracza o opuszczeniu terenu;

- zloopuj wszystkich członków terenu gildii na której ostatnio byliśmy.

- jeśli w zloopowanych członkach gildii nie znajdziemy nas;

- wyślij do osób z gildii informacje o tym, że intruz opuścił teren gildii;

 

Całe opuszczanie gildii właśnie zrobiliśmy, teraz czas na wchodzenie:

 

1. Sprawdzamy czy teren gildii zawiera "gildia-". Jeśli tak

to usuwamy "gildia-" aby uzyskać tag gildii:

	if {_gildia} contain "gildia-":		replace all "gildia-" with "" in {_gildia}

2. Blokujemy już, żeby spamowało wejściem/wyjściem:

		if {gildie.%player%.step-enabled} is not set:			set {gildie.%player%.step-enabled} to false		if {gildie.%player%.step-enabled} is false:			set {gildie.%player%.step-enabled} to true

3. Teraz sprawdzamy czy nie jest przypisany teren na który weszliśmy.

Jeśli tak jest to go setujemy na tag gildii:

			if {gildie.%player%.step} is not set:				set {gildie.%player%.step} to "%{_gildia}%"

4. Teraz czas na resztę kodu:

			send " &8{@p} &7Wszedles na teren gildii &6[%{gildie.gildia.%{gildie.%player%.step}%.tag}%] %{gildie.gildia.%{gildie.%player%.step}%.nazwa}%&7."			if {gildie.gildia.%{gildie.%player%.step}%.czlonkowie::*} doesn't contain "%player%":				loop {gildie.gildia.%{gildie.%player%.step}%.czlonkowie::*}:					send " &8{@p} &cNa terenie twojej gildii pojawil sie intruz &7(%player%)&c." to loop-value parsed as player			stop

5. Oraz jego omówienie:

- wyślij do gracza informacje o wejściu na teren gildii;

- zloopuj wszystkich graczy w gildii z terenu na który weszliśmy;

- jeśli w zloopowanych graczach nie znajdziemy nas;

- wysyłamy do graczy z gildii o tym, że intruz wszedł na teren gildii;

 

I'voila, kod napisany. Cały wygląda tak:

on anymove:	set {_gildia} to Region.at{location of player};	if {_gildia} is not set:		if {gildie.%player%.step} is set:			send " &8{@p} &7Opusciles teren gildii &6[%{gildie.gildia.%{gildie.%player%.step}%.tag}%] %{gildie.gildia.%{gildie.%player%.step}%.nazwa}%&7."			if {gildie.gildia.%{gildie.%player%.step}%.czlonkowie::*} doesn't contain "%player%":				loop {gildie.gildia.%{gildie.%player%.step}%.czlonkowie::*}:					send " &8{@p} &cIntruz opuscil teren twojej gildii &7(%player%)&c." to loop-value parsed as player			set {gildie.%player%.step-enabled} to false			delete {gildie.%player%.step}			stop	if {_gildia} contain "gildia-":		replace all "gildia-" with "" in {_gildia}		if {gildie.%player%.step-enabled} is not set:			set {gildie.%player%.step-enabled} to false		if {gildie.%player%.step-enabled} is false:			set {gildie.%player%.step-enabled} to true			if {gildie.%player%.step} is not set:				set {gildie.%player%.step} to "%{_gildia}%"			send " &8{@p} &7Wszedles na teren gildii &6[%{gildie.gildia.%{gildie.%player%.step}%.tag}%] %{gildie.gildia.%{gildie.%player%.step}%.nazwa}%&7."			if {gildie.gildia.%{gildie.%player%.step}%.czlonkowie::*} doesn't contain "%player%":				loop {gildie.gildia.%{gildie.%player%.step}%.czlonkowie::*}:					send " &8{@p} &cNa terenie twojej gildii pojawil sie intruz &7(%player%)&c." to loop-value parsed as player			stop

Pozdrawiam ~.fxy_


 

Edytowane przez .fxy_
Odnośnik do komentarza
https://skript.pl/temat/1979-wildskript-gildie-wchodzenie-oraz-wychodze-z-terenu-gildii-z-intruzem-wildskript/
Udostępnij na innych stronach

Tak mam, ale ja chce go zrobic ;V

Dam ci inny pomysł - rób poradniki z wildskripta, wiele osób nie umie dobrze z nieo korzystać, a to takie łatwe ;)

Co do skryptu to dodaj możliwość dla admina, ile razy kto wchodził na teren gildii ;)

Dodaj to co @up

+ Jeśli ktoś ma dane uprawnienie to nie widać że wszedł/wyszedł z terenu gildi

Poradnik dobrze zrobiony, tylko literowka w evencie dales

on anymove:
a powinienieś dać

on any move:
chyba że to ja sie myle

@up:

To nie jest literówka, działa na oba sposoby bodajże.

 

p.s: To jest tylko tutorial, wy sobie ten kod możecie swobodnie edytować.

Edytowane przez .fxy_

Gitez, draguś :D

tylko sie pisze "i'voila" a nie "I'Vla"

kiedyś nie mogłem znaleść wchodzenia z intruzem i bez intruza, bo chciałem napisać swoje gildie, ale nie chce mi sie ;_;

@UP

 

"i'vla" to skrót od "i'voila", ktory funkcjonuje w krajach romańskich tak samo jak pełne wyrażenie ;)(dość często spotykany we Francji, Włoszech i Hiszpanii)

Poradnik fajny, widzę, że rozbijasz WS na kilka części :D

  • 2 tygodnie później...
  • Szifter zablokował(a) ten temat
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ę...