PDA

View Full Version : Exception bei Energie-Ausgleichs-Script



Tavaron
11-05-2012, 15:16
Folgender Fehler tritt auf, wenn ich versuche meine Energie auszugleichen. Als Workaround habe ich versucht das ganze mit Math.Round(zahl, 2) zu runden aber der Fehler tritt weiterhin auf.


[Exception: Value 0,200000000000045 is higher than possible amount '0,2']
bei stne.TBaseShipActions.HauptenergieErzeugen(Double Erzeugen, Boolean IgnoreLimit, EShipEnergieSituation Situation, TShipRessources RessourceOffset) in D:\source\jack\dev1\projects\stne\game\Core\ShipAc tion.cs:Zeile 2333.
bei stne.TBeam.startTransaktion() in D:\source\jack\dev1\projects\stne\game\Core\Beam.c s:Zeile 638.
bei stne.TBeam._Execute() in D:\source\jack\dev1\projects\stne\game\Core\Beam.c s:Zeile 262.
bei stne.TBeam.Execute() in D:\source\jack\dev1\projects\stne\game\Core\Beam.c s:Zeile 163.
bei stne.TBaseShipActions.Beamen(IShipPlanet Obj2, EBeamMode Mode, TLagerHashTableEx Waren) in D:\source\jack\dev1\projects\stne\game\Core\ShipAc tion.cs:Zeile 4634.
bei stne.TUserShipAction.Beame(IShipPlanet Obj2, EBeamMode Mode, TLagerHashTableEx Waren) in D:\source\jack\dev1\projects\stne\game\Core\ShipMu ltiAction.cs:Zeile 1039.
bei stne.Scripting.Types.CBaseShipManager.Transferiere ZuSchiff(Int32 ToShipID, Double Anzahl, EBeamRessource Ressource) in D:\source\jack\dev1\projects\stne\game\Scripting\O bjects.cs:Zeile 2747.

[TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht.]
bei System.RuntimeMethodHandle._InvokeMethodFast(IRunt imeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
bei System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
bei larne.scripting.TScriptObjectMemberNative.GetValue Internal(TScriptContext Context, Object obj, Object[] Index) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 2667.
bei larne.scripting.TScriptObjectMemberNative.GetValue (TScriptContext Context, TCodeExpressionObjectMember CallExp, Object obj, Object[] Index) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 2656.
bei larne.scripting.Expressions.TCodeExpressionObjectM ember.Get(TScriptContext Context) in D:\source\jack\dev1\projects\shared\larne.scriptin g\ScriptExpressions.cs:Zeile 376.
bei larne.scripting.Commands.TCodeCommandExpressionCal l.Process(TScriptContext Context) in D:\source\jack\dev1\projects\shared\larne.scriptin g\ScriptCommands.cs:Zeile 80.
bei larne.scripting.TScriptContext.ExecuteInternal() in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1194.

[Exception: Das Script hat einen Laufzeitfehler verursacht. Zeile: 874, Spalte: 15, Token: 'Schiff', Script: 'Bib_Staffel']
bei larne.scripting.TScriptContext.ExecuteInternal() in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1209.
bei larne.scripting.TScriptContext.CallMethod(TScriptO bjectMemberCustom mem, TCodeExpressionObjectMember Caller, Object[] Args, CObject Instance) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1015.
bei larne.scripting.TScriptContext.CallMethod(TCodeExp ressionObjectMember Caller, Object[] Args, CObject Instance) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 973.
bei larne.scripting.TScriptObjectMemberCustom.GetValue (TScriptContext Context, TCodeExpressionObjectMember CallExp, Object obj, Object[] Index) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1852.
bei larne.scripting.Expressions.TCodeExpressionObjectM ember.Get(TScriptContext Context) in D:\source\jack\dev1\projects\shared\larne.scriptin g\ScriptExpressions.cs:Zeile 376.
bei larne.scripting.Commands.TCodeCommandExpressionCal l.Process(TScriptContext Context) in D:\source\jack\dev1\projects\shared\larne.scriptin g\ScriptCommands.cs:Zeile 80.
bei larne.scripting.TScriptContext.ExecuteInternal() in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1194.

[Exception: Das Script hat einen Laufzeitfehler verursacht. Zeile: 874, Spalte: 15, Token: 'Schiff', Script: 'Bib_Staffel']
bei larne.scripting.TScriptContext.ExecuteInternal() in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1209.
bei larne.scripting.TScriptContext.CallMethod(TScriptO bjectMemberCustom mem, TCodeExpressionObjectMember Caller, Object[] Args, CObject Instance) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1015.
bei larne.scripting.TScriptContext.CallMethod(TCodeExp ressionObjectMember Caller, Object[] Args, CObject Instance) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 973.
bei larne.scripting.TScriptObjectClassCustom.CallConst ructor(TScriptContext Context, CObject obj, TCodeExpressionCreateScriptObject Caller, Object[] Args) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1674.
bei larne.scripting.Expressions.TCodeExpressionCreateS criptObject.Get(TScriptContext Context) in D:\source\jack\dev1\projects\shared\larne.scriptin g\ScriptExpressions.cs:Zeile 190.
bei larne.scripting.Commands.TCodeCommandDim.Process(T ScriptContext Context) in D:\source\jack\dev1\projects\shared\larne.scriptin g\ScriptCommands.cs:Zeile 150.
bei larne.scripting.TScriptContext.ExecuteInternal() in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1194.

[Exception: Das Script hat einen Laufzeitfehler verursacht. Zeile: 874, Spalte: 15, Token: 'Schiff', Script: 'Bib_Staffel']
bei larne.scripting.TScriptContext.ExecuteInternal() in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1209.
bei larne.scripting.TScriptContext.CallMethod(TScriptO bjectMemberCustom mem, TCodeExpressionObjectMember Caller, Object[] Args, CObject Instance) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1015.
bei larne.scripting.TScriptContext.CallMethod(TCodeExp ressionObjectMember Caller, Object[] Args, CObject Instance) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 973.
bei larne.scripting.TScriptObjectMemberCustom.GetValue (TScriptContext Context, TCodeExpressionObjectMember CallExp, Object obj, Object[] Index) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1852.
bei larne.scripting.Expressions.TCodeExpressionObjectM ember.Get(TScriptContext Context) in D:\source\jack\dev1\projects\shared\larne.scriptin g\ScriptExpressions.cs:Zeile 376.
bei larne.scripting.Expressions.TCodeExpressionObjectM ember.GetParameters(TScriptContext Context, TScriptParameterInfo[] ParamInfo) in D:\source\jack\dev1\projects\shared\larne.scriptin g\ScriptExpressions.cs:Zeile 312.
bei larne.scripting.Expressions.TCodeExpressionObjectM ember.Get(TScriptContext Context) in D:\source\jack\dev1\projects\shared\larne.scriptin g\ScriptExpressions.cs:Zeile 374.
bei larne.scripting.Commands.TCodeCommandExpressionCal l.Process(TScriptContext Context) in D:\source\jack\dev1\projects\shared\larne.scriptin g\ScriptCommands.cs:Zeile 80.
bei larne.scripting.TScriptContext.ExecuteInternal() in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1194.

[Exception: Das Script hat einen Laufzeitfehler verursacht. Zeile: 874, Spalte: 15, Token: 'Schiff', Script: 'Bib_Staffel']
bei larne.scripting.TScriptContext.ExecuteInternal() in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1209.
bei larne.scripting.TScriptContext.CallMethod(TScriptO bjectMemberCustom mem, TCodeExpressionObjectMember Caller, Object[] Args, CObject Instance) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1015.
bei larne.scripting.TScriptContext.CallMethod(TCodeExp ressionObjectMember Caller, Object[] Args, CObject Instance) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 973.
bei larne.scripting.TScriptObjectMemberCustom.GetValue (TScriptContext Context, TCodeExpressionObjectMember CallExp, Object obj, Object[] Index) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1852.
bei larne.scripting.Expressions.TCodeExpressionObjectM ember.Get(TScriptContext Context) in D:\source\jack\dev1\projects\shared\larne.scriptin g\ScriptExpressions.cs:Zeile 376.
bei larne.scripting.Commands.TCodeCommandExpressionCal l.Process(TScriptContext Context) in D:\source\jack\dev1\projects\shared\larne.scriptin g\ScriptCommands.cs:Zeile 80.
bei larne.scripting.TScriptContext.ExecuteInternal() in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1194.

[Exception: Das Script hat einen Laufzeitfehler verursacht. Zeile: 874, Spalte: 15, Token: 'Schiff', Script: 'Bib_Staffel']
bei larne.scripting.TScriptContext.ExecuteInternal() in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1209.
bei larne.scripting.TScriptContext.Execute(Int32 StartLine) in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1246.
bei larne.scripting.TScriptContext.Execute() in D:\source\jack\dev1\projects\shared\larne.scriptin g\Script.cs:Zeile 1281.
bei stne.TScript.ExecuteInternal() in D:\source\jack\dev1\projects\stne\game\Core\Temp3. cs:Zeile 1088.
bei stne.TScript.ExecuteDirect() in D:\source\jack\dev1\projects\stne\game\Core\Temp3. cs:Zeile 999.
bei stne.TScript.EnsureExecuted() in D:\source\jack\dev1\projects\stne\game\Core\Temp3. cs:Zeile 1144.
bei stne.wf_ScriptEdit.pg_ep_Website(THtmlControl Container) in D:\source\jack\dev1\projects\stne\game\WebForms\Sc riptEdit.cs:Zeile 1009.
bei stne.wf_ScriptEdit.pg_TabControl() in D:\source\jack\dev1\projects\stne\game\WebForms\Sc riptEdit.cs:Zeile 609.
bei stne.wf_ScriptEdit.pg_Edit() in D:\source\jack\dev1\projects\stne\game\WebForms\Sc riptEdit.cs:Zeile 535.
bei stne.wf_ScriptEdit.CreatePage() in D:\source\jack\dev1\projects\stne\game\WebForms\Sc riptEdit.cs:Zeile 209.
bei stne.TstneBasePage.CallCreatePage() in D:\source\jack\dev1\projects\stne\game\Core\WebCon trols.cs:Zeile 191.
bei stne.TstneGamePage.CallCreatePage() in D:\source\jack\dev1\projects\stne\game\Core\WebCon trols.cs:Zeile 980.
bei stne.wf_ScriptEdit.Run() in D:\source\jack\dev1\projects\stne\game\WebForms\Sc riptEdit.cs:Zeile 99.
bei stne.wf_Game.Page_Load(Object sender, EventArgs e) in D:\source\jack\dev1\projects\stne\game\Game.aspx.c s:Zeile 140.
bei System.Web.UI.Control.LoadRecursive()
bei System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Assembly: larne.scripting.dll
Time: 11.05.2012 15:11:50
Server: DE1
User-ID: 62789
STNE-Version: 1.0.74.487
Compiled at: 09.05.2012 22:41:05
Compiled from: Jack

Hier der Entsprechende Code. Der Fehler tritt in der Zeile mit TransferToShip auf.


function EnergyEqualize() As Double {
Var j As Integer;
Var transfer As Integer;
Var sum As Integer;
Var durchschnitt As Integer;
Var Schiff As CMyShip;
Var ZielSchiff As CMyShip;

For (Each Schiff In Fleet.Ships)
{
sum = (sum + Schiff.Energy);
}

durchschnitt = Math.Floor(sum / Fleet.Ships.Count);

For (Each Schiff In Fleet.Ships){
If(Schiff.Energy > durchschnitt) {
j = 0;
While((Schiff.Energy > durchschnitt) AND (j < Fleet.Ships.Count))
{
ZielSchiff = Fleet.Ships.Item(j);
If((ZielSchiff.Energy < durchschnitt) AND (Schiff.ShipID <> ZielSchiff.ShipID))
{
transfer = (durchschnitt - ZielSchiff.Energy);
If(transfer > (durchschnitt - ZielSchiff.Energy))
{
transfer = durchschnitt - ZielSchiff.Energy;
}
If(transfer > 0)
{
Schiff.Action.TransferToShip(ZielSchiff.ShipID, Math.Round(transfer,2), EBeamResource.Energy);
}
}
j = j + 1;
}
}
}
}

Elchi
11-05-2012, 17:53
Ich würde mal sagen, STNE ist schlampig geproggt (WAAAAAAAAS? :shock: :shock: :shock: )
Irgendeine Kontrollfunktion ist nicht richtig an C# angepasst und scheint nicht zu funktionieren
leider nichts zu machen.

lg
Elchi