utilscripts:support
Inhaltsverzeichnis
Support Script
Man stelle sich einen Händler (oder jemand anderen) vor, der gegen eine kleine Spende dem Spieler ein paar zusätliche Rohstoffe in unregelmäßigen Abständen schenkt. Ihr braucht dafür die Tribut-Comfortfunktion von Chromix.
Anwendung
local supportTable = { Cost = {Gold = 250}, -- Die "Spende" TributeText = Umlaute("Für 250 Taler besorgt euch der Händler zusätzliche Rohstoffe."), -- Der Text der im Tributmenü stehen soll FinishedMessage = "Der Händler hat die Taler verbraucht", -- Die Nachricht, die erscheint, wenn der Händler seine Arbeit einstellt MinRnd = 3, -- Minimale Anzahl an Unterstützung pro Tribut MaxRnd = 5, -- Maximale Anzahl an Unterstützung pro Tribut MinTick = 60, -- Minimale Wartezeit auf Unterstützung MaxTick = 120, -- Maximale Wartezeit auf Unterstützung Resources = { {"Wood", 200, 500}, -- Resource, minimale Menge, maximale Menge {"Clay", 200, 500}, {"Stone", 200, 400}, {"Iron", 200, 300}, {"Sulfur", 100, 200}, } } InitSupport(supportTable)
Benötigter Code
InitSupport = function( _Support ) if _Support ~= nil then gvSupport = _Support end gvSupport.IsActive = true local tribute = { playerId = gvMission.PlayerID, text = gvSupport.TributeText, cost = gvSupport.Cost, Callback = function() Counter.SetLimit("Support_Tick", GetRandom(gvSupport.MinTick, gvSupport.MaxTick)) Counter.SetLimit("Support_RndTick", GetRandom(gvSupport.MinRnd, gvSupport.MaxRnd)) StartSimpleJob("SupportGiveRessources") end, } AddTribute(tribute) end StopSupport = function() gvSupport.IsActive = false end SupportGiveRessources = function() if Counter.Tick("Support_Tick") then local n = GetRandom(table.getn(gvSupport.Resources)) local resource = gvSupport.Resources[n][1] local amount = math.floor(GetRandom(gvSupport.Resources[n][2], gvSupport.Resources[n][3]) / 10) * 10 Logic.AddToPlayersGlobalResource(gvMission.PlayerID, ResourceType[resource], amount) Sound.PlayGUISound(GetRandom(732, 736), 0); local messages = { Gold = "@color:255,255,0 Taler", Wood = "@color:128,64,0 Holz", Clay = "@color:255,128,0 Lehm", Stone = "@color:128,128,128 Steine", Iron = "@color:192,192,192 Eisen", Sulfur = "@color:255,255,128 Schwefel", } Message("Ihr habt " .. amount .. " " .. messages[resource] .. " @color:255,255,255 bekommen!") if Counter.Tick("Support_RndTick") then Message(gvSupport.FinishedMessage) if gvSupport.IsActive then InitSupport() end return true else Counter.SetLimit("Support_Tick", GetRandom(gvSupport.MinTick, gvSupport.MaxTick)) end end end
Zusätzliche Code für bessere Zufallszahlen
Der Code ist optional. Wenn er ins Script kopiert wird, werden nicht immer die gleichen Zufallszahlen erstellt
Siehe: GetRandom()
utilscripts/support.txt · Zuletzt geändert: 2021/09/18 19:15 von 127.0.0.1