Arcane.pl
Portal twórców map i modów:
WarCraft 3 StarCraft 2 i innych gier
Napisano: 01.05.2010
World Editor Tutorial Cz.1, 2, 3, 4, 5
Tutoriale cz.1 i 2 napisałem na battlenet.pl, a że tamto forum takie lekko wymarłe jest, postanowiłem przenieść je tutaj.
[color=blue]WORLD EDITOR TUTORIAL Cz.1[/color]
IMPORTOWANIE MODELI, IKON, ITP.
Importowanie modeli do edytora i używanie ich w grze jest bardzo proste. Tutaj dowiecie się: Wszystko o importowaniu.
Potrzebny wam będzie: Jakiś Model, Ikona, Piosenka.
Włączcie Edytor, Potem M. Importu
Zaimportujcie Model, ikonę i piosenkę do gry.
Teraz ważna rzecz dotycząca Modeli:
Po zaimportowaniu ścieżka (Path jak kto woli) modelu będzie : "War3imported/xxx.mdx - wasz model
"War3imported/xxx.blp" - Skin do modelu (zazwyczaj pod taką samą nazwą jak model)
"War3imported/xxx_portrait.mdx (Portret modelu, przydatny do Filmów, ale o tym później)
Teraz trzeba zmienić : "War3imported/xxx.blp" na np. "textures/xxx.blp , np. jest dlatego, bo każdy model może mieć inną ścieżkę(Path). Zazwyczaj jest ona podana przy modelu, na stronie z nim.
(*Hint* Nie warto ściągać modeli bez podanej ścieżki(Path). Można w końcu odnaleźć ją, poprzez edycję modelu. Ale czasem po prostu lepiej jest pobrać inny.)
Po zmianie, należy zapisać mapę, wyłączyć edytor i włączyć mapę ponownie(Gra musi wczytać nasz model).
Teraz trzeba wejść do "Object Editor" i stworzyć lub edytować gotową jednostkę i przypisać do niej nasz model.
Ważna rzecz dotycząca Ikon:
Ikony są w formacie .BLP, tak więc jako taką ikonę można użyć też Skin modelu, ale nie będzie to zbyt ładne.
Po zaimportowaniu Path będzie:
War3imported/BTNxxx.blp
War3imported/DISBTNxxx.blp
I trzeba to zmienić w obu na :
ReplaceableTextures\CommandButtons\BTNxxxt.blp
ReplaceableTextures\CommandButtonsDISABLED\DISBTNxxx.blp
Potem zapisać, wyłączyć edytor i włączyć od nowa. I już gotowe. Teraz taką ikonę można przypisać do modelu.
(*Hint* Do modeli przypisujcie wyłącznie Ikony o nazwie BTNxxx.blp, tam gdzie xxx to wasza ikona)
Coś o własnych dźwiękach:
Otwórz M. Dzwięku ( Taki żółty dzwonek)
Teraz znajdź w drzewku, że tak powiem, Napis "Własna Muzyka", a pod tym znajdzie się nasz dzwięk, np.
"Własna Muzyka
xxx.mp3"
Klepnij na swoją muzykę prawym przyciskiem myszy i potem lewym na "Użyj jako Muzykę"
Potem trzeba dodać Wyzwalacz. Otwórz edytor Wyzwalaczy. I klepnij na "nowy wyzwalacz" (Taka kartka biała)
Teraz zrób coś takiego:
(bez , to jest po to by było widać gdzie się zaczyna i kończy wyzwalacz.)
Wydarzenia Warunki Akcje Dzwięk - Play Sound - Sound to nasza muzyka, więc klepnij na sound i ustaw xxx.mp3. Wait xx Seconds - polecam dodać to i wpisać tam długość trwania utworu. wyzwalacz - run xxx - to spawi, że nasz wyzwalacz będzie "puszczał muzykę w nieskończoność" |
I to tyle. , Zapisz, wyłącz, Włącz i wytestuj. [CTRL + F8]
TRIGGERS - Czyli Wyzwalacze. Dowiecie się: Jak tworzyć oddział jednostek i nakazać im atakować np.Zamek.
Otwórzcie Edytor Wyzwalaczy, skasujcie istniejące i utwórzcie Nowy Wyzwalacz:
Wydarzenia Every xx seconds of the Game - tu wpisz sekundy , np. 30 Warunki Akcje Jednostka - Create 12 Piechur for gracz 1(czerwony) at center of Spawn facing 20 degrees - Ale potrzebujecie region Spawn , więc klepnij " at center of region" i tam "wybierz region", po czym stwórz jeden i przypisz go do tej funkcji. wait 10 seconds - odczeka 10 sekund Grupa Jednostek - order (units of type Piechur) to atak-ruch (center of Atak - tu potrzeba 2 region. |
[color=blue]WORLD EDITOR TUTORIAL Cz.2[/color]
Odpalcie edytor, stwórzcie nową mapę ( 64 na 64 domyślnie, może być też 32x32)
Teraz stwórzcie 2 lub 3 (Ile chcecie) regiony.
Proponuję nazwać je :
Spawn
dest1
dest2
itd.(To jest po to aby było wiadomo o jakie regiony chodzi)
Następny cel to otwarcie edytora wyzwalaczy, stworzenie nowego wyzwalacza. Nazwijcie to np. Atak , albo co tam chcecie.
Teraz czas na wyzwalacz:
Wydarzenia Czas - every xx seconds of game time Warunki --------- Akcje Jednostka - create 1 piechur for gracz12(Brązowy) at (center of spawn ) facing xx degrees Jednostka - order (last created unit) to atak-ruch to (center of dest1 ) |
---Komentarz---
Ten wyzwalacz stworzy 1 piechura. Piechur sam wyruszy do regionu dest1 i będzie atakował Wszystkich, których zobaczy.
Dalej zróbcie nowy wyzwalacz(np. Atk2) i :
Wydarzenia Jednostka - a unit enteres Dest1 Warunki (unit-type of (triggering unit)) równa się piechur Akcje Jednostka - order (entering unit) to atak-ruch to (center of dest2 ) |
---Komentarz---
Ten wyzwalacz natomiast spowoduje, że jednostka wchodząca do regionu dest1 przejdzie do regionu dest2(ale tylko wtedy gdy będzie to piechur)
Można tak robić w nieskończoność(dest1 itp.)
Dalej:
Załóżmy, że jednostki mają przejść do dest2 i tam zaatakować bramę, i ruszyć do dest3
Zróbcie wyzwalacz o nazwie atkbrama:
Wydarzenia Jednostka - a unit enteres Dest2 Warunki (unit-type of (triggering unit)) równa się piechur Akcje Jednostka - order (entering unit) to atakuje Nasze drzwi (Pionowo) 0000 |
Teraz następny o nazwie ruchdodest3 i odznaczcie "Początkowo włączony":
Wydarzenia jednostka - A unit enteres dest2 warunki (unit-type of (triggering unit)) równa się piechur Akcje Jednostka - order (entering unit) to atak-ruch to (center of dest3 ) |
I jeszcze jeden o nazwie WyłWyzw:
Wydarzenia Obiekt zniszczalny - nasze drzwi 0000 dies Warunki Akcje Wyzwalacz - Turn on ruchdodest3 Wyzwalacz - turn off atkbrama |
---Komentarz---
Oczywiście najpierw musicie postawić bramę
To pozwoli wam zrobić np. oblężenia
[color=red]I teraz nowa część - WORLD EDITOR TUTORIAL Cz.3[/color]
W tym tutorialu stworzymy atak na zamek, miasto (co tam chcecie)
Odpalcie edytor, stwórzcie nową mapkę( ja wezmę np. 64x64)
Po zrobieniu terraina, zastanówcie się o co chodzi w wszej mapce(Chyba, że już wiecie:D). Zróbcie własne jednostki(jeśli chcecie)
Przejdzcie do palety regionów, zróbcie, ile potrzebujecie ( w moim przypadku 5) Nazwijcie je np. Reg1, Reg2...(Żeby było łatwiej potem odnaleść te potrzebne)
Teraz zróbcie wyzwalacze, takie jak w 2 części tutoriala, oczywiście ten z bramą można pominąć, ale zamek zazwyczaj ma bramę :twisted:
Ozywiście może być ich więcej.
Gdy to zrobicie, postawcie wasze jednostki i klepnijcie "Test" ( Czerwony V w prawym górnym rogu)
Wszystko powinno działać poprawnie.
Teraz zastanówcie się czy gracz ma prowadzić bohatera, czy też jednostkę (Żołnierza).
Stwórzcie circles or power np. w centrum waszego miasta.
W taki sposób:
Krąg mocy a nad nim bohater
I jeśli będzie grało 5 graczy to dajcie 5 ogników po 1 dla każdego gracza koło tego.
Teraz zróbcie 5 regionów(np. Hero1, itd.) Ustawcie je tak aby stały dokładnie nad kręgami.
I wyzwalacz:
(Będzie ich 5)
Wydarzenia Jednostka - A unit enteres Hero1 Warunki (unit-type of(entering unit)) równa się błędny Ognik Akcje Jednostka - change owership of Wasz Hero to owner of(entering unit) and zmień kolor Jednostka - Remove [entering unit] from the game Jednostka - Kill Krąg Mocy 0001 Wyzwalacz - turn off this trigger |
Zróbcie jeszcze 4 takie, zmieńcie herosów i kręgi mocy.
Wyzwalacz spowoduje, że dobrana jednostka będzie dostępna dla wybierającego, jego ognik zniknie, i nikt inny nie będzie mógł wybrać tej jednostki.
Teraz HeroDEAD - wyzwalacz
Wydarzenia Wasz hero umiera Warunki Akcje Zegar - Start [last started timer] as a Jeden strzał timer that will expire in 30 seconds Zegar - Create a timer window for [last created timer] with title ((Proper name of (triggering unit)) + ( Jednostka Gracza + ((Name of (owner of (triggering unit))) + odrodzi się za:))) Wait 30 Seconds Zegar - Destroy [last created timer window] Bohater - Instantly revive Wasz Hero at (Center of Revive) Pokaż Revival Graphics |
albo
Wydarzenia Wasz hero umiera Warunki Akcje Custom script("local timer udg_licznik") Custom script("local timerwindow udg_oknolicznika") Zegar - Start licznik as a Jeden strzał timer that will expire in 30 seconds Zegar - Create a timer window for licznik with title ((Proper name of (triggering unit)) + ( Jednostka Gracza + ((Name of (owner of (triggering unit))) + odrodzi się za:))) Set oknolicznika = Last Created Timer Window Wait 30 Seconds Zegar - Destroy oknolicznika Bohater - Instantly revive Wasz Hero at (Center of Revive) Pokaż Revival Graphics |
Można też stworzyć własne zmienne w ich edytorze. Otrzyma się dokładnie to samo
Skopiujcie go jeszcze 4 razy i pozmieniajcie herosów na innych.
[color=red]Inne[/color]
Możecie zrobić jeszcze sklepik, oraz wiele innych ciekawych rzeczy.
Jeśli wiecie co zrobić by okno zegara rozszeżyło się, to napiszcie
Niebawem Następna część Tutoriala. Jakbyście mieli jakieś pytania to piszcie:D
[color=red]WORLD EDITOR TUTORIAL Cz.4 [/color]
Dzięki za pomysł na kolejną część:D
[color=violet]QUESTY[/color]
Robienie Questów jest bardzo łatwe.
Włączcie WE, otwórzcie nową mapę (32x32 na ten tutorial.)
Wejdzcie w Edytor Wyzwalaczy, skasujcie widoczny folder, stwórzcie nowy Folder i Wyzwalacz. Nazwijcie go np. Zdobywanie Questa.
Teraz wejdzcie w Zmienne i stwórzcie nową zmienną np. Banditkill, rodzaj ustawcie : Zadanie.
Teraz Zróbcie nowy region, postawcie w nim jakąś jednostkę.
Następny cel to ustalenie na czym będzie polegał Quest.
W moim przypadku będzie trzeba zabić banitę(hehe).
Teraz wejdzcie w Edytor Wyzwalaczy i do naszego Zdobywania questa zróbcie coś takiego:
| Wydarzenia Jednostka - A unit Enteres ZdobywanieZad Warunki Akcje Gra - Display to (player group((owner of (entering unit)))) the text: Wasz text ( w moim przypadku: Dający Quest: Zabij Bandytę) Wait 1 Seconds Zadanie- Display to (player group(owner of (entering unit))) the Zadanie Odkryte Message:Wasz text który pojawi się na ekranie gry. Zadanie - create a Wymagane Quest titled: Wasz tytuł Questu with the description: Wasz opis Questu, using icon path (dobierzcie ikone zadania) Set Banditkill = [last created Quest] Zadanie - Flash the Quest dialog button |
Ten wyzwalacz spowoduje, że stworzymy quest, oraz zacznie się świecić przycisk "Misje"
Stwórzcie nowy wyzwalacz, nazwijcie go Banditkill50, odznaczcie "początkowo włączone"
Wydarzenia Bandit umiera Warunki Akcje Zadanie - Display to player group(owner of (Killing unit)) the aktualizacja Zadania message : -Zabij Bandytę(Wykonano) -Wróć do zleceniodawcy Zadanie - Change the description of BanditKIll to : -Zabij Bandytę(Wykonano) -Wróć do zleceniodawcy Zadanie - Flash the Quest dialog button |
Wróćcie do Zdobywanie Questu i Dodajcie tam:
Wyzwalacz - turn on BanditKill50
Wyzwalacz - turn off this trigger
Zróbcie nowy wyzwalacz, nazwijcie go BanditKill100, odznaczcie początkowo włączone, a w nim:
| Wydarzenia unit - A unit enteres ZdobywanieZad Warunki Akcje Gra - Display to (player group(owner of (entering unti))) the text: Dający Quest: Dzięki ci, oto nagroda 500 złota! Zadanie - Mark BanditKill as ukończone Zadanie - Change the description of BanditKIll to : -Zadanie Wykonano Gracz - add 500 to owner of (entering unit) aktualna ilość Złota Wyzwalacz - turn off (this Trigger) Zadanie - Flash the Quest dialog button |
Wróćcie do BanditKill50 i dodajcie tam
Wyzwalacz - turn off (this Trigger)
Wyzwalacz - turn on BanitKill100
No! Zadanie mamy Zrobione!
[color=green]Po co zmienna??[/color]
Zmienna jest po to aby zadania nie "pomyliły się"
Używanie last created quest jest bez sensu, bo gdy gracz wykonuje 2 zadania, poplączą się.
[color=green]Dlaczego gdy biore zadanie, pojawia się tylko xxx, a nie Zadanie Główne - xxx[/color]
Jeśli chcecie zrobić zadania tak jak zrobił je Blizzard, musicie w
Zadanie- Display to (player group(owner of (entering unit))) the Zadanie Odkryte Message:[color=cyan]Dopisać tutaj ZADANIE GŁÓWNE[/color] Wasz text który pojawi się na ekranie gry.
Ten napis nadal pozostanie biały, jeśli chcecie go zmienić na żółty, musicie użyć specialnego kodu koloru do WC III.
[color=yellow]W następnej części - Filmy oraz kody kolorów do WC III!!![/color]
Jeśli macie jakieś pytania lub pomysły -piszcie!
[size=150][color=darkblue]World Editor Tutorial cz.5[/color][/size]
Jako że jestem 300 km od mego kompa:D narazie nie będzie o cinematicach. Napiszę natomiast o kolorach i o tawernach z bohaterami.
[color=brown]TAWERNY[/color]
Na pewno spotkaliście się z grami w których dobiera się bohatera poprzez kupowanie go w tawernie.
Każda tawerna pomieszcza do 12 herosów.
Układ jest mniej więcej taki
| 0,0 | 1,0 | 2,0 | 3,0| | 0,1 | 1,1 | 2,1 | 3,1| | 0,2 | 1,2 | 2,2 | 3,2| |
Trzeba też dać herosom domyślne miejsce w tej tawernie, bo inaczej po zakupie taki hero zmieni miejsce.
Warto też pamiętać o tym, że na początku gracz nie ma żadnych surowców więc wypadało by mu je dać albo ustalić koszt bohaterów na zero.
Ja pokaże tu to 2 ( nie mam WC III przy sobie)
Stwórzcie tawerne. W tym celu włączcie Edytor Jed., teraz prawym koło jednostek po lewej stronie. Potem Klepnijcie Nowa jednostka - nazwijcie ją i ustalcie jej typ na tawernę.
W edytorze obiektów mamy kilka linii:
Art - Button Position (X) to pozycja X ikony herosa w tawernie..
Art - Button Position (Y) a to Y
Statystyki - Koszt w złocie | To pokazuje ile hero kosztuje w złocie
Stat-ki - Koszt w Drewnie | A to w drewnie
Stats - Koszt żywności | A to ile będzie kosztował jedzenia.
Stats - Stock Maximum | To ile pomieści tawerna jednostek - ustawcie na 1.
Waszych bohaterów dopasujcie do "obrazku":D /\
|
Teraz skasujcie z tawerny sprzedawanych herosów oraz umiejętność wskrzeszania. Teraz dodajcie swoich herosów do tawerny:D
w Zaawansowanych odnajdzcie 'Techtree - Dependancy Equivalents - Hero'
Dodajcie tam swoich herosów. To spowoduje że każdy gracz będzie miał po jednym
Teraz Edytor Wyzwalaczy:
Zróbcie zmienne
Total_Heroes - ile herosów będziecie miec (12)
Random_Count TO pokazuje ile zostało losowych hero, powinno być równe do Total Heroes
Hero_Array Zawiera wszystkich herosów.
Random_Data Wybiera losowego hero, powinno wynosić tyle co wszyscy herosi.
Wyzwalacz:
Events Map initialization Conditions Actions Player Group - Pick every player in (All players) and do (Actions) Loop - Actions Player - Set (Picked player) Current gold to koszt hero w złocie Player - Set (Picked player) Current lumber to koszt hero w drewnie Camera - Pan camera for (Picked player) to (Position of Tawerna 0000 ) over 0.00 seconds Player - Set (Picked player) Food cap to 6 Set Total_Heroes = 8 Set Random_Count = 8 Set Hero_Array[1] = hero1 Set Hero_Array[2] = hero2 Set Hero_Array[3] = hero3 Set Hero_Array[4] = hero4 Set Hero_Array[5] = hero5 Set Hero_Array[6] = hero6 Set Hero_Array[7] = hero7 Set Hero_Array[8] = hero8 For each (Integer A) from 1 to 8, do (Actions) Loop - Actions Set Random_Data[(Integer A)] = (Integer A) |
I następny: WYBÓR SAMODZIELNY
Events Unit - A unit Sells a unit Conditions ((Sold unit) is A Hero) Equal to True Actions Player Group - Pick every player in (All players) and do (Actions) Loop - Actions Player - Make (Unit-type of (Sold unit)) Unavailable for training/construction by (Picked player) Game - Display to (All players) the text: (A player has chosen + (Name of (Sold unit))) Selection - Select (Sold unit) for (Owner of (Sold unit)) |
I Random:
Events Player - Player 1 (Red) types a chat message containing -random as An exact match Player - Player 2 (Blue) types a chat message containing -random as An exact match Player - Player 3 (Teal) types a chat message containing -random as An exact match Player - Player 4 (Purple) types a chat message containing -random as An exact match Player - Player 5 (Yellow) types a chat message containing -random as An exact match Player - Player 6 (Orange) types a chat message containing -random as An exact match Conditions (Number of units in (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True))) Equal to 0 Actions Set Random_Hero = (Random integer number between 1 and Random_Count) Unit - Create 1 Hero_Array[Random_Data[Random_Hero]] for (Triggering player) at ((Triggering player) start location) facing Default building facing degrees Game - Display to (All players) the text: (A player has randomed + (Name of (Last created unit))) Selection - Select (Last created unit) for (Owner of (Last created unit)) Player - Add -425 (Albo dowolną ilość kasy - to jest koszt bohatera) to (Triggering player) Current gold Player Group - Pick every player in (All players) and do (Actions) Loop - Actions Player - Make (Unit-type of (Last created unit)) Unavailable for training/construction by (Picked player) Set Random_Data[Random_Hero] = Random_Count Set Random_Count = (Random_Count - 1) |
I jeszcze jeden:
Events Time - Elapsed game time is 45.00 seconds Conditions Actions Trigger - Turn off Random Command |
Postawcie tawerne i wytestujcie:D
[color=red]KOLORY:[/color]
Zielony: |cff32cd32[color=red]wasz Text[/color]|r
Czerwony: |cffff0000[color=red]wasz Text[/color]|r
Pomarańczowy: |cff995500[color=red]Wasz text[/color]|r
Żółty: |cffffcc00Text|r
Jasny niebieski: |cff7777aa[color=red]Wasz Text[/color]|r
I użycia tych kol.
Podpowiedź Zielona
Ostrzeżenie Czerwone
Nowa jednostka \ sojusznik - jas. niebieski
Niebawem Kolejna część:D
A w niej:
Cinematics
Oraz NIESPODZIANKA[/i]
|
Na Forum jest 10 użytkowników :: 0 zarejestrowany i 10 gości (oparte na użytkownikach aktywnych przez ostatnie 5 minut) Zarejestrowani użytkownicy: W ciagu ostatnich 24 godzin forum odwiedziło 0 użytkowników: |