Página 1 de 1

Problema com o action_reload

Enviado: Seg Mar 17, 2008 10:56 pm
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   
   }
}

Enviado: Seg Mar 17, 2008 11:19 pm
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.

Re: Problema com o action_reload

Enviado: Seg Mar 17, 2008 11:43 pm
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 ^^

Enviado: Ter Mar 18, 2008 8:31 am
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

Enviado: Ter Mar 18, 2008 12:18 pm
por DuduKrazy
depois de ler com calma, eu consegui fazer a arma recarregar direito usando essa mini-gambiarra ae. valeu!