Guida Passo-passo
Ciao a tutti! Mi sono deciso a scrivere un guida dedicata al potente editor di warcraft, in questo caso non mostrerò delle spell già pronte da scaricare, ma spiegherò (o almeno è quello che tento di fare) passo per passo come crearne una, descrivendo le varie funzioni, come procedere e come muoversi.
Innanzitutto apriamo una nuova mappa, e prendiamo come ‘cavia’ un eroe a nostra scelta(anche crearne di nuovi)..
Vi descrivo la spell fatta a ‘Grom’ dell articolo precedente.
Apriamo l’editor dei Trigger(F4)…E creiamo un nuovo trigger e lo chiamiamo “Dance of Axe” (e’ possibile rinominare il trigger semplicemente selezionandolo e premendo F2)
Ora abbiamo 3 categorie:
- Eventi: è la ’scintilla’ che fà partire tutto il trigger.
- Condizioni: In caso che volessimo applicare delle condizioni per l’esecuzione del trigger(dopo che l’evento è stato azionato)
- Azioni: Tutto ciò che dovrà succedere, è quଠla parte grossa del lavoro.
Eventi
Nel mio caso come Evento ho messo:
Click destro su ‘Eventi‘ > Nuovo evento > Unità – Generic unit event
Si apre una finestrella, selezionate A unit E’ sotto attacco.
Unità Â – Un unit E’ sotto attacco
Significa che: Quando una QUALSIASI unità è sotto attacco procedi con le condizioni..
Attenzione!: Questo è valido per Qualsiasi unità sia attaccante che attaccata.
Condizioni
Click Destro su Condizioni > And, Multiple Conditions
Dentro Condizioni(dentro l’AND) > Click destro > Nuova condizione > Player Comparison (vedi sotto per la configurazione)
Dentro Condizioni(dentro l’AND) > Click destro > Nuova condizione > Unit-Type comparison (vedi sotto per la configurazione)
And – All (Conditions) are true < è il comando BOOLEANO AND, cioè: questo E quello.
Condizioni (AND) ¬
- (Owner of (Attacking unit)) Diverso da (Triggering player) < Il possessore di (Unità attaccante) è diverso da (Il player che è stato individuato). Cioè il player che risponde all’evento, in questo caso il possessore dell’unità sotto attacco.
- (Unit-type of (Triggering unit)) Uguale a Grom < Il TIPO di unità di (Player individuato) è uguale a Grom (Grom è l’eroe scelto)
Riassumendo:
SE Il giocatore che possiede dell’unità che attacca è diverso da Il giocatore che è sotto attacco
E
SE Il tipo di unità posseduta da il giocatore sotto attacco è Uguale Grom (Grom è un tipo di unità !)
Ora viene il turno delle….
Azioni
Bene, dopo aver dichiarato quando il trigger deve essere azionato… passiamo alla fase pi๠‘divertente’..:P
Inizio con una variabile, un array(clicca se non sai cosè).
Per dichiarare le variabili premi CTRL+B, nella finestra che si apre premi la X verde(oppure CTRL+N) e creiamo questa variabile, con nome: Axe_Damage. Tipo: REALE (Una variabile reale, è quella variabile che può assumere valori numerici con la virgola. es 334,54 ecc.)
Selezioniamo MATRICE (cioè array/vettore) e diamogli la dimensione 4.
Premetto che NON ho utilizzato la posizione 0 (cioè Axe_Damage[0]) per non creare confusione nell’assegnazione con il livello delle spell!
Qundi creiamo delle nuove azioni (click destro su azioni >Â Nuova azione > Set variable)
Attenzione!: è importante non fare confusione con le variabili! Quindi metteteci sempre un occhio di riguardo
Questi settaggi sono i danni che l’hero infliggerà ai suoi nemici
Set Axe_Damage[1] = 90.00 – Livello 1 -Â 90 danni
Set Axe_Damage[2] = 120.00 – Livello 2Â – 120 danni
Set Axe_Damage[3] = 130.00 - Livello 3 – 130 danni
Creiamo altre variabili NON matrici, e settiamole in questo modo:
Set Axe_Caster = (Triggering unit) < Axe_Caster è una varibile di tipo Unità
Set Axe_Owner = (Owner of Axe_Caster) < Variabile di tipo Giocatore
Set Axe_Random = (Random integer number between 1 and 100) < Creo un numero random tra 1 e 100, questo mi servirà per fare in modo che la spell venga eseguita (esempio) il 17% delle volte. Vedremo pi๠avanti come dare la percentuale.
Bene, in questa lezione abbiamo imparato a settare variabili, e fare in modo che il trigger si avvii..!
Se avete domande non esitate a chiedere!
· Lezione successiva >
Tags: azioni, condizioni, creare, creare spell, custom, Editor, eventi, guida, lezioni, make, passo passo, personalizzate, spell, variabili, warcraft3, world editor
Prissimo articolo [Tutorial] Spell Dota All Stars Pudge
Articolo precedente Stupidi errori #2

settembre 10th, 2009 at 16:03
Ciao! Vedo ke te la cavi molto bene cn l'editor di TFT, quindi ne approfitto x kiederti aiuto, visto ke nn ho trovato nessun altro in giro ke lo sappia usare. Cn i trigger me la cavo abbastanza (pensavo peggio) ma mi resta un problema ke nn riesco a risolvere: come faccio a collegare due scenari per giocarli uno dietro l'altro, stile campagna? Come faccio a mantenere, ad esempio, gli oggetti che un eroe trova in una mappa, nella mappa successiva?
settembre 10th, 2009 at 18:04
Bè, non ci ho mai provato..! Ma penso di sapere come devi fare..
Innanzi tutto devi mettere i dati dellunità in delle variabili. e poi usare questi trigger:
Cache del gioco – Store Unit as Label of Category in (Last created game cache)
Poi vedi tu! Io non ho fatto test, magari domani provo
settembre 10th, 2009 at 19:27
Ke il trigger giusto fosse Game-Cache – Store Unit l'avevo intuito ("store" significa "immagazzinare" o qualcosa del genere, no?), xò nn son riuscito a combinare niente… x inserire i dati delle unità nelle variabili nn saprei proprio come fare, (le variabili sono la cosa che mi mette più in difficoltà)… se tu riesci, fammi sapere! Grazie!
settembre 11th, 2009 at 11:32
Si, infatti dovrebbe esserci una funzione:
Game Cache – Save (Last created game cache)
Che stranamente non esiste o.o
settembre 11th, 2009 at 11:57
Allora, nella categoria di Azioni "Cache del gioco", c'è un'azione ke si kiama "Save Game Cache (last created game cache)", ma nn so se è quella ke intendi tu…
Cmq stavo cercando di procedere così:
Ho creato due mappe vuote (PROVA 1 e PROVA 2) per fare un esperimento. Nella prima ho messo un eroe ed un oggetto a caso, la seconda è vuota. Nella prima ho inserito il trigger: evento: time elapsed (10 secondi), azione: vittoria giocatore 1 (in modo da avere il tempo di far prendere l'oggetto all'eroe, prima di passare alla mappa successiva). Poi ho creato una campagna includendo queste due mappe, in modo tale ke finita la prima, debba iniziare la seconda. Ora mi manca da capire come collegarle in modo che, nella seconda, sia presente l'eroe con l'oggetto ottenuto nella prima, ma nn ho molta dimestichezza.
settembre 11th, 2009 at 15:46
Prova così:
Fine Level 1:
Game Cache – Create a game cache from MyCampaign.w3v
Game Cache – Store MyHero as MyHero of Prova1 in (Last created game cache)
Game Cache – Save (Last created game cache)
Inizio Level 2:
Game Cache – Create a game cache from MyCampaign.w3v
Game Cache – Restore MyHero of Prova1 from (Last created game cache) for Giocatore1 at (Center of (Playable map area)) facing 225.00
Set MyHero = (Last restored unit)
e poi crei l'unità… fammi sapere
Non capisco il perchè… ma io non ho quella funzione! Se apro la mappa standard della campagna di rexxar mi crasha l'editor u.u
Misteri della vita
settembre 11th, 2009 at 16:23
Funziona perfettamente! Io nn ci sarei mai arrivato! Grande, grande!
Sei stato preziosissimo XD!
Cmq ci sn tante piccole cosette ke vorrei imparare meglio a manovrare con l'editor (è fatto troppo bene e sarebbe un peccato nn usarlo). Posso sempre kiedere a te?
settembre 11th, 2009 at 16:26
Certo, chiedi pure, se poi hai molte domande posso sempre scrivere un articoletto
settembre 12th, 2009 at 11:11
Secondo me quando hai tempo e voglia dovresti scrivere una guida ke analizzi passo x passo tutte le funzioni dell'editor, compreso l'editor di terreni, campagne, IA e unità, e tutti i trigger più importanti (specialmente l'utilizzo delle telecamere x i filmati!). Lo so ke ci vuole una vita x fare una cosa del genere, xò sarebbe un'ottima iniziativa, visto ke in giro di guide nn se ne trovano e quella fornita da TFT è pietosa.
settembre 13th, 2009 at 07:33
ho avuto un piccolo problema con il trigger che mi hai spiegato prima. Per "trasportare" un eroe da una mappa all'altra, nn ci sono problemi. Ma per farlo x più di un eroe? Ho tentato di fare lo stesso inserendo un'altra azione Game Cache – Store MyHero2 as MyHero2 of Prova1 ecc., ma il problema è definire la seconda variabile nella mappa 2. Set MyHero2 = (last restored unit) nn funziona, xkè di eroi ce ne sn 2, e "last restored" unit considera soltanto il primo dei due.
settembre 13th, 2009 at 07:52
mmmh.. prova a settare delle variabili..
- Passaggi per caricare Hero1 -
Caricati[1]=(last restored unit)
- Passaggi per caricare Hero2 -
Caricati[2]=(last restored unit)
Set MyHero1 = Caricati[1]
Set MyHero2 = Caricati[2]
Spero funzioni così!
settembre 13th, 2009 at 08:43
Perfetto, funziona!
Prossima domanda: (quando ti stanchi di darmi retta, basta ke me lo fai sapere XD).
Dato ke sto cercando di rendere gli scenari creati il più fedeli possibili a quelli delle campagne vere e proprie, stavo cercando di imparare ad usare la telecamera in maniera decente.
Quando inizio un filmato, imposto il trigger "Turn cinematic mode On", poi faccio parlare le unità con "Send trasmission to" e faccio svolgere altre azioni simili… solo ke mentre tutto questo succede, il gioco non si interrompe, ovvero, c'è la schermata da filmato, ma nel frattempo le unità continuano a muoversi, a raccogliere risorse, ad attaccare. Come faccio ad impedirlo?
settembre 13th, 2009 at 08:47
Unita – Pausa all units
sempre a disposizione
settembre 13th, 2009 at 12:11
Oppure:
Partita – Pause the game
Dipende l'effetto che vuoi.
settembre 13th, 2009 at 12:37
Se metto "Pausa All units" mi disattiva gli effetti delle azioni ke fanno le unità durante il filmato (esempio: anke se ho impostato il trigger "Ordina all'unità di andare verso un punto", quella resta immobile), quindi opterò x la seconda soluzione.
Altra cosa dei filmati. Se noti, nei filmati delle campagne di TFT, quando un eroe parla, l'inquadratura nn parte immobile sull'eroe, bensì parte da lontano e si avvicina lentamente all'eroe e dà un effetto un po' più dinamico al filmato. Di solito nei filmati io creo una telecamera e poi imposto: "Applica ultima telecamera creata", quindi, "Lock camera target to unit", ma così è un po' toppo statico.
settembre 13th, 2009 at 14:44
Si devi usare: Partita – Pause the game. (per fermare tutto comè e farlo riprendere dopo)
Per quanto riguarda alla telecamera
Telecamera – Applica Camera 001 <gen> for Giocatore (Rosso) over 1.50 seconds
1.50 è il tempo che la telecamera impiega per arrivare a destinazione.
Camera 001 <gen> è la telecamera impostata dal editor (tasto rapido M, tavolozza telecamere)
settembre 14th, 2009 at 09:42
La prossima cosa è una stronzata, e nn sono sicuro sia possibile modificarla, xò è una delle piccole cose ke migliora a livello estetico lo scenario.
Nelle campagne di TFT, quando si scopre una nuova missione, in basso a sinistra sullo schermo appare una notifica:
MISSIONE PRINCIPALE (in giallo)
nome missione
- requisito missione
Io cercavo di fare lo stesso con il trigger: "Missione – queste message". Display to giocatore 1 the missione rivelata message:
(e nello spazio ho scritto)
MISSIONE PRINCIPALE (in bianco)
nome missione
- requisito missione.
E' possibile fare apparire in GIALLO la scritta MISSIONE PRINCIPALE?
settembre 14th, 2009 at 10:46
Certo, ho fatto questi 2 piccoli tutorial per te
· http://www.bestkill.altervista.org/world-editor-u...
· http://www.bestkill.altervista.org/world-editor-t...
settembre 14th, 2009 at 11:28
Io nn so come hai imparato ad usare l'editor a quel modo, xò sei geniale! (soprattutto nel creare gli ambienti dello scenario, sn dettagliatissimi e fatti molto bene: complimenti!)
settembre 14th, 2009 at 11:41
Ho imparato 'smanettando' come faccio sempre
e osservando le mappe della blizzard.
cmq grazie
L'ho fatta in 10 min quella li
se hai bisogno di altro, consigli o qualsiasi cosa chiedi pure!
settembre 15th, 2009 at 10:01
Passiamo alle cose un po' più strane… tanto ormai do x scontato ke tu sia in grado di farle XD.
Mi servirebbe capire quali sono i trigger per impostare:
1)l'effetto grafico dei lampi (4 missione degli Elfi in TFT)
2)il trigger (se esiste) per creare la pioggia di infernali (ultima missione degli Orchi, di ROC).
settembre 15th, 2009 at 15:25
Per la meteorologia: http://www.bestkill.altervista.org/world-editor-c...
quando torno provo a fare la pioggia di fuoco
settembre 18th, 2009 at 09:29
Ho un piccolo problema con un trigger. (premetto che nn è facile da spiegare) Ho creato una mappa in cui ci sono alcuni giocatori alleati "controllabili", ovvero, all'inizio della mappa, si può scegliere quale usare fra questi e quali lasciare al computer. Ad ognuno di essi ho impostato delle risorse iniziali identiche, xò vorrei che il giocatore scelto all'inizio della mappa abbia un deficit di risorse, per rendere le cose un po' più complicate. Il problema è che, avendo impostato un valore fisso per tutti, nn riesco a fare in modo che al momento della scelta, quello selezionato abbia un valore di risorse diverso da quello impostato inizialmente.
settembre 20th, 2009 at 10:41
Scusa il ritardo sono stato un pò impegnato..
Se ho capito bene ti serve questo:
Giocatore – Set Giocatore Oro attuale to ((Giocatore Oro attuale) – 250)
"Giocatore Set Property" Oro Attuale to "Arithmetic" Giocatore Set Property – 250
settembre 20th, 2009 at 15:02
Nessun problema x il ritardo, cmq, avevo risolto in un altro modo. Nn mi ero acccorto ke esistesse la funzione "Giocatore scelto fra i giocatori utilizzati dall'utente", con quella è tutto più semplice. Quindi gli ho dato il trigger "All'inizio della mappa, imposta oro 2000 a tutti i giocatori. Poi, ho messo time elapsed 1 sec, assegna oro 100 solo ai giocatori controllati dall'utente.
settembre 20th, 2009 at 15:56
Ah bene
Per quanto riguarda alla pioggia di fuoco, non saprei non riesco ad arrivare alla campagna degli orchi.. warcraft si blocca e rimane tutto nero :/
settembre 21st, 2009 at 11:33
Nessun problema… XD. C'è un'altra condizione ke nn riesco a trovare. Devo fare una cosa di 'sto tipo: Azione: "a unit comes within 160.00 of triggering unit", Condizione (ke nn riesco a trovare): "se l'unità che "comes within 160.00" è controllata dall'utente", allora: Azione ecc. ecc.
In altri termini, vorrei dare origine ad un'azione ke si verifichi quando una tua unità si avvicina ad un'unità neutrale con un punto esclamativo sulla testa, xò vorrei ke si verificasse SOLO se l'unità ke si avvicina è tua, nn se si avvicina qualsiasi unità, se no mi fa saltare tutto il trigger.
settembre 21st, 2009 at 11:33
Nessun problema… XD. C'è un'altra condizione ke nn riesco a trovare. Devo fare una cosa di 'sto tipo: Azione: "a unit comes within 160.00 of triggering unit", Condizione (ke nn riesco a trovare): "se l'unità che "comes within 160.00" è controllata dall'utente", allora: Azione ecc. ecc.
In altri termini, vorrei dare origine ad un'azione ke si verifichi quando una tua unità si avvicina ad un'unità neutrale con un punto esclamativo sulla testa, xò vorrei ke si verificasse SOLO se l'unità ke si avvicina è tua, nn se si avvicina qualsiasi unità, se no mi fa saltare tutto il trigger.
settembre 21st, 2009 at 13:33
Facilissimo
l'avevo messo quì (senza condizione)
<a href="http://www.bestkill.altervista.org/download/5/” target=”_blank”>http://www.bestkill.altervista.org/download/5/
Cmq ecco quà:
· Eventi
Unità – A unit comes within 160.00 of Unità
· Condizioni
Scegli: Player Controller Comparison
((Owner of (Triggering unit)) controller) Uguale a Utente
· Azioni
. . . .
settembre 23rd, 2009 at 08:49
Ok perfetto… secondo trigger ke mi manda in crisi.
Devo impostare questo: "se la vita dell'eroe scelto per il trigger è minore di 250, a condizione ke l'eroe nn sia controllato dall'utente, e che l'eroe possieda una pergamena del portale cittadino, allora ordina all'eroe di usare la pergamena su un punto".
Per ora ho fatto:
Evento: la vita dell'unità scende sotto 250.
Condizione: proprietario dell'unità è diverso dall'utente
Condizione2: l'unità possiede una pergamena.
Azione: ordina all'eroe di usare (e poi nn so se è giusto, gli ho messo: Item carried by hero… of type pergamena del portale cittadino) su un punto.
il problema è ke vorrei che la cosa succedesse ogni volta che l'evento si verifica, soltanto che così, penso succeda solo x la prima volta. Invece, mettendogli anke l'evento Periodic Time Event (esempio 20 secondi), penso ke il trigger si verifichi puntualmente ogni 20 secondi, anke quando l'eroe ha il massimo della vita… è un disastro…
settembre 23rd, 2009 at 17:48
Ora io non sò se hai usato una variabile per l'evento…
Ma così funziona:
Eventi
Unità – XXXXXX 's life becomes Minore di 250.00
Condizioni
((Owner of (Triggering unit)) controller) Diverso da Utente
Azioni
Eroe – Order (Triggering unit) to use (Item carried by (Triggering unit) of type Pergamena Portale |nCittadino) on (Position of XXMunicipio)
Al posto di Municipio metterai una variabile(matrice) che corrisponde al giocatorePC/Fazione ecc….
settembre 23rd, 2009 at 18:32
Fino a qui ci siamo, ma nel frattempo è sorto un problema molto più grave…XD
Si tratta di impostare l'IA in modo da far fare al computer esattamente quello ke dico io.
L'IA l'ho già impostata mettendo un ordine d'attacco fatto in questo modo:
Prima onda composta da tot unità e seconda onda composta da tot altre unità. Durante il test della mappa, parte la prima onda, (quella ke contiene l'eroe ke deve teletrasportarsi se ha vita inferiore a 250).
Durante lo scontro fra prima onda ed esercito nemico, l'eroe usa la pergamena, e torna mezzo morto in città. A questo punto, nel test della mia mappa, l'eroe riparte immediatamente all'attacco con la poca vita ke gli resta, e viene ucciso subito. (quindi tanto vale fargli usare il TP!), Vorrei impostare le cose in modo ke, una volta usata la pergamena, il computer interrompa l'attacco della prima onda, e passi alla seconda. E' possibile?
settembre 23rd, 2009 at 18:56
Si, ci sono dei trigger nella finestra della campagna! Devi usare quelli, facendo variabili condizioni e wait.
Scrivi tipo: SE l'eroe è a piena vita. ecc…
settembre 23rd, 2009 at 19:06
Finestra della campagna?
settembre 26th, 2009 at 11:39
Sono in difficoltà cn l'ultima cosa ke mi hai detto… nn trovo i trigger per impostare comandi all'IA del computer (al di fuori ovviamente di quelli di avvio x l'IA), e cmq l'editor di IA è abbastanza limitato… ci deve essere un altro modo x migliorare le azioni del computer, ma io nn lo trovo. Quando hai tempo cerca di fare un esempio basandoti su la storia ke ti avevo spiegato delle due onde d'attacco, con ritirata della prima (con utilizzo del TP) e successiva partenza della seconda.
settembre 26th, 2009 at 12:37
Si scusa mi sono confuso, pensavo proprio a quella dell IA, dove puoi impostare anche i trigger, appena posso provo a fare una mappa di esempio!
settembre 26th, 2009 at 19:58
Grande, grazie!
settembre 27th, 2009 at 21:53
[...] aver settato tutte le variabili nella precedente lezione, possiamo iniziare a buttare giù [...]
settembre 30th, 2009 at 16:42
srry non ho trovato il tempo di fare una mappa cazzuta…
Cmq fai così, le ondate di attacchi le controlli con delle variabili. ogni ondata determini se è andata o buon fine o meno(almeno quelle più importanti dove cè l’hero).
In caso che l’eroe abbia usato un Tp, la prossima ondata deve avvenire SOLO se l’hero è a piena vita(metti dei curatori o simili).
Gioca un pò con le variabili non dovrebbe essere difficile
settembre 30th, 2009 at 18:34
Ke tipo di variabili devo usare? (e soprattutto, come faccio a far capire all’IA se l’ondata è andata bene o male?)
PS: nei trigger dell’IA parla di “Capitano d’attacco” e “Capitano di Difesa” hai idea di che cosa siano?
settembre 30th, 2009 at 18:54
mmh dei boolean.. dipende..
Se l’hero usa il tp è andata male, se l’ondata muore è andata male(usa i “Gruppo di unità”).
Se l’ondata è andata bene il player perde XD.. poraccio…
Cmq come ondate ti consiglierei di farlo a trigger, non con la IA dell’editor..
Falla tutta a trigger.. Usa “gruppo di unità” !
novembre 22nd, 2009 at 16:13
oddio ragazzi, starvi dietro è 1 parto difficilissimo… cm diavolo fate? io cn sta storia dei trigger nn c’ho capito 1 mazza…
domandina facile facile (spero sia altrettanto facile la risposta XD)
avete presente la pioggia di stelle di tyrande? ecco, volevo mod in modo da far cadere dei pezzi di ghiaccio (tipo l’attacco dei lich) al posto delle stelle…
Nel modificare qst abilità ho messo come modello nell’”effetto sul bersaglio”, e in tutti gli altri campi il dardo di ghiaccio, ma nel test, qnd uso qll skill mi tira giù stelle… xkè?
1 altra cs… xkè se assegno “tempesta di spade” ad 1 unità diversa da grom, o dal maestro di lama, l’attacco danneggia l’avversario, ma nn si vede il vortice di lame?
cioè, il mio eroe rimane fermo, e all’unità nemica vengono sottratti punti ferita senza vedere xò l’effetto generato dall’attacco… idem x l’avatar del re della montagna. Se assegnato alle altre unità, ha l’effetto di aggiungere PF, ma l’unità nn cresce, e nn diventa grigia
novembre 22nd, 2009 at 21:32
Ciao,
1) Per modificare l’effetto della spell, devi andare su “magie di potenziamento/effetti” e cercare “Pioggia di Stelle (Bersaglio)” e modificare “Grafica – Bersaglio”.
Ovviamente devi mettere una animazione che cada dal cielo come (pioggia di stelle e Blizzard). Infatti se vuoi l’effetto ghiaccio devi mettere “Blizzard(effetto)”, sarebbe la spell del Arcimago.
2) Perche quelle cose cono Animazioni delle unità.
L’animazione del Blade Master si chiama “Attack Walk Stand Spin”. E ce l’hanno solo loro 2.