Zasięg widzenia na zdarzeniach
Aktualny czas: 20-06-25, 22:00 Witaj! Przejdź do zakładki Logowanie lub Rejestracja


Odpowiedz 
Zasięg widzenia na zdarzeniach
Darings Offline
*


Liczba postów: 25
Dołączył: 07-01-14

Pomógł: 0



Post: #1
zarowa Zasięg widzenia na zdarzeniach

Witam,

udało mi się stworzyć bardzo prostą zdarzeniówkę odpowiadającą za zasięg widzenia. Jednak może mieć ona również szersze zastosowanie.

Będziemy potrzebować:

-2 zmiennych dla gracza (zmienne stałe, wystarczy stworzyć tylko raz)
-2 zmiennych dla eventu (próbowałem zrobić tak, że nie trzeba dla każdego nowego eventu dawać nowych zmiennych, ale nie chciało działać w ten sposób, więc musimy za każdym razem tworzyć nowe zmienne)

W wytłumaczeniu działania skryptu pomocna będzie ta grafika, która jednocześnie będzie małą ściągawką :

http://s6699.chomikuj.pl/ChomikImage.asp...j-f-Y&pv=2

Na czym to polega? Już tłumaczę:

1. Tworzymy gdzieś na mapie zdarzenie równoległe w którym znajduje się:

a)Zmień zmienną[001]=współrzędna X gracza
b)Zmień zmienną[002]=współrzędna Y gracza
c)Zmień zmienną[003]=współrzędna X Eventu o danej nazwie np. :EV001
d)Zmień zmienną[004]=współrzędna Y Eventu o danej nazwie np. :EV001

Jeżeli chcemy żeby więcej zdarzeń miało zasięg widzenia to tworzymy kolejne 2 zmienne dla nowego zdarzenia:

e)Zmień zmienną[005]=współrzędna X Eventu o danej nazwie np.: EV002
f)Zmień zmienną[005]=współrzędna Y Eventu o danej nazwie np.: EV002
itd.

2. Tworzymy na mapie zdarzenie równoległe w którym znajduje się:
a)Zmień zmienną[003]-Zmienna[001] (Odejmujemy od Zmiennej X danego zdarzenia Zmienną X gracz)
b)Zmień zmienną[004]-Zmienna[002] (Odejmujemy od Zmiennej Y danego zdarzenia Zmienną Y gracz)

Dla kolejnych zdarzeń robimy to samo (o ile są inne zdarzenia):
c)Zmień zmienną[005]-Zmienna[001] (Odejmujemy od Zmiennej X danego zdarzenia Zmienną X gracz)
d)Zmień zmienną[006]-Zmienna[002] (Odejmujemy od Zmiennej Y danego zdarzenia Zmienną Y gracz)

Jak widzicie zmienia się tylko numer zmiennej dla zdarzenia. Zmienne dla gracza są stałe.


Dla każdego zdarzenia możemy ustawić INDYWIDUALNY oraz DOWOLNY zasięg widzenia. Jak to zrobić? To bardzo proste, pomoże nam w tym grafika którą zamieściłem wyżej:

Na samym środku grafiki znajduje się pozycja danego zdarzenia, jeżeli chcemy żeby zdarzenie miało view range o zasięgu 1 kratki to w tym zdarzeniu robimy tak:

Przykład dla zdarzenia EV001: (Trzeba ustawić zdarzenie równoległe w evencie)

>Ustaw warunek: Zmienna[003]=1
>>Ustaw warunek: Zmienna[004]=0
>>>Ustawiamy jakąś akcje!!!

W tym ustawieniu gracz wywoła akcję (Event zobaczy gracza) jeżeli będzie 1 kwadracik pod danym zdarzeniem. Jeżeli chcemy ustawić większy obszar to robimy analogicznie jak w powyższym przypadku. Pomocne będą wyniki z odejmowania dla X oraz Y z obrazka.

Po prostu patrzymy na czerwony napis EVENT na środku. A wszystkie inne kwadraciki z x=ileś tam i y=ileś tam to wyniki jakie należy ustawić w Warunku działania zdarzenia.

Podam przykład na viev range zdarzenia o zasięgu 1 kratki:

>Ustaw warunek: Zmienna[003]=0
>>Ustaw warunek: Zmienna[004]=1
>>>Jakaś akcja
_____
>Ustaw warunek: Zmienna[003]=1
>>Ustaw warunek: Zmienna[004]=0
>>>Jakaś akcja
_____
>Ustaw warunek: Zmienna[003]=-1
>>Ustaw warunek: Zmienna[004]=0
>>>Jakaś akcja
_____
>Ustaw warunek: Zmienna[003]=0
>>Ustaw warunek: Zmienna[004]=-1
>>>Jakaś akcja

A teraz porównajcie to z obrazkiem który wstawiłem. Proste prawda?

Nie musimy ustawiać zasięgu widzenia po okręgu, możemy ustawić, że zdarzenia widzi tylko to co ma przed sobą. Wystarczy użyć odpowiednich wyników dla zmiennych.


No dobrze, ale co jeśli zdarzenie nie stoi w miejscu tylko jest w ruchu? Wtedy musimy dodać, warunek, że jeżeli zdarzenie jest odwrócone twarzą w daną stronę to ma określony (inny) zasięg widzenia. Trochę jest przy tym roboty, ale daje to naprawdę dużą satysfakcję, ponieważ zrobiliśmy to sami, a nie za pomocą gotowego skryptu. Ponadto tutaj możemy ustawić dowolny zasięg widzenia i nie ogranicza nas nic.

Dziękuje za uwagę i pozdrawiam! Życzę wszystkim powodzenia w tworzeniu i zachęcam do robienia wszystkiego samemu zamiast wyręczać się cudzym już gotowym skryptem którego nawet nie rozumiemy! Zdarzenia rulez!!!
(Ten post był ostatnio modyfikowany: 30-08-15 11:55 przez Darings.)
30-08-15 11:55
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
"Pomógł" przyznał(a):
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości

Kontakt | Ultima Forum | Wróć do góry | Wróć do forów | Wersja bez grafiki | RSS
Powered By MyBB. © 2013 MyBB Group. All Rights Reserved.
Skórka by Ayene.