FindView Tooltip

» Settlers Map Source Forums » Siedler DEdK Script Forum » FindView Tooltip

Pages: 1

Play4FuN
#1
12-10-2018 15:47
Posts: 499

FindView Tooltip

Moin,

in meiner Karte ersetzte ich Bogis durch Banditen Bogis und Schwertis durch Barbaren Schwertis. Habe die FindView dementsprechend angepasst:

if Logic.GetNumberOfEntitiesOfTypeOfPlayer(gvMission.PlayerID, Entities.CU_BanditLeaderBow1) > 0 then
			XGUIEng.ShowWidget(gvGUI_WidgetID.FindBowLeader ,1)
		else
			XGUIEng.ShowWidget(gvGUI_WidgetID.FindBowLeader ,0)
		end

...läuft wunderbar.
Nur die Tooltips nicht. Bei unveränderten Speerträgern kommt der Tooltip, bei meinen veränderten jedoch nicht. Die Funktion GUITooltip_Generic ruft GUITooltip_NormalButton auf und dort findet die Anzeige des TT statt... Ich habe mir den _TooltipString Parameter per Message ausgeben lassen und der wird bei allen dreien richtig angezeigt. Naja fast: bei den unveränderten Speerträgern wird der wie erwartet gespammt, bei den veränderten jedoch erscheint der genau ein Mal, dann ist Schluss - und eben kein TT ...

Problem verständlich?

____________________
LG Play4FuN

mcb
#2
12-10-2018 16:01
Posts: 1338

Was ist denn der code, der den Tooltip ändert?

Play4FuN
#3
12-10-2018 16:44
Posts: 499

GUITooltip_Generic_Orig = GUITooltip_Generic
	GUITooltip_Generic = function(a)
		if a == "MenuBuildingGeneric/RecruitGroups" then
			if gvMission.Autofill[gvMission.PlayerID] == true then
				XGUIEng.SetText(gvGUI_WidgetID.TooltipBottomText, Umlaute(col.gray.."Automatisches Rekrutieren ausschalten @cr "..col.w.."Eure Hauptmänner werden nur neue Soldaten in ihre Gruppe aufnehmen, wenn Ihr es ihnen befehlt."))
			else
				XGUIEng.SetText(gvGUI_WidgetID.TooltipBottomText, Umlaute(col.gray.."Automatisches Rekrutieren anschalten @cr "..col.yel.."ermöglicht:"..col.w.."Eure Hauptmänner können selbstständig neue Soldaten in ihre Gruppe aufnehmen, sofern genügend Plätze und Rohstoffe vorhanden sind."))
			end
			XGUIEng.SetText(gvGUI_WidgetID.TooltipBottomCosts, "")
			XGUIEng.SetText(gvGUI_WidgetID.TooltipBottomShortCut, "")
		else
			GUITooltip_Generic_Orig(a)
		end
	end



Also überschreiben will ich die (noch) nicht...

____________________
LG Play4FuN

mcb
#4
12-10-2018 17:40
Posts: 1338

Die sieht in Ordnung aus, was ist denn mit der GUITooltip_NormalButton?

Play4FuN
#5
12-10-2018 18:03
Posts: 499

Verändere ich gar nicht (direkt?)

Ich überschreibe
GUITooltip_UpgradeBuilding
GUITooltip_BuyMilitaryUnit
GUITooltip_ResearchTechnologies
und eben was ich schon geschrieben habe.

____________________
LG Play4FuN

mcb
#6
12-10-2018 19:40
Posts: 1338

Ok, das ist dann wirklich seltsam... Mal mit dem LuaDebugger nachgesehen obs ne Fehlermeldung gibt?

Play4FuN
#7
12-10-2018 20:41
Posts: 499

Klaro, der Debugger läuft die ganze Zeit. Schweigt jedoch :c

____________________
LG Play4FuN

Peter-FS
#8
15-10-2018 05:54
Posts: 1066

Tooltip

Hi, Problem schon gelöst?
Sonst könntest du mal im Skript der "Heiratsschwindler" nachsehen, da habe ich jede Menge tooltips verändert.

Welchen button möchtest du denn verändern? RecruitGroups, habs gesehen.
Mach dir doch mal ne message rein und prüfe die variablen. Dann siehst du auch, wie oft der Aufruf kommt und ob du in der richtigen Funktion bist.

____________________
Man muss nicht alles wissen, man muss nur wissen wo es steht!

Play4FuN
#9
18-10-2018 10:37
Posts: 499

Prinzipiell ist mir schon klar, wie ich die TTs verändern kann. Der gezeigte Code funzt ja auch - das ist ja auch nicht das Problemkind Die TTs für die FindView geht kaputt, wenn ich die GUIUpdate_FindView manipuliere, sodass eben Banditen Bogis statt normalen Bogis gefunden werden.

GUITooltip_Generic zeigt beim hovern der FindView Dinger den korrekten Parameter an, also zb "MenuTop/Find_bow"... aber im Gegensatz zu den unveränderten nur 1x und es wird kein TT angezeigt...

Ich hau mal den Code hier dazu:

GUIUpdate_FindView_Orig = GUIUpdate_FindView
	GUIUpdate_FindView = function()
		GUIUpdate_FindView_Orig()
		
		if Logic.GetNumberOfEntitiesOfTypeOfPlayer(gvMission.PlayerID, Entities.CU_BanditLeaderBow1) > 0 then
			XGUIEng.ShowWidget(gvGUI_WidgetID.FindBowLeader ,1)
		else
			XGUIEng.ShowWidget(gvGUI_WidgetID.FindBowLeader ,0)
		end
		
		if (Logic.GetNumberOfEntitiesOfTypeOfPlayer(gvMission.PlayerID, Entities.CU_Barbarian_LeaderClub1) +
			Logic.GetNumberOfEntitiesOfTypeOfPlayer(gvMission.PlayerID, Entities.CU_BlackKnight_LeaderMace1)) > 0 then
			XGUIEng.ShowWidget(gvGUI_WidgetID.FindSwordLeader ,1)
		else
			XGUIEng.ShowWidget(gvGUI_WidgetID.FindSwordLeader ,0)
		end
	end
	
	KeyBindings_SelectUnit_Orig = KeyBindings_SelectUnit
	KeyBindings_SelectUnit = function(_UpgradeCategory,_type)
		if _UpgradeCategory == UpgradeCategories.LeaderSword then
			if gvMission.PlayerID == 1 then
				_UpgradeCategory = UpgradeCategories.BlackKnightLeaderMace1
			elseif gvMission.PlayerID == 2 then
				_UpgradeCategory = UpgradeCategories.LeaderBarbarian
			end
		elseif _UpgradeCategory == UpgradeCategories.LeaderBow then
			_UpgradeCategory = UpgradeCategories.LeaderBanditBow
		end
		
		KeyBindings_SelectUnit_Orig(_UpgradeCategory,_type)
	end
	



____________________
LG Play4FuN

mcb
#10
21-10-2018 22:04
Posts: 1338

Kann sein, das das Problem dabei ist, das du das Widget, das den Tooltip hat, jeden Tick mehrmals ein oder ausblendest. (Das Problem hatte ich nämlich mal.) Versuch mal, die GUIUpdate_FindView komplett neu zu schreiben.

Pages: 1

SiteEngine v1.5.0 by nevermind, ©2005-2007
Design by SpiderFive (www.siedler-games.de) - English translation by juja

Impressum