PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Script...



GodSnake
10-04-04, 11:22
Hi.Also ich hab ein script geschrieben das wie folgt lautet:

begin MY_startarusScript

short doonce

if ( doonce == -1 )
return
endif

if ( OnActivate==1 )
MessageBox "Mein Text!", "OK"
activate
set doonce to -1
endif


end MY_startarusScript


Ich weiß jetzt ncht ob ihr mich auslacht weil ich total krasse Fehler dadrin habt, aber es soll bewirken, dass wenn ich einen NPC anspreche, sich eine Message Box öffnet, doch es passiert NICHTS! Warum?

mfg, Snake

GodSnake
10-04-04, 11:22
Hi.Also ich hab ein script geschrieben das wie folgt lautet:

begin MY_startarusScript

short doonce

if ( doonce == -1 )
return
endif

if ( OnActivate==1 )
MessageBox "Mein Text!", "OK"
activate
set doonce to -1
endif


end MY_startarusScript


Ich weiß jetzt ncht ob ihr mich auslacht weil ich total krasse Fehler dadrin habt, aber es soll bewirken, dass wenn ich einen NPC anspreche, sich eine Message Box öffnet, doch es passiert NICHTS! Warum?

mfg, Snake

Fennias_Maxim
10-04-04, 11:45
Liegt das skript auf dem NPC?
glaub das activate gehöt raus.
weil du dann gleich mit dem npc sprichst
bei Onactivate leerzeichen lassen( == )

ReneMiner
10-04-04, 11:50
begin my-dingsdascript

short doonce


if ( OnActivate == 0 )
return
endif

if ( doOnce == 0 )
MessageBox "Mein Text!"
set doonce to -1
else
activate
endif
end MY_startarusScript

Hla Bitter (http:///www.newraven.net/index.php?showforum=13)
Berichtet Euren Freunden von diesem Ort!
Und auch von diesem (http:///www.pc-rollenspiele.net)

GodSnake
12-04-04, 10:21
OK, Danke. Das hat schonmal weitergeholfen! Jetzt noch ein Problem! Ich habe ein Gegenstand(Schwert)in ner Schmiede liegen und man soll es nicht anfassen können und sobald man einen bestimmten Tagebucheintrag hat, soll es verschwinden. So ich hab dann das folgende script geschrieben und habe (wiedermal) irgendeinen (oder viele) massive Fehler darin.

begin MY_master_sword_script


If ( OnActivate ==1 )
MessageBox "Es ist noch zu heiß um es anzufassen.", "OK"
return
endif

else ( GetJournalIndex MY_al_todArkadian = 20 )
RemoveItem "MY_arcadian masters" 1
endif


end MY_master_sword_script

Also so funzt das, nur im Spiel kommen dann fehlermeldungen, wie muss es also heißen?

iladrion
12-04-04, 10:42
Removeitem kann man nur auf ein Objekt anwenden, das ein Inventory hat (Player, NPC, Creature, Container). Dein Schwert musst Du mit "disable" aus der Welt entfernen. Ausserdem solltest Du drauf achten, dass Du überall die nötigen Leerzeichen machst http://ubbxforums.ubi.com/infopop/emoticons/icon_wink.gif und zu jedem If nur ein Endif da ist:

begin ABC_master_sword_script

if (menumode == 1); Scripte die im Menümodus laufen sind ziemlich ungünstig
return
endif

If ( OnActivate == 1 )
MessageBox "Es ist noch zu heiß um es anzufassen.", "OK"
return
endif

If ( GetJournalIndex "ABC_al_todArkadian" == 20 )
"ABC_arcadian masters"->Disable
StopScript "ABC_master_sword_script"
;wenn das Schwert weg ist, braucht auch das Script nicht mehr laufen
endif

end ABC_master_sword_script

Es ist so gewollt, dass der Spieler das Schwert niemals aufnehmen kann ? Denn Dein Ansatz reagiert so, und daran hab ich auch nichts geändert.

Weitere Sache: Wenn Du statt MY oder ABC ein Kürzel für dein PlugIn oder deinen Namen einsetzt (also zb GS für GodSnake), kann man, wenn später beim User mal Fehler auftreten sollten, leichter feststellen, von welchem PlugIn der Fehler kommt. MY schreibt leider jeder 2., und für sich selbst zuhause mag das ja auch ausreichen. Aber bei 20 PlugIns, deren Variablen und Scripte mit MY beginnen, hilft das dann nicht mehr weiter.

Besuch mich mal:
http://www.iladrion.de/pix/Isles455x93.jpg (http://iladrion.de)

Du suchst einen Platz für dein Mod ? Oder überhaupt eine gute RPG-Seite ?
http://www.pc-rollenspiele.net/storage/banner/banner_02.png (http://www.pc-rollenspiele.net)

GodSnake
12-04-04, 10:49
Vielen Dank! JA, war so gemeint, dass es NIE aufgehoben werden kann! Und wenn man dann ein Script schreibt welches bewirkt das man (wiederrum ein anderes) ein Schwert nur aufheben kann, wenn man ein Vampir ist müsste dann so heißen oder http://ubbxforums.ubi.com/infopop/emoticons/icon_wink.gif

Begin MY_noPickup_Excalibur

if ( OnActivate == 1 )
return
endif

else ( PCVampire == 1 )
activate
endif

End

Thx, wenn du mir auch noch sagen würdes, ob das richtig is. MfG, Snake

iladrion
12-04-04, 10:57
Ich glaub, Du hast noch eine Verständnis-Lücke beim Befehl "else"

entweder:


if (Bedingung)
...
Anweisungen
...
endif

oder:

if (Bedingung)
...
Anweisungen
...
else ;wird ausgeführt wenn Bedingung nicht zutrifft
...
Anweisungen
...
endif


oder aber:

if (Bedingung1)
...
Anweisungen
...
elseif (Bedingung2);wird nur geprüft, wenn Bedingung1 nicht zutrifft)
...
Anweisungen;wird nur ausgeführt, wenn Bedingung1 nicht zutrifft und Bedingung2 zutrifft
...

endif



Zu deinem Script (war leider ziemlich falsch):

<pre class="ip-ubbcode-code-pre">
Begin GHIJ_noPickup_Excalibur

if ( OnActivate == 1 )
if ( PCVampire == 0 )
return
else
Activate
endif
endif

End
</pre>

Besuch mich mal:
http://www.iladrion.de/pix/Isles455x93.jpg (http://iladrion.de)

Du suchst einen Platz für dein Mod ? Oder überhaupt eine gute RPG-Seite ?
http://www.pc-rollenspiele.net/storage/banner/banner_02.png (http://www.pc-rollenspiele.net)

[This message was edited by iladrion on Mon April 12 2004 at 07:06 PM.]

Thefirstlord
12-04-04, 11:05
Ich glaube er kommt aus C++ da ist das mit if und elseif so das die untereinander kommen.

http://www.smiliegenerator.de/s23/smilies-26974.png

http://www.click-smilies.de/my_smileys/smileys1/BoomSmilie_anim.gif http://www.click-smilies.de/my_smileys/smileys1/bigun2.gif

GodSnake
12-04-04, 11:06
OH, naja, das erklärt so einiges... http://ubbxforums.ubi.com/infopop/emoticons/icon_wink.gif Danke, schonmal! Für alles! Naja, den rest meines mods - hoffe ich - werde ich jetzt ohne hilfe schaffen!


THX!!!!und mfG, Snake

GodSnake
12-04-04, 11:07
@TheFirstLord Ich bin erst 13, war also doch ne Verständnislücke... http://ubbxforums.ubi.com/infopop/emoticons/icon_wink.gif

ReneMiner
12-04-04, 12:05
@iladrion
deine beschreibung ist schon total ok, aber
die Else-Ifs in der Morrowind-Scriptsprache sind da nicht immer so.
Wenn ich zb. mal das mache:
begin
short A

if ( onactivate == 0 )
return
endif
set A to 1

if ( A == 1 )
set a to 2
messagebox "A ist 2"
elseif ( A == 2 )
set a to 3
messagebox "A ist 3"
endif

end

kommen manchmal beide Meldungen! Dürfte ja eigentlich nicht, oder?

Hla Bitter (http:///www.newraven.net/index.php?showforum=13)+ AddOns (http:///www.newraven.net/index.php?showtopic=119&st=0&#entry806) + Hla Bitter Kompakt (http:///www.pc-rollenspiele.net/anwendungen.php?name=Downloads&d_op=viewdownload&cid=20)

GodSnake
12-04-04, 12:14
HI nochmal.
Wenn wir schonmal dabei sind...

was genau heißen am Anfang eines Scripts die Befehle:

1. short A
2. long A

und dann gibt es ja noch 100te mehr, aber was genau bedeutet das short, weil das am häufigsten vorkommt.
MfG Snake

EDIT: und was heißt "float"

jsc-850
12-04-04, 12:30
short, long und float definieren verschiedene Typen von Variablen. <BLOCKQUOTE class="ip-ubbcode-quote"><font size="-1">quote:</font><HR>
<UL TYPE=SQUARE><LI>short -32,768 to 32,767
<LI>long -2,147,483,648 to 2,147,483,647
<LI>float 3.4E +/- 38 (7 digits)[/list] <HR></BLOCKQUOTE>
Wenn du mehr wissen möchtest schau mal in die Hilfedatei zum CS, da steht noch einiges zu Variablen.

Es gibt keine Textvariablen.

Scripting für Dummies beschäftigt sich ausführlich mit dem Skripten und natürlich auch mit den damit in Zusammenhang stehenden Befehlen usw. In deutsch kannst du die Version 5 auch von meiner Seite bekommen, in engl. gibt es inzwischen eine Ver. 6

@ ReneMiner
Das bedeutet, wenn dieses Ergebnis so auftritt, das die Befehlsumsetzung nicht korrekt implementiert ist. Gut zu wissen, mit else tritt das dann sicher nicht auf, braucht aber eine neue if Abfrage http://ubbxforums.ubi.com/images/smiley/16x16_smiley-sad.gif
______________________________
Gruß jsc - hierher (http://morrowind.hierher.net)
"Recht haben - oder glücklich sein?"

GodSnake
12-04-04, 12:33
OK. Ich hab mir Scripting for Dummies (auf Deutsch) geholt, werd mir mal die etlichen Seiten reinziehen. Weil das Variablen-Zeug da versteh ich üBERHAUPT NICHT http://ubbxforums.ubi.com/infopop/emoticons/icon_wink.gif

MfG, Snake

iladrion
12-04-04, 12:57
@ReneMiner:

Das muss ich mal genau austesten, würde eventuell helfen, einige bisher für mich unerklärliche Phänomene doch noch zu erklären.

Besuch mich mal:
http://www.iladrion.de/pix/Isles455x93.jpg (http://iladrion.de)

Du suchst einen Platz für dein Mod ? Oder überhaupt eine gute RPG-Seite ?
http://www.pc-rollenspiele.net/storage/banner/banner_02.png (http://www.pc-rollenspiele.net)