warrior1024
27.03.2010 20:28
1138 mal angesehen

Kanonen und Nebelvolk...

...in einer Garnison! Ich musste nur 9 Zeilen schreiben, dafür sind GUI_Tooltip und GUI_Update nicht modifiziert!
Schade, das es keine UpgradeCategories.VeteranMajor gibt:(


Auf das Bild klicken, um es in Originalgröße zu sehen (205,04 KB)


Kommentare

» Kommentar schreiben

fighty
11.11.2015 22:11

Die Code Länge... alle Achtung !

Ordensritter
09.04.2010 15:47

Vielen Dank für den Code.

andre111
29.03.2010 19:09

Mist schon wieder zu lang!
Ich habs jetzt ins Forum gepackt:
http://www.siedler-maps.de/for...ipt-Forum/Voelkerwahl-9233.htm

FG
andre111

andre111
29.03.2010 19:05

hier Teil2:
[code]function AktivVolk2()
GUIAction_BuyMilitaryUnit_Orig = GUIAction_BuyMilitaryUnit
GUIAction_BuyMilitaryUnit = function(_a)
if _a == UpgradeCategories.LeaderSword then
if volk == 1 then
GUIAction_BuyMilitaryUnit_Orig(UpgradeCategories.LeaderSword)
elseif volk == 2 then
if GetGold(1) >= 200 then
AddGold(-50)
GUIAction_BuyMilitaryUnit_Orig(UpgradeCategories.Evil_LeaderBearman)
else
Message("Nicht gen\195\188gend Taler!"
end
elseif volk == 3 then
if GetGold(1) >= 150 then
if GetIron(1) < 60 then
Message("Nicht gen\195\188gend Eisen!"
else
AddGold(-150)
AddIron(-60)
GUIAction_BuyMilitaryUnit_Orig(UpgradeCategories.LeaderBandit)
end
else
Message("Nicht gen\195\188gend Taler!"
if GetIron(1) < 60 then
Message("Nicht gen\195\188gend Eisen!"
end
end
elseif volk == 4 then
if GetGold(1) >= 200 then
AddGold(-50)
GUIAction_BuyMilitaryUnit_Orig(UpgradeCategories.BlackKnightLeaderMace1)
else
Message("Nicht gen\195\188gend Taler!"
end
end
elseif _a == UpgradeCategories.LeaderBow then
if volk == 1 then
GUIAction_BuyMilitaryUnit_Orig(UpgradeCategories.LeaderBow)
elseif volk == 2 then
if GetGold(1) >= 200 then
AddGold(-50)
GUIAction_BuyMilitaryUnit_Orig(UpgradeCategories.Evil_LeaderSkirmisher)
else
Message("Nicht gen\195\188gend Taler!"
end
elseif volk == 3 then
GUIAction_BuyMilitaryUnit_Orig(UpgradeCategories.LeaderBanditBow)
end
else
end
end
GUITooltip_BuyMilitaryUnit_Orig = GUITooltip_BuyMilitaryUnit
GUITooltip_BuyMilitaryUnit = function(_a,_b,_c,_d,_e)
if _a == UpgradeCategories.LeaderSword then
GUITooltip_BuyMilitaryUnit_Orig(_a,_b,_c,_d,_e)
XGUIEng.SetText( gvGUI_WidgetID.TooltipBottomText, "@color:170,170,170 Nahk\195\164mpfer: @cr @color:255,255,255 Bildet einen Nahk\195\164mpfer eures Volkes aus." );
if volk == 2 then
XGUIEng.SetText( gvGUI_WidgetID.TooltipBottomCosts, "Taler: "..GibTTGold( 200, 1 ).." @cr Eisen: "..GibTTEisen(30,1).." @cr Pl\195\164tze: 1" );
elseif volk == 3 then
XGUIEng.SetText( gvGUI_WidgetID.TooltipBottomCosts, "Taler: "..GibTTGold( 150, 1 ).." @cr Eisen: "..GibTTEisen(60,1).." @cr Pl\195\164tze: 1" );
elseif volk == 4 then
XGUIEng.SetText( gvGUI_WidgetID.TooltipBottomCosts, "Taler: "..GibTTGold( 200, 1 ).." @cr Eisen: "..GibTTEisen(30,1).." @cr Pl\195\164tze: 1" );
end
elseif _a == UpgradeCategories.LeaderBow then
GUITooltip_BuyMilitaryUnit_Orig(_a,_b,_c,_d,_e)
XGUIEng.SetText( gvGUI_WidgetID.TooltipBottomText, "@color:170,170,170 Fernk\195\164mpfer: @cr @color:255,255,255 Bildet einen Fernk\195\164mpfer eures Volkes aus." );
if volk == 2 then
XGUIEng.SetText( gvGUI_WidgetID.TooltipBottomCosts, "Taler: "..GibTTGold( 200, 1 ).." @cr Ho

andre111
29.03.2010 19:01

Oh, zu lang:
Nochmal:
Teil1:

function VolkWahl()

ShowBoard("V\195\182lkerwahl","W\195\164hlt euer Volk: @cr Mit den Zahlentasten: @cr 1)Normal @cr 2)Nebelvolk @cr 3)Banditen @cr 4)Schwarzes Volk")
GroupSelection_SelectTroopsOld = GroupSelection_SelectTroops
GroupSelection_SelectTroops = function( _count )
	if _count == 1 then
		GroupSelection_SelectTroops = GroupSelection_SelectTroopsOld 
		HideBoard()
		volk = 1
		Message("Ihr spielt nun mit: Normales Volk!")
		AktivVolk()
		AktivVolk2()
	elseif _count == 2 then
		GroupSelection_SelectTroops = GroupSelection_SelectTroopsOld 
		HideBoard()
		volk = 2
		Message("Ihr spielt nun mit: Nebelvolk!")
		AktivVolk()
		AktivVolk2()
	elseif _count == 3 then
		GroupSelection_SelectTroops = GroupSelection_SelectTroopsOld 
		HideBoard()
		volk = 3
		Message("Ihr spielt nun mit: Banditen!")
		AktivVolk()
		AktivVolk2()
	elseif _count == 4 then
		GroupSelection_SelectTroops = GroupSelection_SelectTroopsOld 
		HideBoard()
		volk = 4
		Message("Ihr spielt nun mit: Schwarzes Volk!")
		AktivVolk()
		AktivVolk2()
	end
end

end

function AktivVolk()
	XGUIEng.ShowWidget( "Build_Stables",0 ); --
	if volk == 4 then
		XGUIEng.ShowWidget( "Build_Archery",0 ); --
		XGUIEng.ShowWidget( "Buy_LeaderBow",0 ); --
	end
	GUIUpdate_BuildingButtons_Orig = GUIUpdate_BuildingButtons
	GUIUpdate_BuildingButtons = function(_a,_b)
		if _a == "Build_Stables" then
		else
			if volk == 4 then
				if _a == "Build_Archery" then
				else
					GUIUpdate_BuildingButtons_Orig(_a,_b)
				end
			end
			GUIUpdate_BuildingButtons_Orig(_a,_b)
		end
	end
	XGUIEng.ShowWidget( "Buy_LeaderSpear",0 ); --
	XGUIEng.ShowWidget( "Buy_LeaderRifle",0 ); --
	GUIUpdate_BuyMilitaryUnitButtons_Orig = GUIUpdate_BuyMilitaryUnitButtons
	GUIUpdate_BuyMilitaryUnitButtons = function(_a,_b,_c)
		if _a == "Buy_LeaderSpear" or _a == "Buy_LeaderRifle" then
		else
			if volk == 4 then
				if _a == "Buy_LeaderBow" then
				else
					GUIUpdate_BuyMilitaryUnitButtons_Orig(_a,_b,_c)
				end
			end
			GUIUpdate_BuyMilitaryUnitButtons_Orig(_a,_b,_c)
		end
	end
	XGUIEng.ShowWidget( "Research_UpgradeSword1",0 ); --
	XGUIEng.ShowWidget( "Research_UpgradeSword2",0 ); --
	XGUIEng.ShowWidget( "Research_UpgradeSword3",0 ); --
	XGUIEng.ShowWidget( "Research_UpgradeSpear1",0 ); --
	XGUIEng.ShowWidget( "Research_UpgradeSpear2",0 ); --
	XGUIEng.ShowWidget( "Research_UpgradeSpear3",0 ); --
	XGUIEng.ShowWidget( "Research_UpgradeBow1",0 ); --
	XGUIEng.ShowWidget( "Research_UpgradeBow2",0 ); --
	XGUIEng.ShowWidget( "Research_UpgradeBow3",0 ); --
	XGUIEng.ShowWidget( "Research_UpgradeRifle1",0 ); --
	GUIUpdate_SettlersUpgradeButtons_Orig = GUIUpdate_SettlersUpgradeButtons
	GUIUpdate_SettlersUpgradeButtons = function(_a,_b)
	end
end

andre111
29.03.2010 18:53

Ich stell sie mal rein, kann ja jemand anderes überarbeiten wenn er will:

[code]function VolkWahl()

ShowBoard("V\195\182lkerwahl","W\195\164hlt euer Volk: @cr Mit den Zahlentasten: @cr 1)Normal @cr 2)Nebelvolk @cr 3)Banditen @cr 4)Schwarzes Volk"
GroupSelection_SelectTroopsOld = GroupSelection_SelectTroops
GroupSelection_SelectTroops = function( _count )
if _count == 1 then
GroupSelection_SelectTroops = GroupSelection_SelectTroopsOld
HideBoard()
volk = 1
Message("Ihr spielt nun mit: Normales Volk!"
AktivVolk()
elseif _count == 2 then
GroupSelection_SelectTroops = GroupSelection_SelectTroopsOld
HideBoard()
volk = 2
Message("Ihr spielt nun mit: Nebelvolk!"
AktivVolk()
elseif _count == 3 then
GroupSelection_SelectTroops = GroupSelection_SelectTroopsOld
HideBoard()
volk = 3
Message("Ihr spielt nun mit: Banditen!"
AktivVolk()
elseif _count == 4 then
GroupSelection_SelectTroops = GroupSelection_SelectTroopsOld
HideBoard()
volk = 4
Message("Ihr spielt nun mit: Schwarzes Volk!"
AktivVolk()
end
end

end

function AktivVolk()
XGUIEng.ShowWidget( "Build_Stables",0 ); --
if volk == 4 then
XGUIEng.ShowWidget( "Build_Archery",0 ); --
XGUIEng.ShowWidget( "Buy_LeaderBow",0 ); --
end
GUIUpdate_BuildingButtons_Orig = GUIUpdate_BuildingButtons
GUIUpdate_BuildingButtons = function(_a,_b)
if _a == "Build_Stables" then
else
if volk == 4 then
if _a == "Build_Archery" then
else
GUIUpdate_BuildingButtons_Orig(_a,_b)
end
end
GUIUpdate_BuildingButtons_Orig(_a,_b)
end
end
XGUIEng.ShowWidget( "Buy_LeaderSpear",0 ); --
XGUIEng.ShowWidget( "Buy_LeaderRifle",0 ); --
GUIUpdate_BuyMilitaryUnitButtons_Orig = GUIUpdate_BuyMilitaryUnitButtons
GUIUpdate_BuyMilitaryUnitButtons = function(_a,_b,_c)
if _a == "Buy_LeaderSpear" or _a == "Buy_LeaderRifle" then
else
if volk == 4 then
if _a == "Buy_LeaderBow" then
else
GUIUpdate_BuyMilitaryUnitButtons_Orig(_a,_b,_c)
end
end
GUIUpdate_BuyMilitaryUnitButtons_Orig(_a,_b,_c)
end
end
XGUIEng.ShowWidget( "Research_UpgradeSword1",0 ); --
XGUIEng.ShowWidget( "Research_UpgradeSword2",0 ); --
XGUIEng.ShowWidget( "Research_UpgradeSword3",0 ); --
XGUIEng.ShowWidget( "Research_UpgradeSpear1",0 ); --
XGUIEng.ShowWidget( "Research_UpgradeSpear2",0 ); --
XGUIEng.ShowWidget( "Research_UpgradeSpear3",0 ); --
XGUIEng.ShowWidget( "Research_UpgradeBow1",0 ); --
XGUIEng.ShowWidget( "Research_UpgradeBow2",0 ); --
XGUIEng.ShowWidget( "Research_UpgradeBow3",0 ); --
XGUIEng.ShowWidget( "Research_UpgradeRifle1",0 ); --
GUIUpdate_SettlersUpgradeButtons_Orig = GUIUpdate_SettlersUpgradeButtons
GUIUpdate_SettlersUpgradeButtons = function(_a,_b)
end
GUIAction_BuyMilitaryUnit_Orig = GUIAction_BuyMilitaryUnit
GUIAction_BuyMilitaryUnit = function(_a)
if _a == UpgradeCategories.LeaderSword

xx1000
29.03.2010 18:28

kannst sie ja mal reinstellen oder sie noch etwas überarbeiten
die etscheidung liegt bei dir

xx1000

andre111
29.03.2010 18:20

@xx1000:

getestet ist sie, aber man kann nur verschiedene Krieger bauen, die Gebäude sind immer die gleichen.

xx1000
29.03.2010 18:11

nartürlich ja
falls du sie noch testen willst würde ich mich gerne zu verfügung stellen

xx1000

andre111
29.03.2010 17:37

Ich habe mal versucht so eine Völkerwahl zu erstellen
Soll ich das ergebniss hier rein stellen?

FG
andre111

xx1000
29.03.2010 16:06

das war jetzt auch nur ein Beispiel
past jezt vieleicht nicht

xx1000

fritz_98
29.03.2010 15:50

Nebelvolk ist aufgrund der Megatruppen sehr stark. Wäre dann "leicht".
Dario hat keine schwachen Einheiten, s. Bastardschwertkämpfer, Kanonentürme, also "mittel", da der Aufbau etwas länger dauert.
Barbaren und schwarze Ritter hingegen sind so sch... lecht, dass man sie mit nem Trupp Kurzschwertkämpfer vergleichen könnte. Aüsserst "schwer"!

xx1000
28.03.2010 21:38

damit jeder gleich berechtigt ist könnte man ja auch machen das die einheiten viel oder venig kosten so das wen zB das nebelvolk vier einheiten hat und die babaren jetzt ein bischen mehr (weil ihre einheiten weniger kosten) trodzdem das nebelvolk gewinen könnte weil die heit dann viel stärker sind.

xx1000

warrior1024
28.03.2010 20:19

@totalwarANGEL:
Nebelvolk schon. Und das ist ganz einfach:
Zuerst wird eine Kopie des Origginals erstellt:

GUIAction_BuyMilitaryUnit_Orig = GUIAction_BuyMilitaryUnit


Dann wird das Original verändert:
Es wird überprüft, ob der übergebene Parameter(Immer UpgradeCategories.irgendwas) die UpgradeCategorie von dem Schwertkämpfer ist. Wenn ja, dann ändere den Parameter auf die UpgradeCategorie von dem Nebelvolk-Fernkämpfer ab. Dann führe das Original mit dem manipulierten Parameter aus. Fertig!

@fritz_98:
Das war mal eine Idee für eine Skripterweiterung. Z.B. könnte das Nebelvolk mehr Angriff haben, aber dafür mehr Zeit im Aufbau benötigen. Dario kann am schnellsten aufbauen und hat dafür eher schwache Einheiten. Die Barbaen sind der Mittelweg. Wenn ich nicht schon beschäftigt wäre, würde ich die Idee umsetzen.

totalwarANGEL
28.03.2010 19:28

schwarze ritter kosten übrigens gar keinen sold

sag_ich_euch_nicht
Gast
28.03.2010 17:08

so ähnlich wie siedler III und IV
manche wären aber dan im nachteil
(weil das nebelvolk viel mehr truppen rekrutieren kann und die steuern niedrig sind)
aber wen das volk der schwierigkeitsgrad wäre ging das nartürlich

fritz_98
28.03.2010 15:39

Das wäre doch mal lustig ne Art (Kampf)-Map zu machen, in der man zuerst sein Volk wählen kann: Barbaren, schwarze Ritter, Nebelvolk...usw.

totalwarANGEL
27.03.2010 20:47

hey, wie haste das geschafft? und was mich viel mehr interessiert: kann man das auch den KI's beibringen?

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

Impressum