Forum

> > Stranded II > Scripts > Zelte separat abbauen[Fixed]
Forums overviewStranded II overview Scripts overviewLog in to reply

German Zelte separat abbauen[Fixed]

8 replies
To the start Previous 1 Next To the start

old Zelte separat abbauen[Fixed]

Giftgnom
User Off Offline

Quote
Hallo! Ich nochmal *grins*

Ich bin durch Zufall auch auf den Bug gestoßen, dass alle Zelte auf einmal abgebaut werden ... Ich wollte eine Zeltstadt in einer Map errichten und da war das eben etwas unpraktisch...

× Ohne zu verzagen habe ich probiert, das iwie zu ändern, sodass man Zelte sichern kann...

> VERWORFEN, weil:      fehlerlastig
                         unpraktisch     
                         zu verschachtelt

ich schreibe hier mal rein, was ich wo geändert habe

Original von :

C:\Stranded II\mods\Stranded II\sys\objects_buildings

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
### Tent
id=184
name=Zelt
group=building
icon=gfx\tent.bmp
model=gfx\tent.b3d
scale=2
health=150
mat=none
behaviour=cover
script=start
	on:use {
		if ($notusable==0){
			clear;
			add "Du kannst dieses Zelt einfach abbauen, um es an einem anderen Ort wieder aufzustellen.";
			add "Was möchtest du tun?";
			msgbox "Zelt";
			button 0,"Zelt abbauen",8,"sys/scripts/tent.s2s";
			add "closemenu;";
			button 1,"Zelt stehen lassen",3;
		}
	}
	on:build_finish {
		event "tentbuild",0,0;
	}
	on:timer {
		msg "Zelt abgebaut",4;
		local $id;
		$id=create("item",97);
		store $id,"unit",1;
		freevar $id;
		free "self";
		closemenu;
	}
script=end
description=start
Bietet Schutz zum Schlafen und kann abgebaut werden, um es an einem anderen Wort wieder aufzubauen.
description=end

Das konnte ich (mit viel Hilfe von Hurri04) so abändern:

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
on:use {
		$id= currentid();
		if ($notusable==0){
			clear;
			add "Du kannst dieses Zelt einfach abbauen, um es an einem anderen Ort wieder aufzustellen.";
			add "Was möchtest du tun?";
			msgbox "Zelt";
			button 0,"Zelt abbauen",8,"sys/scripts/tent.s2s";
			add "closemenu;";
			button 1,"Zelt stehen lassen",3;
		}
	}
	on:build_finish {
		event "tentbuild",0,0;
	}
	on:timer {
		if($id==currentid()){
			msg "Zelt abgebaut",4;
			$item=create("item",97);
			store $item,"unit",1;
			free "object",$id,1;
			closemenu;
		}
		else{}
	}

Nun wird nur 1 Zelt abgebaut und man erhält einen Bausatz im Inventar. Eine Fehlermeldung bekommt man auch nicht (mehr).
edited 8×, last 01.01.14 08:07:30 pm

old Re: Zelte separat abbauen[Fixed]

Hurri04
Super User Off Offline

Quote
bei befehlen mit rückgabewert die klammern um die parameter nicht vergessen.
außerdem kommen um zahlen normalerweise keine anführungsstriche, es sei denn, sie sind z.b. in einem tagebuchtext oder ähnlichem enthalten.

× $gesichert = gotstate "objects", 184, "21";
√ $gesichert = gotstate("objects", 184, 21);

dass da ein semikolon-fehler angezeigt wird liegt daran, dass der interpreter nicht allzu intelligent ist
edited 2×, last 01.01.14 04:26:12 pm

old Re: Zelte separat abbauen[Fixed]

Giftgnom
User Off Offline

Quote
Letzteres war mir klar

aber warum mach ich laufend so dumme Fehler?!

EDIT: Und jetzt fällt mir auch noch auf, dass beim Lagerfeuer der Syntax schon dasteht...
edited 1×, last 01.01.14 04:31:58 pm

old Re: Zelte separat abbauen[Fixed]

Hurri04
Super User Off Offline

Quote
funktioniert es denn nun?

falls nicht würde mir da nämlich noch eine wesentlich einfachere lösung einfallen:

das problem besteht ja deswegen, weil die events, die von buttons ausgelöst werden, immer global sind.

eine möglichkeit wäre also, in der tent.s2s einfach die ID des benutzten zeltes in eine globale variable abzuspeichern und dann in zeile 32 deines ersten scripts "free 'object', $id" zu schreiben anstatt "free 'self'".
evtl müsste da noch ne überprüfung auf s2 cmd exists rein, aber ansonsten wäre das doch deutlich einfacher, oder?

old Re: Zelte separat abbauen[Fixed]

Hurri04
Super User Off Offline

Quote
mach halt bei deinem 2. script beim timer nen s2 cmd if vergleich rein, ob $id mit s2 cmd currentid überienstimmt. falls ja, wird alles was da im moment steht gemacht, ansonsten garnichts. in dem fall kannst du bei free auch wieder "self" hinschreiben.

und änder besser den titel wieder auf was aussagekräftigeres, DC macht threads nämlich gerne schonmal zu, wenn ihm der titel zu blöd ist

old Re: Zelte separat abbauen[Fixed]

Giftgnom
User Off Offline

Quote
× Naja, das hat insoweit funktioniert, dass man Zelte nicht mehr abbauen kann ...

EDIT:
Naja, kann ja auch nicht, wenn ich id statt $id      schreibe!

Jetzt funktionierts danke!

Btw: welchen code muss man hier anwenden, damit man text durchstreicht? ich hab [d]TEXT[/d]; [-]TEXT[/-] und sogar <strike>TEXT</strike> sowie <del>TEXT</del> ausprobiert (wobei ich del vor meinem googlegang nicht kannte ) und nix funktioniert!
edited 4×, last 01.01.14 08:04:51 pm

old Re: Zelte separat abbauen[Fixed]

Hurri04
Super User Off Offline

Quote
durchstreichen gibts hier im forum nicht mit bb-tags.
mach am besten einfach stattdessen nen [ more]-tag drum, falls es was längeres ist oder schreib "Edit:" am schluss und dann dahinter das neue zeug.

was nicht so toll ist, ist übrigens die vorherigen posts mehrfach zu editieren anstatt nen neuen post zu schreiben, wenn man jemandem antworten will, da es dabei das problem gibt, dass der andere dann unter umständen nicht mitbekommt, dass etwas neues geschrieben wurde.
To the start Previous 1 Next To the start
Log in to reply Scripts overviewStranded II overviewForums overview