Forum MUGENATION: programmare l'AI - Forum MUGENATION

Salta al contenuto

  • 2 Pagine +
  • 1
  • 2
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

programmare l'AI

#21 L   demongorne 

  • Senpai
  • PuntoPuntoPunto
  • Gruppo: Membro
  • Messaggi: 533
  • Iscritto: 07-November 06

Inviato 07 January 2009 - 22:39

ho tolto tutti i valori da te indicati ngli hitdef e ho messo questa combo

[State -2, Ai,combo_special]
type = ChangeState
value = 1200
ctrl = 0
triggerall = var(59) = 1
trigger1 = statetype = S && ctrl
trigger1 = p2Dist X = [-30,30] ;da calibrare sulla distanza del pugno normale
trigger1 = random = [0,500]

[State -2, ChangeState]
type = ChangeState
Triggerall = roundstate = 2
triggerall = (var(59)!=0)&&(statetype = S)&&(stateno = 1200)&&(random=[0,500])
trigger1 = (P2bodydist X<=100)
trigger1 =(movecontact)
value = 3200

;cmd

[Command]
name = "AI18"
command = F,F,B,D,B,U,U
time = 1

[Command]
name = "AI19"
command = B,B,U,U,D,F,U
time = 1

ma rikiama solo il changestate 1200 senza passare al succesivo
0

#22 L   Nobun 

  • Horse Rider Skull Phantom. Rarely Here.
  • Gruppo: SuperModeratore
  • Messaggi: 4898
  • Iscritto: 11-July 04

Inviato 07 January 2009 - 23:23

Guarda che non occorre aumentare la lista di "AI" ogni volta che aggiungi una mossa alla AI.
L'attivazione della AI serve solo per LANCIARE l'AI (ovviamente devi prevedere un certo numero di comandi per aumentare le probabilità di una pronta attivazione).

In ogni caso... quando si mette un trigger stateno=... NON HA SENSO mettere un trigger statetype=... anche perché il rischio è creare una condizione impossibile.

Comunque, a logica, dovrebbe essere corretto, quindi non so perché non esegua il secondo attacco dopo aver colpito la prima volta...

PS ribadisco che non amo questo tipo di AI di colpi che si susseguono non appena l'attacco va a segno, perché non corrispondono ai tempi di azione dati al giocatore umano. Secondo me l'AI deve avere combo e movenze che rientrano nell'uso normale del char, insomma che possa essere fatto anche dal giocatore umano... :zzz:
0

#23 L   demongorne 

  • Senpai
  • PuntoPuntoPunto
  • Gruppo: Membro
  • Messaggi: 533
  • Iscritto: 07-November 06

Inviato 08 January 2009 - 12:26

Scusa Sensei ma a questo punto penso sia meglio cambiare metodo nel senso ke è evidente ke in questo modo c'è qualcosa ke nn va quindi se tu conosci un'altra strada x ottenere i medesimi effetti useremo quel metodo

togliendo lo statetype = S funziona solo ke l'animazione dello state 1200 nn viene esguita x intero(nel senso ke la mossa e composta da 2 calci aerei ma nella combo nn appena da il primo calcio passa immediatamente al changestate successivo) ho provato a mettere nel changestate 1200 un trigger1 = animtime = 0 x fare in modo ke eseguisa la mossa x intero prima di passare al changestate successivo ma nn funziona
0

#24 L   Nobun 

  • Horse Rider Skull Phantom. Rarely Here.
  • Gruppo: SuperModeratore
  • Messaggi: 4898
  • Iscritto: 11-July 04

Inviato 08 January 2009 - 18:33

Non è che il metodo non vada è che, parlando di gusto personale, non amo una AI che porta un personaggio ad eseguire un attacco non appena terminato uno precedente, senza tregua, e soprattutto senza corrispondenza di una combo che sia disponibile anche al giocatore umano.

Detto questo, è ovvio che la programmazione non può essere sempre identica per tutte le mosse, ma bisogna CAPIRE cosa si sta scrivendo e soprattutto aver l'accortezza di riadattare la cosa al caso concreto in questione.

Ad esempio... è normale che l'animazione si interrompa prima del tempo se ci sono due attacchi...

Il trigger

triggerX = movehit

equivale a

trigger1 = movehit = 1

che nel WINMUGEN è condizione vera SOLO subito dopo il primo attacco ma diventa falso dopo (vedere funzionamento di move* nel winmugen).

Ma anche mettere il più corretto

trigger1 = movehit != 0

non risolve il problema, perché va ristretto con un secondo trigger1 che va contestualizzato o con un trigger time (scelta consigliato) o con animtime.

Io consiglio il trigger time (calcolato come già ti spiegai)

quindi

trigger1 = movehit != 0
trigger1 = time > ...
0

#25 L   demongorne 

  • Senpai
  • PuntoPuntoPunto
  • Gruppo: Membro
  • Messaggi: 533
  • Iscritto: 07-November 06

Inviato 08 January 2009 - 21:11

Ho messo quei valori al changestate 1200 ma il secondo colpo nn va asegno e il p2 nn viene colpito (ho controllato i frame di caduta e misembra abbiano tutti i clsn blu)
0

Condividi questa discussione:


  • 2 Pagine +
  • 1
  • 2
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

1 utenti stanno leggendo questa discussione
0 utenti, 1 ospiti, 0 utenti anonimi