Autor Thema: mukks Fragethread ^^  (Gelesen 35712 mal)

mukk

  • kleiner Tentakel
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
    • Profil anzeigen
Re: mukks Fragethread ^^
« Antwort #60 am: 29. April 2010, 11:19:25 »
danke schonmal für das variablenkram

die standardaktionsache krieg ich einfach nich hin...ich hab den ganzen raum nochma neu aufgebaut und es is immernoch das gleiche durcheinander, also musses irgendwie im globalscript hängen...sind da irgendwo die türen einzeln definiert? hätt ich vielleicht schonma sagen können, hab das problem nur bei türen im flur im ersten stockwerk im bernard-starter 2.72...
Each year, vegetarians bully animals,
cheat in relationships, watch porno and cause pollution.
So join the fight now and stop the vegetarians.

Bòógieman

  • International anerkannter Superheld
  • Globaler Moderator
  • alter Tentakel
  • *****
  • Beiträge: 2667
  • Geschlecht: Männlich
  • Grün Tentakel = Running Sushi!
    • Profil anzeigen
Re: mukks Fragethread ^^
« Antwort #61 am: 29. April 2010, 12:06:16 »
ja, die sind etwas komplizierter
die verwenden >v für variabel
im global script gibt es dann ne stelle wo anhand einer global_int daraus öffnen oder schließen wird
wenn du da also neue türen gemacht hast oder bestehende verändert hast, wird das nicht funktionieren
für neue sachen musst du da in der entsprechenden global script funktion (die ich dir momentan leider nicht sagen kann weil ich kein ags zur hand hab) einen neuen eintrag machen, damit diese tür da auch mitbehandelt wird
Schlachtaman Vibrations, UHYEAH!!!
_________________________________

>>>> Ende der Kommunikation <<<<

mukk

  • kleiner Tentakel
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
    • Profil anzeigen
Re: mukks Fragethread ^^
« Antwort #62 am: 29. April 2010, 12:41:12 »
hm, hab jetz alles in den griff bekommen bis auf eine tür, die sich richtig öffnet, aber dann auch weiterhin "öffne" anzeigt. Da alle anderen Türen richtig funktionieren bin ich echt ratlos...das schließt ja das globalscript als fehlerquelle wieder aus... jemand ne idee?
ansonsten wär ne genaue angabe, wo ich diese funktionen finde auch hilfreich...stolpere zwar ab und zu über definitionen übers öffnen und schließen aber einzelne türen hab ich noch nirgends entdeckt

gruß und dank, mukk
Each year, vegetarians bully animals,
cheat in relationships, watch porno and cause pollution.
So join the fight now and stop the vegetarians.

Bòógieman

  • International anerkannter Superheld
  • Globaler Moderator
  • alter Tentakel
  • *****
  • Beiträge: 2667
  • Geschlecht: Männlich
  • Grün Tentakel = Running Sushi!
    • Profil anzeigen
Re: mukks Fragethread ^^
« Antwort #63 am: 29. April 2010, 13:12:58 »
stell mal sicher, dass der hotspot der tür auf jeden fall ein >v am ende hat und kein >o
und dann handle dich vom aufruf der any_click_on_door function nach innen bis du zu der funktion kommst, wo ein haufen if-else sind die den aktuellen raum und den hotspot checken und je nach zustand der global_int 'o' oder 'c' machen

und in dieser funktion musst du sicherstellen, dass ein eigener else if zweig für deinen raum und deinen hotspot existiert (und für den raum der auf der anderen seite der tür liegt ebenfalls)

wenn das immer noch nicht klappt, hast du wohl die global_int der tür irgendwo anders auf einen falschen wert gesetzt

und wenn das alles nix bringt, stellt sich nur noch die frage:
hast du die tür selber gemacht, oder war die schon im starterpack enthalten?

oder verwendest du da ein neues rulaman starterpack für AGS3.1 das die any_click_on_door funktion durch etwas neues ersetzt hat?
« Letzte Änderung: 29. April 2010, 13:15:05 von Bòógieman »
Schlachtaman Vibrations, UHYEAH!!!
_________________________________

>>>> Ende der Kommunikation <<<<

mukk

  • kleiner Tentakel
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
    • Profil anzeigen
Re: mukks Fragethread ^^
« Antwort #64 am: 29. April 2010, 13:52:15 »
definiere "nach innen handlen" :)

hab grad das hier gefunden:

else if ((r == 2) && (h == 4)) OpenCloseExtension (4, location);

wenn r== 2 raum 2 is und h == 4 der hotspot 4 dann bezieht sich das auf meine problemtür...was bedeutet die 4 vor location?

Die andere, funktionstüchtige Tür im Raum sieht so aus: 

else if ((r == 2) && (h == 2)) OpenCloseExtension (3, location);


Das problem besteht übrigens von der anderen seite der tür genau so
« Letzte Änderung: 29. April 2010, 14:06:01 von mukk »
Each year, vegetarians bully animals,
cheat in relationships, watch porno and cause pollution.
So join the fight now and stop the vegetarians.

Bòógieman

  • International anerkannter Superheld
  • Globaler Moderator
  • alter Tentakel
  • *****
  • Beiträge: 2667
  • Geschlecht: Männlich
  • Grün Tentakel = Running Sushi!
    • Profil anzeigen
Re: mukks Fragethread ^^
« Antwort #65 am: 29. April 2010, 16:34:05 »
definiere "nach innen handlen" :)
in dem du dir die funktion zeile für zeile ansiehst und bei einem aufruf einer anderen funktion zu dieser gehst und diese dann zeile für zeile ansiehst... usw.
irgendwann wärst du dann zu der besagten stelle gekommen  ;)

hab grad das hier gefunden:

else if ((r == 2) && (h == 4)) OpenCloseExtension (4, location);
jarp, das ist die stelle die ich gemeint habe :D

kurze erklärung
(r == 2) --> hier ist die 2 die raumnummer der tür
(h == 4) --> hier ist die 4 die hotspotnummer der tür
OpenCloseExtension (4, location) --> hier ist die 4 die global_int nummer der tür

Beispiel:
deine tür verbindet raum 2 und raum 3
in raum 2 hat die tür den hotspot 4
in raum 3 hat die tür den hotspot 5
die tür verwendet global_int 6

dann brauchst du folgende zeilen
else if ((r == 2) && (h == 4)) OpenCloseExtension (6, location);
else if ((r == 3) && (h == 5)) OpenCloseExtension (6, location);


EDIT:
ich bin mir nicht mehr sicher, ob die zahl bei OpenCloseExtension nicht doch die objektnummer der türgrafik ist...  :-\
« Letzte Änderung: 29. April 2010, 16:35:54 von Bòógieman »
Schlachtaman Vibrations, UHYEAH!!!
_________________________________

>>>> Ende der Kommunikation <<<<

mukk

  • kleiner Tentakel
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
    • Profil anzeigen
Re: mukks Fragethread ^^
« Antwort #66 am: 29. April 2010, 17:39:53 »
yeaha! das wars, irgendwas war mit der int 4 schräg, hab die einfach bei beiden türen geändert und nu läuft alles wieder wie geschmiert  ;D

dickes danke, boogie
Each year, vegetarians bully animals,
cheat in relationships, watch porno and cause pollution.
So join the fight now and stop the vegetarians.

mukk

  • kleiner Tentakel
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
    • Profil anzeigen
Re: mukks Fragethread ^^
« Antwort #67 am: 29. April 2010, 22:24:24 »
diesmal bin ich auf der Suche nach nem Befehl für ne Textanzeige an einem sich bewegenden Objekt, das sich obendrein noch durch einen scrollbaren hintergrund bewegt...der text sollte idealerweise mit dem objekt mitfahren und nicht blocken...geht sowas? :)
Each year, vegetarians bully animals,
cheat in relationships, watch porno and cause pollution.
So join the fight now and stop the vegetarians.

Bòógieman

  • International anerkannter Superheld
  • Globaler Moderator
  • alter Tentakel
  • *****
  • Beiträge: 2667
  • Geschlecht: Männlich
  • Grün Tentakel = Running Sushi!
    • Profil anzeigen
Re: mukks Fragethread ^^
« Antwort #68 am: 30. April 2010, 08:13:38 »
ich weiß noch nicht ganz was du meinst, aber ich gebe mal ein paar tipps die dir evtl. helfen könnten

soll das objekt den text wie ein sprach-text bei player.Say darstellen?
also etwas oberhalb vom objekt und nur für eine gewisse zeit sichtbar?
wenn ja wäre es am einfachsten statt einem objekt nen character zu machen
allerdings ist der text dann immer im aktuell sichtbaren bereich des raums
wenn das objekt das bild nach rechts verlässt, bleibt der text am rechten rand einfach stehen

ansonsten musst du dir in der AGS hilfe die text overlays anschauen
eines erstellen und dieses in der zyklisch aufgerufenen globalen funktion (wo mir gerade der name nicht einfällt, so ähnlich wie repeatedly_executed) immer zu den aktuellen koordinaten des objekts verschieben
bin mir da aber nicht so sicher, ob man ein text overlay auch außerhalb des aktuell sichtbaren bereichs des raumes machen kann  :-\
das könnte man aber bei bedarf ein- und ausblenden ;)

soweit ich weiß gibt es auch grafikfunktionen, mit denen man auf sprites zeichnen kann
evtl. gibt es da auch was um text auf eine grafik zu schreiben

ansonsten gäbe es da noch die möglichkeit, dass du alle möglichen texte schon als grafik vorbereitest und dem objekt beim wechsel die gewünschte grafik zuweist
Schlachtaman Vibrations, UHYEAH!!!
_________________________________

>>>> Ende der Kommunikation <<<<

mukk

  • kleiner Tentakel
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
    • Profil anzeigen
Re: mukks Fragethread ^^
« Antwort #69 am: 30. April 2010, 12:12:47 »
mh...ich glaube ich bin einfach schlecht darin, probleme zu beschreiben ^^

also ich habe ein fahrendes auto, das auf ner langen straße fährt und ich möchte während der fahrt nen dialog von zwei insassen ablaufen lassen...der text müsste sich also wie bei charakteren mitbewegen. das auto is immer im sichtbaren bereich bzw. es wär verkraftbar, wenn der text gegen eine kante läuft...

Zu den Overlays
Overlay* myOverlay = Overlay.CreateTextual(50,80,120, Game.SpeechFont, 15,"This is a text overlay");

da müsste dann ja an die stelle der koordinaten das rein was du meintest.... da bräucht ich nochma n tipp, mit int Object.X kriegt man nur momentane koordinaten, also keine bewegungen, und was anderes find cih nich :-\
 
Each year, vegetarians bully animals,
cheat in relationships, watch porno and cause pollution.
So join the fight now and stop the vegetarians.

Bòógieman

  • International anerkannter Superheld
  • Globaler Moderator
  • alter Tentakel
  • *****
  • Beiträge: 2667
  • Geschlecht: Männlich
  • Grün Tentakel = Running Sushi!
    • Profil anzeigen
Re: mukks Fragethread ^^
« Antwort #70 am: 30. April 2010, 13:51:11 »
du willst also das selbe machen, wie ich mit dem bus in 5th Maniac Birthday?
das hab ich vor kurzem mal genau beschrieben
http://www.maniac-mansion-mania.de/forum/index.php?topic=511.msg27786#msg27786

ignoriere einfach den part der sich um die ebenen des busses dreht  ;)

aber wenn du die overlays verwenden willst, musst du das myOverlay als raumvariable (also außerhalb deiner funktion) machen und dann beim repeatedly_execute ereignis des raums dann die koordinaten des overlays neu berechnen anhand des viewports oder der position des player-chars
Schlachtaman Vibrations, UHYEAH!!!
_________________________________

>>>> Ende der Kommunikation <<<<

mukk

  • kleiner Tentakel
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
    • Profil anzeigen
Re: mukks Fragethread ^^
« Antwort #71 am: 30. April 2010, 15:26:24 »
Ja, das is ziemlich genau das, was ich brauche :)

also wenn ich das richtig rauslese hast du den bus zum charakter gemacht?
Each year, vegetarians bully animals,
cheat in relationships, watch porno and cause pollution.
So join the fight now and stop the vegetarians.

Bòógieman

  • International anerkannter Superheld
  • Globaler Moderator
  • alter Tentakel
  • *****
  • Beiträge: 2667
  • Geschlecht: Männlich
  • Grün Tentakel = Running Sushi!
    • Profil anzeigen
Re: mukks Fragethread ^^
« Antwort #72 am: 30. April 2010, 15:37:36 »
jup
und je nach der richtung in die diese charakter gerade schaut, bewegt ein anderer passagier seine lippen beim sprechen ;)
Schlachtaman Vibrations, UHYEAH!!!
_________________________________

>>>> Ende der Kommunikation <<<<

mukk

  • kleiner Tentakel
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
    • Profil anzeigen
Re: mukks Fragethread ^^
« Antwort #73 am: 30. April 2010, 21:10:50 »
sehr praktisch :)

jetz hab cih bloß das problem, das das automatische scrollen nich ganz passt...kann man das irgendwie verschieben? mit setviewport geht das ja nur mit while und wait und das würde das script sören
Each year, vegetarians bully animals,
cheat in relationships, watch porno and cause pollution.
So join the fight now and stop the vegetarians.

Bòógieman

  • International anerkannter Superheld
  • Globaler Moderator
  • alter Tentakel
  • *****
  • Beiträge: 2667
  • Geschlecht: Männlich
  • Grün Tentakel = Running Sushi!
    • Profil anzeigen
Re: mukks Fragethread ^^
« Antwort #74 am: 01. Mai 2010, 14:58:02 »
achja, ich hab da nicht SayAt vewendet, sondern eine eigens geschriebene SayBackgroundAt

dazu fügt man im global script folgendes oben hinzu

Overlay* olSBA;
int iSBAWait = -1;

function SayBackgroundAt(Character *cChar, int iX, int iY, int iWidth, String strText)
{
  olSBA = Overlay.CreateTextual(iX + iWidth/2 - GetTextWidth(GetTranslation(strText), 1)/2, iY, iWidth, 1, cChar.SpeechColor, strText);
  iSBAWait = strText.Length * 5;
}

und in repeatedly_execute_always
function repeatedly_execute_always () {
...
  if(iSBAWait == 0)
  {
    olSBA.Remove();
    iSBAWait--;
  }
  else if(iSBAWait > 0)
    iSBAWait--;
}

im room script sieht das bei mir so aus (cFriends ist der bus)
...
  cFriends.Animate(0, 5, eRepeat, eNoBlock, eForwards);
  while(cFriends.x > 900)
  {
    cFriends.x -= cFriends.WalkSpeedX;
    Wait(1);
  }
  cFriends.Animate(2, 5, eRepeat, eNoBlock, eForwards);
  SayBackgroundAt(cSyd, 0, 15, 180, "Ein Hoch auf unseren Busfahrer! Busfahrer! Busfahrer! Ein Hoch auf unseren Busfahrer! Auf unseren Busfahrer ein Hoch!");
  while(cFriends.x > 300)
  {
    cFriends.x -= cFriends.WalkSpeedX;
    Wait(1);
  }
  cFriends.Animate(3, 5, eRepeat, eNoBlock, eForwards);
  SayBackgroundAt(cEdna, 0, 30, 320, "HALTET GEFÄLLIGST DIE FRESSE!                              ");
  while(cFriends.x > 270)
  {
    cFriends.x -= cFriends.WalkSpeedX;
    Wait(1);
  }
  cFriends.Animate(1, 5, eRepeat, eNoBlock, eForwards);
  while(cFriends.x > -200)
  {
    cFriends.x -= cFriends.WalkSpeedX;
    Wait(1);
  }
...

wenn es aber reicht, dass der text immer and er selben stelle kommt, geht auch SayBackground
und bevor du fragst:
cEdna und cSyd hab ich beim SayBackgroundAt nur verwendet, da diese die passende sprachfarbe haben  ;)
« Letzte Änderung: 01. Mai 2010, 15:08:13 von Bòógieman »
Schlachtaman Vibrations, UHYEAH!!!
_________________________________

>>>> Ende der Kommunikation <<<<