Begin folgebefehl_script
if ( menumode = 1 )
return
endif
if ( folgebefehl = 1 )
if ( GetJournalIndex "JournalID" != Index des Journaleintrages )
NPC ID -> AIFollow, Player, 0, 0, 0, 0
endif
endif
elseif ( GetJournalIndex = Index des Journaleintrages )
AI Wander, 0, 0, 0, 0
endif
end
Begin stärkeprobe_script
if ( menumode = 1 )
return
endif
if ( Player-> GetStrength < 90 )
return
endif
end
Begin stärkeprobe_script
if ( menumode = 1 )
return
endif
if ( Player-> GetStrength < 90 )
MessageBox, "Text"
return
endif
end
@Hoch Ordinator:
Also, zuerst musst du unter "Gameplay/Globals..." eine neue globale Variable erstellen. Am besten nennst du sie so wie ich sie für die Scripts genannt habe. ^^
folgebefehl
Dann musst du in das Result Fenster im Dialogmenü bei der Antwort Mitkommen reinschreiben:
set folgebefehl to 1
Dann musst das folgende Script einfach jeweils auf den passenden NPC anpassen:
Code:Begin folgebefehl_script if ( menumode = 1 ) return endif if ( folgebefehl = 1 ) if ( GetJournalIndex "JournalID" != Index des Journaleintrages ) NPC ID -> AIFollow, Player, 0, 0, 0, 0 endif endif elseif ( GetJournalIndex = Index des Journaleintrages ) AI Wander, 0, 0, 0, 0 endif end
Ist wahrscheinlich ein wenig umständlich, ein guter Scripter würde das wahrscheinlich einfacher machen, aber ich komm irgendwie auf nichts anderes. ^^'
Probiers aber erst Mal aus, ich weiß nicht obs klappt.
Begin folgebefehl_script
short doonce
if ( menumode = 1 )
return
endif
IF ( doonce == 1 )
return
EndIF
IF ( (GetJournalIndex [JOURNALID]) >= [IndexNo] )
AIWander, 0, 0, 0, 0
set doonce to 1
EndIF
end
Begin teleportseltort_script
short button
short status
if ( OnActivate = 1 )
if ( teleporthelfer = 1 )
MessageBox, "Wohin wollt ihr reisen?", "Garten", "Warenhandel", "Taverne", "Haus"
set status to 1
endif
if ( status = 1 )
set button to GetButtonPressed
if ( button = -1 )
return
endif
elseif ( button = 0 )
Player-> PositionCell, 4246, 10669, 9614, 90, "Seltsamer Ort"
set status to 0
endif
elseif ( button = 1 )
Player -> PositionCell -11007, 3272, 10335, 90, "Seltsamer Ort"
set status to 0
endif
elseif ( button = 2 )
Player -> PositionCell 14993, 870, 9613, 180, "Seltsamer Ort"
set status to 0
endif
elseif ( button = 3 )
Player -> PositionCell -26192, -782, 10017, 135, "Seltsamer Ort"
set status to 0
endif
end
if ( menumode = 1 )
return
endif
if ( status = 1 )
return
endif
Begin teleportseltort_script
short button
short status
IF ( OnActivate = 1 )
IF ( Status != 0 )
Return
EndIF
set Status to 1
Return
EndIF
IF ( Status == 0 )
return
EndIF
IF ( teleporthelfer = 0 )
MessageBox "Vielleicht kann man dieses Gerät später benutzen..."
set Status to 0
return
EndIF
IF ( Status == 1 )
MessageBox, "Wohin wollt ihr reisen?" "Garten" "Warenhandel" "Taverne" "Haus"
set Status to 2
EndIF
Set button to GetButtonPressed
IF ( button = -1 )
return
EndIF
IF ( button = 0 )
Player->PositionCell, 4246, 10669, 9614, 90, "Seltsamer Ort"
ElseIF ( button = 1 )
Player->PositionCell -11007, 3272, 10335, 90, "Seltsamer Ort"
ElseIF ( button = 2 )
Player->PositionCell 14993, 870, 9613, 180, "Seltsamer Ort"
ElseIF ( button = 3 )
Player->PositionCell -26192, -782, 10017, 135, "Seltsamer Ort"
EndIF
set Status to 0
end
Begin _sky_Einsturz_01
short controlvar
float timer
If ( controlvar == 0 )
If (GetDistance, Player < 256 )
DisablePlayerControls
DisablePlayerFighting
DisablePlayerJumping
DisablePlayerMagic
DisablePlayerViewSwitch
DisableTeleporting
DisableVanityMode
set timer to 0
MessageBox, "Die Höhle scheint einzustürtzen. Es gibt keine Möglichkeit zu entkommen."
set timer to timer + GetSecondsPassed
endif
endif
If ( timer <= 2 )
player -> SetHealth 0
set controlvar to 1
endif
End
Und lass mich raten, der Spieler ist sofort verreckt? :lol:Habe mal wieder ein Script Problem und zwar folgendes:
Wenn der Spieler eine Höhle betritt, sollen alle seine Aktionen einfrieren, sprich, er soll sich nur noch umgucken können und sonst nichts mehr. Dann soll eine Nachricht kommen und ihm die Lage erklären. Gleich darauf soll der Spieler dann sterben. Das Problem, das ich habe ist folgendes: Sobald der Spieler die Höhle betritt, soll er eingefroren sein, aber nicht sofort, sondern erst nach 3 Sekunden sterben.
Habe das hier schonmal so ausprobiert:
Begin _sky_Einsturz_01
short controlvar
float timer
If (GetDistance, Player > 256 )
;ich nehm an, das ist die Distanz zu einem Activator, auf dem das Script liegt.
return
EndIF
If ( controlvar == 0 )
DisablePlayerControls
DisablePlayerFighting
DisablePlayerJumping
DisablePlayerMagic
DisablePlayerViewSwitch
DisableTeleporting
DisableVanityMode
set timer to 0
set controlvar to 1
MessageBox, "Die Höhle stürzt ein. Es gibt keine Möglichkeit zu entkommen."
EndIF
set timer to timer + GetSecondsPassed
If ( timer <= 3 )
return
EndIF
player -> SetHealth 0 ;yeah, kill the player
End
begin VV_script
short state
if ( state == 0 )
if (GetPCSleep == 1 )
if (GameHour >= 20 )
if (PCVampire == 0 )
set state to 1
elseif ( PCVampire = -1 )
set state to 2
endif
elseif ( GameHour < 8 )
if ( PCVampire == 0 )
set state to 1
elseif ( PCVampire == -1 )
set state to 2
endif
endif
endif
endif
if ( state == 1 )
if ( Random100 < 15 )
if ( Random100 < 5 )
Player-> AddSpell "vampire blood aundae"
elseif ( Random100 < 10 )
Player-> AddSpell "vampire blood berne"
else
Player-> AddSpell "vampire blood quarra"
endif
endif
set state to 4
else
set state to 3
endif
endif
if ( state == 2 )
if ( Random100 < 15 )
if ( GetPCSleep == 0 )
MessageBox "Ihr wurdet in der Nacht von einem Vampir gebissen!"
set state to 0
endif
endif
endif
if ( state == 3 )
if ( GetPCSleep == 0 )
set state to 0
endif
endif
if (state = 4 )
if ( GetPCSleep == 0 )
MessageBox "Ihr wurdet in der Nacht von einem Vampir gebissen!"
set state to 0
endif
endif
end
Keine Ahnung :-D aber mir fällt auf, dass dieses Script drei Dinge nicht behandelt:Also, erstmal vielen Dank an Killfetzer, der dieses Script zu 99,9% erstellt hat.
Aber dieses Script hat allem Anschein nach einen Defekt - es sollte, nachdem der PC aufwacht und einen der Spells bekommen hat, einen Messagebox zeigen, aber diese kommt partout nicht. :S
Wo ist der Fehler?
begin VV_script
short state
short Bite
IF ( menumode == 1 )
return
EndIF
IF ( State > 2 )
IF (GetPCSleep == 0 )
IF ( state < 10 )
MessageBox "Ihr wurdet in der Nacht von einem Vampir gebissen!"
EndIF
set state to 0
set Bite to 0
EndIF
return
EndIF
IF ( state == 0 )
IF (GetPCSleep == 0 )
Return
EndIF
IF (GameHour >= 20 )
set state to 1
ElseIF ( GameHour < 8 )
set state to 1
EndIF
Return
EndIF
IF ( State == 1 )
set Bite to Random100
IF ( Bite > 14 )
set state to 10
Else
set state to 2
EndIF
Return
EndIF
IF ( state == 2 )
IF ( PCVampire > 0 ) ;don't bite vampires
set state to 10
EndIF
IF ( PCWerewolf == 1 ) ;prevent very BAAAAD Things ;-)
set state to 10
EndIF
IF (PCVampire == -1 ) ;handles vampirism immunity
set state to 3
EndIF
;if one of this diseases is active, do nothing:
set state to ( state + ( player->GetSpell "werewolf blood" ) )
set state to ( state + ( player->GetSpell "vampire blood aundae" ) )
set state to ( state + ( player->GetSpell "vampire blood berne" ) )
set state to ( state + ( player->GetSpell "vampire blood quarra" ) )
IF ( state > 2 ) ; no re-infection for infected/immune chars
Return
EndIF
EndIF
set state to 5
IF ( Bite < 5 )
Player->AddSpell "vampire blood aundae"
Return
ElseIF ( Bite > 9 )
Player->AddSpell "vampire blood berne"
Return
End
Player->AddSpell "vampire blood quarra"
End
Tjo, das passiert, wenn man aus dem Kopf schreibt. Ist kein Wunder, Zeile 72 müßte die rot markierte sein:EDIT: Okay, beim Abspeichern im CS hat es einen Fehler produziert... "Miss matched if/else/endif starting on line 72."
{...}
ElseIF ( Bite > 9 )
Player->AddSpell "vampire blood berne"
Return
[B][COLOR="Red"]End[/COLOR][/B]
Player->AddSpell "vampire blood quarra"
End