Forum MUGENATION: Creare una strategia difensiva - Forum MUGENATION

Salta al contenuto

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

Creare una strategia difensiva

#1 L   demongorne 

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

  Inviato 09 April 2009 - 08:55

volevo sapere se c'è un modo per programmare una strategia difensiva nell'AI (ad es. quando il p2 sta correndo incontro al p1 quest'ultimo contrattacca automaticamente)
0

#2 L   Nobun 

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

Inviato 11 April 2009 - 09:57

Nel caso specifico del giocatore avversario che corre verso di te (lo state di corsa è il 100) puoi usare questi trigger nel tuo comando (ma sta a te scegliere l'attacco più appropriato)

trigger1 = enemy, stateno = 100
trigger1 = p2BodyDist X <= x (es. se è un colpo ravvicinato)
0

#3 L   demongorne 

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

Inviato 11 April 2009 - 10:03

Ottimo grazie Sensei

Ma i trigger vanno messi nel cmd o nel cns dell'AI?
0

#4 L   Nobun 

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

Inviato 11 April 2009 - 10:50

Nel CMD per attivare la mossa... quindi va attivata quella data mossa (nel CMD) con questi trigger ed eventualmente altri. Per non fare una cosa troppo innaturale suggerirei di mettere anche la verifica di controllo (trigger1 = ctrl) anche se questo al 99% rende quasi del tutto inefficiente il codice (se la tua AI non ha "pause di controllo" devi trovare un modo - non saprei dirti quale perché dipende dalla AI nel suo complesso - di evitare movimenti innaturali, senza usare il trigger ctrl, causati da una attivazione improvvisa di questo controattacco).
0

#5 L   demongorne 

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

Inviato 11 April 2009 - 14:48

Visualizza MessaggiNobun, su Apr 11 2009, 11:50, detto:

Nel CMD per attivare la mossa... quindi va attivata quella data mossa (nel CMD) con questi trigger ed eventualmente altri. Per non fare una cosa troppo innaturale suggerirei di mettere anche la verifica di controllo (trigger1 = ctrl) anche se questo al 99% rende quasi del tutto inefficiente il codice (se la tua AI non ha "pause di controllo" devi trovare un modo - non saprei dirti quale perché dipende dalla AI nel suo complesso - di evitare movimenti innaturali, senza usare il trigger ctrl, causati da una attivazione improvvisa di questo controattacco).



capisco cmnq io l'ho aggiunto nel cmd del pugno del drago debole in questo modo


[State -1, shoryuken]
type = ChangeState
value = 1100
triggerall = Command = "shoryu"
triggerall = statetype != A
trigger1 = enemy, stateno = 100 ------------------------ state della corsa
trigger1 = p2BodyDist X <= 50
trigger1 = ctrl


xò il codice sembra nn avere effetto :unsure:
0

#6 L   Nobun 

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

Inviato 11 April 2009 - 22:20

Perché l'hai inserito in un comando per l'umano. I comandi Ai non devono richiamare i comandi umani. Quindi devi togliere i trigger da lì, e scrivere un secondo comando (senza i trigger "umani") con i trigger per la AI
0

#7 L   demongorne 

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

Inviato 11 April 2009 - 22:39

Visualizza MessaggiNobun, su Apr 11 2009, 23:20, detto:

Perché l'hai inserito in un comando per l'umano. I comandi Ai non devono richiamare i comandi umani. Quindi devi togliere i trigger da lì, e scrivere un secondo comando (senza i trigger "umani") con i trigger per la AI

scusa ma sto facendo un pò di confusione :wacko:

quali sono i trgger umani e quali quelli dell'AI (magari se x piacere potresti farmi un es. pratico mi sarebbe utile)
0

#8 L   Nobun 

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

Inviato 12 April 2009 - 00:39

triggerX = command = "nome mossa"
TRIGGER UMANO: perché bisogna eseguire materialmente la mossa descritta da quel command

TRIGGER AI: tutti quei trigger (diversi da command) che determinano quando l'AI attiva un dato colpo.

E' ovvio che, i comandi umani, possono richiedere diversi trigger (es. statetype) che spesso si usano anche nelle AI.

Devi ragionare pensando:
A - l'essere umano cosa deve fare per attivare questa mossa (es. 1200?)
1A ) La AI NON deve essere attivata
1B ) Devi premere il comando "mossa"
1C ) Il personaggio deve essere sotto controllo e non deve trovarsi nel mezzo di una esecuzione di una mossa (di norma si usa il trigger ctrl per tale controllo)
1D ) La mossa è una mossa stand, quindi il personaggio deve trovarsi in uno state di tipo standing

[State -1, mossa state 1200 - versione umana]
type = ChangeState
value = 1200
trigger1 = var(30) = 0;ipotesi: la var(30) registra se la AI è attiva (1) o no (0)
trigger1 = command = "mossa";condizione 1
trigger1 = ctrl
trigger1 = statetype = S


B - il computer cosa deve fare per attivare questa mossa (es. 1200)?
SEMPRE) l' AI DEVE essere attiva
SEMPRE) la mossa è stand quindi il personaggio deve trovarsi in uno state standing
EV.1) il nemico sta correndo
EV.1 B ) il nemico si trova a 50 pixel o meno di distanza
EV.2) il nemico sta fermo in standing
EV.2 B ) il nemico si tova a 20 pixel o meno di distanza ; se è fermo devi calcolare che l'avversario non si avvicina

[State -1, mossa state 1200 - versione AI]
type = ChangeState
value = 1200
triggerall = var(30) = 1;ipotesi: la var(30) registra se la AI è attiva (1) o no (0)
triggerall = statetype = S
trigger1 = enemy, stateno = 100
trigger1 = p2bodyDist X <= 50
trigger2 = enemy, stateno = 0
trigger2 = p2BodyDist X <= 20


In questo caso l'AI esegue la mossa (necessario comunque che il char stia in posizione standing e la AI sia attiva) in due ipotesi:
Caso1 -> Il nemico sta correndo e si trova ad una distanza non superiore a 50 pixel
Caso2 -> Il nemico è fermo in standing e si trova ad una distanza non superiore a 20 pixel

Nota: i codici che ti ho dato io sono "rudi" e non vanno bene. Vanno riadattati. Ho cercato di farti capire come si "ragionano le mosse" umane e del PC
0

#9 L   demongorne 

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

Inviato 12 April 2009 - 11:55

seguendo l'esempio ke mi hai riportato ho messo nello state -1 del cmd

[State -1, shoryuken] ------------------------------------------------human cmd
type = ChangeState
value = 1100
triggerall = Command = "shoryu"
trigger1 = var(59) = 0
trigger1 = statetype = s
trigger1 = ctrl

[State -1, shoryuken,AI] -----------------------------------------------cmd AI
type = ChangeState
value = 1100
triggerall = Command = "shoryu"
triggerall = var(59) = 1-------------è la variabile con cui ho impostato l'AI
triggerall = statetype = s
trigger1 = ctrl
trigger1 = enemy,stateno = 100
trigger2 = enemy, stateno = 0
trigger2 = P2bodydist X<= 30
trigger2 = P2bodydist X<= 20


xò quando il p1 gli corre incontro la mossa di contrattacco prestabilita nn lavora
0

#10 L   Squall LionHeart™ 

  • Programmatore M.U.G.E.N.
  • Gruppo: Moderatore
  • Messaggi: 1097
  • Iscritto: 23-July 07

Inviato 12 April 2009 - 12:06

beh è ovvio. se tu intendi farla partire AUTOMATICAMENTE, devi togliere dal cmd dell'ai "triggerall = command = "shoryu".

questa condizione implica che per far partire il colpo, l'ai deve fare la combinazione. se vuoi che parta in automatico sempre, devi toglierla.

Saluti

Squall
0

#11 L   demongorne 

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

Inviato 12 April 2009 - 12:13

Si ora funziona grazie mille ragazzi :birra:
0

#12 L   Nobun 

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

Inviato 12 April 2009 - 17:54

Visualizza MessaggiSquall LionHeart™, su Apr 12 2009, 13:06, detto:

beh è ovvio. se tu intendi farla partire AUTOMATICAMENTE, devi togliere dal cmd dell'ai "triggerall = command = "shoryu".

questa condizione implica che per far partire il colpo, l'ai deve fare la combinazione. se vuoi che parta in automatico sempre, devi toglierla.

Saluti

Squall

Esattamente quello che ha detto squall. Il che dimostra che non hai letto ATTENTAMENTE ciò che io ho scritto :moglie:
0

#13 L   demongorne 

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

Inviato 12 April 2009 - 21:49

Visualizza MessaggiNobun, su Apr 12 2009, 18:54, detto:

Esattamente quello che ha detto squall. Il che dimostra che non hai letto ATTENTAMENTE ciò che io ho scritto :moglie:


no ho letto è ke davo x scontato ke servisse il comand name x attivare il codice

cmnq volevo kiederti un altra cosa : è possibile impostare il comando in modo tale ke il p1 contrattakki x + di un colpo ad es. colpisce quando è attacato sia dal pugno debole ke dal pugno medio ke da pugno forte e cosi via....inoltre volevo sapere quando voglio inserire un contrattacco in un comando ke nn sia un colpo (ad es. il power charge o la camminata) come si fa?
0

Condividi questa discussione:


Pagina 1 di 1
  • 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