Autor |
|
Terrorspike
Bard
Verwarnung: 1
Dabei seit: Januar 2005
Geschlecht:
Herkunft: ist mir unbekannt
Beiträge: 47
|
|
-= Scripting Wahn Teil 1 =- | |
Hi, Leute, hab ewig nach nem guten MW - Forum gesucht aber ist irgenwie voll schwierig was zu finden wo man sich zum Thema Modding austauschen kann...
Mal ne Frage:
Ich hab da n Script gemacht das aktiviert wird sobald ich eine Quest erledigt habe, danach soll ne gewisse zeit vergehen, und dann soll ne MB auftauchen und wenn man dann auf ok klickt oder von mir aus auch gleichzeitig soll ne Notiz ein paar Meter voraus erscheinen, schön und gut, klappt ja auch alles aber...
Das fenster lässt sich nicht schließen und die notiz erscheint immer und immer wieder, dupt sich also irgendwie oder so...
Was mach ich falsch?
Hier das Script:
code:
Begin SPIKE_Mordrag_Quest_01
Float timer
Set timer to ( timer + GetSecondsPassed )
if timer > 60
MessageBox "Ihr steht so da, nichtsahnend plötzlich fliegt ein Vogel oder so etwas ähnliches an euch vorbei, bis ihr registriert was passiert ist ist er auch schon dahin, doch er hat etwas fallen lassen, einen Zettel, nur ein paar meter vor euch...", "OK"
PlaceAtPC, "SPIKE_VLM_Aufnahmebrief_01", 1, 800, 0
endif
End
Bitte zu Hilf !! THX !!
-= greetz Terorspike =-
__________________ -=Gewalt ist die Sprache der geistig schwachen=-
--= aber manchmal hifts echt !! =--
Dieser Beitrag wurde von Terrorspike am 07.01.2005, 01:24 Uhr editiert.
|
|
07.01.2005, 01:20 |
|
F.I.M.
Acid Monk
Dabei seit: März 2004
Geschlecht:
Herkunft: 127.0.0.1
Beiträge: 2058
|
|
du musste ein DoOnce vaiable einbauen...
am anfang vom script -> Short DoOne
dann vor der aktion -> if ( DoOnce == 0 )
und nach PlaceAtPc -> Set DoOnce to 1
so inetwa
__________________
|
|
07.01.2005, 02:07 |
|
GreyWanderer
Crusader
Dabei seit: Januar 2004
Geschlecht:
Herkunft: Cuiviénen
Beiträge: 465
|
|
Wie wäre es, das Script eine Zeile vor "endif" schlicht zu stoppen? Das Script wäre sowieso üvberflüssig und muss ja nur einmal ausgeführt werden...
__________________
Abenteuer Mittel Erde
Please visit us!
|
|
07.01.2005, 08:35 |
|
Hephaistos
Verschollen
Dabei seit: Februar 2003
Geschlecht:
Herkunft: Wien
Beiträge: 2102
|
|
Abgesehen von der DoOnce Variable sehe ich ein generelles Problem mit dem PlaceatPC-Befehl.
Der Zettel erscheint immer in der selben Höhe: Wenn du am Fuße eines Berges stehst also unterirdisch und damit unerreichbar, wenn du am Gipfel stehst schwebt er in der Luft. Und was ist wenn du in einem Interior gerade mt den Gesicht zur Wand stehst....
Deswegen wäre es besser in der Box anzumerken, daß der Spieler den Zettel sofort aufhebt und ihm danach mit additem im Inventar zu plazieren.
__________________
Die Dummheit der Menschen und das Weltall sind unendlich, wobei ich mir beim Weltall noch nicht sicher bin.
Albert Einstein
Wenn die Klügeren nachgeben, regiert Dummheit die Welt.
Marie von Ebner-Eschenbach
|
|
07.01.2005, 11:03 |
|
Terrorspike
Bard
Verwarnung: 1
Dabei seit: Januar 2005
Geschlecht:
Herkunft: ist mir unbekannt
Beiträge: 47
|
|
@ Grey, ich kann das endif nicht entfernen, der compiler nimmt mir das so nicht ab...
@Hephaistos: Das ist kein Problem, das werde ich vieleicht noch ändern falls es wirklich von nöten ist, aber danke für den tip, hab ich auch schon dran gedacht...
@F.I.M: kannst du mir vieleicht kurz schreiben wie das mit der doonce var GENAU aussieht...
heißt, wie das in meinem script aussehen muß, wenn ichs einmal gesehen hab kann ichs...
Ich habs zwar schonmal gemacht is aber ewig her und war bei NWN..
Ich skripte nicht so oft, bin grad dabei mich wieder einzuarbeiten...
ThX !!!
greetz Spikey
__________________ -=Gewalt ist die Sprache der geistig schwachen=-
--= aber manchmal hifts echt !! =--
Dieser Beitrag wurde von Terrorspike am 09.01.2005, 01:09 Uhr editiert.
|
|
09.01.2005, 01:06 |
|
GreyWanderer
Crusader
Dabei seit: Januar 2004
Geschlecht:
Herkunft: Cuiviénen
Beiträge: 465
|
|
Zitat: Original von Terrorspike
@ Grey, ich kann das endif nicht entfernen, der compiler nimmt mir das so nicht ab...
DU solltest ja endif nciht entfernen Du solltest das Script stoppen, sodass es nicht nochmal ausgeführt wird.
Scriptbefehl:
StopScript, "Script_ID"
Was DoOnce angeht...ich fände da Button praktischer...
Aber mit AddItem hat Hephaistos natürlich Recht. Das Ding so zu platzieren bringt nichts. Mach lieber ne MessageBox "Zettel erhalten" oder so und füge es gleich dem Inventar hinzu.
__________________
Abenteuer Mittel Erde
Please visit us!
|
|
09.01.2005, 02:29 |
|
Garak
Admin
Dabei seit: Juli 2002
Geschlecht:
Herkunft: Cardassia Prime
Beiträge: 9256
|
|
Zitat: Original von GreyWanderer
StopScript, "Script_ID"
Ergänzung: da sich das script ja selbst stoppen soll, kannst Du die ScriptID natürlich auch weglassen. Kleiner Hinweis zu Stopscript: Das Skript wird nach dem Stopscript für diesen einen Frame noch fertig ausgeführt, nur im nächsten Frame nicht mehr neu angefangen. . Einen sofortigen Stop erreicht man mit
Stopscript
Return
Zitat: Original von GreyWanderer
Was DoOnce angeht...ich fände da Button praktischer...
er hat ja nen Button drin, und solange es nur einer ist, kann man sich den ganzen GetButtonPressed-Zirkus sparen.
__________________ drei mal dürft ihr raten, wer grade seine Signatur geschrottet hat...geht aber wieder - allerdings solltet Ihr noch die Finger von den Avataren lassen
|
|
09.01.2005, 11:11 |
|
GreyWanderer
Crusader
Dabei seit: Januar 2004
Geschlecht:
Herkunft: Cuiviénen
Beiträge: 465
|
|
Er will ja, dass der "Zettel" erst nach dem "OK"-Klicken erscheint, bzw. die Benachrichtigung "Zettel erhalten"...nen Button mit Return würde da sicherlich besser passen als DoOnce...
__________________
Abenteuer Mittel Erde
Please visit us!
|
|
09.01.2005, 18:11 |
|
Garak
Admin
Dabei seit: Juli 2002
Geschlecht:
Herkunft: Cardassia Prime
Beiträge: 9256
|
|
wenn mich nicht alles Täuscht gillt ne Messagebox als Menumode == 1 - man müste also nur auf Menumode == 0 warten um das OK abzufangen
__________________ drei mal dürft ihr raten, wer grade seine Signatur geschrottet hat...geht aber wieder - allerdings solltet Ihr noch die Finger von den Avataren lassen
|
|
09.01.2005, 20:40 |
|
Terrorspike
Bard
Verwarnung: 1
Dabei seit: Januar 2005
Geschlecht:
Herkunft: ist mir unbekannt
Beiträge: 47
|
|
Hmmm, äßerst komisch...
Hab das nun so gemacht und erschien mir auch sinnig, aber
irgendwie oassiert jetzt GAR NICHTS... *heul*
Hab jetzt glaub entgültig den Faden verloren...
was hab ich denn jetzt falsch gemacht?
so siehts aus:
code:
Begin SPIKE_Mordrag_Quest_01
Float timer
Set timer to ( timer + GetSecondsPassed )
if timer > 60
MessageBox "Ihr steht so da, nichtsahnend plötzlich
fliegt ein Vogel oder so etwas ähnliches an euch vorbei,
bis ihr registriert was passiert ist ist er auch schon
dahin, doch er hat etwas fallen lassen, einen Zettel, nur
ein paar meter vor euch, ihr hasstet zu ihm hin und hebt
ihn auf", "OK"
AddItem "SPIKE_VLM_Aufnahmebrief_01" 1
endif
Stopscript SPIKE_Mordrag_Quest_01
Return
End
Danke für die Hilfe, find ich echt supi
-= greetz Ramona=-
P.S: ich wollte in der MB eigentlich noch mehr reinschreiben
aber dann bekahm ich ne Fehlermeldung vom TES das
die linie in der ich das reigekrizelt hab zu lang ist...
kann mann das nicht irgendwie machen, wenn ich noch mehr Text einfügen will
muss ich doch nochmal anführungszeichen verwenden
aber dann wird ausm text doch ein riesiger Button oder ???
__________________ -=Gewalt ist die Sprache der geistig schwachen=-
--= aber manchmal hifts echt !! =--
Dieser Beitrag wurde von Terrorspike am 10.01.2005, 15:30 Uhr editiert.
|
|
10.01.2005, 15:29 |
|
GreyWanderer
Crusader
Dabei seit: Januar 2004
Geschlecht:
Herkunft: Cuiviénen
Beiträge: 465
|
|
AddItem braucht einen "Bezug" oder ein "Ziel"...in dem Falle der Spieler...also...
Player->AddItem "Zettel_ID" 1
Auch soll das Script ja nur gestoppt werden, wenn der Zettel hinzugefügt wurde...also noch in die if-endif Verschachtelung rein...das Return kannst du dir dabei auch sparen, weil es dann sowieso keinen Code unter endif gibt, der irgendwie abgebrochen werden müsste...
Auch hat Garak den Vorschlag mit MenuMode gemacht (@Garak: Was dir immer alles einfällt ), den du vielleicht einbauen solltest.
__________________
Abenteuer Mittel Erde
Please visit us!
|
|
10.01.2005, 15:53 |
|
F.I.M.
Acid Monk
Dabei seit: März 2004
Geschlecht:
Herkunft: 127.0.0.1
Beiträge: 2058
|
|
wegen den MB kann man ja zwei machen.....
__________________
|
|
10.01.2005, 15:59 |
|
Terrorspike
Bard
Verwarnung: 1
Dabei seit: Januar 2005
Geschlecht:
Herkunft: ist mir unbekannt
Beiträge: 47
|
|
hmm, ok, soweit klar, aber wie muß ich das mit dem if
und end if machen das MW weiß wann das script
gestoppt werden soll ?
also:
Begin
timer zeugs
Message box
item zeug
und dann:
if ???
Stopscript SPIKE_Mordrag_Quest_01
endif
End
oder wie??
oder soll ich einfach das endif vor das Stopscript hauen?
-= greetz ramona =-
__________________ -=Gewalt ist die Sprache der geistig schwachen=-
--= aber manchmal hifts echt !! =--
|
|
10.01.2005, 16:05 |
|
Terrorspike
Bard
Verwarnung: 1
Dabei seit: Januar 2005
Geschlecht:
Herkunft: ist mir unbekannt
Beiträge: 47
|
|
Haha !! Juhu !! Hüpf und Spring !!!
Hab hinbekommen !!!!
hier:
code:
Begin SPIKE_Mordrag_Quest_01
Float timer
Set timer to ( timer + GetSecondsPassed )
if timer > 600
MessageBox "bla blaaa blaaaa", "OK"
Player->AddItem "SPIKE_VLM_Aufnahmebrief_01" 1
Stopscript SPIKE_Mordrag_Quest_01
Return
endif
End
*STRIKE*
THX @ all wart mir echt ne Hilfe, hätte sonst noch ewig
gebrauch und bin jetzt wieder um ne Funktion klüger
-= greetz Ramonzki =-
__________________ -=Gewalt ist die Sprache der geistig schwachen=-
--= aber manchmal hifts echt !! =--
|
|
10.01.2005, 16:15 |
|
|