Map im Original Spiel

» Siedler Map Source Forum » Siedler DEdK Script Forum » Map im Original Spiel

Seiten: 1

Shirhix
#1
04.08.2020 23:51
Beiträge: 9

Map im Original Spiel

Hallo Zusammen

Ich bin neu hier und habe vor kurzem mit dem Skripten angefangen.
Ich benutze den Map Editor den ich durch die History-Edition bekommen habe und gilt anscheinend nur fürs Base Game.

Da das Skriptwiki nicht mehr existiert habe ich versucht durch abschauen von den Original Karten es zu erlernen. Mit eher weniger erfolg, darum habe ich eine Frage im Voraus:

- Der Skriptassistent für den Editor ist nutzlos, es wird kein Code erzeugt. Ist das normal? Scheint mir, dass es nur für die Expansionen sind.

Nun zu meinem jetzigen Skript

--------------------------------------------------------------------------------
-- MapName: XXX
--
-- Author: XXX
--
--------------------------------------------------------------------------------

-- Include main function
Script.Load( Folders.MapTools.."Main.lua" )
-- Script.Load("Data\\Script\\MapTools\\Main.lua")

--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called from main script to initialize the diplomacy states
function Mission_InitDiplomacy()

	Logic.SetDiplomacyState(1, 2, Diplomacy.Hostile)

end


--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called from main script to init all resources for player(s)
function Mission_InitResources()
end

--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called to setup Technology states on mission start
function Mission_InitTechnologies()
end

--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called on game start and after save game is loaded, setup your weather gfx
-- sets here
function Mission_InitWeatherGfxSets()

	Logic.SetupNormalWeatherGfxSet()
	
end

--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called on game start you should setup your weather periods here
function Mission_InitWeather()

	Logic.AddPeriodicSummer(10)
	
end

--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called on game start and after save game to initialize player colors
function Mission_InitPlayerColorMapping()

	Display.SetPlayerColorMapping(2, ENEMY_COLOR2)

end
	
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called on game start after all initialization is done
function Mission_FirstMapAction()

	Tools.GiveResouces(1, 300, 800, 800, 400,200)
    createPlayer2()
	CreateChestOpener("Pilgrim")

	CreateRandomGoldChests()
	StartChestQuest()
	
	-- EnableDebugging()
	
end



und createPlayer2

function createPlayer2()

	--	describe the player structure
	SetPlayerName(2, "Enemies")
	
    -- function only exists in expansion discs
	-- MapEditor_SetupAI(_playerId, _strength, _range, _techlevel, _position, _aggressiveLevel, _peaceTime)
	
 	-- describtion = {gold, clay, iron, sulfur, stone, wood},
    -- describtion = {gold, clay, iron, sulfur, stone, wood, updateTime},
    -- serflimit,
    -- resourceFocus,
    -- extracting,
    -- rebuild = {delay, randomTime}
    -- constructing,
    -- repairing,
	--	set up default information
	
	local description = {
		-- resources the AI begins with
		resources = {
			gold 	= 2500,
			wood 	= 150,
			clay	= 150,
			iron	= 150,
			stone	= 150,
			sulfur	= 150
		},
		
		-- resources the AI refresh in a certain Time (updateTime in sec.) until they reached resourced
		resfresh = {
			gold 	= 3,
			wood 	= 3,
			clay	= 3,
			iron	= 3,
			stone	= 3,
			sulfur	= 3,
			updateTime = 2
		},
		
		-- additional AI-Setup (optional) -------------
		serflimit		= 5,
		-- resourceFocus
		extracting		= true,
		rebuild = {delay = 25 ,randomTime = 25},
		constructing    = true,
		repairing		= true
		
	}
	
	SetupPlayerAi(2, description)
	
end



Dieses Skript lasse ich im Map Editor "importieren" und teste es dann "LUA OK" alles gut. Doch wenn ich die Map dann starte, ist es als würde nix von diesem Code laufen. Kamera falsch, Gegner nicht in Diplomacy aufgelistet, Gegner Rot anstatt Lila, keine Ressourcen usw.

Das schlimme ist, es hat vorher noch funktioniert bevor ich die Map nochmals durch den Skript-Assistenten gezogen habe weil ich den Namen ändern wollte. Ich versteh nur noch Bahnhof...

Und zu diesem Code mit den Treasure chests ist mir auch ein Rätsel.

Danke im Voraus!

____________________
skripting noob! Bitte nicht weh tun.

Zedeg
#2
05.08.2020 01:38
Beiträge: 428

Hallo Shirhix,

Zitat von Shirhix:
Ich benutze den Map Editor den ich durch die History-Edition bekommen habe und gilt anscheinend nur fürs Base Game.

Nein, der Editor funktioniert für alle drei Versionen.

Zitat von Shirhix:
Da das Skriptwiki nicht mehr existiert

Hier war einmal eine archivierte Version, allerdings kann ich sie zurzeit nicht aufrufen.

Zitat von Shirhix:
Dieses Skript lasse ich im Map Editor "importieren" und teste es dann "LUA OK" alles gut.

Der Prüfer des Editors prüft nur, ob die Syntax von Lua eingehalten wird ...

Zitat von Shirhix:
Doch wenn ich die Map dann starte, ist es als würde nix von diesem Code laufen. Kamera falsch, Gegner nicht in Diplomacy aufgelistet, Gegner Rot anstatt Lila, keine Ressourcen usw.

... doch ob man z. B. eine Funktion mit Argumenten aufruft, die sie zum Absturz bringen, kann der der eingebaute Prüfer nicht erkennen. Wer das hingegen kann, ist der Lua Debugger. Wenn du deine Karte mit dem Debugger startest, sollte er dir sofort eine genaue Fehlermeldung anzeigen. Du kannst dir sogar die entsprechende fehlerhafte Zeile anzeigen lassen (zumindest bei den meisten Fehlerarten).

Zitat von Shirhix:
Und zu diesem Code mit den Treasure chests ist mir auch ein Rätsel.

Du brauchst noch benannte und durchnummerierte Skriptentitäten "GoldChest1" bis "GoldChestxyz" (CreateRandomGoldChests()) bzw. "RandomChest1" bis "RandomChestabc" (CreateRandomChests()). Ansonsten hast du – glaube ich – zumindest in diesem Bereiche alles.

____________________
Journalisten erkundigen sich bei Wissenschaftlern meist nicht nach Grundlagen, sondern eher nach Ergebnissen und Folgerungen. Das erklärt womöglich auch, warum sich Forschungsberichte in den Medien so häufig als feststehende Erkenntnisse lesen, nicht aber als Ideen, Entdeckungen oder Indizien, um die es sich genau genommen in den meisten Fällen handelt. -Axel Bojowski

Play4FuN
#3
05.08.2020 09:48
Beiträge: 704

Hi,

Zitat von Shirhix:
Das schlimme ist, es hat vorher noch funktioniert bevor ich die Map nochmals durch den Skript-Assistenten gezogen habe weil ich den Namen ändern wollte. Ich versteh nur noch Bahnhof...



Wenn du bereits ein Skript hast und im MapEditor dann nochmals den Skript Assistenten verwendest, wird das vorhandene Skript überschrieben (verworfen). Also aufpassen

____________________
LG Play4FuN

Siedler DEdK Mapping + Scripting Tutorials

Zedeg
#4
05.08.2020 10:00
Beiträge: 428

Stimmt, zum Ändern des Kartennamens wählt man daher Datei > Karteninfo und nicht Datei > Karten-/Skript-Assistent

____________________
Journalisten erkundigen sich bei Wissenschaftlern meist nicht nach Grundlagen, sondern eher nach Ergebnissen und Folgerungen. Das erklärt womöglich auch, warum sich Forschungsberichte in den Medien so häufig als feststehende Erkenntnisse lesen, nicht aber als Ideen, Entdeckungen oder Indizien, um die es sich genau genommen in den meisten Fällen handelt. -Axel Bojowski

Shirhix
#5
05.08.2020 19:04
Beiträge: 9

Zitat von Zedeg:
Hallo Shirhix,
Nein, der Editor funktioniert für alle drei Versionen.

Hier war einmal eine archivierte Version, allerdings kann ich sie zurzeit nicht aufrufen.

Der Prüfer des Editors prüft nur, ob die Syntax von Lua eingehalten wird doch ob man z. B. eine Funktion mit Argumenten aufruft, die sie zum Absturz bringen, kann der der eingebaute Prüfer nicht erkennen. Wer das hingegen kann, ist der Lua Debugger. Wenn du deine Karte mit dem Debugger startest, sollte er dir sofort eine genaue Fehlermeldung anzeigen. Du kannst dir sogar die entsprechende fehlerhafte Zeile anzeigen lassen (zumindest bei den meisten Fehlerarten).


Danke für den Debugger, der ist ganz nützlich, dann gings auch ganz leicht die bugs zu entfernen.

Zitat von Zedeg:

Du brauchst noch benannte und durchnummerierte Skriptentitäten "GoldChest1" bis "GoldChestxyz" (CreateRandomGoldChests()) bzw. "RandomChest1" bis "RandomChestabc" (CreateRandomChests()). Ansonsten hast du – glaube ich – zumindest in diesem Bereiche alles.


Jetzt check ich das. Dachte man muss die scriptEntities einfach nur "1", "2" usw. nennen.

Das mit der Karteninfo werd ich mir merken. Zum Glück schreib ich den Code ja immer im Lua Editor, dann geht nix verloren.

Vielen Dank an euch.

____________________
skripting noob! Bitte nicht weh tun.

Shirhix
#6
11.08.2020 17:04
Beiträge: 9

Doch noch mal eine kleine Frage.

Ich habe nun meine Map so gut wie fertig und benutze ja das Basegame als Grundlage, also nicht Nebelreich und auch nicht Legenden.

Ich habe hier auf dem Forum noch keine einzige Spielermap fürs Basegame gesehen. Sorry, bin einfach nicht so ein Fan von den DLCs. Können hier keine Maps vom Basegame hochgeladen werden?

Wie ich gerade sehe, muss man eine der beiden Expansionen auswählen. Muss das sein?

____________________
skripting noob! Bitte nicht weh tun.

mcb
#7
11.08.2020 19:16
Beiträge: 1472

Base maps funktionieren nur mit dem HistoryEdition Mapeditor (den gibts noch nicht so lange, deswegen keine Kategorie hier).
Du kannst sie aber auch mit der Gold spielen, wenn sie mit der HE erstellt wurden.

Seiten: 1

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

Impressum