HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   hint format - andere farbe und schrift? (https://hx3.de/editing-scripting-167/hint-format-andere-farbe-schrift-19497/)

Feuerwerker 10.08.2010 12:01

hint format - andere farbe und schrift?
 
gott zum gruße,

ich würde bei "hint format" gerne die schriftgröße ändern und mit farben arbeiten. wie steuere ich das?



gruß
feuerwerker

Lester 10.08.2010 13:00

parseText - Bohemia Interactive Community ist das ganze "offene Geheimnis"
Ein hint auf den gewünschten Inhalt und dann passts ... mit verschiedenen Fonts, Farben, Bildern etc. ;)

Feuerwerker 10.08.2010 13:46

vielen dank, lester -

das hatte ich auch schon versucht, aber das funktioniert bei "hint format" irgendwie nicht.
da schreibt er dann wörtlich auch den bildschirm:
<t color='#FFFF00'>Name</t>

anstatt das wort "Name" in gelb zu schreiben...

was habe ich nicht beachtet?


gruß
feuerwerker

Pfandgiraffe 10.08.2010 13:53

funktioniert bestens...

Code:

hint parsetext format ["<br /><t align='center' color='#00E500' size='0.8'>test: %1</t><br />",_variable];

Feuerwerker 10.08.2010 13:56

"hint parsetext format" - danke dir! :)



gruß
feuerwerker

Feuerwerker 10.08.2010 14:13

hmmm... jetzt ist aber alles verhunzt :(

ich habe ein berichtsscript entworfen, was mir wesentliche details eines waffensystems anzeigt. die ursprungsversion sieht so aus:

Geraetebericht Team.sqs


_device = _this

?! (alive _device) : hint format ["Waffensystem %1 zerstoert", _device], exit

_speed = speed _device
_fuel = fuel _device
_damage = getdammage _device

_weapons = weapons _device
_countweapons = count _weapons
_weapon1 = _weapons select 0
_weapon2 = _weapons select 1
_weapon3 = _weapons select 2
_weapon4 = _weapons select 3
_weapon5 = _weapons select 4

_ammocount1 = _device ammo _weapon1
_ammocount2 = _device ammo _weapon2
_ammocount3 = _device ammo _weapon3
_ammocount4 = _device ammo _weapon4
_ammocount5 = _device ammo _weapon5

_magazines = magazines _device
_magcount = count _magazines
_magname1 = _magazines select 0
_magname2 = _magazines select 1
_magname3 = _magazines select 2
_magname4 = _magazines select 3
_magname5 = _magazines select 4
_magname6 = _magazines select 5
_magname7 = _magazines select 6
_magname8 = _magazines select 7
_magname9 = _magazines select 8
_magname10 = _magazines select 9
_magname11 = _magazines select 10
_magname12 = _magazines select 11

_crew = crew _device
_crewcount = count _crew

_commander = getdammage commander _device
_gunner = getdammage gunner _device
_driver = getdammage driver _device

hint format ["\n%32\n\nGeschwindigkeit = %1\nTreibstoff = %2\nSchaden = %3\n\nAnzahl
Waffen = %4\n\n%5 - %10\n%6 - %11\n%7 - %12\n%8 - %13\n%9 - %14\n\nMunitionpakete =
%15\n\nMunition 1 = %16\n\nMunition 2 = %17\n\nMunition 3 = %18\n\nMunition 4 =
%19\n\nMunition 5 = %20\n\nMunition 6 = %21\n\nMunition 7 = %22\n\nMunition 8 =
%23\n\nMunition 9 = %24\n\nMunition 10 = %25\n\nMunition 11 = %26\n\nMunition 12 =
%27\n\nInsassen = %28\nGesundheit Kommandant = %29\nGesundheit Schuetze =
%30\nGesundheit Fahrer = %31", _speed, _fuel, _damage, _countweapons, _weapon1,
_weapon2, _weapon3, _weapon4, _weapon5, _ammocount1, _ammocount2, _ammocount3,
_ammocount4, _ammocount5, _magcount, _magname1, _magname2, _magname3, _magname4,
_magname5, _magname6, _magname7, _magname8, _magname9, _magname10, _magname11,
_magname12, _crewcount, _commander, _gunner, _driver, _device]



ich würde gerne die verbleibende schussanzahl in gelb darstellen. aber wenn ich jetzt "parsetext" einfüge und jeweils vor und hinter die betroffenen einträge <t color='#FFFF00'> und </t>, dann wird der bericht völlig falsch und verkrüpppelt dargestellt.

wie baue ich das jetzt richtig ein?




gruß
feuerwerker

Cyborg11 10.08.2010 14:20

Du musst die Formatierungszeichen alle im HTML Code schreiben.
Anstatt \n musst du jetzt <br/> verwenden.

Feuerwerker 10.08.2010 14:36

ok, danke. jedoch bricht der bericht jetzt nach den jeweiligen verbleibenden schuss ab. alle weiteren details werden nicht mehr genannt.

wie bekomme ich jetzt den ganzen bericht wieder dargestellt?



gruß
feuerwerker

N939 10.08.2010 15:24

Zitat:

Zitat von Feuerwerker (Beitrag 327650)
ok, danke. jedoch bricht der bericht jetzt nach den jeweiligen verbleibenden schuss ab. alle weiteren details werden nicht mehr genannt.

wie bekomme ich jetzt den ganzen bericht wieder dargestellt?



gruß
feuerwerker

Ich weiß nicht zu 100% was du genau meinst :D
aber ich würde es z.B. so machen:
Code:

         
_headl = parseText format ["<t color='#ff0000'><t size='1.8'>%1 TEST</t></t><br/><br/>", _test_var;
_firstl =parseText format ["Hier schreibst du den %1. Abschnitt !<br/><br/>",_count];
_secl = "Standby";
_separator = parseText "<br />------------------------<br />";
_thil = parseText format ["<t color='#ffff00'>%1 Zeile</t>", _count_row];

_txt = composeText [_headl,_firstl,_thil,_separator,_secl];
hint _txt

Ich habe die einzelnen Zeilen (Abschnitte) des hints in lokalen Vars gespeichert und mit composeText wieder zusammengeführt !

Da ist alles drin mit parseText format kannst du wie gewohnt deine vars einbinden ...

Gruß
Max

PS: Du kannst es natürlich auch so machen:
Code:

_txt = parseText format ["<t color='#ff0000'><t size='1.8'>%1 TEST</t></t>
<br/>
<br/>
Hier schreibst du den %2. Abschnitt !
<br/>
<br/>
Standby
<br />------------------------<br />
<t color='#ffff00'>%3 Zeile</t>", _test_var, _count, _count_row];

hint _txt;


Feuerwerker 10.08.2010 16:01

ach du lieber gott... :confused: davon hab ich noch gar keine ahnung


ich möchte doch nur wissen, warum das geänderte script...

Zitat:


_device = _this
?! (alive _device) : hint format ["Waffensystem %1 zerstoert", _device], exit
_speed = speed _device
_fuel = fuel _device
_damage = getdammage _device

_weapons = weapons _device
_countweapons = count _weapons
_weapon1 = _weapons select 0
_weapon2 = _weapons select 1
_weapon3 = _weapons select 2
_weapon4 = _weapons select 3
_weapon5 = _weapons select 4

_ammocount1 = _device ammo _weapon1
_ammocount2 = _device ammo _weapon2
_ammocount3 = _device ammo _weapon3
_ammocount4 = _device ammo _weapon4
_ammocount5 = _device ammo _weapon5

_magazines = magazines _device
_magcount = count _magazines
_magname1 = _magazines select 0
_magname2 = _magazines select 1
_magname3 = _magazines select 2
_magname4 = _magazines select 3
_magname5 = _magazines select 4
_magname6 = _magazines select 5
_magname7 = _magazines select 6
_magname8 = _magazines select 7
_magname9 = _magazines select 8
_magname10 = _magazines select 9
_magname11 = _magazines select 10
_magname12 = _magazines select 11

_crew = crew _device
_crewcount = count _crew

_commander = getdammage commander _device
_gunner = getdammage gunner _device
_driver = getdammage driver _device

hint parsetext format ["<br/><t color='#FFFF00'>%32</t><br/><br/>Geschwindigkeit = %1<br/>Treibstoff = %2<br/>Schaden = %3<br/><br/>Anzahl Waffen = %4<br/><br/>%5 - <t color='#FFFF00'>%10</t><br/>%6 - <t color='#FFFF00'>%11</t><br/>%7 - <t color='#FFFF00'>%12</t><br/>%8 - <t color='#FFFF00'>%13</t><br/>%9 - <t color='#FFFF00'>%14</t><br/><br/><t color='FFFF66'>Munitionpakete = %15</t><br/><br/>Munition 1 = %16<br/><br/>Munition 2 = %17<br/><br/>Munition 3 = %18<br/><br/>Munition 4 = %19<br/><br/>Munition 5 = %20<br/><br/>Munition 6 = %21<br/><br/>Munition 7 = %22<br/><br/>Munition 8 = %23<br/><br/>Munition 9 = %24<br/><br/>Munition 10 = %25<br/><br/>Munition 11 = %26<br/><br/>Munition 12 = %27<br/><br/>Insassen = %28<br/>Gesundheit Kommandant = %29<br/>Gesundheit Schuetze = %30<br/>Gesundheit Fahrer = %31", _speed, _fuel, _damage, _countweapons, _weapon1, _weapon2, _weapon3, _weapon4, _weapon5, _ammocount1, _ammocount2, _ammocount3, _ammocount4, _ammocount5, _magcount, _magname1, _magname2, _magname3, _magname4, _magname5, _magname6, _magname7, _magname8, _magname9, _magname10, _magname11, _magname12, _crewcount, _commander, _gunner, _driver, _device]

...nach der darstellung der gelben zahlen für die verbliebenen schuss nichts andreres mehr anzeigt. bis zur anzeige der munitionspakete klappt ja alles wunderbar.

falls jemand es ausprobieren möchte - das waffensystem muß natürlich im editor benannt sein, dann am besten über funkauslöser abspielen.

dann sieht man, dass der ganze hint nach der letzten angabe zur schussmenge endet. es kämen ja aber noch viele andere variabeln.



gruß
feuerwerker

Feuerwerker 11.08.2010 12:49

hallo,

ich muss nochmal fragen - gibt es mit hint und html ein darstellungslimit? er stellt den bericht nur noch zu etwa einem dritel dar. alle anderen variabeln läßt er einfach wegfallen.

wie schaffe ich es jetzt, dass der ganze bericht wieder angezeigt wird?



gruß
feuerwerker

Cyborg11 11.08.2010 12:52

Was mir gerade auffällt.
Was soll das , vor dem exit (Z. 2)? o.O
Code:

?! (alive _device) : hint format ["Waffensystem %1 zerstoert", _device], exit
Mach das , zu ; ;)


Ach .sqs ist doch scheiße =D
.sqf schauts viel besser aus.
Code:

If (!alive _device) exitWith{hint format ["Waffensystem %1 zerstoert", _device]};

Feuerwerker 11.08.2010 13:13

aber in .sqs steht ; doch für "ab hier nicht beachten"...?? :oh:


ja, wenn ich nur mehr ahnung von .sqf hätte... aber mit dem ganzen klammergedöns verliert man ständig den überblick.

also das ; war nicht das problem. er stellt mir alles bis zur 4. waffe dar. warum danach nichts mehr?



gruß
feuerwerker

Cyborg11 11.08.2010 13:36

Du müsstest nur deine Bedingungszeile auf meine abändern und hinter jede Zeile ; schreiben, dann hast du dein Skript schon auf .sqf umgeschrieben. :daumen:

Feuerwerker 11.08.2010 13:51

ok, das ist ein wort

aber wie hilft mir das jetzt, dass der vollständige bericht dargestellt wird? :D

kannst du mir mal den gefallen tun und das script ausprobieren, damit du siehst, wo der fehler ist?
machs mit funkauslöser.



gruß
feuerwerker

Cyborg11 12.08.2010 12:44

Gerade ausprobiert, bei mir funktioniert es.
Es wird aber eben nur einmal angezeigt und der Hint wird nicht aktualisiert, was auch an der fehlenden Schleife liegt.

Hab es mal auf .sqf umgeschrieben:
Code:

_device = _this select 0;
If (!alive _device) exitWith{hint format ["Waffensystem %1 zerstoert", _device]};
_speed = speed _device;
_fuel = fuel _device;
_damage = getdammage _device;

_weapons = (weapons _device) - (items _device);
_countweapons = count _weapons;
_weapon1 = _weapons select 0;
_weapon2 = _weapons select 1;
_weapon3 = _weapons select 2;
_weapon4 = _weapons select 3;
_weapon5 = _weapons select 4;

_ammocount1 = _device ammo _weapon1;
_ammocount2 = _device ammo _weapon2;
_ammocount3 = _device ammo _weapon3;
_ammocount4 = _device ammo _weapon4;
_ammocount5 = _device ammo _weapon5;

_magazines = magazines _device;
_magcount = count _magazines;
_magname1 = _magazines select 0;
_magname2 = _magazines select 1;
_magname3 = _magazines select 2;
_magname4 = _magazines select 3;
_magname5 = _magazines select 4;
_magname6 = _magazines select 5;
_magname7 = _magazines select 6;
_magname8 = _magazines select 7;
_magname9 = _magazines select 8;
_magname10 = _magazines select 9;
_magname11 = _magazines select 10;
_magname12 = _magazines select 11;

_crew = crew _device;
_crewcount = count _crew;

_commander = getdammage commander _device;
_gunner = getdammage gunner _device;
_driver = getdammage driver _device;

hint parsetext format ["<br/><t color='#FFFF00'>%32</t><br/><br/>Geschwindigkeit = %1<br/>Treibstoff = %2<br/>Schaden = %3<br/><br/>Anzahl Waffen = %4<br/><br/>%5 - <t color='#FFFF00'>%10</t><br/>%6 - <t color='#FFFF00'>%11</t><br/>%7 - <t color='#FFFF00'>%12</t><br/>%8 - <t color='#FFFF00'>%13</t><br/>%9 - <t color='#FFFF00'>%14</t><br/><br/><t color='FFFF66'>Munitionpakete = %15</t><br/><br/>Munition 1 = %16<br/><br/>Munition 2 = %17<br/><br/>Munition 3 = %18<br/><br/>Munition 4 = %19<br/><br/>Munition 5 = %20<br/><br/>Munition 6 = %21<br/><br/>Munition 7 = %22<br/><br/>Munition 8 = %23<br/><br/>Munition 9 = %24<br/><br/>Munition 10 = %25<br/><br/>Munition 11 = %26<br/><br/>Munition 12 = %27<br/><br/>Insassen = %28<br/>Gesundheit Kommandant = %29<br/>Gesundheit Schuetze = %30<br/>Gesundheit Fahrer = %31", _speed, _fuel, _damage, _countweapons, _weapon1, _weapon2, _weapon3, _weapon4, _weapon5, _ammocount1, _ammocount2, _ammocount3, _ammocount4, _ammocount5, _magcount, _magname1, _magname2, _magname3, _magname4, _magname5, _magname6, _magname7, _magname8, _magname9, _magname10, _magname11, _magname12, _crewcount, _commander, _gunner, _driver, _device];

Aufruf mit:
Code:

nul = [unit] execVM "bericht.sqf";
Und zu den Waffen:
Code:

_weapons = weapons _device;
Benutz lieber:
Code:

_weapons = (weapons _device) - (items _device);
Da die Items auch als Waffen mitgezählt werden.
Könntest natürlich auch noch das Nachtsichtgerät ("NVGoggles"), sowie die Ferngläser / Entfernungsmesser aus dem Waffenarray entfernen.

Und dann erst mit einem If überprüfen, wie viele Elemente das Array hat und dann erst die verschiedenen Waffen in verschiedene Variablen speichern, wobei das nicht unbedingt notwendig wäre. Das selbe auch bei den Magazinen. Denn wenn mal eine Einheit oder ein Fahrzeug weniger als deine 5 Waffen hat, wird dein Skript Fehler bringen:
Zitat:

Wrong text element 'null'
Error in expression < _weapons select 1;
_weapon3 = _weapons select 2;
_weapon4 = _weapons select 3;
>
Error position: <select 2;
_weapon4 = _weapons select 3;
>
Error Nullteiler

_ammocount1 = _device ammo _w>
Error Nullteiler
Du kannst ja
Code:

X select Y;
erst bei der Ausgabe verwenden. Wäre platzsparender. :p

Ansonsten mit einer While Schleife würde es so aussehen:
Code:

_device = _this select 0;

While {alive _device} do
{
    _speed = speed _device;
    _fuel = fuel _device;
    _damage = getdammage _device;

    _weapons = (weapons _device) - (items _device);
    _countweapons = count _weapons;
    _weapon1 = _weapons select 0;
    _weapon2 = _weapons select 1;
    _weapon3 = _weapons select 2;
    _weapon4 = _weapons select 3;
    _weapon5 = _weapons select 4;

    _ammocount1 = _device ammo _weapon1;
    _ammocount2 = _device ammo _weapon2;
    _ammocount3 = _device ammo _weapon3;
    _ammocount4 = _device ammo _weapon4;
    _ammocount5 = _device ammo _weapon5;

    _magazines = magazines _device;
    _magcount = count _magazines;
    _magname1 = _magazines select 0;
    _magname2 = _magazines select 1;
    _magname3 = _magazines select 2;
    _magname4 = _magazines select 3;
    _magname5 = _magazines select 4;
    _magname6 = _magazines select 5;
    _magname7 = _magazines select 6;
    _magname8 = _magazines select 7;
    _magname9 = _magazines select 8;
    _magname10 = _magazines select 9;
    _magname11 = _magazines select 10;
    _magname12 = _magazines select 11;

    _crew = crew _device;
    _crewcount = count _crew;

    _commander = getdammage commander _device;
    _gunner = getdammage gunner _device;
    _driver = getdammage driver _device;

    hintSilent parsetext format ["<br/><t color='#FFFF00'>%32</t><br/><br/>Geschwindigkeit = %1<br/>Treibstoff = %2<br/>Schaden = %3<br/><br/>Anzahl Waffen = %4<br/><br/>%5 - <t color='#FFFF00'>%10</t><br/>%6 - <t color='#FFFF00'>%11</t><br/>%7 - <t color='#FFFF00'>%12</t><br/>%8 - <t color='#FFFF00'>%13</t><br/>%9 - <t color='#FFFF00'>%14</t><br/><br/><t color='FFFF66'>Munitionpakete = %15</t><br/><br/>Munition 1 = %16<br/><br/>Munition 2 = %17<br/><br/>Munition 3 = %18<br/><br/>Munition 4 = %19<br/><br/>Munition 5 = %20<br/><br/>Munition 6 = %21<br/><br/>Munition 7 = %22<br/><br/>Munition 8 = %23<br/><br/>Munition 9 = %24<br/><br/>Munition 10 = %25<br/><br/>Munition 11 = %26<br/><br/>Munition 12 = %27<br/><br/>Insassen = %28<br/>Gesundheit Kommandant = %29<br/>Gesundheit Schuetze = %30<br/>Gesundheit Fahrer = %31", _speed, _fuel, _damage, _countweapons, _weapon1, _weapon2, _weapon3, _weapon4, _weapon5, _ammocount1, _ammocount2, _ammocount3, _ammocount4, _ammocount5, _magcount, _magname1, _magname2, _magname3, _magname4, _magname5, _magname6, _magname7, _magname8, _magname9, _magname10, _magname11, _magname12, _crewcount, _commander, _gunner, _driver, _device];

    sleep 0.1;
};

Musst dort noch die If Abfragen einbauen.
Einfacher wäre es mit einer switch do Anweisung. :daumen:

Und was mir aufgefallen ist. Bei deinem Analyse Skript werden die Magazine und Waffen immer nur vom Hauptturret angezeigt. Wenn ein Fahrzeug mehrere Turrets hat, dann werden diese nicht angezeigt. Musst das Skript also noch anpassen ;)

Feuerwerker 15.08.2010 20:31

ok, vielen dank schon mal :)

und wie spreche ich die einzelnen turrets an bzw. lese deren waffen und mags aus? :)

bis jetzt hab ich die richtigen befehle noch nicht gefunden.



gruß
micha

Cyborg11 15.08.2010 23:12

Guck mal mein ShowClass Skript an, das musst du mit Skriptbefehlen machen, die auf die Config zugreifen. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:44 Uhr.

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias


SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119