PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Mannequin



whiteTala
05.10.2009, 22:27
Hallo Leute,

da ich gerne ein eigenes Haus im Geck bauen möchte, wollte ich auch die aus Morrowind bekannten Mannequin übernehmen. Auf http://www.fallout3nexus.com/downloads/file.php?id=2060 bin ich zwar schon fündig geworden. Aber die entspreche nicht meinen Vorstellungen. Da meiner Ansicht nach, unnötige Änderungen in Zellen auftreten und dies bei mehreren PlugIn´s zu Problemen führen kann.
Also habe ich mals einen Scripts aus Morrowind probiert. Wie zu erwarten funktioniert er nicht. Kann mir jemand behilflich sein? Schon Mal vielen Dank

Der Scripts lautet wie folgend:

;script operates armor mannequins it came from Chris Janosi

begin SA_mannequin

short button
short questionState

SkipAnim

if ( menumode == 1 )
return
endif

if ( OnActivate == 0 )
if ( questionState == 0 )
return
endif
endif

if ( questionState == 0 )
MessageBox, "Armor Mannequin", "Move Mannequin", "Add/Remove Armor"
set questionState to 1
endif

if ( questionState == 1 )
set button to GetButtonPressed

if ( button == 0 )
set questionState to 10
elseif ( button == 1 )
set questionState to 0
Activate
endif
endif

if ( questionState == 10 )
MessageBox "Did you remove all items from the mannequin?", "Yes", "No"
set questionState to 20
endif

if ( questionState == 20 )
set button to GetButtonPressed

if ( button == 0 )
set questionState to 0
Disable
player->addItem, "_SA_armorman_placeholder", 1
playSound "Item Misc Up"
elseif ( button == 1 )
set questionState to 0
Activate
endif
endif

end SA_mannequin

caesarrulez
06.10.2009, 22:08
Die Struktur ist im Eimer:

scn MeinMannequin

>>Variablendeklarationen<<

begin onactivate

>>was das Ding bei Aktivierung machen soll<<

end

so sieht ein FO3 script aus. Probiers mal, evtl gehts schon, ansonsten müsste man sich den Code komplett reinziehen.
Außerdem ist mir aufgefallen dass da player->additem steht, muss aber player.additem blabla heißen ansonsten siehts eigentlich grob lauffähig aus

whiteTala
07.10.2009, 12:32
Danke für deine Antwort. Der Script stammt noch aus Morrowind, nicht von Fallout 3. Ich werde deine Änderungsvorschläge mal testen und Rückmeldung geben.

So hier mal abgeändert, aber noch nicht getestet:

scn mannequin

short button
short questionState

SkipAnim

if ( menumode == 1 )
return
endif

if ( OnActivate == 0 )
if ( questionState == 0 )
return
endif
endif

if ( questionState == 0 )
MessageBox, "Armor Mannequin", "Move Mannequin", "Add/Remove Armor"
set questionState to 1
endif

if ( questionState == 1 )
set button to GetButtonPressed

if ( button == 0 )
set questionState to 10
elseif ( button == 1 )
set questionState to 0
Activate
endif
endif

if ( questionState == 10 )
MessageBox "Did you remove all items from the mannequin?", "Yes", "No"
set questionState to 20
endif

if ( questionState == 20 )
set button to GetButtonPressed

if ( button == 0 )
set questionState to 0
Disable
player.addItem, "_SA_armorman_placeholder", 1
playSound "Item Misc Up"
elseif ( button == 1 )
set questionState to 0
Activate
endif
endif

end

caesarrulez
07.10.2009, 17:50
begin onactivate

<< sowas muss da rein, irgendein begin block, meistens ist das das activate. sonst wird der Code nicht ausgelöst.

whiteTala
07.10.2009, 18:33
Leider kenne ich mit Scripts überhaupt nicht aus. Habe ihn einfach mal ausprobiert. Jetzt gibt er mir folgende Fehlermeldung:

SCRIPTS: Script `mannequin`, line 19:
Script command `MessageBox`not found.

Muß ich die Nachricht irgendwo noch einfügen?

caesarrulez
07.10.2009, 18:36
du musst die message selbst anlegen, ist vom typ message und man kann dann nen text reintun.
dann musst du der Message ne ID geben, wie jedem anderen Teil ja auch, z.B. Mannequinmessage

dann im script showmessage mannequinmessage angeben

whiteTala
08.10.2009, 17:04
Ok, habe die MesageBox umbenannt. Beim versuch ihn zu spreichern sagt er jetzt, das der Begin fehlt. Jetzt ist nur die Frage, welchen ich nehme. Der Script für den NPC soll ja bei sprechen gestartet werden. Welchen soll ich nehem?

begin onTriggerEnter player
oder
begin onActivate

Der Zweite ist glaube ich der richtige, oder?

caesarrulez
08.10.2009, 17:50
das mannequin ist kein echtes npc, daher denke ich das onactivate sollte das korrekte sein. ontriggerenter kannste vergessen, da du keinen trigger hast (ist als rote box dargestellt) der das ganze dann starten könnte