Problema com o action_reload

ACS, DECORATE, Especial Lumps, Sprites e coisas específicas de cada source port serão postadas aqui!
DuduKrazy
Mensagens: 619
Registrado em: Qui Mar 08, 2007 10:46 pm
Answers: 0
17

Problema com o action_reload

Mensagem por DuduKrazy »

estou trabalhando em um wad conceito, e eu consegui implementar o sistema action_reload. só que embora a arma recarregue normalmente, quando eu vou apertar o botão pra recarregar a arma, não acontece nada. ela só recarrega quando eu atiro até a munição do pente acabar.

Aqui está o código da arma.

Código: Selecionar todos

ACTOR Glock19 : Weapon replaces Pistol
{
   Inventory.PickupMessage "Glock 19"
   Inventory.PickupSound "misc/w_pkup"
   Weapon.AmmoGive 0
   Weapon.AmmoGive2 1
   Weapon.AmmoType1 "Glock19Ammo"
   Weapon.AmmoType2 "Glock19Clips"
   Weapon.Ammouse 1
   Weapon.Kickback 40
   +NOAUTOFIRE
   +AMMO_OPTIONAL
   Scale 0.10
   States
   {
   Spawn:
      GL19 A -1
      LOOP
   Ready: 
      GLCK A 1 A_WeaponReady
      GLCK A 0 A_JumpIfInventory("IsReloading",1,"Reload")
      LOOP
   Deselect: 
      GLCK A 1 A_Lower
      LOOP
   Select: 
      GLCK A 1 A_Raise
      LOOP
   Fire:
      GLCK B 0 A_JumpIfNoAmmo(11)
      GLCK B 0 A_Light1
      GLCK B 0 A_PlayWeaponSound("weapons/glock19fire")
      GLCK B 1 Bright A_FireBullets(2,2,-1,5.2,1,1)
      GLCK C 0 A_Light2
      GLCK C 1 Bright
      GLCK D 0 A_Light0
      GLCK D 0 ACS_Execute(287,0,20,random(2,4),0)
      GLCK EFG 1
      Goto Ready
      GLEM A 1 A_Playsound("weapons/glock19dryfire") 
      GLEM BCD 1 
      GLEM A 2
   Reload: 
      TNT1 A 0 A_JumpIfInventory("Glock19Ammo",6,2) 
      TNT1 A 0 A_JumpIfInventory("Glock19Clips",1,2) 
      TNT1 A 0 
      Goto Ready 
      TNT1 A 0 A_TakeInventory("Glock19Ammo",999) 
      GLCR A 2 
      GLCR A 0 A_PlaySound("weapons/glockmagout")  
      GLCR BCDEFGHIJ 2  
      GLCR K 1 A_PlaySound("weapons/glockmagin") 
      GLCR K 0 A_TakeInventory("Glock19Clips",1) 
      GLCR K 0 A_GiveInventory("Glock19Ammo",999) 
      GLCR LMNOP 2
      Goto Ready   
   }
}
Syshigher
Mensagens: 311
Registrado em: Dom Abr 15, 2007 11:14 am
Answers: 0
17

Mensagem por Syshigher »

Não entendo muito de DECORATE, mas tu definiu a tecla no keyconf? o_O'
Qualquer coisa consulte o DECORATE do Zen Dynamics ou do tech demo 3 do d3ongzd como referência.
Mauricio Rocks
Mensagens: 779
Registrado em: Sex Jan 05, 2007 3:55 am
Answers: 0
17

Re: Problema com o action_reload

Mensagem por Mauricio Rocks »

DuduKrazy escreveu:estou trabalhando em um wad conceito, e eu consegui implementar o sistema action_reload.
Cool!! :wink:
DuduKrazy escreveu:só que embora a arma recarregue normalmente, quando eu vou apertar o botão pra recarregar a arma, não acontece nada. ela só recarrega quando eu atiro até a munição do pente acabar.
Eu sei por que! é que no msn vc naum se mostroou mto interessado então eu não expliquei tudo a risca xD

pelo que eu percebi, você não quer reload automatico certo? vc quer que qdo a bala acabe faça um barulho de tiro 'seco' e o cara seja obrigado a carregar manualmente, certo?

a unica coisa que você precisa fazr é colcoar um codigo no keyconf:

Código: Selecionar todos

addkeysection "MOME DA SUA KEYSECTION" nomedaseuakeysection

addmenukey "Reload" reload // colocar tecla no menu do ZDoom
alias reload "puke xx" // xx igual ao numero de um script ACS que de um item "IsReloading" para o player
defaultbind R reload // binda o R para o reload
E, agora, pela lógica o reload iria ficar loopando, por isso precisamos dar um jeito do actor "IsReloading" sumir qdo entra no state Reload, entendeu? podemos fazr assim:

Código: Selecionar todos

ACTOR Glock19 : Weapon replaces Pistol
...

   Reload:
      [b]TNT1 A 0 A_TakeInventory("IsReloading",999)[/b]
      TNT1 A 0 A_JumpIfInventory("Glock19Ammo",6,2) 
      TNT1 A 0 A_JumpIfInventory("Glock19Clips",1,2) 
      TNT1 A 0 
      Goto Ready 
      TNT1 A 0 A_TakeInventory("Glock19Ammo",999) 
      GLCR A 2 
      GLCR A 0 A_PlaySound("weapons/glockmagout")  
      GLCR BCDEFGHIJ 2  
      GLCR K 1 A_PlaySound("weapons/glockmagin") 
      GLCR K 0 A_TakeInventory("Glock19Clips",1) 
      GLCR K 0 A_GiveInventory("Glock19Ammo",999) 
      GLCR LMNOP 2
      Goto Ready   
   }
}



anyway, se quiser um reload automatico como as armas do Dark Base, me fala que eu te explico como, mas não é muito diferente disso ai não ^^



mas só uma pergunta: tem como essa arma recarregar o numero certo de munição? tipo, se o cara tem 5 balas sobrando e aperta o reload ele vai carregar soh as que faltam ou vai regarregar tudo? as armas do DB funcionam perfeitamente nesse sentido, deu mó trabalho pra eu descobrir como fazr, mas se quiser o codigo, eu te passo ^^
DuduKrazy
Mensagens: 619
Registrado em: Qui Mar 08, 2007 10:46 pm
Answers: 0
17

Mensagem por DuduKrazy »

Eu sei por que! é que no msn vc naum se mostroou mto interessado então eu não expliquei tudo a risca xD
realmente não estava interessado mas eu falei que isso ficaria para o DuduKrazy's Guns 4.

Código: Selecionar todos

SetSlot 0 Glock19

addkeysection "DuduKrazy's Guns 4" dkgunskeys                    
addmenukey "Reload" +dkguns_reload                    
alias +dkguns_reload "use Action_Reload" 
alias -dkguns_reload "use Action_ReloadCancel" 
defaultbind r +dkguns_reload
DuduKrazy
Mensagens: 619
Registrado em: Qui Mar 08, 2007 10:46 pm
Answers: 0
17

Mensagem por DuduKrazy »

depois de ler com calma, eu consegui fazer a arma recarregar direito usando essa mini-gambiarra ae. valeu!

Voltar para “Scripts, Sprites, Lumps...”