Forum

> > Stranded II > Scripts > Scripting - Fragen/Probleme
ForenübersichtStranded II-Übersicht Scripts-ÜbersichtEinloggen, um zu antworten

Deutsch Scripting - Fragen/Probleme

6.780 Antworten
Seite
Zum Anfang Vorherige 1 2315 316 317339 340 Nächste Zum Anfang

alt Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Zitieren
der unterschied liegt darin, dass man mit s2 cmd setpos ein objekt auf eine bestimmte position auf der map verschiebt, wer schonmal ne map gemacht hat und keine startposition gesetzt hat weiß, dass man dann in der mitte der map spawn, also bei x=0 und z=0.
dieser effekt ist aber hier nicht gewünscht, da das info mit dem rauch-state ja nicht auf eine bestimmte position auf der map verschoben werden soll, sondern das info soll ja um einen bestimmten wert relativ zum erstellungs-ort verschoben werden, und das macht man eben mit s2 cmd rpos.

alt Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Zitieren
also ich hab mir die dateien runtergeladen, hab aber keine ahnung wo ich die sachen jetzt hinpacken soll, irgendwie scheint das nur ein teil eines mod-ordners zu sein, jedenfalls nichts ganzes und nichts halbes...

am besten postest du einfach mal das entsprechende (komplette!) script und evtl noch ien bild des objekts, um das es sich handelt
oder was du auch einfach mal versuchen könntest wäre ein wenig mit den werten herunzuspielen, wie weit die infos nach dem erstellen in welche richtung verschoben werden sollen, aus meiner erfahrung kann ich dir sagen, dass das meistns schon so klappt, es bedarf halt nur einiger testläufe, bis man die richtige stelle gefunden hat.

und noch ein tipp:
benutze zum testen keine map, auf der das objekt schon gebaut ist, sondern baue das objekt im editor immer wieder neu und teste mit F12, denn sonst ist das objekt immer an der gleichen stelle und dadurch kann es z.b. zu dem irrtum kommen, dass man, wenn man s2 cmd setpos benutzt, auch zum richtigen ergebnis kommt, was ja aber nicht stimmt, da man nur das info an eine bestimmte position verschiebt, die gerade bei der position des objektes, wenn es fest steht, passt.

benutze von daher also auch bei x und z wirklich s2 cmd rpos, dann kommst du auch zum richtigen ergebnis

alt Re: Scripting - Fragen/Probleme

Jason13579
User Off Offline

Zitieren
EDIT: Hat sich erledigt. Musste nur unten im Script bei den Winkeln bei rpos mit getpitch und co arbeiten, statt mit "self". Danke für die Hilfe

Hurri04 hat geschrieben
also ich hab mir die dateien runtergeladen, hab aber keine ahnung wo ich die sachen jetzt hinpacken soll, irgendwie scheint das nur ein teil eines mod-ordners zu sein, jedenfalls nichts ganzes und nichts halbes...

Hups gehört zum Extension Mod.

Hurri04 hat geschrieben
am besten postest du einfach mal das entsprechende (komplette!) script und evtl noch ien bild des objekts, um das es sich handelt


Bin nicht grad nen Script_Profi (wie man am Script auch merkt), erwarte also nicht sehr viel. Eigentlich gehts nur um den Teil bei on:create.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
on:create {
	local "$x_esse","$y_esse","$z_esse","$id_info1","$id_info2","$esse","$iron_1","$iron_2","$iron_ges","$id_item","$coal";
	$x_esse=getx("self");
	$z_esse=getz("self");
	$y_esse=gety("self");
	$id_info1=create("info",30,$x_esse,$z_esse);
	setpos "info",$id_info1,"self",$y_esse+21,"self";
	addstate "info",$id_info1,"eternalfire";
	$id_info2=create("info",30,$x_esse,$z_esse);
	rpos "info",$id_info2,"self",90,10,"self","self","self";
	addstate "info",$id_info2,"smoke";
}

on:use {
	if(((($esse==0) and (getplayerweapon()==85)) and (count_stored("unit",1,85)>=1)) and ($coal==2)) {
		$iron_1=count_stored("unit",1,85);		
		freestored "unit",1,85,1;
		$id_item=create("item",85);
		setpos "item",$id_item,$x_esse,$y_esse+26,$z_esse;
		timer "object",currentid(),5000,0,"check_fire";
		$esse=1;
		skip;
	}
	elseif($esse!=0) {
		msg "Es liegt bereits etwas in der Esse.";
	}
}

on:check_fire {
	$iron_2=count_stored("unit",1,85);
	$iron_ges=$iron_1-$iron_2;
	if($iron_ges==1) {
		free "item",$id_item;
		$id_item=create("item",1000);
		setpos "item",$id_item,$x_esse,$y_esse+21.3583,$z_esse;
	}
	$esse=0;
	freetimers "self";
	skip;
}

on:changeday {
	if($coal==2) {
		freestate "info",$id_info1;
		freestate "info",$id_info2;
		alterobject "self",1256;
		$coal=3;
	}	
}

Hurri04 hat geschrieben
und noch ein tipp:
benutze zum testen keine map, auf der das objekt schon gebaut ist, sondern baue das objekt im editor immer wieder neu und teste mit F12, denn sonst ist das objekt immer an der gleichen stelle und dadurch kann es z.b. zu dem irrtum kommen, dass man, wenn man s2 cmd setpos benutzt, auch zum richtigen ergebnis kommt, was ja aber nicht stimmt, da man nur das info an eine bestimmte position verschiebt, die gerade bei der position des objektes, wenn es fest steht, passt.

Handelt sich beim Objekt um ne Esse. Dabei wird von einem Modell mit Kohle auf eins mit glühender Kohle gwechselt, also wird das Objekt eigentlich immer neu erstellt, probiers aber nochmal.

Bilder:
http://img17.imageshack.us/i/screen00005z.png/
http://img294.imageshack.us/i/screen00004a.png/
http://img13.imageshack.us/i/screen00003.png/

Sind 3 unterschiedliche Objekte auf der gleichen Insel. Feuer klppt, da es nur auf der y_Achse verschoben wird, da hab ich auch noch setpos. Rauchstate ist immer woanders.

lg
Jason13579

2× editiert, zuletzt 26.05.10 18:32:52

alt Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Zitieren
gut, ich greif mir dann einfach mal den teil mit dem on:create raus:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
on:create {
	local "$x_esse","$y_esse","$z_esse","$id_info1","$id_info2","$esse","$iron_1","$iron_2","$iron_ges","$id_item","$coal";
	$x_esse=getx("self");
	$z_esse=getz("self");
	$y_esse=gety("self");


	$id_info1=create("info",30,$x_esse,$z_esse);
	setpos "info",$id_info1,"self",$y_esse+21,"self";
	addstate "info",$id_info1,"eternalfire";


	$id_info2=create("info",30,$x_esse,$z_esse);
	rpos "info",$id_info2,"self",90,10,"self","self","self";
	addstate "info",$id_info2,"smoke";
}

so, also wie man sehen kann hab ich das script jetzt in 3 teile aufgeteilt.

der erste teil sollte soweit klar sein und funktionieren.

beim zweiten teil wird ein info erstellt, diesem wird der "eternalfire"-state verpasst und wenn ich das richtig verstanden habe funktioniert das bei dir soweit.

der dritte teil erstellt ein info, dem der rauch-state gegeben wird und das funktioniert deiner aussage nicht (?).


wenn ich das soweit alles richtig verstanden habe fände ich das schon ziemlich merkwürdig, dass das zweite funktionieren soll und das dritte nicht, denn
• wie ich ja in meinen vorherigen paar posts schon mehrfach gesagt habe setzt s2 cmd setpos ein objekt auf eine bestimmte höhe. wenn du jetzt z.b. eine neue map erstellt, diese komplett flach machst, dann an einer stelle ein höher gelegenes plateau erstellt (einfach mal um einen höhenunterschied zu haben) und dann unten eine esse und auf dem plateau eine esse baust, dann solltest du eigentlich sehen können, dass das feuer nicht an der richtigen position ist (von der höhe her, denn an den x- und z-werten wird ja nichts geändert duch "self").
deswegen solltest du beim zweiten teil auch s2 cmd rpos verwenden.
Mehr >





zum dritten teil, bei dem du s2 cmd rpos verwendet hast, so wie es eigentlich auch richtig ist:
hier habe ich einen kleinen fehler entdeckt, es muss nicht heißen
1
rpos info",$id_info2,"self",90,10,"self","self","self";
, sondern:
1
rpos info",$id_info2,0,90,10,"self","self","self";
, also eine verschiebung um 0 auf der x-achse und nicht "self".



so, das wars eigentlich schon, was ich soweit an fehlern gefunden habe, kannst das ja mal verbessern und gucken ob es dann funktioniert


Edit:
Jason13579 hat geschrieben
EDIT: Hat sich erledigt. Musste nur unten im Script bei den Winkeln bei rpos mit getpitch und co arbeiten, statt mit "self". Danke für die Hilfe


na toll, da bin ich grad ne fette antwort am schreiben, da löst du das problem selbst
Mehr >


was ich komisch finde ist, dass du das mit getpitch, getyaw und getroll machst, normalerweise muss das auch mit "self" gehen...
lies dir meinen post trotzdem nochmal durch, vllt kann es auch noch dran liegen, dass du, wie ich oben geschrieben habe, beim rpos für die x-verschiebung "self" anstatt 0 angegeben hast...

alt Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Zitieren
Hurri04 hat geschrieben
1
$y_esse_fire=$y_esse+=21;


Zwei Zuweisungen in einer Zeile? Das geht in Stranded?
Ansonsten: In beispielsweise PHP wird hier erst $y_esse um 21 erhöht und dann der Wert $y_esse und $y_esse_fire zugewiesen. War das deine Absicht?

alt Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Zitieren
oh, sorry, da hab cih wohl nicht aufgepasst bzw was durcheinandergeworfen...

wenn man jetzt
1
$y_esse+=21;
schreibt, dann geht das.

da man den wert der variable $y_esse ja danach nochnmal braucht muss man das wohl etwas anders machen:
1
2
$y_esse_fire=$y_esse;
$y_esse_fire+=21;

alt Re: Scripting - Fragen/Probleme

Lares01
User Off Offline

Zitieren
Hallo, bin ziemlich neu beim scripten und wollte jetzt mal fragen wie ich einen Befehl für unit 1 geben kann. Ich wollte das eigentlich so einrichten das wenn der Spieler tod ist er dann wiederbelebt wird. Hab schon einiges probiert geht aber alles nicht. Kann mir da bitte wer helfen?

Danke schonmal
LG

alt Re: Scripting - Fragen/Probleme

quester
User Off Offline

Zitieren
Um einen Script beim Spieler zu erstellen, muss man den Script in die "Anfangsposition-Info" schreiben, er wird dann auf den Spieler übergeben.

alt Re: Scripting - Fragen/Probleme

TimeQuesT
User Off Offline

Zitieren
falscher thread aber ich beantworte dir es trotzdem:
du brauchst ein zip programm..
z.b winrar oder 7zip,die können das file "zippen",also verpacken und komprimieren.

alt Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Zitieren
eine was? zip-datei?
also ich kenn ja nur zip-komprimierte ordner
so einen erstellst du, indem du mit der rechten maustaste auf die map klickst, dann gehst du auf "senden an" und wählst "ZIP-komprimierter Ordner".

wenn du mehrere dateien hast packe sie zuerst alle in einen normalen ordner und "sende" diesen dann an einen zip-komprimierten ordner.

ich glaub zwar, dass die frage jetzt nicht so direkt was mit scriptingfragen /-problemen zu tun hatte, aber naja...

alt Re: Scripting - Fragen/Probleme

Lares01
User Off Offline

Zitieren
Hmm das geht irgendwie nicht... Ich hab in die Startpositions-Info geschrieben:
1
2
3
on:kill {
          revive 1;
          }
und da tut sich nichts.
Warum??

alt Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

Zitieren
weil ein info niemals gekillt werden kann (da es nichtmal sichtbar ist).

das on:kill event wird daher niemals bei diesem info ausgeführt werden. du müsstest das script in deinem fall direkt in das script vom spieler schreiben.

entweder per definitionsscript oder per s2 cmd addscript, da der spieler selbst im editor nicht direkt auswählbar ist.

alternativ könntest du auch einen timer oder so machen und immer in zeitlichen abständen prüfen ob der spieler noch lebt und ihn ggf. wiederbeleben mit revive.

alt Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Zitieren
Aber Quester hat doch gesagt, dass Scripte aus der Info direkt in den Spieler eingefügt werde. Stimmt das denn nicht?
Zum Anfang Vorherige 1 2315 316 317339 340 Nächste Zum Anfang
Einloggen, um zu antworten Scripts-ÜbersichtStranded II-ÜbersichtForenübersicht