sto apportando piccole modifiche (PER USO PRIVATO :moglie: ) ai transformers...
il char in questione è scorponok.
chi conosce questo char sa che sto robottino si trasforma nella testa di un robot e si unisce con un'astronave gigante diventando molto + potente rispetto al robot di partenza.
il discorso è che quando ci combatti contro sto cojone si trasforma molto raramente anche se ha raggiunto un power necessario alla trasformazione di 3000.
io vorrei che sto cojone di robot quando raggiunge 3000 di power non ci pensasse neanche mezza volta a traformarsi nel robot gigante in quanto nel mio ULTRAMEGAMUGEN mistoseta lo vorrei utilizzare come boss... e se nn si trasforma resta la schiappa schifosa che non è altro :rotfl:
nel cmd ho individuato queste cose che riguardano la mossa di trasformazione:
[Command]
name = "bianxing"
command = a+b+x+y
time = 100
.....
.....
.....
[State -1]
type = ChangeState
value = 4000
triggerall = command = "bianxing"
triggerall = power >= 3000
triggerall = !Var(7)
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = statetype != A
trigger2 = movecontact
avete suggerimenti?
Pagina 1 di 1
comportamento e IA di un char fare in modo che una mossa sia prioritaria e maggiormente eseguita
#2
Inviato 02 May 2007 - 21:03
Gli programmi una mezza AI (nel senso che non è una vera e propria A, ma è solo un controllo che a 3000 power obbliga la trasformazione).
In primo luogo individua una var (nel mio esempio la var(30) cheè la var che nei miei chars uso per la AI) che non è stata usata nel char.
e poi segui questi passi
----------------
1) Definisci i comandi (impossibili) di attivazione della AI (puoi copiare le istanze che io uso nei miei chars -> comandi "AI 1" etc...)
2) Nello [statedef -1] inserisci come PRIMA istruzione dopo [statedef -1] l'attivazione della AI (copiala dai miei chars -> [State -1, AI Activation]). Cambia il numero di var se usi una var diversa dalla 30.
3) SUBITO DOPO (quindi come seconda istruzione) inserisci questa istruzione
[State -1, AI costringi PC a trasformarsi a 3000 power]
type = ChangeState
value = 4000
trigger1 = var(30) = 1 ;o altra var diversa da 30 che tu hai deciso di usare
trigger1 = power >= 3000
trigger1 = statetype != A
trigger1 = ctrl
----------------
Io nei miei chars normalmente la AI la metto in fondo, ma questo perché distinguo i colpi normali dai colpi AI escludendo al PC di accedere ai comandi normali.
Visto che qui invece lo scopo è mantenere l'accesso ai comandi normali e solo l'attivazione dell'effetto è legato a questa sorta di Ai allora dobbiamo mettere la istruzione come prima (il Mugen infatti legge in ordine di istruzioni) per essere sicuri che venga eseguita subito.
In primo luogo individua una var (nel mio esempio la var(30) cheè la var che nei miei chars uso per la AI) che non è stata usata nel char.
e poi segui questi passi
----------------
1) Definisci i comandi (impossibili) di attivazione della AI (puoi copiare le istanze che io uso nei miei chars -> comandi "AI 1" etc...)
2) Nello [statedef -1] inserisci come PRIMA istruzione dopo [statedef -1] l'attivazione della AI (copiala dai miei chars -> [State -1, AI Activation]). Cambia il numero di var se usi una var diversa dalla 30.
3) SUBITO DOPO (quindi come seconda istruzione) inserisci questa istruzione
[State -1, AI costringi PC a trasformarsi a 3000 power]
type = ChangeState
value = 4000
trigger1 = var(30) = 1 ;o altra var diversa da 30 che tu hai deciso di usare
trigger1 = power >= 3000
trigger1 = statetype != A
trigger1 = ctrl
----------------
Io nei miei chars normalmente la AI la metto in fondo, ma questo perché distinguo i colpi normali dai colpi AI escludendo al PC di accedere ai comandi normali.
Visto che qui invece lo scopo è mantenere l'accesso ai comandi normali e solo l'attivazione dell'effetto è legato a questa sorta di Ai allora dobbiamo mettere la istruzione come prima (il Mugen infatti legge in ordine di istruzioni) per essere sicuri che venga eseguita subito.
#3
Inviato 02 May 2007 - 23:29
ok ho provato a fare come dici tu e quando arriva a 3000 l'ex cojonazzo si trasforma senza pieta' nel robot gigante... ma
adesso è sorto un altro prob.
praticamente il robot gigante quando arriva nuovamente a 3000 rifa' la mossa di trasformarsi da piccolo a grande...
cosa che non dovrebbe fare visto che gia' è trasformato... come risolvo?
grazie 1000 per i tuoi consigli ed insegnamenti
adesso è sorto un altro prob.
praticamente il robot gigante quando arriva nuovamente a 3000 rifa' la mossa di trasformarsi da piccolo a grande...
cosa che non dovrebbe fare visto che gia' è trasformato... come risolvo?
grazie 1000 per i tuoi consigli ed insegnamenti
#4
Inviato 04 May 2007 - 19:25
Credo che la trasformazione venga registrata in un'altra variabile. Individuala e aggingi questo trigger
trigger1 = var(x) = 0
dove x è la var che controlla se il Robot è in versione Gigante.
trigger1 = var(x) = 0
dove x è la var che controlla se il Robot è in versione Gigante.
#5
Inviato 05 May 2007 - 02:22
non credo tale var ci sia altrimenti ci sarebbe un controllo nel meno due che se var(x) = 1 && state = 4000 allora changestate a qualsiasi sia la stand traformata..
se non ci sta':
1) aggiungi tale var alla fine dello state 4000, MI RACCOMANDO SOLO PRIMA DEL CHANGESTATE FINALE!
2) crea nello stato -2 questo:
[state -2, No2Transform]
type = changestate
trigger1 = var(x) = 1 && state = 4000
value = stand traformata
sostituisci i valori e dovrebbe cambiare subito quando arriva a 3000...
ora pero' il char rimane incastrato tra stato 4000 e stand, percui dobbiamo andare nuovamente nel -1 ovvero qui: [State -1, AI costringi PC a trasformarsi a 3000 power]
e aggiungere trigger1 = var(x) = 0
in tale modo avviene solo se la variabile non e' mai stata cambiata ;) lascia comunque il -2 in caso succede un problema ti salva ;)
se non ci sta':
1) aggiungi tale var alla fine dello state 4000, MI RACCOMANDO SOLO PRIMA DEL CHANGESTATE FINALE!
2) crea nello stato -2 questo:
[state -2, No2Transform]
type = changestate
trigger1 = var(x) = 1 && state = 4000
value = stand traformata
sostituisci i valori e dovrebbe cambiare subito quando arriva a 3000...
ora pero' il char rimane incastrato tra stato 4000 e stand, percui dobbiamo andare nuovamente nel -1 ovvero qui: [State -1, AI costringi PC a trasformarsi a 3000 power]
e aggiungere trigger1 = var(x) = 0
in tale modo avviene solo se la variabile non e' mai stata cambiata ;) lascia comunque il -2 in caso succede un problema ti salva ;)
#6
Inviato 05 May 2007 - 19:26
E per fare in modo invece di usare una certa mossa meno volte ?
Ho un char deficente che si suicida usando una mossa che spreca energia per rendersi invisibile invece di combattere normalmente..
Ho un char deficente che si suicida usando una mossa che spreca energia per rendersi invisibile invece di combattere normalmente..
#7
Inviato 05 May 2007 - 20:13
trovi il controllo che chiama quella mossa in automatico e ci metti un trigger impossibile per l'attivazione... ad esempio avviene solo se a 1500 pizel dal p1 e se la y e' = a 7 che e' impossibele in teoria :P
cosi' non si attiva +... attento pero' che non la attivi + neanche tu... se tu vuoi attivarla devi metter l'opzione dell aminiai come prima, e usare la var per fare in modo che la condizione impossibile sia attiva nons empre ma solo quando sei il pc (ai var = vero)
cosi' non si attiva +... attento pero' che non la attivi + neanche tu... se tu vuoi attivarla devi metter l'opzione dell aminiai come prima, e usare la var per fare in modo che la condizione impossibile sia attiva nons empre ma solo quando sei il pc (ai var = vero)
#8
Inviato 06 May 2007 - 10:31
x nobun
come faccio a trovare questa variabile della trasformazione....
ps dove posso trovare qualcosa per capire come funzionano queste variabili?
x slayer
1) aggiungi tale var alla fine dello state 4000, MI RACCOMANDO SOLO PRIMA DEL CHANGESTATE FINALE!
2) crea nello stato -2 questo:
[state -2, No2Transform]
type = changestate
trigger1 = var(x) = 1 && state = 4000
value = stand traformata <------------------------- cosa devo sostituire qua?
voglio imparare a programmare :'(
come faccio a trovare questa variabile della trasformazione....
ps dove posso trovare qualcosa per capire come funzionano queste variabili?
x slayer
1) aggiungi tale var alla fine dello state 4000, MI RACCOMANDO SOLO PRIMA DEL CHANGESTATE FINALE!
2) crea nello stato -2 questo:
[state -2, No2Transform]
type = changestate
trigger1 = var(x) = 1 && state = 4000
value = stand traformata <------------------------- cosa devo sostituire qua?
voglio imparare a programmare :'(
#9
Inviato 06 May 2007 - 17:00
Per trovare la var bisogna leggersi un po' il codice... spesso molti autori indicano tutte le variabili che usano e a cosa servono (io adesempio lo faccio all'inizio dell'ultimo file CNS del mio char).
A dire il vero, se non trovi la var, secondo me c'è un modo molto più semplice di programmare l'effetto senza mettere in gioco lo statedef -2
Se non trovi la var te ne usi un'altra aggiuntiva che puoi inizializzare in vari punti, ma ti consiglio all'inizio dello state 4000 come primissima istruzione
[State 4000, 0]
type = ChangeState
v = 31 ;nel mio esempio uso la var(31) come var di controllo
value = 1
trigger1 = time = 0
-------------
E poi, nell'istanza state -1 che ti avevo suggerito aggiungi il nuovo trigger di controllo
[State -1, AI costringi PC a trasformarsi a 3000 power ma SOLO una volta nel round]
type = ChangeState
value = 4000
trigger1 = var(30) = 1 ;AI deve essere attiva
trigger1 = var(31) = 0 ;Deve essere la prima volta che vai allo state 4000 in questo round
trigger1 = power >= 3000
trigger1 = statetype != A
trigger1 = ctrl
----------------
Molto semplicemente le variabili in programmazione sono delle "entità" a cui si assegna un valore.
In molte situazioni è infatti importante determinare degli eventi specifici e rappresentarli con un valore (es. in residence evil dovevi sapere quante munizioni ha la tua arma? ti prendi una variabile e lì memorizzi il numero di proiettili). Le variabili possono essere usate per i motivi più disparati.
Comunque... non esiste un unico metodo di programmazione... il mio punta molto sul cercare di trovare la soluzione meno complessa possibile o che risparmi codice...
A dire il vero, se non trovi la var, secondo me c'è un modo molto più semplice di programmare l'effetto senza mettere in gioco lo statedef -2
Se non trovi la var te ne usi un'altra aggiuntiva che puoi inizializzare in vari punti, ma ti consiglio all'inizio dello state 4000 come primissima istruzione
[State 4000, 0]
type = ChangeState
v = 31 ;nel mio esempio uso la var(31) come var di controllo
value = 1
trigger1 = time = 0
-------------
E poi, nell'istanza state -1 che ti avevo suggerito aggiungi il nuovo trigger di controllo
[State -1, AI costringi PC a trasformarsi a 3000 power ma SOLO una volta nel round]
type = ChangeState
value = 4000
trigger1 = var(30) = 1 ;AI deve essere attiva
trigger1 = var(31) = 0 ;Deve essere la prima volta che vai allo state 4000 in questo round
trigger1 = power >= 3000
trigger1 = statetype != A
trigger1 = ctrl
----------------
Molto semplicemente le variabili in programmazione sono delle "entità" a cui si assegna un valore.
In molte situazioni è infatti importante determinare degli eventi specifici e rappresentarli con un valore (es. in residence evil dovevi sapere quante munizioni ha la tua arma? ti prendi una variabile e lì memorizzi il numero di proiettili). Le variabili possono essere usate per i motivi più disparati.
Comunque... non esiste un unico metodo di programmazione... il mio punta molto sul cercare di trovare la soluzione meno complessa possibile o che risparmi codice...
Condividi questa discussione:
Pagina 1 di 1

Aiuto










