Auf Skript zugreifen mit command()

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
Post Reply
allph
PaC-DK Newby
Posts: 23
Joined: 01 Jan 2016, 15:05

Auf Skript zugreifen mit command()

Post: # 82874Post allph
05 Jan 2016, 19:39

Hallo miteinander :D

Hab schon herumgesucht, habe aber nichts gefunden, was mir weiterhilft.
Was ich vorhabe:
Ein "Standardskript für einen Befehl" - wo eigene Variablen übergeben werden sollen.
z.B.on (take) für einen Ball
Skript (Ball / Objekt)

Code: Select all

 on (take)
{
setstring (objektname ; Ball)
setstring (taketext ; Hurra, ein Ball)
command (etwasnehmen)
}
jetzt sollte die funktion (etwasnehmen) ausgeführt werden:

Code: Select all

etwasnehmen()
   {
   pickup (self)
   setobj ([objektname]; 0)
   additem (self ; [objektname])
   speech (self ;[taketext])
   } 
Wo definiere ich so eine funktion, damit darauf zugegriffen werden kann.
Wie schaut die Syntax dafür aus?
Kann ich auch die Variablen gleich als Parameter übergeben?
Für Instruktionen wär ich dankbar :lol:
Beste Grüße aus Wien
Image

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Auf Skript zugreifen mit command()

Post: # 82875Post japanhonk
05 Jan 2016, 20:09

Hi,

eine Funktion ist ein eigenes Skript, also eine leere Seite, auf die Du die Befehle schreiben musst.
Diese Seite wird dann von oben bis unten abgearbeitet.

Soweit wohl Nix Neues.

Wenn Du das als Funktion starten willst nimmst Du den Befehl function (<Skriptname>)

Command löst nur die Aktion aus, die Du als Befehl definiert hast, so wie on (look) usw.

Damit kannst Du direkt keine Skripte starten. Das geht nur in den zu bedienenden Objekten / Gegenständen usw.


on (look)
function (<skriptname>)


Wenn Du das in ein Objekt schreibst und es dann anschaust, wird die Funktion, die dort angegeben ist, gestartet.


Dann musst Du noch ein Skript schreiben. Du kannst dieses Skript dann sowohl als cutscene starten, als auch als Funktion. Es gibt aber einige spezifische Befehle für Beides.
In dem Skript stehen dann die Befehle, die ausgeführt werden sollen. Eine Funktion stoppt nicht den Rest des Spiels. Somit eignen sich Funktionen sehr gut für Berechnungen im Hintergrund oder zum Bewegen von Objekten.

Wäre ja blöd, wenn das Spiel solange wartet, bis ein Objekt bewegt wurde. ( Ich hab nen Raumkampf gebaut, wenn der Gegner sich bewegt, hätte ich sonst ja nicht schießen können...)

Funktionen laufen 1x durch, man kann im Befehl aber auch angeben, ob sie ständig oder nur eine bestimmte Anzahl lang laufen sollen.

Auf der sicheren Seite steht man , wenn man nachher mit stopfunction (<skriptname>) evtl loopende Funktionen wieder stoppt. Sonst werden es zu viele und die Performance leidet.


Gruß

Manni
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

allph
PaC-DK Newby
Posts: 23
Joined: 01 Jan 2016, 15:05

Re: Auf Skript zugreifen mit command()

Post: # 82878Post allph
05 Jan 2016, 21:04

Danke, Manni!
function () funktioniert :banana:

Ich hab die Variablen bei on (mouse) deklariert.
Dann sind die auch für die anderen on (ereignis) verfügbar
Beste Grüße aus Wien
Image

Post Reply