Forum

> > Stranded II > Scripts > Random Spawn Items
Forums overviewStranded II overview Scripts overviewLog in to reply

German Random Spawn Items

16 replies
To the start Previous 1 Next To the start

old Random Spawn Items

AroundTheWorld
User Off Offline

Quote
Hallo liebe USGN-Community.

Da ich ein absoluter Anfänger in scripten bin wollte ich nur mal fragen: Wie kann man mehrere Objekte random spawnen wenn man in den Radius dieses Objektes kommt? Es soll ebenfalls ein Spawntimer von 10 Minuten drin sein.
Ich weiß das sind viele Forderungen, aber ich brauch es echt.

Also wenn das Objekt gespawnt wurde fängt der timer an.
Ich würde mich sehr freuen wenn sich einer diese Mühe macht.

Mfg AroundTheWorld

old Re: Random Spawn Items

Nova
User Off Offline

Quote
Ich möchte dir jetzt nicht einfach das ganze Script schreiben, aber ich kann dir ein paar nützliche Tipps und Links geben.

Du musst halt zuerst im regelmäßigen Abstand prüfen, ob der Spieler in Reichweite ist. Dazu benutzt du einen Trigger und stellst dort eine entsprechende Entfernung ein. Du kannst ja rumprobieren, wie groß der Radius sein muss. (Fang mit 100 an.)

Wo genau sollen die Objekte spawnen? An bestimmten Stellen oder an einem Objekt? Du kannst mit s2 cmd random dir eine zufällige Zahl ausgeben lassen und diese als Koordinate nutzen. Dafür brauchst du aber auch die Koordinate des Objektes, um das die Objekte spawnen sollen. DIe kriegst du mit s2 cmd getx und s2 cmd getz.
Lasse dir eine Zufallszahl zwischen -100 und +100 ausgeben und addiere sie mit der Koordinate des Objekts, um die die Sachen spawnen soll. So hast du ein Quadrat um das Anfangsobjekt, in dem zufällig das Objekt spawnt.
Speichere dabei alle Werte in Variablen zwischen, damit du leichter mit ihnen arbeiten kannst.
Wichtig dafür auch: s2 cmd create

(Und vergiss die runden Klammern nicht, die um Parameter kommen, wenn der Befehl einen Rückgabewert hat! Das passiert auch Leuten, die schon länger scripten. )


Solltest du noch fragen haben oder einfach etwas nicht genau verstanden haben, dann frag einfach nach. Scripten ist nicht unbedingt einfach und wir helfen gerne.

old Re: Random Spawn Items

AroundTheWorld
User Off Offline

Quote
Erstmal möchte ich mich bedanken für deinen sehr ausführlich geschriebenen Beitrag.

Ich weiß leider überhaupt nicht wie das funktionieren soll.
Also ich will ein Stein spawnen lassen wenn der Spieler in der Nähe des Radiustriggers ist.
Bitte kannst du mir den Quelltext aufschreiben?
Ich hab noch nie in Stranded 2 gescriptet.
Und daraus würde ich lernen wie der Stranded 2 Quelltext aufgebaut ist. Ich weiß z.B. bei C++ fängt man mit
#include <iostream>
using namespace std;
gibt es sowas auch in Stranded 2?


##EDIT

Es tut mir leid ich habe die Frage falsch gestellt.
Ich möchte (wenn der Spieler in Radiusnähe ist) zufällig entweder ein Stück Fleisch oder einen Stein spawnen lassen. Danach soll eine Timer starten, sodass die items erneut nach 10 Minuten spawnen können.

old Re: Random Spawn Items

Nova
User Off Offline

Quote
Ja, die von user Hurri04 angegebenen Seiten sind ein gutes Tutorial, um in die Scriptsprache von Stranded II einzusteigen.

Als kleine Einstiegshilfe schreibe ich dir aber mal folgendes Script auf. Stelle eine Palme auf eine neue Insel in Stranded II (im Editor) und kopiere in ihr Script-Feld das Script.
Wenn du dann mit der Benutzern-Taste (Standard "E") die Palme benutzt, dann sollte eine Nachricht kommen.
1
2
3
4
5
6
7
8
9
10
11
12
on:use
{
	$zufall = random(1, 2);
	if ($zufall == 1)
	{
		msg "Objekt: Fleisch";
	}
	else
	{
		msg "Objekt: Stein";
	}
}

old Re: Random Spawn Items

AroundTheWorld
User Off Offline

Quote
Vielen Dank , vielen dank aber das brauch ich nicht... ich programmier mit C++ hat das gleiche Aufbauschema.
Ich möchte nur die vom Programm vorgegebenen script elemente lernen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
on:use
{

//While Schleife?     

	$zufall = random(1, 2);
     if ($zufall == 1)
     {
         ???SPAWNOBJECT ???
     }
     else
     {
          ??? SPAWNOBJECT ???
     }
addtimer??? 4000 Frames

}

Ich weiß nur nicht wie die Befehle in Stranded 2 heißen.

old Re: Random Spawn Items

Nova
User Off Offline

Quote
Dafür musst du dir die Trigger anschauen. Mit ihnen kannst du alle halbe Sekunde nachschauen, ob der Spieler im Radius ist. Wenn der Spieler drin ist, dann guckst du nach, ob eine Variable auf 0 steht. Sollte dies der Fall sein, spawnst du das entsprechende Objekt, setzt die Variable auf 1 und setzt einen s2 cmd timer mit 600000. (Millisekunden, entspricht 10 Minuten.) Schau dir den Befehl an, um zu sehen, wie er funktioniert.
Auch s2 cmd create ist zum Spawnen wichtig, schaue es dir in der Befehlsreferenz an. (Einfach auf das Wort klicken.)

Sobald das Event dieses Timers ausgeführt wird, setzt du die Variable wieder auf 0. So verhinderst du, dass die ganze Zeit Sachen gespawnt werden.

Wie du zufällig etwas auswählst, habe ich dir ja schon geschrieben.


Es ist gut, dass du C++ kannst. Allerdings ist das keine Garantie, dass du auch die Stranded-II-Scriptsprache sofort kannst. Das Event-System mit s2 cmd on und den timern ist eine Neuerung, die schon verwirren kann.

old Re: Random Spawn Items

AroundTheWorld
User Off Offline

Quote
Vielen Dank. Ich werde mich jetzt ans schreiben machen.
Falls es nicht klappt melde ich mich nochmal

##EDIT

create "Klasse", Typ [, X, Z] [, Menge]

Was ist die Klasse und der Typ?
muss ich getx und gety beim Item, das spawnen soll oder
beim trigger schreiben?

old Re: Random Spawn Items

Hurri04
Super User Off Offline

Quote
klasse: "object", "item", "unit", "info"
je nachdem, aus welcher gruppe du was spawnen lassen willst.

typ: wenn du im editor z.b. auf ein item in der liste links zeigst, wird dort im tooltip eine nummer angezeigt.
dies ist die typ-nummer und kommt an dieser stelle ins script rein. ohne anführungszeichen und so!
und bitte nicht mit der ID verwechseln, das ist die nummer für eine instanz und zudem hat jede klasse einen eigenen ID-range.

getx und gety kommen natürlich beim trigger rein, so wie eigentlich alles in diesem einfachen beispiel, wenn ich das richtig sehe.

old Re: Random Spawn Items

AroundTheWorld
User Off Offline

Quote
Ich kriegs nicht hin.
Ihr schreibt alle es ist einfach.
Bitte schreibt mir doch ein script
wie muss der Area trigger aufgebaut sein?

old Re: Random Spawn Items

Hurri04
Super User Off Offline

Quote
schau dir mal s2 cmd on an und verwende davon "on:trigger" in der scriptbox des triggers, um das event abzufangen, das ausgelöst wird, wenn die eingestellten parameter zutreffen.

old Re: Random Spawn Items

Kayren
User Off Offline

Quote
Ich versuchs mal:


1
2
3
4
5
6
on:load{
 timer 0, 600000,0;
}
on:timer{
 areal_event "createclose", getx("self"),gety("self"),getz("self"),radius;
}
Steckt in irgendeiner Info.
Sollte via s2 cmd addscript dem Spieler gegeben werden so dass jede 10 Minuten er ein Skript ausführt, das jedem Objekt in einem beliebigen radius(radius mit Zahl zu ersetzen) ein Event namens createclose ausführt.

1
2
3
on:start{
 addscript "Unit",1,id;
}
In der Map selbst.
Bei der ID fügst du die ID der Info ein wo du das erste Skript hineingelegt hast. Das wird dadurch am Anfang des Spieles dem Spieler gegeben. Wenn ich mich recht erinnere ist der Spieler immer die Unit mit der ersten ID, daher.


1
2
3
4
5
6
7
8
on:createclose{
 local $while;
 $while=0
 while($while<random(20)) {
  randomcreate "item", random(100),Ymin,Ymax,menge;
 }
 freevar $while;
}

Wird dem Objekt, dem der Spieler nahe kommen soll gegeben und wird dort ausgelöst, da dann createclose bei dem Objekt ausgeführt wird. Erschafft 0 bis 21 der ersten 100 Gegenstände nach Nummer ihres Typs für eine bestimmte Menge(füge eine Zahl oder random(irgendwas) ein statt menge) in einem Bereich der durch Ymin und Ymax bestimmt ist.

Das Ganze ist nicht ausgetestet, falls also Fehler drin sind, bitte hier sagen. Falls Andere einen Fehler finden, ihr könnt ihn, falls ihr wollt, verbessern. Habe schon lange nicht mehr geskriptet und mein PC ist zu langsam führ Stranded 2(lol?)
edited 2×, last 22.06.13 05:31:42 pm

old Re: Random Spawn Items

Kayren
User Off Offline

Quote
Tschuldigung.
1
2
3
4
5
on:createclose{
 loop("count",random(20)) {
  randomcreate "item", random(100),Ymin,Ymax,menge;
 }
}

Das verbesserte Skript das ins Objekt gehört.

Danke, Nova. So müsste es klappen.

old Re: Random Spawn Items

Hurri04
Super User Off Offline

Quote
@user Kayren:
meine güte ey, was ist denn das für ein chaos?!
das lässt sich wesentlich leichter und mit nur einem script machen.

das einzig richtige bei deinem 1. script ist die 4. zeile und das 2. script wird garnicht gebraucht, wenn man es richtig macht.

beim 3. script steht $while immer auf 0, die letzten 3 parameter von zeile 5 müssen ersetzt werden und s2 cmd freevar braucht man allerhöchstens bei scripts, die per rekursion auf 10.000 verschiedene variablen zugreifen, die nur einmalig gebraucht werden (wobei sich dann aber eher andere sorgen machen sollte, anstatt darauf zu achten ob man alle variablen aufgeräumt hat).


sorry, aber die scripte wimmeln mit fehlern und die syntax ist auch nicht besonders toll. zudem sind deine beschreibungen unter aller sau.


@user AroundTheWorld:
wenn du's immer noch nicht hingekriegt hast:
Spoiler >


ich hoffe, dass dir das hilft, einen einstieg ins scripten von S2 zu finden.
edited 1×, last 22.06.13 10:26:19 pm

old Re: Random Spawn Items

0TT0
User Off Offline

Quote
gibt es keinen befehl der überprüft, ob eine variable einen wert besitzt? - dann könnte man "on:starten" weglassen

old Re: Random Spawn Items

Hurri04
Super User Off Offline

Quote
nein, einen solchen befehl gibt es nicht.
More >


zudem ist das event "on:starten" nicht dazu gedacht, die variable zu überprüfen, sondern sie zu setzen.
denn das ist die art, wie der s2 cmd timer befehl funktioniert: er löst ein neues event aus (anstatt an der aktuellen stelle im code zu warten). folglich ist das die einzige möglichkeit, wie man nach einer bestimmtem zeit (hier 10 minuten) eine sache ausführen kann.

außerdem: was soll der geiz? das sind gerade mal 2 simple events, einfacher geht's wirklich nicht mehr.
To the start Previous 1 Next To the start
Log in to reply Scripts overviewStranded II overviewForums overview