Ansonsten musst du wohl oder übel etwas anderes machen.
Forum
Stranded II Scripts Scripting - Fragen/ProblemeAnsonsten musst du wohl oder übel etwas anderes machen.
1
2
3
4
5
2
3
4
5
loop ("object",172) 	$id = loop_id() 	{ 	msg "$id",3,6000; 	}
wenn ich das 1x mit dem lagerfeuer und 1x mit der hütte mache, brauche ich nur noch beide zahlen bei "inrange" und addstate angeben.
löst mein problem nur im "adventure-mode" aber nicht, wenn ich mal eine eigene map erstellen möchte. denn es soll ja automatisch passieren, wenn hütte und lagerfeuer in einer bestimmten reichweite sind.
na vllt macht uns DC das ja auch einfacher, indem er noch ein befehl dazu schreibt oder den "inrange" erweitert, womit man beide typ-id's angeben kann, damit der gewünschte effect auch passiert.
wobei man ja jenachdem was man möchte, mehrere "ingame" erstellte sachen von anderen "ingame" erstellten sachen abhängig machen kann.
was für ne idee schwebt dir denn da vor mit dem def_override ?
gib ma paar tipps und anhaltspunkte dazu. kann mich ja dann daran versuchen, bis ich den pc wieder in die ecke schmeißen könnte.
edited 3×, last 19.03.09 04:48:56 pm
Das ist aber etwas schwerer, von daher.
wäre es vllt auch möglich, wenn man den "defparam" benutzt ?
hatte mir das so gedacht:
1
2
3
4
5
6
7
2
3
4
5
6
7
on:use { if (inrange (defparam ("object",172 ==1)),20 , (defparam ("object",206 ==1))) 	{ 	addstate "(defparam ("object",172)),5"; 	} }
Ebenso müsstest du den Parameter erst erstellen. Da kannst du lieber gleich das mit def_override benutzen.
Wieso willst du eigentlich unbedingt etwas anderes benutzen? Benutze doch def_override.
Gebe bei Quelle die ID eines Infos ein..
wie ist das gemeint ?
objects_buildings.inf has written
### Campfire
id=171
name=Campfire
group=building
icon=gfx\fire01.bmp
model=gfx\fire01.b3d
scale=1.6
state=0,5,0
health=250
mat=wood
behaviour=fireplace
script=start
on:build_finish {
event "campfirebuild",0,0;
}
on:use {
if (gotstate("unit",1,6)){
if ((gotstate("self",4)+gotstate("self",5))>0){
process "warm-up",3000;
freestate "unit",1,6;
}else{
msgbox "Campfire","sys/scripts/fireplace.s2s";
}
}else{
msgbox "Campfire","sys/scripts/fireplace.s2s";
}
}
on:barkbranchfire1 {
$tmp=currentid();
if (distance("unit",1,"object",$tmp)<100){
if ((gotstate("object",$tmp,"fire")+gotstate("object",$tmp,"eternalfire"))==0){
$barkbranchfire=$tmp;
}
}
}
on:addstate {
if (state()==4){
statevalue "self",4,0;
}elseif (state()==5){
statevalue "self",5,0;
}
}
script=end
id=171
name=Campfire
group=building
icon=gfx\fire01.bmp
model=gfx\fire01.b3d
scale=1.6
state=0,5,0
health=250
mat=wood
behaviour=fireplace
script=start
on:build_finish {
event "campfirebuild",0,0;
}
on:use {
if (gotstate("unit",1,6)){
if ((gotstate("self",4)+gotstate("self",5))>0){
process "warm-up",3000;
freestate "unit",1,6;
}else{
msgbox "Campfire","sys/scripts/fireplace.s2s";
}
}else{
msgbox "Campfire","sys/scripts/fireplace.s2s";
}
}
on:barkbranchfire1 {
$tmp=currentid();
if (distance("unit",1,"object",$tmp)<100){
if ((gotstate("object",$tmp,"fire")+gotstate("object",$tmp,"eternalfire"))==0){
$barkbranchfire=$tmp;
}
}
}
on:addstate {
if (state()==4){
statevalue "self",4,0;
}elseif (state()==5){
statevalue "self",5,0;
}
}
script=end
jetzt meine frage hierzu:
kann man mit def_override auch die scripts in den *.s2s -dateien überschreiben?
weil wenn ja, dann könnte man in dieser msgbox ja noch einen button einbauen "dieses lagerfeuer mit dem ewiges-feuer-state versehen" und dann auf einer 2. seite einen "den ewiges-feuer-state löschen" -button. und zwischen den 2 seiten wird einfach über ne if-abfrage und ne variable gewechselt.
würde das funktionieren?
diese hängt dann nur ein script mit an und überschreibt die vorhandene datei nicht, sodaß man ggf den urstatus der sys wieder herstellen kann.
Ps: def_extend kann man natürlich auch benutzen, nur kann man bei override auch kleine Verbesserungen am Urscript machen.
hab jetzt mal folgendes script geschrieben. weiß allerdings nicht, obs funzelt oder wieder 100 fehler drinne sind
habe def_extend benutzt, da ich den urteil nicht überschreiben, sondern beibehalten wollte.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
script=start 	{ def_extend "object",172; 		{ 		on:addstate 		if (distance ("object",206,"object",$tmp)<10) 			{ 			statevalue "self",5,0; 			} 		else 			{ 			statevalue "self",4,0; 			} 		} 	} script=end
Danach kannst du dich wieder an das Script da wagen.
Script=color=0,255,0.Welche nummer muss man darin schreiben um die Farbe braun zu bekommen
Danke im voraus
geh im editor auf die colorauswahl.(Der button, wo man die farben ändern kann)
nun klickst du auf eine frabe deiner wahl. unten links stehen dan die RGB-Farben
EDIT: Ohh! Da war Nova wohl schneller...