What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

If (not) Condition - Me.Location.Distance Hilfe!

k1ngstire

Member
Joined
Oct 6, 2012
Messages
50
Reaction score
0
Hallo!
Ich brauche euren Ratschlag.
Ich bin dabei ein Profil umzuschreiben und stoße auf folgendes Problem:

Ich möchte eine If Condition die auslöst wenn sich der Charakter NICHT an angegebener Location befindet.

Die normale Funktion sieht so aus:

<If Condition="Me.Location.Distance(new WoWPoint(6717.32, -4645.55, 450.02)) &gt; 10 " >

Die prüft ob man sich bei den Koordinaten im Umkreis von 10 befindet. Wie kehre ich das ganze um? Ich habe dieses versucht:
Code:
<If Condition="!(Me.Location.Distance(new WoWPoint(6717.32, -4645.55, 450.02)) &gt; 10) " >
<If Condition="Me.Location.Distance!(new WoWPoint(6717.32, -4645.55, 450.02)) &gt; 10 " >
<If Condition="Me.Location.Distance(new WoWPoint!(6717.32, -4645.55, 450.02)) &gt; 10 " >

Aber es funktioniert nicht. Wo liegt denn mein Fehler? Ich bin leider nicht so bewandt im Profile schreiben und habe jetzt erst ein wenig durch umschreiben fertiger Profile ausprobiert und gelernt.

Danke schonmal

Grüße
 
<If Condition="(Me.Location.Distance(new WoWPoint(6717.32, -4645.55, 450.02)) &lt; 10) " >
Code:
dann einfach aus dem > (&gt:) ein < (&lt;) machen.

oder ein !&gt;
<If Condition="(Me.Location.Distance(new WoWPoint(6717.32, -4645.55, 450.02)) !&gt; 10) " >

gibt viele moeglichkeiten. lt ist die eleganteste
 
Last edited:
Schon versucht?
HTML:
<If Condition="(!Me.Location.Distance(new WoWPoint(6717.32, -4645.55, 450.02)) &gt; 10)" >

HTH ;)
 
Danke euch! Sauber, das ging ja fix.

Wärt ihr noch so freundlich und würdet mir noch den Sinn dahinter erklären, damit ich das auch kapiere?

Das Ausrufezeichen kehrt den Befehl um, das hab ich mir schon so abgeleitet, wenn man es richtig setzt. ^^

Aber was hat es mit &gt und &lt auf sich? Ist der Befehl Universell einsetzbar, beziehungsweise nur bei Distanzen oder wie verhält sich das?

Danke
 
Code:
xml kann > und < in anfuehrungszeichen nicht lesen. aus > wird &gt; (groesser). aus < wird &lt; (kleiner). wenn du in xml anfuehrungszeichen innerhalb ausfuehrungszeichen brauchst wird aus " &quot; 
das ! bedeutet nicht. wenn position == x,y,z dann (== mathematisches gleich). wenn du es umkehren willst, dann wird aus dem == ein != 
so einfach ist das :)

also !&gt; bedeutet nicht (!) groesser (&gt;) ... und nicht groesser ist fast das selbe wie kleiner.

zum einsatz kommt &gt; bzw. &lt; recht oft in profilen. wie gesagt kann xml die methematischen zeichen nicht interpretieren. anderes beispiel was in fast allen profilen vorkommt sind zum beispiel taschenplaetze.

If Condition="(Me.FreeBagSlots &gt;= 28)"

der in dieser if abfrage enthaltene code wuerde ausgefuehrt werden wenn mehr als 28 taschenplaetze frei sind.
 
Last edited:
Code:
xml kann > und < in anfuehrungszeichen nicht lesen. aus > wird &gt; (groesser). aus < wird &lt; (kleiner). wenn du in xml anfuehrungszeichen innerhalb ausfuehrungszeichen brauchst wird aus " &quot; 
das ! bedeutet nicht. wenn position == x,y,z dann (== mathematisches gleich). wenn du es umkehren willst, dann wird aus dem == ein != 
so einfach ist das :)

also !&gt; bedeutet nicht (!) groesser (&gt;) ... und nicht groesser ist fast das selbe wie kleiner.

zum einsatz kommt &gt; bzw. &lt; recht oft in profilen. wie gesagt kann xml die methematischen zeichen nicht interpretieren. anderes beispiel was in fast allen profilen vorkommt sind zum beispiel taschenplaetze.

If Condition="(Me.FreeBagSlots &gt;= 28)"

der in dieser if abfrage enthaltene code wuerde ausgefuehrt werden wenn mehr als 28 taschenplaetze frei sind.


Danke für deine Antwort. Ich hab in der Zwischenzeit in Erfahrung bringen können, dass &lt einfach für das "less than" zeichen, also "<" und &gt für "greater than" steht. also ">".
Das erklärt so einiges.

Grüße
 
Last edited:
Danke für deine Antwort. Ich hab in der Zwischenzeit in Erfahrung bringen können, dass < einfach für das "less than" zeichen, also "<" und > für "greater than" steht. also ">".
Das erklärt so einiges.

Grüße

na, dass hab ich doch die ganze zeit geschrieben :D
aus > wird &gt; (groesser). aus < wird &lt; (kleiner)
 
Danke für deine Antwort. Ich hab in der Zwischenzeit in Erfahrung bringen können, dass &lt einfach für das "less than" zeichen, also "<" und &gt für "greater than" steht. also ">".
Das Ganze gilt auch für deutsche Umlaute und Sonderzeichen.
XML verträgt das nicht einmal in Kommentarzeilen.

<!-- Düse --> würde z.B. einen Fehler erzeugen

Am Besten du verwendest innerhalb von XML immer die entsprechenden HTML-Entities.
Eine Tabelle findest du z.B. hier:
HTML Character Entities -- Technical Notes
 
Aufpassen!
Am Besten du verwendest innerhalb von XML immer die entsprechenden HTML-Entities.

das ist zweischneidig. wenn du damit verstehst, dass du in einer .xml datei immer die entities verwenden sollst, wird keines deiner profile funktionieren.
das Objekt (entity) fuer < ist ja bekanntlich &lt;
wenn du jetzt aus
<While
ein
&lt;While machst wird das nicht funktionieren.

die entities nicht grundsaetzlich in .xml dateien verwenden. nur wenn eine xmlZEILE das erfordert. Es wird erfordert, wenn xml abschnitte in anfuehrung stehen.
Beispiele:
<While Condition="Life &gt; 100 (das ist richtig (life ist nur ein beispiel))
&lt;While Condition=&quot;Life &gt; 100 (das ist falsch. die Objekte duerfen nur in den anfuehrungszeichen genutzt werden)

edit:
und xml entities sind nicht mit html entities zu verwechseln. das mit den umlauten stimmt nicht.

dieses ist ein funktionierendes profil. mit umlauten.
PHP:
<HBProfile>
<Name> Düse </Name>
<MinDurability>0</MinDurability>
<MinLevel>1</MinLevel>
<MaxLevel>101</MaxLevel>
<Factions>99999</Factions>
<TargetElites>False</TargetElites>


<SellGrey>False</SellGrey>
<SellWhite>False</SellWhite>
<SellGreen>False</SellGreen>
<SellBlue>False</SellBlue>
<SellPurple>False</SellPurple>

<Vendors>
</Vendors>

<Mailboxes>
</Mailboxes>

<AvoidMobs>
</AvoidMobs>
<QuestOrder>
	<!-- Düse -->
	<CustomBehavior File="Message" Text="Ich bin eine Düse" LogColor="Red" />
	
</QuestOrder>
</HBProfile>

wenn du es laedst und startest schreibt das profil "ich bin eine Düse" ins HB. also umlaute sind xml egal. das sind html entities. nicht xml entities.
 
Last edited:
Dann ist es aber auch kein valides XML nach Definition mehr. :P

@ k1ngstire
Du kannst dein fertiges XML-Script auch auf Fehler testen und diese lokalisieren lassen, z.B. hier

XML Validation: XML Validation

Einfach deinen Quelltext in die Box kopieren. Wenn Fehler drin sind, wird dir eine genaue Fehlerbeschreibung
bei der Korrektur helfen.

Und noch eine gute Seite, um Einblick in XML zu bekommen:
XML-Einführung
 
Last edited:
aus der von dir geposteten seite, Corleone
Entity-Referenzen

Hiermit können im Text-Teil von Elementen und im Inhalt von Attributen ganze Entities (Text-Teile) eingesetzt werden. Der Aufruf geschieht durch &name; wobei "name" der eindeutige Name der Entity ist (case-sensitiv!).

Es gibt lediglich diese 5 vordefinierten Entities:

&lt; <
&gt; >
&amp; &
&quot; "
&apos; '
Eigene Entities können nur innerhalb einer Document Type Declaration (DTD) deklariert werden. Dort können auch "externe" Entities deklariert werden; ein ganzes File wird also zu einer Entity. Dadurch kann ein "Include" realisiert werden (!).

Jedes XML-Dokument ist ein Unicode-Dokument, es können also beliebige Unicode-Zeichen verwendet werden. (Unicode ist der Standard, der für praktisch alle Schriftzeichen der Welt einen Code definiert.) Einzelne Unicode-Zeichen können durch bzw. referenziert werden (n=Unicode-Zeichencode dezimal, h=Unicode-Zeichencode hexadezimal)

wie gesagt. xml entities != html entities
das duesen codebeispiel auf der vorherigen seite ist xml valid.
 
Last edited:
Kommt immer drauf an, ob du eine DTD oder/und eine Zeichenkonvertierung im Prolog angibst.
Bei HB ist das normalerweise nicht der Fall.

Der Validator macht aus Düse in UTF-8,
HTML:
<!-- Düse -->
bei HB-US ohne Prolog gibt's nen Fehler, da US gar keine Umlaute kennt.

Ich hab mir mittlerweile angewöhnt, die Umlaute auszuschreiben, also ae, ue, oe, ss, etc. ^^
Damit macht man nichts falsch, aber um &lt; und &gt; kommt man nicht herum.
Entities sind für mich einfach lästige Fingerverrenkungsaktionen. :D
 
Last edited:
das hat nichts mit xml validitaet zu tun, sondern mit laendercodierung des systems.
<!-- Düse --> ü <- Was fuer ein entity soll das sein?

es gibt kein HB-US.
Es gibt:
HB - das ist international
HB DE - fuer nutzer aus deutschland
HB Asia - Das greift auf AuthServer in HongKong(?) zu, um login/meshdownload fuer asiaten zu beschleunigen.

der code den ich gepostet habe laeuft bei mir wie er soll. druckt duese. und ich nutze hb international.

duese.webp
 
Last edited:
Der Validator macht aus Düse in UTF-8,

Soll heissen, daß du trotz Umlaute, diese konvertieren lassen kannst.
UTF ist auch keine Entity, aber es ist valid.
Muss man halt nur im Prolog mit angeben.
 
keine lust mehr zu streiten. :D
fakt ist:
es gibt nur 5 xml entities, nicht 300+ wie in html.
fakt ist:
entities finden nur in anfuehrungszeichen anwendung ( im Text-Teil von Elementen und im Inhalt von Attributen)
und nun bin ich weg hier :)
 
Ich streite doch gar nicht. ;)
Wenn du Integerwerte in XML hast, hast du keine " ", also gelten die auch außerhalb dieser. ^^
Sagen wir einfach: Innerhalb der Start- und Endeklammern. Dann ist alles paletti.

Schlaf gut. ;)
 
Back
Top