Bisher wurde bei der Rückmeldung an den Server nur eine Zahl von 0 bis 1 (z.B. 0,42) zurückgegeben, wenn es darum ging, den Schaden eines Fahrzeuges zu speichern und für die nächste Schlacht wieder mitzugeben. Dieser Wert ist der Durchschnittsschaden aller Bauteile. Man kann sich denken, dass das für Verwirrung sorgen kann. Z.B:
Rad VR: 1
Rad VL: 1
Rad HR: 0
Rad HL: 0
Während hier die Vorderachse quasi radlos und hinten alles in Ordnung ist, ergibt das einen Rückgabewert von (1+1+0+0)/4 = 0.5!
Beim Start in die nächste Runde würden nun aber alle Räde 0.5 Schaden erhalten. Im Durchschnitt ist es dasselbe (4 * 0.5 = 2), aber alle Räder wären wieder dran. So wäre es mit allen Bauteilen - völlig intransparent.
Daher haben wir uns rangesetzt, den Schaden nicht nur vollständig zu speichern, sondern ihn auch detailliert in der WebGUI einzubauen, was eine große Herausforderung war, wenn man bedenkt, dass es sich bei SQF und PHP um zwei verschiedene Sprachen handelt.
So sieht ein Schaden-Array in ArmA aus:
- [["HitHull","HitFuel","HitAvionics","HitMissiles","HitEngine1","HitEngine2","HitEngine","HitHRotor","HitVRotor","HitGlass1","HitGlass2","HitGlass3","HitGlass4","HitGlass5","HitGlass6","HitGlass7","HitGlass8","HitGlass9","HitGlass10","HitGlass11","HitGlass12","HitGlass13","HitGlass14","HitRGlass","HitLGlass","HitEngine3","HitWinch","HitTransmission","HitLight","HitHydraulics","HitGear","HitHStabilizerL1","HitHStabilizerR1","HitVStabilizer1","HitTail","HitPitotTube","HitStaticPort","HitStarter1","HitStarter2","HitStarter3","","","HitTurret","HitGun","HitTurret","HitGun","HitTurret","HitGun"],["","fuel_hit","avionics_hit","ammo_hit","engine_1_hit","engine_2_hit","engine_hit","main_rotor_hit","tail_rotor_hit","glass1","glass2","glass3","glass4","glass5","glass6","glass7","glass8","glass9","glass10","glass11","glass12","glass13","glass14","","","","slingload0","transmission","","","","","","","","","","","","","light_l","light_r","","","","","",""],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]
Durch endloses hin- und herparsen ist es mir gelungen, diese fremde Syntax nicht nur grafisch zu interpretieren, sondern sie auch per Zufall zu verändern. Denn Kampagnen können ja in verschiedenen Schwierigkeitsgraden beginnen. Ich habe versucht, das HUD nachzubauen und ich finde, man erkennt es sofort.