Tuesday, September 27, 2016

Sc2mapster forums - sviluppo - miscellaneous development - win conditions starcraft 2 maps , xelar






+

Win condizioni? 2 ° 7 settembre, 2010 alle 17:23 UTC - 0 Mi piace Presumo che non avete fatto molto nell'editor grilletto. Se si apre l'editor di innesco, si scopre che ci è già stato fatto un trigger per voi chiamato "Melee inizializzazione". Sotto che troverete una linea chiamata "corpo a corpo - impostare le opzioni predefinite mischia per tutti i giocatori". Se non volete le condizioni di vittoria standard per essere a posto, cancellare quella linea. Quindi, per rendere il vostro proprie condizioni di vittoria. È necessario rendere il proprio grilletto, aggiungere un evento rilevante, probally alcune condizioni, e poi per terminare il gioco per un giocatore è possibile utilizzare la funzione di Game - gioco finale in [Victory / Tie / Sconfitta] per il giocatore X ([Visualizza / Nascondi] finestre di dialogo, [Mostra / Nascondi] schermo punteggio) Se ci dite quali condizioni la vittoria che si desidera, potremmo probally essere più preciso circa una soluzione. N. 3 7 Settembre, 2010 alle 20:27 UTC - 0 Mi piace Grazie per la risposta. Sì ero appena agli inizi di esaminare i trigger quando ho dovuto correre fuori per un appuntamento questo pomeriggio. Hai ragione, però, che ho avuto poca esperienza con i trigger finora, anche se sono riuscito a implementare alcuni elementi che li utilizzano ieri, quindi sto iniziando a vedere come funzionano. E 'stato un difficile salto mentale a non vogliono lo sviluppo di loro nel codice al posto del pseudo-codice che GE sembra spingere verso. ;) La mia condizione vittoria è questo: Il giocatore che occupa solo una regione all'estremità di un timer vince. Se al termine del timer ci sono più giocatori della regione poi 1, va in straordinario morte improvvisa e il primo giocatore che è l'unico occupante di quella regione vittorie. Sembra abbastanza semplice. ;) Grazie per l'aiuto. - z 4 ° 7 settembre, 2010 alle 21:16 UTC - 0 Mi piace Un po 'di storia: Nell'editor Warcraft, l'intero script è stato fatto con i trigger e così via. Ma c'era un linguaggio di script chiamato "Jass" e ogni funzione trigger chiamato una funzione corrispondente in "jass". Ad un certo punto nel tempo, come un mapper è stata data la scelta wheter che si desidera utilizzare "pseudo-codice" dell'editor di attivazione o il codice di Jass vero e proprio. Ho pochi dubbi che sarà lo stesso per GE a un certo punto. Quindi, se siete più il tipo di ragazzo tipizzazione, basta sedersi. Storia abbastanza. Prendo dal tuo post che avete una certa esperienza di scripting. Quello è buono. L'editor trigger funziona fondamentalmente allo stesso modo qualsiasi linguaggio di programmazione per la maggior parte. Ci sono diversi tipi di funzioni. Tutte le funzioni possono prendere parametri e avere variabili locali. Ci sono cose chiamate "definizioni delle azioni" Queste sono fondamentalmente sub-funzioni. Essi svolgono un squence di azioni. Poi c'è "Condizioni Definizioni" Queste sono fondamentalmente le funzioni con il tipo di ritorno "booleano". Questi possono essere utilizzati come condizioni. Poi c'è Trigger. Quelli sono la vostra connessione script per il gioco. Trigger hanno Eventi, Conditons e azioni. In poche parole, se sono soddisfatte le partenze eventi e le condizioni, le azioni vengono licenziati. Questo è sufficiente per ora, ottenendo stanco xD Così al problema. Se ci dimentichiamo di morte improvvisa per ora la sua facile: Non mi interessa come si imposta il sistema di dati. Ma avrete ovviamente bisogno di una variabile per il timer. Var MyTimer: timer Var MyRegion: Regione Trigger: Fase Principale evento: Timer MyTimer scade Condizione: variabili locali: p: vincitore integer: intero foundOne: Azione booleano: per ogni giocatore (p) (Tutti i giocatori) - se (HasAUnitInRegion (p)) - - allora se ( foundOne) / * se abbiamo trovato uno ed ora trovato annother, significa non c'è nessun vincitore * / - - - quindi & lt; Sudden Death segnaposto & gt ;; Skip azioni rimanenti - - - altro set vincitore = p; impostate trovato = true - - altro / * (Fine Loop) & lt; - alla fine saranno evidenti nell'editor * / / * se siamo arrivati ​​a questo punto, abbiamo un vincitore * / VictoryFunction (vincitore). Condizione Definizione: Parametri HasAUnitInRegion: p: interi variabili locali: u: Azioni Unità: per ogni unità (u) in (Unità nella regione (MyRegion)) fare - se (Proprietario di (u)) == p - - allora Restituisce vero - - altro / * (fine loop) & lt; - alla fine saranno evidenti nell'editor * / return false. Azione Definizione: VictoryFunction Parametri: vincitore: interi variabili locali: P: Azioni interi: per ogni giocatore (p) (Tutti i giocatori) - if (p == vincitore) - - poi fine del gioco per (p) a Vittoria (. ) - - altro End Game per (p) nella sconfitta ().. Normalmente mi piacerebbe spiegare cose, ma credo che si ottiene questo come un scripter. Quando si dispone che, ci preoccupano morte improvvisa. Non è più tempo per scrivere in questo momento. Ultima modifica 7 settembre 2010 da Xelaran N. 5 7 settembre, 2010 alle 22:05 UTC - 0 Mi piace Grazie mille per il vostro aiuto! Ottengo la logica e seguire la pseudo-codice e sto iniziando a come implementare questa come un trigger nell'editor. Sto avendo qualche difficoltà, tuttavia, trovare come implementare "HasUnitInRegion (p)" nell'editor. Questo dovrebbe essere una condizione nella If Then giusto affermazione? Attualmente ho il seguente: Evento: Timer - Gioco Timer scade Variabili locali: p = 0 & lt; Integer & gt; vincitore = 0 & lt; Integer & gt; trovato = falso & lt; booleano & gt; Azioni: Gruppo Player - per ogni giocatore p a (Tutti i giocatori) fare (Azioni) - Ricorso - - Generale - Se (Condizioni) poi fare (azioni) altro fare (azioni) - - - SE / * Questo è dove sono perplesso * / - - - Poi - - - - Se (foundOne) - - - - - Poi - Sudden Death Segnaposto - - - - - Altro - - - - - - vincitore Set = p - - variabile - - - - - variabile - Set trovato = true - - - - Else Ultima modifica 7 settembre 2010 da zenasprime N. 7 8 Settembre 2010 alle 08:34 UTC - 0 Mi piace Bene e per la morte improvvisa vorrei consigliare questo: (! Inizialmente OFF): trigger Sudden Death Eventi: Ogni unità esce MyRegion qualsiasi unità muore Condizione: variabili locali: p: vincitore integer: intero foundOne: Azione booleano: per ogni giocatore (p) (Tutti i giocatori) - se (HasAUnitInRegion (p)) - - allora se (foundOne) - - - quindi saltare le azioni rimanenti - - - altro set vincitore = p; set trovato = true - - altro VictoryFunction (vincitore). Poi nel segnaposto si dovrebbe dire: Attivare Trigger (morte improvvisa) On. N. 8 8 Settembre 2010 alle 09:07 UTC - 0 Mi piace Quello che faccio è impostato un trigger per ogni insieme di variabili che = e la sequenza finale di partita. Quindi, dire se scada il tempo e il giocatore 1 ha così molte unità nella regione 1 e il giocatore 1 ha più di 50 minerali, poi sfumare istantaneamente, uccidere tutte le unità, creare un bunker per il giocatore 1, e quindi impostare le opzioni di default da mischia. È forse possibile fare qualcosa di simile. Non so però. Sono solo in basi hard core fatto impressionante. N. 9 8 Settembre 2010 alle 10:59 UTC - 0 Mi piace Quello che faccio è impostato un trigger per ogni insieme di variabili che = e la sequenza finale di partita. Quindi, dire se scada il tempo e il giocatore 1 ha così molte unità nella regione 1 e il giocatore 1 ha più di 50 minerali, poi sfumare istantaneamente, uccidere tutte le unità, creare un bunker per il giocatore 1, e quindi impostare le opzioni di default da mischia. È forse possibile fare qualcosa di simile. Non so però. Sono solo in basi hard core fatto impressionante. Senza offesa, ma questa soluzione è molto scarsa. Sarà sempre essere solo uno schermo nero su entrambi la vittoria e la sconfitta. Non permette di impostare ciò che la vittoria o la sconfitta sembra. Per esempio nella mia mappa, sulla sconfitta ho diminuire la macchina fotografica e lasciare che il giocatore vede la sua base invasa dai nemici. C'è anche una roba trasmissione dicendo tipo "questo è il nostro destino". E se il giocatore vuole, si può premere "ritorno al gioco" e vedere che cosa lo stato in cui era prima ha perso. Tutte queste cose non sono possibili con la vostra soluzione. Vittoria e sconfitta saranno entrambi guardare noioso. N.10 8 settembre 2010 alle 14:02 UTC - 0 Mi piace Va bene così sto avendo qualche problema "HasUnitInRegion" Definizione condizione. "Per ogni unità (u) in (disponibilità in Regione (MyRegion)) Do" ma la cosa più vicina ho potuto capire era. "Unità Gruppo - Per ogni unità u in (Eventuali quote di Win Regione di proprietà di giocatore Qualsiasi corrispondenza giocatore espulso: Missile, Morto, Hidden, con al più Qualsiasi Importo) fare (Azioni)" Devo creare una definizione di condizione per "UnitsInRegion" come bene? In ogni caso, il risultato è stato una sconfitta per il giocatore, anche se hanno unità nella regione. Che cosa mi manca? Quello è la funzione giusta che hai trovato. Ho appena accorciato. L'intero qualsiasi giocatore e roba ESCLUSA è standard. Si dovrebbe effettivamente funzionare. Ci puoi mostrare il codice che avete in questo momento? Tra cui la definizione HasAUnitInRegion Condizione in particolare. @ James7285. Vai Sei sulotion dovrebbe funzionare, ma la sua richiede un po 'più spazio di memoria del mio. suggenstion di SouLCarveRR è giusto. "Numero di unità in condizioni di accordo regione" è una funzione integer tipo di ritorno. Quindi è necessario esaminare le funzioni di interi a trovarlo. Ultima modifica 8 settembre 2010 da Xelaran N. 16 8 settembre 2010 alle 20:57 UTC - 0 Mi piace Certo qui è ciò che abbiamo finora. Variabili: Win Regione = Regione 001 & lt; & gt; Regione _winner = 0 & lt; Integer & gt; Trigger: determinare vincitore. Determinare Vincitore Eventi Timer - gameTimer scade variabili locali p = 0 & lt; & gt interi; trovato = falso & lt; booleano & gt; Condizioni Azioni Gruppo Player - per ogni giocatore p in (Tutti i giocatori) (azioni) Azioni generali - Se (Condizioni) poi fare (azioni) altro fare (azioni) Se HasUnitInRegion (p) Poi Generale - Se (Condizioni) poi fare ( azioni) il resto lo fanno (azioni) Se foundOne == true Poi trigger - Accendere morte improvvisa il Else variabile - Set _winner = p variabile - Set trovato = true VictoryFunction Else (_winner) Condizione Definizione: HasUnitInRegion. Opzioni HasUnitInRegion: Condizione di ritorno Tipo: booleani Parametri p = 0 & lt; & gt; Integer Grammatica Testo: HasUnitInRegion (p) Suggerimento Testo: (nessuno) codice di script Le variabili locali LV = false & lt; booleano & gt; u = qualsiasi unità & lt; unità & gt; Azioni Unità Gruppo - Per ogni unità u in (Eventuali quote di Win Regione di proprietà di giocatore Qualsiasi corrispondenza giocatore espulso: Aria, Missile, Morto, Hidden, con al più Qualsiasi Importo) non (Azioni) Azioni generali - Se (Condizioni) poi fare (azioni) altro fare (azioni) IF (proprietario di u) == p Poi variabile - Set lv = true Else generale - lv Return Funzione: VictoryFunction. Opzioni HasUnitInRegion: Condizione di ritorno Tipo: booleani Parametri p = 0 & lt; & gt; Integer Grammatica Testo: HasUnitInRegion (p) Suggerimento Testo: (nessuno) codice di script Le variabili locali LV = false & lt; booleano & gt; u = qualsiasi unità & lt; unità & gt; Azioni Unità Gruppo - Per ogni unità u in (Eventuali quote di Win Regione di proprietà di giocatore Qualsiasi corrispondenza giocatore espulso: Aria, Missile, Morto, Hidden, con al più Qualsiasi Importo) non (Azioni) Azioni generali - Se (Condizioni) poi fare (azioni) altro fare (azioni) IF (proprietario di u) == p Poi variabile - Set lv = true Else generale - lv Return Trigger: Sudden Death (inizialmente off). Morte improvvisa Eventi Unità - Qualsiasi unità muore Unità - Qualsiasi unità esce Regione 001 variabili locali p = 0 & lt; Integer & gt; vincitore = 0 & lt; Integer & gt; trovato = falso & lt; booleano & gt; Condizioni Azioni Gruppo Player - per ogni giocatore p in (Tutti i giocatori) (azioni) Azioni generali - Se (Condizioni) poi fare (azioni) altro fare (azioni) Se HasUnitInRegion (p) Poi Generale - Se (Condizioni) poi fare ( azioni) il resto lo fanno (azioni) Se foundOne == true Poi generale - Vai rimanenti azioni Else variabile - vincitore del set = p variabili - Set trovato = true altrimenti VictoryFunction (vincitore) N ° 17 8 settembre 2010 alle 23:31 UTC - 0 Mi piace Eureka! Abbiamo ottenuto a lavorare. Si scopre che se ci sono delle unità giocatore neutrale nella regione, che ci darebbe falso feedback sui nostri test. Inoltre, cosa ancora più importante, c'era una linea mancante nella Vincitore Determinare trigger che stava causando alcuni hick-up che abbiamo trovato e fissato. Quindi tutto bene per il momento. Ora al playtesting! Grazie ragazzi e complimenti a Xelaran per averci aiutato con la pseudo-codice di script! Ultima modifica 8 settembre 2010 da zenasprime Maledizione




No comments:

Post a Comment