Jump to content

MN passar a ser visível com o ALT tal como no MKMT2


Mário.
 Share

Recommended Posts

Estava a ver um vídeo do MKMT2 e reparei que quando a personagem carrega no ALT, o MN passa a ser visível da mesma forma como o HP é.

Em pouco menos de 30 minutos, fiz a mesma coisa, provavelmente (ou não) do mesmo jeito que o Micael fez:

HLscG31.jpg


Explicação

A primeira coisa que fiz foi ir no game.py e ver qual era o valor que o LALT era atribuído. Ao ver que o mesmo estava para o self.ShowName(), fui no def dele e reparei que ele chamava valores que estão presentes em outros ficheiros:

self.playerGauge.EnableShowAlways()

Isto é bastante simples de ler, ele chama o def EnableShowAlways que se encontra no ficheiro uiPlayerGauge.py

A partir daqui, foi muito mais fácil de entender as coisas, que irei demonstrar agora no Tutorial.

 


Tutorial

Criem um ficheiro no root chamado uiPlayerGauge1.py com o seguinte:

# Importante: Não apagar este ficheiro, uma vez que é por causa dele que o MN será mostrado sempre que o jogador carregar na tecla ALT // Mário.
import ui
import player
import chr
import textTail

class PlayerGauge(ui.Gauge):

	def __init__(self, parent):
		ui.Gauge.__init__(self)
		self.SetParent(parent)
		self.AddFlag("not_pick")
		self.MakeGauge(100, "blue")

		self.curSP = 0
		self.maxSP = 0

		self.showAlways = FALSE

	def __del__(self):
		ui.Gauge.__del__(self)

	def Hide(self):
		self.SetPosition(-100, -100)
		ui.Gauge.Hide(self)

	def OnUpdate(self):
		playerIndex = player.GetMainCharacterIndex()

		(x, y, z)=textTail.GetPosition(playerIndex)

		isChat = textTail.IsChat(playerIndex)
		ui.Gauge.SetPosition(self, int(x - self.GetWidth()/2), int(y + 15) + isChat*17)

	def RefreshGauge(self):

		self.curSP = player.GetStatus(player.SP)
		self.maxSP = player.GetStatus(player.MAX_SP)
		self.SetPercentage(self.curSP, self.maxSP)

		if self.showAlways:
			self.Show()

		else:

			if self.IsShow():
				if self.curSP > self.maxSP / 2:
					self.Hide()

			else:
				if self.curSP < self.maxSP / 2:
					self.OnUpdate()
					self.Show()

	def EnableShowAlways(self):
		self.showAlways = TRUE
		self.RefreshGauge()

	def DisableShowAlways(self):
		self.showAlways = FALSE
		self.RefreshGauge()

 

Abram o game.py e procurem por:

import uiPlayerGauge

 

Por baixo, adicionem:

import uiPlayerGauge1

 

Procurem, duas vezes, por:

self.playerGauge = None

 

Por baixo, adicionem:

self.playerGauge1 = None

 

Procurem por:

self.playerGauge = uiPlayerGauge.PlayerGauge(self)
		self.playerGauge.Hide()

 

Por baixo, adicionem:

self.playerGauge1 = uiPlayerGauge1.PlayerGauge(self)
		self.playerGauge1.Hide()

 

Agora necessitamos que o valor do nosso ficheiro atualize sempre que o MN é perdido ou aumentado (seja com uma skill, ao chamar o cavalo, entre outros), por isso vamos no def RefreshStatus e procurem por:

if self.playerGauge:
			self.playerGauge.RefreshGauge()

 

Por baixo, adicionem:

if self.playerGauge1:
			self.playerGauge1.RefreshGauge()

 

Agora temos que ir no def ShowName e adicionar o nosso EnableShowAlways, por isso procurem por:

self.playerGauge.EnableShowAlways()

 

Por baixo, adicionem:

self.playerGauge1.EnableShowAlways()

 

Também vamos adicionar no def HideName, para tal procurem por:

self.playerGauge.DisableShowAlways()

 

Por baixo, adicionem:

self.playerGauge1.DisableShowAlways()

 


Como podem ver, o trabalho não foi assim tanto, tal como tinha dito, não demorou nada mais que 30 minutos, apenas criei outro uiPlayerGauge e editei-o de forma a ir buscar o valor do MN. Existem melhores formas de fazerem isso sem a necessidade de criar outro ficheiro, esta foi a forma mais preguiçosa que achei (fiz isto hoje por volta das 03:30 da manhã, dêem-me um desconto), mas não deixa de mostrar o resultado.

A comunidade portuguesa/brasileira tem a mania de copiar os tópicos e meter noutros fóruns sem meter os seus devidos créditos (falo disto por experiência própria em ver o meu trabalho a ser repassado sem o meu nome). Peço que se quiserem partilhar, não retirem o meu nome.

Agradeço ao MKMT2 pela ideia, realmente é sempre uma mais valia saber o MN, mesmo que para alguns isso seja inútil.

 

Dou suporte no tópico, em caso de não conseguirem.

 

  • Like 2
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...