come aumentare/diminuire il tempo di stordimento o della caduta della guardia di un personaggio? è possibile?
#1
Inviato 10 November 2008 - 16:59
Vorrei fare una domanda riguardo allo stordimento e alla caduta della guardia (quest'ultima è poco comune nei chars ma per me è una buona cosa).
Lo stordimento (anche questa è poco comune) di un personaggio, cioé quando un personaggio è incapace di colpire, muoversi, fare mosse (e chi ne ha più ne metta) per un periodo di tempo. Ci sono vari modi per lo stordire un avversario ma quello che ho in mente io avviene quando un char viene colpito con una combo potente/lunga (per lunga s'intende con molti "rush" o "colpi"). Ho provato (da ignorante del Mugen o quelle cose lì) a ricercare nel cns del char in questione ma ho trovato parecchi fattori (dopo aver fatto "cerca" con il blocco note ho trovato):
[State 5020, 5] ; Stun value adding
Type = VarAdd
trigger1 = alive
trigger1 = var(12) <= 60
trigger1 = AnimElem = 1
persistent = 0
V = 12
Value = 1
[State 5020, 6]
type = ChangeState
trigger1 = HitShakeOver
value = 5030
[State 5020, FFB Light]
type = ForceFeedback
trigger1 = anim = 5000
trigger2 = anim = 5010
persistent = 0
time = 6
waveform = square
[State 5020, FFB Medium]
type = ForceFeedback
trigger1 = anim = 5001
trigger2 = anim = 5011
persistent = 0
time = 8
waveform = sinesquare
ampl = 110,-1,-.3
[State 5020, FFB Hard]
type = ForceFeedback
trigger1 = anim = 5012
trigger2 = anim = 5002
trigger3 = anim = 5030
trigger4 = anim = [5051,5059]
trigger5 = anim = 25030
persistent = 0
time = 15
waveform = sinesquare
ampl = 140
Dopo aver cercato ancora più in giù nel file .cns ho trovato anche:
; HIT_GETUP
[Statedef 5120]
type = L
movetype = I
physics = N
[State 5120, 1] ; Reversal check
type = varset
trigger1 = time = 1
var(6) = 1
[State 5120, 2]
type = turn
trigger1 = time = 0
trigger1 = p2dist x <= 0
[State 5120, 3] ; Get up anim (normal)
type = ChangeAnim
triggerall = time = 0
trigger1 = anim != [5111,5119]
trigger2 = !SelfAnimExist(5120 + (anim % 10))
value = 5120
[State 5120, 4] ; Get up anim (for hit up/diag-up)
type = ChangeAnim
triggerall = time = 0
trigger1 = anim = [5111,5119]
trigger1 = SelfAnimExist(5120 + (anim % 10))
value = 5120 + (anim % 10)
[State 5120, 5]
type = VelSet
trigger1 = Time = 0
x = 0
[State 5120, 6]
type = NotHitBy
trigger1 = 1
value = SCA
time = 1
[State 5120, 7]
type = HitFallSet
trigger1 = AnimTime = 0
value = 1
[State 5120, 8] ; Can't be thrown right after getting up
type = NotHitBy
trigger1 = AnimTime = 0
value = , NT,ST,HT
time = 12
[State 5120, 9] ; Can't be hit right after getting up (short time)
type = NotHitBy
trigger1 = AnimTime = 0
value2 = SCA
time = 3
[State 5120,10] ; Reversal check reset
type = varset
trigger1 = AnimTime = 0
var(6) = 0
[State 5120,11] ; Stun <--------------------------------------------------------------------------------------
type = ChangeState
trigger1 = alive
trigger1 = var(12) >= 60
trigger1 = Time = 14
value = 5300
ignorehitpause = 1
ctrl = 0
[State 5120,12]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1
E anche:
;----------------------------------------------------------------------------------------------
; ŠÈˆÕ‹Câ’lŠÇ—
; Stun
[State -2,]
type = VarSet
trigger1 = var(12) = -1
var(12) = 0
[State -2,]
type = Varadd
trigger1 = MoveType != H
trigger1 = GameTime % 60 = 0
var(12) = -1
In merito al Guard Crush (caduta della guardia) esso sarebbe un fattore dei chars che consiste nell'annullamento della guardia in seguito a una "parata" prolungata. Per meglio intendere questo fattore faccio un esempio: Goku fa un'onda energetica a Terry Bogard che la para in tempo, tuttavia Terry non riesce a prolungare la parata (l'onda energetica è di ben 60 Rush/Combo. E' n'ESEMPIO) e la sua difesa crolla. L'onda lo colpisce.
Per il Guard Crush ho trovato (sempre con "cerca" del blocco note):
; GUARD CRUSH
[Statedef 5400]
type = S
movetype = I
physics = S
ctrl = 0
anim = 5400
velset = 0,0
[State 5400, 1]
type = posadd
trigger1 = time = [0,16]
x = -1.4
[State 5400, 2]
type = PlaySnd
trigger1 = Time = 0
value = 3,6
[State 5400, 3]
type = PlaySnd
trigger1 = Time = 0
value = 9,2
[State 5400, 4]
type = BGPalFX
trigger1 = Time = 0
time = 8
add = 128,0,0
sinadd = 256,128,128,16
ignorehitpause = 1
persistent = 0
[State 5400, 5]
type = EnvShake
trigger1 = Time = 0
time = 16
ampl = 8
freq = 160
phase = 60
[State 5400, 6]
type = Explod
trigger1 = Time = 0
anim = 6210
postype = p1
pos = -32,0
scale = 1,1
sprpriority = 3
ownpal = 1
ID = 6210
[State 5400, 7]
type = Explod
trigger1 = Time = 0 && teamside = 1
anim = 8170
id = 8170
pos = 12,84
postype = Left
sprpriority = 6
scale = 0.5,0.5
bindtime = -1
removetime = 100
ontop = 1
ownpal = 1
facing = 1
persistent = 0
ignorehitpause = 1
pausemovetime = 9999999
Supermovetime = 9999999
[State 5400, 8]
type = Explod
trigger1 = Time = 0 && teamside = 2
anim = 8171
id = 8170
pos = -97,84
postype = Right
sprpriority = 6
scale = 0.5,0.5
bindtime = -1
removetime = 100
ontop = 1
ownpal = 1
facing = 1
persistent = 0
ignorehitpause = 1
pausemovetime = 9999999
Supermovetime = 9999999
[State 5400, 9]
type = VarSet
trigger1 = Time = 0
var(13) = 20;0
[State 5400,10]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1
E poi ancora:
; ŠÈˆÕƒK[ƒhƒNƒ‰ƒbƒVƒ…’lŠÇ—
; Guard Crush
[State -2,]
type = VarSet
trigger1 = var(13) = -1
var(13) = 0
[State -2,]
type = Varadd
trigger1 = MoveType != H
trigger1 = GameTime % 60 = 0
var(13) = -1
[state -2,]
type = PalFx
trigger1 = alive
trigger1 = var(13) >= 36
trigger1 = GameTime % 8 = 0
time = 4
add = 8,0,0
PalMul = 8,0,0
sinadd = 50,0,0,8
ignorehitpause = 1
Qualcuno ne sa qualcosa? E' capace a modificare ciò? Scusate per le eccessive parentesi tonde, virgolette. Sono un tipo così.
Sono nuovo al forum e: volevo dire "Ciao!"
#2
Inviato 10 November 2008 - 17:32
Essendo nuovo del forum nn ti vedo ne perso e ne disorientato nel mondo del mugen....ne sai certamente piu di me :P
Fa risp a quelli piu esperti...TIPO manic o birelhot.(o nobun XDXD)
#3
Inviato 10 November 2008 - 17:46
scusate L'OT ma chiamare esperto me e come dire a uno struzzo che sa volare (che brutto paragone XD)
Comunque per italincredibile non so molto di programmazzione di char però stò imparando... Credo che la cosa sia possibile e che molti dei valori che hai postato non c'entrino molto.
Ti consiglio nell'attesa di una risposta da un vero esperto di cercare nella sezione tutorial e se sei fortunato troverai quello che cerchi ^_^
Ah quasi dimenticavo Benvenuto
#4
Inviato 10 November 2008 - 17:47
#5
Inviato 10 November 2008 - 22:23
#6
Inviato 10 November 2008 - 23:09
PS: prima di modificare qualsiasi cosa nei tuoi char ricorda di farne sempre una copia di backup.
PS2: Io purtroppo non sono un vero e proprio esperto del settore, sono ancora alle prime armi, qui i veri esperti sono Squall e Nobun (sempre secondo me).
PS3: Benvenuto! XD
#7
Inviato 11 November 2008 - 14:47
Quote
Ti assicuro che è fattibile mi è venuto in mente pensando ai char di MK che spesso mandano in stordimento gli avversari
#8
Inviato 11 November 2008 - 15:17
#9
Inviato 11 November 2008 - 15:29
#10
Inviato 11 November 2008 - 15:39
ora, ci saranno vari modi per programmare questa cosa, al momento mi viene in mente il trigger "hitcount". posto o nel def -2 (probabilmente) o in ogni singolo colpo (meno probabile).
prova a cercare numhit all'interno del tuo char che stunna ;) e fammi sapere
Saluti
Squall
#11
Inviato 11 November 2008 - 16:06
; ƒJƒEƒ“ƒ^[ƒqƒbƒgˆ—
; counter attack
[State -2,]
type = VarSet
triggerall = !IsHelper
triggerall = Var(9) = 0
trigger1 = p2movetype = A
v = 9
value = 1
ignorehitpause = 1
[State -2,]
type = Explod
triggerall = Var(9) = 1
trigger1 = P2MoveType = H
anim = 7720
id = 7720
pos = 0,ifelse(StateType=C,-30,-60)
postype = P2
sprpriority = 5
scale = 1,1
bindtime = 1
removetime = 14
ontop = 1
ownpal = 1
facing = 1
persistent = 0
ignorehitpause = 1
pausemovetime = 9999999
Supermovetime = 9999999
[State -2,]
type = Explod
triggerall = Var(9) = 1 && teamside = 1
trigger1 = P2MoveType = H
anim = 8110
id = 8110
pos = 12,104
postype = Left
sprpriority = 6
scale = 0.5,0.5
bindtime = -1
removetime = 48
ontop = 1
ownpal = 1
facing = 1
persistent = 0
ignorehitpause = 1
pausemovetime = 9999999
Supermovetime = 9999999
[State -2,]
type = Explod
triggerall = Var(9) = 1 && teamside = 2
trigger1 = P2MoveType = H
anim = 8111
id = 8110
pos = -72,104
postype = Right
sprpriority = 6
scale = 0.5,0.5
bindtime = -1
removetime = 48
ontop = 1
ownpal = 1
facing = 1
persistent = 0
ignorehitpause = 1
pausemovetime = 9999999
Supermovetime = 9999999
[State -2,]
type = VarSet
triggerall = Var(9) = 1
trigger1 = P2MoveType != A
trigger2 = P2MoveType = H
trigger3 = HitCount > 0 <-------------------------------------------------------------------------------------
v = 9
value = 0
ignorehitpause = 1
la freccia l'ho aggiunta io per far capire dove ho trovato Hitcount. La barretta originale è
trigger3 = HitCount > 0
Aggiornamenti/edit: Ho provato a fare un piccolo esperimento: nel primo post ho postato (scusate il gioco di parole) le varie volte in cui ho trovato i .cns. Ho trovato varie volte "Stun Value Adding" mentre una sola volta ho trovato "Stun" da solo. Nello State dove sta scritto solo "Stun" ho modificato il trigger1 (l'ho fatto il backup, non c'è problema) che prima era così:
[State 5120,11] ; Stun
type = ChangeState
trigger1 = alive
trigger1 = var(12) >= 60
trigger1 = Time = 14
value = 5300
ignorehitpause = 1
ctrl = 0
e l'ho reso così:
[State 5120,11] ; Stun
type = ChangeState
trigger1 = alive
trigger1 = var(12) >= 1
trigger1 = Time = 14
value = 5300
ignorehitpause = 1
ctrl = 0
Ora ogni volta che faccio una combo da due o più colpi (che fanno cadere il personaggio) il char va in Stun. Penso di aver capito il problema dello stun ma rimane quello del Guard Crush. Ora provvedo a fare un altro esperimento.
#12
Inviato 11 November 2008 - 16:13
#13
Inviato 11 November 2008 - 16:30
Edit: L'esperimento del Guard Crush è stata una cavolata, non avevo modificato il .cns perché in realtà quando ho chiuso e il blocco note ha detto "vuoi salvare" ho schiacciato no. Ho rifatto l'esperimento mettendo a 1 lì dove ho detto prima e ora dopo non so quanti colpi la guardia crolla. Per il guard crush possiamo accantonare la cosa, in quanto per ora mi sta bene quanti colpi il char riesce a parare e quanti no. Se invece vogliamo approfondire la cosa per qualche altro utente a me sta bene. Rimane in sospeso il fatto dello stun: ora devo andare, perciò appena posso faccio altri esperimenti e vedo di capirci qualcosa. Grazie un sacco per l'aiuto ragazzi, siete grandi. A stasera, forse.
#14
Inviato 11 November 2008 - 16:39
ti dice " se la variabile 13 è maggiore o uguale a 36...
Attiva lo state in cui è posto.
non so in che state l'hai preso questo trigger, dipende da quello...ad ogni modo se hai risolto, tanto meglio ^^
Saluti
Squall
#15
Inviato 11 November 2008 - 20:49
#16
Inviato 11 November 2008 - 21:16
#17
Inviato 11 November 2008 - 21:28
i numeri negativi vengono inseriti negli STATEDEF, non nei trigger.
@ Italincredibile:
trigger1 = var(13) >= 36.
te lo spiego, cosicché tu possa capire la presenza del 36.
questo trigger dice:
Attiva il controller in cui è posto SE la variabile "13" (è un "nome", un identificazione) ha un valore maggiore o uguale a 36.
facciamo caso, che io setti nello statedef del pugno semplice che ogni volta che va in quello statedef (quindi ogni volta che premo il pugno debole) la variabile 13 aumenti il suo valore di 1.
in questo caso, il trigger su citato, attiverà il controller dove è posto solo dopo che il giocatore avrà tirato 36 volte il pugno debole.
spero di essermi chiarito... quello del pugno era solo un esempio. le variabili hanno utilizzi pressoché infiniti ;)
Saluti
Squall
#19
Inviato 11 November 2008 - 21:57
#20
Inviato 11 November 2008 - 22:27
il time, animelem...tutti positivi... forse potrebbe ammetterlo nel p2bodidist, ma non l'ho mai provato e non posso accertare che funzioni...
Saluti
Squall

Aiuto









