[Bug] CT_PlayerFrame

Répondre
Partager Rechercher
Je viens de découvrir un bug très étrange avec ce mod (qui permet de rajouter les % pour la vie/mana pour notre personnage). Au delà de 1000 unités, le pourcentage en dessous de 10% se met sur 0% Par exemple, j'ai 1000 mana et dès que ma barre de mana se trouve en dessous de 100, le pourcentage indiqué est de 0%. J'avais rajouté ce mod justement pour que d'un seul coup d'oeil, je puisse voir s'il me reste quelque chose mais là, c'est un peu pénible. Et si la barre dépasse les 100, le pourcentage redevient correct... En enlevant tout mon équip, je redescends en dessous de 1000 et là tout refonctionne normalement (j'ai essayé aussi avec un reroll et là aussi, tout fonctionne nickel). Il semblerait donc que ça soit bien au dessus des 1000 unités. J'ai regardé le code mais comme j'y connais pas grand-chose ben voilà

Quelqu'un aurait déjà remarqué cela ou bien ? Le site de Curse étant toujours down pour moi, je peux pas regarder s'il y a une nouvelle version...

C'est quand même très bizarre
Bonjour

L'erreur vient enfait de la localisation FR, le decoupage du string servant à recuperer la vie pr le cacul est faussé (parsage sur la chaine "health" au lieu de "vie").

voici les 2 fonctions incriminés (avec en rouge la partie à modifier):

Code:
function CT_ShowPlayerHealth()
	if ( CT_PlayerFrame_ShowNumber == 0 ) then
		CT_PlayerHealthText:Hide();
		return;
	else
		CT_PlayerHealthText:Show();
	end

	CT_PlayerHealthText:SetTextColor(1, 1, 1);
	local text = PlayerFrameHealthBarText:GetText();
	if( text == nil ) then text = CT_PlayerHealthTextVar; end
	CT_PlayerHealthTextVar = text;
	local hp = strsub(text, 7);
	CT_PlayerHealthText:SetText(hp);
	
end
et

Code:
function CT_ShowPlayerHealthPercent()
	if ( CT_PlayerFrame_ShowPercent == 0 ) then
		CT_PlayerHealthPercent:Hide();
		return;
	else
		CT_PlayerHealthPercent:Show();
	end
	local text = PlayerFrameHealthBarText:GetText();
	if( text == nil ) then text = CT_PlayerHealthTextVar;
	else CT_PlayerHealthTextVar = text;
	end
	local hp = strsub(text, 7);
	local find = strfind(hp, "/");		
	if( find == nil ) then CT_PlayerHealthPercent:SetText(hp);
	else 
		local cur = strsub(hp, 0, strlen(hp)-find);
		local total = strsub(hp, strlen(cur)+2);
		if(strfind(total, "/") ~= nil) then
			total = strsub(total, 2);
		end
		if( tonumber(cur) == 0 or tonumber(cur) == nil ) then
			CT_PlayerHealthPercent:SetText("0%");
			return;
		end
		local percent = (tonumber(cur) / tonumber(total)) * 100;
		CT_PlayerHealthPercent:SetText(ceil(percent) .. "%");			
		if (percent >= 75) then PlayerFrameHealthBar:SetStatusBarColor(0, 1, 0);
		elseif (percent >= 50) then PlayerFrameHealthBar:SetStatusBarColor(1, 1, 0);
		elseif (percent >= 25) then PlayerFrameHealthBar:SetStatusBarColor(1, 0.5, 0);
		else PlayerFrameHealthBar:SetStatusBarColor(1, 0, 0);
		end		
	end
	
end
Enfait il faut juste remplacer la valeur de "strsub(text, 7);" par 4 au lieu de 7
Merci pour ta réponse, mais jouant sur un serveur EN (avec client EN), je ne pense pas que ça soit cela Comme indiqué dans mon précédent post, le mod fonctionne tout à fait normalement jusqu'à 1000 unités, c'est après qu'il y a cette erreur d'affichage bizarre. Je suis allé sur le site de Curse et je n'ai pas vu de nouvelle version. Je regarderais de nouveau sur la release pour voir si ce n'est pas un autre mod qui entrerait en conflit en cas mais je pense pas.

Merci quand même
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés