Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Loslem

#2
Hi guys! Thanks for the replies :)
I have to admit, the first Track somehow spiraled out of control, I kind of like the idea to make something rise up with that much noise, but over 3 minutes might be to long xD
Also the second track isn't mixed very well, I have to admit. As I said, all that stuff just collected itself over a year.

But I'm really glad that you said "it sounds like game music", that's what it's about :)

I might update the first post when I got something new.
#3
Hey guys,

okay, long story short, I've been tinkering with FL Studio for some time now and I'd love to show some tracks I composed over the course of a year or so.
Be warned, they use a lot of reverb and delay, as mainly I was trying to work on an underwater theme. Critic welcome, there's always room to improve :)

https://soundcloud.com/andy-wa-242100310/sets/game-music-with-a-lot-of-reverb

Edit: I'll continue adding tracks too the list.

Also: if you hear a track and think "maybe i could use this for a scenario" hit me up
#4
So, there were a lot of changes.
First we moved to the northern coast of Germany. So, the ocean is 10 minutes away. Jay for that. Then I started a new Job. Then I quit that job, because it sucked. But then I started a vocational training as software developer. That's the best change, I was only able to start this, because AGS taught me the basics of programming. Well and some small stuff, started drawing again with a pen display, realise my side acroller project was going nowhere, so I quit that. Started to look into new software, made better music, and continued an older project, after realizing that doing all alone might not be the best way for every project.
So, there happened a lot, in the end it will turn out fine :)
#5
Hi Matti,

Thank you so much, as it always is without feedback one struggles to go on. I agree that I have to fine tune the level design in terms of hints and so on.
Thanks for your feedback!

Spoiler
There are two Chests in the same room where you get the key. Try the key on them :)
[close]
#6



Hi Guys, here's something I'm currently working on.

Abyss Inc will be a mystery platformer, with puzzle elements.


You just regained consciousness but can't recall who or where you are.
Set out to explore what has happened to you in this deserted research facility underwater. It's your desire to regain knowledge of your past. For this you will have to gather clues and materials shining some light on your environment.
At this state you will be indoors, it's planned to have exploration areas outside on the bottom of the sea.

As a devleoper I'm just at the beginning. Now I have this stable demo and I need feedback to know if it's going in the right direction - and also to gather new ideas or recommendations to improve the experience.



Get it via GameJolt:

https://gamejolt.com/games/abyssinc/404160


Update: Kumpel found a game-crashing bug, a GUI wasn't confirmable so you would get stuck if it popped up. Fixed now, new build uploaded.
Screenshots and game footage:













STATUS:
- graphics 20%
- puzzles 20%
- scripting 40%
- music/sound 20%



#7
Mmmh, seems like this problem never was solved, I'd also be interested in having the character automatically walk up slopes...

I searched around and found an old thread, there once was a competition:

http://www.adventuregamestudio.co.uk/forums/index.php?topic=25649.msg325786#msg325786

Kweepa wrote he implemented sliding of slopes. But of course these data seems to be looong gone.
#8
Hi it's me again, back to bother you! :D

Say: It's super convienient to set Door Hotspots with the extension >o, so that right click right opens them. Problem: if you click right again you always get the door string for the open door.
Is there a way to implement that the door is closed again with a right click?

EDIT: Sorry I found it on site 14 of your Verbs Manual. Good write!
#9
Hey OUXX :)

You stated it would be easy to mirror more characters...
What would one have to do, to make that work?
#10
EDIT: Doors work now! I'am so happy!

Thanks! I'll try this evening and let you know :)
Oh, I also had another bug regarding the safe-system. I have to recreate it in the evening because I'm at work now, but I would describe it like this:
If I open the Menu via the GUI Button I can safe and load without problem. But If I open the Menu via F5 and safe I get an error. As I said I have to recreate it, but I recall it pointed to the part of the script where you added a comment saying "workaround for taking a screenshot without the menu-gui".

I tried with both compiled game and the testeun with AGS open.


EDIT: The Error Reads "Error running function 'repeatedly_excecute'": Error: Null String referenced

and it refers to the line 402 of the optiongui.asc

Code: ags

if (save_scheduled) {
    SaveGameSlot(saveSlotId, saveSlotString);
    saveSlotId = 0;
    saveSlotString = "";       
    save_scheduled = false;
  }
#11
Hi Abstauber!

First of all, love the new Verbs, great design.

I'm having some trouble with the doors. I set up the doors as I learned and the Anyclick works. Problem is this: in my new game I will have more than one playable characters, the user can switch anytime he wants. So, what I want to get working is this: If a Character on one side of a door opens the doors(but steps not trough it), then it should also be open in the next room, even if an other characzer approaches it from the other side, right?
I put the Getdoorstate in room_load on both sides, trying to always update the door state. Ot works for going trough the door, but it doesn't change the corrsponding object. Hence:
You will step trough an open bit displayed closed, door.
Well this is how I set doors up:

Code: ags

Room_First_Load {  
//Set up a doors with ID 20 and set it to unlocked but closed

Doors.Initobject (20, oDoor.ID);
 Doors.Setdoorstate (20, 0);
}

Room_Load{
 //check if door is closed or open
Doors.Getdoorstate (20);
}


Code: ags

Room_First_Load {  
//Set up a doors with ID 20 and set it to open

Doors.Initobject (20, oDoor.ID);
 Doors.Setdoorstate (20, 1);
}


Room_Load{
 //check if door is closed or open
Doors.Getdoorstate (20);
}
#12
I think it should be included in the collection of Modules that Dualnames once posted.
Thread:
http://www.adventuregamestudio.co.uk/forums/index.php?topic=41360.msg577567#msg577567

Module Pack:
http://www.maniac-mansion-mania.de/downloads/AGS/MODULES.rar
#13
Quote from: Snarky on Mon 19/02/2018 22:31:04
SayBubble() doesn't support inline text-replacement using tokens like %s. This is an AGS limitation. What you'll have to do is to use String.Format() to insert those arguments, like so:

Code: ags
player.SayBubble(String.Format("Nice %s", locationname));



Thanks so much! I would habe never figured that out!
#14
Hi! It's mee again, still finfing and not understanding Errors while using the Module with the Tumbleweeds-Template (Hooray for me!)

Okay, so you all know that there are these Unhandled Events in the Template. Looks like this:

Code: ags

 // unhandled LOOK AT  
    else if (Verbs.UsedAction(eGA_LookAt)) {
      // look at hotspots, objects etc.
      if (type!=2) player.Say("Nice %s", locationname);
      // look at characters
      else player.Say("It's %s",locationname); 
    }


So, I tried to alter that to this:

Code: ags

    // unhandled LOOK AT  
    else if (Verbs.UsedAction(eGA_LookAt)) {
      // look at hotspots, objects etc.
      if (type!=2) player.SayBubble("Nice %s", locationname);
      // look at characters
      else player.Say("It's %s",locationname); 
    }


I get this Error for the change:
verbgui.asc(1600): Error (line 1600): Type mismatch: cannot convert 'String' to 'GUI'

It works for Uhandled events that dont Mention the Thing you clicked at

Code: ags

if (door_script == 1) player.SayBubble("It is already open."); 
 // THIS WILL WORK
 else if (type ==2) player.SayBubble("%s would not like it.",locationname);
 // THIS WON'T


You think there's a solution for this?

Thanks for reading,

Loslem
#15
Sometimes I'm embarrassed by my problems :D
Thanks Wizard!
#16
Hiho!

Okay I ran into another issue,

if one uses the Tumbleweed-Template(9-Verb GUI), you have to assign the Unhandled messages for all Verbs that aren't important for the hotspot e.g.

These are defined in the verbgui.asc.
I copied the chunk of code for the unhandled USE command (I altered one of the say commands, the other remained the same)

Code: ags
  if (AGSCursorMode != eModeUsermode2 && type != 0) {
    if (type==2 || type==6) player.FaceCharacter(character[location_id], eBlock);

    // unhandled USE
    if (Verbs.UsedAction(eGA_Use)) {
      // use inv on inv
      if (type >= 5) player.Say("That won't do any good.");
      // use
      else player.SayBubble("I can't use that.");
    }


This is the Error I get:
verbgui.asc(1594): Error (line 1594): '.SayBubble' is not a public member of 'Character'. Are you sure you spelt it correctly (remember, capital letters are important)?

Any way to solve this? I don't know if it's interesting for anyone using the Verbs-GUI...

thanks in advance,

Loslem
#17
Completed Game Announcements / Re: I Want Out!
Tue 19/12/2017 05:17:59
That looks awesome. Will definitely try this once I find time :)
#18
Ah right it workes! I tried putting the commands in the dialog before and I got an error, but that was because I used the Hologram character from the template, and it had no Talking view. Error was "SetCharacterView: invalid view number (You said 0, max is 10)"

So, Characters seem to need to have a talking view assigned. I don't know if that is of any help :)
#19
Really like that Module!

What would I have to do to make it wqork in the Tumbleweed Dialogues?

Greetings

Loslem
#20
Okay... lets go for some necroposting (Hey I kind of asked)

Long story short: has anybody ever gotten this module to work with scrolling rooms?

If I have a scrolling room, aand I enable the magnifier - The picture behind the magnifier (which I think is the dynamic sprite from the background) will only show magnified whats in the first picture of the room, regarding my room resolution. So put simple: I walk right, the room scrolls, the magnifier acts as if the room would not scroll.
I know it's asked way to much of you to go trough all the Modules Code, if you don't have time/mood it's okay.

Here the vode basically

Code: ags


void Update(this MagnifierType*) {
  if ((this.AGSGUI == null) || (this.Sprite <= 0)) {
    this.Enabled = false;
    return;
  }
  if (this.prevenabled != this.Enabled) { // toggle on/off
    if ((this.HideMouseCursor) || (this.prevhidemouse)) {
      if (this.Enabled) this.HideCursor();
      else this.ShowCursor();
    }
  }
  else if ((this.prevhidemouse != this.HideMouseCursor) && (this.Enabled)) {
    if (this.HideMouseCursor) this.HideCursor();
    else this.ShowCursor();
  }
  this.prevhidemouse = this.HideMouseCursor;
  if (this.ScaleFactor <= 0.0) this.ScaleFactor = 0.1;
  this.prevenabled = this.Enabled;
  this.AGSGUI.Visible = false;
  if (!this.Enabled) return;
  this.AGSGUI.BackgroundGraphic = 0;
  this.X = mouse.x;
  this.Y = mouse.y;
  if ((this.X + this.XOffset) < 0) this.AGSGUI.X = 0;
  else if ((this.X + this.XOffset) >= System.ViewportWidth) this.AGSGUI.X = (System.ViewportWidth - 1);
  else this.AGSGUI.X = (this.X + this.XOffset);
  if ((this.Y + this.YOffset) < 0) this.AGSGUI.Y = 0;
  else if ((this.Y + this.YOffset) >= System.ViewportHeight) this.AGSGUI.Y = (System.ViewportHeight - 1);
  else this.AGSGUI.Y = (this.Y + this.YOffset);
  DynamicSprite *sprite = DynamicSprite.CreateFromExistingSprite(this.Sprite, false);
  int x = (FloatToInt(IntToFloat(this.X) * this.ScaleFactor) + this.XOffset);
  int y = (FloatToInt(IntToFloat(this.Y) * this.ScaleFactor) + this.YOffset);
  sprite.ChangeCanvasSize(FloatToInt(IntToFloat(System.ViewportWidth) * this.ScaleFactor), FloatToInt(IntToFloat(System.ViewportHeight) * this.ScaleFactor), x, y);
  this.BackgroundSprite = DynamicSprite.CreateFromBackground();
  DrawingSurface *surface = this.BackgroundSprite.GetDrawingSurface();
  int i = 0;
  while ((i < Game.CharacterCount) || (i < Room.ObjectCount)) {
    if (i < Game.CharacterCount) {
      if (character[i].Room == player.Room) {
        ViewFrame *frame = Game.GetViewFrame(player.View, player.Loop, player.Frame);
        int w = ((Game.SpriteWidth[frame.Graphic] * character[i].Scaling) / 100);
        int h = ((Game.SpriteHeight[frame.Graphic] * character[i].Scaling) / 100);
        surface.DrawImage(character[i].x - (w / 2), character[i].y - h, frame.Graphic, 0, w, h);
      }
    }
    if (i < Room.ObjectCount) {
      if (object[i].Visible) {
        int graphic = object[i].Graphic;
        if (object[i].View) {
          ViewFrame *frame = Game.GetViewFrame(object[i].View, object[i].Loop, object[i].Frame);
          graphic = frame.Graphic;
        }
        int w = Game.SpriteWidth[graphic];
        int h = Game.SpriteHeight[graphic];
        if (!object[i].IgnoreScaling) {
          int scale = GetScalingAt(object[i].X, object[i].Y);
          w = ((w * scale) / 100);
          h = ((h * scale) / 100);
        }
        surface.DrawImage(object[i].X, object[i].Y - Game.SpriteHeight[graphic], graphic);
      }
    }
    i++;
  }
  surface.Release();
  this.BackgroundSprite.Resize(FloatToInt(IntToFloat(this.BackgroundSprite.Width) * this.ScaleFactor), FloatToInt(IntToFloat(this.BackgroundSprite.Height) * this.ScaleFactor));
  sprite.ChangeCanvasSize(this.BackgroundSprite.Width, this.BackgroundSprite.Height, 0, 0);
  this.BackgroundSprite.CopyTransparencyMask(sprite.Graphic);
  int w = Game.SpriteWidth[this.Sprite];
  int h = Game.SpriteHeight[this.Sprite];
  int ww = this.BackgroundSprite.Width;
  int hh = this.BackgroundSprite.Height;
  if ((ww > w) && (hh > h)) this.BackgroundSprite.Crop(x, y, w, h);
  else if (ww > w) {
    this.BackgroundSprite.Crop(x, 0, w, hh);
    if (hh < h) this.BackgroundSprite.ChangeCanvasSize(w, h, 0, (h - hh) / 2);
  }
  else if (hh > h) {
    this.BackgroundSprite.Crop(0, y, ww, h);
    if (ww < w) this.BackgroundSprite.ChangeCanvasSize(w, h, (w - ww) / 2, 0);
  }
  else this.BackgroundSprite.ChangeCanvasSize(w, h, (w - ww) / 2, (h - hh) / 2);
  if ((ww <= w) || (hh <= h)) {
    sprite = this.BackgroundSprite;
    this.BackgroundSprite = DynamicSprite.Create(w, h, false);
    surface = this.BackgroundSprite.GetDrawingSurface();
    surface.Clear(0);
    surface.DrawImage(0, 0, sprite.Graphic);
    surface.Release();
  }
  surface = this.BackgroundSprite.GetDrawingSurface();
  if (this.ScaleFactor < 1.0) {
    surface.DrawingColor = 0;
    int xm = FloatToInt(IntToFloat(System.ViewportWidth) * this.ScaleFactor);
    int xx = (x + w);
    if (x < 0) surface.DrawRectangle(0, 0, -x, surface.Height);
    if (xx >= xm) surface.DrawRectangle(xm - x, 0, xx - x, surface.Height);
    int ym = FloatToInt(IntToFloat(System.ViewportHeight) * this.ScaleFactor);
    int yy = (y + h);
    if (y < 0) surface.DrawRectangle(0, 0, surface.Width, -y);
    if (yy >= ym) surface.DrawRectangle(0, ym - y, surface.Width, yy - y);
    if ((x < 0) || (y < 0) || (xx >= xm) || (yy >= ym)) {
      surface.Release();
      sprite = DynamicSprite.CreateFromExistingSprite(this.Sprite, false);
      this.BackgroundSprite.CopyTransparencyMask(sprite.Graphic);
      surface = this.BackgroundSprite.GetDrawingSurface();
    }
  }
  surface.DrawImage(0, 0, this.Sprite);
  surface.Release();
  x = (this.X + this.XOffset);
  y = (this.Y + this.YOffset);
  int xx = (x + w);
  int yy = (y + h);
  if ((xx <= 0) || (yy <= 0) || (x >= System.ViewportWidth) || (y >= System.ViewportHeight)) {
    this.BackgroundSprite = null;
    this.AGSGUI.BackgroundGraphic = 0;
    this.AGSGUI.Width = 1;
    this.AGSGUI.Height = 1;
  }
  else {
    if ((x < 0) && (y < 0)) this.BackgroundSprite.Crop(-x, -y, this.BackgroundSprite.Width + x, this.BackgroundSprite.Height + y);
    else if (x < 0) this.BackgroundSprite.Crop(-x, 0, this.BackgroundSprite.Width + x, this.BackgroundSprite.Height);
    else if (y < 0) this.BackgroundSprite.Crop(0, -y, this.BackgroundSprite.Width, this.BackgroundSprite.Height + y);
    this.AGSGUI.BackgroundGraphic = this.BackgroundSprite.Graphic;
    this.AGSGUI.Width = this.BackgroundSprite.Width;
    this.AGSGUI.Height = this.BackgroundSprite.Height;
  }
  this.AGSGUI.Visible = true;
}
 

SMF spam blocked by CleanTalk