Svar till GrandLolipop [
Gå till post]:
Jag hittade tråden, du behöver inte skicka länk i GB. ^^
Ska din hjälte kunna byta tillbaka till sin förra skepnad?
Jag föreslår att du börjar med att kopiera ability'n Penguin Squeek (Item), och gör om den nya till en Hero ability.
Penguin Squeek är en ability som inte gör någonting, och finns på ett item som ser ut som en pingvin. -Den låter när man trycker på den, om jag minns rätt.
Obs. Du vill nog ta bort följande värde: "Sound - Effect Sound PenguinSqueek"
Ändra namn, icon, Tooltip, etc så det passar din ability. (T.ex 'Evolve' - "Permanently evolves your hero into something stronger..")
Sätt en level på 'Evolve'. Ingen mana cost. Och kolla Button Position så det stämmer.
När du är klar med din ability ska du göra ett par triggers.
Börja med att göra en "index", något i stil med:
Evolve Index
Events
Map initialization
Conditions
Actions
Set EvolveIndex[0] = Frog
Set EvolveIndex[1] = Spider
Set EvolveIndex[2] = Murloc Tiderunner
Set EvolveIndex[3] = Timber Wolf
Set EvolveIndex[4] = Satyr Shadowdancer
Set EvolveIndex[5] = Furbolg Champion
Set EvolveIndex[6] = Green Dragon
...osv..
EvolveIndex är en Unit-Type variabel med Array. ("Size doesn't matter." -som tjejerna säger..)
Nästa trigger ska vara hur man använder sin ability. T.ex:
Evolve
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Evolve
Actions
Set checkPlayer = (Owner of (Triggering unit))
Set amount = (Custom value of (Triggering unit))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(checkPlayer Current lumber) Less than amount
Then - Actions
Quest - Display to (Player group(checkPlayer)) the Quest Update message: You cannot afford t...
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
amount Greater than or equal to 6
Then - Actions
Else - Actions
Player - Set checkPlayer Current lumber to ((checkPlayer Current lumber) - amount)
Unit - Replace (Triggering unit) with a EvolveIndex[(amount + 1)] using The old unit's relative life and mana
Unit - Set the custom value of (Last replaced unit) to (amount + 1)
checkPlayer är en Player-variabel
amount är en Integer-variabel
Först och främst kollar den här triggern vilken ability som används. Här ska du använda din 'Evolve'.
Sen kollar triggern om spelaren som äger (Triggering unit) har tillräckligt med lumber. -Om inte så får han ett meddelande som säger att han inte har råd.
Efter det kollar den om amount är högre än 6, detta gör den pga 'Evolve Index' - du vill inte gå över högsta numret i 'Evolve Index' (då lär din hjälte försvinna och ersättas av "null", dvs ingenting..)
Om spelaren möter alla krav så utvecklas din hjälte till nästa nivå.
För varje nivå blir kostar det ett lumber extra att utvecklas.
Du får givetvis ändra om i dessa triggers hur du vill; så de passar din map.
Detta var bara ett förslag på hur det kan göras. Är inte säker på om jag har förstått dig rätt, men nåt sånt här gissar jag att du vill ha det. :P
Om jag har missuppfattat så får du säga till och förklara tydligare. ^^
Tillägg av
Phrosen 2010-08-09 18:04
Jävla Hamsterpaj som indent'ar texten och tar bort mina mellanslag. =/
Tillägg av
Phrosen 2010-08-09 18:06
Om du vill krångla till det lite så läcker antagligen 'Evolve' en group-leak som lätt kan fixas med lite JASS. (Överkurs.)