Construction Set Script zur Faction-Abfrage

KarldG

Neuankömmling
Hi, Leute,

ich möchte eine Messagebox erstellen, die mir z.B. sagt, dass es hier irgendwo einen Schlüssel gibt. Diese Message soll von der Fraction abhängen, der der Player angehört.

z.B. nehme ich if (Player.GetFactionRank MagesGuild >= 5) für die Abfrage, ob der Player dem Rang des Magiers in der Magiergilde angehört.

Falls der Player nicht in der Magiergilde ist, soll eine andere Message erscheinen.

Ich finde nirgendwo die Möglichkeit wie z.B. beim VB-Script if not anzugeben.
Gibt es keine Verneinung beim CS-Script?

Gruß KarldG

PS: Ich habe mich im CS-Wiki umgeschaut, aber nichts entsprechendes gefunden. Brauche ein Beispiel zum Verständnis
 
Zuletzt bearbeitet:
Die Verneinung bestimmt man mit "!=", was für ungleich steht, also:

Code:
if(Var != 1)

Fragt ab, ob "Var" ungleich 1, also ob "Var" nicht 1 ist.
Dafür gibt es aber genug Tutorials, hier auf Scharesoft z.B. auch. ;)
 
  • Like
Reaktionen: KarldG
PHP:
Scriptname MeinAbfrageScript

short Einmal

Begin OnActivate Player

	if Einmal == 0
		if Player.GetFaction MagesGuild == 1
			Set Einmal to 1
			MessageBox "Der Schlüssel liegt vor Euch."
		elseif Player.GetFaction MagesGuild == 0
			MessageBox "Ihr erfüllt nicht die notwendigen Voraussetzungen."
			return
		endif
	endif
end
 
  • Like
Reaktionen: KarldG
Beim nächsten Mal fragst du am besten im Skriptthread ;)

Wozu? Der Kommentar ist so hilfreich wie er sinnvoll ist. Nämlich gar nicht.

@ KarldG: Es gibt "else". Dieser Block wird ausgeführt, falls eine Bedingung nicht erfüllt ist. Das könnte man in deinem Fall so schreiben:

Code:
if (Player.GetFactionRank MagesGuild >= 5)
;tue irgendwas
else
;tue etwas anderes
endif

Desweiteren gibt es keine direkte not-Abfrage wie bei vB, allerdings lässt sich das auch einfach umgehen. Hat der Spieler zB. einen höheren Rang als Magier in der Magiergilde, gibt (Player.GetFactionRank MagesGuild >= 5) den Wert 1 zurück. Hat der Spieler einen geringen Rang, so spuckt die Bedingung den Wert 0 aus. Das könnte man so schreiben:

Code:
if (Player.GetFactionRank MagesGuild >= 5)
;tue irgendwas
elseif (player.GetFactionRank MagseGuild >= 5) == 0
;tue etwas anderes
endif

Hier hast du auch gleich elseif gesehen. Damit kann man abfragen, ob eine andere Bedingung erfüllt ist. Natürlich ist die Abfrage in diesem Fall mit elseif sinnlos, denn man kann auch ein else benutzen, allerdings dient dies ja nur zu demonstrativen Zwecken.

Ich hofe ich konnte etwas Licht ins Dunkel bringen. ;)

Grüße
Gildur

Edit.: Das hat man davon wenn man sich Zeit nimmt, man ist immer letzter. :lol:
 
  • Like
Reaktionen: KarldG
Dafür ist der Thread aber da ich wollts nur gesagt haben ;)
Ich hätte ja das Script geschrieben wenn ichs könnte
 
Danke allen

Hi, Leute,

hab in der Zwischenzeit dank dem deutschen Script-Wiki beim Ei der Zeit kapiert, wie ich's machen muss.
Manchmal steht bei mir immer einer auf der Leitung.

Vorher einfach nicht auf die Idee gekommen, Player.GetInFaction MagesGuild == 0 zu verwenden.

Bin des Englischen nur sehr mässig mächtig (zum Lesen reichts nur zum Teil gerade noch) und daher beim CS-Wiki nicht durchgestiegen.

Danke euch allen nochmal für die schnellen Antworten und
@reybourne: Werd's nächstes mal berücksichtigen.

Gruß KarldG