|
WML- pytania i odpowiedzi
|
| AxeFighter |
Dodany dnia 23-06-2013 22:34
|

Zarządca

Postów: 1024
Data rejestracji: 31/01/2012 21:33
|
Problem wyżej rozwiązałem robiąc po prostu dwie umiejki, fear i hope. Teraz wyskakuje z kolejnym pytaniem: jak zrobić, by lider danego rodzaju dostawał traita, tak jak w przypadku krasnoludów w defaulcie? Zależy mi na tym, gdyż chcę wstawić jednostkę piesza z 7 pkt ruchu jako lidera i chciałbym ją spowolnić traitem "wolny".
Edytowane przez AxeFighter dnia 23-06-2013 22:34
|
| |
|
|
| Dunno |
Dodany dnia 23-06-2013 23:25
|

Czeladnik

Postów: 91
Data rejestracji: 16/07/2011 15:18
|
tak na szybko:
Kod źródłowy
[event]
name=turn 1
[modify_unit]
[filter]
canrecruit=yes
type=typ
[/filter]
tutaj idzie trait wolny
[/modify_unit]
[/event]
Już czwarty rok bez podpisu!
|
| |
|
|
| AxeFighter |
Dodany dnia 25-06-2013 11:39
|

Zarządca

Postów: 1024
Data rejestracji: 31/01/2012 21:33
|
Dobra, kolejne pytanko względem tego wyżej. Jak daje ten event to lider nie ma max hp przy rozpoczęciu. Próbowałem wrzucić efekt z amli, ale to nic nie dało. Ma ktoś jakiś pomysł? |
| |
|
|
| Dunno |
Dodany dnia 25-06-2013 14:26
|

Czeladnik

Postów: 91
Data rejestracji: 16/07/2011 15:18
|
huh, wątpię żeby ten event miał jakikolwiek wpływ na hp. Wstaw cały kod scenariusza, ok? Może coś wypatrzymy
Już czwarty rok bez podpisu!
|
| |
|
|
| AxeFighter |
Dodany dnia 25-06-2013 17:24
|

Zarządca

Postów: 1024
Data rejestracji: 31/01/2012 21:33
|
Tyle, ze chodzi o to, że robię erę, daję lidera dla gracza z 7 pkt ruchu, spowalniam go skryptem (w pliku jednostki), by zachować balans, jednak ten dodatkowy punkt hp (powolny daje -1 do ruchu i +5% do hp) jest dodawany do maksymalnej wartości, jednak nie do aktualnej, co wygląda w ten sposób, że gra się zaczyna, a lider ma 28/29 hp. Czy da się zaskryptować, by jednostka była leczona w 1 turze?
Edytowane przez AxeFighter dnia 25-06-2013 17:24
|
| |
|
|
| Piko |
Dodany dnia 25-06-2013 18:30
|

Opiekun

Postów: 1608
Data rejestracji: 26/07/2012 20:00
|
Jasne że da się. Kod prawie jak tamten:
Kod źródłowy[event]
name=turn 1
[modify_unit]
[filter]
canrecruit=yes
type=typ
[/filter]
hitpoints=$this_unit.max_hitpoints
[/modify_unit]
[/event]
|
| |
|
|
| AxeFighter |
Dodany dnia 25-06-2013 18:41
|

Zarządca

Postów: 1024
Data rejestracji: 31/01/2012 21:33
|
Działa, Piko, jesteś wielki, od teraz w mojej erze mnich będzie mógł być liderem  |
| |
|
|
| Dunno |
Dodany dnia 25-06-2013 20:01
|

Czeladnik

Postów: 91
Data rejestracji: 16/07/2011 15:18
|
PS: lider z 6 punktami ruchu jest nadal OP
Już czwarty rok bez podpisu!
|
| |
|
|
| Elensefar |
Dodany dnia 26-06-2013 17:35
|

Awanturnik

Postów: 607
Data rejestracji: 28/08/2010 12:44
|
Dunno napisał/a:
PS: lider z 6 punktami ruchu jest nadal OP 
Deoran w Południowej Straży ma też 6 (na 3 lvl'u 8) punktów ruchu, więc o co ci chodzi?
"Głupota ludzka jest jak wyobraźnia- nie zna granic"
Elensefar
|
| |
|
|
| AxeFighter |
Dodany dnia 26-06-2013 20:19
|

Zarządca

Postów: 1024
Data rejestracji: 31/01/2012 21:33
|
Dunno mówił o multiplayerze... Życzę mu szczęścia w przekonaniu Guurahka, który upiera się, że konnica z 9 pkt ruchu nie jest za mocna... Taki już oftop.
Edit: 300 post.
Edytowane przez AxeFighter dnia 26-06-2013 20:20
|
| |
|
|
| ForPeace |
Dodany dnia 21-03-2015 20:17
|

Awanturnik

Postów: 604
Data rejestracji: 07/12/2014 12:26
|
A ja mam problem z GB. Kilkunastu jednostkom ustawiłem coś takiego:
Kod źródłowy[unit]
side=4
type=tu Strzelec
x=43
y=17
role=attack_when_sighted
[/unit]
W evencie start:
Kod źródłowy[set_variable]
name=turks_sighted
value=0
[/set_variable]
Kod źródłowy[event]
name=moveto
[filter]
x,y=24,13
id=Jan_III_Sobieski
[/filter]
[message]
message=_"Rozejrzyjmy sie..."
speaker=Jan_III_Sobieski
[/message]
[modify_side]
side=1
fog=no
[/modify_side]
[set_variable]
name=turks_sighted
value=1
[/set_variable]
[/event]
Kod źródłowy[event]
name=sighted
[filter]
side=4 #strona Kary Mustafy (Turkowie)
[/filter]
[set_variable]
name=turks_sighted
value=1
[/set_variable]
[/event]
Event, który powinien powodować zmniejszanie MP do 0 przed zobaczeniem Turków.
Kod źródłowy[event]
name=side turn
[if]
[variable]
name=turks_sighted
equal=0
[/variable]
[then]
[store_unit]
[filter]
role=attack_when_sighted
[/filter]
variable=cann
[/store_unit]
{FOREACH cann i}
[set_variable]
name=cann[$i].moves
value=0
[/set_variable]
[unstore_unit]
variable=cann[$i]
find_vacant=no
[/unstore_unit]
{NEXT i}
first_time_only=no
[/then]
[/if]
[/event]
I to wszystko ogółem nie działa. Proszę o pomoc.
Edit. Poradziłem sobie.
Kod źródłowy[event]
name=side turn
[if]
[variable]
name=turks_sighted
equal=0
[/variable]
[then]
[modify_unit]
[filter]
role=attack_when_sighted
[/filter]
moves=0
[/modify_unit]
[/then]
[/if]
[/event]
Edytowane przez ForPeace dnia 01-04-2015 17:59
Mój ladderowy profil
"10 lat mówisz? Jak ja mówię że gram 10 lat to przychodzą ludzie i mówią że grali 15 i nic się nie znam na tej grze bo nie grałem jak PRAWDZIWI prosi grali. xD" ~Hejnewar
|
| |
|
|
| AxeFighter |
Dodany dnia 21-04-2015 19:48
|

Zarządca

Postów: 1024
Data rejestracji: 31/01/2012 21:33
|
Głupie pytanko: jak zrobić event, który wsadzimy do [era] w pliku ery, by odblokować np. awans lisza na starożytnego lisza? Jest to mi bardzo potrzebne, więc liczę na pomoc.
Ja zaczynałem jako zwykły, napalony user, pisałem często newsy. Bach! Redaktor! Więc niebywale uradowany, pisałem jeszcze więcej, dodatkowo artykuły. Nie ma co, byłem nadpobudliwy wtedy... A jak zostałem mianowany adminem, to z początku w ogóle nie chciałem nim być! Byłem przestraszony odpowiedzialnością. Bo mnie nie kręciły tytuły, tylko Wesnoth. - Sagez
|
| |
|
|
| Jarom |
Dodany dnia 21-04-2015 20:17
|

Awanturnik

Postów: 584
Data rejestracji: 28/03/2014 16:24
|
A nie lepiej użyć #define ENABLE_ANCIENT_LICH?
|
| |
|
|
| AxeFighter |
Dodany dnia 21-04-2015 22:23
|

Zarządca

Postów: 1024
Data rejestracji: 31/01/2012 21:33
|
Całkowicie zapomniałem o tym tagu, dzięki. jednak jak go wsadzić, by działał? Przeszukiwałem ReferenceWML pół godziny i sposobu nie znalazłem.
Ja zaczynałem jako zwykły, napalony user, pisałem często newsy. Bach! Redaktor! Więc niebywale uradowany, pisałem jeszcze więcej, dodatkowo artykuły. Nie ma co, byłem nadpobudliwy wtedy... A jak zostałem mianowany adminem, to z początku w ogóle nie chciałem nim być! Byłem przestraszony odpowiedzialnością. Bo mnie nie kręciły tytuły, tylko Wesnoth. - Sagez
|
| |
|
|
| Jarom |
Dodany dnia 22-04-2015 08:51
|

Awanturnik

Postów: 584
Data rejestracji: 28/03/2014 16:24
|
Sprawdziłem, niestety nie da się tego zrobić bo #ifdefy są wykonywane na początku. Natomiast jest to:
Kod źródłowy[unit_type]
id=Ancient Lich a
[base_unit]
id=Ancient Lich
[/base_unit]
[advancefrom]
unit=Lich
[/advancefrom]
[/unit_type]
i działa.
Edytowane przez Jarom dnia 22-04-2015 08:52
|
| |
|
|
| Warlord |
Dodany dnia 14-05-2015 14:25
|

Przybysz

Postów: 23
Data rejestracji: 25/04/2015 17:25
|
Jak rozumiem tutaj mogę was zapytać o pomoc dotyczącą niedziałającego kodu i czekać na odpowiedź?
A co jeśli poproszę was o stworzenie kodu? Chciałem stworzyć zdolność, która sprawi, że po zabiciu jednostki wroga, nasza jednostka uleczy sobie kilka punktów życia. Tak na chłopski rozum to wziąłbym tag regeneracji plus kilka filtrów, ale właśnie na filtrowaniu się specjalnie nie znam.
Konkretnie co ma robić zdolność:
Po zabiciu żywej, wrogiej jednostki, postać z tą umiejętnością wyleczy (jeśli jest co leczyć) 2 punkty życia razy poziom pokonanej jednostki (czyli zero za zerowy, dwa za pierwszy, 4 za drugi etc., chociaż zastanawiam się czy za zerowy nie dać dwa albo chociaż jeden).
Generalnie różnica w ilości wyleczonych punktów załatwiłbym tak jak dowodzenie na wyższym poziomie czyli spięte w klamrę kilka zdolności osobno przefiltrowanych dla konkretnych poziomów, tylko właśnie nie mam pojęcia jak stworzyć filter zabitej jednostki wroga oraz filter poziomu tego zabitego wroga. No i filter "żywego" a nie nieumarłego/mechanicznego/itd przeciwnika.
Pomożecie?
Edytowane przez Warlord dnia 14-05-2015 14:25
|
| |
|
|
| Piko |
Dodany dnia 14-05-2015 15:58
|

Opiekun

Postów: 1608
Data rejestracji: 26/07/2012 20:00
|
Działanie tagu regeneracji obejmuje jedynie rozpoczęcie tury, więc nie pomoże ci on w osiągnięciu zamierzonego efektu. Zamiast tego odnajdź umiejętność żerowania, ją już łatwo ci będzie przerobić. |
| |
|
|
| ForPeace |
Dodany dnia 14-05-2015 16:01
|

Awanturnik

Postów: 604
Data rejestracji: 07/12/2014 12:26
|
Spoko
Kod źródłowy#define ABILITY_FEEDING_ADVANCED
[dummy]
id=feedadv
name=_"nazwa"
description=_"opis"
[/dummy]
[/abilities]
[event]
name=die
first_time_only=no
[if]
[variable]
name=unit.race
not_equals=undead
[/variable]
[and]
[variable]
name=unit.race
not_equals=mechanical
[/variable]
[/and]
[then]
[switch]
variable=unit.level
[case]
value=0
{VARIABLE amountofhitpoints 0}
[/case]
[case]
value=1
{VARIABLE amountofhitpoints 2}
[/case]
[case]
value=2
{VARIABLE amountofhitpoints 4}
[/case]
[case]
value=3
{VARIABLE amountofhitpoints 8}
[/case]
[case]
value=4
{VARIABLE amountofhitpoints 16}
[/case]
[else]
{VARIABLE amountofhitpoints 32}
[/else]
[/switch]
[heal_unit]
[filter]
x,y=$x2,$y2
[/filter]
amount=$amountofhitpoints
[/heal_unit]
[/then]
[/if]
[/event]
[+abilities]
Mam nadzieję, że zadziała.
Edytowane przez ForPeace dnia 14-05-2015 17:22
Mój ladderowy profil
"10 lat mówisz? Jak ja mówię że gram 10 lat to przychodzą ludzie i mówią że grali 15 i nic się nie znam na tej grze bo nie grałem jak PRAWDZIWI prosi grali. xD" ~Hejnewar
|
| |
|
|
| Warlord |
Dodany dnia 14-05-2015 21:47
|

Przybysz

Postów: 23
Data rejestracji: 25/04/2015 17:25
|
Dzięki pe_em jesteś super Grin Ale sprawdzę czy działa dopiero jak wrócę do domu.
Edit:
W formie w jakiej mi to podałeś, nie działało. Najpierw próbowałem to jednak zrobić samemu ale poległem na filtrowaniu poziomu, niby dawałem filter_oponent ale nie działało. Później wziąłem się za przeróbkę twojego kodu, właściwie to pousuwałem tylko te tagi abilities, zamknąłem zdolność, otworzyłem event osobno i dodałem tag eventu do pliku jednostki i zadziałało. Także i tak dzięki  |
| |
|
|
| ForPeace |
Dodany dnia 14-05-2015 22:19
|

Awanturnik

Postów: 604
Data rejestracji: 07/12/2014 12:26
|
Warlord napisał/a:
Później wziąłem się za przeróbkę twojego kodu, właściwie to pousuwałem tylko te tagi abilities, zamknąłem zdolność, otworzyłem event osobno i dodałem tag eventu do pliku jednostki i zadziałało.
Serio? nie wierzę, że to była przyczyna Możesz pokazać kod zdolności oraz event?
Nie mam pojęcia, gdzie chciałeś użyć [filter_opponent]. Można go użyć tylko przy specjalnych broniach.
Jak masz event jak kill to używasz (w zależności od tego co chcesz sprawdzić i od nazwy eventu) unit.costam lub second_unit.costam w instrukcji warunkowej typu [if] albo [switch] (Kostrukcja switch-case jest bardzo fajna i nie trzeba przy niej robić if/else/if/else/if/else, tylko case/case/case/case/else. Dużo czytelniejsza i łatwiejsza.) - jeżeli chcesz wybrać różne akcje dla różnych wyników.
- albo [filter] lub [filter_second] dla jednego działania eventu tylko przy spełnionych warunkach filtra.
Edytowane przez ForPeace dnia 14-05-2015 22:20
Mój ladderowy profil
"10 lat mówisz? Jak ja mówię że gram 10 lat to przychodzą ludzie i mówią że grali 15 i nic się nie znam na tej grze bo nie grałem jak PRAWDZIWI prosi grali. xD" ~Hejnewar
|
| |
|