🤔 Para Refletir :
"Números são apenas números, não estrague seu dia por causa deles."
- Ricky O Bardo

Adicionar variável em Módulo

Ludovic Masculino

Conde
Membro
Membro
Juntou-se
19 de Junho de 2015
Postagens
493
Bravecoins
24
Eu estou usando um script que dá um efeito bem legal aos encounters, mostra uma pequena hud com alguns pontinhos vermelhos e um azul no centro para ativar os enconters ao tocar em um ponto vermelho.

Há um módulo nele onde se determina o número de inimigos e  velocidade dos mesmos.
Eu tentei substituir esses números por variáveis "$game_variables[x]" mas dá erro no script.
Então eu gostaria de saber porque esse módulo não e uma solução se possível.

Quero poder mudar esses valores durante o jogo.

ENEMY_RADAR_NUMBER_OF_ENEMIES = 6
ENEMY_MOVE_SPEED = 90


Coloquei o escript em anexo .txt porque no fórum não permite
 

Anexos

Boa tarde,

Para alterar basta usar

ENEMY_RADAR_NUMBER_OF_ENEMIES = $game_variables[id_da_variavel]
ENEMY_MOVE_SPEED = $game_variables[id_da_variavel]

Abraço

EDIT: penso que não respondi direito

faça assim no script faça ctrl+f e digite ENEMY_RADAR_NUMBER_OF_ENEMIES

e vai ver que só 2 locais usam esta variável , um deles é no modulo e a outra é no def create_enemy_radar_point

ai você pode alterar de

Código:
 point_size = ENEMY_RADAR_NUMBER_OF_ENEMIES

para

Código:
 point_size = $game_variables[ id_da_variavel]

e para ENEMY_MOVE_SPEED

esta no class Point_Sprite , no metodo def initialize(viewport = nil,index = 0,slx = 81,sly = 81)

e pode alterar de

Código:
 @move_time_limit = ENEMY_MOVE_SPEED

para

Código:
 @move_time_limit = $game_variables[ id_da_variavel ]

penso que foi esta a sua pergunta
 
Obrigado, eu já havia feito esses testes, tentei substituir no módulo e não certo, também havia tentado na parte interna do script e também não funciona.
Por enquanto continua o problema
 
Troca as constantes por variáveis de classe, tipo assim:
Código:
@@enemy_radar_number_of_enemies = 6
@@enemy_move_speed = 90

Aí é só criar métodos de leitura e escrita, não sei se usar attr_accessor funciona, mas se não é só colocar isso no módulo:
Código:
def self.number_of_enemies
  @@enemy_radar_number_of_enemies
end

def self.number_of_enemies=(n)
  @@enemy_radar_number_of_enemies = n
end

def self.move_speed
  @@enemy_move_speed
end

def self.move_speed=(n)
  @@enemy_move_speed = n
end

Depois é só substituir todas as ocorrências de ENEMY_RADAR_NUMBER_OF_ENEMIES por Nome_Do_Modulo.number_of_enemies e ENEMY_MOVE_SPEED por Nome_Do_Modulo.move_speed, e para redefinir usar Nome_Do_Modulo.number_of_enemies = X e Nome_Do_Modulo.move_speed = X.
 
Eu substituí no módulo para
@@enemy_radar_number_of_enemies = 6
@@enemy_move_speed = 90

E também adicionei "NO MODULO" isso
cY1bPc9.jpg


Substituí cada referencia:
k8sgHZK.jpg


E estou chamando assim pelo script call
M_ELN.number_of_enemies = 10
 
Ué, tá certo isso aí \o/

Aparece algum erro ou ele só não funciona? Dependendo do que for eu vou precisar dar uma olhada no script pra ver o que fazer.
 
Masked comentou:
Ué, tá certo isso aí \o/

Aparece algum erro ou ele só não funciona? Dependendo do que for eu vou precisar dar uma olhada no script pra ver o que fazer.

Ele funciona só não altera os valores que ficam sempre em zero
o script está em anexo no topico
 
Voltar
Topo Inferior