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 - Crimson Wizard

#13421
Oh, yes, playing with player's consciousness is a great thing. Imagine wandering the house, for example. You enter the room where you've been ten times already, and... something is different.... slightly... lights are shifted, couple of items fell from the shelf to the floor... you start wondering - does this mean something? was someone(thing) here? or it's merely a game bug? or? then you start to question yours memory... and sanity  ;D.
Uncertancy can be much more frightening than any monster.
#13422
I remember there was similar thread already on these forums... and lots of people gave interesting opinions there.

Anyway, always thought there are 2 concepts most fearful: something that is completely illogical, irrational, unexplainable, that comes from the dreams; and horror of the reality, which makes you believe that similar thing can happen to you when you expect that least.

something like that...  ::)

EDIT: Oh, damn, I realized I did not answer the question exactly, hah. Well, next time maybe ;)
#13423
#13424
Quote from: Monsieur OUXX on Tue 15/06/2010 16:43:48
This would allow to add extender functions to something else than "String"
You can already add extender functions to something else than String.


Quote from: Monsieur OUXX on Tue 15/06/2010 16:43:48
I mean an object as in "the common Object type that's in every OOP
:-\
C++ has no "common" Object type, yet it's still an OOP language.
#13425
Quote from: Xenogia on Tue 15/06/2010 01:14:17
I'm looking forward to finishing my game.. lol
Mwahahahaha.
Same here  :'(
#13426
I have a feeling that this was already discussed, but I couldn't find anything using search so far.

No, I am not suggesting anything, I am merely asking.
I know it is possible to override extender function of the base struct for child struct in AGS. But is it possible to call base struct's function variant from child's class overriding function?

BTW, AGS documentation does not mention anything on this topic (hint hint).
#13427
There's some sort of mistake in the script editor related to error message.

If you type something like
Code: ags

int [] myarray;


It will display "  '[' is already defined  ", which is a bit confusing in current context.
#13428
Well, that's my suggestion:

Code: ags

const int MAX_RESPAWNABLE_CHARACTERS = whatever;
const int CHARACTER_RESPAWN_TIME = whatever; // In ticks (1/40 sec)

struct RespawnableCharacter
{
   int Delay;
   int OriginalRoom;
   int OriginalX;
   int OriginalY;
   Character * pChar;
}

RespawnableCharacter[MAX_RESPAWNABLE_CHARACTERS];


Code: ags

// This function must be called every tick:
function UpdateRespawnableCharacters()
{
   int i;
   while (i < MAX_RESPAWNABLE_CHARACTERS)
   {
      if (RespawnableCharacter[i].pChar.Room == 0)
      {
          if (RespawnableCharacter[i].Delay == 0)
          {
             RespawnableCharacter[i].pChar.ChangeRoom(
                                 RespawnableCharacter[i].OriginalRoom,
                                 RespawnableCharacter[i].OriginalX,
                                 RespawnableCharacter[i].OriginalY);
          }
          RespawnableCharacter[i].Delay--;
      }
      i++;
   }
}


Ofcourse, you must setup all the respawnable characters at game start...... Good thing if their indexes go in sequence(s), so you can use loops to do this. In general case --
Code: ags

RespawnableCharacter[0].pChar = cMyEnemy1;
RespawnableCharacter[0].OriginalRoom = cMyEnemy1.Room;
RespawnableCharacter[0].OriginalX = cMyEnemy1.x;
RespawnableCharacter[0].OriginalY = cMyEnemy1.y;

etc etc etc

If enemies are assigned to, let's say, indexes 5 to 30, it will be like
Code: ags

int i = 5;
while (i < 31)
{
   RespawnableCharacter[0].pChar = character[i];
   RespawnableCharacter[0].OriginalRoom = character[i].Room;
   RespawnableCharacter[0].OriginalX = character[i].x;
   RespawnableCharacter[0].OriginalY = character[i].y;
   i++;
}


When character is killed, you simply do
Code: ags

RespawnableCharacter[X].Delay = CHARACTER_RESPAWN_TIME;
RespawnableCharacter[X].pChar.ChangeRoom(0);




have fun
#13429
Quote from: Trumgottist on Mon 14/06/2010 20:55:35
Quote from: Crimson Wizard on Mon 14/06/2010 20:32:41
Quote from: Trumgottist on Mon 14/06/2010 17:03:52
Quote from: Crimson Wizard on Mon 14/06/2010 15:42:51
Anian, it wasn't a question of programming, at all, it was a question of gameplay.

Yes it is,

No, it wasn't. Please don't tell me what MY question means :P

No, you misunderstand me. Sorry, I wasn't expressing myself clearly. I meant to agree with you that far. Yes, it is [a question of gameplay, and not one of programming].


Ouch. My mistake.

#13430
Well, I can add a small comment on not-imporant dialog topics... From my point of view, player is often a bit (or rather) paranoid when he feels he can miss something, like extra info about future puzzles, or possible optional endings, etc.
Such player will not want to miss anything in dialog, and since optional dialogs won't be actually containing anything useful (for solving the game), he will become annoyed.

The most rough solution here would be to visually mark non-important dialog options (like with different font colour); however, OTOH, this may be thought as spoiler.
#13431
Quote from: Trumgottist on Mon 14/06/2010 17:03:52
Quote from: Crimson Wizard on Mon 14/06/2010 15:42:51
Anian, it wasn't a question of programming, at all, it was a question of gameplay.

Yes it is,
No, it wasn't. Please don't tell me what MY question means :P

Quote from: Trumgottist on Mon 14/06/2010 17:03:52
Use a different walk animation, or play a different kind of music to let the player know that something is about to happen. Build the tension.
Well, above I was speaking about the case when you do not wish player to predict something...
#13432
Oh, sorry.
Well, I guess then something like this is correct: "AGS's pre-complier does not replace macros when they are in other macros' definitions".  ;)

But Chris Jones knows better...  :P
#13433
Quote from: anian on Mon 14/06/2010 14:58:33
Quote from: Crimson Wizard on Mon 14/06/2010 14:38:44
There's a thing that came to my mind right now. If you have a sequence in the game when something unexpected happens to main character while he's walking to the exit, you will have to cancel a skipping ability for that case. And if player used to skip exiting often, he will be warned by unusual character behavior (skipping not working).
Wouldn't like a triggered animation work? Instead of dealing with turning off, maybe make an area different than an exit, so when a player clicks or double clicks (if that's for skipping) on an exit, immediately go to an animation of slow walk towards the exit and a rock falling on his/hers head or whatever
...and now you see why I suck at programming.  ;D
Anian, it wasn't a question of programming, at all, it was a question of gameplay.
I was thinking, won't it be a spoiler for player, when he sees that character continues to walk towards the exit instead of skipping to next location?
#13434
There's a thing that came to my mind right now. If you have a sequence in the game when something unexpected happens to main character while he's walking to the exit, you will have to cancel a skipping ability for that case. And if player used to skip exiting often, he will be warned by unusual character behavior (skipping not working).
#13436
Try to find it either in windows Programs menu. If you installed it as a part of some codecs pack (like K-Lite), search for K-Lite folder.

There should be a shortcut "Vide decoder configuration".
If you can't find it, it runs following command, which, I believe, you can simply copy to command line and execute:
Code: ags
C:\Windows\System32\rundll32.exe ffdshow.ax,configure


When config window is displayed, select "DirectShow" on the leftmost list.
There will be option to the right, like "Do not use ffdshow in:". Put a check there, and add your game's executable name to the list.

#13437
Ah. Right, I remember problem with ffdshow when playing "Marionette".
If it is installed, you may simply toggle it of at all, or specifically for this game.
#13438
Quote from: Joe Carl on Sun 13/06/2010 22:38:21
I think it doesn't in C++ either, since B is just replaced by A but that A is not replaced at all since it's treated as a variable name.
No, that's incorrect.
The "defined" macro is being literally replaced by its value BEFORE actual compilation. Thus, in C/C++ it will work.

EDIT: Huh, I realized I explained not very clear.
What I mean is that if you have
Code: ags

#define A 1
#define B A

in C/C++, then, at first, all A instances will be replaced, and it will become like this
Code: ags

#define A 1
#define B 1

- in "temporary" code.
#13439
Example:

Code: ags

#define A 1
#define B A

int a[A];
int b[B];

function F()
{
   int aa = A;
   int bb = B;
}


Compiler will show 2 errors -
1) on line "int b[ B ];" error is "Array size must be constant value"
2) on line "int bb = B;" error is "undefined symbol 'A'"

#13440
Hey, adm244 :) nice to see you.

Does the path to game have cyrillic characters?
Does this game run well on any other computer/OS?
SMF spam blocked by CleanTalk