Forum MUGENATION: CPU problem - Forum MUGENATION

Salta al contenuto

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

CPU problem

#1 L   demongorne 

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

Inviato 01 July 2008 - 20:59

stranamente la CPU nn esegue le mosse ke ho aggiunto al personaggio(esegue solo quelle preesistenti) come mai? :mellow:
0

#2 L   williamwilson 

  • EvilMugen
  • Gruppo: Moderatore
  • Messaggi: 1374
  • Iscritto: 30-September 06

Inviato 01 July 2008 - 21:34

Visualizza Messaggidemongorne, su Jul 1 2008, 21:59, detto:

stranamente la CPU nn esegue le mosse ke ho aggiunto al personaggio(esegue solo quelle preesistenti) come mai? :mellow:


penso che dovresti aggiunge le nuove mosse anche nell'IA del personaggio, altrimenti nessuno dice al char che può eseguire quelle mosse, quando è il computer che lo manovra
0

#3 L   demongorne 

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

Inviato 02 July 2008 - 08:25

nell'Ai dei comandi ho aggiunto queto ma nn funziona :moglie:

[command]
name = "Max_ryoku_rambu"
command = ~D,DB,D,DF,c+b
time = 25

[command]
name = "Max haoshookoken"
command = ~F, B, DB, D, DF, F, z+y
time = 25

[command]
name = "shinryuken"
command = ~D,DF,F,DF,F,z
time = 15

[command]
name = "Final Ryuken"
command = ~D,DF,F,DF,F,c
time = 15
0

#4 L   The Man 

  • Chan
  • Punto
  • Gruppo: Membro
  • Messaggi: 29
  • Iscritto: 30-June 08

Inviato 02 July 2008 - 08:59

ciao,
forse sbaglio xchè non sono molto esperto di programmazione ma quello che hai scritto tu sono le righe per il comando,cioè come si esegue la mossa che vuoi fare
0

#5 L   demongorne 

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

Inviato 02 July 2008 - 09:02

ho provato anke in quest'altra maniera nei comand CPU ho aggiunto

[command]
name = "CPU53"
command = D, D , F , F , D , F , F
time = 1

[command]
name = "CPU54"
command = D, D , F , F , D , F , F
time = 1

[command]
name = "CPU55"
command = D, D , B , D , D , F
time = 1

[command]
name = "CPU56"
command = F, B, D,B, D, D, F, F
time = 1

e nello state -1 dell'AI ho aggiunto

trigger53 = command = "CPU53"
trigger54 = command = "CPU54"
trigger55 = command = "CPU55"
trigger56 = command = "CPU56"

inoltre ho aggiunto negli state dei comandi delle hyper questa variabile

triggerall = var(59) != 1

a queto punto nn so proprio xkè nn funziona :mellow:
0

#6 L   Squall LionHeart™ 

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

Inviato 02 July 2008 - 11:05

Allora, ti spiego rapidamente come funzica l'AI (x una + completa spiegazione, leggi il mio tutorial).

dunque. nel file. CMD ci sono i comandi di ATTIVAZIONE dell'AI, che è rappresentato da una variabile (solitamente la (59) ).
Quando la variabile è attiva, il char legge dei comandi che vengono dati con il triggern = var(59) = 1, e sono una sorta di scorciatoie (in determinate soluzioni, portano direttamente alla tecnica senza passare x i comandi).

Ora... nel cmd vanno messe combinazioni di tasti (quelle riguardanti l'AI, non tutte), IMPOSSIBILI da fare per un giocatore umano. questo perché, nel qual caso si attivasse l'AI mentre giochi tu, perderesti il controllo del personaggio parzialmente o totalmente.

infine, questi comandi vanno inseriti come trigger in un varset, posizionato (solitamente) in fondo al CMD. con tutti trigger numerati, una cosa del genere:

[state -1,attivazione AI]
type = varset
trigger1 = command = "CPU1"
trigger2 = command = "CPU2"
trigger3 = com.....
trigge........
....
...
v = 59
Value = 1

questo comando attiva la variabile dell'AI.

Ora, la restante (e più importante) parte dell'AI si programma nel file cns, più precisamente nello statedef -2.

qui, vanno inseriti i CHANGESTATE, che portino il char a fare quella determinata tecnica. inutile dire che devi aggiungere ai trigger un random (un range, tipo [0,50]) in modo tale che sia casuale, e che l'AI sembri quanto + varia possibile.
Altri trigger possono esservi qui, come il p2bodydist, power, life, p2life, e tante altre.
FOndamentale, però, dev'esserci il:

Triggerall = var(59) = 1

ora aggiungi la tua tecnica in questo modo all'AI preesistente, e vedi che il pc non la "schiferà" + XD e la userà :)

Saluti

Squall
0

#7 L   demongorne 

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

Inviato 02 July 2008 - 11:20

scusa forse nn hai letto con attenzione il mio post sopra ma io queste cose le ho già aggiunter(lo riscrivo x maggiore kiarezza) ecco sia i command ke i changestate da me aggiunti

[State -1, AI]

trigger53 = command = "CPU53"
trigger54 = command = "CPU54"
trigger55 = command = "CPU55"
trigger56 = command = "CPU56"
var(59) = 1

AI command

[command]
name = "CPU53"
command = D, D , F , F , D , F , F
time = 1

[command]
name = "CPU54"
command = D, D , F , F , D , F , F
time = 1

[command]
name = "CPU55"
command = D, D , B , D , D , F
time = 1

[command]
name = "CPU56"
command = F, B, D,B, D, D, F, F
time = 1


ChangeState

;Max_ryoku_rambu
[State -1, 3030]
type = ChangeState
value = 3030
trigger1 = (statetype = s) && ctrl
triggerall = command = "Max_ryoku_rambu"
triggerall = power>=2000
triggerall = life<=300
triggerall = var(59) != 1
----------------------------------------------------------------------------------------
;Max hohshookoken
[State -1, 3020]
type = ChangeState
value = 3020
triggerall = command = "Max haoshookoken"
trigger1 = (statetype = s) && ctrl
triggerall = power>= 2000
triggerall = life<=350
trigger2 = stateno = 3000
trigger2 = movecontact
triggerall = var(59) != 1
--------------------------------------------------------------------------------------
;Final ryuken
[State -1, 3015]
type = ChangeState
value = 3015
triggerall = Power>= 2000
triggerall = life<= 300
triggerall = command = "Final Ryuken"
trigger1 = (statetype = s) && ctrl
trigger2 = stateno = 1100
trigger2 = movecontact
triggerall = var(59) != 1

-----------------------------------------------------------------------------------------
;shinryuken
[State -1, 3010]
type = ChangeState
value = 3010
triggerall = Power>= 1000
triggerall = command = "shinryuken"
trigger1 = (statetype = s) && ctrl
trigger2 = stateno = 1100
trigger2 = movecontact
triggerall = var(59) != 1
0

#8 L   Squall LionHeart™ 

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

Inviato 02 July 2008 - 12:09

Ma infatti i changestate non sono questi...ti ho detto che i changestate da moddare/creare, sono nel file. cns...

inoltre, mettendo nel cmd il triggerall = var(59) != 1, NEGHI la possibilità che il pc possa fare la combinazione di tasti e fare la tecnica autonomamente... rileggi il mio post :)

Saluti

Squall
0

#9 L   demongorne 

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

Inviato 02 July 2008 - 12:18

nn ho capito quali sarebbero questi changestate io gli unici ke bvedo sono quelli degli statedef delle mosse :unsure:
0

#10 L   Squall LionHeart™ 

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

Inviato 02 July 2008 - 12:21

Ripeto... leggiti bene i post, prima di rispondere:

STATEDEF -2.

lì sotto ci dev'essere l'AI. in caso contrario questo probabilmente non è programmata...

Saluti

Squall
0

#11 L   demongorne 

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

Inviato 02 July 2008 - 12:32

Si ora l'ho trovato ma cosa devo fare cioè cosa devo aggiungere o modificare?
0

#12 L   Squall LionHeart™ 

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

Inviato 02 July 2008 - 14:08

Devi aggiungere un changestate, con i dovuti trigger, che porti alla tecnica da te creata.

Saluti

Squall
0

#13 L   demongorne 

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

Inviato 02 July 2008 - 14:15

scusa potresti farmi un'esempio pratico?

ho aggiunto questo ma nn so se è corretto :unsure:

[State hyper_1, ChangeState]
type = ChangeState
trigger1 = command = "shinryuken"
value = 3010
ctrl = 0
0

#14 L   Squall LionHeart™ 

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

Inviato 02 July 2008 - 15:35

cerca nel mio tutorial l'AI, vedrai che è spiegato tutto passo passo ;) cmq quel controller è scorretto, xkè ti ho dettoche l'AI serve a far fare la tecnica anche quando NON si fa la combinazione ;)

Saluti

Squall
0

#15 L   demongorne 

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

Inviato 02 July 2008 - 16:14

scusa ma dov'e ke posso consultare quel tutorial?
0

#16 L   Squall LionHeart™ 

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

Inviato 02 July 2008 - 17:51

Nella sezione tutorial del forum, naturalmente... "guida alla programmazione by Squall"

Saluti

Squall
0

#17 L   demongorne 

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

Inviato 02 July 2008 - 18:27

ho dato un okkiata al tutorial ed ecco cosa ho scritto

[State 0, ChangeState]
type = ChangeState
TriggerAll = roundstate = 2
value = 3010
triggerall = (var(59)!=1)&&(statetype= S)&&(ctrl)&&(random=[0,81])
trigger1 = (P2bodydist X>=100)&& (power>=1000)

xò ikn tal modo avviene ke come il p1 ssi carica di 1 powerbar scatta automaticamente la mossa senza ke io prema niente :unsure:
0

#18 L   Squall LionHeart™ 

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

Inviato 02 July 2008 - 19:31

è naturale... te l'avrò ripetuto almeno 3 volte

VAR(59) != 1 VUOL DIRE CON L'AI DISATTIVATA.

il trigger corretto è : var(59) = 1

Saluti

Squall
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