Forum Karczma "U Cesarza" Strona Główna  
 FAQ  •  Szukaj  •  Użytkownicy  •  Grupy •  Galerie   •  Rejestracja  •  Profil  •  Zaloguj się, by sprawdzić wiadomości  •  Zaloguj
 Wszelkie problemy z regułami, edytorem itp. Zobacz następny temat
Zobacz poprzedni temat
Napisz nowy tematOdpowiedz do tematu
Autor Wiadomość
Nigi
Straż Miejska


Dołączył: 06 Mar 2006
Posty: 417 Przeczytał: 0 tematów

Pomógł: 62 razy
Ostrzeżeń: 0/3
Skąd: Internet

PostWysłany: Pią 17:44, 07 Maj 2010 Powrót do góry

Zdecydowanie ma znaczenie. Jak pisałem powyżej pojedynczy = przypisuje wartość, a podwójny porównuje. A więc warunek w stylu:
Kod:
Wydarzenie && $zmienna=0

nie zadziała poprawnie. Ponieważ = ma najniższy priorytet (swoją drogą nie spodziewałem się, że taką kolejność priorytetów Tzar ma określoną, niezbyt to intuicyjne) to wykonany zostanie na końcu, czyli powyższy fragment równoważny jest takiemu:
Kod:
(Wydarzenie && $zmienna)=0

A tego typu wyrażenie nie ma sensu, bo jest to próba przypisania wartości do wyrażenia, a nie do zmiennej, o czym zresztą Tzar poinformuje stosownym komunikatem.

Również wymuszenie innego priorytetowania nawiasami nie rozwiąże problemu i np wyrażenie
Kod:
Wydarzenie && ($zmienna=0)

także nie będzie działało poprawnie, bo $zmienna zawsze będzie miała wartość 0 (w końcu owa wartość jest ustawiana właśnie w tym warunku) i cały warunek nigdy nie będzie spełniony.

Podsumowując, konieczne jest użycie podwójnego znaku równości :>


Post został pochwalony 1 raz
Zobacz profil autora
Cyrek



Dołączył: 10 Kwi 2010
Posty: 178 Przeczytał: 0 tematów

Pomógł: 10 razy
Ostrzeżeń: 0/3

PostWysłany: Pią 18:03, 07 Maj 2010 Powrót do góry

Nigi napisał:


Ze zdziwieniem zauważyłem brak tych dwóch zmiennych w instrukcji. Dopisałem je, ale póki co nie mogę wrzucić nowej wersji na breathtaken, więc update musi poczekać.

W każdym razie, jak sam zauwazyłeś, było to wyjaśniane na stronie 7 tego tematu... Co do "ruchomości" tego pola, to proponowałbym tego typu wyrażenie:
Kod:
$health = (($x<xmin>$xmax) || ($y<ymin>$ymax))*$health


Jeśli porównasz to z poprzednim z siódmej strony, to zauważysz, że jedynie dopisałem $ w odpowiednich miejscach - istotnie, jeśli zamiast stałych wartości xmin/xmax/ymin/ymax, wpiszesz nazwy zmiennych, to potem zależy tylko od ciebie jakie wartości tym zmiennym przypiszesz.

A jeśli chodzi o to "coś" co by ustawiało wartości tych zmiennych, to tu już zależy wszystko od ciebie i tego co chcesz zrealizować.



Dałem wyrażenie dla obiektu jednostki
Kod:
$health = (($x<a>$b) || ($y<c>$d))*$health


Dałem wyrażenie dla obiektu mag
Kod:
$a = $x+1 &&
$b = $x-1 &&
$c = $y+1 &&
$d = $y-1 &&


I obiekt w obszarze ustawiłem maga i odległość 1

Gdy coś podejdzie do maga wyjeb uje grę xd

1) dlaczego || (or) a nie && (and) to chyba wtedy jest cała mapa?
2) co określa w tym wyrażeniu ile życie odbiera jednostce?

@Edit
LOL ale te forum g łupie zmienia to co napisałem

[link widoczny dla zalogowanych]
Jak pisałem post zamiast && było ||

zmieniło na
Kod:
$health = (($x<a>$b) || ($y<c>$d))*$health


Post został pochwalony 0 razy

Ostatnio zmieniony przez Cyrek dnia Pią 18:19, 07 Maj 2010, w całości zmieniany 13 razy
Zobacz profil autora
Nigi
Straż Miejska


Dołączył: 06 Mar 2006
Posty: 417 Przeczytał: 0 tematów

Pomógł: 62 razy
Ostrzeżeń: 0/3
Skąd: Internet

PostWysłany: Pią 20:00, 07 Maj 2010 Powrót do góry

Cyrek napisał:
Dałem wyrażenie dla obiektu jednostki
[link widoczny dla zalogowanych]

Dałem wyrażenie dla obiektu mag
Kod:
$a = $x+1 &&
$b = $x-1 &&
$c = $y+1 &&
$d = $y-1 &&


Poszczególne wyrażenia oddziel średnikami, a nie &&.

Cyrek napisał:
1) dlaczego || (or) a nie && (and) to chyba wtedy jest cała mapa?


Zależy czy chcesz wydzielić prostokątny obszar czy wszystko poza nim. W przypadku || chodzi o sprawdzenie kiedy obiekt będzie poza tym obszarem, czyli kiedy przynajmniej jeden z warunków krańcowych obszaru będzie spełniony. W przypadku z && dokładnie odwrotnie (oczywiście gdy również wartości brzegowe z którymi współrzędne są porównywane zostaną dostosowane).

Cyrek napisał:
2) co określa w tym wyrażeniu ile życie odbiera jednostce?


Logika i równoważność danych różnych typów :)

Zauważ, że całe wyrażenie w nawiasie, gdzie porównywane są wartości współrzędnych z brzegami obszaru, jest wyrażeniem logicznym, które może przyjmować wartość true/prawda lub false/fałsz. Te wartości są równoważne z liczbami 1 (prawda) i 0 (fałsz). I właśnie z tej równoważności korzystam układając powyższe równanie; dzięki temu można całość uprościć do dwóch przypadków:
$health = 1*$health
lub
$health = 0*$health
W zależności od wartości jaką przyjmie wyrażenie logiczne zawarte w tym równaniu. Czyli jak łatwo zauważyć życie jednostki albo pozostanie bez zmian, albo przyjmie wartość 0.

Jeśli chcesz konkretną wartość życia zabierać za każdym wywołaniem tego wyrażenia, to zmodyfikuj całość tak, by po uproszczeniu przyjmowało dwa stany:
$health = $health - 1*x
lub
$health = $health - 0*x
gdzie x to ilość życia jaką ma tracić.


Post został pochwalony 0 razy
Zobacz profil autora
Quinn



Dołączył: 18 Kwi 2010
Posty: 69 Przeczytał: 0 tematów

Pomógł: 5 razy
Ostrzeżeń: 0/3

Płeć: Mężczyzna

PostWysłany: Pią 20:01, 07 Maj 2010 Powrót do góry

Mashromallow napisał:
Zrób coś takiego:
W regule, która sprawia, że przegrywasz wpisz dalej (po wydarzeniu, które ją aktywuje):
&& $zmienna=0
czyli jeśli wydarzenie było Obiekt zniszczony to musisz wpisać
Obiekt zniszczony && $zmienna=0
A gdy ujawniasz obiekt to w akcji daj Wyrażenie i wpisz
$zmienna=1
Czyli:
1 Akcja: ujawnij obiekt
2 Akcja: Wyrażenie $zmienna=1

Jeśli jeszcze nie zajarzyłeś:
Reguła, której warunkiem jest "Obiekt zniszczony" (ten, który ma przeżyć):
Warunek:
Kod:
ObiektZniszczony && $zmienna=0

Akcja:
Kod:
GraczWygrywa

Zamiast ObiektZniszczony wpisz odpowiednią nazwę wydarzenia

Reguła, która ujawnia jednostkę.
Warunek: tego nie wiem, ty musisz wiedzieć
Akcje:
Ujawnij obiekt
Wyrażenie, w którym wpisz:
Kod:
$zmienna=1


Jak możesz to zrób to na mojej mapce i mi wyślij ja to próbowałem robić ale mi coś dziwnego wyszło i wszystko mi sie pomieszało zrób to na mojej mapce to już bede wiedział jak to robić.


Post został pochwalony 0 razy
Zobacz profil autora
Mashromallow



Dołączył: 26 Kwi 2009
Posty: 26 Przeczytał: 0 tematów

Pomógł: 4 razy
Ostrzeżeń: 0/3
Skąd: nie pamiętam ;/
Płeć: Mężczyzna

PostWysłany: Pią 20:33, 07 Maj 2010 Powrót do góry

Ekhm... w sumie mogę, ale wyślij mi twoją mapę ;]. I dzięki Nigi, już rozumiem o co chodzi Wink.

PS. Ostatnio zmieniony przez Cyrek dnia Pią 18:19, 07 Maj 2010, w całości zmieniany 13 razy <-- LOL xD


Post został pochwalony 0 razy

Ostatnio zmieniony przez Mashromallow dnia Pią 20:36, 07 Maj 2010, w całości zmieniany 1 raz
Zobacz profil autora
Quinn



Dołączył: 18 Kwi 2010
Posty: 69 Przeczytał: 0 tematów

Pomógł: 5 razy
Ostrzeżeń: 0/3

Płeć: Mężczyzna

PostWysłany: Pią 23:25, 07 Maj 2010 Powrót do góry

[link widoczny dla zalogowanych]

to ta mapka


Post został pochwalony 0 razy
Zobacz profil autora
Mashromallow



Dołączył: 26 Kwi 2009
Posty: 26 Przeczytał: 0 tematów

Pomógł: 4 razy
Ostrzeżeń: 0/3
Skąd: nie pamiętam ;/
Płeć: Mężczyzna

PostWysłany: Nie 10:21, 09 Maj 2010 Powrót do góry

Faktycznie mogłeś mieć problemy, ponieważ jedna jednostka była ukryta a druga nie Wink Zrobiłem dwa oddzielne wydarzenia i dwie oddzielne reguły i jest dobrze.
Kod:
http://www.speedyshare.com/files/22342186/Age_of_Empires_by_Mashromallow.wmp


Post został pochwalony 0 razy
Zobacz profil autora
Quinn



Dołączył: 18 Kwi 2010
Posty: 69 Przeczytał: 0 tematów

Pomógł: 5 razy
Ostrzeżeń: 0/3

Płeć: Mężczyzna

PostWysłany: Nie 13:10, 09 Maj 2010 Powrót do góry

Wszystko gra dzięki wielkie


Post został pochwalony 0 razy
Zobacz profil autora
Cyrek



Dołączył: 10 Kwi 2010
Posty: 178 Przeczytał: 0 tematów

Pomógł: 10 razy
Ostrzeżeń: 0/3

PostWysłany: Śro 20:17, 12 Maj 2010 Powrót do góry

Witam mam nowy problem, dziękuje za wytłumaczenie poprzedniego nie domyślił bym się że równanie można w ten sposób odczytać(jako 1 i 0).

Moj nowy problem jest zapewne też banalny ale nie potrafię znaleźć rozwiązania.

Otóż jak włączyć skrypty si w odpowiednim momencie? @setai(x,y)? Jeżeli tak to jak wykorzystać bo coś mi nie wychodziło.


Post został pochwalony 0 razy
Zobacz profil autora
Mashromallow



Dołączył: 26 Kwi 2009
Posty: 26 Przeczytał: 0 tematów

Pomógł: 4 razy
Ostrzeżeń: 0/3
Skąd: nie pamiętam ;/
Płeć: Mężczyzna

PostWysłany: Czw 9:55, 13 Maj 2010 Powrót do góry

Warunek: jaki potrzebujesz
Akcja: Wyrażenie:
Kod:
@setai(x,y)
jak pisałeś
jeśli o to chodzi ;]


Post został pochwalony 0 razy
Zobacz profil autora
Cyrek



Dołączył: 10 Kwi 2010
Posty: 178 Przeczytał: 0 tematów

Pomógł: 10 razy
Ostrzeżeń: 0/3

PostWysłany: Czw 12:48, 13 Maj 2010 Powrót do góry

Mashromallow napisał:
Warunek: jaki potrzebujesz
Akcja: Wyrażenie:
Kod:
@setai(x,y)
jak pisałeś
jeśli o to chodzi ;]


Najpierw chciałem sprawdzić czy to działa dałem warunek 1 wyrażenie @setai(3,10) i chuj nie działa... nie wyświetla się komunikat ze gracz włączył pełną pomoc si czy coś takiego i wieśniacy tez nie idą pracować. ani nic


Post został pochwalony 0 razy
Zobacz profil autora
Nigi
Straż Miejska


Dołączył: 06 Mar 2006
Posty: 417 Przeczytał: 0 tematów

Pomógł: 62 razy
Ostrzeżeń: 0/3
Skąd: Internet

PostWysłany: Czw 14:03, 13 Maj 2010 Powrót do góry

@setai nie służy do włączania/wyłączania pomocy SI dla gracza, tylko do wyboru skryptu dla komputera. Jak mnie pamięć nie myli, to drugi argument oznacza skrypt wg kolejności w jakiej są one umieszczone w edytorze w mapa->królestwa->SI.


Post został pochwalony 0 razy
Zobacz profil autora
Cyrek



Dołączył: 10 Kwi 2010
Posty: 178 Przeczytał: 0 tematów

Pomógł: 10 razy
Ostrzeżeń: 0/3

PostWysłany: Czw 16:54, 13 Maj 2010 Powrót do góry

Nigi napisał:
@setai nie służy do włączania/wyłączania pomocy SI dla gracza, tylko do wyboru skryptu dla komputera. Jak mnie pamięć nie myli, to drugi argument oznacza skrypt wg kolejności w jakiej są one umieszczone w edytorze w mapa->królestwa->SI.


Kod:
odpowiednim momencie


Czyli np w 30 minucie gry.


Post został pochwalony 0 razy
Zobacz profil autora
Nigi
Straż Miejska


Dołączył: 06 Mar 2006
Posty: 417 Przeczytał: 0 tematów

Pomógł: 62 razy
Ostrzeżeń: 0/3
Skąd: Internet

PostWysłany: Czw 19:20, 13 Maj 2010 Powrót do góry

=== Reguła 1 ===
Warunek: 1
Akcja: Ustaw zegar (wartość 0, odliczanie niezaznaczone, nazwa akcji: "Zegar")

=== Reguła 2 ===
Warunek: Zegar>=30*60*1000
Akcje: wg potrzeb


Post został pochwalony 0 razy
Zobacz profil autora
Cyrek



Dołączył: 10 Kwi 2010
Posty: 178 Przeczytał: 0 tematów

Pomógł: 10 razy
Ostrzeżeń: 0/3

PostWysłany: Czw 20:33, 13 Maj 2010 Powrót do góry

Nie kumasz mi chodzi żeby komp WŁĄCZYŁ SKRYPTY SI W ODPOWIEDNIM MOMENCIE to znaczy chodzi mi o AKCJE jaką trzeba zrobić. Wiem ze to możliwe bo wiedziałem w któreś kampanii.


Post został pochwalony 0 razy

Ostatnio zmieniony przez Cyrek dnia Czw 21:25, 13 Maj 2010, w całości zmieniany 1 raz
Zobacz profil autora
Wyświetl posty z ostatnich:      
Napisz nowy tematOdpowiedz do tematu


 Skocz do:   



Zobacz następny temat
Zobacz poprzedni temat
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001/3 phpBB Group :: FI Theme :: Wszystkie czasy w strefie CET (Europa)