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 - fernewelten

#141
Hall (still b/w).
This might become a "map" type of room, in first-person perspective where the doors are clickable and move Ego to the respective room.
#142
(Prospective) groom's bedroom

#143
So here's a (more or less unwilling) groom.

If only this process wasn't that slow! I wish I could get faster at this.

#144
Quote from: fernewelten on Mon 05/07/2021 23:57:10
I think I might call her Lady Anemone. What do you think of her?

Meet Larry and Randy, Lady Anemone's shoes:
#145
Quote from: Mandle on Mon 05/07/2021 12:13:08
Awwww... no Bride Of Frankenstein in the images?

Would this lady do? I think I might call her Lady Anemone. What do you think of her?



#146
Quote from: Stupot on Sun 04/07/2021 20:46:23
Anyone else in?

I might be in. At the moment, I'm treating the jam motto as an exercise for asset drawing practice. I might join if I can come up with decent puzzles.
#147
Quote from: Baguettator on Tue 29/06/2021 17:14:06
What is "map width" ?

The highest value that your X coordinate can take, plus 1.

You say that you are working on a map. So each cell will have an X coordinate and a Y coordinate.
Let's say X coordinates run from 0 to (width - 1) (so that there are exactly 'width' coordinates)
and Y coordinates run from 0 to (height - 1) (so that there are exactly 'height' coordinates).

Let's make a specific example with five columns and four rows: So width is 5 and height is 4.
Let's give each cell (x, y) an index number: index_number(x, y) = y * width   x, as in the following picture



   X    0     1     2     3     4
Y      ----------------------
0     | 0     1     2     3     4
1     | 5     6     7     8     9
2     |10   11    12    13    14
3     |15    16    17    18    19


As you can see, if an index number a is smaller than an index number b, then either the cell corresponding to a has a lower row than the cell corresponding to b, or both cells are on the same row and the cell corresponding to a has a lower column than the cell corresponding to b.

For instance 1 < 10; the cell (x == 1, y == 0) corresponds to 1 and the cell (x == 0, y == 2) corresponds to 10.
(x == 1, y == 0)  has a lower row than (x == 0, y == 2)

For instance 1 < 2; the cell (x == 1, y == 0) corresponds to 1 and the cell (x == 0, y == 2) corresponds to 2.
(x == 1, y == 0) is on the same row as (x == 2, y == 0) and (x == 1, y == 0) has a lower column than (x == 2, y == 0).

We want to order a list of cells in such a way that the cells with lower rows or (equal rows and lower colums) come before the higher rows or (equal rows and higher columns).
So if we have two cells (x1, y1) and (x2, y2) where (x1, y1) is earlier in the list than (x2, y2) but the index number of (x1, y1) is higher than the index number of (x2, y2), then the cells are out of order.

Here's a simplified high-level overview of Khris' algo:

Line 7: The variable i shall run through all the positions of the list...
Line 8: The variable j shall run through all the positions of the list that come later than i ...
Line 9: if the cells in position i and j are out of order ...
Line 10 to 18: ... then swap their contents.

HTH


#148
So the following ended up on the AGS github site:

QuoteProbably terrible place to report this, but there are no contact webmaster links on the site, registering on forums requires completing AGS programming quizzes, and I dont have a discord account.

https://www.adventuregamestudio.co.uk website has this gem:

Code: ags
<img src="/images/facebook_logo.svg" onerror="this.src='/images/facebook_logo.png'" height="29" alt="Facebook logo">


When one of >10 million people with uBlockOrigin and "Fanboy’s Annoyance" filter visits one of its rules filters:

Code: ags
/facebook_logo.


this triggers an image load error, so executes 'onerror' and ..... you get the picture, 100% CPU utilization and constantly growing ram usage until tab crashes and is reloaded.

I'm just passing the message; I haven't verified any of verified this.

If unregistered viewers can't reach or easily find the the way to reach the webmaster, then this might pose a worse problem than in the current case. For instance, suppose a hacker has found a way to turn the website into a spam spout or virus infector and those that try to report this speedily are thwarted by questionnaires.
#149
By the way, AFAIK, you may include double quotes in strings -- if you put a backslash right in front.
Code: ags
cMainframe.SayAtBubble(mainframe_talk_x,mainframe_talk_y,"&36 Hahahahahahahaha! Oh yes -- *\"Doctor\"* Braun. What was it he was a doctor of? Dog-ology or something?");
#150
I've been able to replicate the error message with the dialogue,
Code: ags
// Dialog script file
@S  // Dialog startup entry point
return
@1
    int j = '55';
return


as well as with the line
Code: ags

    int j = '';


But I wonder why the compiler can't pinpoint the error. Because if you put "int j = Holzschuh;" instead of "int j = '';", then the compiler will point out the exact dialogue and exact line and complain about an undefined symbol. So the compiler (specifically, the scanner part of it) might have a bug when processing the new section directives.
#151
Quote from: Crimson Wizard on Sun 20/06/2021 19:07:29
But should not it be "i2 == i1" in the condition?

I found that trick a long time ago in some program, copied and learned it, and have never given it much thought since. But come to think of it, "i2 >= i1" should be correct:

Assume that i1 turns out to be 1. So i2 must be randomly chosen from 0, 2, 3. But the second random number generator chooses from 0, 1, 2. So the random number generator's 1 must become 2 and the random number generator's 2 must become 3.
#152
If the only thing you need really is two distinct integers in the range from 0 to 3, then the shortest would probably be:
Code: ags

int i1 = Random(3);
int i2 = Random(2);
if (i2 >= i1)
    i2++ ;


As far as I can determine, that would make each pair equally likely to be drawn (if the sequence is immaterial and the random number generator is good).

If you need to convert these integers to Strings, then the pain is in initializing the structure that holds the data. This needs to be done element by element. For this purpose, arrays are as good as any IMO, so one way to continue the code from above would be:
Code: ags

String col_array[4];
col_array[0] = "Red";
col_array[1] = "Green";
col_array[2] = "Blue";
col_array[3] = "Yellow";
String colour1 = col_array[i1];
String colour2 = col_array[i2]; 


That's completely untested code. :-[ Feel free to fix any and all bugs that you might find.  :P

Just my 2 cents

PS. eric0o's suggestion is sound to move colour1 and colour2 into a Set for further handling.
#153
Quote from: LimpingFish on Sun 20/06/2021 02:57:06
I hate, really hate, OS upgrades.

Well, I hate, hate, hate ads in my work environment and go to great lengths to ban them with all my might.

I. do. not. want. to be interrupted and distracted by off-topic non-issues when I'm busy concentrating. Even less so when they are even noisy or flickering or moving, which is usually the case nowadays. The one reason that I am still resisting to use smartphones, even in 2021, is that they make it so impossible to stay away from advertising in that universe. Aaargh!
#154
Quote from: heltenjon on Sat 19/06/2021 22:02:04
The official voting is over, and some games were placed too high and some too low, as usual.  ;)

For those interested: The following is the list of games that ranked #1 to #5 in at least one voting category.
Spoiler
[close]
#155
They told us that Windows 10 would be the last edition to be released; after that, it would simply be updated and upgraded forever and ever.

I found that claim hard to believe at that time, and ... well, I suppose ...

Now, I might be wrong _this_ time, but what I foresee is that this so-called "Windows 11" will still be 90 % to 95 % "Windows 10" under the hood, only with some fresh visual sugar sprinkled on top. But this time, with mandatory Microsoft accounts so that they can de-anonymize and track their users the better, and sooner or later with mandatory ads right on the screen real estate.
#156
AGS Engine & Editor Releases / Re: AGS 3.5.1
Fri 18/06/2021 13:45:58
That was kind of my point. "Render sprites in screen resolution" turned OFF means extra blocky sprites, i.e., the game coder or player explicitly specifies that the sprites should be rendered in low resolution even when a better resolution was achievable. If that's the design decision, then the game players are not very likely to choose "Linear filtering" to go with that.

Here's the explanation from the 3.5.0 cockpit (that option would be turned OFF):
Quote
Render sprites at screen resolution
When drawing zoomed character and object sprites, AGS will take advantage of higher runtime resolution to give scaled images more detail than it would be possible if the game was displayed in its native resolution. […] Currently supported only by Direct3D and OpenGL renderers.

#157
AGS Engine & Editor Releases / Re: AGS 3.5.1
Fri 18/06/2021 12:31:19
Quote from: Crimson Wizard on Fri 18/06/2021 02:28:58
OpenGL renderer does not perform linear filtering properly unless "Render sprites in screen resolution" is enabled. […]
Why no one reported this before though?...

Most probably, nobody whatsoever has been using that feature â€" or playing games that use that feature on a recent Engine â€" for the last few years.

  • If it's a historic game, it will come bundled with its own, proper engine which will be ancient and lack OpenGL.
  • If it's a modern game, you'd need a low-resolution loving game coder that likes their sprites to look more blocky than they need to be, paired with players that bet on the OpenGL renderer and filtering. This combination doesn't seem all that likely.
#158
Quote from: heltenjon on Sat 12/06/2021 16:44:03
Is anyone else playing anything?

So here's my list:

  • The misadventures of Jeffrey Jetsam:
    This fairly short game shines by its British humour.
    Graphics were fine.
    The music fits the situation and is unobtrusive.
    I didn't find the tasks for the player too hard: to the contrary, I solved one of the puzzles before I found out what the problem was. 
  • A weekend at Villa Apate:
    Recommendable.
    A very long game with good puzzles.
    I like the proposition of being able to "rewrite" the past.
    There were some glitches where I got into situations that I wasn't supposed to see yet which prevented me finishing later on. For instance,
    Spoiler
    quite early on I was in the foyer, the staff wasn't there but I was able to talk to them. I went into the back room  and activated the device therein. I was treated to a cutscene of characters I hadn't even met yet, and later on, I didn't have a chance to redo this when I was supposed to.
    [close]
  • Thinker
    Can't say anything to that, for obvious reasons.
  • Coffin valley:
    A game with middling play length.
    The graphics had atmosphere but were too blocky for my taste. The font used for dialogues was too small.
    The music fit the atmosphere, but was a bit too intrusive for my taste.
    I did a lot of actions because I could, reasoning that thus I was supposed to do them -- without knowing why I was supposed to do them. For instance,
    Spoiler
    I'm in a shop and I've got three pence, so I suppose I'm meant to buy the only article to be had for three pence. Why? Don't know yet. Do it anyway.
    [close]
    The characters were rather cliché, which might be a tribute to the genre (Western).
  • Breakfast on Trappist-1
    A visual novel with lots of atmosphere.
    Recommendable.
    Graphics were first-class: game screens as well as GUI graphics.
    Music fit the situation.
    Story was engaging; characters distinct and memorable.
  • The creator is mean 2
    Recommendable.
    I like the proposition of characters being trapped in the screen of an operating system.
    Graphics were fine.
    Music was unobtrusive, not memorable.
    Puzzles were on the easy side.
  • Long in the tooth
    More of a demo than a game, but still complete.
    Graphics are outstanding. Several remarkable, well-executed animations.
    Music unobtrusive, fitting the situation.
    Story line: Oh well. An exhortation to floss your teeth.
#159
So, more than fourteen months after my last post in this thread, above, I still don't know squat about C#.

But I have somehow been able to turn up the sources of that plugin somewhere, and by mindlessly copying hints from the Internet in pure dumb-Stackoverflow-zombie fashion, I managed to turn some wheels that I didn't understand and get the darn thing to recompile.

I haven't modified the sources at all, but my Visual Studio 2017 insisted on updating something before it was willing to even open the solution. After that, I don't really know just what configuration changes were causal to make it compilable again.

I tested it in version 3.5.1, and it seems to work okay.

So, if there is anyone else that is interested in that nifty plugin, it's currently here: https://www.loquimur-online.de/ags/Modules/Notes/AGS.Plugin.Notes.dll.
Put it into the folder where AGS is installed, and a "Notes" entry should appear in the project tree. Right-click on that entry to create notes.

Cheers!
#160
You can declare a global variable, by putting "Weapon sword;" outside of any functions. But the rest of the lines that you quoted need to go within the body of some function.

So let's say you create an event handler that is called whenever the player enters the room after fade-in. (How:
- In the "Explorer" pane tree, navigate to your room, 
- doubleclick "Edit room",
- in the first field of the "Properties" pane below the "Explorer" pane, select "[Your room name] (Room; Number [number of your room]",
- hit the Flash icon of the "Properties" pane,
- put the cursor in the field that is to the right of "Enters room after fade-in",
- click on the "..." icon on the right-hand side.)

You'll find a stub in your room editor window:
Code: ags

function room_AfterFadeIn()
{

}


Now you can complete that stub as follows:
Code: ags

Weapon sword;
function room_AfterFadeIn()
{
    sword.damage = 10;
    sword.price = 50;
    sword.name = "Fine sword";
}


Now, whenever the player enters the room and the room has faded in, then the function "room_AfterFadeIn" will be called and so the fields of your variable "sword" will be set to values that you assign.
SMF spam blocked by CleanTalk