Khaak und Xenon Rank als Race-Rank

Hier ist der ideale Ort um über Scripts und Mods für X³: Terran Conflict und X³: Albion Prelude zu diskutieren.

Moderators: Scripting / Modding Moderators, Moderatoren für Deutsches X-Forum

Guest

Post by Guest »

... nur noch ´n kleiner hinweis:
--> wenn du any_object_blabla verwenndest (hab´s im bild gesehen), musst du zuvor ´ne "group" (= liste mit objekten) erstellt haben
... ansonsten würd´ ich für deine belange einfach die player_killed_object / player_scanned_object / usw. verwenden ;) (also auf spieler bezogene events)

.. und der code, den ich oben verwendet hab´, sollte soweit ready sein ^^
// einfach copyNpasten, dann nur noch ein (parallel-)cue für das scann-event erstellen & etwas logik reinpacken

ps: ... eclipse hab´ ich zwar auch, hab´ aber null ahnung von dem programm :D :?
Charles Monroe
Posts: 1598
Joined: Fri, 7. Apr 06, 14:47
x3tc

Post by Charles Monroe »

JonfersonSDD wrote:... nur noch ´n kleiner hinweis:
--> wenn du any_object_blabla verwenndest (hab´s im bild gesehen), musst du zuvor ´ne "group" (= liste mit objekten) erstellt haben
... ansonsten würd´ ich für deine belange einfach die player_killed_object / player_scanned_object / usw. verwenden ;) (also auf spieler bezogene events)
Da fehlen mir nach wie vor die player_attacked_object und player_captured_object. Aber vllt. fällt mir da ja noch was ein.
Du weisst, dass du X angefangen hast, wenn du in der Flugschule den Autopiloten benutzt und der Fluglehrer dich fragt, wo du hin willst.
Charles Monroe
Posts: 1598
Joined: Fri, 7. Apr 06, 14:47
x3tc

Post by Charles Monroe »

Ich hab jetzt folgende Scripte:
1. setup.adv.ranking

Code: Select all

dim $races = [Xenon], [Kha'ak]
set global variable: name='adv.ranking.races' value=$races

global script map: set: key=[SIGNAL_SCANNED], class=[Schiff], race=null, script='plugin.adv.ranking.event.scan', prio=0
global script map: set: key=[SIGNAL_SCANNED], class=[Station], race=null, script='plugin.adv.ranking.event.scan', prio=0

global script map: set: key=[SIGNAL_ATTACKED], class=[Schiff], race=null, script='plugin.adv.ranking.event.attack', prio=0
global script map: set: key=[SIGNAL_ATTACKED], class=[Station], race=null, script='plugin.adv.ranking.event.attack', prio=0

global script map: set: key=[SIGNAL_CAPTURED], class=[Schiff], race=null, script='plugin.adv.ranking.event.capture', prio=0
global script map: set: key=[SIGNAL_CAPTURED], class=[Station], race=null, script='plugin.adv.ranking.event.capture', prio=0

global script map: set: key=[SIGNAL_KILLED], class=[Schiff], race=null, script='plugin.adv.ranking.event.kill', prio=0
global script map: set: key=[SIGNAL_KILLED], class=[Station], race=null, script='plugin.adv.ranking.event.kill', prio=0

return null
2. 4*plugin.adv.ranking.event.XXX (für killed, attacked, scanned und captured

Code: Select all

$race = $querulant-> get owner race
if $race != [Player]
  return null
end
$string = $race
$race = [THIS]-> get owner race
$string = $string + ' <-> ' + $race + ' (killed)'
write to player logbook $string
$races = get global variable: name='adv.ranking.races'
if not find $race in array: $races
  $sector = [THIS]-> get sector
  $race2 = $sector-> get owner race
  if not find $race2 in array: $races
    return null
  end
  * reward player
  write to player logbook 'Belohnung'
  return null
end
* sanctionize player
write to player logbook 'Sanktion'
return null
Die Scripte werden auch aufgerufen, nur irgendwie bleibt das Playerschiff immer aussen vor.
Du weisst, dass du X angefangen hast, wenn du in der Flugschule den Autopiloten benutzt und der Fluglehrer dich fragt, wo du hin willst.
Guest

Post by Guest »

... wirf´ mal ´n blick hier rein ;)

... ich würd´ nicht die signalscripte überschreiben, stattdessen würd´ ich sekundäre hinzufügen (beispiel: xenon-upgrade)
... du musst auch ein argument für das betreffende schiff, das angreift, ins script einfügen usw. usw. usw.
// ps: ... den befehl "dim" gibt´s nicht, arrays erstellst du per array = array alloc: size=0, nutz´ lieber den ingame-SE
Charles Monroe
Posts: 1598
Joined: Fri, 7. Apr 06, 14:47
x3tc

Post by Charles Monroe »

JonfersonSDD wrote:... wirf´ mal ´n blick hier rein ;)

... ich würd´ nicht die signalscripte überschreiben, stattdessen würd´ ich sekundäre hinzufügen (beispiel: xenon-upgrade)
... du musst auch ein argument für das betreffende schiff, das angreift, ins script einfügen usw. usw. usw.
Da angreifende Schiff wird als Parameter (querulant) übergeben. Das klappt auch alles schon und überschrieben wird da anscheinend gar nichts, weil das Notorietysystem nach vie vor funktioniert. Was ich nun noch gemacht habe... ich habe dem PLAYERSHIP diese Signale auch noch explizit hinzugefügt (add secondary blablabla) und jetzt geht das auch so wie es soll. Nun noch ein bissl die Punkte verteilen und gut is.
Finally sieht das Init-Script so aus:

Code: Select all

dim $races = [Xenon], [Kha'ak]
set global variable: name='adv.ranking.races' value=$races

global script map: set: key=[SIGNAL_SCANNED], class=[Schiff], race=null, script='plugin.adv.ranking.event.scan', prio=0
global script map: set: key=[SIGNAL_SCANNED], class=[Station], race=null, script='plugin.adv.ranking.event.scan', prio=0

global script map: set: key=[SIGNAL_ATTACKED], class=[Schiff], race=null, script='plugin.adv.ranking.event.attack', prio=0
global script map: set: key=[SIGNAL_ATTACKED], class=[Station], race=null, script='plugin.adv.ranking.event.attack', prio=0

global script map: set: key=[SIGNAL_CAPTURED], class=[Schiff], race=null, script='plugin.adv.ranking.event.capture', prio=0
global script map: set: key=[SIGNAL_CAPTURED], class=[Station], race=null, script='plugin.adv.ranking.event.capture', prio=0

global script map: set: key=[SIGNAL_KILLED], class=[Schiff], race=null, script='plugin.adv.ranking.event.kill', prio=0
global script map: set: key=[SIGNAL_KILLED], class=[Station], race=null, script='plugin.adv.ranking.event.kill', prio=0

[PLAYERSHIP]-> add secondary signal: signal=[SIGNAL_SCANNED], script='plugin.adv.ranking.event.scan', prio=0, name='scan'
[PLAYERSHIP]-> add secondary signal: signal=[SIGNAL_ATTACKED], script='plugin.adv.ranking.event.attack', prio=0, name='attack'
[PLAYERSHIP]-> add secondary signal: signal=[SIGNAL_CAPTURED], script='plugin.adv.ranking.event.capture', prio=0, name='capture'
[PLAYERSHIP]-> add secondary signal: signal=[SIGNAL_KILLED], script='plugin.adv.ranking.event.kill', prio=0, name='kill'

return null
JonfersonSDD wrote:// ps: ... den befehl "dim" gibt´s nicht, arrays erstellst du per array = array alloc: size=0, nutz´ lieber den ingame-SE
Na du kennst dich ja aus... :D Ich hatte das eigentlich auch anders eingegeben, aber der externe Editor X-Studio macht da halt dieses Dim draus. Der Ingame SE ist gelinde gesagt zum K.... ;)
Du weisst, dass du X angefangen hast, wenn du in der Flugschule den Autopiloten benutzt und der Fluglehrer dich fragt, wo du hin willst.

Return to “X³: Terran Conflict / Albion Prelude - Scripts und Modding”