Forum

> > Stranded II > Scripts > Schleifer Script
Forums overviewStranded II overview Scripts overviewLog in to reply

German Schleifer Script

39 replies
Page
To the start Previous 1 2 Next To the start

old Re: Schleifer Script

Hurri04
Super User Off Offline

Quote
ok, wenn das eisen nach dem werfen eh schon da liegt, dann kannst du den teil vom script einfach weglassen.

user Kreater has written
Und jetzt mal die allerblödeste Frage der Welt mit Typ meinst du ID oder ?
Spoiler >

GENAU DESWEGEN hab ich NICHT "ID" geschrieben sondern "TYP", das ist nämlich die nummer, die in der definition des items/objekts steht. guck einfach mal im sys ordner in die definitionsdateien.
die ID hingegen ist die nummer, die die items/objekte/units auf einer karte zugewiesen bekommen.

old Re: Schleifer Script

Kreater
User Off Offline

Quote
ähhm ok ?

Ja was für Definitionsdateien ? Du meinst die ***.ini s oder ?
Wenn ja ist das meiner Meinung nach die ID

Ok habe mal den Script getestet und ich bekomme hier eine fehlermeldung ich weis jedoch nicht was hier falsch sein soll o.O:
1
2
3
$x=getx("self");
     $y=gety("self");
     $z=getz("self");

Hatte es dann mal so probiert ging jedoch auch nicht.

1
2
3
$x=getx "item",85;
     $y=gety "item",85;
     $z=getz "item",85;

85 = Roheisen
283 = glühendes Eisen
282 = Brennofen

Der Timer funktioniert noch bloß danach das Speichern der Position in den Variablen nicht mehr.

_______________________________

Spoiler >

old Re: Schleifer Script

Feuer der veraenderung
User Off Offline

Quote
1
2
3
$x=getx("self");
$z=getz("self");
$y=gety("self");

Vielleicht muss eine Leertaste da noch rein. Also so:
1
2
3
$x=getx ("self");
$z=getz ("self");
$y=gety ("self");

und dein:
1
2
3
$x=getx "item",85;
$y=gety "item",85;
$z=getz "item",85;

Wird in einer Definition nicht funktionieren, denn die ID die get braucht ist nicht die ID des Objekt TYPS sondern die ID des Objekts.

old Re: Schleifer Script

Hurri04
Super User Off Offline

Quote
hast du das script auch in die definition des roheisens geschrieben? nur so ne frage...
wenn ja, dann sollte das nämlich eigentlich funktionieren.

und beim zweiten code, den du gepostet hast fehlen übrigens die klammern um die parameter, getx, gety und getz sind schließlich befehle mit rückgabewert. wobei du da scheinbar eh wieder ID und TYP durcheinander geschmissen hast, obwohl ich es gerade erst erklärt habe

(die definitionsdateien sind übrigens .inf und nicht .ini, kleiner aber feiner unterschied!)

und NEIN, auch wenn in den definitionsdateien was von "ID" steht, ist das die typ-nummer.
die ID wird wie gesagt auf der map festgelegt und so kann das item mit ID 1 von einem beliebigen TYP sein und eben nicht (nur) vom TYP 1.

übringens heißt es "das script"

P.S.: bild war ernst gemeint, nicht zum spaß


@user Feuer der veraenderung: die leerzeichen sollten eigentlich egal sein, die werden vom parser eh vernachlässigt.

old Re: Schleifer Script

Kreater
User Off Offline

Quote
@ Feuer der Veraenderung

Nein am Leerzeichen lag es nicht habe es gerade nochmal getestet


@ Hurri04

Ja habe es bei Roheisen eingefügt aber es Funktioniert wirklich nicht.

Ja ich meine doch **.inf

Ok das meine ich nähmlich war etwas verwundert warum da ID und nicht TYP steht und jetzt versteh ich auch was du meinst

Ok dann das Script Nach mehreren Jahren Chatsprache hat eben die Rechtschreibung ein klein wenig gelitten.

Hier nochmal der Code:

Bis hier her gehts.
1
2
3
4
5
6
7
8
9
on:impact {

     //falls auf ofen aufgeschlagen, timer auslösen
     $class=impact_class();
     $id=impact_id();
     if(type($class,$id)==282) {
          timer "item",$id,8000,1,"iron_heated";
     }
}



Ab hier jedoch nicht mehr
1
2
3
4
5
6
7
8
9
on:iron_heated {
     //roheisen durch heißes eisen ersetzen
     $x=getx ("self");
     $y=gety ("self");
     $z=getz ("self");
     $id=create("item",283,$x,$z;);
     setpos "item",$id,"self",$y,"self";
     free "self";
}

old Re: Schleifer Script

Hurri04
Super User Off Offline

Quote
öhm...

wo kommt denn bitte das 2. semikolon beim create befehl her?!

probiers nochmal ohne...

old Re: Schleifer Script

Kreater
User Off Offline

Quote
Ja das hatte ich hingepackt.
Ohne das zweite Semikolon kam oben bei dem Create befehl eine Fehlermeldung und durch das Semilkolon hatte es dann geklappt.

Aber ich probiere es nochmal ohne.

Edit:

Ohne das Semikolon sagt es mir es sei falsch.

Edit2:

Habs raus.

Es lag an dem Semikolon vor der Klammer:


So ist es richtig
1
$id=create("item",283,$x,$z);

so erstellt es mir auf jedenfall schonmal das glühende Eisen beim Spieler muss nun nurnoch machen das das andere im Ofen gelöscht wird und das glühende dafür DA liegt.
_____________________________

Edit:

So hab nun alles ausprobiert... entweder Spawnt das glühende Eisen bei mir oder in der Mitte meiner Insel.
Und das alte löschen lässtn sich auch nicht...

Per free "self" bzw free $id löscht es mir nur meine Sachen im Inventar. Hab es schon probiert per Damage das daliegende zu Zerstören um es so los zu werden klappte aber auch nicht
edited 1×, last 10.03.12 11:44:02 am

old Re: Schleifer Script

Feuer der veraenderung
User Off Offline

Quote
Hmm, schau dir mal Jasons Schmiedeskript für den ext Mod an. Ich weiß nicht wie es da genau gelöst ist, aber da wird an einer Stelle auch Eisen erhitzt, gut möglich das du da die Lösung für dein Problem findest.

old Re: Schleifer Script

Kreater
User Off Offline

Quote
Nein nein das "erhitzen" und so klappt ja prima nur das neue Objekt ist an der falschen Stelle und das alte lässt sich nicht löschen.

Der rest funktioniert ja

Bin bisher nur noch nicht wirklich weiter gekommen

old Re: Schleifer Script

Hurri04
Super User Off Offline

Quote
also mit meinem script sollte das eigentlich funktionieren, ich vermute mal, dass du das an der falschen stelle hingeschrieben hast.

old Re: Schleifer Script

Kreater
User Off Offline

Quote
Ok also

Ich habe das hier reingehaun:

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
### Roheisen
id=85
name=Roheisen
group=material
behaviour=throw
icon=gfx\iron.bmp
model=gfx\nugget.b3d
color=220,220,220
shine=1
scale=2
health=5000
mat=metal
weight=350
info=ein Klumpen Roheisen
script=start

on:impact {

     //falls auf ofen aufgeschlagen, timer auslösen
     $class=impact_class();
     $id=impact_id();
     if(type($class,$id)==282) {
     timer "item",$id,8000,1,"iron_heated";
	$x=getx"self";
	$y=gety"self";
	$z=getz"self";    
 }
 }

on:iron_heated {
//roheisen durch heißes eisen ersetzen
$x=getx ("self");
$y=gety ("self");
$z=getz ("self");
$id=create("item",283,$x,$z);
setpos "item",$id,"self",$y,"self";
free "self";
}

	
script=end

So die .. ist...
85 Roheisen
282 Brennofen
283 glühendes Eisen

So es klapp insoweit das ein Item nach der Ablauf des Timers erstellt wird aber meistens unter dem Spieler.

Das alte wird auch nicht gelöscht also das Roheisen.
der free "self" befehl löscht nur alle Items des Typs aus meinen Inventar.
edited 2×, last 11.03.12 07:59:27 pm

old Re: Schleifer Script

Hurri04
Super User Off Offline

Quote
und kannst du mir auch sagen, was zur hölle diese zeilen sollen:
1
2
3
$x=getx"self";
     $y=gety"self";
     $z=getz"self";
?

mal ganz davon abgesehen, dass die da überhaupt keinen zweck haben, fehlen da die klammern, die gebraucht werden, da das befehle mit rückgabewert sind. von daher kommt wahrscheinlich der parser durcheinander und verursacht so den fehler.

old Re: Schleifer Script

Kreater
User Off Offline

Quote
Achso haha nicht gleich ausfallen werden ich hatte bischen rumprobiert habse vergessen zu löschen aber ich kann dir sagen das selbst wenn ich die entferne nix anderes passiert (habs außerdem gerade nochmals getestet egal obs drin steht oder nicht trotzdem bleibt immer noch das selbe problem ).

old Re: Schleifer Script

Hurri04
Super User Off Offline

Quote
okay, dann versuch einfach mal, im event iron_heated bei diesen befehlen das "self" durch "item", $id zu ersetzen.

old Re: Schleifer Script

Kreater
User Off Offline

Quote
So habs probiert klappt leider auch nicht

1
2
3
4
5
6
7
8
9
on:iron_heated {
//roheisen durch heißes eisen ersetzen
$x=getx ("item", $id);
$y=gety ("item", $id);
$z=getz ("item", $id);
$id=create("item",283,$x,$z);
setpos "item",$id,"item", $id,$y,"item", $id;
free "item",$id;
}

Hoffe du meintest es so

old Re: Schleifer Script

Hurri04
Super User Off Offline

Quote
hatte ich nicht was von "diesen" befehlen gesagt im letzten post?! ist dir vielleicht in den sinn gekommen, dass ich mich damit auf die befehle getx, gety und getz aus meinem post DAVOR beziehen könnte?!

vielleicht solltest du mal was mehr mit den befehlsreferenzen arbeiten, da siehst du, welche parameter ein befehl haben kann:
http://www.stranded.unrealsoftware.de/s2_commands.php?list=all

old Re: Schleifer Script

Kreater
User Off Offline

Quote
achso ich dachte du meinst mit diesen die "selfs"

Oje oje ich glaub ich mach mir hier keine freunde

Okay ich schau mal durch
____________________________________________
okay okay so bin gerade beim lesen auf den befehl:

alterobject Object-ID, Object-Typ
Kategorien: objects
Ändert den Typ eines Objects. Über Object-ID wird die ID des zu ändernden Objects angegeben ("self" wenn das aktuelle Object geändert werden soll). Object-Typ ist der neue Typ des Objects (Wert aus der Definition).
Bei diesem Befehl gehen alle untergeordneten Sachen (Scripts, Items, States, Timer) die bei dem Object sind verloren


gestoßen.

kann man das alles nicht irgendwie darüber lösen ?
Soviel ich aus dem Text herauslesen kann ändert es 1 Objekt und tauscht es mit einem 2ten aus. Geht das oder eher nicht ? Habs gerade mal so probiert:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
on:impact {

     //falls auf ofen aufgeschlagen, timer auslösen
     $class=impact_class();
     $id=impact_id();
     if(type($class,$id)==282) {
     timer "item",$id,8000,1,"iron_heated"; 
 }
}

on:iron_heated {
//roheisen durch heißes eisen ersetzen
alterobject "self", 283;
}

jedoch ist das eisen geblieben aber der Ofen ist verschwunden.
______________________________________
Edit: ah ok nun versteh ich warum der Ofen verschwindet

Okay kann man die ID des geworfenen Typs in eine Variable speichern ? Finde dazu keinen Befehl. Wenn ja könnte man das so hier machen:

alterobject id des geworfenen Objects, 283;

durch "self" und $id hatte es ja immer den Ofen entfernt.
_________________________-

Ps: wenn ich euch auf die Nerven gehe bescheid sagen dann kümmer ich mich !
edited 2×, last 11.03.12 09:12:58 pm

old Re: Schleifer Script

Feuer der veraenderung
User Off Offline

Quote
Soweit ich weiß kann man die ID des geworfenen Objektes nicht per Befehl in einer Variable speichern.

Wenn ich es richtig verstanden habe müssten, aber soetwas wie:
1
2
3
4
on:throw //gibt es das Event? Wenn nicht impact oder ein komplett anderes.
{
$id_des_erhitzten_eisens_die_ersetzt_wird_sobald_ein_anderes_eisenstück_geworfen_wird=$id;
}
Die Probleme bei dieser Methode sind dir klar (Wenn der Script überhaupt das ist was du suchst)?

PS Zumindest mir gehst du nicht auf die Nerven.

old Re: Schleifer Script

Hurri04
Super User Off Offline

Quote
da es sich um ein item handelt würde es sich empfehlen, auch den befehl s2 cmd alteritem statt alterobject zu benutzen, nicht?

old Re: Schleifer Script

Kreater
User Off Offline

Quote
@ Feuer der veranderung

Hmm ja habe schon sehr viel probiert ich komme nun leider doch nicht weiter (nach mehreren Tagen lesens und probieren habe ich gerade echt die Nase voll ^^) muss die Tage nochma ransetzen und wenn das dann garnicht geht mach ich den script so wie den script des Eisens beim Ext Mod
To the start Previous 1 2 Next To the start
Log in to reply Scripts overviewStranded II overviewForums overview