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

#1701
I haven't used it but there is the SetGUITransparency() function in V2.62.  In the upcomming V2.7 version the function is replaced with the property GUI.Transparency.

I don't know if or how this works with a text GUI.  Rui's LSL7 template overlays a GUI with an invisible background over a GUI that has a translucent/transparent GUI to achieve something similar.  I think there was something done in V2.7 to make using two separate GUI's unnecessary but I am not sure. 

#1702
Quote...  implement arrays of pointers, I'll look into it.
As Homer Simpson would say "Ummmmm, arrays of pointers...".

Quote... SaveCursorUntilTheMouseMovesOverADifferentObjectHotspotOrCharacterOrLeavesInventoryItemsGUI()
Hehe, That would make a swell easter egg to lay on some noob asking for advice. :=
#1703
Quote
Or maybe SaveCursorUntilLeaveArea ...
How about something like SaveCursorUntilPositionChange or SaveCursorUntilDeltaXY
#1705
Reminds me of a movie called "Flesh Gordon" a spoof of the clasic sci-fi "Flash Gordon" series of the 1930s.   Flesh (or Flash) was on a plane when the sex ray hit.  Everyone, including the pilots, got horny and couldn't help from having sex.   The plane started going down because there was nobody at the controls.   Flesh, being the hero and all was able to overcome his and his girl's urges and parachuted himself and his girl to saftey before the plane crashed. 

When they landed  they encountered Dr. Zharcov (can't remeber the exact name) who was in terrible shape.  His clothes were torn, he looked like he had a hangover from hell and was in a war zone.  They asked what had happened to him and he said ....

Spoiler

"I was all alone when the sex ray hit ...". 
[close]
;D
#1706
Quote
... If the record labels don't get on board with this mp3 thing ...
IMHO, the problem is that record companies own the means of production and distribution of physical media.   For a long time the intellectual property and the physical media were pretty much inseparable and so for a long time the distiction between the two has been blurred.   It is to the advantage of record companies to continue pretending that both are one and the same.   

What really scares the hell out of record companies, is that the thing they do is quickly becomming obsolete.   In a future where music is no longer distributed on physical media the only role left for a record company is artist promotion.  But you don't need a huge corporation for that; you only need an individual(s) who is a good marketeer.   I think movie actors and professional athletes do pretty well with just an agent, attorney, accountant, and etc.   

IMHO, DRM isn't really about protecting artists' IP rights, it's about protecting obsolete companies who have no role in a digital future.    DRM in it's current form denies consumers their "fair use rights under copyright law".    Let's say for example you purchase a copyrighted book.  You can read the book whenever and where-ever  you like.  You let some else borrow your book and they can read it where-ever and whenever they like.  You can make copies of the book, as long as only one person reads the book (including any copies) at any one time.   These are your fair use rights and it's legal to do these things. 

DRM seeks to prevent you from loaning your content to someone else, control when, where, and on what devices you can access the content you have purchased.    The complaints in the previous posts are the result of DRM interfering with "fair use" of the content.    Here are a couple examples of what I mean.

  • Encrypted DVDs - A guy in the EU had a number of movies on DVD which he wanted to watch on his Linux laptop.  There weren't any DVD players for Linux because DVDs are encrypted and the folks who manage the encryption keys will only give out keys (or whatever info is necessary) if you pay a lot-o-money and promise not to tell anyone.   This EU guy didn't have a lot-o-money to give away so he figured it out how to do it himself and he wrote an open source DVD player and got promptly sued for violatoing copyright laws.  He won in his home country by aserting his fair use rights.  Since he owned the content he was allowed to use any method he wished to access it.   Another case was subsequently brought in California (where there is a huge movie industry influence) but I can't remember the outcome.   I think some websites had to take down their publication of the decryption algorithm the EU guy created and that was the genisis of a popular T-shirt with the forbidden algorithm printed on the back.

  • XP Activation - It's my understanding that you can only make so many hardware changes (i.e. upgrades) before having to call MS and get permission.  It also prevents you from installing the OS on one machine then at some point unintsatling it and installing it on another machine.   I will not have XP sorry.

    DRM has been tried before; it used to be called copy protection.  Lotus 1-2-3 had somthing like 80-90% of the speadsheet market at one point.  They put copy protection on their disks.  People hated it and a year later copy protection was dropped but not before losing  market share to their competitors.

    Compare that to Turbo Pascal.  When it was first introduced it sold for $50 while other (any other) compilers sold for many thousands of dollars.  Urban legend has it that the founders were told "You have to sell it for a higher price to make up for losses due to illegal copying...".  They said "Good!  We hope people will copy it and when they see how good it is they will pay us $50 just to get a bound manual instead of a lousy photo-copy".  And that's pretty much what happened.

    So I say down with DRM!!!!




#1707
Quote
Yes, please do continue to review things like this.  If you disagree with my reasoning above for leaving things as they are, feel free to say so.
Thanks for your confidence.  Regrading Character/Object differences your explanation sounds reasonable to me.   I think it's one of those things where there just isn't any one right way of doing things. 

For what it's worth, in my world view objects and characters are pretty much the same thing.  One has global scope and the other has scope within a specific room.    I suspect that other people have other points of view.  ;)  It seems to me that the new OO script language, at some future point, could take advantage of these similarities by having each inheirit functionality from a common parent, etc, etc...   Ok, I'm getting way beyond the scope of this thread, so I'll leave this discussion for another day.  Well it's food for thought anyway (or at least junk food).

  :=  Cheers
#1708
Quote
And I thoguht we had something special!
I you didn't care ... you wouldn't be so hard on me  ::)
#1709
Quote from: SSH on Thu 13/01/2005 10:24:00
I'm a little unsure as to string handling now (and in the past, too). For example:
SSH, I think you would do it like this:   
Code: ags

    string name;
    InventoryItem *ii = GetInvAtLocation (mouse.x, mouse.y);
    if (ii != null)  ii.GetName(name));
    else StrCopy (name, "");


Probably you have ben spending too much time at the Blue Oyster  ;)
#1710
Quote
I don't know, but this inconstency thing didn't annoy me.
That's fine, I'm not really annoyed either because I am aware of the differences and am capable of dealing with them.  On the other hand we have been kindly asked to review and comment on V2.7 before everything is cast in stone and difficult to change.   If the "inconsistencies" I have noted are intentional then fine I have no problem with that,  if not then I thought someone may appreciate them being pointed out. 

Quote
I think one reason for using a function to change the character's view is because
it's for changing the currently displayed view ...
It is my understanding that setting properties of native objects does in fact invoke handler functions.  Clearly if there were a problem setting a view property while the view is in use then the problem would eventually occur regardless of how infrequently the view was used or changed. 
#1711
I've noticed some inconsistency in the way object and character views are set as follows:   

  • Character walking/normal view is set using ChangeView function (i.e. cEgo.ChangeView(7)). 

  • Other character views are set using properties (i.e. cEgo.ThinkView = 7)).

  • Object views are set using SetView function (oDoor.SetView(14)).

    I know this was discussed before but I don't recall if we did a consistency check, so please take these questions/comments as an exercise in review.   

    1.  Would it not be more consistent to make the View property writable?  This would make the ChangeView function redundant but it would make the walking or normal view work the same as the other views for character.

    2.  Shouldn't objects also have a view property the same as characters? 

    3.  The object SetView function has optional parameters that allow the loop and frame to be set.   If the character View property were made writable then couldn't the ChangeView function be made to work the same as the object SetView function and couldn't both functions then have the same name?   

    I believe some folks have used characters as substitutes or supplements to room objects on ocassion and it would seem that keeping some consistentcy would be helpful (so as long as it is practical).  If this has already been discussed and well considered then just ignore the above and forgive me for missing out on the discussion.   

    [edit]
    I just  installed Beta11.   The Room menu is very nice but I sorely miss the room editor toolbar, especially the interaction editor and script editor buttons.  I know there are keyboard shortcuts for these two functions but is there any chance they can be added back.   Old habits die hard you know.  Btw, plain grey buttons would be fine with me as well. 
#1712
Quote from: Pumaman on Wed 05/01/2005 20:46:35
Quote from: SSH on Wed 05/01/2005 15:05:18
If the user could define their own things to go on the "General settings" page, someone could write a super-template that the let the user change a combo box on the front page from "SCUMM FOA" to "Sierra classic" to "Broken Sword" to get various default game styles.

I suppose an equivalent would be to add a set of Game custom properties, along with GetGameProperty/etc, since that's effectively what you're asking for. I can see the benefits, but again it's a fair bit of work for something that may well not get used very often.
... and you would need the ability to have different schemas for game, character, object, etc.   

Quote from: Pumaman on Wed 05/01/2005 20:46:35
Quote from: SSH on Wed 05/01/2005 15:05:18
OO stuff makes include files or some kind of script module import/export easier to organise and more obviously a gap. At least the single-GUI import/export that I already mentioned.

I agree, script modules is something I'd really like to add. However, there are loads of things I'd really like to add and it's all a matter of time. Once all the object-ising stuff is out of the way, I will give script modules quite a high priority.
Oooooo baby := I can't wait :)

Quote from: Pumaman on Wed 05/01/2005 20:46:35
Quote from: SSH on Wed 05/01/2005 15:05:18Character editor should show view NAMES when choosing default, idle, talking views, etc.

I'd prefer to change it to a proper graphical selection dialog, with a view preview and so on. Again, I'd like to, but I can't promise when.
I know I am, more or less outspoken on this issue, but I have a somewhat different way of looking at this; It seems to me that animatable entities such as characters, objects, etc should own their own views.  The main objection seems to be that if this were the case views couldn't be shared.   I am not so sure this has to be the case anymore with the new scripting methodology.   

For example suppose that the editor for each of the animatable entities (character,  object, etc) had a View Editor tab.  Only the views owned by the animatable entity (i.e. character, object, etc) would be listed.   Views would be named and numbered much as they are now, except that numbering would begin from '1'  for each entity.  The names would have global scope and be enums (i.e. vEgoWalk).   The enum value then would be what is now the global view number.   
We would end up with each animatable entity having a property array called View.  The array index then is the local id number.  The value contained in the array element is the enum value  (i.e. what is now the view number).  For example if we define a view named vEgoSmile for character Ego we could do something like this:
   // We used the view editor to define Ego's view number 7 to be vEgoSmile.
   // This means that Ego.View[7] is equal to vEgoSmile.

   // To assign this view to Ego's thinking view we could do this ..
   cEgo.ThinkView = vEgoSmile;

   // or we could do this.
   cEgo.ThinkView = cEgo.View[7];

   // Now suppose we wanted to assign this view to Bob's thinking view, again this ...
   cBob.ThinkView = vEgoSmile;

   // or we could do this.
   cBob.ThinkView = cEgo.View[7];

   // And just to be clear cBob.View[7] is not equal to cEgo.View[7]. 

SSH's original suggestion, in this case can just be a drop list as he suggests or a right click menu in the view editor.  The current global View Editor (if desireable) could show and allow edits on all views as it does now, with the only difference being in the way views are named and numbered, using enums instead of name and number.

Sorry for the long post, didn't know how to express the idea otherwise.  Hope you find it.  I know it's a lot of work to implement so I understand if it never gets done.   
Cheers everyone....
#1713
Quote
And I know its a suggestion and they're not allwoed here, but how abotu being able to open other scripts read-only while editing a script? I'm often needing to quickly check something in the header, for example...
SSH, I shall also sin for we share the same desires ...  :=
#1714
Quote
How about AtScreenXY and AtRoomXY?
If Room and Screen were objectized then you would have:
   Screen.GetNameAt(), Room.GetNameAt()

and if we are not in the mood to do anymore objectizing then we could at least fake it  like so...
   ScreenGetNameAt(), RoomGetNameAt()

I was going to stay out of this one but couldn't help myself  :=
#1715
I recently installed a number of extensions in my Firefox browser and they are terrific.  The extension manager is great and the extensions are really small in file size. 

I am using and highly recommend the following Firefox extensions.

  • Image Zoom -  Right click any image and zoom in/out

  • downTHEMall - Download all images, links, mp3's or whatever from the current page.  Really cool...

  • Disabl Targets for Download - Gets rid of that blank page you somtimes get when downloading a file to disk.

    If anyone else has some favorite Firefox extensions list them here.  Cheers!

  • AniDisable - Right click to enable/disable gif animations


    I have installed these but haven't had much chance to try them out yet

  • fireFtp - Puts an ftp client in a browser window or tab.  Lacks ability to store login info at the moment but this is on a todo list.  When this get's implemented I'll start using it more often. 

  • ScrapBook - Same and manage web page collections on your hard disk. 

  • Bookmarks Synchronizer - Upload and download bookmatks to a WebDAV server.
#1716
Woweee, you did a nice job.   
#1717
Quote
QuoteInstead of playing with the == operator, how about  adding a floating point function to test if a value is in a specified range.   It could return 1 if the value was within the range and 0 otherwise.  If the "min" parameter is not specified then the range is +/- max.  For example:
Good idea -- but then, as Gilbert says, it's so easy to implement yourself that I'm not sure a built-in function is necessary.
Yeah, I'm with Gilbert also.  Probably a well placed sentence or two in the manual and upgrade instructions would suffice.  I think you should mention it to illuminate confusion for the non-programmers amoung us.

Btw, are we able to create functions with optional parameters or is this restricted to built-ins?

Quote
Quoteand are enums strictly type-checked? Can I use an enum value of one enumeration as a parameter to a function that has a different enumeration type? Can you set more that one identifier to the same value in the same enumeration, i.e.
No. Yes. Yes.
The "No" answer is causing me a bit of confusion.  Hmmm.... then are enum values unique across all enum types instead of being  unique within each type?   If the former is true (i.e.  unique across all enum types) would that mean that two different enum types couldn't use the same value, for  example is the following permitted?   
enum ADEF {
   eOtherthing,
   eSomething
}

enum BDEF {
   eThis,             
   eThat,
   eOtherthing
}

Quote
Quote
And can you have static member variables, protected or otherwise?

No.
But you could make static variables in the global script and then use them for the same purpose; they just wouldn't be part of the struct.

#1718
General Discussion / Re: Computer trouble.
Wed 05/01/2005 16:40:55
Take a look at fairauction.com.  I've bought stuff from them before and was satisfied.   Currently they have a 160 GB drive for $66 + shipping.

http://www.fairauction.com/items/278295.htm
#1719
Hehe, You have the right nick name "Kandyman"  ;) .  I can see the ads now  "Hey girl! Want some sugar? Call the Kandyman  1-800-KANDY4U."

#1720
Quote
This is an interesting one. I was actually thinking about dealing with it by making the == operator return true for floats if the values were within 0.0001 of each other. Do you think this would be useful, or would this be annoying big brother interference when you did actually want to compare at a very fine accuracy?

Instead of playing with the == operator, how about  adding a floating point function to test if a value is in a specified range.   It could return 1 if the value was within the range and 0 otherwise.  If the "min" parameter is not specified then the range is +/- max.  For example:

   FloatInRange(float value, float max, optional float min);  // For lack of a better name

   float var;

   if (FloatInRange(var, 10.1, -0.042)) { // Do something when 10.1 <= var <= -0.042
   }

   if (FloatInRange(var, 9.234)) { // Do something when 9.234 <= var <= -9.234
   }


SMF spam blocked by CleanTalk