Forum

> > Stranded II > Scripts > Scripting - Fragen/Probleme
Forums overviewStranded II overview Scripts overviewLog in to reply

German Scripting - Fragen/Probleme

6,780 replies
Page
To the start Previous 1 2315 316 317339 340 Next To the start

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
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.

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
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

old Re: Scripting - Fragen/Probleme

Jason13579
User Off Offline

Quote
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 has written
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 has written
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 has written
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

edited 2×, last 26.05.10 06:32:52 pm

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
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.
More >





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 has written
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
More >


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...

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Hurri04 has written
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?

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
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;

old Re: Scripting - Fragen/Probleme

Lares01
User Off Offline

Quote
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

old Re: Scripting - Fragen/Probleme

quester
User Off Offline

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

old Re: Scripting - Fragen/Probleme

TimeQuesT
User Off Offline

Quote
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.

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
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...

old Re: Scripting - Fragen/Probleme

Lares01
User Off Offline

Quote
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??

old Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

Quote
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.

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Aber Quester hat doch gesagt, dass Scripte aus der Info direkt in den Spieler eingefügt werde. Stimmt das denn nicht?
To the start Previous 1 2315 316 317339 340 Next To the start
Log in to reply Scripts overviewStranded II overviewForums overview