Note della patch 4.13.0 sul PTR di StarCraft II
AGGIORNAMENTO EDITOR
Siamo entusiasti di annunciare un importante aggiornamento all'editor delle mappe di StarCraft II!
Sin dall'uscita di Wings of Liberty, il feedback dei giocatori è sempre stato omogeneo: l'editor dovrebbe essere più facile da usare. Questo aggiornamento punta a far fronte a questi feedback, senza però perdere lo spessore della personalizzazione. Per questo abbiamo assorbito elementi dall'editor di Warcraft III, progettato per essere semplice da usare, senza sacrificare le funzionalità esistenti dell'editor di StarCraft II. Inoltre, abbiamo ampliato ulteriormente le funzionalità dell'editor di SC2.
Incoraggiamo i creatori di mappe e di mod a lanciarsi nell'esplorazione e inviarci qualsiasi feedback, siamo sempre interessati ad aggiungere ulteriori cambiamenti avvincenti in futuro. Questo è l'aggiornamento dell'editor più vasto che abbiamo mai fatto, e ci piacerebbe sentire cosa ne pensate! Di seguito, una panoramica di alcune delle nuove incredibili funzioni. Per noi è d'importanza critica ottenere feedback sul funzionamento delle mappe con questi cambiamenti, per cui ti preghiamo di pubblicare le tue mappe personalizzate sul PTR e di farci sapere se riscontri problemi o funzionamenti insoliti sul nostro forum del PTR.
Prima di iniziare: non dimenticare di fare una copia delle tue mappe prima di provarle sul PTR, visto che il PTR è fatto per sperimentare.
Inoltre: ricordati che i PE per il Bottino di Guerra possono essere ottenuti sul PTR, ma il progresso non si estenderà alle altre regioni e la maggior parte delle ricompense del Bottino di Guerra rimarrà solo sul PTR.
Caricamento tra mappe consecutive
- StarCraft II ora supporta le transizioni tra due mappe di una lobby multigiocatore.
- Le due mappe di questa transizione devono essere pubblicate dallo stesso autore.
- È stata aggiunta una nuova funzione chiamata "Online Map To Map Load", che permette all'autore di caricare per tutti i giocatori lo slot assegnato a una mappa e assegnare vittoria o sconfitta a diversi gruppi di giocatori.
- Gli slot delle mappe sono assegnati nella finestra Gestisci pubblicati utilizzando la sezione "Assegna slot mappa" nel menu contestuale che si apre cliccando con il tasto destro su una mappa pubblicata.
- Gli slot delle mappe devono essere assegnati individualmente in ogni regione.
- Si ricorda che per ridurre i tempi di caricamento tra una mappa e l'altra, la prima mappa della catena dovrebbe contenere le dipendenze richieste per tutte le mappe a cui si accederà con le transizioni successive.
- È stato aggiunto un nuovo genere "Campagna", che può essere assegnato nel menu Varianti di gioco.
- Il genere "Campagna" al momento non viene visualizzato nel menu a tendina del genere di gioco, ma potrai comunque vedere le mappe nella categoria "Le mie pubblicazioni".
Raccolta dati
- Una raccolta dati è un nuovo tipo di catalogo che permette agli utenti di dichiarare e raggruppare un insieme di elementi di dati in una raccolta. Può essere considerata come una raccolta di ogni altro singolo elemento, per esempio un'unità, abilità o potenziamento.
- Quando si copia, si rinomina o si elimina una raccolta dati, l'editor effettuerà intelligentemente la stessa azione per tutti gli elementi nella raccolta. Per esempio, quando si copia una raccolta di dati, agli utenti verrà richiesto di fornire un nome alla nuova raccolta. In seguito, l'editor duplicherà ogni dato inserito all'interno della raccolta e lo denominerà di conseguenza. L'editor imposterà anche tutti i campi collegati, così che nuovi dati puntino tutti alla propria nuova controparte.
- Esempio: copia la raccolta Blizzard e imposta Activision Blizzard come nome della nuova raccolta dati.
- Eliminare una raccolta dati eliminerà tutti i dati nella raccolta.
- Cambiare l'ID di una raccolta dati cambierà gli ID di tutti i dati inseriti nella raccolta.
- I dati di una raccolta dati possono essere impostati manualmente o popolati automaticamente.
- Le raccolte dati utilizzano il nuovo carattere "@" per denominare i dati derivati. Il sistema di raccolta dati può cercare automaticamente nell'intero catalogo per trovare tutti i dati il cui ID inizia con l'ID della raccolta dati, seguito dal carattere "@". In seguito, verranno aggiunti automaticamente alla raccolta.
- Grazie a questa funzione di collegamento, quando l'albero effetti di un'abilità viene modificato, anche la raccolta dati corrispondente e i suoi dati verranno automaticamente aggiornati.
- L'immagine seguente riguarda dei dati campione all'interno di una raccolta popolata automaticamente:
- Anche se non verranno popolati automaticamente, i dati che non seguono la conversione del nome possono essere aggiunti manualmente nelle raccolte dati.
- Menu: Raccolta dati -> Riempimento automatico raccolta dati cercherà automaticamente nell'intero catalogo per trovare tutti i dati il cui ID inizia con l'ID della raccolta dati, seguito dal carattere "@". In seguito, verranno aggiunti automaticamente alla raccolta corrispondente.
- Menu: Raccolta dati -> Denominazione automatica raccolta dati rinominerà i dati della raccolta dati in base al nome della raccolta dati.
- Le raccolte dati ci permettono anche di aggiungere ulteriori informazioni di parentela tra i dati. Per esempio, grazie alle raccolte dati, il gioco può ora comprendere informazioni come "qual è l'attore principale per questa unità?".
- Molte altre funzioni di questo aggiornamento dipendono da questa funzione di raccolta dati.
- Le raccolte dati prevedono delle convenzioni di codifica o linee guida per rivelare il loro pieno potenziale:
- Tutta la raccolta dati dev'essere il più indipendente possibile.
- Per esempio, una "Raccoltà abilità" dovrebbe sempre funzionare quando viene aggiunta a un'unità, e un'abilità non dovrebbe mai avere una codifica fissa per funzionare su specifiche unità o unità con specifiche armi. Come esempio d'ammonimento, nel vecchio database di SC2, c'era un'abilità passiva della Lancia del Vuoto che aumentava il danno dopo aver attaccato per diverso tempo. Questa abilità passiva era in realtà fasulla, e la funzione aveva in realtà una codifica fissa sull'arma della Lancia del Vuoto. In questa nuova era di raccolte dati, scoraggiamo l'uso scorretto di tali dati. Pertanto, molte nuove funzioni descritte qui sotto sono state create per aiutare a raggiungere quest'obiettivo.
Editor di dati in "Modalità facile"
- L'Editor di dati in "Modalità facile" è una funzionalità estesa delle raccolte dati. Quando è attiva, l'editor di dati mostrerà solo le raccolte dati e le riprodurrà come se fossero dei singoli "dati abilità", "dati unità", "dati oggetti", "dati potenziamenti" e così via. Potrai copiare, rimuovere, eliminare o rinominare questi dati come se fossero singoli oggetti.
- Questa modalità è disponibile solo nella visualizzazione a tabella. Include i campi più importanti come i dati sulla vita delle unità o sui danni delle abilità.
- I campi che sono mostrati in Modalità facile sono totalmente personalizzabili per ogni tipo di raccolta dati.
- Una delle lamentele maggiori della maggior parte dei creatori di mappe di SC2 era che duplicare le unità o le abilità fosse troppo complicato. Questo è uno dei maggiori vantaggi dell'editor di Warcraft III rispetto a quello di SC2.
- La nostra risposta è stata la combinazione di raccolte dati e Modalità facile.
- In futuro, vorremo creare più dati basati su raccolte dati, così che gli utenti possano interagire con essi più facilmente.
- Incoraggiamo i modder a creare le proprie mod con le raccolte dati, così che possano trarne beneficio. Inoltre, incoraggiamo i modder di mod pubbliche a definire la visualizzazione della loro Modalità facile, così che gli altri modder possano modificare le proprie mod.
Accumulatori
- Gli accumulatori sono una nuova funzione che permette ai creatori di mappe di generare formule in base a vari parametri di input.
- Gli accumulatori possono prendere come parametri valori personalizzati delle unità e Dati utente.
- Gli accumulatori non solo supportano le formule, ma anche le tabelle definite dagli utenti. Quando sono uniti ai convalidatori si possono utilizzare per fornire la funzionalità case switch.
- Per esempio, quando un accumulatore viene usato in un comportamento che ha livelli variabili e può essere lanciato da giocatori multipli, esso calcolerà il risultato sulla base di ogni giocatore.
- Gli accumulatori sono molto versatili e possono essere usati in molti punti, come per esempio: danni, efficacia delle cure, rigenerazione vitale, costo delle abilità, bonus corazza, conteggio batch attore, conteggio comportamenti, durata comportamento, frazione di danni, velocità d'attacco, velocità di movimento, probabilità di comportamento, quantità di vita e così via.
- Nuova variabile di analisi stringa: $AccumulatedValue:xxx$
- Questa variabile può essere usata per calcolare l'AccumulatedValue nell'UI: Per esempio:
- Questa variabile può essere usata per calcolare l'AccumulatedValue sull'UI: Per esempio:
- Richiama "d ref="$AccumulatedValue:Effect,JainaBlizzardPersistent,PeriodCount$"/>" ondate di frammenti di ghiaccio congelante. Ogni ondata infligge danni alle unità in un'area.
- Questa variabile può essere usata per calcolare l'AccumulatedValue sull'UI: Per esempio:
- Questa variabile può essere usata per calcolare l'AccumulatedValue nell'UI: Per esempio:
Reazione livello giocatore
- La Reazione giocatore è un nuovo catalogo dati che permette agli utenti di stabilire modelli di reazione quando qualcosa accade al giocatore in uso. I creatori potranno usare gli attivatori per dotare determinati giocatori di questi modelli di reazione e le unità del giocatore risponderanno agli eventi registrati come se avessero dei comportamenti di reazione danni.
- Gli utenti hanno l'opzione di impostare la priorità e i metodi di passaggio per le Reazioni giocatore.
- La Reazione livello giocatore rimuove il bisogno di applicare determinati comportamenti a tutti mentre si creano i comandanti, il che migliora notevolmente le prestazioni di gioco. Inoltre, dato che si deve dotare di reazioni il rispettivo comandante solo quando reagisce, il gioco non ha più bisogno di processare ogni singola volta i dati di prevenzione morte di tutti i comandanti.
- La Reazione giocatore non è più limitata all'evento "l'unità è danneggiata" come i comportamenti di reazione danni. Per esempio, può anche rispondere alla comparsa dei giocatori o delle unità o alla morte del giocatore o delle unità e così via.
Barra di stato non segmentata
- Azione degli attivatori: UI - Override Player Option ora permette ai creatori di mappe di cambiare lo stile della barra di stato predefinita, per essere più lineare e non segmentata. È utile per le mod personalizzate che richiedono una visualizzazione segmentata più accurata della vita.
Dati aggiornati per la mod dei componenti di Warcraft III
- Nel febbraio del 2015, abbiamo rilasciato una mod di componenti di Warcraft III. Nonostante il pacchetto includesse solo componenti, molti modder volevano imparare a creare abilità in stile GdR con l'editor di StarCraft II. Con tutti i cambiamenti all'editor di questo aggiornamento, vogliamo offrire ai modder alcuni esempi di queste nuove funzionalità.
- Abbiamo lavorato con il creatore di Renee's Warcraft III Mod, la mod comunitaria di Warcraft III, per ricrearla con tutte le funzionalità del nuovo editor.
- Ora, la mod ufficiale dei componenti di Warcraft III include tutta una serie di dati che includono razze, unità, strutture e abilità. Speriamo che questi esempi aiutino i modder a restare al passo.
Movimenti in formazione
- Ora StarCraft II supporta i movimenti in formazione, che possono essere attivati o disattivati per ogni giocatore tramite attivatori.
- Le unità si possono muovere e attaccare in formazione a quadrato, con distanze di separazione predefinite.
- Al momento, questo movimento in formazione non obbliga tutte le unità in formazione a mantenere la stessa velocità di movimento, il che è diverso dalla versione di Warcraft III.
- I modder possono modificare questi dati per personalizzare il comportamento.
Percorsi in acqua
- Ora StarCraft II supporta i percorsi in acqua!
- Nuovi tipi di percorso: acque basse e acque profonde.
- Nuove modalità di percorso: galleggiamento e anfibia.
- Le unità terrestri possono muoversi sul terreno e nelle acque basse.
- Le unità galleggianti possono muoversi nelle acque basse e nelle acque profonde.
- Le unità anfibie possono muoversi sul terreno, nelle acque basse e nelle acque profonde.
- Le unità volanti possono muoversi ovunque non ci siano ostruzioni del percorso aereo.
- Questi due nuovi tipi di percorso possono essere realizzati solo dal pennello del percorso nell'editor di terreni.
Strati multipli dei dislivelli
- Ora StarCraft II supporta fino a 15 strati per i dislivelli, rispetto ai precedenti 3.
Rinnovamento del sistema dei potenziamenti
- Questa è una parte importante del sistema di raccolta dati e del nuovo sistema comandanti.
- Il vecchio sistema dei potenziamenti non riusciva a essere indipendente, un grande scoglio nella filosofia della nuova raccolta dati. Nel vecchio sistema, i potenziamenti specificavano le abilità o le unità interessate, insieme agli effetti del potenziamento corrispondenti.
- Il nuovo sistema permette ai potenziamenti di essere più indipendenti. Ora sono le unità a dover dichiarare i potenziamenti che usano, invece di lasciare che siano i potenziamenti a stabilire quali siano le unità interessate. Per esempio, i potenziamenti non dovrebbero più essere attuati secondo il modello "aumenta la vita dei Marine di 10", ma seguendo il modello "aumenta la vita di ogni unità che mi usa di 10".
- Nuovo campo CUpgrade: EffectArrayTemplate
- Questo campo è simile al vecchio EffectArray con le seguenti eccezioni:
- Supporta due variabili aggiuntive:
- ^ParamId^: l'ID di ogni raccolta dati che usa il potenziamento.
- ^ParamLevel^: l'attuale livello del potenziamento.
- Supporta i riferimenti dati e l'uso dell'aritmetica. Usa le parentesi "{" e "}" per creare formule, come faresti nell'editor di testo.
- Le raccolte dati incoraggiano i modder a nominare tutti i dati connessi seguendo una specifica convenzione, così che i modder possano facilmente usare ^ParamId^ per i dati relativi all'unità che li sta usando.
- Per esempio:
- EffectArrayTemplate Reference="Effect,^ParamId^@Weapon,Amount" Value="{DataCollection,^ParamId^,UpgradeInfoWeapon.DamagePerLevel+3}"/
- Questo potenziamento aumenterà il danno dell'arma dell'unità che ne beneficia di un ammontare pari al campo UpgradeInfoWeapon.DamagePerLevel della raccolta dati dell'unità più tre.
- Puoi inserire un numero fisso nella colonna dei valori, per esempio Value="4".
- Supporta due variabili aggiuntive:
- Questo campo è simile al vecchio EffectArray con le seguenti eccezioni:
- I vecchi campi CUpgrade esistono ancora e rimangono gli stessi dal punto di vista funzionale, quindi tutti i vecchi potenziamenti funzioneranno ancora. Puoi continuare a creare potenziamenti come prima, ma non è raccomandabile.
- Supporto potenziamenti per tutte le unità
- Dal momento che alcuni potenziamenti sono progettati per funzionare su "tutte le unità" (di un determinato tipo), CUpgrade ora ha un indicatore per elencare tutte le unità della raccolta dati.
- Due campi filtro, EnumExcludedUserFlags e EnumRequiredUserFlags, sono stati aggiunti a CUpgrade per permettere ai potenziamenti di filtrare tutte le unità della raccolta dati in base ai loro indicatori.
- Nuove operazioni dei potenziamenti: AddBaseMultiply e SubtractBaseMultiply
- Queste operazioni modificano il campo di destinazione in base al suo valore predefinito invece del suo valore attuale, il che è generalmente più utile dell'operazione Moltiplica. Per esempio, se si hanno 100 livelli di un potenziamento "aumenta la vita dell'unità del 10%", probabilmente si vorrà aumentare la vita di un numero fisso per ogni livello, piuttosto che moltiplicarla ogni volta per la vita dell'ultimo livello. Inoltre, Add/SubtractBaseMultiply supporta i depotenziamenti tecnici, poiché può annullarsi da solo in qualsiasi momento, cosa che Moltiplica non può fare.
- I potenziamenti ora possono essere usati per abilitare o disabilitare le unità per i giocatori.
- Nuovo campo CWeapon: Moltiplicatore velocità
- Ha un valore predefinito di 1.
- Quando il gioco prova a ottenere la frequenza di un'arma o l'effetto CP, prenderà in considerazione questo moltiplicatore.
- Questo cambiamento ti permette di potenziare la velocità delle armi di un tasso percentuale, invece che cambiare direttamente la frequenza dell'arma.
Sistema dei globi (più Tiro Multiplo e Colpo Critico)
- I globi sono modificatori d'attacco che hanno una parte importante nel genere MOBA.
- Il sistema di reazione danni di StarCraft II può essere usato per creare i globi, ma la reazione danni e i modificatori d'attacco sono in realtà molto diversi.
- La maggior parte dei vecchi "globi" di SC2 non si adatta alla definizione classica del funzionamento dei globi, dal momento che sono integrati nelle armi e non possono essere facilmente rimossi o aggiunti a esse. Perciò, se si vuole creare un oggetto globo, non sarebbe realistico integrare gli effetti di tale oggetto in tutte le armi degli eroi nel gioco.
- Il sistema dei globi che abbiamo aggiornato è un concetto ampliato dei sistemi dei globi dei generici MOBA, che include il supporto ufficiale a tiro multiplo e colpi critici.
- Un vero sistema dei globi richiede le seguenti funzionalità:
- Capacità di applicare i suoi effetti all'arma per ogni attacco.
- Capacità di modificare i proiettili.
- Capacità di aggiungere effetti speciali quando l'arma colpisce il bersaglio, per esempio fuoco, ghiaccio e così via. Dovrebbe anche essere in grado di applicare gli effetti sia prima che dopo l'impatto.
- Per esempio, l'abilità Frecce Nere necessita che il suo globo applichi una penalità al bersaglio e che essa evochi uno scheletro quando tale bersaglio viene ucciso. Se il sistema dei globi applicasse gli effetti solo dopo l'impatto, l'unità potrebbe venire uccisa dall'impatto e non verrebbe evocato alcuno scheletro.
- Un altro esempio è l'abilità Schegge a Frammentazione. Dato che essa infligge danni bonus ad area in base ai danni primari, il danno ad area aggiuntivo deve verificarsi dopo l'impatto, poiché i danni primari casuali devono essere generati prima.
- Quando un'arma comincia a caricare l'attacco, il modificatore d'attacco del globo dev'essere già registrato, anche prima che l'attacco venga lanciato. Questo permette alle unità di riprodurre animazioni speciali come nel caso di Colpo Mortale.
- I globi devono poter applicare bonus coerenti ai danni.
- I globi dovrebbero avere l'opzione di validare i propri effetti, per esempio le abilità Percossa e Colpo Mortale non dovrebbero attivarsi sulle unità alleate.
- Nuovo indicatore effetti: MainImpact
- Quando è attivo, questo indicatore contrassegna un effetto come effetto d'impatto principale dell'albero effetti di un'arma, così che i modificatori d'attacco possano sapere quando lanciare i propri effetti del modificatore.
- Nuovo tipo di comportamento: CBehaviorAttackModifier
- Se applicati, i modificatori avranno effetto quando si inizia ad attaccare con un'arma. Si registrerà nell'intero albero effetti dell'attacco.
- Il campo Probabilità determina la probabilità di attivazione del modificatore d'attacco, calcolata per ogni attacco.
- Modificatori multipli aggiunti a un'unità. Il campo ID Unico permette agli utenti di determinare se possano funzionare tutti nello stesso momento. In Warcraft III, anche se un eroe ha più globi equipaggiati, si può verificare solo l'effetto di un globo. Tuttavia, i modder vorranno probabilmente avere l'opzione di poter far funzionare diversi globi allo stesso tempo.
- Il campo Accumuli massimi determina il numero di volte che i bonus ai danni possono essere accumulati.
- I campi Bonus danni decidono se ci sono bonus variabili o costanti. Inoltre, questi campi supportano gli accumulatori.
- I campi Convalidatore determinano se i modificatori funzioneranno su determinati bersagli. Per esempio, non vorresti che Colpo Mortale funzionasse anche quando attacchi le tue stesse unità.
- Il campo PreImpactEffect lancerà un effetto prima che l'impatto avvenga.
- Il campo DamageInheritEffect lancerà un effetto dopo che avviene l'impatto, ereditando i danni all'impatto dall'albero effetti che segue. Questi effetti permettono agli utenti di creare un effetto Catena di Fulmini o infliggere danni ad area in base ai danni all'impatto.
- Può determinare se l'attacco può mancare il bersaglio. Vedi la sezione sul sistema di Mancare/Deviare/Bloccare.
- L'indicatore Visuale solo allucinazioni permette ai modder di determinare se un modificatore d'attacco applicherà l'effetto del globo se chi l'ha lanciato è un'allucinazione. Se il lanciatore è un'allucinazione, probabilmente non vorresti che infliggesse danni ad area ed evocasse degli scheletri. Tuttavia, alcuni modder potrebbero volere questa opzione.
- Con questo indicatore, il modificatore d'attacco verrà comunque applicato all'albero effetti d'attacco, quindi l'unità sarà ancora in grado di fingere l'animazione di un Colpo Mortale e lanciare un proiettile modificato. Tuttavia, l'attacco non applicherà un vero effetto dei globi all'impatto.
- I campi MultishotEffect e MultishotSearchPattern permettono agli utenti di lanciare un effetto di tiro multiplo a ogni bersaglio nei criteri di ricerca forniti. La probabilità restituisce vero e tutti i convalidatori sono rispettati. Se il campo MultishotEffect non è impostato, si farà riferimento all'effetto originale dell'arma d'attacco.
- Può decidere se i bersagli di tiro multiplo possono ricevere gli effetti d'impatto.
- Può abilitare l'arma per indice, così che gli eroi da mischia con l'oggetto globo possano usare la loro arma nascosta per attaccare unità aeree.
- Se applicato a un attacco, il modificatore può popolare il termine attore WeaponModifier nell'evento WeaponStart, così che il sistema attori possa riprodurre diverse animazioni d'attacco in base ai modificatori d'attacco attivi.
- Avere l'indicatore "IsCritical". Se selezionato, l'attacco verrebbe segnato come "critico", che attiverebbe il messaggio attore critico e popolerebbe il messaggio SetText e SetTextlocalized con la quantità di danni, così che i modder possano creare dei testi fluttuanti quando avviene un Colpo Mortale.
- Nuovo tipo di abilità: CAbilAttackModifier
- CBehaviorAttackModifier può gestire la maggior parte dei casi di abilità dei globi, ma per alcune abilità come Frecce Roventi della Sacerdotessa della Luna, l'incantesimo del globo ha bisogno di un interprete dei comandi per attivare e disattivare il lancio automatico.
- CBehaviorAttackModifier è un interprete dei comandi di CBehaviorAttackModifier, così da poter aggiungere il comando di lancio automatico o manuale al globo.
- Può impostare il costo al modificatore, così che per ogni utilizzo di un'abilità del globo ci sia un costo in risorse o parametri vitali.
- Ha una proprietà di livello, così che possa avanzare di livello tramite le abilità di apprendimento di un eroe.
- Nuovo tipo di attore: CActorActionOverride
- Usato per sovrascrivere la grafica dei missili, d'impatto e dei danni di CActorAction.
- Ha i campi Modello danni, Modello impatto e Modello missile per impostare i collegamenti modelli che sta sovrascrivendo.
- Quando CActorAction è inizializzato, inizierà l'evento ActionInitModifier.
- CActorActionOverride può controllare quest'evento e crearsi per CActorAction. Successivamente, può usare ActionOverrideApplyTo per applicarsi a CActorActions.
- CActorAction prenderà i dati da CActorActionOverride e sovrascriverà i suoi modelli d'attacco.
Supporto abilità dinamico
- I modder ora possono usare gli attivatori per aggiungere o rimuovere abilità dalle unità.
Scambio abilità
- Nuova funzione: UnitAbilityChangeLink()
- Questa funzione permette agli utenti di scambiare un'abilità esistente da un'unità all'altra, mantenendo le vecchie cariche, tempi di recupero e livelli.
- Differisce dalla Sostituzione catalogo, poiché è basata su istanze per abilità.
- Abbiamo anche aggiunto un nuovo campo Sostituisci abilità nel tipo di comportamento fruitore d'energia, che fornisce una versione dati di questa funzione.
- Può effettuare lo scambio solo con le abilità che hanno la stessa classe CAbil della vecchia abilità. Per esempio, un'abilità a bersaglio singolo può essere scambiata solo con un'altra abilità a bersaglio singolo.
- La versione dati di Scambio abilità influenzerà anche le abilità che gli eroi possono apprendere.
Passaggio per riferimento delle strutture nella GUI attivatori
- Le funzioni e le azioni degli attivatori ora possono definire i tipi di record come parametri.
- Le variabili dei record ora possono essere passate a funzioni e azioni come parametro di riferimento.
- I parametri dei record possono essere letti e modificati. Le modifiche influenzeranno la variabile del record al di fuori dell'ambito della funzione.
Nuovo attivatore API: Data Table Instance
- Funziona nello stesso modo delle tabelle dati, tranne che si possono avere istanze multiple, contare i loro valori e copiare i valori tra le tabelle dati.
- La vecchia tabella dati è una singola tabella dati globale. Aggiungere una versione istanziata permetterà ai creatori di organizzare meglio i loro dati di runtime.
Sovrascrivere le descrizioni di oggetti/abilità secondo un criterio unità/oggetti
- Nuovi nativi: UnitSetInfoButtonTooltip, UnitClearInfoButtonTooltip.
- Permettono agli utenti di sovrascrivere le descrizioni sui pulsanti di comando.
- L'azione dell'attivatore "Set" si aspetta tre parametri: l'oggetto/unità da modificare, la chiave di modifica e il testo della descrizione.
- La chiave di modifica accetta tre formati differenti, permettendo tre diversi modi di personalizzare le descrizioni di comando:
- Sovrascrivi descrizioni di comando tramite AbilCmd
- La chiave sarebbe l'AbilCmd, per esempio "Stimpack,0".
- Sovrascrivi descrizioni di comando tramite collegamento tasto
- La chiave sarebbe l'ID del pulsante, per esempio Marine.
- Sovrascrivi descrizioni oggetti dell'unità stessa
- In questo caso, si usa la chiave "@".
- Sovrascrivi descrizioni di comando tramite AbilCmd
- Funziona anche se la scheda comandi viene sovrascritta per mostrare la scheda comandi di altre unità.
Supporto skillshot
- Ora StarCraft II supporta gli skillshot!
- Nuovo campo indicatore di Effetto lancio missile: SearchFlags
- Nuovo indicatore ricerca di Effetto lancio missile: DynamicSearchArea
- Abilita la ricerca skillshot. Senza di esso, il missile sarà normale.
- Nuovo indicatore ricerca di Effetto lancio missile: ArriveOnSearchHit
- Configura se il missile skillshot "detona se colpisce il bersaglio" o "perfora". Vedi qui sotto.
- Nuovo indicatore ricerca di Effetto lancio missile: DynamicSearchArea
- Nuovi campi di Effetto lancio missile:
- SearchHitArriveEffect
- Funziona solo quando ArriveOnSearchHit è attivo. Questo effetto viene eseguito quando il missile detona colpendo un bersaglio.
- Nota: questo effetto sarà eseguito al punto di ricerca finale prima che il missile scompaia, non al punto d'arrivo del missile. Questa funzione è simile a quella di Finisci effetto.
- SearchEffect
- Il missile eseguirà questo effetto ogni ciclo di gioco, sovrascrivendo il parametro Altezza nell'area di ricerca in base alla velocità attuale del missile. In sostanza, non lascerà spazio tra ogni ricerca.
- Nota: il cheat TVE mostrerà un'altezza predefinita sbagliata, invece che l'altezza corretta sovrascritta dell'effetto di ricerca.
- SearchMaxCount
- Denota il conteggio massimo della ricerca durante l'intero percorso del missile, non il conteggio massimo della ricerca per ogni ricerca individuale. Il missile smetterà la ricerca dopo aver trovato SearchMaxCount bersagli.
- Quando viene raggiunto SearchMaxCount e ArriveOnSearchHit non è impostato, il missile continuerà a viaggiare verso la sua destinazione, ma non eseguirà più le ricerche skillshot.
- Quando viene raggiunto SearchMaxCount e ArriveOnSearchHit è impostato, il missile detonerà ed eseguirà SearchHitArriveEffect nell'ultimo punto di ricerca. Da notare che questo non è il bersaglio del missile, perché non avrà ancora raggiunto la sua destinazione.
- Se SearchMaxCount è 0 e ArriveOnSearchHit è impostato, il missile non limiterà il conteggio massimo della ricerca. Finché uno degli effetti di ricerca trova un bersaglio, il missile detonerà ed eseguirà SearchHitArriveEffect sull'ultimo punto di ricerca.
- SearchHitArriveEffect
Sistema eroi migliorato
- Nuova classe CUnit: CUnitHero
- Cinque nuovi campi (rapportati a CUnit):
- MainAttribute:
- Un singolo collegamento comportamento che viene applicato/rimosso automaticamente alla creazione dell'unità o alla sua trasformazione.
- Non è diverso da un normale campo comportamento. Tuttavia, usarlo come campo singolo gli permette di essere letto facilmente da una funzione catalogo per determinare l'attributo primario di un eroe.
- MainAttributeDamageBonus
- Questo campo impone quanti bonus ai danni possa ricevere un'unità eroica per ogni punto MainAttribute.
- AttributePointsInfoArray:
- Imposta i punti attributo iniziali e di livello di un eroe in base all'attuale livello dell'eroe. Questo imposterà solo i punti attributo, non applicherà il comportamento attributo se l'eroe non ne ha già uno.
- LearnInfoArray:
- Usa la stessa struttura di CAbilLearn_LearnInfo. Se uno degli indici imposta un collegamento abilità, esso sovrascriverà l'informazione corrispondente dell'apprendimento abilità sull'eroe. Di conseguenza, non ci sarà più bisogno di creare funzioni di apprendimento abilità distinte per eroi diversi.
- Il pulsante comando Apprendi info può essere generato automaticamente quando l'indicatore "Crea pulsante predefinito" è impostato.
- TierRequirements
- Questo campo sovrascriverà i requisiti tecnologici di CAbilTrain quando l'abilità viene usata per addestrare l'unità eroica ed esiste già più di un Alias tecnologia dell'attuale unità per il giocatore attuale.
- MainAttribute:
- Nuovo indicatore CAbilityRevive: Icona di avviso sovrascrivi
- Quando un giocatore rianima un eroe con l'abilità CAbilRevive e l'Icona di avviso sovrascrivi attiva, l'abilità imposterà l'icona di avviso sull'icona di CAbilRevive invece dell'icona dell'unità eroica.
- Nuovi nativi aggiunti:
- TechTreeSetProduceCap
- TechTreeGetProduceCap
- Queste funzioni possono essere richiamate dagli attivatori per impostare un limite alla tecnologia in base a unità, potenziamenti, abilità, comportamenti o effetti.
- Inoltre, possono essere usate per personalizzare il limite all'addestramento degli eroi.
- Punti attributo base e Punti attributo bonus
- I comportamenti attributo sulla CHeroUnit ora hanno due diversi valori dei punti: base e bonus.
- I punti attributo iniziali e di livello di un eroe (configurati nel AttributePointsInfoArray) verranno contati nel valore base, mentre gli altri cambiamenti ai punti, come i bonus derivati dai comportamenti, verranno contati nel valore bonus.
- Nel pannello informativo dell'unità, i punti attributo base verranno mostrati con un numero bianco, mentre i punti attributo bonus verranno mostrati con un numero verde (+X).
- I bonus aggiunti dai punti attributo base non sono più mostrati con numeri verdi (+X). Invece, verranno aggiunti ai campi base danno/scudo/velocità arma.
- Gli attributi aggiunti dai benefici o dagli oggetti verranno comunque mostrati con numeri verdi (+X).
- Nuovi indicatori CEffectApplyBehavior:
- SetAttributePoints: quando questo indicatore è selezionato, l'effetto imposterà i punti attributo per il comportamento attributo.
- SetAttributeBasePoints: quando questo indicatore è selezionato, modificherà i punti base invece dei punti bonus.
- Aggiunto un nuovo campo CabilTrain: IgnoreUnitCostRequirements
- Quando è impostato, l'abilità di addestramento ignorerà i costi delle unità finché i requisiti tecnologici sono soddisfatti.
- Può essere usato per implementare delle meccaniche di gioco speciali come "Il tuo primo eroe è gratis".
- Miglioramenti sottomenu Apprende abilità
- Nuovo indicatore di Apprende abilità: ClearSubmenuOnPointsSpent
- Quando è impostato, un'unità che usa quest'abilità uscirà automaticamente dal sottomenu schede comandi dopo aver speso tutti i punti abilità.
- Nuovo indicatore di Apprende abilità: HideSubmenuOnLearnedAll
- Quando è impostato, il pulsante del sottomenu Apprende abilità verrà nascosto dopo che un'unità che usa l'abilità ha appreso tutte le abilità.
- Risolto un problema per il quale il pulsante Apprende abilità mostrava il testo "Livello richiesto:" in rosso se venivano spesi tutti punti, anche se l'unità soddisfava il livello richiesto.
- Risolto un problema per il quale talvolta i giocatori potevano usare il tasto shift per aggirare le restrizioni di livello di Apprende abilità.
- Nuovo indicatore di Apprende abilità: ClearSubmenuOnPointsSpent
- Aggiunto un nuovo requisito di conteggio stato delle unità: QueuedOrBetterOrRevivable
- Quando si contano le unità tecnologiche, includerà gli eroi rianimabili e quelli in rianimazione.
- È molto utile quando si implementano le restrizioni all'addestramento degli eroi. Per esempio, se si imposta la restrizione "Non puoi addestrare più di 3 eroi", probabilmente non vorresti che venissero contati solo gli eroi in vita.
- Livello eroe e Formula PE
- Nuovo campo CBehaviorVeterancy: Livelli
- Imposta il livello massimo di un eroe.
- Questo campo è espandibile, il che permette ai modder di cambiare i livelli massimi delle abilità in fase di runtime.
- Il valore predefinito del campo è 0 e riporterà il sistema di livelli al suo funzionamento precedente.
- Nuovi campi CBehaviorVeterancy:
- MinVeterancyXPBonusPerLevel
- MinVeterancyXPPreviousValueFactor
- MinVeterancyXPLevelFactor
- Se la dimensione di VeterancyLevelArray è più piccola del numero nel campo livelli, il gioco genererà automaticamente i "PE minimi" dei livelli aggiuntivi in base a questi fattori.
- La formula usata è la seguente, dove X è il livello e F(X) sono i PE minimi del livello:
- F(X) = F(X-1) * MinVeterancyXPPreviousValueFactor + MinVeterancyXPLevelFactor * X + MinVeterancyXPBonusPerLevel
- Questa formula viene usata quando il livello X è più grande di VeterancyLevelArray. In caso contrario, prenderà direttamente i PE minimi dalla tabella VeterancyLevelArray.
- Nuovo campo CBehaviorVeterancy: Livelli
- Frazioni di PE ricevute in base al Tipo di bersaglio
- Nuovo comportamento CBehaviorVeterancy: XPReceiveFraction
- Questo campo è un Array di strutture che permette agli utenti di specificare un filtro di selezione e un valore cumulabile di frazione per ogni array.
- Quando un eroe riceve PE, il gioco controllerà i filtri di selezione sull'unità e applicherà la frazione di PE se l'unità rientra in uno dei filtri.
- Insieme agli accumulatori, gli utenti potranno creare più facilmente delle formule di PE come: "le unità evocate conferiscono metà PE" o "gli eroi ottengono PE ridotti dai servitori in base al livello attuale dell'eroe".
- Nuovo comportamento CBehaviorVeterancy: XPReceiveFraction
- Aggiunto un nuovo convalidatore: CValidatorUnitCompareAbilSkillPoint
- Controlla i punti abilità spesi, i punti abilità inutilizzati, i punti abilità aggiuntivi o i punti abilità totali di un'unità.
Miglioramenti al Sistema oggetti e inventario
- I sistemi degli oggetti sono vitali per i GdR e siamo lieti di poter fornire loro un maggior supporto dell'editor.
- Supporto oggetti di costruzione
- Gli oggetti nell'inventario di un'unità ora possono essere usati per costruire strutture.
- Quest'abilità può essere impostata per richiedere all'eroe di mantenere un canale. In alternativa, i giocatori potranno "evocare" strutture come nel caso di quelle protoss.
- Questo tipo di oggetto può essere utile per costruire espansioni. L'eroe può comprare una struttura primaria portatile e usarla nella nuova espansione, quindi la struttura si costruirà da sola.
- Mostra inventario per gli altri giocatori
- Nuova proprietà CInventoryPanel: ShowForAllPlayers
- Quando restituisce vero, i giocatori potranno selezionare le unità degli altri giocatori per vedere i loro inventari. Tuttavia, non potranno utilizzare i loro oggetti.
- Nuova proprietà CInventoryPanel: ShowForAllPlayers
- Lancia su oggetti in inventario
- CCommandButton ora offre la proprietà ButtonOtherUnit. Ora, gli utenti potranno usare la proprietà di vincolo per vincolare l'oggetto (non il suo portatore) a un frame di destinazione o altri frame.
- Grazie a questa funzione, gli utenti potranno lanciare le abilità su un oggetto all'interno del loro inventario, sia per trasferirlo sia per potenziarlo.
- Grazie a questa funzione, gli utenti ora potranno fare doppio clic sui portali per teletrasportarsi automaticamente alla struttura principale di livello più alto.
- Pannello inventario accessibile globalmente
- Ora gli utenti possono sovrascrivere la proprietà Inventario unità del CInventoryPanel per mostrare l'inventario di un'unità che non è attualmente selezionata.
- Gli utenti possono anche usare gli attivatori per creare nuove finestre di dialogo dell'inventario. Questo supporta operatori come la finestra di dialogo della scheda comandi introdotta in Legacy of the Void.
- Gli utenti possono impostare l'unità selezionando "Usa SetDialogItemUnit". Impostarlo a un valore null ripristinerà l'unità leader selezionata.
- Mostra l'inventario del compratore
- In precedenza, StarCraft II non supportava bene i negozi di oggetti neutrali in stile Warcraft III. Prima di questo aggiornamento, quando un utente cliccava su un'unità negozio, non poteva vedere l'inventario dell'unità compratrice.
- Ora, i negozi neutrali mostreranno l'inventario del compratore dato che non hanno un inventario proprio, e il pannello inventario non sarà sovrascritto per mostrare l'inventario di un'unita specifica.
- Carica dati su CUnit
- È stato aggiunto il caricamento dati a unità e oggetti in modo che quando si vendono oggetti e unità i dati degli oggetti e delle unità possano impostare le informazioni predefinite delle scorte (come il tempo di recupero iniziale nei negozi, le scorte massime nei negozi e così via).
- L'abilità CAbilTrain può essere contrassegnata per ignorare queste impostazioni predefinite e usare le impostazioni personalizzate nell'abilità stessa.
- Se l'indicatore non è selezionato e l'abilità ha i propri dati, entrambe le istanze di caricamento dati verranno aggiunte insieme.
- "Veri" oggetti potenziamento
- Nuovo tipo di oggetto: CItemAbilPowerUp
- Gli oggetti potenziamento ora possono essere implementati come oggetti reali, invece di dover imitare un'unità.
- CItemAbilPowerUp viene ereditato da CItemAbil. Le uniche differenze sono che verrà usato automaticamente quando viene raccolto e che può essere raccolto anche quando l'inventario dell'unità è già pieno.
- CItemAbilPowerUp può essere usato solo dalle unità con un inventario. Inoltre, l'unità deve avere l'indicatore CanUseItem attivo.
- Questi nuovi oggetti potenziamento sono dei veri oggetti, quindi rispettano gli eventi inventario e possono essere usati nel sistema dei bottini.
- CItemAbilPowerUp controllerà se il lanciatore possa usare l'abilità potenziamento in CItemAbilPowerUp. Se non può, genererà un messaggio di errore e non permetterà al lanciatore di muoversi verso l'oggetto.
- L'indicatore KillAfterUse permette all'oggetto di essere distrutto dopo che il lanciatore ha usato il potenziamento.
- Un'unità normale con un inventario, ma senza l'indicatore CanUseItem attivo, potrà raccogliere i potenziamenti e portarli a un eroe.
- Nuovo indicatore EAbilInventoryFlag: ItemDropOnDeath
- Questo indicatore obbligherà un'unità a rilasciare tutti i suoi oggetti alla morte, anche se fosse rianimabile. Può essere utile alle unità normali con l'abilità Zaino di Warcraft III.
- Nuovo indicatore EAbilInventoryFlag: CanUseItem
- Questo indicatore stabilisce se le unità possano usare gli oggetti. Aiuta a creare le unità corriere: unità che possono trasportare gli oggetti ma non usarli.
- Nuovo indicatore EAbilInventoryFlag: CanApplyEquipBehavior
- Questo indicatore stabilisce se le unità possano godere dei benefici di stato degli oggetti, per esempio +5 Forza. Inoltre, aiuta a creare unità con inventari da corriere.
- Nuovo indicatore CItemAbil: Transitorio
- Se questo indicatore è selezionato, l'abilità dell'oggetto verrà lanciata come transitoria, anche se l'abilità sull'oggetto non è transitoria.
- Risolto un problema per il quale gli inventari cercavano di raccogliere gli oggetti anche se questi oggetti venivano distrutti durante l'avvicinamento.
- Risolto un problema per il quale CAbilSpawn non funzionava.
- Risolto un problema per il quale impegnare un oggetto dal proprio inventario alla distanza massima poteva far perdere l'oggetto senza far guadagnare risorse.
- Nuovi nomi secondari per gli eventi attore Abil: PawnSource, PawnTarget
- Verranno lanciati quando impegni un oggetto.
- Nuovo campo CAbilInventory: Requisiti
- Se impostato, l'abilità inventario verrà disabilitata prima di soddisfare i requisiti tecnologici relativi.
- Inoltre, l'interfaccia dell'inventario verrà nascosta prima di soddisfare i requisiti.
- Nuovo indicatore CValidatorUnitInventory: RequireEnabled
- Se selezionato, il convalidatore restituirà e_CmdOK se l'abilità di acquisizione dell'inventario è abilitata e ha soddisfatto i requisiti tecnologici.
- Per rispondere agli eventi Giocatore usa effetto, c'è un nuovo attivatore delle API che permette agli utenti di catturare l'oggetto usato per creare l'effetto, nel caso ci sia un oggetto, e il tipo di oggetto.
- Gli oggetti abilità ora possono scegliere di usare i propri collegamenti al tempo di recupero, sovrascrivendo il collegamento al tempo di recupero ereditato dall'abilità.
Supporto al negozio neutrale/alleato
- I negozi neutrali o alleati sono delle strutture neutrali o alleate con cui gli altri giocatori possono interagire, grazie all'aiuto delle abilità CAbilInteract
- Per tutte le abilità, il campo Tecnologia giocatore ora ha un'opzione aggiuntiva: Lanciatore.
- Impostando il campo Tecnologia giocatore di CAbilTrain su un lanciatore, l'abilità controllerà i requisiti tecnologici del giocatore che ha impartito l'ordine.
- Questo è utile per creare un'abilità "vendi unità/vendi oggetto in base all'albero tecnologico del compratore".
- Nuovo campo CabilTrain: AgentUnitValidator
- Se impostato, l'abilità richiederà sempre che un'unità agente la lanci e si confronterà con i convalidatori impostati in questo campo quando addestra le unità.
- Grazie a questo campo, le abilità "Oggetto negozio" possono essere facilmente create in SC2.
- Per gli oggetti del negozio, di solito gli utenti vogliono che l'unità compratrice del negozio abbia un inventario che le permetta di acquistare oggetti.
- In precedenza, SC2 non aveva questo supporto, quindi anche se l'unità compratrice non aveva un inventario, l'oggetto veniva sempre creato.
- Grazie al campo AgentUnitValidator, gli utenti possono aggiungere convalidatori come: "l'unità ha un inventario valido" e "l'inventario non è pieno". Pertanto, se l'unità agente non ha un inventario, l'abilità genererà un messaggio di errore e non verrà lanciata.
- Nuovo indicatore CAbilTrain: ChargeCasterPlayer
- Normalmente, le abilità negozio neutrale richiedono che il compratore e il venditore condividano le spese delle risorse tra di loro, tramite l'indicatore "Spese alleate". Se così non fosse, il compratore genererebbe il messaggio d'errore: "Non puoi spendere su quel giocatore".
- Di base, i giocatori neutrali condividono i costi con tutti i giocatori. Se un utente volesse creare un negozio alleato, un negozio dove i giocatori alleati possano comprare oggetti o unità, probabilmente non vorrebbe che questi giocatori condividessero le spese. In caso contrario, i giocatori potrebbero spendere le risorse dei loro alleati.
- Il nuovo indicatore ChargeCasterPlayer è progettato per risolvere questo problema. Se attivato, il costo dell'unità o dell'oggetto venduti sarà addebitato al giocatore che ha impartito l'ordine di acquisto, anche se il compratore e il venditore non condividono le spese.
- Se ci sono altri giocatori che condividono le spese col giocatore compratore, e il giocatore compratore non ha abbastanza risorse per pagare, l'abilità addebiterà comunque il costo su questi altri giocatori.
- Nuovo indicatore CAbilInteract: AlwaysShowCommandCard
- Quando questo indicatore è attivo, un'unità negozio mostrerà la sua scheda comandi a tutti i giocatori che possono interagire con essa (decisi dal campo Filtro di selezione di CAbilInteract), anche se il giocatore non ha un'unità agente valida vicino al negozio.
- In questo modo, anche se un giocatore non ha un'unità agente vicina al negozio, potrà comunque visualizzare cosa viene venduto nel negozio.
- Tuttavia, questo giocatore non sarà comunque in grado di usare la scheda comandi se non controlla l'unità negozio, per esempio se non ha un'unità agente nelle vicinanze.
- Risolto un problema per il quale le abilità d'interazione cercavano costantemente di acquisire un'unità senza controllare il campo ValidatorArray.
Sistema di comportamento del tracciamento delle unità
- Nuovo tipo di comportamento: BehaviorUnitTracker
- Il comportamento funziona come una lista di unità. Può immagazzinare tutte le unità che vengono aggiunte e ha i convalidatori e i campi conteggio massimo. Ogni volta che un membro della lista non combacia con il convalidatore impostato, verrà rimosso dalla lista.
- Ci sono indicatori che permettono agli utenti di convertire il tracciatore in una lista globale o basata sui giocatori, che non richiede il funzionamento di un'istanza di comportamento.
- Nuovo accumulatore: CAccumulatorTrackedUnitCount
- Permette agli utenti di usare gli accumulatori in base a quante unità sono presenti nella lista data.
- Nuovi effetti: CEffectAddTrackedUnit, CEffectClearTrackedUnits, CEffectRemoveTrackedUnit
- Permette agli utenti di aggiungere o rimuovere le unità da una lista.
- Nuovo effetto: CEffectEnumTrackedUnits
- Permette agli utenti di passare in rassegna la lista di tracciamento delle unità ed eseguire gli effetti su ognuna di esse in base ai filtri.
- Nuovi convalidatori: CValidatorCompareTrackedUnitsCount, CValidatorIsUnitTracked
- Possono essere usati per contare quante unità vengono tracciate tramite il comportamento e controllare se un'unità è in una lista tracciatori.
- Il sistema di tracciamento è molto utile quando si cerca di mantenere la mappatura "uno a molti" tra le unità.
- Per esempio, può tracciare un'unità evocatrice verso le sue unità evocate.
Altri cambiamenti del sistema di comportamento
- Alias accumulo comportamento
- Questa funzione permette ai comportamenti di accumularsi in base a un "ID accumulo", invece di un ID comportamento.
- Per esempio, in WC3, sia l'Arcimago che vari mostri hanno una propria versione di Aura dell'Acume. Questi sono due benefici diversi e, quando si comandano entrambe queste unità, probabilmente non si vorrebbe che le unità circostanti ricevano entrambi i tipi di Aura dell'Acume. In questo caso, la versione dell'aura dell'eroe dovrebbe avere sempre la priorità.
- Due nuovi campi CBehaviorBuff: StackAlias (stringa) e StackAliasPriority (intero)
- Se due benefici dello stesso StackAlias vengono applicati alla stessa unità, condivideranno un conteggio massimo e sarà data priorità al numero più piccolo. Se il conteggio totale eccede il conteggio massimo condiviso, il gioco comincerà a rimuovere gli accumuli, iniziando dal beneficio che ha la StackAliasPriority più bassa e, in secondo luogo, con la durata più breve. Questo avverrà finché il conteggio totale di accumuli non combacia con il conteggio massimo condiviso di accumuli.
- Nuovo evento attore: BehaviorStackAlias
- Permette agli utenti di acquisire gli eventi comportamento (Attiva, Disattiva, Reazione danni, ecc.) in base allo StackAlias del comportamento, invece che all'ID comportamento.
- Inoltre, permette la condivisione degli attori tra comportamenti con gli stessi StackAlias, visto che con tutta probabilità si vorrà che tutte le versioni di Aura dell'Acume abbiano la stessa grafica.
- Nuovo campo CEffectRemoveBehavior: StackAlias
- Permette agli utenti di rimuovere i benefici in base a StackAlias.
- Nuovo convalidatore: CValidatorUnitBehaviorStackAlias
- Permette agli utenti di contare gli accumuli dei comportamenti per StackAlias. Conterà tutti i comportamenti sull'unità con un determinato StackAlias e ha la possibilità di contare solo i comportamenti abilitati.
- Supporto testo fluttuante della reazione danni dell'attore
- Quando CActorMsgBehavior lancia un evento con un nome secondario DamageHandled, usando i messaggi SetTextLocalized e SetText dopo l'evento, ora imposterà automaticamente il testo tramite la quantità di danni modificata.
- I danni sostituiranno la variabile '%AMOUNT%' nel testo di arrivo.
- È utile per creare testi fluttuanti dei danni per le reazioni ai danni
- Supporto migliorato per gli eventi attore attiva/disattiva comportamento
- Gli eventi attiva/disattiva comportamento ora imposteranno i parametri effetto per l'ultimo accumulo applicato o l'ultimo accumulo rimosso.
- È utile per configurare con più precisione gli attori comportamento. In precedenza, gli utenti non potevano fare riferimento a chi lanciava un comportamento sotto gli eventi attiva/disattiva comportamento.
- Nuovo stato comportamento: Immortale
- Segna un'unità come "impossibilitata a morire" finché il comportamento non viene rimosso.
- Nonostante attraverso l'uso delle reazioni danni si possa ottenere un effetto simile, le reazioni morte possono prevenire solo la morte da danni. Questo stato comportamento previene la morte per qualsiasi causa, per esempio: "imposta vita a 0".
- Questo stato offre una semplice alternativa a un sistema di prevenzione morte basato sugli attivatori.
- Nuovo stato comportamento: Elimina credito uccisione
- Impedisce a un'unità di assegnare i crediti uccisione o i crediti uccisione risorse al giocatore che effettua l'uccisione.
- Utile per creare allucinazioni.
- Nuovo campo CBehaviorBuff: DeathType
- Può sovrascrivere il DeathType di un'unità e ignorerà il tipo di morte dell'effetto dei danni che ha portato alla morte.
- "Rimuovi" tipo di morte non può essere sovrascritto in questo modo.
- Il valore predefinito è "Sconosciuto", che significa "non sovrascrivere".
- Nuovo tipo di morte: Reincarnazione
- Impedisce alle unità di rilasciare oggetti e bottino alla morte.
- Il convalidatore CValidatorUnitCompareBehaviorCount e gli effetti CEffectRemoveBehavior e CEffectTransferBehavior ora condividono i seguenti campi configurazione:
- BehaviorCategories, BehaviorClass, BehaviorAlignment, ExcludeOriginPlayer, ExcludeCasterUnit, RequireOriginPlayer, RequireCasterUnit
- In precedenza, questi convalidatori/effetti avevano solo il campo CEffectBehavior, e questi nuovi campi aggiuntivi erano limitati a CEffectBehavior.
- Queste aggiunte permettono agli utenti di contare, rimuovere e trasferire i comportamenti con maggior controllo.
- Per esempio, gli utenti ora possono rimuovere gli accumuli comportamento che erano stati aggiunti da un giocatore, un'unità bersaglio e così via.
- Inoltre, è utile nell'implementazione delle "dispersioni intelligenti", come rimuovere solo i benefici applicati dalle unità nemiche.
- Nuovo campo CValidatorUnitCompareBehaviorCount, CEffectRemoveBehavior, e CEffectTransferBehavior: Associa tutti
- Determina se l'effetto/convalidatore verrà eseguito se un qualsiasi campo configurazione è soddisfatto o se tutti i campi configurazione devono essere soddisfatti.
Supporto ai cadaveri migliorato
- Nuovo indicatore CEffectModifyUnit_ModifyFlags: Rimuovi
- Questo indicatore rimuoverà direttamente l'unità dal gioco ed eliminerà l'intero campo di applicazione dell'unità attore.
- È stato aggiunto perché gli utenti non erano in grado di usare l'effetto "Rimuovi" da CEffectDamage per rimuovere un cadavere.
- Nuovo filtro unità: Decomposizione
- Si definisce unità in decomposizione un'unità che si trova a terra ed è morta da un po' di tempo. Questo è in contrasto con quelle unità che sono già state uccise, ma stanno ancora cadendo sul terreno per generare un cadavere. In termini tecnici, questo vale quando il Tempo morte è attivo e il Ritardo rianimazione è finito.
- Lo scopo di questo filtro è far sì che le abilità che prendono di mira i cadaveri non funzionino sulle unità che sono morte di recente e che devono ancora generare un cadavere.
- Se il Tempo morte è stato impostato a -1, la fase di decomposizione verrà saltata. Per esempio, gli eroi di Warcraft III non dovrebbero mai decomporsi.
- Nuovo filtro unità: Rianimabile
- CEffectModifyUnit ora può impostare se un cadavere è Non rianimabile
- Non rianimabile permette di contrassegnare se un cadavere è già stato usato.
- Per esempio, se un Ghoul sta mangiando un cadavere, tale cadavere esiste ancora, ma il modder potrebbe non volere che venga rianimato. In questo caso, il modder può impostare le abilità per accettare solo i cadaveri rianimabili e impostare i cadaveri come non rianimabili mentre vengono mangiati.
- Nuovo indicatore: Permetti cadavere
- Se questo indicatore è attivo, le abilità trasporto potranno trasportare cadaveri nel proprio carico.
Sistemi Tipo di attacco, Tipo di danno e Tipo di corazza
- Nuovo campo Cweapon: Tipo di attacco
- I modder possono cambiare i moltiplicatori dei danni di ogni Tipo di attacco contro ogni Tipo di corazza nei dati di gioco.
- Il tipo di attacco influenzerà tutti gli effetti di danno nell'intero albero armi, così che i modder possano modificare i moltiplicatori dei danni a livello dell'arma, invece che mettere mano a ogni effetto nell'albero effetti per cambiare i fattori di danno.
- Nuovo campo CUnit: Tipo di corazza
- Il Tipo di corazza decide i moltiplicatori dei danni delle armi usate contro le unità.
- Nuovo convalidatore: CValidatorUnitArmor
- Permette agli utenti di controllare il Tipo di corazza di un'unità.
- Nuovo campo CEffectDamage: Tipo di danni
- I modder possono cambiare i filtri di bersaglio per il Tipo di danni nei dati di gioco.
- Usare i filtri di bersaglio sui Tipi di danni permette agli utenti di configurare tutti gli effetti dei danni e dei danni delle aree d'effetto nel gioco. Inoltre, si può decidere se determinati danni possano danneggiare determinati bersagli.
- Per esempio, filtrando semplicemente i bersagli "alleati" per ogni Tipo di danno, gli utenti potranno far sì che tutte le armi del gioco non infliggano danni radiali agli alleati. Questo è utile quando si crea una mod cooperativa creata su varie altre mod, e il danno ad area delle armi e degli incantesimi di queste mod avrebbe degli effetti di fuoco amico.
Effetti della probabilità di mancare, bloccare e deviare
- La struttura del comportamento della reazione ai danni è stata ampliata per poter gestire più di semplici casi di reazione ai danni.
- Probabilità di mancare
- Nuovo indicatore CWeapon: NeverMiss
- Come impostazione predefinita, le armi manterranno il loro vecchio comportamento.
- I modificatori d'attacco possono aggiungere la proprietà NeverMiss all'albero effetti delle armi.
- Se nell'albero effetti di un'arma è impostato che un'arma non possa mai mancare il bersaglio, quando l'arma attaccherà controllerà la Probabilità di mancare sia dell'attaccante che del difensore. In seguito, segnerà se l'effetto mancherà in base ai convalidatori e alle probabilità impostante nella struttura di reazione.
- Le unità terrestri che attaccano i bersagli su un punto più alto dei dislivelli possono avere un bonus alla probabilità di mancare, modificabile nei dati di gioco.
- Se l'albero effetti di un'arma è stato segnato come "Mancato", l'arma non eseguirà il danno all'impatto, né alcun effetto dei globi.
- Quando un'arma manca il bersaglio, invierà un evento attore arma che con "Mancato" come nome secondario. In questo modo, i modder possono decidere se vogliono controllare questo evento per creare dei testi fluttuanti con la dicitura "Mancato!" sulle unità o mostrare un effetto di schivata.
- Nuovo indicatore CWeapon: NeverMiss
- Probabilità di blocco
- Nuovo campo CEffect: CanBeBlocked
- Determina se l'effetto possa essere bloccato. È disattivato per impostazione predefinita.
- Quando un effetto viene eseguito, il gioco interrogherà le strutture di reazione sull'unità bersaglio dell'impatto e controllerà la sua probabilità di blocco e ogni convalidatore.
- Se bloccato, l'effetto sarà cancellato e non verrà eseguito. In seguito, l'effetto invierà un attore evento effetto con "Bloccato" come nome secondario, così che gli utenti possano impostare degli attori adeguati.
- Questa funzione è utile per creare dei comportamenti di blocco incantesimi.
- Nuovo campo CEffect: CanBeBlocked
- Probabilità di deviazione
- Nuovo indicatore CEffect: ValidateImpactDeflection
- Determina se l'effetto possa essere deviato. È disattivato per impostazione predefinita.
- La deviazione è quasi identica alla probabilità di blocco, tranne per il fatto che l'effetto che si sarebbe verificato verrà invece duplicato e rispedito al lanciatore.
- L'effetto della deviazione invertirà le proprietà del lanciatore e del bersaglio, il colpo conterà come se provenisse dall'unità bersaglio originale verso l'unità lanciatrice originale. I bonus danni nell'albero effetti riflesso saranno impostati per usare i bonus danni del lanciatore originale.
- Un'altra differenza tra deviazione e blocco è che gli alberi effetti valuteranno la deviazione solo una volta per ognuno. Se un effetto ha passato il controllo deviazione una volta, il resto dell'albero effetti non controllerà ancora la probabilità di deviazione, anche se esistono degli effetti seguenti nell'albero effetti che hanno l'indicatore ValidateImpactDeflection selezionato.
- Nuovo indicatore CEffect: ValidateImpactDeflection
Cambiamento al sistema di trasformazione unità
- Attiva/Disattiva trasformazione
- Nuovo indicatore CAbilMorph: Attiva/Disattiva
- Nuovo campo CAbilMorph: InforArrayUnmorph
- Quando è attivato, le abilità di trasformazione possono essere usate per passare tra due diversi tipi di unità.
- Nuovo indice comando CAbilMorph: Ritrasformazione
- Dopo che l'unità è già trasformata, l'abilità può ancora impartire un comando Ritrasformazione, che induce l'unità a iniziare il processo di ritrasformazione definito nel campo InforArrayUnmorph.
- Nella maggior parte dei casi, il campo InforArrayUnmorph dovrebbe essere impostato in modo che il tipo di unità finale sia il tipo di unità al suo stato normale. In questo modo, l'unità verrà riportata alla normalità con il comando Ritrasformazione.
- Nuovo campo CabilMorph: ValidatorArrayUnmorph
- Convalida se un'unità trasformata possa usare il comando Ritrasformazione.
- Nuovo indicatore CabilMorph: AutoUnmorph
- Determina se l'unità trasformata proverà automaticamente a tornare alla normalità quando ciò è possibile.
- Nuovi campi CabilMorph: BehaviorOn/BehaviorOff
- Se impostati, l'abilità applicherà il beneficio BehaviorOn all'unità quando è in stato trasformato e il beneficio BehaviorOff quando l'unità è nel suo stato normale. Questi due campi funzioneranno solo se l'abilità di trasformazione è segnata come "Attiva/Disattiva".
- Anche se un'unità viene direttamente creata come tipo di unità trasformata, le abilità di trasformazione considereranno comunque tale unità come se avesse attraversato il processo di trasformazione. Applicheranno i comportamenti pertinenti e permetteranno all'unità di usare il comando Ritrasformazione.
- Conteggio tecnologia trasformazione
- Nuovo indicatore CAbilMorph: ProvideSourceUnitTech
- Se attivo, CAbilMorph trasferirà il tipo di unità dell'unità origine all'unità in cui si è trasformata. L'unità finale erediterà automaticamente il collegamento unità dell'unità origine come Alias tecnlogia.
- Questa proprietà è ereditata tramite l'intera catena di trasformazione.
- Esempio: Municipio -> Fortezza -> Castello
- Un Castello conterà sia come Fortezza che Municipio. Anche un Castello creato direttamente conterà come Fortezza e Municipio, nonostante non sia stato trasformato da nessuno di essi.
- Perché non aggiungiamo semplicemente il Municipio e la Fortezza agli alias del Castello (aggiungendoli nel campo Alias tecnologia del Castello)? Usiamo questo percorso indiretto perché ProvideSourceUnitTech ha effetto solo quando l'unità è nel suo stato ultimato. Solo allora conterà come unità origine nel conteggio tecnologia. Se usassimo il campo TechAlias, l'alias esisterebbe in ogni stato, anche quando l'unità si sta trasformando (stato InProgress). In questo caso, quando trasformeresti una Fortezza in un Castello, ti ritroveresti in una strana via di mezzo, poiché avresti una Fortezza ultimata e un Castello InProgress allo stesso tempo, ma il sistema di conteggio tecnologia penserebbe che tu abbia una Fortezza InProgress, il che non sarebbe corretto.
- Nuovo indicatore CAbilMorph: ProvideSourceUnitTech
- Supporto "Muoviti e trasformati"
- Nuovi indicatori CAbilMorph: RequireAcquiredTarget, RequireAcquiredTargetUnmorph
- Nuovi campi CAbilMorph: Portata, TargetSorts
- Quando questi campi sono impostati, un'unità cercherà entro il proprio raggio di lancio automatico, proverà a trovare un bersaglio a portata che corrisponda al convalidatore e poi si muoverà verso di esso. Il campo Portata indica la portata massima in cui un lanciatore può iniziare a trasformarsi.
Unità performanti per le risorse
- Nuovo indicatore unità: NeverThink
- Normalmente, ogni unità nel gioco controllerà il percorso, la scansione dei nemici, l'acquisizione delle abilità e molte altre verifiche logiche per ogni ciclo di gioco (0,0625 secondi di gioco). Questo indicatore le solleva da questi compiti, il che potrebbe apportare miglioramenti alle mappe personalizzate. Le unità NeverThink non possono avere alcun comportamento e abilità, con la sola eccezione dei comportamenti delle risorse.
Altri cambiamenti generici alle unità
- Velocità massima unità
- Nuovo campo CUnit: SpeedMaximum
- Specifica la velocità massima che un'unità può raggiungere, anche se sotto gli effetti di bonus alla velocità.
- Nuovo campo comportamento: MoveSpeedBaseMaximumBonus
- Usato per cambiare la velocità massima di un'unità.
- Nuovo campo CUnit: SpeedMaximum
- Nuova creatura CUnit: Warcraft
- Ora si può selezionare "Warcraft" nel campo Creatura di un'unità.
- Questo permette agli attivatori di differenziare tra le unità di Warcraft e quelle di StarCraft.
- Nuovi campi CUnit: LifeRegenRateNight, EnergyRegenRateNight, ShieldRegenRateNight
- Possono essere usati per permettere alle unità degli Elfi della Notte di rigenerarsi durante la notte, senza dare un comportamento a ogni unità.
- Nuovo campo CUnit: BuildTime
- Un posto aggiuntivo per archiviare il tempo di costruzione sui dati dell'unità, che può essere usato per configurare i tempi di costruzione con CAbilBuild, CAbilTrain e CAbilMorph.
- Nuovo indicatore CAbilBuild e CAbilTrain: IgnoreUnitBuildTime
- Se non selezionato, il tempo di costruzione di un'unità sarà aggiunto al tempo di costruzione dell'abilità.
- Nuovo array di indicatori CAbilMorph per ogni fase di ogni selezione: UseBuildTimeArray
- Per ogni fase che ha questo indicatore impostato, il tempo di costruzione dell'unità verrà aggiunto alla rispettiva durata della fase.
- Nuovo convalidatore: CValidatorUnitCompareAbilStage
- Permette agli utenti di convalidare una fase CAbilEffect dell'abilità
- Se il campo Abilità è impostato su Nessuna, convaliderà la fase dell'abilità di qualsiasi abilità stia lanciando. Questo significa che gli utenti ora possono controllare se un'unità stia incanalando l'abilità che sta lanciando.
- Nuovi filtri di selezione:
- Powerup: è vero quando il valore del campo CUnit_PowerupEffect è valido.
- PowerupOrItem: un potenziamento o un oggetto.
- HeroUnit: unità con un indicatore eroe. È diverso da "Eroica", che è un attributo.
- Nuovo campo CUnit: Livello Unità
- Quando impostato a > 0, se un'unità è evidenziata, la sua descrizione mostrerà questo livello sotto il suo nome.
- Questo campo può essere usato per selezionare, ordinare o convalidare. Inoltre, può essere usato negli accumulatori.
- Comportamento ampliamento struttura parente
- Nuovo campo CUnit: ParentBehaviorLink
- Quando un ampliamento viene collegato a una struttura parente, il comportamento verrà applicato dal ParentBehaviorLink a quella struttura. Chi lancia questo comportamento è l'ampliamento, non la struttura parente.
- Questo permette al comportamento ParentBehaviorLink di controllare la struttura parente in base allo stato dell'ampliamento.
- Le abilità di trasformazione possono convalidare questo comportamento per generare un messaggio di errore quando alla struttura parente viene dato un comando di decollo mentre l'ampliamento collegato sta eseguendo una ricerca.
- Nuovo campo CUnit: ParentBehaviorLink
- CUnit_LifeDamageGain ora si può potenziare.
- CValidatorUnitState è stato migliorato per permettere di controllare 100 diversi stati delle unità, anziché 1.
- Esempio: Inattivo, Salto, Evidenziato, ArmorDisabled, Rianimabile, Morente, ArmySelect e così via.
Altri cambiamenti al sistema delle abilità
- Genera automaticamente pulsanti per le abilità
- Per permettere alle abilità di essere applicate facilmente a ogni unità, tutti i pulsanti hanno ora una proprietà che permette ai modder di impostare il pulsante predefinito e l'ID del sottomenu sulla scheda comandi.
- Su ogni abilità, i modder possono impostare se un comando abilità lancerà automaticamente Genera pulsanti abilità, così che essa possa funzionare non appena viene applicata a un'unità. Gli utenti non dovranno più impostare manualmente le icone e i pulsanti nella scheda comandi dell'unità.
- Attivatore delle API per aggiungere e rimuovere abilità alle unità in fase di runtime
- Nuove azioni degli attivatori delle API: Unit Add Ability, Unit Remove Ability
- Configurazione dei livelli più facile
- La maggior parte dei tipi di abilità ora ha un campo Livelli che imposta direttamente il loro livello massimo. Unito al sistema degli accumulatori, i modder non dovranno più implementare 1.000 serie di abilità per quelle che hanno 1.000 livelli.
- Il campo Livelli è potenziabile per permettere ai modder di cambiare il massimo livello delle abilità in fase di runtime.
- Quando il campo Livelli è impostato a 0, il valore predefinito, il sistema dei livelli delle abilità farà riferimento alla funzionalità pregressa.
- Nuovo campo CCharge: TimeDelay
- Funziona per tutte le cariche abilità/oggetto/comportamento.
- Funziona in maniera simile a TimeStart, ma riguarda solo la prima carica dell'abilità, dell'oggetto o del comportamento.
- Se TimeDelay = 0, il sistema delle cariche funzionerà come in precedenza.
- Se TimeDelay > 0, TimeStart verrà ignorato.
- Quando l'abilità comincia ad accumulare cariche, il tempo di rigenerazione della prima carica utilizzerà il valore TimeDelay, e ogni carica seguente userà il valore TimeUse.
- Nuovo indicatore: IgnoreTimeDelay
- Permette alle abilità di ignorare il TimeDelay impostato nell'unità e, invece, di utilizzare le impostazioni dell'abilità stessa.
- Sostituzione catalogo ora supporta Abilità oggetti
- La sostituzione non è basata sul proprietario dell'oggetto, ma sull'utilizzatore dell'oggetto.
- Questo permette a diversi giocatori di usare lo stesso oggetto con diversi effetti.
- Per esempio, i modder potranno creare diverse unità quando un oggetto viene usato in base alla razza del giocatore.
- SEffectParamsShared ora ha una componente m_level, che salva il livello dell'abilità che ha fatto partire l'albero effetti.
- Gli alberi effetti possono usarlo come istantanea per ottenere i dati dei livelli correlati, così che anche se l'abilità cambiasse i livelli dopo l'inizio dell'albero effetti, esso ricorderà ancora il vecchio livello dell'abilità.
- Inoltre, gli accumulatori possono usare questi dati come dati abilità.
- CEffectCreateUnit_SpawnUnit ora può essere configurato per creare diversi tipi di unità in base al livello dell'albero effetti.
- CAbilBheavior ora può impostare diversi convalidatori per Abilita auto o Disabilita auto, invece di avere un convalidatore per il lancio automatico.
- Nuove categorie di abilità e categorie di comportamenti
- Aggiunte varie nuove categorie di abilità e di benefici.
- I comportamenti dei benefici ora possono abilitare o disabilitare le abilità per categorie.
- Nuovo campo per tutte le abilità: Comportamento stato
- Questo campo crea un comportamento quando un'abilità viene creata. Verrà eliminato quando l'abilità sarà eliminata, e verrà disabilitato o abilitato se l'abilità verrà disabilitata o abilitata.
Altri cambiamenti al sistema dei danni
- Nuovo campo CEffectDamage: DamageInheritEffect
- L'effetto impostato in questo campo verrà lanciato dopo che il danno primario sarà stato inflitto.
- Erediterà la quantità di danni del danno primario.
- Nuovo indicatore CEffectDamage: NoZeroDamageInherit
- Dice a DamageInheritEffect di non essere lanciato quando il danno inflitto è 0.
- Nuovo CEffectDamage: Frazione
- Una frazione aggiuntiva che verrà moltiplicata per tutte le altre frazioni esistenti.
- Questo campo supporta gli accumulatori, quindi i modder potranno creare formule in base a questa frazione.
Pre-effetto arma
- Nuovo campo delle armi: PreEffect.
- Questa è la versione effetto di PreEffectBehavior, che supporta la convalida sull'unità bersaglio per decidere se PreEffect debba essere eseguito.
Supporto d'interruzione omogeneo
- Nuovo indicatore CAbilEffect: HomogenousInterrupt
- Quando questo indicatore è attivo, gli utenti vedranno il seguente comportamento: se un giocatore seleziona un'unità che sta incanalando un incantesimo e le ordina di muoversi, interromperà l'incanalamento e si muoverà. Se il giocatore seleziona più di un'unità e almeno una di loro non sta incanalando un incantesimo, solo le unità che non stanno incanalando si muoveranno immediatamente. In questo scenario, l'ordine di movimento verrà messo in coda a tutte le unità che stanno incanalando incantesimi.
- Quando l'indicatore non è attivo, i giocatori osserveranno il vecchio comportamento di SC2.
Cambiamento al sistema di costruzione strutture
- I lavoratori lasciano il posto durante la costruzione
- Se gli indicatori Interrompi (stessa origine) e Interrompi sono attivi in un CAbilBuild che non fa scomparire i suoi lavoratori nelle strutture durante la costruzione, allora in fase di costruzione i lavoratori non bloccheranno l'eventuale piazzamento di altre strutture. Invece, se ne andranno via e poi torneranno per trovare un luogo migliore dove continuare a costruire.
- Ridimensionamento automatico del tempo di animazione di nascita delle strutture
- CAbilBuildable ora invierà gli eventi Start, Cancel, Complete, Pause e Resume al sistema attori.
- Gli eventi Start conterranno anche le informazioni sul tempo di costruzione delle strutture. Gli attori imposteranno automaticamente l'animazione di costruzione per avere la stessa durata del tempo di costruzione. In questo modo, le strutture completeranno l'animazione di nascita non appena la costruzione sarà finita.
Supporto al cursore per attacchi al terreno ad area
- Questa funzione comprende il cambiamento dei due codici seguenti:
- CActorMsgAbil ora porta le informazioni dei comandi, così che i modder possano usare CActorTermAbilCmd per rispondere a CActorMsgAbil. In questo modo, il sistema attori sarà in grado di distinguere se la modalità cursore viene attivata da un normale attacco o da una guida di attacco al terreno tramite cmdIndex.
- CAbilAttack ora passa DisplayEffect al sistema attori come effetto cursore. In questo modo, il sistema attori potrà filtrare i bersagli e modificare le dimensioni del cursore dell'attacco ad area.
- Se un'unità ha diverse armi, il cursore userà il primo DisplayEffect valido delle armi per decidere la sua grafica.
Sistema di mantenimento
- Nuovo campo razza: UpkeepTax
- Permette ai modder di personalizzare la velocità di accumulo risorse del giocatore in base al conteggio del cibo.
Costruire su rampe
- In precedenza, i giocatori non potevano costruire strutture sulle rampe in SC2, poiché avevano una codifica fissa.
- Nuovo campo dati per il tipo di terreno: Rampe non edificabili
- Permette agli utenti di selezionare se le rampe saranno sempre non edificabili.
- Se disabilitato, i giocatori potranno costruire strutture sulle rampe.
Miglioramenti all'abilità di raccolta
- Nuovo campo CAbilHarvest: ResourceAmountCapacity
- Il valore predefinito è 0.
- Ogni volta che un lavoratore finisce di raccogliere le risorse, comparerà la quantità che trasporta col valore di ResourceAmountCapacity. Se la quantità trasportata è minore di ResourceAmountCapacity, allora proverà a continuare a raccogliere risorse finché non raggiunge la quantità prevista, a meno che un altro ordine non sia in coda o non gli venga ordinato di muoversi.
- Anche se un lavoratore non ha raggiunto la quantità prevista di risorse raccolte, il giocatore può comunque ordinargli di fermarsi e riportare le risorse raccolte che possiede in quel momento.
- Se a un lavoratore viene ordinato di svolgere un altro compito mentre sta raccogliendo risorse, proverà a raccogliere risorse almeno un'altra volta prima di svolgere quel compito.
- Se un lavoratore continua a raccogliere risorse, ma il bersaglio delle risorse è esaurito, proverà a trovare altre risorse nelle vicinanze.
- Nuovo indicatore CabilHavrest: No Raccolta
- Quando è attivo, l'abilità Raccogli non rimuoverà le risorse dai nodi di risorse, ma le otterrà comunque.
Miglioramenti al sistema delle Fasi del giorno
- Nuovo evento degli attivatori per impostare cambiamenti a giorno e notte: Game Day/Night State Change
- Nuove funzioni degli attivatori per acquisire/impostare la fase del giorno a un valore fisso: Set Time Of Day (Seconds), Current Time Of Day (Seconds)
- Nuova funzione degli attivatori per acquisire lo stato giorno/notte attuale: Current Day/Night State
- Nuovo convalidatore per il valore dell'orario: Gioco compara fase del giorno
Supporto attore per la consegna risorse
- Nuovo messaggio attore: UnitResourceDrop
- Questo evento attore indica quando un'unità consegna una risorsa alla struttura principale (o qualsiasi unità di consegna risorse).
- Il nome di origine del campo è l'attore unità dell'unità che ha consegnato la risorsa.
- Il campo nome secondario è il tipo di risorsa. I modder potranno differenziare le consegne in base al nome secondario.
- Usare i messaggi SetTextLocalized e SetText dopo l'evento imposterà automaticamente il testo alla quantità di risorsa consegnata.
- La quantità attuale consegnata verrà rimpiazzata dalla variabile %AMOUNT% nel testo.
Creare copie dello stesso attore
- Nuovo tipo di attore: CActorBatch
- Risolve un problema per il quale gli utenti non erano in grado di ripetere la creazione di un attore.
- Questo attore ha un campo Conteggio che può essere usato per creare copie dello stesso tipo di attore figlio.
- Come impostazione predefinita, l'attore creato usa il posizionamento di CActorBatch.
Supporto del ciclo forzato degli attori
- Il sistema attori ora supporta il ciclo forzato di un'animazione.
- Nuovo indicatore EAnimsFlags: ForceLooping
- Se gli indicatori PlayForever e ForceLooping sono impostati, il sistema farà partire una variazione casuale dell'animazione ogni volta che questa viene completata, a prescindere dal fatto che l'animazione sia impostata per essere ciclica o no.
- Priorità indicatore: AssetDrivenLooping > ForceLooping > NonLooping
- Nuovo EAnimBracketStartFlag: ContentForceLooping
- Quando questo indicatore è attivo e l'indicatore ContentPlayOnce non è attivo, il sistema farà partire una variante dell'animazione casuale ogni volta che il contenuto dell'animazione finisce, fino a che un messaggio AnimBracketStop non viene inviato, a prescindere dal fatto che il contenuto dell'animazione sia impostato per essere ciclico o no.
Miglioramenti tattici della I.A.
- Nuovo campo CUnit: AIExecuteAbilTactical
- Questo farà partire la funzione di aggancio tattica della I.A. seguendo il modello: Unità, galaxyFuncName, gruppo esaminato, inAbility, inItem.
- Risolta un'incoerenza tra i dati tattici e la funzione tattica, per la quale la funzione tattica non si eseguiva su giocatori I.A. neutrali e ostili.
Supporto all'I.A. per terrazine e altre risorse personalizzate
- Migliorata l'I.A. Synapse in modo che sia sempre in grado di riconoscere il terrazine e le altre risorse personalizzate. L'I.A. ora è anche in grado di raccoglierle.
Rianimazione all'altare delle I.A.
- L'I.A. ora può interpretare un ordine di rifornimento come Resuscita eroe se non riesce a trovare un modo di addestrare un tipo particolare di eroe.
- Lo script dell'I.A. deve registrare le strutture di rianimazione tramite AIReqAddSpecialMaker() proprio come registra le abilità di testata nucleare.
- Quando l'I.A. prova a rifornire un eroe e non trova l'abilità di addestramento, cercherà l'elenco di rianimazione e proverà a rianimare un eroe con lo stesso tipo.
Sostituzione rifornimenti I.A.
- L'I.A. ora rispetta la sostituzione del catalogo quando prova a costruire o addestrare.
- Per esempio, se un Marine viene rimpiazzato da uno Zelota da un giocatore I.A., quest'ultimo riconoscerà l'abilità di addestramento del Marine come l'abilità di addestramento dello Zelota e potrà impartire correttamente l'ordine di addestramento.
- Questo influenza anche gli ordini di fusione, costruzione, ricerca, addestramento ed evocazione.
- Nuovo indicatore unità: AIPreplacedForceBully
- Se pre-posizionata su una mappa, quest'unità sarà considerata un bullo rimpiazzabile dal computer, anche se non può rimpiazzarla in quel momento. Questo permette alle abilità ottenute tramite l'attivatore Replace Ability di essere usate per rimpiazzare i bulli.
Miglior convertitore mappe ereditate
- Migliorato il convertitore di mappe ereditate. Quando si convertono le mappe di Warcraft III, non convertirà solo le maglie di terreno, ma anche le texture del terreno, le unità pre-posizionate, le decorazioni, gli elementi distruggibili, le cineprese e le regioni.
Sistema dei bottini basato sui dati
- Nuovi nativi aggiunti a Galaxy: UnitLootDropUnit, UnitLootDropPoint
- I modder possono configurare il bottino nell'editor di dati del bottino e, in seguito, usare questi nativi per creare il bottino, che può essere: un oggetto, un'unita, un effetto o anche un oggetto casuale di livello X/di X classi di oggetti, e così via.
- Nuovi nativi: UnitLootLastCreated, UnitLootLastCreatedGroup
- I modder possono usarli per prendere i bottini appena generati tramite UnitLootDropUnit o UnitLootDropPoint.
- Nuovo indicatore oggetto: IncludeInLootItemPool
- Se selezionato, un oggetto verrà incluso nel gruppo di scelta casuale di CLootItem. I modder, perciò, potranno segnare gli oggetti come "non in grado di essere rilasciati casualmente".
- CLootItem.ClassArray ora è potenziabile e i modder potranno usare gli attivatori per rendere casuale la creazione di oggetti di classi diverse.
Modificatore ordini Ctrl
- Il modificatore è disattivato come impostazione predefinita. Usa l'azione dell'attivatore UISetCommandAllowed per attivarlo o disattivarlo.
- Quando questo modificatore è attivo, se tieni premuto Ctrl mentre impartisci un ordine, l'ordine verrà inviato solo alle unità nel sottogruppo evidenziato al momento, invece che a tutte le unità selezionate. Per esempio, diciamo che un giocatore selezioni un Marine e uno Zelota, facendo in modo che solo il Marine sia evidenziato; se impartisce un ordine di movimento col tasto destro mentre tiene premuto il tasto Ctrl, verrà ordinato di muoversi solo al Marine.
Altri cambiamenti alle proprietà del riquadro interfaccia
- Aggiunta una proprietà a CUnitFrame: UseSelectionLeader
- Dà all'interfaccia la capacità di prendere l'unità principale della selezione attuale (la prima unità del sottogruppo attivo).
- Se selezionata, CUnitFrame imposterà automaticamente LocalObservedSelectionLeaderUnit() come sua unità. Inoltre, aggiornerà le proprietà del suo UnitTag in modo che possa eseguire l'associazione proprietà ad altri riquadri.
- Se selezionata, CUnitFrame ignorerà tutte le associazioni proprietà che associano UnitTag agli altri riquadri come se dovesse riflettere solo la selezione dell'unità principale.
- Se non selezionata, CUnitFrame si comporterà come in precedenza.
- Risolto un problema per il quale CUnitButton non aggiornava la sua proprietà UnitTag.
Altri cambiamenti agli attivatori delle API
- Ability Stage
- CAbilRally ora può lanciare un evento di fase degli attivatori: piazza quando il punto di raduno è piazzato.
- Player Handicap
- La penalità al giocatore ora può andare oltre il limite precedente di 100%.
- Unit Magazine Management
- Nuova API di Galaxy: UnitMagazineAssign
- Aggiunge un'unità esistente a un'unità munizionamento.
- Nuova API di Galaxy: UnitMagazineRemove
- Rimuove un'unità esistente da un'unità munizionamento.
- Nuova API di Galaxy: UnitMagazineAssign
- Nuova API dello stato giocatore: AlwaysShowUnitTooltip
- Quando questo stato è attivo, le unità di questo giocatore mostreranno sempre le descrizioni evidenziate, anche se non sono segnate come evidenziabili.
- Nuova API dello stato giocatore: GivesBounty
- Per tutti i giocatori è attiva per impostazione predefinita. Quando è attiva, le unità del giocatore daranno come ricompensa le Risorse uccisione ai giocatori nemici che hanno ucciso queste unità.
- Nuovo attore delle API: ActorScopeMoveTo
- Muove un ambito attori verso la posizione di un dato attore.
- Nuovo evento degli attivatori: Player Spent Vital Event
- Cattura quando un giocatore ha speso della vita.
- Permette di capire quale valore vitale è stato speso e la quantità spesa nella risposta evento dell'attivatore.
Altri cambiamenti all'editor di dati
- L'editor di dati ora può localizzare la corretta riga XML quando un utente seleziona un dato predefinito.
- I collegamenti requisito (const CTechRequirementsGraph*) ora rispettano la sostituzione variabili XML.
- Grazie a questo, la maggior parte delle abilità ora può usare variabili per fare in modo che il collegamento requisito abbia lo stesso ID dell'abilità.
- CBehaviorLinkArray ora rispetta la sostituzione variabili XML.
- Le proprietà di animazione (CAnimProps) nei messaggi attore ora rispettano la sostituzione variabili XML.
- Provare ad azzerare una proprietà TintColor non esistente o un attore non genererà un messaggio di errore.
- CActorQuad ora ha degli indicatori che gli permettono di estendersi automaticamente in base alle sue posizioni di lancio e d'impatto.
- Nuovo tipo di elencazione bersagli: CTargetSortValidator
- Ordina i bersagli in base al fatto che soddisfino i dati convalidatori.
- Nuovo indicatore di comando ordine: Attacco singolo
- Quando s'impartisce un ordine di attacco, ora si può impartire un ordine di "attacco singolo" con l'indicatore comando.
- L'azione dell'attivatore Order Set Flags può essere usata per impostare questo indicatore.
- I campi CEffectOffset ora possono essere potenziati con le operazioni Aggiungi, Sottrai, Moltiplica e Dividi, operando come un vettore 3D. In precedenza, era disponibile solo Imposta.
- Nuova cinetica: CKineticDistance
- Proietterà l'unità bersaglio da una posizione iniziale a una data posizione nella direzione della posizione originale del parametro cinetico.
- Nuovo campo CWeapon: DisplayName
- Usato per sovrascrivere il nome dell'arma nella descrizione.
- Nuovo indicatore CEffectModifyUnit: StartingVitals
- Imposta Vita, Energia, e Scudi di un'unità ai valori iniziali.
- Nuovo indicatore CEffectModifyUnit: SetVitals
- Imposta direttamente i valori vitali di un'unità.
- Effetti di cura per CActorActon
- CEffectHeal ora può fornire i messaggi ActionParticipantsMessage e ActionCommenceMessage per CActorAction. Questo permette agli effetti di cura di configurare le azioni attore.
- Risolto un problema per il quale CEffectHeal non era in grado di lanciare il nome secondario dell'azione effetto Arresto nel momento giusto.
- Nuovo indicatore CValidatorUnitOrderCValidatorUnitOrder: CheckStateOnly
- Se selezionato, questo convalidatore valuterà solo se il comando abilità sia disattivato per l'unità, indipendentemente dal fatto che il comando possa essere eseguito a causa di motivi come "non avere abbastanza mana".
- Nuovo indicatore CEffectModifyUnit: ResourceDrop
- Se selezionato, l'unità bersaglio dell'impatto rilascerà istantaneamente le risorse che sta trasportando senza aver bisogno di raggiungere una struttura principale. Il giocatore in possesso riceverà le risorse.
- Nuovo indicatore CEffectEnumArea: UnCreep
- Se attivato, l'effetto di ricerca escluderà i Mostri nel raggio di ricerca.
- API seme casuale unità
- Nuovo attivatore delle API per impostare, ottenere o reimpostare un seme casuale dell'unità.
- Il seme casuale di un'unità ne determina il nome, le variazioni e altri fattori casuali dell'unità.
- Questo è utile quando si vuole creare una copia esatta di un'unità.
- Risolto un problema con CEffectSwitch per il quale veniva restituito un messaggio di errore sbagliato.
- Nuovo indicatore per le abilità di addestramento: Copia percentuale vita
- Determina se l'unità addestrata erediterà la percentuale di vita dell'unità addestratrice.
- Nuovo indicatore per le abilità di addestramento: Ignora restrizioni cibo
- Consente di ignorare le restrizioni di cibo.
- Nuovo indicatore per le abilità di posizionamento struttura: Lancio intelligente
- Determina se il lancio intelligente dell'abilità possa essere effettuato col tasto destro.
- Nuovo indicatore per le abilità effetto: Acquisisci passeggero esterno
- Consente alle abilità di acquisire le unità all'interno di un mezzo di trasporto.
- Risolto un problema per il quale il convalidatore portata armi unità falliva quando un'unità era sotto un effetto di controllo mentale.
- Nuovo indicatore effetto crea guaritore: Continua se pieno
- Determina se l'effetto crea guaritore continuerà a curare se la barra di vita è piena.
- Per impostazione predefinita è disattivato.
- Risolto un problema per il quale gli effetti di creazione unità creavano direttamente le unità su un punto di raduno, invece di muoverle verso il punto di raduno impostato.
- Nuovo campo imposta effetto: RecycleCount
- Permette agli effetti figli di essere eseguiti ripetutamente finché non soddisfano il conteggio riciclo.
- Nuovo indicatore per le abilità effetto: Cancella ripristina lancio automatico
- Determina se lo stato di lancio automatico dell'abilità sarà ripristinato quando il giocatore elimina manualmente l'incanalamento dell'abilità.
- Nuovo campo convalidatore di livelli anzianità: Esito livello massimo
- Controlla se un'unità ha raggiunto il livello massimo dell'eroe.
- Risolto un problema per il quale gli avvisi di rianimazione non indicavano correttamente né le unità rianimate né il giusto VO.
- Nuovo indicatore imposta effetto: Imposta origine
- Imposta l'origine dell'unità/punto dei propri effetti figli per essere l'unità/punto di destinazione dell'attuale unità/punto di destinazione.
- Aggiunta una casella di ricerca alla finestra dell'elenco comandi abilità nell'editor di dati.
Risoluzione dei problemi per le razze personalizzate
- Il menu a tendina delle razze nelle lobby di gioco ora elenca correttamente le razze personalizzate impostate nella mappa, invece che mostrare sempre terran, zerg e protoss.
- Nota: questo cambiamento non influenza le estensioni per ora, dato che al momento non c'è alcun modo di aggiungere le razze personalizzate nel menu a tendina attraverso un'estensione.
- Risolto un problema per il quale le mappe con razze personalizzate potevano arrestarsi a causa di una skin per la console.
Supporto al nome della squadra personalizzato
- L'editor di SC2 ora supporta i nomi delle squadre personalizzati.
- I nomi delle squadre personalizzati possono essere impostati in modi diversi in base alle diverse modalità di gioco.
- Per personalizzare i nomi delle squadre, vai su Mappa/Mod -> Varianti di gioco.
Estensione etichette di testo "d time/"
- Aggiunti cinque nuovi Tipi di tempo alle etichette testuali di "tempo" per mostrare differenti tempi di gioco.
- Quando si passano questi tipi di nomi invece di un numero diretto, l'etichetta di testo mostrerà il tempo di gioco corrispondente.
- Esempi:
- Testo inserito
- Tempo fisso: "d time="9125"/>
- Tempo di gioco: "d time="GameTime"/>
- Tempo di missione: "d time="MissionTime"/>
- Tempo I.A.: "d time="AITime"/>
- Tempo e data: "d time="DateTime"/>
- Tempo del giorno: "d time="TimeOfDay"/>
- Testo mostrato
- Tempo fisso: 9125 secondi
- Tempo di gioco: 11:50
- Tempo di missione: 11:50
- Tempo I.A.: 11:50
- Tempo e data: 2020:06:12:12:12:23
- Tempo del giorno: 22:06:34
- Testo inserito
Altri cambiamenti alle proprietà del riquadro interfaccia
- Nuove proprietà CHeroFrame: HeroTag, Punti Abilità
- Mostra l'etichetta unità di un eroe e i punti abilità inutilizzati.
- I modder possono usare queste proprietà per personalizzare i riquadri dei propri eroi.
Cambiamenti vari
- Aumentato il foliageCount massimo nell'editor di terreni fino a 10 per cella.
- Risolto un problema per il quale un messaggio di errore rosso compariva quando si provava a rianimare un'unità morta durante una trasformazione.
- Nuovo campo nei dati GameUI: Sopprimi skin nel replay
- Questo permette al WCS Game Heart di sopprimere le skin nei replay.
CORREZIONE DEI PROBLEMI
- Risolto un problema per il quale la prima ondata di attacco si bloccava durante la missione della campagna Sussurri di Oblio di Legacy of the Void.
- Risolto un problema per il quale le Batterie di scudi non obbedivano ai comandi di arresto sulle strutture non difensive mentre il lancio automatico era abilitato.
- Il ritratto del Centro di comando sulla console Remastered a tema terran ora compare correttamente centrato.
- Risolto un problema per il quale delle decorazioni acquatiche apparivano sopra il livello dell'acqua.