• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5


Zmiana koloru jednostki na kolor innej jednostki
#1
Cześć. Mam problem, ponieważ w obecnie tworzonej mapie na początku rundy drużyna graczy kopiują się (tworzą się te same jednostki, z tym samym ekwipunkiem i custom value który robi za rangę postaci, żeby zmienić jej % wartość statystyk i poziom zdolności) ale zależało mi na tym by jednostki nie miały koloru gracza, a zamiast tego różne kolory. Tworzona jednostka jednak zawsze ma kolor gracza, a jedyna zmienna jaką znalazłem na kolor jednostki, to zmiana na kolor innego gracza, podczas kiedy potrzebuję akcji która działaby by mniej więcek tak:
'Change color of (Last Created Unit) to (Color of (Picked Unit))'
Jak to zrobić?
Find
Reply }}}
Podziękowanie od:
#2
W obiektach możesz zmienić by model nie miał koloru gracza przez co bedzie szary zawsze
Find
Reply }}}
Podziękowanie od:
#3
Zmiana koloru drużyny jednostki w edytorze nic nie daje, dopuszczenie własnych kolorów drużyn nic nie daje, a innej opcji w edytorze obiektów i stałych gry nie znalazłem. Poza tym zależy mi na tym, by mogło to dotyczyć różnych kolorów, ponieważ mogą się one zmieniać.
Find
Reply }}}
Podziękowanie od:
#4
Mącisz coś Domi. Nie ma nic trudnego w zmianie koloru jednostek. 
Masz 2 wyzwalacze "change owner" i "changle color". W twoim przypadnu "change color"

Na podobnej zasadzie dodawałem do milicjantów zmiane koloru gracza, w trakcie gry.


[Image: maciszz.PNG]

Tak robisz, gdy jednostki są na mapie

Druga sprawa jest taka że "picked unit" i "created unit" się nie łączą ze sobą.
Musisz poprawnie postawić wyzwalacz, aby się odpalił.
Tak robisz w przypadku grupy.


[Image: maci.PNG]

Tak robisz, gdy tworzysz jednostki / grupe

I działa.
Jeśli zależy ci natomiast, żeby jednostką, które np się pojawią zmienić później team-color,
musisz je przypisać do zmiennych, od razu po stworzeniu.
Oto twoja pomoc. Goblinfactory liczy na projekt od ciebie. Pozdro.


[Image: macissss.PNG]
Find
Reply }}}
Podziękowanie od:
#5
Możesz zapisać kolor gracza do zmiennej typu Kolor
Find
Reply }}}
Podziękowanie od:
#6
Problemem nie jest zmienić kolor jednostki, chodzi mi o problem związany z tym, by zmienić kolor jakiejkolwiek jednostki (Wyzwalacz tworzy grupę wszystkich jednostek w danym regionie, następnie tworzy po 1 egzemplarzu danej jednostki w innym miejscu, kopiuje im przedmioty i custom value). Czyli dla każdej jednostki która się stworzy chodzi o to by zmienić kolor na kolor jednostki z grupy na podstawie której została stworzona jednostka.
Zależy mi na tym by była to akcja uniwersalna niezależnie od jednostki i jaki ma kolor, żeby nie trzeba było dla każdego typu jednostki robić to oddzielnie, bo wymagałoby to ponad 90 warunków.
Zapisanie koloru gracza do zmiennej typu kolor nic nie da, bo nie wiem jak zczytać obecny kolor danej jednostki by tak zrobić, poza tym jednostki mają mieć różne kolory niezależne od koloru gracza i niektóre efekty mają zmieniać kolor jednostki, który potem miałby się kopiować.

Fragment wyzwalacza w którym ma być zamieszczona akcja, która w moim utopijnym świecie brzmiałaby 'Change color of (Last Created unit) to (Color of (Picked Unit))'

[Image: 1568308770_VrfA3XJA7x1yjH7.png]
Find
Reply }}}
Podziękowanie od:
#7
Zrób sobie zmienną typu C tablica, nazwijmy ją IndexOfColor, teraz jak ustawisz jednostce custome value i kolor to przypisujesz go do IndexOfColor[CustomeUnitValue] = 1, gdzie 1 to dajmy kolor niebieski. (Analogicznie dla innych kolorów)
Potem odczytujesz customeValue jednostki, pobierasz color - zmienna typu C o nazwie temp = IndexOfColor[CustomeUnitValue], robisz ify w zależności ile masz tych kolorów - if color = 1, to przypisz niebieski, if color = 2 przypisz czerwony.

Coś takiego, na szybko wymyśliłem, nie sprawdzałem czy zadziała.
Find
Reply }}}
Podziękowanie od:
#8
A czy jednostka może korzystać z paru równoległych custom value? Bo jeśli nie to problemem jest to, że custom value jest już używane do tego by zapisać rangę jednostki (jednostki można ze sobą 'łączyć' gdy mają tę samą rangę i wtedy jedna jest usuwana, a drugiej zwiększa się custom value i na tej podstawie potem rosną statystyki i poziomy zaklęć 'klona').
Find
Reply }}}
Podziękowanie od:
#9
Użyj sobie unit indeksera z hive, każda jednostka będzie miała wtedy unikalne customeValue, a rangi jednostki możesz dokładnie tak samo zrobić jak pisałem wyżej z kolorami, robisz zmienną typu C tablica o nazwie ranga, i robisz ranga[CustomeValueOfUnit] = 1 Uśmiech

Jak nie wiesz jak wgrać unitIndeksera, to mogę pomóc.

Chociaż to jest proste kopiujesz wyzwalacze ze zmiennymi i na InitMap odpalasz unitIndeksera i tyle
Find
Reply }}}
Podziękowanie od: domi7777
#10
O, to będzie najpewniej to, dzięki!
Find
Reply }}}
Podziękowanie od:

Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  




Users browsing this thread:
2 Guest(s)

Silnik forum - © MyBB - Styl forum - iAndrew, grafika - Kithraya, Midas, Bezifabr, Blizzard Entertainment
   
O NAS
Goblin Factory to założone w grudniu 2013 roku forum moderów Warcraft 3 wspólnym wysiłkiem dwóch osób - Scaraba, i WrathaAmona. Celem ich było stworzenie czegoś na wzór starego arcane.pl - miejsca, w którym osoby które wciąż tworzą coś do Warcrafta mogą się spotkać, porozmawiać, zaprezentować swoje dzieła, zapytać o rozwiązanie różnych problemów itd. 22 czerwca 2014 roku Goblin Factory został przeniesiony na nowy silnik, i nowy hosting, a obecnie jest już największym i najpopularniejszym polskim forum dotyczącym Warcrafta 3.