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 286 87 88339 340 Next To the start

old Re: Scripting - Fragen/Probleme

Hoodlum
User Off Offline

Quote
äh...

Zwischen zwei Processes soll eine Wartezeit eingebaut werden, da zwei Process Befehle hintereinander nur den Effekt bringen, dass gleich der zweite ausgeführt wird^^
Sprich, der erste processblaken läuft solange, bis der zweite ausgeführt wird(~1 millisekunde, soll aber z.b. 5 sekunden laufen).

mfg,
Hoodlum

old Re: Scripting - Fragen/Probleme

Norius
User Off Offline

Quote
Hilfe !!!

Ich möchte das ein Eingeborener mir für 5 rohe Fische einen Bogen verkauft der Code funktioniert aber nicht und es kommt auch keine Fehlermeldung !!!

Hier der Code in der Info

...
page=6
title=Händler
text=start
...
text=end
script=start
$fish = playergotitem 89 ;
if $fish >= 5
{
find 59,1 ;
$fish = $fish - 5 ;
setamount 89, $fish ;
}
script=end
button=2,Ok
...

old Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

Quote
befehle die einen wert zurückgeben müssen runde klammern um die parameter haben, bzw. leere runde klammern hinter dem befehl wenn er keine parameter hat.

also:
$fish = playergotitem(89);

edit:
und setamount erwartet die id eines items auf der map und nicht die typ id (logischerweise, woher sollte das spiel sonst wissen welches fisch item auf der map gemeint ist). so kann der befehl also nicht benutzt werden. wenn du ihn dir richtig angeguckt hättest ( s2 cmd setamount ) hättest du auch lesen können, dass er nicht mit gelagerten items funktioniert.
benutze s2 cmd freestored "unit",1,89,5;
(unit 1 ist immer der spieler) dann kannst du dir auch das subtrahieren und die fish variable sparen.

edit:
nochwas: bedingungen müssen auch in runde klammern gesetzt werden.
if (x == y) { bla }

old Re: Scripting - Fragen/Probleme

Royal Flash
User Off Offline

Quote
Ich hab ein Gebiets Trigger gemacht, wenn man rein läuft wird man geheilt.

1
2
3
on:trigger { 
addstate "unit", 1, "healing"; 
}

Ich möchte jetzt dass wenn man das gebiet verlässt, das ich kein heal state auf mich hab. Weil den hab ich dan immer noch auf mich. Wie mach ich das?

old Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Quote
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
on:trigger {
timer "self",800,"aus";
timer "self",1200,"kontrolle";
$konrolle=1;
addstate "unit", 1, "healing";
} 

on:aus {
$kontrolle=0;
}

on:kontrolle {
if ($kontrolle==0) {
freestate "unit",1,"healing";
}
}

1. Dieser Code ist ungetest und somit ohne Gewähr
2. Dieser Code funktioniert nur wenn die Triggerprüfung jede Sekunde statfindet was ich vermute

Erklärung:
Wenn der Trigger ausgelöst wird, wird eine Variable auf 1 Gesetzt, der state zugewiesen und 2 Timer gestarted.
Der 1 Timer läuft ab bevor die nächste Triggerprüfung durchgeführt wird, und setzt die Variable auf 0 zurück.
Der zweite timer läuft ab nachdem die nächste Triggerprüfung durchgeführt wurde, aber noch bevor der nächste "aus-timer" abläuft.
Wenn nun die nächste Triggerprüfung kommt, weil der SPieler noch im Gebiet ist, dann wird die Variable (welche ja auf 0 Gesetzt wurde) wieder auf 1 gesetzt, wodurch die Prüfung des 2. timers negativ ausfällt und der state nicht entfernt wird.
Ist der Spieler aber nichtmehr im Gebiet, wird die Variable nicht wieder auf 1 esetzt, bleibt auf 0 und der state wird entfernt sobald der 2. Timer abläuft.
Das passiert imemr wieder solange der Spieler im Gebiet ist, sobald das einmal zum erliegen gekommen ist (also der SPieler hat das Gebiet verlassen) beginnt es erst wieder wenn der SPieler das Gebiet erneut betritt.

old Re: Scripting - Fragen/Probleme

Timotheus
User Off Offline

Quote
Hm,
komischerweise funktioniert folgender code immer noch nicht wenn ich die linke Maustaste drücke passiert nichts:

1
2
3
4
5
6
7
on:attack1 {
scantarget;
     if (targetclass()>0) {
          $Leben=health(targetclass(), targetid());
          msg "Leben: $Leben";
     }
}

Ich dachte er sei richtig. Oder funktioniert das attack1 beim player immer noch nicht?
Hab das Script jetzt bei der Map eingefügt, soll ich das woanders einfügen?

mfg
Timotheus

old Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Quote
machs mal beim spieler rein.

schreib diesen Script in einen Textcontainer (das is ein Info)
Und dann schreibst zB in den globalen Script aber auf keinen Fall in einen Textcontainer :

on:start{
addscript "unit",1,id des Textcontainers mit dem Script;
}

old Re: Scripting - Fragen/Probleme

Timotheus
User Off Offline

Quote
Gut du hast das ganze schon vorwärtsgebracht, doch nachdem ich unter Wasser in richtung Fass, die linke Maustaste gedrückt habe kam folgender Fehler:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
SCRIPT ERROR:
Mismatched brackets
Script: Unit 1 (Test Typ)
Event: attack1
Row: 4
Col: 41
Script: $Leben=health(targetclass(), targetid());

SCRIPT ERROR:
Expecting parameter resp. ','
Script: Unit 1 (Test Typ)
Event: attack1
Row: 4
Col: 41
Script: $Leben=health(targetclass(), targetid());

SCRIPT ERROR:
Mismatched brackets
Script: Unit 1 (Test Typ)
Event: attack1
Row: 4
Col: 41
Script: $Leben=health(targetclass(), targetid());

old Re: Scripting - Fragen/Probleme

Timotheus
User Off Offline

Quote
Perfekt, es funktioniert, danke.
Jetzt muss ich nur noch ein Problem lösen, denn wenn ich auf attack1 draufbleibe wird mir in Dauerdurchlauf die ganze Zeit das Leben angezeigt.

Sonst passt alles, nochmals daaaankeeee.

old Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Quote
umpf, hm ich denke da ist es das schlauste wenn du amchst dass er etwa alle Sekunde einmal anzeigt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
on:attack1 {
scantarget;
if (targetclass()>0) {
 if (($bereits==0)or($class!=targetclass())) {
  $class=targetclass();
  $id=targetid();
  $Leben=health ($class,$id);
  msg "Leben: $Leben";
  $bereits=1;
  timer "self",1000,1,"wieder";
  }
 } 
}

on:wieder {
bereits=0;
}

achja und tausch bitte bei dem anderen Teil das addscript gegen extendscript aus, die Parameter können so bleiben

old Re: Scripting - Fragen/Probleme

Timotheus
User Off Offline

Quote
Gut so wie du es geschrieben hast funktioniert es.
Aber du hast nen Fehler(glaub ich).
bei on:wieder { fehlt das $ vor dem bereits, hab ich nicht recht?

Ich kann addscript lassen, da ich keine anderen scripts auf den Player mache die überschrieben werden können und wenn doch dann füge ich sie auch einfach in den Textcontainer ein.

mfg
Timotheus
To the start Previous 1 286 87 88339 340 Next To the start
Log in to reply Scripts overviewStranded II overviewForums overview