Please login or register.

Login with username, password and session length
Advanced search  

News:

This forum provides RSS feed. To query recent posts use this url. More...


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.

Messages - revvin

Pages: [1] 2 3
1
General Discussion / Re: WME 1.6 final
« on: May 13, 2006, 01:27:36 PM »
HUGE thanks again Mnemonic! You deserve some recognition for your efforts - so hopefully one day somebody will release a ball-bustingly brilliant game and credit you for all the engine work. superb stuff.  ::rock

Now time for a  ::beer or three.  ;D

2
Technical forum / Re: Can somebody help me improve my code?
« on: April 05, 2005, 08:54:53 PM »
Aha! superb! i'll give it a shot. Thanks Nihil.  :D

Yes, Mnemonic, its the copy-protection scheme from a famous nineties game that strangely had very little to do with monkeys...

Obviously let the cat out of the bag a little here - but one of the things I loved about the old school Graphic Adventures was the stuff that came in the boxes! Now you just get a dvd case with a disc. If you're lucky an instruction "card". Its almost clinical. :(

The copy protection wheels were part of the charm. I decided to use the original MI codewheel as a test to see if I could create the code behind a copy protection codewheel - and it worked!!! So I can now make my own wheel when I need to. :oD

3
Technical forum / Re: Can somebody help me improve my code?
« on: April 01, 2005, 11:53:27 PM »
Hi,
I have put together a script that I think needs tidying up. It works great - but I am know its too much code. I am pretty certain I need to utilise loops in a better way (would CASE loops help?) but I cant get my head around them. I just need some advice... can anybody help?
Many thanks,
Kev

4
Technical forum / Can somebody help me improve my code?
« on: April 01, 2005, 11:51:15 PM »
Code: [Select]
#include "scripts\base.inc"
global WinNarrator;
global entry_attempts=0;

var RowA = new Array ("A1.png","A2.png","A3.png","A4.png","A5.png","A6.png","A7.png","A8.png","A9.png","A10.png","A11.png","A12.png","A13.png","A14.png","A15.png");
var RowB = new Array ("B1.png","B2.png","B3.png","B4.png","B5.png","B6.png","B7.png","B8.png","B9.png","B10.png","B11.png","B12.png","B13.png","B14.png","B15.png");
var Locations = new Array ("Antigua","Barbados","Jamaica","Montserat","Nebraska","St. Kitts","Tortuga");
var wheelpos = Random (1,15); 
var wheeloffset = Random (0, 14);
var Location = Random (7);
var calc_year = 0;
var game_entry=false;

var newRowA = Scene.GetNode("RowA_Head");
var newRowAFilename = RowA[wheelpos];
var newRowB = Scene.GetNode("RowB_Head");
var newRowBFilename = RowB[wheeloffset];

var question = Scene.GetNode ("question");
var attempt1 = Scene.GetNode ("attempt1");
var attempt2 = Scene.GetNode ("attempt2");
var attempt3 = Scene.GetNode ("attempt3");

var Antigua = new Array ("1710","1651","1679","1719","1694","1632","1668","1703","1726","1564","1615","1599","1669","1660","1687");
var Barbados = new Array ("1725","1630","1709","1594","1614","1563","1649","1693","1577","1678","1686","1597","1718","1658","1702");
var Jamaica = new Array ("1613","1580","1723","1717","1684","1628","1643","1559","1573","1708","1701","1724","1667","1691","1685");
var Montserat = new Array ("1692","1656","1567","1674","1662","1655","1646","1671","1611","1672","1562","1721","1666","1673","1670");
var Nebraska = new Array ("1665","1706","1506","1722","1716","1584","1551","1627","1707","1688","1699","1568","1705","1579","1585");
var StKitts = new Array ("1712","1542","1565","1720","1664","1566","1592","1654","1635","1639","1695","1704","1711","1609","1681");
var Tortuga = new Array ("1604","1653","1641","1690","1682","1601","1619","1680","1021","1652","1689","1713","1697","1696","1624");

actor.Active = false;

// default values
if(StateRoom==null)
{
  StateRoom.Visited = false;
  // add scene states here
}

if(!StateRoom.Visited)
{
 entry_attempts = 1;
 while (entry_attempts<4)
   {
  calc_year = 0;
  wheelpos = Random (1,15); 
  wheeloffset = Random (0, 14);
  Location = Random (7);
  newRowAFilename = RowA[wheelpos];
          newRowBFilename = RowB[wheeloffset];
  newRowA.Active = false; 
  newRowA.SetSprite ("scenes\Room\" + newRowAFilename);
  newRowA.Active = true;
  newRowB.Active = false; 
  newRowB.SetSprite ("scenes\Room\" + newRowBFilename);
  newRowB.Active = true;
         
  var dialoffset = wheelpos-wheeloffset;
  if (dialoffset<1)
  {
    dialoffset = dialoffset + 15;
  }

  if (Location == 1) { question.SetSprite ("scenes\Room\loc_antigua.png");}
  if (Location == 2) { question.SetSprite ("scenes\Room\loc_barbados.png");} 
  if (Location == 3) { question.SetSprite ("scenes\Room\loc_jamaica.png");}
  if (Location == 4) { question.SetSprite ("scenes\Room\loc_montserat.png");}
  if (Location == 5) { question.SetSprite ("scenes\Room\loc_nebraska.png");}
  if (Location == 6) { question.SetSprite ("scenes\Room\loc_stkitts.png");}
  if (Location == 7) { question.SetSprite ("scenes\Room\loc_tortuga.png");}

  var WinMainMenu = Game.LoadWindow("interface\system\entry.window");
  //WinMainMenu.Center();
  WinMainMenu.GoSystemExclusive();
  Game.UnloadObject(WinMainMenu);
          if (Location == 1)
            {
    calc_year = Antigua[dialoffset];
    if (you_entered == calc_year)
      {
        if (entry_attempts==1) {attempt1.SetSprite ("scenes\Room\box2.png");}
        if (entry_attempts==2) {attempt2.SetSprite ("scenes\Room\box2.png");}
        if (entry_attempts==3) {attempt3.SetSprite ("scenes\Room\box2.png");}
game_entry=true;
      }
      else
      {
        if (entry_attempts==1) {attempt1.SetSprite ("scenes\Room\box1.png"); WinNarrator.DisplayText("Whoops! You have two more chances.", 2000);}
        if (entry_attempts==2) {attempt2.SetSprite ("scenes\Room\box1.png"); WinNarrator.DisplayText("Hmm... wrong again.", 2000);}
        if (entry_attempts==3) {attempt3.SetSprite ("scenes\Room\box1.png");}
      }
    }
          if (Location == 2)
            {
    calc_year = Barbados[dialoffset];
    if (you_entered == calc_year)
      {
        if (entry_attempts==1) {attempt1.SetSprite ("scenes\Room\box2.png");}
        if (entry_attempts==2) {attempt2.SetSprite ("scenes\Room\box2.png");}
        if (entry_attempts==3) {attempt3.SetSprite ("scenes\Room\box2.png");}
game_entry=true;
      }
      else
      {
        if (entry_attempts==1) {attempt1.SetSprite ("scenes\Room\box1.png"); WinNarrator.DisplayText("Whoops! You have two more chances.", 2000);}
        if (entry_attempts==2) {attempt2.SetSprite ("scenes\Room\box1.png"); WinNarrator.DisplayText("Hmm... wrong again.", 2000);}
        if (entry_attempts==3) {attempt3.SetSprite ("scenes\Room\box1.png");}
      }
    }
          if (Location == 3)
            {
    calc_year = Jamaica[dialoffset];
    if (you_entered == calc_year)
      {
        if (entry_attempts==1) {attempt1.SetSprite ("scenes\Room\box2.png");}
        if (entry_attempts==2) {attempt2.SetSprite ("scenes\Room\box2.png");}
        if (entry_attempts==3) {attempt3.SetSprite ("scenes\Room\box2.png");}
game_entry=true;
      }
      else
      {
        if (entry_attempts==1) {attempt1.SetSprite ("scenes\Room\box1.png"); WinNarrator.DisplayText("Whoops! You have two more chances.", 2000);}
        if (entry_attempts==2) {attempt2.SetSprite ("scenes\Room\box1.png"); WinNarrator.DisplayText("Hmm... wrong again.", 2000);}
        if (entry_attempts==3) {attempt3.SetSprite ("scenes\Room\box1.png");}
      }
    }
          if (Location == 4)
            {
    calc_year = Montserat[dialoffset];
    if (you_entered == calc_year)
      {
        if (entry_attempts==1) {attempt1.SetSprite ("scenes\Room\box2.png");}
        if (entry_attempts==2) {attempt2.SetSprite ("scenes\Room\box2.png");}
        if (entry_attempts==3) {attempt3.SetSprite ("scenes\Room\box2.png");}
game_entry=true;
      }
      else
      {
        if (entry_attempts==1) {attempt1.SetSprite ("scenes\Room\box1.png"); WinNarrator.DisplayText("Whoops! You have two more chances.", 2000);}
        if (entry_attempts==2) {attempt2.SetSprite ("scenes\Room\box1.png"); WinNarrator.DisplayText("Hmm... wrong again.", 2000);}
        if (entry_attempts==3) {attempt3.SetSprite ("scenes\Room\box1.png");}
      }
    }
          if (Location == 5)
            {
    calc_year = Nebraska[dialoffset];
    if (you_entered == calc_year)
      {
        if (entry_attempts==1) {attempt1.SetSprite ("scenes\Room\box2.png");}
        if (entry_attempts==2) {attempt2.SetSprite ("scenes\Room\box2.png");}
        if (entry_attempts==3) {attempt3.SetSprite ("scenes\Room\box2.png");}
game_entry=true;
      }
      else
      {
        if (entry_attempts==1) {attempt1.SetSprite ("scenes\Room\box1.png"); WinNarrator.DisplayText("Whoops! You have two more chances.", 2000);}
        if (entry_attempts==2) {attempt2.SetSprite ("scenes\Room\box1.png"); WinNarrator.DisplayText("Hmm... wrong again.", 2000);}
        if (entry_attempts==3) {attempt3.SetSprite ("scenes\Room\box1.png");}
      }
    }
          if (Location == 6)
            {
    calc_year = StKitts[dialoffset];
    if (you_entered == calc_year)
      {
        if (entry_attempts==1) {attempt1.SetSprite ("scenes\Room\box2.png");}
        if (entry_attempts==2) {attempt2.SetSprite ("scenes\Room\box2.png");}
        if (entry_attempts==3) {attempt3.SetSprite ("scenes\Room\box2.png");}
game_entry=true;
      }
      else
      {
        if (entry_attempts==1) {attempt1.SetSprite ("scenes\Room\box1.png"); WinNarrator.DisplayText("Whoops! You have two more chances.", 2000);}
        if (entry_attempts==2) {attempt2.SetSprite ("scenes\Room\box1.png"); WinNarrator.DisplayText("Hmm... wrong again.", 2000);}
        if (entry_attempts==3) {attempt3.SetSprite ("scenes\Room\box1.png");}
      }
    }
          if (Location == 7)
            {
    calc_year = Tortuga[dialoffset];
    if (you_entered == calc_year)
      {
        if (entry_attempts==1) {attempt1.SetSprite ("scenes\Room\box2.png");}
        if (entry_attempts==2) {attempt2.SetSprite ("scenes\Room\box2.png");}
        if (entry_attempts==3) {attempt3.SetSprite ("scenes\Room\box2.png");}     
game_entry=true;
      }
      else
      {
        if (entry_attempts==1) {attempt1.SetSprite ("scenes\Room\box1.png"); WinNarrator.DisplayText("Whoops! You have two more chances.", 2000);}
        if (entry_attempts==2) {attempt2.SetSprite ("scenes\Room\box1.png"); WinNarrator.DisplayText("Hmm... wrong again.", 2000);}
        if (entry_attempts==3) {attempt3.SetSprite ("scenes\Room\box1.png");}
      }
    }

  entry_attempts=entry_attempts + 1; 
  if (game_entry==true) { break; }
  }         
       
  if (game_entry==false) { WinNarrator.DisplayText("Sorry. You need the Dial-A-Pirate to play this game.", 2000); Game.QuitGame();}
    else
    { WinNarrator.DisplayText("Congratulations! You are correct", 2000);}
 
  StateRoom.Visited = true;   
}

5
Technical forum / Re: inventorywindow buttons
« on: March 21, 2005, 12:05:48 AM »
McCoy: Thanks for your quick response. :)

Mnemonic:  Thats what I thought - but it wasnt working... I must just be misunderstanding the AREA definition.

You see - this is my code definition (which now works fine). But if I change the AREA Width (currently 375) to anything less than 152 - I dont see anything. I am not sure why - because the cell is 75px - and even if you add 32px (spacing both sides of the cell) its only 107px ?

Code: [Select]
   ITEM_WIDTH = 75
  ITEM_HEIGHT = 75
  SPACING = 16
  SCROLL_BY = 3
  HIDE_SELECTED = TRUE
  AREA { 77, 115, 375, 375 }
  EXCLUSIVE = TRUE

Anyway - I just increased the AREA to a figure way above what I actually need (space+cell+space+cell+space+cell+space = 289px  - so in theory AREA { 77, 115, 289, 289 } should work fine) and it now works perfectly!

Thanks for the help again.  ;D

6
Technical forum / Re: inventorywindow buttons
« on: March 20, 2005, 02:16:43 PM »
Quote
or create a multi-row inventory

This is exactly what I am looking for. :)  But there is no mention anywhere else on the forums about multi-row inventories - and its not in the Help?

I have nine cells each 75px/75px. The grid is 3x3.  No matter what size I define the "AREA" - it still only populates a single row? (the first three cells)

Does anybody have any code or even just instructions for creating mult-row inventories?

Many thanks,
Rev

7
Technical forum / Re: On (MouseDown) ?
« on: March 14, 2005, 01:15:33 AM »
That worked brilliantly! Thanks for your help.  ;D

8
Technical forum / Re: On (MouseDown) ?
« on: March 13, 2005, 03:13:34 PM »
Ok cool. Didnt realise that was there! :)   I downloaded the 3D demo from www.dead-code.org and it was just compiled binary.

It looks like it has exactly what I want - I'll check out the source code and come grovelling if I get stuck! ;)

Thanks again
Rev

9
Technical forum / On (MouseDown) ?
« on: March 13, 2005, 02:35:57 AM »
Hi guys,

Looking for some example script to perform a "On (MouseDown)" function...  i want to hover over an object - press and hold the right-mousebutton, where a verbcoin pops up - I then move to the verb I want - and release to action that verb on the object.

I hear the 3D Character demo has a similar thing - but I cant find the source anywhere?

Any suggestions appreciated

Cheers
Rev

10
Technical forum / Re: Horizontal Scaling?
« on: March 02, 2005, 04:07:47 PM »
Ok thanks Mnemonic.

I have got my artist splitting the scene into two now - so instead of panning across a different perspective - it'll just change scene.

The effect we want to achieve where he gets small as he walks to the right - we will have to fake by forcing the character along a tight path that travels upwards. That should allow the standard Scene Scale to come fairly close to the desired effect.

Thanks for all your help,
Rev

11
Technical forum / Re: Horizontal Scaling?
« on: March 02, 2005, 01:01:45 AM »
Thats ok I understand. I'll have to try your method on that particular scene. I have just included the following because I think it explains more clearly what I was trying to do.

I have uploaded the prototype I was working on in Visionaire to http://www.maroonedgame.com/wme/visionaire_prototype.exe

If you walk through the three different scenes you should see that the Scaling blends very well into the scenes.

In the below scene you can see I only set three points - and the scaling is perfect.



Do you think the standard scene scaling will work as well in these examples?

Also - if you press and hold the left button over an object (like the spoon) and let go over the PICK UP icon - it disappears and the action is performed. This is the last thing I was working on before checking out WME. Are you aware of anybody else that has created a verb coin like this so I can pick their brains? or do you know whether its possible to implement?

Thanks again for all your help,

Regards
Rev

12
Technical forum / Re: Horizontal Scaling?
« on: February 28, 2005, 03:53:35 PM »
I agree as far as it not looking realistic. My artist did the scene quickly and didnt take lines of perspective into account - so it would always look wrong.

He is re-doing the scene with clear lines of perspective. This will mean the character should scale realistically on the scene.

Have you seen Visionaire?  Their scaling system is superb. You basically create "POINTS" on the scene and specify the character scale at that point (as a percentage). The engine then sets the scale according to the characters proximity to each of these points.

This gives you huge amounts of control over the scaling and makes everything look perfect.  I could post a quick example if it helps?

Do you think maybe you could implement something like this instead?

Thanks again for all your help,

Regards
Revvin

13
Technical forum / Re: Horizontal Scaling?
« on: February 24, 2005, 01:51:11 AM »
Hi,
Have you had a chance to look over the project?
Thanks again
Revvin

14
Technical forum / Re: Horizontal Scaling?
« on: February 12, 2005, 03:12:10 PM »
Sorry to drag this out... but its still causing me grief :(

In Visionaire (which I used for almost 2 years) they nailed this problem... you simply place a spot on the scene (similar to your hotspots) and just set the scale at that point. As you put different scales at different points in the scene - the engine automatically calculates the scale depending on where the actor is standing. Its very easy to use, and incredibly effective... maybe you could implement something like this in the future?

Anyway - for the timebeing I am trying to script it.... and having trouble with the character popping up in the wrong scale - or scaling when he shouldnt be... I have RAR'd up my project and uploaded to:

http://www.maroonedgame.com/wme/marooned.rar

WARNING - 14Mb download

Do you think you could have a look at the project so far and see if you can improve the method I have implemented?

Already eternally grateful,
Kevin

15
Technical forum / Re: LOOP Operators?
« on: February 10, 2005, 07:56:32 AM »
Cool. thanks guys. Just needed to know the C operators (I never learned any variation of C)

The "DO" would definitely cause an error yes - because its just there to explain the logic of what I was trying to accomplish (I am still learning the language - most of what I know comes from Turbo Pascal)

Thanks everybody
Kev


Pages: [1] 2 3

Page created in 0.056 seconds with 23 queries.