Schiffshacker-Skript Beta Download

Hier ist der ideale Ort um über Scripts und Mods für X²: Die Bedrohung zu diskutieren.

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

rctamiya
Posts: 521
Joined: Thu, 19. May 05, 20:20
x4

Schiffshacker-Skript Beta Download

Post by rctamiya » Mon, 3. Jul 06, 22:05

Hier habt ihr ein Skript , mit dem ihr bequem in einer Station aus eurem Schiff austeigen könnt und Ziel eurer Begierde Kapern könnt .

Auszug aus der Readme :


Vorwort:


Dies ist mein erstes Skript dieser Art und noch nicht ganz ausgereift (es ist noch eine Beta )

Ich habe dieses Skript gemacht, damit es möglich ist wie im Intro andere Schiffe innerhalb einer Station zu kapern .

Installation:

Skript in den Skript Ordner entpacken (...X²-Die Bedrohung\Scripts /oder X³-Reunion\Scripts )

Ein neues Spiel starten oder Spielstand laden und falls der Skripteditor noch nicht aktiviert wurde im Weltraum
" T h e r e s h a l l be w i n g s " eingeben ( die " werden nicht mit eingegeben und auf Groß- und Kleinschreibung achten(!!!!))

(Bei X³-Reunion den Pilotennamen in "Thereshallbewings" (ohne die ") ändern .)

Benutzung :


Aus eurem Schiff aussteigen und im Raumanzug das Schiff der Begierde in der Station als Ziel markieren (Bild auf , bzw. Bild ab Taste drücken ) , zum Cockpit des Ziels fliegen fliegen,
Skripteditor öffnen und das Skript starten ( aaa.Schiffshacker (die 3 "a" sorgen dafür ,dass das Skript sehr weit oben zu finden ist))
und dann warten bis der Vorgang abgeschlossen ist .

Dieses Skript läuft bei X²-Die Bedrohung und X³-Reunion ,es läuft einwandfrei , jedoch ist es noch nicht komplett , es ist nur eine BETA .
Für evtl. Schäden an euren Spielständen übernehme ich keine Verantwortung.


Download ;)


Viel Spaß damit .

mfg rctamiya

Seve
Posts: 78
Joined: Fri, 17. Feb 06, 18:39

Post by Seve » Tue, 4. Jul 06, 10:05

Ich habe mir das mal runtergeladen.
Ist interessant, sollte aber noch ein bisschen Modifiziert werden. Denke wird ne abwechselung anstelle der Raumkämpfe.

User avatar
SymTec ltd.
Posts: 5285
Joined: Mon, 11. Apr 05, 21:11
x3tc

Post by SymTec ltd. » Tue, 4. Jul 06, 13:06

Wie wär's mit Verfolgern a'la Intro? Wenn Kampfschiffe gelandet sind, greifen sie außerhalb der Station das gestohlene Schiff an?

Seve
Posts: 78
Joined: Fri, 17. Feb 06, 18:39

Post by Seve » Tue, 4. Jul 06, 13:30

Auf jeden Fall wäre die Polizeilizenz zuverlieren.

Budoka
Posts: 211
Joined: Mon, 27. Feb 06, 21:46
x4

Post by Budoka » Tue, 4. Jul 06, 16:10

Habs mir auch mal runtergeladen....
Funktioniert gut, hab grad nen Xenon K damit gekapert....aus 35km Entfernung..... :D
Da sollte auf jeden Fall noch was dran geändert werden.....
Zum Beispiel sollte vom Script kontrolliert werden, ob der Spieler auch nah genug dran und in einer Station ist....

Mfg, Budoka
Last edited by Budoka on Tue, 4. Jul 06, 18:01, edited 1 time in total.
"Das Leben ist wie ein Videospiel, man weiß nie welche Grausamkeiten einen erwarten."
"Auf den Boden P*ssen kann jeder, sei ein Held und sch**ß an die Decke!"

Seve
Posts: 78
Joined: Fri, 17. Feb 06, 18:39

Post by Seve » Tue, 4. Jul 06, 16:19

Jap stimmt muss noch geändert werden

rctamiya
Posts: 521
Joined: Thu, 19. May 05, 20:20
x4

Post by rctamiya » Tue, 4. Jul 06, 18:52

Jop ... das muss ich in der tat noch beheben , habe halt gestern in den 10 minuten , die ich zum Skripten zeit hatte nicht alzuviel schaffen können ^^
Eigentlich sollte das Teil nur in Stationnen funzen , zu mindest habe ich das so gescriptet ^^
Naja , seis drum , folgendes ist geplant und wird innerhalb der nächsten tage (oder nächsten Woche ^^) fertig sein :

:arrow: Es kann passieren , das der Versuch misslingt und man dann von einer Sprengfalle gekillt wird ...


:arrow: Man muss mind. 15 Meter nah dran sein UND sich am Cockpit befinden .



mfg rc ( sich gleich an die Arbeit mach) .

rctamiya
Posts: 521
Joined: Thu, 19. May 05, 20:20
x4

Post by rctamiya » Tue, 4. Jul 06, 20:40

So , folgendes Problem habe ich jetzt mit meiner Sprengfalle , anstatt nur beim Fehlschlag den Spieler zu killen , killt sie den Spieler jetzt immer ...
Wie kann ich das beheben ?

Code: Select all

001   $shipjacker =  get player ship
002   $tgtship =  get player tracking aim
003   send incoming message 'Bitte begeben sie sich zum Cockpit des Ziels und warten sie bis der Hack beginnt' to player: display it=1
004 @ $wait = wait 10000 ms
005   $tmp = get distance between $shipjacker and $tgtship
006   if $tmp <= 15
007    goto label stealship
008   else
009    send incoming message 'Bitte Abstand auf max. 14 Meter  verringern.' to player: display it=1
010   end
011   
012   stealship:
013   while [TRUE]
014    
015 @  $wait = wait 5000 ms
016    $dice = random value from 0 to 100 - 1
017    $shipowner = $tgtship -> get owner race
018    
019    if $tmp > 15
020     send incoming message 'Sie sind nicht nah genug am Cockpit , Abstand auf max. 14 m   verringern.' to player: display it=1
021    end
022    if $dice <= 45
023     send incoming message 'Beginne Umprogrammierung  der Schiffsprotukolle ...  . Bitte warten...  .' to player: display it=1
024     $tgtship -> set owner race to Player
025     send incoming message 'Schiffssteuerung erfolgreich umprogrammiert . Viel Spass mit dem  Schiff.' to player: display it=1
026     break
027    else
028     $bad.throw = random value from 0 to 25 - 1
029     if $bad.throw < 24
030      send incoming message 'Achtung explosive Falle  , sie wurden entdeckt. Termination autorisiert' to player: display it=1
031 @    $wait = wait 5000 ms
032      $shipjacker -> destruct: show no explosion=1
033      $tgtship -> destruct: show no explosion=1
034     end
035    end
036    continue
037   end
038   return null


mfg rc

Seve
Posts: 78
Joined: Fri, 17. Feb 06, 18:39

Post by Seve » Tue, 4. Jul 06, 21:14

Ich habe zwar nicht viel ahnung, aber muss nicht in Zeile 26 ein "end", oder reicht das "breake" ??

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader » Tue, 4. Jul 06, 21:33

Hab mir mal das Script angesehen und mir sind Folgende Fehler aufgefallen:

Code: Select all

013   while [TRUE]          //Endlosschleife, das Script wiederholt sich selbst bei Erfolg dauernd
014    
015 @  $wait = wait 5000 ms 
016    $dice = random value from 0 to 100 - 1 
017    $shipowner = $tgtship -> get owner race 
018    
019    if $tmp > 15 
020     send incoming message 'Sie sind nicht nah genug am Cockpit , Abstand auf max. 14 m   verringern.' to player: display it=1 
021    end    //Hier ne Untebrechung fürs Kapern einbauen, sonst ist die Entfernung unendlich, bei zu grosser entfernung wird nur ne Nachricht gesendet un mit dem Kapern weitergemacht.
022    if $dice <= 45 
023     send incoming message 'Beginne Umprogrammierung  der Schiffsprotukolle ...  . Bitte warten...  .' to player: display it=1 
024     $tgtship -> set owner race to Player 
025     send incoming message 'Schiffssteuerung erfolgreich umprogrammiert . Viel Spass mit dem  Schiff.' to player: display it=1 
026     break      //KA, was der Befehl bedeutet, aber an diese stelle sollte am besten return null um das Script zu beenden
027    else 
028     $bad.throw = random value from 0 to 25 - 1      //Generiert Zufallszahl von 0 - 24
029     if $bad.throw < 24      //Wenn diese zufallszahl kleiner 24 ist, werden beide Schiffe zerstört (also immer)
030      send incoming message 'Achtung explosive Falle  , sie wurden entdeckt. Termination autorisiert' to player: display it=1 
031 @    $wait = wait 5000 ms 
032      $shipjacker -> destruct: show no explosion=1 
033      $tgtship -> destruct: show no explosion=1 
034     end 
035    end 
036    continue 
037   end 
038   return null 
Hier noch mal als Liste:
- Das Script läuft als Endlosschleife, da eine Unterbrechung in der Schleife fehlt
- Die Entfernungsprüfung ist unwirksam, da die Entfernung zwar geprüft wird aber wenn die Entfernung zu gross ist wird nur ne Nachricht geschickt und dann normal weitergemacht.
- Das Script wird bei erfolg nicht beendet (return ... ist der Befehl zum beenden ;) )
- Die Zufallszahlen für die zerstörung müssen ausbalanciert werden.

Wenn noch fragen auftauchen einfach fragen ;)
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

Seve
Posts: 78
Joined: Fri, 17. Feb 06, 18:39

Post by Seve » Tue, 4. Jul 06, 21:44

Da lag ich doch mit Zeile 26 nicht schlecht. :oops: Danke Unitrader

rctamiya
Posts: 521
Joined: Thu, 19. May 05, 20:20
x4

Post by rctamiya » Tue, 4. Jul 06, 22:05

könntest du mir evtl. die Befehle zum beheben geben ?

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader » Tue, 4. Jul 06, 22:30

Ich kann dir leider das fertige Script nicht senden, da ich mehr übung im X3 SE hab, welcher keine Scripte für X2 schreiben kann.

Ich hab das Script so ausgelegt, dass es bei zu grossem Abstand neu gestartet werden muss: (nicht über Zeilennummern wundern :D , Kommentare sind hinter //, Geänderte Zeilen beginnen mit X):

Code: Select all

001   $shipjacker =  get player ship 
002   $tgtship =  get player tracking aim 
003   send incoming message 'Bitte begeben sie sich zum Cockpit des Ziels und warten sie bis der Hack beginnt' to player: display it=1 
004 @ $wait = wait 10000 ms 
005   $tmp = get distance between $shipjacker and $tgtship 
006   if $tmp <= 15 
007    goto label stealship 
008   else 
009    send incoming message 'Bitte Abstand auf max. 14 Meter  verringern.' to player: display it=1 
010   end 
X 011   return null   //Beendet das Script bei zu grosser Entfernung
012   stealship: 
013   while [TRUE] 
014    
015 @  $wait = wait 5000 ms 
016    $dice = random value from 0 to 100 - 1 
017    $shipowner = $tgtship -> get owner race 
018    
019    if $tmp > 15 
020     send incoming message 'Sie sind nicht nah genug am Cockpit , Abstand auf max. 14 m   verringern.' to player: display it=1 
X 021   return null   //Beendet das Script bei zu grosser Entfernung
021    end 
022    if $dice <= 45 
023     send incoming message 'Beginne Umprogrammierung  der Schiffsprotukolle ...  . Bitte warten...  .' to player: display it=1 
024     $tgtship -> set owner race to Player 
025     send incoming message 'Schiffssteuerung erfolgreich umprogrammiert . Viel Spass mit dem  Schiff.' to player: display it=1 
X 026     return null   //Beendet das Script bei Erfolg
027    else 
X 028     $bad.throw = random value from 0 to 100 - 1
X 029     if $bad.throw < 10  //Hab hier die Zahlen angepasst, Zerstörungswarscheinlichkeit 10% pro durchlauf
030      send incoming message 'Achtung explosive Falle  , sie wurden entdeckt. Termination autorisiert' to player: display it=1 
031 @    $wait = wait 5000 ms 
X 032      $shipjacker -> destruct: show no explosion=[FALSE] 
X 033      $tgtship -> destruct: show no explosion=[FALSE] //willst ja ne Explosion sehen 
X 033     return null   //Beendet das Script bei Zerstörung (sicher ist sicher)
034     end 
035    end 
036    continue 
037   end 
038   return null 
PS damit wäre die Funktion des Kapermechanismus hergestellt, wie man die Umgebung prüft weiss ich leider nicht, hab selbst noch nicht so viel gescriptet
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

rctamiya
Posts: 521
Joined: Thu, 19. May 05, 20:20
x4

Post by rctamiya » Tue, 4. Jul 06, 22:51

Der Umgebungsprüfer ist ganz einfach , man lässt das Script checken , ob man gedockt ist .
Innerhalb einer Station zählt man immer als gedockt .
Naja , aber 90% Kaperchance... ich glaube es sollte noch passieren ,das man einfach ausm system rausgeworfen wird ( chance) 30% oder die Station hetzt Söldner auf einen 10% .
Damit stehen dann die Kaperchancen bei 50% , und misserfolg bei 50%, also halbe halbe .

Das könnte dann so aussehen :

Code: Select all

Der bereits fertige Teil ...
  
040     $bad.throw2 = random value from 0 to 100 - 1 
041     if $bad.throw2 <30
042     send incoming message 'Das Sicherheitssystem hat sie aus dem System entfernt .' to player: display it=1
043 return null

028     $bad.throw4 = random value from 0 to 100 - 1
029     if $bad.throw4 < 10  
030      send incoming message 'Sie wurden entdeckt , Kopfgeldjäger werden sie nun töten .' to player: display it=1

//Wie muss dann der rest lauten , damit 2-3 Schiffe außerhalb der Station auf den Spieler warten ?Oder reicht es die Station gegenüber den Spieler auf Feindlich zu stellen ?
mfg rc

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader » Tue, 4. Jul 06, 23:27

Um genau zu sein ist die Kaperchance 45%, wenn nicht gekapert wir werden beide Schiffe mit 10% warscheinlichkeit zerstört und wenn das nicht eintritt beginnt das ganze von vorne.
Hab mir mal was direkteres fürs Kapern ausgedacht:

Code: Select all

$Number = random value from 0 to 100   //oder 101 - 1 
if $Number >= 50
 if $Number > 80
  send incoming message 'Beginne Umprogrammierung  der Schiffsprotokolle ...  . Bitte warten...  .' to player: display it=1 
  @ $wait = wait 3000 ms 
  $tgtship -> set owner race to Player 
  send incoming message 'Schiffssteuerung erfolgreich umprogrammiert . Viel Spass mit dem  Schiff.' to player: display it=1 
  return null
 else if [TRUE]
  send incoming message 'Sie hatten keinen Erfolg bei der Schiffsübernahme' to player: display it=1
  return null
 end
else if $Number < 50
 if $Number < 30
  send incoming message 'Beginne Umprogrammierung  der Schiffsprotukolle ...  . Bitte warten...  .' to player: display it=1 
  @ $wait = wait 3000 ms 
  $tgtship -> set owner race to Player 
  send incoming message 'Schiffssteuerung umprogrammiert . Selbstzerstöung Initiiert' to player: display it=1 
  @ $wait = wait 7000 ms 
  $tmp = get distance between $shipjacker and $tgtship 
  $tgtship -> destruct: show no explosion=[FALSE]
  if $tmp < 20
   $shipjacker -> destruct: show no explosion=[FALSE] 
  end
  return null  //erst denkt man "Erfolg!!!" dann machts "Bumm" :D; habs mit ner Entfernugsprüfung verfeinert ;)
 end
 if $Number > 20
  send incoming message 'Sie wurden entdeckt!!! Söldner erwarten sie vor der Station!!!' to player: display it=1
 //Hier die Söldner erstellen
 end
end
return null
Hier die möglichkeiten (von gut nach schlecht):
Kapern erfolgreich - 20%
Kapern erfolglos, keine Strafe - 30 %
Söldner alarmiert - 20%
Selbstzerstörung ausgelöst - 20%
Söldner alarmiert und Selbstzerstörung ausgelöst - 10%

Hab das mit der Selbstzerstörung etwas verfeinert:
erst sieht es so aus, als hätte man erfolg, aber es kommt eine versteckte Warnmeldung und wenn man 7 s später nicht weit genug weg ist (20m) wird man vernichtet :P

PS eine Zufallszahl reicht vollkommen aus ;)
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

rctamiya
Posts: 521
Joined: Thu, 19. May 05, 20:20
x4

Post by rctamiya » Thu, 6. Jul 06, 18:30

Gute idee , das mit den Söldnern kriege ich nicht ganz so hin ,wie ich es will ...
Aber das Skript habe ich nun fast genau so übernommen , wie du es geschrieben hast ^^.
[EDIT] PS : Wie muss ich das denn nun machen , das da Söldner kommen und den Spieler angreifen ? Bei mir sind da nur 5 Söldner , nur die gammeln da im System rum ...

rctamiya
Posts: 521
Joined: Thu, 19. May 05, 20:20
x4

Post by rctamiya » Mon, 24. Jul 06, 09:28

Code: Select all

001   $Playership =  get player ship
002   $X = $Playership -> get x position
003   $Z = $Playership -> get z position
004   $Y = $Playership -> get y position
005   $Sektor = $Playership -> get sector
006   $Zahl = 5
007   $M = 1410065407
008   $Nummer = 0
009   while $Nummer <= $Zahl
010    $NeuesSchiff =  create ship: type=Paranid Perseus owner=Piraten addto=$Sektor x=$X y=$Y z=$Z
011 @  $Installiere = $NeuesSchiff -> call script 'Func.Alle.Upgrades.Alle.Klassen' :  Schiffstyp=$NeuesSchiff
012    $Attacke -> set command: COMMAND_ATTACK_TARGET
013    $Attacke = [PLAYERSHIP] -> get attack target
014 @  START $NeuesSchiff -> call script '!ship.cmd.attack.pl' :  victim=$Attacke
015    $Nummer = $Nummer + 1
016   end
017   return null
So ,das ist das Söldnererstellungsskript , nur ne Frage : wie kriege ich das hin , das die nur den Spieler angreifen und nicht den ganzen Sektor plätten?

Cobra22
Posts: 2148
Joined: Mon, 18. Apr 05, 10:55
x4

Post by Cobra22 » Thu, 3. Aug 06, 15:06

Wie kann ich denn im Raumanzug den Scripteditor öffnen (in X2)? Hab an eine Station angedockt, bin ausgestiegen, zum Zielschiff geflogen (im Raumanzug) konnte aber den Scripteditor nicht öffnen...gibt ja gar keine Kommandokonsole im Raumanzug, wo man den öffnen könnte. Wie macht ihr das?

User avatar
Han-Maxi
Posts: 298
Joined: Tue, 9. May 06, 21:02
x4

Post by Han-Maxi » Thu, 3. Aug 06, 15:09

Hi Cobra22!

Im Menü gibt es doch eine Kommandokonsole wo man die Freund- Feinderkennung umstellen kann! Dort findet man glaub auch den Scripteditor!!!

Gruß
Han-Maxi!

Cobra22
Posts: 2148
Joined: Mon, 18. Apr 05, 10:55
x4

Post by Cobra22 » Thu, 3. Aug 06, 16:05

Ja habs gefunden und das Script erfolgreich angewendet.
Danke für die Hilfe.

Cobra22

Post Reply

Return to “X²: Die Bedrohung - Scripts und Modding”