TeaM KingS
[center]Ola Convidado, seja bem vindo ao TeaM KingS !

Nós temos tutoriais sobre o WarCraft World Editor: se você tiver alguma duvida pode perguntar que os moderadores ou membros experientes vão lhe ajudar.

Para melhor utilizar nossos recursos é extremamente recomendado que esteja logado em nosso fórum e que leia o nosso regulamento oficial.

Também temos fóruns sobre DotA AllstarS, com guias, estratégias, e muito mais!




Participe do fórum, é rápido e fácil

TeaM KingS
[center]Ola Convidado, seja bem vindo ao TeaM KingS !

Nós temos tutoriais sobre o WarCraft World Editor: se você tiver alguma duvida pode perguntar que os moderadores ou membros experientes vão lhe ajudar.

Para melhor utilizar nossos recursos é extremamente recomendado que esteja logado em nosso fórum e que leia o nosso regulamento oficial.

Também temos fóruns sobre DotA AllstarS, com guias, estratégias, e muito mais!


TeaM KingS
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[AJUDA] Problema execução vjass

3 participantes

Ir para baixo

[AJUDA] Problema execução vjass Empty [AJUDA] Problema execução vjass

Mensagem por Iky 2011-09-17, 07:51

Bem, to com um problema aqui em um codigo em vjass, que, na ideia seria um knockback. Antes que venham apontando um monte de erro e/ou falhas no código, saibam que é o primeiro codígo vjass (depois do "olá mundo" ¬¬ ) que eu escrevo, e eu ainda nao tive a oportunidade de testar. Não sei se é pq eu nao coloquei um method create, que pelo que eu vi, é opcional...
Mas o problema (segundo o jhelper, copilador vjass) o problema esta em "Unexpected 'endstruct' in line tal"
A partir disto, veio a mente duas curiosidades,
1: erro com fechamendo de bloco?
2: Eu retirei o que tinha haver com struct no bloco, só para testar, e deu no mesmo erro

+ pra quem ajudar XD
Spoiler:
--------------------------------------------------------------------------------------------------------------------
Edit: mudei um pouco o codigo (colocando um metodo dentro da struct com os comandos que estavam em uma function fora, bem, agora nao da o erro na struct, mas tb nao ta testando :/
Spoiler:
Iky
Iky

Número de Posts : 2065
Data de inscrição : 06/04/2010
Reputação : 99 Pontos : 31419

Warning Necropost
[AJUDA] Problema execução vjass Left_bar_bleue10 / 10010 / 100[AJUDA] Problema execução vjass Right_bar_bleue


http://icaro.glauco

Ir para o topo Ir para baixo

[AJUDA] Problema execução vjass Empty Re: [AJUDA] Problema execução vjass

Mensagem por Luks 2011-09-19, 10:37

Código:
library KockB initializer Init
globals
   public integer Ability_KB = 'A149'
   public timer KB_Timer
endglobals

private struct Variaveis //private já que vc vai usar apenas nessa spell
   unit KBB_Caster
   integer KB_Level
   unit KB_Target
   location KB_TargetPoint
   real KB_Distance
   real KB_Time
   real KB_Avance
   location KB_AvancePoint
   real KB_Angle
   
   private method KB_ takes location up, location av, unit u,real d,real a,integer count returns nothing
      if count>0 then
         set up = GetUnitLoc(u)
         set av = PolarProjectionBJ(up,d,a-180)
         call SetUnitPositionLoc(u,av)
         call RemoveLocation(av)
         count=count-1
      endif
   endmethod
endstruct

private function Condictions takes nothing returns boolean
   return GetSpellAbilityId() == Ability_KB
endfunction

private function Actions takes nothing returns nothing
   local Variaveis vrs = Variaveis.create() //create pq allocate é apenas usado dentro da struct
   set vrs.KB_Caster = GetTriggerUnit()
   set vrs.KB_Target = GetSpellTargetUnit()
   set vrs.KB_TargetPoint = GetUnitLoc(vrs.KB_Target) //usa X/Y. não Location
   set vrs.KB_Level= GetUnitAbilityLevel(vrs.KB_Caster, Ability_KB)
   set vrs.KB_Distance = DistanceBetweenPoints(vrs.KB_CasterPoint, vrs.KB_TargetPoint)
   set vrs.KB_Time = 0.02
   set vrs.KB_Avance = vrs.KB_Distance / 10.
   set vrs.KB_Angle = GetUnitFacing(vrs.KB_Target)
   set vrs.KB_Count = 10
   
   call TimerStart(KB_Timer,vrs.KB_Time, true, function vrs.KB_(vrs.KB_Target,vrs.KB_Avance,vrs.KB_Target,vrs.KB_Avance,vrs.KB_Angle,vrs.KB_Count) )
   //isso NUNCA vai ocorrer, function callbacks não podem conter argumentos, e tirando que vc não pode usar method não static's dentro das functions callbacks
endfunction

private function Init takes nothing returns nothing
   local trigger Trg = CreateTrigger()
   call TriggerRegisterAnyUnitEventBJ(Trg, EVENT_PLAYER_UNIT_SPELL_EFFECT)
   call TriggerAddCondition(Trg,function Condictions)
   call TriggerAddAction(Trg, function Actions)
endfunction
endlibrary

PS: tente sempre alinhar o código de uma maneira legível

A é... coloque esse código acima no editor pra ver os comentários e onde está o erro Smile

pra resolver a parte do callback, vc vai precisar usar um static method, eu aconselho vc usar algum sistema de timer que seria mais fácil de fazer isso

Luks

Número de Posts : 17
Data de inscrição : 31/08/2010
Reputação : 1 Pontos : 25972

Warning Necropost
[AJUDA] Problema execução vjass Left_bar_bleue0 / 1000 / 100[AJUDA] Problema execução vjass Right_bar_bleue


Ir para o topo Ir para baixo

[AJUDA] Problema execução vjass Empty Re: [AJUDA] Problema execução vjass

Mensagem por Bills 2011-09-20, 01:28

Como laiev mostrou, seu maior erro ali foi a function de callback a do TimerStart. Use recicler ou TimerUtils (qualquer um desses systems que ajuda a resolver seu problema). Só para falar que não disse nada de interessante, na sua function Init coloque no final dela: "set Trg = null". Para anular a local variavel.

Parabens iky por ter começado aprender vJass, continue assim =D

@EDIT

No passado quando ensinei vJass à um noob do BlizzEditors fiz esse MAPA mostrando para ele como se faz um simples knockback com structs. Espero que possa te ajudar também. o/
Bills
Bills

Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 32044

Warning Necropost
[AJUDA] Problema execução vjass Left_bar_bleue35 / 10035 / 100[AJUDA] Problema execução vjass Right_bar_bleue


Ir para o topo Ir para baixo

[AJUDA] Problema execução vjass Empty Re: [AJUDA] Problema execução vjass

Mensagem por Iky 2011-09-20, 08:21

vlw bills, vi seu map, legal, aprendi o que eu tava confuso, em como "reconhecer" a struct em outra function, vlw
Iky
Iky

Número de Posts : 2065
Data de inscrição : 06/04/2010
Reputação : 99 Pontos : 31419

Warning Necropost
[AJUDA] Problema execução vjass Left_bar_bleue10 / 10010 / 100[AJUDA] Problema execução vjass Right_bar_bleue


http://icaro.glauco

Ir para o topo Ir para baixo

[AJUDA] Problema execução vjass Empty Re: [AJUDA] Problema execução vjass

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos