Autor Thema: Hilfe beim Scripten von Speech aka LucasArts  (Gelesen 2596 mal)

NsMn

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1646
  • Geschlecht: Männlich
  • überzeugter Paint-Nutzer
    • ICQ Messenger - 404385098
    • Profil anzeigen
    • E-Mail
Hilfe beim Scripten von Speech aka LucasArts
« am: 08. Dezember 2008, 18:14:25 »
Hi mal wieder,

Da ich eine DotT-Episode erstelle, sollte auch die Technik möglichst nah an die der Scumm-Adventures herankommen. Entsprechend wollte ich ein Nicht-Blockendes Speech-System scripten,bei dem der Charakter mit seinem Speechview animiert wird,sobald er steht und bei welchem das Speech-Overlay immer an der gleichen Stelle bleibt wo es aufgetaucht ist,bis es wieder verschwindet.
Jedenfalls habe ich folgendes Script bisher:

//global script
...
function Dotspeech(const string Text){
  String Speech;
  Speech=Text;
  int Speechy;
  if(player==cBerno)Speechy=player.y-85;
  if(player==cJeff2)Speechy=player.y-86;
  if(player==cHoagie)Speechy=player.y-78;
  float Speechx=IntToFloat(player.x-(Speech.Length/2));
  Speechoverlay=Overlay.CreateTextual(FloatToInt(Speechx,eRoundUp),   Speechy, 150, Game.SpeechFont, player.SpeechColor, Speech.Copy());
  SetTimer(3, Speech.Length*10);
  IsSpeechDisplayed=true;
  }
...

//rep_execute_always
...
if(IsTimerExpired(3)==1 && IsSpeechDisplayed==true){
   Speechoverlay.Remove();
   Speechoverlay=null;
IsSpeechDisplayed=false;   
}

[b][i]if(player.Moving==false && IsSpeechDisplayed==true && player.View!=player.SpeechView){
  player.LockView(player.SpeechView);
  player.Animate(player.Loop, 3, eRepeat, eNoBlock, eForwards);
}
else if(player.Moving==true && player.View!=player.SpeechView){
ReleaseCharacterView(player.ID);
}[/i][/b]
...

//on_event
...
if(event==eEventLeaveRoom){
Speechoverlay.Remove();
Speechoverlay=null;
IsSpeechDisplayed=false;
}
..
Soweit hat auch alles funktioniert, was mit der Textausgabe zu tun hat. Nur beim teil mit der Speech-Animation wurds schwierig. Dafür war das blaugrün markierte Script da, welches allerdings nicht richtig funktioniert(so wird der View für immer auf den SpeechView gesetzt) Weiß jemand von euch Experten, wie man das ganze zum laufen bringen kann?

PS:ich hoffe ihr versteht das ganze Script, war zu faul alles zu dokumentieren  :P
« Letzte Änderung: 08. Dezember 2008, 18:18:57 von edna_mausi »

NsMn

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1646
  • Geschlecht: Männlich
  • überzeugter Paint-Nutzer
    • ICQ Messenger - 404385098
    • Profil anzeigen
    • E-Mail
Re: Hilfe beim Scripten von Speech aka LucasArts
« Antwort #1 am: 15. Dezember 2008, 19:48:53 »
Ahja ,hat sich erledigt. Das ganze geht ja einfach mit dem Idle-View  :-[