O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Tem como aumentar o numero máximo de switch local?

Iniciado por katumblo, 19/08/2014 às 21:52

19/08/2014 às 21:52 Última edição: 02/11/2017 às 08:24 por Corvo
:será:

Hoje estava trabalhando em um dos meus sistemas para fazer, e estou precisando de adicionar mais de apenas 4 switchies locais (A,B,C,D... E, F,bla bla bla) tem como? Geralmente não mecho com elas então não sei x:

Já tentei usar o script de Variaveis locais de um cara aí que esqueci o nome, mas, além de estar bugado não funcionaria, pois estou precisando para usar em condição de um evento, e na condição de um evento só da para por se a variável é tal numero ou maior :x
Tudo vai dar certo (y(8.

Ao invés de usar switchs locais você pode usar uma variável para definir a página que vai acessar nas condições da página do evento. Com isto você pode usar praticamente quantas páginas quiser. Pessoalmente não vejo muita necessidade em uso de script para poupar apenas o uso de uma única variável.
Já vi eventos com até 20 páginas se valendo disto e, de fato, funciona. O "maior ou igual" lá acho que é erro de interpretação/tradução. Experimente usá-lo.

o/

Citação de: Shiroyasha online 19/08/2014 às 22:29
Ao invés de usar switchs locais você pode usar uma variável para definir a página que vai acessar nas condições da página do evento. Com isto você pode usar praticamente quantas páginas quiser. Pessoalmente não vejo muita necessidade em uso de script para poupar apenas o uso de uma única variável.
Já vi eventos com até 20 páginas se valendo disto e, de fato, funciona. O "maior ou igual" lá acho que é erro de interpretação/tradução. Experimente usá-lo.

o/

A questão é que eu preciso de algo que seja local :\ Porque estou usando via evento comum, e se eu não usa-se por esse método daria um lag imenso D;
Acho que o unico jeito vai ser pedir o dono do script para concertar né D;
Tudo vai dar certo (y(8.

Posso estar equivocado, mas já acho um tanto ilógico usar switch local em eventos comuns.  :'-':
Do mesmo modo que você pode simular múltiplas opções com label (apesar de não aceitar muito bem desvios incondicionais), com variáveis, e até com variáveis locais criadas com call script.

@variável = valor


E usar ela dentro desse evento comum como bem entender, podendo até usar condições com ela sem precisar se preocupar com várias switchs locais ou com gasto de uma variável global de fato.

Switchs locais seriam as minhas últimas opções se estivesse precisando de algo assim em um evento comum. Até o momento só as uso para trocas de páginas de eventos, por não dispor de uma opção melhor para isto de maneira local e sem abusar de call scripts.

É difícil imaginar o que esteja tentando fazer. Algo me diz que, no seu caso, as switchs locais não são o melhor caminho.


Citação de: Shiroyasha online 19/08/2014 às 23:46
Posso estar equivocado, mas já acho um tanto ilógico usar switch local em eventos comuns.  :'-':
Do mesmo modo que você pode simular múltiplas opções com label (apesar de não aceitar muito bem desvios incondicionais), com variáveis, e até com variáveis locais criadas com call script.

@variável = valor


E usar ela dentro desse evento comum como bem entender, podendo até usar condições com ela sem precisar se preocupar com várias switchs locais ou com gasto de uma variável global de fato.

Switchs locais seriam as minhas últimas opções se estivesse precisando de algo assim em um evento comum. Até o momento só as uso para trocas de páginas de eventos, por não dispor de uma opção melhor para isto de maneira local e sem abusar de call scripts.

É difícil imaginar o que esteja tentando fazer. Algo me diz que, no seu caso, as switchs locais não são o melhor caminho.


Bom, posso escolher entre fazer um sistema com 100 switches ( sério, provavelmente daria tudo isso kkk ) ou usar switchies locais kkk, acredite isso me facilitará um bocado ;-; Quando eu acabar o projeto vou postar ele, ( PS : estou também usando swithcies locais pois é mais " Pug and play " então não posso abusar muito de switches, fazendo assim então, as switches locais sendo meu melhor meio :c

E sobre o que você falou do @variavel = valor, isto criaria uma " variável local " ? :será: Acho que não ... se não me engana mudarei apenas o valor da variável, e todos os eventos que seguem o valor desta variável seriam alterados ... Estou errado?
Tudo vai dar certo (y(8.

20/08/2014 às 01:50 #5 Última edição: 20/08/2014 às 08:56 por Shiroyasha
Vamos dizer que o exemplo que dei funcionaria como uma switch local, mas não é uma variável local e sim uma variável de instância.

E qual a diferença entre elas? Tomarei um trecho de uma aula do Flaepru que a pouco revi coincidentemente.


  • Variáveis locais: variáveis locais são variáveis que podem ser acessadas dentro de um bloco de código ou método.
    Nomenclatura: variáveis locais são nomeadas iniciando-se com uma letra minúscula e sem espaços ou caracteres especiais. Ex.: variavel_local
  • Variáveis de instância: "instância" vem do inglês "instance" e significa "exemplo". Essas variáveis são utilizadas em classes e podem ser acessadas por quaisquer objetos da classe.
    Nomenclatura: a mesma regra das variáveis locais, mas o nome deve conter um @ antes. Ex.: @variavel_de_instancia

Mas qual a utilidade disto para nós, eventers? Observe que sempre que usa o comando de call script você pode criar uma variável lá:

variável = 1


Mas só pode usá-la lá dentro daquele call script que você chamou. É aí que entram as variáveis de instância que acabei de citar. Ao fazer uma chamada de call script com:

@variável = 1


Você poderá usá-la em qualquer lugar dentro do evento onde foi criada seja ele um evento comum ou não, na página 1 ou não de eventos normais e etc... Isso significa que você poderá até mesmo usá-lo nas condições usando a opção "Script". E aí que reside uma das maiores vantagens do ACE em relação aos RM's anteriores, os eventers podem usar variáveis de instância nas condições como se fossem variáveis "locais" quaisquer.

E como fazer as comparações? Nas condições usando a opção de script você pode simplesmente usar:

@variável == 0 #se a variável é igual a 0
@variável > 5 #se a variável é maior que 5
@variável < 6 #se a variável é menor a 6
@variável != 2 #se a variável é diferente de 2
@variável >= 8 #se a variável é maior ou igual a 8


e etc...
É possível até mesmo usar operadores lógicos, mas não me estenderei mais. Procure por operadores e tipos de variáveis nas áreas de rgss3, esses temas são bem mais úteis no ACE para eventers devido a essas possibilidades facilitadas em relação ao VX e ao XP (tinha que ser na marra as condições e geralmente não compensava mais que um script).

Dito isto, crie uma variável de instância em um evento qualquer usando call script e dentro desse evento use uma condição usando a opção "Script". Lá use algo como um dos exemplos que citei, tipo:

@variável == 0


e observe que, de fato, funciona.

Se ainda precisar de um exemplo prático é só dizer.

o/

*u* top, obrigado por tanta atenção {:
Bom, só uma coisa : para chamar o comando @variavel = valor
posso por tipo :

@eu = eueu ou posso usar apenas numeros?
Tudo vai dar certo (y(8.

Você pode usar tanto números, quanto strings e também estados lógicos (true ou false).
Esta aula do Raizen é uma boa referência entre as aulas presentes aqui na CRM.

O seu exemplo deveria ficar assim:

@eu = "eueu"


Entre aspas, pois se trata de uma string. Para valores de estados lógicos, que nós chamamos de variáveis booleanas, você usa:

@variável = true

ou
@variável = false


E como pode ver elas funcionam exatamente como switchs. True seria o equivalente a ON e false equivalente a OFF como os conhecemos. As comparações nas condições podem ser feitas do mesmo modo que citei anteriormente.

Por fim deixo esta aula, também do Raizen, como referência para uso nas condições.

o/

'-' pensei que tinha em condição do evento a parte " script " ... Não tem ... voltei a estaca 0 :\

Tudo vai dar certo (y(8.

A solução que eu apresentei era para eventos comuns, katumblo.  :noface:

Você mesmo disse que estava usando eventos comuns.
Se você ler os meus posts até verá que eu disse que só usava as switchs locais para mudança de páginas em eventos no mapa. Eu não me referia as condições de execução da página de eventos no mapa quando citei as variáveis de instância. Me referia as condições normais de evento.

Nesse caso aí você terá mesmo que usar a opção de variável ao invés de switch local. E ainda não entendi o que há de tão difícil ou impossível nisso. )o)

Bom, eu estou usando 1 sistema para uns 20 eventos, então solucionaria meu problema apenas com switches locais ;-;
Tudo vai dar certo (y(8.

20/08/2014 às 23:47 #11 Última edição: 20/08/2014 às 23:49 por Cronus
Cara, algo me diz que você mesmo não sabe o que você quer fazer, rofl.

Pelo que vi os posts do Shiroyasha já explicaram bastante a respeito, então nem posso adicionar nada a isso. Se você não entendeu, o jeito mais simples que pode ter é o primeiro que te foi recomendado: usar variáveis. Você tem 20 eventos? Use uma variável pra cada um.



Veja aqui por exemplo. Estou usando uma variável pra ativar 7 páginas de evento (a primeira não tem ativação, então não conta). Sendo assim, se eu quero ativar a página 8, vou marcar condição de variável como 7. Pronto, dessa forma você pode ter quantas páginas quiser e ativar elas de acordo com o número que colocar na variável. Pense assim: 1 seria a switch local "A", 2 seria "B", 3 seria "C", 4 seria "D"... e ao invés de parar no 4, você pode ir além e ter quantas páginas precisar.

Essa é a maneira mais simples de se fazer isso, e pra falar a verdade, quando você se acostuma com isso vai usar mais variáveis do que switches. Se ainda não conseguir resolver, explica pra gente o que você quer fazer e o porquê da necessidade de eventos comuns, quem sabe possamos te ajudar melhor assim.

21/08/2014 às 01:17 #12 Última edição: 21/08/2014 às 01:21 por katumblo
._____________. Lá vem outro explicando um jeito que está tão obvio ._.

Eu preciso de algo que mecha somente no local, não posso usar variáveis pois se eu usar variáveis irá modificar mais de um evento.
"Crie mais de uma variável oras, apenas altere os valores dela"
Ok, daria certo, mas multiplique o número de eventos usados por 200. pense em 200 variáveis trabalhando aumentando e diminuindo números gradativamente... Entenderam no ponto que quero chegar ? Não posso usar algo que não seja local por isso.

assumo que posso ter explicado de um jeito confuso isso, mas entenda, é algo que só posso fazer com swithces locais

Ps: morrendo de sono e tenho que acordar daqui 3 hrs, tenho a impressão de ter sido um pouco rude neste tópico, mas se fui, desculpe, não foi intenção, não estou conseguindo explicar outras palavras sem ser estas...
Tudo vai dar certo (y(8.

21/08/2014 às 03:18 #13 Última edição: 21/08/2014 às 04:32 por Azraven
Citação de: katumblo online 21/08/2014 às 01:17
._____________. Lá vem outro explicando um jeito que está tão obvio ._.

(...)

Olha, como você precisa usar o campo de condições de página, a solução do Cronus é a ÚNICA possível. Sem contar a aula "de graça" que o Shiroyasha se deu o trabalho pra te ensinar algo. Então sinto muito cara, se tu tem preguiça desinstala o RPG Maker ai e vai fazer qualquer coisa que não envolva programação, porque com preguiça você não vai a lugar nenhum.

Ps: morrendo de sono aqui, acabei de chegar do trabalho, se fui rude não me desculpe por que foi intencional, não ia responder esse tópico, mas seu comportamento é sem noção.

21/08/2014 às 11:53 #14 Última edição: 21/08/2014 às 11:55 por iNumPad
Tem como aumentar. É só usar esse script:
http://forums.rpgmakerweb.com/index.php?/topic/965-more-self-switches/

Eu já fiz sistema de plantação (RMXP) com esse scripts. Usava umas 14 switches locais para cada planta. Hahaha.

Edit: Li que tu precisa na condição do evento. Não há como. Mas tu usava nas primeiras páginas as A, B, C.. E nas outra tu bota a Condição como um comando do evento.