[TUTORIAL] MUI - Básico
+6
mgzaun
VicToR
aldonova
Ice_Crowner
GuLider
Bills
10 participantes
TeaM KingS :: Games: :: Warcraft: World Editor :: Tutoriais: Gui, Jass, Spells, Terrain, Modelagem, Textura :: Triggers(GUI)
Página 2 de 2
Página 2 de 2 • 1, 2
[TUTORIAL] MUI - Básico
Relembrando a primeira mensagem :
Eai garotada, venho aqui ensinar como fazer, de um jeito super simples, magias MUI. No final do tutorial tem um mapa demo. Mas deixe para baixa-lo apenas depois do tutorial, tente fazer nossa magia MUI apenas lendo o tutorial.
Nesse tutorial você terá que saber sobre variáveis array e sobre memory leaks, coisas importantes para quem quer aprender MUI.
Mas tio Bills o que é MUI?
MUI na teoria significa Multi-Unit Instanceability. Na prática significa qualquer coisa (não apenas magias) que possa ser usada por vários jogadores e unidades, diferentes ou iguais, ao mesmo tempo sem bugar.
E como eu faço isso?
É muito simples, jovem gafanhoto. Vou te ensinar pelo jeito mais fácil em GUI, a indexagem. Para quem não sabe o que é indexagem, é um jeito organizar dados de forma que você possa recupera-los através de seu index (um numero de referencia). É como se você fizesse uma “matriz” de dados ou uma lista.
Vendo essa tabela imaginem uma trigger que roda a cada 1 segundo. Toda vez que ela roda ela busca todos os index, do primeiro (1) ao ultimo (3), Fazendo o CASTER[index] causar o DAMAGE_PER_SECOND[index] ao TARGET[index]. Assim quando o index ser 1, o CASTER[1] (Paladin) vai causar DAMAGE_PER_SECOND[1] (30) ao TARGET[1] (Death Knight), quando ser 2 seria... ah, só olhar na tabela.
E como faríamos para saber qual é o primeiro index, o ultimo e como faríamos a trigger procurar por todos. Para isso usaremos o comando “For”.
Vamos começar então?
Para ensinar MUI vou dar um exemplo bem fácil, vamos criar uma shockwave MUI \o/. Eu sei que a shockwave do warcraft já é MUI, mas quero apenas usa-la como exemplo. Para criar uma shockwave totalmente triggered precisaríamos de uma dummy (que seria a wave/efeito), um trigger para inicia-la e também um trigger periodic (que ocorra a cada “0.03” segundos). Sem MUI, precisaríamos apenas de criar algumas variáveis, armazenar alguns dados nas variáveis quando a magia fosse usada, criar a dummy e armazena-la, mandar ativar a periodic, depois a periodic faria a dummy mover. E todos seriamos felizes, mas queremos mais, queremos MUI!
Tá, e como vai ser em MUI ?
Seria quase a mesma coisa, apenas teríamos que criar um novo index e armazenar os dados daquela execução da magia em variáveis “array” usando esse novo index.
Obs: Para o tutorial usarei a sigla SW para referir a shockwave.
Vamos lá, crie essas variáveis:
SW_indexCount (Integer – Default Value: 0)
SW_newIndex (Integer – Default Value: 0)
SW_MUI_indexExists (Boolean – array – Size: 1 – Default Value: 0)
SW_MUI_waveCount (Integer – Default Value: 0)
SW_MUI_Dummy (Unit – array – Size: 1 – Default Value: 0)
SW_MUI_Distance (Real – array – Size: 1 – Default Value: 0)
SW_Loop (Integer – Default Value: 0)
Obs: outras variáveis vão aparecer no tutorial, tipo TempUnit. Com essas você pode usar alguma que já tenha ou crie elas se precisar.
Nossa magia vai começar sempre que uma unidade usar a SW. Ops, já ia me esquecendo, crie uma dummy com locust e mude o modelo dela para o míssil da Shockwave, que vou chamar de SW Dummy, e crie também uma magia shockwave (retire todos efeitos e damage). Vamos lá, quando alguém usar a nossa shockwave custom, o trigger criará um novo index e assim armazenaremos todas as informações em nossas variáveis array usando nosso novo index.
Toda vez que a magia for usada, a SW_indexCount vai ganhar +1 e a SW_newIndex guardará esse novo valor de SW_indexCount. Assim, toda que a magia for usada SW_indexCount vai aumentar seu valor, ficando toda vez diferente. Usaremos SW_MUI_indexExists para saber se a index existe (usaremos ela parar fazer a magia acontecer), se ela for true é porque o index existe e está sendo usado. A SW_MUI_waveCount vai contar quantas waves (dummy) estão se movendo ainda, ou seja, quatas SW ainda estão em andamento.
Continuando nossa trigger, agora armazenaremos nossas informações e criaremos a dummy. Nessa parte uso algumas variáveis extras para adquirir valores e também para pegar um ângulo.
Obs: essa “Shockwave MUI movement” é nossa próxima trigger, crie ela antes de fazer essa parte.
Criando uma Periodic com Indexagem
Agora temos que fazer que todas as magias registradas no index de SW_indexCount seja movidas e causem dano nas unidades inimigas. Não vou explicar como se move uma dummy, não estou fazendo tutorial disso.
Vamos lá, faça uma trigger chamada “Shockwave MUI movement” e desmarque a opção “Initally On”.
No evento use “Time – Periodic Event”, coloque 0.03. Nenhuma condição.
Agora faça o resto da trigger:
Primeiro vou explicar o “for”, talvez tenha gente lendo isso que não entende ainda. O “for” no GUI pode usar Integer A, Integer B ou uma Integer a sua escolha (como no nosso caso). “For each” significa “Para cada”, Para cada inteiro (integer) de 1 até SW_indexCount (numero de index já usados) ele executará as functions no “Loop – Actions”. Ou seja, se a gente já tiver usado 3 indexs, ele executará ... ? 1 vez, 2 vezes, 3 vezes. 1 vez para cada index. A variável SW_Loop que foi nosso integer escolhido irá ter o valor 1 na 1ª execução, 2 na 2ª , 3 na 3ª e etc. Assim podemos buscar todos as informações guardadas nas nossas variáveis array.
O primeiro “if”, SW_MUI_indexExists[SW_Loop] Equal to True (verdadeiro), serve para saber se o index existe e está sendo usado. Se der false (falso) é porque o index já foi usado, mas não está mais.
O próximo if é “SW_MUI_Distance[SW_Loop] less than 1500”, se a distancia percorrida pela wave daquele index ainda é menor que 1500 (nossa distancia máxima), o trigger executa o que está dentro de “Then - Actions”. Ou Se a distancia for “maior ou igual” a 1500 executa o que está dentro do “Else - Actions”. Um if sempre executa apenas um bloco (Then ou Else), nunca os dois.
Se a distancia for menor que 1500 a dummy irá mover mais 50 de distancia, até chegar no máximo (1500). Senão (else) o index dela será marcado que não existe (não está mais em uso), a dummy será destruída e SW_waveCount será subtraído 1. Lembrando que SW_MUI_waveCount conta quantas waves estão ativas no mapa.
Lá no final temos um “if”, reparem que ele está fora do “for”, ou seja, ele só será executado quando o for (daquela execução do trigger) terminar. Esse for determina, se a SW_MUI_waveCount for igual a 0 (zero), desativa esse trigger (o periodic), pois não tem nenhuma wave ativa. Só precisamos que ela fique “ligada” quando tiver waves. Lembra que quando uma unidade usar nossa SW, se a periodic estiver “off” ela é ligada, lembrou? E pra finalizar SW_indexCount volta pra 0 (zero), pois nenhum index está sendo utilizado, então ele terá novamente o valor inicial.
Nesse tutorial eu quis explicar apenas o básico de como fazer uma habilidade MUI, vocês podem se esforçar e ainda aprender sobre reciclagem de index. Procurem baixar mapas de magias no Hive WorkShop, geralmente as magias são todas MUI. Aé, caso você ficou com alguma duvida em alguma parte, baixe o Mapa de demonstração e veja nele. Nesse mapa coloquei duas shockwaves, uma MUI e uma não-MUI, para você verem o que pode acontecer quando uma magia não é MUI e ela é executada varias vezes ao mesmo tempo. No mapa as magias não tem cooldown nem mana cost, então usem varias vezes de uma vez cada shockwave e verá o que é ser MUI.
Espero ajudar alguns com esse tutorial,beijos e abraços do Mano Bills!
Como fazer magias MUI (básico)
Eai garotada, venho aqui ensinar como fazer, de um jeito super simples, magias MUI. No final do tutorial tem um mapa demo. Mas deixe para baixa-lo apenas depois do tutorial, tente fazer nossa magia MUI apenas lendo o tutorial.
Nesse tutorial você terá que saber sobre variáveis array e sobre memory leaks, coisas importantes para quem quer aprender MUI.
Mas tio Bills o que é MUI?
MUI na teoria significa Multi-Unit Instanceability. Na prática significa qualquer coisa (não apenas magias) que possa ser usada por vários jogadores e unidades, diferentes ou iguais, ao mesmo tempo sem bugar.
E como eu faço isso?
É muito simples, jovem gafanhoto. Vou te ensinar pelo jeito mais fácil em GUI, a indexagem. Para quem não sabe o que é indexagem, é um jeito organizar dados de forma que você possa recupera-los através de seu index (um numero de referencia). É como se você fizesse uma “matriz” de dados ou uma lista.
Vendo essa tabela imaginem uma trigger que roda a cada 1 segundo. Toda vez que ela roda ela busca todos os index, do primeiro (1) ao ultimo (3), Fazendo o CASTER[index] causar o DAMAGE_PER_SECOND[index] ao TARGET[index]. Assim quando o index ser 1, o CASTER[1] (Paladin) vai causar DAMAGE_PER_SECOND[1] (30) ao TARGET[1] (Death Knight), quando ser 2 seria... ah, só olhar na tabela.
E como faríamos para saber qual é o primeiro index, o ultimo e como faríamos a trigger procurar por todos. Para isso usaremos o comando “For”.
- Spoiler:
Vamos começar então?
Para ensinar MUI vou dar um exemplo bem fácil, vamos criar uma shockwave MUI \o/. Eu sei que a shockwave do warcraft já é MUI, mas quero apenas usa-la como exemplo. Para criar uma shockwave totalmente triggered precisaríamos de uma dummy (que seria a wave/efeito), um trigger para inicia-la e também um trigger periodic (que ocorra a cada “0.03” segundos). Sem MUI, precisaríamos apenas de criar algumas variáveis, armazenar alguns dados nas variáveis quando a magia fosse usada, criar a dummy e armazena-la, mandar ativar a periodic, depois a periodic faria a dummy mover. E todos seriamos felizes, mas queremos mais, queremos MUI!
Tá, e como vai ser em MUI ?
Seria quase a mesma coisa, apenas teríamos que criar um novo index e armazenar os dados daquela execução da magia em variáveis “array” usando esse novo index.
Obs: Para o tutorial usarei a sigla SW para referir a shockwave.
Vamos lá, crie essas variáveis:
SW_indexCount (Integer – Default Value: 0)
SW_newIndex (Integer – Default Value: 0)
SW_MUI_indexExists (Boolean – array – Size: 1 – Default Value: 0)
SW_MUI_waveCount (Integer – Default Value: 0)
SW_MUI_Dummy (Unit – array – Size: 1 – Default Value: 0)
SW_MUI_Distance (Real – array – Size: 1 – Default Value: 0)
SW_Loop (Integer – Default Value: 0)
Obs: outras variáveis vão aparecer no tutorial, tipo TempUnit. Com essas você pode usar alguma que já tenha ou crie elas se precisar.
Nossa magia vai começar sempre que uma unidade usar a SW. Ops, já ia me esquecendo, crie uma dummy com locust e mude o modelo dela para o míssil da Shockwave, que vou chamar de SW Dummy, e crie também uma magia shockwave (retire todos efeitos e damage). Vamos lá, quando alguém usar a nossa shockwave custom, o trigger criará um novo index e assim armazenaremos todas as informações em nossas variáveis array usando nosso novo index.
Toda vez que a magia for usada, a SW_indexCount vai ganhar +1 e a SW_newIndex guardará esse novo valor de SW_indexCount. Assim, toda que a magia for usada SW_indexCount vai aumentar seu valor, ficando toda vez diferente. Usaremos SW_MUI_indexExists para saber se a index existe (usaremos ela parar fazer a magia acontecer), se ela for true é porque o index existe e está sendo usado. A SW_MUI_waveCount vai contar quantas waves (dummy) estão se movendo ainda, ou seja, quatas SW ainda estão em andamento.
Continuando nossa trigger, agora armazenaremos nossas informações e criaremos a dummy. Nessa parte uso algumas variáveis extras para adquirir valores e também para pegar um ângulo.
- Spoiler:
Obs: essa “Shockwave MUI movement” é nossa próxima trigger, crie ela antes de fazer essa parte.
Criando uma Periodic com Indexagem
Agora temos que fazer que todas as magias registradas no index de SW_indexCount seja movidas e causem dano nas unidades inimigas. Não vou explicar como se move uma dummy, não estou fazendo tutorial disso.
Vamos lá, faça uma trigger chamada “Shockwave MUI movement” e desmarque a opção “Initally On”.
No evento use “Time – Periodic Event”, coloque 0.03. Nenhuma condição.
Agora faça o resto da trigger:
- Spoiler:
Primeiro vou explicar o “for”, talvez tenha gente lendo isso que não entende ainda. O “for” no GUI pode usar Integer A, Integer B ou uma Integer a sua escolha (como no nosso caso). “For each” significa “Para cada”, Para cada inteiro (integer) de 1 até SW_indexCount (numero de index já usados) ele executará as functions no “Loop – Actions”. Ou seja, se a gente já tiver usado 3 indexs, ele executará ... ? 1 vez, 2 vezes, 3 vezes. 1 vez para cada index. A variável SW_Loop que foi nosso integer escolhido irá ter o valor 1 na 1ª execução, 2 na 2ª , 3 na 3ª e etc. Assim podemos buscar todos as informações guardadas nas nossas variáveis array.
O primeiro “if”, SW_MUI_indexExists[SW_Loop] Equal to True (verdadeiro), serve para saber se o index existe e está sendo usado. Se der false (falso) é porque o index já foi usado, mas não está mais.
O próximo if é “SW_MUI_Distance[SW_Loop] less than 1500”, se a distancia percorrida pela wave daquele index ainda é menor que 1500 (nossa distancia máxima), o trigger executa o que está dentro de “Then - Actions”. Ou Se a distancia for “maior ou igual” a 1500 executa o que está dentro do “Else - Actions”. Um if sempre executa apenas um bloco (Then ou Else), nunca os dois.
Se a distancia for menor que 1500 a dummy irá mover mais 50 de distancia, até chegar no máximo (1500). Senão (else) o index dela será marcado que não existe (não está mais em uso), a dummy será destruída e SW_waveCount será subtraído 1. Lembrando que SW_MUI_waveCount conta quantas waves estão ativas no mapa.
Lá no final temos um “if”, reparem que ele está fora do “for”, ou seja, ele só será executado quando o for (daquela execução do trigger) terminar. Esse for determina, se a SW_MUI_waveCount for igual a 0 (zero), desativa esse trigger (o periodic), pois não tem nenhuma wave ativa. Só precisamos que ela fique “ligada” quando tiver waves. Lembra que quando uma unidade usar nossa SW, se a periodic estiver “off” ela é ligada, lembrou? E pra finalizar SW_indexCount volta pra 0 (zero), pois nenhum index está sendo utilizado, então ele terá novamente o valor inicial.
Nesse tutorial eu quis explicar apenas o básico de como fazer uma habilidade MUI, vocês podem se esforçar e ainda aprender sobre reciclagem de index. Procurem baixar mapas de magias no Hive WorkShop, geralmente as magias são todas MUI. Aé, caso você ficou com alguma duvida em alguma parte, baixe o Mapa de demonstração e veja nele. Nesse mapa coloquei duas shockwaves, uma MUI e uma não-MUI, para você verem o que pode acontecer quando uma magia não é MUI e ela é executada varias vezes ao mesmo tempo. No mapa as magias não tem cooldown nem mana cost, então usem varias vezes de uma vez cada shockwave e verá o que é ser MUI.
Espero ajudar alguns com esse tutorial,
Download Mapa Demo
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 32039
Re: [TUTORIAL] MUI - Básico
Entao clica em outra mensagem dele, qual quer uma. ;D
VicToR- Número de Posts : 2002
Data de inscrição : 19/12/2010
Reputação : 243 Pontos : 27815
mgzaun- Número de Posts : 138
Data de inscrição : 11/05/2011
Reputação : 4 Pontos : 24915
Re: [TUTORIAL] MUI - Básico
VLW BIIILLLLSSS!!!
QUERIA MUITO FAZER SPELL COM DMG POR SEGUNDO
(E acho que só é possivel por MUI né?)
VLW MESMO MAN! +REP !!!
QUERIA MUITO FAZER SPELL COM DMG POR SEGUNDO
(E acho que só é possivel por MUI né?)
VLW MESMO MAN! +REP !!!
Staar.- Número de Posts : 408
Data de inscrição : 24/07/2010
Reputação : 14 Pontos : 26918
Re: [TUTORIAL] MUI - Básico
Bills, uma dúvida, lembro que já tinha perguntado algo extremamente parecido, mas só comecei a mecher com MUI "pra valer" agora.
Eu posso usar quantos "for each integer A" eu quizer em triggers separadas em vários assuntos diferentes, em triggers separadas eu posso usar quantos eu quizer, só não funciona tendo dois sobre assuntos diferentes na mesma trigger?
Essa é minha dúvida xP básica mas crucial..
Eu posso usar quantos "for each integer A" eu quizer em triggers separadas em vários assuntos diferentes, em triggers separadas eu posso usar quantos eu quizer, só não funciona tendo dois sobre assuntos diferentes na mesma trigger?
Essa é minha dúvida xP básica mas crucial..
Re: [TUTORIAL] MUI - Básico
Eu sei que a pergunta nao foi pra mim, mas foi o proprio bills que me disse isso, Nao use Integer A em magias, crie uma variavel propria (integer) e use como Loop.
VicToR- Número de Posts : 2002
Data de inscrição : 19/12/2010
Reputação : 243 Pontos : 27815
Re: [TUTORIAL] MUI - Básico
Existe Integer A e Integer B para que se voce precisar um for dentro de um mesmo for, voce use Integer A dentro de Integer B (apenas exemplo). Nunca se deve usar for de Integer A dentro de um for de Integer A, o mesmo para o Integer B e para qualquer outra variavel que voce usar. Mas voce pode usar um for quantas vezes quiser, contando que esse não esteja dentro dele mesmo.
Mas como o Victor disse, para periodicas de magia (que executam quase toda hora) é aconselhavel usar uma variavel própria para o for daquela magia.
- Spoiler:
- Código:
Varios Fors
Events
Map initialization
Conditions
Actions
For each (Integer A) from 1 to 3, do (Actions)
Loop - Actions
Game - Display to (All players) the text: Primeiro FOR
For each (Integer A) from 1 to 3, do (Actions)
Loop - Actions
Game - Display to (All players) the text: Segundo FOR
For each (Integer A) from 1 to 3, do (Actions)
Loop - Actions
Game - Display to (All players) the text: Terceiro FOR
Mas como o Victor disse, para periodicas de magia (que executam quase toda hora) é aconselhavel usar uma variavel própria para o for daquela magia.
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 32039
Re: [TUTORIAL] MUI - Básico
Iae Bills, sussa? Decidi tentar fazer uma spell, ela normal funciona certin, só q qnto tentei passar pra mui n :S da té um bug q a dummy se move mais rápido, aqui estão as triggers. Se vc ou alguem puder me ajudar ;D
Ice_Crowner- Número de Posts : 1111
Data de inscrição : 19/09/2010
Reputação : 43 Pontos : 27207
Re: [TUTORIAL] MUI - Básico
Ice_Crowner escreveu:Iae Bills, sussa? Decidi tentar fazer uma spell, ela normal funciona certin, só q qnto tentei passar pra mui n :S da té um bug q a dummy se move mais rápido, aqui estão as triggers. Se vc ou alguem puder me ajudar ;D
Bem, pelo que eu vi aqui...
Não tem necessidade de usar o NewIndex, você pode fazer Caster[Index] no lugar de Caster[NewIndex].
Você está esquecendo do ''Count'' e do ''Exists''.
Acho que ali no último IF é less than or equal to, o Cast_Point é o Target point ability cast e o Dummy Point é a Position of Dummy, então, pra remover a dummy, a distância entre esses 2 points teria que ser menor ou igual a ''75.00' por exemplo...
Dá uma olhada no mapa demo que ele deixou lá no post, da uma estudada na lógica dos triggers
VicToR- Número de Posts : 2002
Data de inscrição : 19/12/2010
Reputação : 243 Pontos : 27815
Re: [TUTORIAL] MUI - Básico
aff eu fiz isso q vc falou e travou o war3 hahaha q bom q existe ctrl+alt+del.
Esse negócio de MUI ainda ta foda pra mim :S n understendo
Esse negócio de MUI ainda ta foda pra mim :S n understendo
Ice_Crowner- Número de Posts : 1111
Data de inscrição : 19/09/2010
Reputação : 43 Pontos : 27207
Re: [TUTORIAL] MUI - Básico
Tava passando por aqui e resolvi te ajudar ice crowner...
Primeiramente Feliz Ano novo XD
Bom... vamos lá:
- Não precisa usar o New Index mesmo, apenas almente o index em +1 e use ele no index das variaveis do trigger Start.
- Vc ta precisando saber quantas magias estão sendo usadas. Uma variavel que no meu tutorial é a "Count". E tambem é bom ter uma boolean "Exists". Coisas que o victor disse ai em cima.
- Seu for devia ser: For Each (Integer Index_Loop) from 1 to Index...
Esse Index_Loop é uma integer que vc vai usar no index de todas do For no lugar da NewIndex.
- Voce só deve usar o "turn off trigger" se vc souber que nenhuma magia ta ativa no jogo. Ou seja, quando o "Count" (citado anteriormente) ser 0 (zero).
Algumas coisas vc talvez achara complicado, mas apenas tente entender o tutorial por completo. As variaveis que citei no tutorial são importantes, não omita nenhuma. Futuramente vc pode até aprender novos jeitos de fazer MUI, esse que ensino é o mais simples, por indexagem.
Primeiramente Feliz Ano novo XD
Bom... vamos lá:
- Não precisa usar o New Index mesmo, apenas almente o index em +1 e use ele no index das variaveis do trigger Start.
- Vc ta precisando saber quantas magias estão sendo usadas. Uma variavel que no meu tutorial é a "Count". E tambem é bom ter uma boolean "Exists". Coisas que o victor disse ai em cima.
- Seu for devia ser: For Each (Integer Index_Loop) from 1 to Index...
Esse Index_Loop é uma integer que vc vai usar no index de todas do For no lugar da NewIndex.
- Voce só deve usar o "turn off trigger" se vc souber que nenhuma magia ta ativa no jogo. Ou seja, quando o "Count" (citado anteriormente) ser 0 (zero).
Algumas coisas vc talvez achara complicado, mas apenas tente entender o tutorial por completo. As variaveis que citei no tutorial são importantes, não omita nenhuma. Futuramente vc pode até aprender novos jeitos de fazer MUI, esse que ensino é o mais simples, por indexagem.
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 32039
Re: [TUTORIAL] MUI - Básico
VicToR ;D escreveu:mgzaun escreveu:tipo , eu não sou de usar arrays , quando eu faço mais de uma unidade em variavel eu crio outra pra ficar + facil pra mim msm entender ( por exemplo , eu crio uma spell com um target e um caster , eu não crio uma variavel com 2 arrays e sim duas variaveis pra eu entender melhor ) , sendo assim é possivel ter MUI?
Assim é impossivel o_O
mentira vc consegue fzr sim só que se 500 unidades forem usar essa magia você vai pressisar fazer o numero de triggers x 500
e o numero de variaveis x 500 simples não ? ^^
)___________________________________________________
alguem pode me explicar pq issso só funciona com integer B
For each (Integer B) from 1 to MaiorPlayer, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Triggering player) Equal to (Player((Integer B)))
gatilhoon[(Integer B)] Equal to 0.00
Then - Actions
Set cameraon[(Integer B)] = 0.00
Wait 0.10 seconds
Set heroplayer[(Integer B)] = (Triggering unit)
Skip remaining actions
Else - Actions
Do nothing
se eu trocar essa integer B por integer A não funciona.
pode acontecer de mais triggers d einteger A bugarem e eu ter trocar para integer B ?
pode acontecer de bugar no decorrer de um jogo ?
_______________________
2ª duvida
Bills escreveu:Toda variavel que voce criar no seu Trigger Editor, em jass (custom script) ela terá o nome de udg_SuaVariável. Veja como ficaria seu código:
call RemoveLocation(udg_TempLoc[udg_Index])
Caso bata curiosidade, UDG significa USER DEFINED GLOBAL (global definida pelo usuário). =D
eu keria fazer isso ai só q eu fiz desse jeito (eu q fiz por isso q deve ta errado, tirei a ideia convertendo em custom text)
Custom script: call RemoveLocation (udg_Pan[GetForLoopIndexA()])
será q esse jeito que eu fiz buga ?????
fg8d78e48sro- Número de Posts : 1073
Data de inscrição : 07/11/2011
Reputação : 63 Pontos : 26735
Re: [TUTORIAL] MUI - Básico
1- quando vc coloca integerA vc muda as arrays ali em baixo para integerA ? pq se nao, ... a unica diferença entre integerA e integerB é o nome :/
2- é pq tem um espaço entre o RemoveLocation e o (
2- é pq tem um espaço entre o RemoveLocation e o (
Re: [TUTORIAL] MUI - Básico
1. não é não quando eu usava integer A ele bugava e num lia
ai eu mudei tudo para integer B e funcionou eu keria saber porque disso.
2. é ta tudo errada msm eu num disse q fui eu q fiz ...
algume ai pode me passar como é o certo .
o nome da variavel é Pan (variavel point array 12) e eu kero apagar a index dela q seje em numero o integerA
PS : A DUVIDA 1 NÃO TEM RELAÇÃO COM A 2 POIS ELAS ESTÃO EM MAPAS DIFERENTES
ai eu mudei tudo para integer B e funcionou eu keria saber porque disso.
2. é ta tudo errada msm eu num disse q fui eu q fiz ...
algume ai pode me passar como é o certo .
o nome da variavel é Pan (variavel point array 12) e eu kero apagar a index dela q seje em numero o integerA
PS : A DUVIDA 1 NÃO TEM RELAÇÃO COM A 2 POIS ELAS ESTÃO EM MAPAS DIFERENTES
fg8d78e48sro- Número de Posts : 1073
Data de inscrição : 07/11/2011
Reputação : 63 Pontos : 26735
Re: [TUTORIAL] MUI - Básico
1-a unica forma de integer A buga como vc falou e nao buga com integer B é se for um loop dentro de outro
2-
call RemoveLocation(udg_Pan[12])
se for com integer A
call RemoveLocation(udg_Pan[GetForLoopIndexA()])
2-
call RemoveLocation(udg_Pan[12])
se for com integer A
call RemoveLocation(udg_Pan[GetForLoopIndexA()])
Re: [TUTORIAL] MUI - Básico
mais Iky acontece que por um motivo MITICO a integer A bugou sem tar dentro de outra integer (ela era a unica coisa na action)
e quando troquei para integer B funcionou
e quando troquei para integer B funcionou
fg8d78e48sro- Número de Posts : 1073
Data de inscrição : 07/11/2011
Reputação : 63 Pontos : 26735
Re: [TUTORIAL] MUI - Básico
vc pode copiar o codigo em jass da trigger e mandar ai? quero dar uma olhada ^^
Re: [TUTORIAL] MUI - Básico
function Trig_Gatilho_Conditions takes nothing returns boolean
if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_STRUCTURE) == false ) ) then
return false
endif
if ( not ( GetOwningPlayer(GetTriggerUnit()) == GetTriggerPlayer() ) ) then
return false
endif
return true
endfunction
function Trig_Gatilho_Func001Func001C takes nothing returns boolean
if ( not ( GetTriggerPlayer() == ConvertedPlayer(GetForLoopIndexB()) ) ) then
return false
endif
if ( not ( udg_gatilhoon[GetForLoopIndexB()] == 0.00 ) ) then
return false
endif
return true
endfunction
function Trig_Gatilho_Actions takes nothing returns nothing
set bj_forLoopBIndex = 1
set bj_forLoopBIndexEnd = udg_MaiorPlayer
loop
exitwhen bj_forLoopBIndex > bj_forLoopBIndexEnd
if ( Trig_Gatilho_Func001Func001C() ) then
set udg_cameraon[GetForLoopIndexB()] = 0.00
call TriggerSleepAction( 0.10 )
set udg_heroplayer[GetForLoopIndexB()] = GetTriggerUnit()
return
else
call DoNothing( )
endif
set bj_forLoopBIndex = bj_forLoopBIndex + 1
endloop
endfunction
//===========================================================================
function InitTrig_Gatilho takes nothing returns nothing
set gg_trg_Gatilho = CreateTrigger( )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(0), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(1), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(2), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(3), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(4), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(5), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(6), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(7), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(, true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(9), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(10), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(11), true )
call TriggerAddCondition( gg_trg_Gatilho, Condition( function Trig_Gatilho_Conditions ) )
call TriggerAddAction( gg_trg_Gatilho, function Trig_Gatilho_Actions )
endfunction
é isso ?
if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_STRUCTURE) == false ) ) then
return false
endif
if ( not ( GetOwningPlayer(GetTriggerUnit()) == GetTriggerPlayer() ) ) then
return false
endif
return true
endfunction
function Trig_Gatilho_Func001Func001C takes nothing returns boolean
if ( not ( GetTriggerPlayer() == ConvertedPlayer(GetForLoopIndexB()) ) ) then
return false
endif
if ( not ( udg_gatilhoon[GetForLoopIndexB()] == 0.00 ) ) then
return false
endif
return true
endfunction
function Trig_Gatilho_Actions takes nothing returns nothing
set bj_forLoopBIndex = 1
set bj_forLoopBIndexEnd = udg_MaiorPlayer
loop
exitwhen bj_forLoopBIndex > bj_forLoopBIndexEnd
if ( Trig_Gatilho_Func001Func001C() ) then
set udg_cameraon[GetForLoopIndexB()] = 0.00
call TriggerSleepAction( 0.10 )
set udg_heroplayer[GetForLoopIndexB()] = GetTriggerUnit()
return
else
call DoNothing( )
endif
set bj_forLoopBIndex = bj_forLoopBIndex + 1
endloop
endfunction
//===========================================================================
function InitTrig_Gatilho takes nothing returns nothing
set gg_trg_Gatilho = CreateTrigger( )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(0), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(1), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(2), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(3), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(4), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(5), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(6), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(7), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(, true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(9), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(10), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Gatilho, Player(11), true )
call TriggerAddCondition( gg_trg_Gatilho, Condition( function Trig_Gatilho_Conditions ) )
call TriggerAddAction( gg_trg_Gatilho, function Trig_Gatilho_Actions )
endfunction
é isso ?
fg8d78e48sro- Número de Posts : 1073
Data de inscrição : 07/11/2011
Reputação : 63 Pontos : 26735
Re: [TUTORIAL] MUI - Básico
thank you,
ee, parece bruxaria, nao é q depois de tanto tempo a blizzard deixou passar um bug na gui desta forma ^^ ...
ee, parece bruxaria, nao é q depois de tanto tempo a blizzard deixou passar um bug na gui desta forma ^^ ...
Página 2 de 2 • 1, 2
Tópicos semelhantes
» [Tutorial] Tutorial extremamente básico sobre a utilização do jQuery
» [Tutorial] Basico de um Cinematic
» [Tutorial] - Leaks Básico
» [Tutorial] Editando Mapa (O basico)
» [Tutorial] Photoshop - Tratamento Basico
» [Tutorial] Basico de um Cinematic
» [Tutorial] - Leaks Básico
» [Tutorial] Editando Mapa (O basico)
» [Tutorial] Photoshop - Tratamento Basico
TeaM KingS :: Games: :: Warcraft: World Editor :: Tutoriais: Gui, Jass, Spells, Terrain, Modelagem, Textura :: Triggers(GUI)
Página 2 de 2
Permissões neste sub-fórum
Não podes responder a tópicos