Forum
Stranded II Scripts Scripting - Fragen/Probleme"O.K.", "Alles klar." und ähnliches gehören hier nicht rein. Das ist KEIN Chat. Schreibe immer ausführlich etwas hin, und wenn es nur sinnloses Gelabber ist von 1-2 Zeilen ist.
Genauso schlecht sind übrigens Smileys. Und komm ja nicht auf die Idee (was ja schon so halb unterbunden wurde und dennoch oft vorkommt bei anderen) mit Mehrfachsmileys oder mehreren Satzzeichen nun deine Posts zu erweitern.
Edit: Bitte auch nicht hierrauf mit einem OK antworten oder ähnlichem
Nun, ich habe nur folgendes Problem:
Ich möchte, nachdem ich dem Gebietstrigger aktiviert habe, einer Person ein Skript hinzugefügt wird. Was und wo muss ich das skripten? Ich weiß, dass ihr mir nicht alles sagt was ich da und dort schreiben soll, aber bitte so wie es halt sein muss.
Vielen Dank. Wenn die Frage ein bisschen kompliziert ist dann einfach sagen. Hoffe, dass die Frage ein bisschen einfacher formuliert ist.
lg,
Benji
1
on:trigger { s2:addscript "unit",IDvonPerson,Quelle;}
Ich muss ein bisschen mehr kontrollieren.
Aber trotzdem, vielen dank an die, die sich da für das Zeit genommen. Verzeiht mir.
lg, ubznm (und bis zum nächsten Mal)
Benji
edited 3×, last 02.02.08 09:35:20 pm
DC has written wird so nicht funktionieren.
es müsste loop_id() sein, damit überhaupt ein Wert zurückgegeben wird
SII wird vermutlich trotzdem einfach die Variable $platte und nicht $platteX prüfen
1
if ($platte(loop_id)==0) {
es müsste loop_id() sein, damit überhaupt ein Wert zurückgegeben wird
SII wird vermutlich trotzdem einfach die Variable $platte und nicht $platteX prüfen
Verdammt. Trifft beides zu. Klammern anfügen ergab nichts, und dann hab ich bei jedem Schleifendurchlauf erst eine $temp durch loop_id() definiert, und die dann in die obige Abfrage eingesetzt. Lief auch nicht. Diese Klammerkonstruktion geht also ganz grundsätzlich nicht. Hmm. Jetzt bin ich einigermaßen ratlos.
Einzige Lösung: Neun Variablen nehmen und die ganzen Namen hinschreiben, schöner geht das halt im Moment (Wink zu DC ;)) einfach nicht.
Was muss ich sktipten, damit der Spieler, nachdem er 100 Goldmünzen gesammelt hat, z.B.: ein Hammer bekommt? Bitte nicht mit Tauschhandel kommen. Ist nicht damit gemeint!
Nur wenn er 100 Münzen gesammelt hat, bekommt er automatisch einen Hammer.
Wie aber?
EwokChieftain has written
Nicht nur wegen jetzt, sondern weil es in letzter Zeit mehrmals betont werden musste:
Dies ist nicht die Skript-Maßschneiderei! Wer nicht bereit ist, selbst für Lösungsansätze Arbeit aufzuwenden, sollte es mit dem Skripten lieber lassen.
Wenn man aber nicht versteht, warum die eigene Methode nicht funktioniert oder trotz Recherche in der Referenz nicht kapiert, mit welchen Befehlen eine Sache anzupacken ist, klar, nur frei heraus.
Auf englisch habe ich ja Verständnis, wenn man das Vorgehen en detail erläutern muss, da fehlt ja immer noch die Referenz, aber auf Deutsch ist alles ganz gut dokumentiert.
Dies ist nicht die Skript-Maßschneiderei! Wer nicht bereit ist, selbst für Lösungsansätze Arbeit aufzuwenden, sollte es mit dem Skripten lieber lassen.
Wenn man aber nicht versteht, warum die eigene Methode nicht funktioniert oder trotz Recherche in der Referenz nicht kapiert, mit welchen Befehlen eine Sache anzupacken ist, klar, nur frei heraus.
Auf englisch habe ich ja Verständnis, wenn man das Vorgehen en detail erläutern muss, da fehlt ja immer noch die Referenz, aber auf Deutsch ist alles ganz gut dokumentiert.
2.: Mach doch einen riesigen Gebietstrigger, der prüft, wie viel Gold der Spieler hat und gegebenfalls, falls er 100 hat, kriegt er einen Hammer und der Trigger löst sich auf mit free. Also mit if-Befehl arbeiten. Ist auch gar nicht so schwer
lg,
Benji
Und nochmal für das Informatikgenie ein if erklärt:
1
2
3
4
5
6
7
2
3
4
5
6
7
on:timer { 	if (playergotitem(GOLD_ID) >= 100) 	{ 		find HAMMER_ID; 	} }
Also wie immer, erst if, danach in Klammern ein boolescher Audruck.
1
2
3
2
3
on:trigger { if(playergotitem([i]ID des Items[/i])>[i]Anzahl davon[/i]) {} }
EDIT: #@!$ Zu spät! Aber Dicker hat Recht, timer ist besser.
Ich hab schon ein Problem:
on:timer
{
if (playergotitem(108) >= 1)
{
create "object", 123, 3431, -1260;
}
}
Und das habe ich in den Globalen Skript geschriben.
Aber er createt nicht meine Saule, sobald ich eine Perle gesammelt hab. Was muss ich da tun? Was muss ich da ausbessern?
lg,
Benji
INFO: 108= Typ der Perle
123= Typ der Säüle
on:timer gibt es nicht. timer ist kein event. Das ist ein Befehl. Sonst würde es ja auch nicht in der Befehlsreferenz stehen, PC-Genie.
edited 1×, last 03.02.08 11:53:03 pm
Naja, ich werds versuchen.
Ne ist net gegangen. Oh! DC hat was geschreiben.
Was muss ich aber da nun tun, damit es klappt? Und wieso geht das nicht?
edited 1×, last 04.02.08 12:11:45 am
@DC: Jaja, habe meine "Ich bin oberflächlich"-Phase, sry.
{
if (playergotitem(108) >= 1)
{
create "object", 123, 3431, -1260;
}
}
Ich hab nur das in den Gebietstrigger geschreiben.
Was meinste jetzt Feteo? Der Spieler sollte doch den Trigger auslösen? Oder?
on:timer ist zwar schön und gut, aber was löst automatisch das Event on:timer? Nichts. Also überleg dir etwas, was on:timer auslösen könnte. Versuch das mal, wenn du echt nicht darauf kommst (und das ist verdammt leicht), dann solltest du lieber mit dem Scripten aufhören, weil du Grundlegendes nicht verstehst, wie zum Beispiel die If-Befehle oder das Ausführen von events und wann sie ausgeführt werden.
Und ja, ich weiß nicht wie ich das globale Skirpt auslöse.
Und:
Keiner kann alles wissen. Jeder muss mal fragen.
Nun zum richtigen Thema:
Ich weiß es leider nicht, wie ich es auslöse. Bitte wie?