Script vereinfachung
» Siedler Map Source Forum » Siedler DEdK Script Forum » Script vereinfachung
Seiten: 1
andre111
|
#1 31.01.2010 10:49 Beiträge: 220 |
Magier-Code(Script vereinfachung)
Hallo,
Achtung: Der funktionierende Code ist weiter unten!
ich habe diesen Magier-Script entworfen:
Beispielaufruf:
CreateMAG(1,Entities.PU_Scout,"posMAG",2)
function CreateMAG(_player,_entity,_pos,_gegner) if nachtTagAk == 1 then else InitTagNacht() nachtTagAk = 1 end numerM = numerM or 0 numerM = numerM + 1 RoCreateEntity(_player,_entity,GetPosition(_pos),"MAG"..numerM,0) if not MagAction then MAGTable = { { geg = 0, done = 0, count = false, effeckt = false }, { geg = 0, done = 0, count = false, effeckt = false }, { geg = 0, done = 0, count = false, effeckt = false }, { geg = 0, done = 0, count = false, effeckt = false }, { geg = 0, done = 0, count = false, effeckt = false }, { geg = 0, done = 0, count = false, effeckt = false }, { geg = 0, done = 0, count = false, effeckt = false }, { geg = 0, done = 0, count = false, effeckt = false }, { geg = 0, done = 0, count = false, effeckt = false }, { geg = 0, done = 0, count = false, effeckt = false }, } ControlMag = StartSimpleJob("MAGControl") ControlMagLive = StartSimpleJob("MAGControlLive") MagAction = true end for i = numerM, numerM do MAGTable[i].geg = _gegner end end function MAGControlLive() for i = 1, 10 do if IsExisting("MAG"..i) then if MAGTable[i].done == 0 then if GetHealth("MAG"..i) <= 20 then SetHealth("MAG"..i, 100) MAGTable[i].done = 1 end else if not MAGTable[i].count then if i == 1 then StartCountdown( 60, MAGLive1) elseif i == 2 then StartCountdown( 60, MAGLive2) elseif i == 3 then StartCountdown( 60, MAGLive3) elseif i == 4 then StartCountdown( 60, MAGLive4) elseif i == 5 then StartCountdown( 60, MAGLive5) elseif i == 6 then StartCountdown( 60, MAGLive6) elseif i == 7 then StartCountdown( 60, MAGLive7) elseif i == 8 then StartCountdown( 60, MAGLive8) elseif i == 9 then StartCountdown( 60, MAGLive9) elseif i == 10 then StartCountdown( 60, MAGLive10) end MAGTable[i].count = true end end end end end function MAGLive1() MAGTable[1].count = false MAGTable[1].done = 0 end function MAGLive2() MAGTable[2].count = false MAGTable[2].done = 0 end function MAGLive3() MAGTable[3].count = false MAGTable[3].done = 0 end function MAGLive4() MAGTable[4].count = false MAGTable[4].done = 0 end function MAGLive5() MAGTable[5].count = false MAGTable[5].done = 0 end function MAGLive6() MAGTable[6].count = false MAGTable[6].done = 0 end function MAGLive7() MAGTable[7].count = false MAGTable[7].done = 0 end function MAGLive8() MAGTable[8].count = false MAGTable[8].done = 0 end function MAGLive9() MAGTable[9].count = false MAGTable[9].done = 0 end function MAGLive10() MAGTable[10].count = false MAGTable[10].done = 0 end function MAGControl() for i = 1, 10 do if IsExisting("MAG"..i) then if not MAGTable[i].effeckt then if IstNacht() then posa = GetPosition("MAG"..i) ress = {Logic.GetPlayerEntitiesInArea(MAGTable[i].geg, 0, posa.X, posa.Y, 1800, 1)} for x = 2, ress[1]+1 do if Logic.IsWorker(ress[x]) == 0 and Logic.IsBuilding(ress[x]) == 0 then SetHealth( ress[x], math.ceil(GetHealth(ress[x]) / 2)) posb = GetPosition(ress[x]) Logic.CreateEffect( GGL_Effects.FXMaryDemoralize, posb.X, posb.Y, 1 ) if i == 1 then StartCountdown( 4, MAGNeu1) elseif i == 2 then StartCountdown( 4, MAGNeu2) elseif i == 3 then StartCountdown( 4, MAGNeu3) elseif i == 4 then StartCountdown( 4, MAGNeu4) elseif i == 5 then StartCountdown( 4, MAGNeu5) elseif i == 6 then StartCountdown( 4, MAGNeu6) elseif i == 7 then StartCountdown( 4, MAGNeu7) elseif i == 8 then StartCountdown( 4, MAGNeu8) elseif i == 9 then StartCountdown( 4, MAGNeu9) elseif i == 10 then StartCountdown( 4, MAGNeu10) end MAGTable[i].effeckt = true end end end end end end end function MAGNeu1() MAGTable[1].effeckt = false end function MAGNeu2() MAGTable[2].effeckt = false end function MAGNeu3() MAGTable[3].effeckt = false end function MAGNeu4() MAGTable[4].effeckt = false end function MAGNeu5() MAGTable[5].effeckt = false end function MAGNeu6() MAGTable[6].effeckt = false end function MAGNeu7() MAGTable[7].effeckt = false end function MAGNeu8() MAGTable[8].effeckt = false end function MAGNeu9() MAGTable[9].effeckt = false end function MAGNeu10() MAGTable[10].effeckt = false end
leider kann man damit höchstens 10 Magier erstellen.
Wie bekoome ich es hin, das die Zahl der Magier egal ist?
1.PS: Der 11., 12., 13., ... Magier wird zwar erstellt, hat aber keine der Fähigeiten.
2.PS: Alle benötigten Comfortfunctionen sind dabei(hier wegen der Länge weggelassen)
FG
andre111
Dieser Beitrag wurde von andre111 am 31.01.2010 um 12:35 editiert.
andre111
|
#2 31.01.2010 11:30 Beiträge: 220 |
Man könnte es lösen wenn man der Callback function des Countdowns Parameter übergibt.
Geht das?
FG
andre111
Wladimir
|
#4 31.01.2010 12:15 Beiträge: 489 |
Zitat von andre111:
Ich habs jetzt selbst gelöst
andre111
Wie denn? :interessiertguck:
Außerdem könntest du bitte die Comfortfunktionen beim Namen nennen, damit man weiß, wonach man suchen muss.
Wladimir.
____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!
Gandalf
andre111
|
#5 31.01.2010 12:22 Beiträge: 220 |
Das ist meine Lösung(mit Comfortfunctionen)(einfach rein in den Script):
function CreateMAG(_player,_entity,_pos,_gegner) if nachtTagAk == 1 then else InitTagNacht() nachtTagAk = 1 end numerM = numerM or 0 numerM = numerM + 1 RoCreateEntity(_player,_entity,GetPosition(_pos),"MAG"..numerM,0) if not MagAction then MAGTable = {} ControlMagZ = StartSimpleJob("MAGCount") ControlMag = StartSimpleJob("MAGControl") ControlMagLive = StartSimpleJob("MAGControlLive") MagAction = true end table.insert(MAGTable,{ geg = 0, done = 0, count = false, effeckt = false, zahl = 0, zahlB = 0 }) for i = numerM, numerM do MAGTable[i].geg = _gegner end end function MAGControlLive() for i = 1, table.getn(MAGTable) do if IsExisting("MAG"..i) then if MAGTable[i].done == 0 then if GetHealth("MAG"..i) <= 20 then SetHealth("MAG"..i, 100) MAGTable[i].done = 1 end else if not MAGTable[i].count then MAGTable[i].count = true end end end end end function MAGCount() for i = 1, table.getn(MAGTable) do if IsExisting("MAG"..i) then if MAGTable[i].count then if MAGTable[i].zahl < 60 then MAGTable[i].zahl = MAGTable[i].zahl + 1 else MAGTable[i].count = false MAGTable[i].zahl = 0 MAGTable[i].done = 0 end end end end for i = 1, table.getn(MAGTable) do if IsExisting("MAG"..i) then if MAGTable[i].effeckt then if MAGTable[i].zahlB < 4 then MAGTable[i].zahlB = MAGTable[i].zahlB + 1 else MAGTable[i].effeckt = false MAGTable[i].zahlB = 0 end end end end end function MAGControl() for i = 1, table.getn(MAGTable) do if IsExisting("MAG"..i) then if not MAGTable[i].effeckt then if IstNacht() then posa = GetPosition("MAG"..i) ress = {Logic.GetPlayerEntitiesInArea(MAGTable[i].geg, 0, posa.X, posa.Y, 1800, 1)} for x = 2, ress[1]+1 do if Logic.IsWorker(ress[x]) == 0 and Logic.IsBuilding(ress[x]) == 0 then SetHealth( ress[x], math.ceil(GetHealth(ress[x]) / 2)) posb = GetPosition(ress[x]) Logic.CreateEffect( GGL_Effects.FXMaryDemoralize, posb.X, posb.Y, 1 ) MAGTable[i].effeckt = true end end end end end end end ---------------------------------comfort functionen------------------------------------------------------------ --------------------------------------------------------------------------------------------------------------- function RoCreateEntity(_player,_entity,_pos,_name,_rotation) SetEntityName(Logic.CreateEntity(_entity,_pos.X,_pos.Y,_rotation,_player),_name) end function GetHealth( _entity ) local entityID = GetEntityId( _entity ); if not Tools.IsEntityAlive( entityID ) then return 0; end local MaxHealth = Logic.GetEntityMaxHealth( entityID ); local Health = Logic.GetEntityHealth( entityID ); return ( Health / MaxHealth ) * 100; end function InitTagNacht() rolay={nSimpleJob=0,nSimpleHiResJob=0} StartSimpleJob("RolayStarter") TNParameter = {} Tag(1) end --------übergang Tag auf Nacht------------- function TagNacht() TNParameter.LightA = TNParameter.LightA - 1 TNParameter.LightC = TNParameter.LightC + 1.25 TNParameter.LightD = TNParameter.LightD - 0.775 TNParameter.LightE = TNParameter.LightE - 0.975 TNParameter.LightF = TNParameter.LightF - 0.975 TNParameter.LightG = TNParameter.LightG - 3.2 TNParameter.LightH = TNParameter.LightH - 2.6 TNParameter.LightI = TNParameter.LightI - 1.8 TNParameter.FogC = TNParameter.FogC + 0.4 TNParameter.FogD = TNParameter.FogD + 0.15 TNParameter.FogE = TNParameter.FogE - 0.1 TNParameter.FogF = TNParameter.FogF - 50 Display.SetRenderUseGfxSets(1) Display.GfxSetSetFogParams(1, 0.0, 1.0, 1, math.floor ( TNParameter.FogC + 0.5 ), math.floor ( TNParameter.FogD + 0.5 ), math.floor ( TNParameter.FogE + 0.5 ), math.floor ( TNParameter.FogF + 0.5 ), 10500) Display.GfxSetSetLightParams(1, 0.0, 1.0, math.floor ( TNParameter.LightA + 0.5 ), -15, math.floor ( TNParameter.LightC + 0.5 ), math.floor ( TNParameter.LightD + 0.5 ), math.floor ( TNParameter.LightE + 0.5 ), math.floor ( TNParameter.LightF + 0.5 ), math.floor ( TNParameter.LightG + 0.5 ), math.floor ( TNParameter.LightH + 0.5 ), math.floor ( TNParameter.LightI + 0.5 )) if TNParameter.LightA == 0 then Nacht() return true elseif TNParameter.LightA == -30 then end end ----übergang von Nacht auf Tag---------- function NachtTag() TNParameter.LightA = TNParameter.LightA - 1.5 TNParameter.LightC = TNParameter.LightC - 1.25 TNParameter.LightD = TNParameter.LightD + 0.775 TNParameter.LightE = TNParameter.LightE + 0.975 TNParameter.LightF = TNParameter.LightF + 0.975 TNParameter.LightG = TNParameter.LightG + 3.2 TNParameter.LightH = TNParameter.LightH + 2.6 TNParameter.LightI = TNParameter.LightI + 1.8 TNParameter.FogC = TNParameter.FogC - 0.4 TNParameter.FogD = TNParameter.FogD - 0.15 TNParameter.FogE = TNParameter.FogE + 0.1 TNParameter.FogF = TNParameter.FogF + 50 Display.SetRenderUseGfxSets(1) Display.GfxSetSetFogParams(1, 10.0, 10.0, 1, math.floor ( TNParameter.FogC + 0.5 ), math.floor ( TNParameter.FogD + 0.5 ), math.floor ( TNParameter.FogE + 0.5 ), math.floor ( TNParameter.FogF + 0.5 ), 10500) Display.GfxSetSetLightParams(1, 0.0, 1.0, 30, math.floor ( TNParameter.LightA + 0.5 ), math.floor ( TNParameter.LightC + 0.5 ), math.floor ( TNParameter.LightD + 0.5 ), math.floor ( TNParameter.LightE + 0.5 ), math.floor ( TNParameter.LightF + 0.5 ), math.floor ( TNParameter.LightG + 0.5 ), math.floor ( TNParameter.LightH + 0.5 ), math.floor ( TNParameter.LightI + 0.5 )) nachtzahlaktiv = false if TNParameter.LightA == -15 then Tag() return true end end ----Lichtparameter an Nacht anpassen--- function Nacht() TNParameter.LightA = 45 TNParameter.LightC = 0 TNParameter.LightD = 105 TNParameter.LightE = 105 TNParameter.LightF = 105 TNParameter.LightG = 0 TNParameter.LightH = 0 TNParameter.LightI = 0 TNParameter.FogA = 10.0 TNParameter.FogB = 10.0 TNParameter.FogC = 54 TNParameter.FogD = 54 TNParameter.FogE = 54 TNParameter.FogF = 2000 local lo = zahlnachte + 1 if lo == 8 then lo = 1 zahlnachte = 1 end if lo == 1 then Message("Die Nacht bricht herein") elseif lo == 2 then Message("Es ist nacht") elseif lo == 3 then Message("Die Nacht verschlingt das Land") elseif lo == 4 then Message("Der Vollmond leuchtet hell") elseif lo == 5 then Message("Finsternis bedeckt das Land") elseif lo == 6 then Message("Die Sonne ist im Meer ertrunken") elseif lo == 7 then Message("Die Kreaturen der Finsternis gehen auf Jagt") end TagA = 0 NachtA = 1 if not nachtzahlaktiv then TagUndNacht.Nacht() nachtzahlaktiv = true end end ----Lichtparameter an tag anpassen--- function Tag(_Start) TNParameter.LightA = 40 TNParameter.LightC = -50 TNParameter.LightD = 136 TNParameter.LightE = 144 TNParameter.LightF = 144 TNParameter.LightG = 128 TNParameter.LightH = 104 TNParameter.LightI = 72 TNParameter.FogA = 0.0 TNParameter.FogB = 1.0 TNParameter.FogC = 38 TNParameter.FogD = 48 TNParameter.FogE = 58 TNParameter.FogF = 4000 _Start = _Start or 0 if _Start == 0 then TagUndNacht.Tag() TagA = 1 NachtA = 0 local lo = zahltage + 1 if lo == 8 then lo = 1 zahltage = 1 end if lo == 1 then Message("Es ist Tag") elseif lo == 2 then Message("Der Tag bricht an") elseif lo == 3 then Message("Der ertse Hahnenschrei hallt \195\188bers Land") elseif lo == 4 then Message("Die Sonne steigt aus den Schenkeln des Meeres") elseif lo == 5 then Message("Das Licht vertreibt die Finsternis") elseif lo == 6 then Message("Die Sonne scheint wieder") elseif lo == 7 then Message("Die Stadt erwacht zu neuem Leben") end else TagA = 1 NachtA = 0 zahltage = 0 zahlnachte = 0 TagUndNacht.Start() end end ---Rolays----- TagUndNacht = { Start = function() local ze = 120 table.insert(rolay,{ soll=ze, ist=0, zaehler=1, actionEnd = function() StartSimpleJob("TagNacht") end }) end, Nacht = function() local ze = 120 table.insert(rolay,{ soll=ze, ist=0, zaehler=1, actionEnd = function() StartSimpleJob("NachtTag") end }) end, Tag = function() local ze = 120 table.insert(rolay,{ soll=ze, ist=0, zaehler=1, actionEnd = function() StartSimpleJob("TagNacht") end }) end, } ------------------------------------------comfort abfragen------------------------------------------------- -----------------------------------------Abfrage ob tag ist-------------------------------------------------- function IstTag() if TagA == 1 then return true else return false end end ---------------------------------------Abrage ob Nacht ist---------------------------------------------------- function IstNacht() if NachtA == 1 then return true else return false end end ----------------------------------------------------------------------------------------------------------------------------------------------------------- -----------------------------Rolay Comfort Funktionnen---------------------------------------------------------------------------------------------------- function RolayStarter() if not rolay then rolay={ nSimpleJob=0,nSimpleHiResJob=0} end for i = 1, table.getn(rolay) do if not rolay[i].aktiv then rolay[i].aktiv = true if rolay[i].simpleHiResJob then rolay.nSimpleHiResJob=rolay.nSimpleHiResJob + 1 if rolay.nSimpleHiResJob == 1 then StartSimpleHiResJob("RolayHiRes") end else rolay.nSimpleJob=rolay.nSimpleJob+1 if rolay.nSimpleJob == 1 then StartSimpleJob("Rolay") end end end end end function Rolay() for i = table.getn(rolay),1,-1 do if not rolay[i].simpleHiResJob then if rolay[i].zaehler < 0 then if rolay[i].sonderAction then if rolay[i].ist <= rolay[i].sonderSoll and not rolay[i].sonderErledigt then rolay[i].sonderErledigt=true rolay[i].sonderAction(rolay[i].ist, rolay[i].variablen) end end if rolay[i].ist <= rolay[i].soll then rolay[i].erreicht=true end else if rolay[i].sonderAction then if rolay[i].ist >= rolay[i].sonderSoll and not rolay[i].sonderErledigt then rolay[i].sonderErledigt=true rolay[i].sonderAction(rolay[i].ist, rolay[i].variablen) end end if rolay[i].ist >= rolay[i].soll then rolay[i].erreicht=true end end if rolay[i].erreicht then if type(rolay[i].actionEnd) == "function" then rolay[i].actionEnd() end rolay.nSimpleJob=rolay.nSimpleJob-1 if rolay.nSimpleJob == 0 then table.remove(rolay,i) return true else rolay[i].toRemove=true end end if not rolay[i].toRemove then rolay[i].ist = rolay[i].ist + rolay[i].zaehler if type(rolay[i].action) == "function" then rolay[i].action(rolay[i].ist, rolay[i].variablen) end end end end for i = table.getn(rolay),1,-1 do if rolay[i].toRemove then table.remove(rolay,i) end end end function RolayHiRes() for i = table.getn(rolay),1,-1 do if rolay[i].simpleHiResJob then if rolay[i].zaehler <0 then if rolay[i].sonderAction then if rolay[i].ist <= rolay[i].sonderSoll and not rolay[i].sonderErledigt then rolay[i].sonderErledigt=true rolay[i].sonderAction(rolay[i].ist, rolay[i].variablen) end end if rolay[i].ist <= rolay[i].soll then rolay[i].erreicht=true end else if rolay[i].sonderAction then if rolay[i].ist >= rolay[i].sonderSoll and not rolay[i].sonderErledigt then rolay[i].sonderErledigt=true rolay[i].sonderAction(rolay[i].ist, rolay[i].variablen) end end if rolay[i].ist >= rolay[i].soll then rolay[i].erreicht=true end end if rolay[i].erreicht then if type(rolay[i].actionEnd) == "function" then rolay[i].actionEnd(rolay[i].ist, rolay[i].variablen) end rolay.nSimpleHiResJob=rolay.nSimpleHiResJob-1 if rolay.nSimpleHiResJob == 0 then table.remove(rolay,i) return true else rolay[i].toRemove=true end end if not rolay[i].toRemove then rolay[i].ist = rolay[i].ist + rolay[i]. zaehler if type(rolay[i].action) == "function" then rolay[i].action(rolay[i].ist, rolay[i].variablen) end end end end for i = table.getn(rolay),1,-1 do if rolay[i].toRemove then table.remove(rolay,i) end end end
zur Anwendung:
_player = Der Player dem der Magier gehört
_entity = Die entity(Gebäude machen wenig sinn)
_pos = die Anfangs Position des Magiers
_gegner = Wen der Magier "verzaubert"
Bsp. Aufruf:
CreateMAG(1,Entities.PU_Scout,"posMAG",2)
zu den Magiern
-fällt ihr Leben unter 20% dann wird es auf 100% gesetzt(vorausgesetzt es sind 60 Sekunden seit der letzten Heilung vergangen)
-bei Nacht ziehen sie einem Gegner(ID bei _gegner angegeben) in ihrer umgebung die Hälfte seiner Lebenspunkte ab(alle 4 sekunden)
Bitte mich fragen, wenn man es in einer Map benutzt, die man voröffentlichen will.(Privat darf es jeder nutzen)
@Wladimir:
Wenn du wissen willst wie ich es gelöst habe, dann schau dir mal MAGCount() genauer an.
FG
andre111
Dieser Beitrag wurde von andre111 am 31.01.2010 um 12:30 editiert.
andre111
|
#6 31.01.2010 12:34 Beiträge: 220 |
Vorschläge und Verbesserungs-Wünsche
Vorschläge und Verbesserungswünsche kann man hier eintragen
FG
andre111
fritz_98
|
#7 31.01.2010 12:47 Beiträge: 472 |
Deine Magier-Funktion ist ganz OK.
Was mich mehr interessiert: Wo hast du die Tag/Nacht-Funktion her?
Arbeite nämlich just in diesem Moment ebenfalls an sowas. Allerdings kann man dann den Zyklus an sein GFX-Set anpassen.
LG
Fritz
andre111
|
#8 31.01.2010 12:51 Beiträge: 220 |
Zitat von fritz_98:
Was mich mehr interessiert: Wo hast du die Tag/Nacht-Funktion her?
Arbeite nämlich just in diesem Moment ebenfalls an sowas.
@fritz_98:
Gescriptet!
zu deiner function Tag-Nacht:
Wie, ans GFX_Set anpassen? :interesiert sei:
FG
andre111
fritz_98
|
#9 31.01.2010 13:12 Beiträge: 472 |
Es gibt doch 5 einstellbare GFX-Sets: Evelance, Normal, Steppe, Moor und Hochland.
Wenn ich jetzt deine Tag/Nacht-Funktion nehme und Landschaftsset "Steppe" einstelle (SetupSteppeWeatherGfxSet()) wird es ziemlich abrupt dunkler. Ich möchte das einstellbar machen.
Leider fehlen mir sämtliche Informationen über die Sets. Hab daraufhin gleich Noigi angeschrieben, mal sehen, ob er da weiterhelfen kann...
Noch dazu würde es bei deinem Code zu dem Fehler kommen, dass sich der Tag/Nacht-Wechsel nicht mit verschiedenen Wetterperioden verträgt. Auch das habe ich berücksichtigt.
Fritz
aCid
|
#10 31.01.2010 14:19 Beiträge: 275 |
Tag-Nacht-abrupt: http://www.net-news-global.de/...ps_tricks:sonstige:tagundnacht
Tag-Nacht-fliessend: http://www.siedler-portal.de/s...1342-tag-und-nachtwechsel.html
Da kann man sich doch die Arbeit sparen fritz. Oder berücksichtigen die beiden das Wetter nicht???
Vielleicht findest da auch Ansätze zu den Wettersets.
____________________
Das ist und bleibt ein Spiel! - Wir sind hier nicht vor Gericht.
----------------------------------------------------------------------
Mapperhilfen für S5:
http://www.siedler-maps.de/forum/Siedler-DEdK-Script-Forum-27/index.htm
http://www.siedler-maps.de/for...und-andere-Ressourcen-8688.htm
http://www.siedler-maps.de/for...unktionen-Skripte-etc-8706.htm
fritz_98
|
#11 31.01.2010 14:46 Beiträge: 472 |
Mensch, aCid!
Da war ich doch schon lange, immer werden Wetter und GFX-Sets nicht beachtet. Beim Peermanent-Wiki wechselt das immer zwischen dem "Normal"-GFX-Set und im Siedler-Portal ist des 2. Set reine Improvisation. Ausserdem wird das mit StartCountdown(1,...) gemacht. Argh!
aCid
|
#12 31.01.2010 14:54 Beiträge: 275 |
man muss doch mal nachfragen.
und schadet ja nicht, wenn man die lösungen nochmal ins Gedächtnis ruft. Vielleicht findet da jemand ne Lösung, die für ihn schon ausreicht.
Was willst du statt StartCountdown nutzen? Nen SimpleJob? Nen Counter.Tick?
Ne gewisse Abfrage brauchst du ja zur Zeitmessung??? :-/
____________________
Das ist und bleibt ein Spiel! - Wir sind hier nicht vor Gericht.
----------------------------------------------------------------------
Mapperhilfen für S5:
http://www.siedler-maps.de/forum/Siedler-DEdK-Script-Forum-27/index.htm
http://www.siedler-maps.de/for...und-andere-Ressourcen-8688.htm
http://www.siedler-maps.de/for...unktionen-Skripte-etc-8706.htm
fritz_98
|
#13 31.01.2010 14:56 Beiträge: 472 |
function HalloIchBinEinJobDer15MinutenAbzaehlt() if Counter.Tick2("undIchBinDerPassendeCounterDazu",15*60) then Geschafft() return true end end
Alles vollkommen ohne StartCountdown().
LG
Fritz
aCid
|
#14 31.01.2010 15:03 Beiträge: 275 |
Warum nicht Counter.Tick? Gibt es da gravierende Unterschiede zu Counter.Tick2?
____________________
Das ist und bleibt ein Spiel! - Wir sind hier nicht vor Gericht.
----------------------------------------------------------------------
Mapperhilfen für S5:
http://www.siedler-maps.de/forum/Siedler-DEdK-Script-Forum-27/index.htm
http://www.siedler-maps.de/for...und-andere-Ressourcen-8688.htm
http://www.siedler-maps.de/for...unktionen-Skripte-etc-8706.htm
fritz_98
|
#15 31.01.2010 15:04 Beiträge: 472 |
Benutze immer Counter.Tick2.
Counter.Tick muss man glaube ich noch ausserhalb des Jobs festlegen. (Bin mir nicht sicher)
Fakt ist: Counter.Tick2 hat mir bisher treue Dienste geleistet.
aCid
|
#16 31.01.2010 15:08 Beiträge: 275 |
Ahh okay. Bei mir ist es vice versa.
Counter.Tick braucht auch nichts Extra.
____________________
Das ist und bleibt ein Spiel! - Wir sind hier nicht vor Gericht.
----------------------------------------------------------------------
Mapperhilfen für S5:
http://www.siedler-maps.de/forum/Siedler-DEdK-Script-Forum-27/index.htm
http://www.siedler-maps.de/for...und-andere-Ressourcen-8688.htm
http://www.siedler-maps.de/for...unktionen-Skripte-etc-8706.htm
fritz_98
|
#17 31.01.2010 18:43 Beiträge: 472 |
Hab jetzt endlich einen Weg gefunden, die Landschaftssets herauszufinden. Danke, Noigi: Dein "Hackertipp" war eine Erleuchtung!
Jetzt kanns weitergehen.. hehe.
Fritz
andre111
|
#18 31.01.2010 18:50 Beiträge: 220 |
Zitat von fritz_98:
Hab jetzt endlich einen Weg gefunden, die Landschaftssets herauszufinden. Danke, Noigi: Dein "Hackertipp" war eine Erleuchtung!
Jetzt kanns weitergehen.. hehe.
Fritz
Wie ist denn der Weg?
FG
andre111
fritz_98
|
#19 01.02.2010 14:49 Beiträge: 472 |
Ein kleiner Hack der Funktionen Display.GfxSetSetFogParams() und Display.GfxSetSetLightParams().
Display.GfxSetSetFogParams_Orig = Display.GfxSetSetFogParams function Display.GfxSetSetFogParams(a,b,c,d,e,f,g,h,i) Display.GfxSetSetFogParams_Orig(a,b,c,d,e,f,g,h,i) local s = ""..a.." "..b.." "..c.." "..d.." "..e.." "..f.." "..g.." "..h.." "..i.."" assert(false,s) end Display.GfxSetSetLightParams_Orig = Display.GfxSetSetLightParams function Display.GfxSetSetLightParams(a, b, c, d, e, f, g,h,i, j,k,l) Display.GfxSetSetLightParams_Orig(a, b, c, d, e, f, g,h,i, j,k,l) local s = ""..a.." "..b.." "..c.." "..d.." "..e.." "..f.." "..g.." "..h.." "..i.." "..j.." "..k.." "..l.."" assert(false,s) end
Wenn du dann dein gewünschtes Landschaftsset einstellst, bekommst du die Settings mit einer Fehlermeldung, die du dann schön in der Zwischenablage hast und in dein Skript einfügen kannst.
Fritz
Seiten: 1