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 2254 255 256339 340 Next To the start

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Ich finde es von dir eine Frechheit, wie ich nämlich beweisen kann ist mein Edit geschehen bevor du deinen Post geschrieben hast. Von daher könnte ich sagen, dass du meinen Tipp geklaut hast. (Siehe unten)
Das glaube ich aber nicht. Ich glaube vielmehr, dass und der Fehler beiden aufgefallen ist und wir mitten im Schreiben waren. Von daher konnten wir nicht sehen, dass der andere auch den Fehler gesehen hat.
Ebenso habe ich den Post ja als zu löschen markiert, von daher...
(Du kannst an dem Signaturbild erkennen, dass das mein Post ist)

IMG:https://s11.directupload.net/images/user/090316/temp/ssbtnl5i.png



Nicolussius has written
Ich habe mehrere Tage gewartet und der Eintrag ist immer noch nicht erschienen.
Ich habe auch mit dem Execute Script Cheat den $tage Wert überprüft.

Und was ist da raus gekommen?

Versuch beim testen mal dreimal die F11-Taste zu drücken. Dann dürfte der Tagebucheintrag kommen, ohne dass du drei Tage warten musst.

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Nicolussius has written
Tja zunächst nichts, aber beim zweiten versuch hats geklappt (Ohne F11, zu spät gesehen) also danke für eure Hilfe.

Nichts zu danken, wir helfen dir gerne eine gute Map zu machen, solange du sie auch irgendwann online stellst!


aletes has written
oh stimmt, sorry, habs auch grad gesehen

Gut, dann lassen wir das auf sich beruhen.

old Re: Scripting - Fragen/Probleme

Wuffelchen
User Off Offline

Quote
Habe jetzt versucht das oject durch eine if else anweisung den status wieder zu nehmen. das script wird auch ausgefürt, nur das object bleibt unzerstörbar.

on:start {
     if ( $30 == 0 )
     { addstate "self",17; }
     else
     { freestate "self";
}}
on:hit {
     msg "Du musst erst einen Hammer bauen!", 3, 3000;
}

bitte fehler erklären, ich lerne gerade die sprache
ps: habe im Globalscript nichts drin zu stehen.

oder ist es besser dem object den status direkt zu geben und durch die bedingung den status zu nehmen ?

Nova, das mit der msg lässt sich wohl nicht vermeiden.
beim einbinden wird angesagt, das es nicht nötig wäre ihn im start mit drin zu haben.
wenn du nähmlich mit einem Netz auf einen baum schlägst, sagt er auch an, dass das nicht geht aber bekommst die blätter ect.
vllt kan dc das ändern mit der verschachtelung.

mfg
Wuffelchen

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Wuffelchen has written
oder ist es besser dem object den status direkt zu geben und durch die bedingung den status zu nehmen ?

Jqa, versuch das mal. Ebenso solltest du das erste Zeichen einer Variable immer ein Buchstabe sein. Das ist in fast jeder Programmiersprache so.

Wuffelchen has written
Nova, das mit der msg lässt sich wohl nicht vermeiden.
beim einbinden wird angesagt, das es nicht nötig wäre ihn im start mit drin zu haben.
wenn du nähmlich mit einem Netz auf einen baum schlägst, sagt er auch an, dass das nicht geht aber bekommst die blätter ect.

Das stimmt schon, nur kann man machen, dass der Hinweiß nicht so oft erscheint und nicht so stark die Übersicht stört.

old Re: Scripting - Fragen/Probleme

Wuffelchen
User Off Offline

Quote
meinst du das so hier ?

on:start {
if ( $hammer,30 == 1 )
{ freestate "self"; }
else
{ addstate "self",17;}
}
on:hit {
msg "Du musst erst einen Hammer bauen",3,3000;
}

hmm... so bleibt das object unzerstörbar und wenn ich den else befehl raus nehme, bleibt das object dennoch unverwundbar
mein fehler denke ich liegt irgendwo in der variablen zuweisung.
edited 1×, last 16.03.09 07:10:34 pm

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Sorry, aber Kommas (und Punkte) sind auch nicht in Variablennamen erlaubt.;(

Nur Zahlen, Groß- und Kleinbuchstaben und der Unterstrich _ sind dort erlaubt.


Wann soll das Script denn ausgeführt werden? Bei on:start passiert das beim Start. Aber wenn das am Start passieren soll, funktioniert das nicht so richtig. Du müsstest das mit on:timer, on:use, on:trigger oder etwas ähnlichem machen. on:start wird nur einmal am Start ausgeführt, sonst nicht nochmal.


Ich meine das ungefähr so:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
on:start
	{
	addstate "self", 17;
	}

on:use
	{
	if ($hammer == 1)
		{
		freestate "self", 17;
		msg "Das Objekt ist verwundbar!", 4, 4000;
		}
	else
		{
		msg "Du brauchst einen Hammer!", 3, 4000;
		}
	}

Wann setzt du denn die Variable $hammer auf 1?

old Re: Scripting - Fragen/Probleme

Wuffelchen
User Off Offline

Quote
ich hatte mir das so gedacht:
solange der hammer nicht gebaut wurde, soll das object nicht zu zerstören sein.

habe dein script auch mal übernommen, aber funzelt irgendwie nicht. und die msg werden auch nicht ausgegeben.

maaaan ich bin zu dumm zum scripten *anmerk* *scherz, nur ne übungssache*

old Re: Scripting - Fragen/Probleme

Nicolussius
User Off Offline

Quote
Ich habe da noch ein Problem.
Irgendwie liegen beim Testen auf der Insel ein paar Balken, die aber beim Editieren nicht zu sehen sind. So kann ich sie nicht löschen.

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
on:start
	{
	addstate "self", 17;
	}

on:hit
	{
	if (getplayerweapon() == 30)
		{
		freescript "self";
		freestate "self", 17;
		msg "*knack*", 3, 2000;
		}
	else
		{
		msg "Zu stabil, da brauche", 3, 4000;
		msg "ich einen Hammer!", 3, 4300;
		}
	}

Versuchs mal damit!
Wenn das nicht funktioniert, weiß ich auch nicht...


Nicolussius has written
Ich habe da noch ein Problem.
Irgendwie liegen beim Testen auf der Insel ein paar Balken, die aber beim Editieren nicht zu sehen sind. So kann ich sie nicht löschen.

Stehen an der Stelle vielleicht Bäume im Editor? Wenn ja, vielleicht gehen die kaputt und lassen die Baumstämme zurück.
Wenn nein: Setzte ein paar Felsen oder Bäume direkt auf die Stelle, wo die Bretter auftauchen. Dann sieht man die nicht mehr und das Problem ist gelöst.

old Re: Scripting - Fragen/Probleme

Wuffelchen
User Off Offline

Quote
Danke, dein script funzelt

habe es mal mit folgendem script versucht aber eine fehlermeldung bekommen, daß das object nicht existiert, nachdem ich es kaputt gemacht hatte.

on:hit {
      if (getplayerweapon() == 30)
          {
          freestate "self", 17;
          msg "Das Objekt ist verwundbar!", 4, 4000;
          }
     else
     {
     addstate "self", 17;
     msg "Du brauchst einen Hammer!", 3, 4000;
     }
}

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Der Grund ist folgender: Jedesmal wenn du das Objekt schlägst (on:hit) wird es von dem Unverwundbarkeits-State befreit. Aber beim letzten mal, wenn das Objekt also zerstört wird, gibt es kein Item mehr von dem der Befehl das Script löschen kann. Daher der Fehler.
So ist das Script richtig:
1
2
3
4
5
6
7
8
9
10
11
12
13
on:hit { 
      if (getplayerweapon() == 30) 
          { 
          freestate "self", 17; 
          msg "Das Objekt ist verwundbar!", 4, 4000;
          freescript "self"; 
          } 
     else 
     { 
     addstate "self", 17; 
     msg "Du brauchst einen Hammer!", 3, 4000; 
     } 
}

Ps: Bitte setzte zukünftig alle Script in den Code-Tag. Das geht so, nur musst du die Leerzeichen noch zwischen den eckigen Klammern entfernen:

[ code]
Dein Code
[/code]


@Nicolussius: Mh, daran habe ich nun nicht gedacht.

old Re: Scripting - Fragen/Probleme

Wuffelchen
User Off Offline

Quote
ok, werd versuchen daran zu denken mit dem Code-Tag.

habe aber wie du siehst, ist dein script eigentlich nur darin verändert, daß ich den addstate befehl in die else funktion übernommen habe und ja, den freescript befehl vergessen.

Nova versuche es mal hiermit:
1. habe den status den baum direkt gegeben
2. folgendes script geschrieben

1
2
3
4
5
6
7
8
on:hit {
	if (hit_damage() <= 1)
	{ msg "der baum ist unverwundbar";
	}
	else
	{ msg "";
	}
}

leider zeigt er beim ersten schlag nicht an, daß der baum unverwundbar ist.
denke aber das wirst du schon hin bekommen.
edited 4×, last 16.03.09 08:39:51 pm

old Re: Scripting - Fragen/Probleme

Wuffelchen
User Off Offline

Quote
hehe Nova, versuch mal folgenden script !

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
on:changeday
	{
	$hit_damage = 0;
	}
on:hit
	{
	if ($hit_damage() <= 3)
		{ 
		msg "der baum ist unverwundbar",3;
		}
		$hit_damage ++;
	else
		{
		msg "";
		}
}
wenn ich jetzt noch ein elseif befehl rein setze, kann man da dann eine zählschleife machen, damit man öfter darauf hingewiesen wird ?

mfg
Wuffelchen
edited 1×, last 16.03.09 10:08:36 pm

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
1
2
3
4
5
6
7
8
9
on:hit
	{
	if ($hit_damage <= 3){
		msg "der baum ist unverwundbar",3;
		$hit_damage ++;
	}else{
		msg "";
		}
	}


das "}" zeichen sollte direkt vor dem else stehen, sonst wird der teil, wo die variable "$hit_damage" um 1 erhöht wird nicht mehr ausgeführt.

da im else-teil die messange ja sowieso keinen text beinhaltet, könnte man theoretisch sogar den ganzen else-teil weglassen.

wenn ich das script jetzt soweit richtig verstanden hab, dann kann man den baum 3 mal schlagen, bei jedem mal wird die variable um 1 erhöht und es wird der text angezeigt, danach dann nicht mehr (also alles ab dem vierten schlag)

EDIT: die klammern nach dem variablen-namen in der if-abfrage kommen noch weg, da der variablen-name ja kein befehl mit rückgabewert ist.
To the start Previous 1 2254 255 256339 340 Next To the start
Log in to reply Scripts overviewStranded II overviewForums overview