Search Results
Searched for posts by fejoa in all forums

Showing results 991 - 999 out of 999 total
Modify your search
Posted by fejoa, Nov 26, 2010 at 5:00 pm
Are Leprosy and other states like Levitating, ESP carried over to the mirrored player upon entry to the Sumo arena?

By the way, has anyone tried to infect Huang Ming Pong with Leprosy?
Posted by fejoa, Nov 18, 2010 at 11:46 pm
It would be fun to have a 'headbutt' command, a bit like kicking. Or as suggested by AzbA, a (H)it command, using weapon\\arms\\legs\\head\\pelvis(?), with a prompt to select which item\\bodypart to execute the strike with.
I imagine the code would be just a generalisation of the kicking command?
There could be a chance to fall unconscious due to headbutting very hard objects.

n.b. Back in the day, I used to throw daggers at doors to break their locks.
Posted by fejoa, Nov 7, 2010 at 3:28 am
Hilarious! Tourists stepping on landmines in south-east asia.
Chao, did you plant the mine in New Attnam? In wizmode I zapped a wand of striking at a backpack inside the arena, in an attempt to annihilate the tourists, but was disqualified and then LIVAN experienced an error. I think the tourist team must have changed relation to hostile when the backpack exploded.
I experimented successfully by charming the village elder in the arena and then throwing mustard gas at him.
Posted by fejoa, Nov 6, 2010 at 3:24 am
The game actually makes two mirrored characters, one is the player, while the other is the sumo. The mirrors are then transported into the sumo arena. The spectators, on the other hand, are transported directly to the sumo arena without being mirrored first.
Posted by fejoa, Oct 22, 2010 at 10:57 pm
You can only win the sumo tournament by killing someone in the sumo arena
Posted by fejoa, Oct 15, 2010 at 11:30 pm
Ok I don't know if anyone has fixed this yet, but I have a solution to this known non-crashing bug for LIVAN:
Quote
Going from 5th to 4th floor will send you to the stairs that lead to Kharaz-Arad. I don't know how to fix that.

Although it is quite easy to fix, it is not obvious at first. Fixing it requires only an edit of the script files. The two changes I have made are in bold green-flesh colour in the code below.

In dungeon.dat
Dungeon ELPURI_CAVE;
{
  ...
  Level 3;
    {
      ...
      Square, Pos 3,2;
      {
        OTerrain = stairs(STAIRS_DOWN) { AttachedArea = KHARAZ_ARAD; }
        EntryIndex = [b][color=#008000]STAIRS_DOWN + 1[/color][/b];
      }
      ...
    }
  ...
}

and scrolling down a little way, again in dungeon.dat:

Dungeon ELPURI_CAVE;
{
  ...
  Level KHARAZ_ARAD;
  {
    ...
    Room
    {
      Size = 7,6;
      ...
      Square, Pos 3,2;
      {
        OTerrain = stairs(STAIRS_UP) { AttachedArea = 3; [b][color=#008000]AttachedEntry = STAIRS_DOWN + 1; [/color][/b]}
        EntryIndex = STAIRS_UP;
      }
      ...
    }
    ...
  }
  ...
}

It ensures that if the player takes the staircase-up on GC5, he arrives at the staircase-down on GC4, instead of the staircase-down leading to Karaz Arad.
Posted by fejoa, Sep 30, 2010 at 3:26 am
chaostrom wrote
I just gave it a shot but I can't play it at all. It crashes when I try to enter UT.

I had the same problem, until I worked out what was wrong. I solved it in this way: Try running the IVAN variant in a directory with no spaces in the directory names.
i.e:
c:\\ivan_variant\\ivan_w32.exe

rather than:
c:\\ivan variant\\ivan_w32.exe
Posted by fejoa, Sep 28, 2010 at 4:21 am
This variant is shaping up to be good. The control flow enhancements are nice. I got sound to work by adding into the ivan_w32 directory the "Sound" folder from Ivan3D. Good luck with the scripting engine, I think it will be a fun tool for the community.
Posted by fejoa, Sep 9, 2010 at 8:57 pm
Warning, parts of this may be a bit spoily, if you can decipher it.
I think holybanana intended on setting out a coding tutorial on this topic, but I decided to have a crack at it and have figured out how this is done. I reverse engineered it from differences between IVAN and LIVAN.

I will show how to add a new location to the worldmap. In this example I will add the rocket launch pad named Baikonur, situated amongst leafy forest. The parts I added are in bold.

1) In define.dat and in ivandef.h add the line: # define COSMODROME 5
i.e. I inserted into the following lines:
...
#define RANDOM 0
#define ELPURI_CAVE 1
#define ATTNAM 2
#define NEW_ATTNAM 3
#define UNDER_WATER_TUNNEL 4
[b]#define COSMODROME 5[/b]
#define UNDER_WATER_TUNNEL_EXIT 0x80
...

2) In wterras.h add an owterrain (over-world terrain) called cosmodrome (as per the other entries). For this example:
...
[b]OWTERRAIN(cosmodrome, owterrain)
{
 public:
  virtual const char* GetNameStem() const;
  virtual v2 GetBitmapPos(int) const;
  virtual int GetAttachedDungeon() const;
};[/b]
...

3) In wterras.cpp add a const char* cosmodrome (to the best of my knowledge, this adds the new location to IVAN, links the location bitmap to its position in wterra.pcx and attaches the relevant dungeon). Add the following lines of code:
...
[b]const char* cosmodrome::GetNameStem() const { return "The ancient rocket launch-pad, Baikonur, looms up from the forests"; }
v2 cosmodrome::GetBitmapPos(int) const { return v2(16, 64); } [i]// I have used the same bitmap for new attnam in wterra.pcx, for simplicity[/i]
int cosmodrome::GetAttachedDungeon() const { return COSMODROME; }[/b]
...

4) To worldmap.cpp add the CosmodromePos codes, the SetEntryPos(COSMODROME, CosmodromePos) and the GetWSquare. This is slightly more elaborate, I want the cosmodrome to be situated in a leafy forest, so I had to fix that in as well.
Firstly inside the function: void worldmap::Generate(), I added another condition in this for loop, and in the statements that follow I added a couple of other lines:
...
for(uint c = 1; c < Continent.size(); ++c)
      if(Continent[c]->GetSize() > 25 && Continent[c]->GetSize() < 1000
	 && Continent[c]->GetGTerrainAmount(EGForestType)
	 && Continent[c]->GetGTerrainAmount(SnowType)
	 [b]&& Continent[c]->GetGTerrainAmount(LForestType)[/b])
	PerfectForAttnam.push_back(Continent[c]);

if(!PerfectForAttnam.size())
      continue;

    v2 AttnamPos, ElpuriCavePos, NewAttnamPos, TunnelEntry, TunnelExit[b], CosmodromePos[/b];
    truth Correct = false;
    continent* PetrusLikes;

    for(int c1 = 0; c1 < 25; ++c1)
    {
      game::BusyAnimation();
      PetrusLikes = PerfectForAttnam[RAND() % PerfectForAttnam.size()];
      AttnamPos = PetrusLikes->GetRandomMember(EGForestType);
      ElpuriCavePos = PetrusLikes->GetRandomMember(SnowType);
      [b]CosmodromePos = PetrusLikes->GetRandomMember(LForestType);[/b]
...

Further along, still in worldmap.cpp, there is an if-statement after which is added:
...
if(!Correct)
      continue;

    GetWSquare(AttnamPos)->ChangeOWTerrain(attnam::Spawn());
    SetEntryPos(ATTNAM, AttnamPos);
    RevealEnvironment(AttnamPos, 1);
    GetWSquare(NewAttnamPos)->ChangeOWTerrain(newattnam::Spawn());
    SetEntryPos(NEW_ATTNAM, NewAttnamPos);
    SetEntryPos(ELPURI_CAVE, ElpuriCavePos);
    GetWSquare(TunnelEntry)->ChangeOWTerrain(underwatertunnel::Spawn());
    SetEntryPos(UNDER_WATER_TUNNEL, TunnelEntry);
    GetWSquare(TunnelExit)->ChangeOWTerrain(underwatertunnelexit::Spawn());
    SetEntryPos(UNDER_WATER_TUNNEL_EXIT, TunnelExit);
    [b]GetWSquare(CosmodromePos)->ChangeOWTerrain(cosmodrome::Spawn());
    SetEntryPos(COSMODROME, CosmodromePos);[/b]
    [i]PLAYER->PutTo(NewAttnamPos);[/i]
    CalculateLuminances();
    CalculateNeighbourBitmapPoses();
    break;
...

SPOILER ALERT. Click here to see text.
In the above codeblock in italics note the line: PLAYER->PutTo(NewAttnamPos);
Could be useful to change this to your desired world map location for testing purposes.


5) Then hit the Compile button. IVAN will crash if you enter into the location and haven't added the dungeon in dungeon.dat

6) Finally add the dungeon to dungeon.dat, from this position it is only a matter of scripting the dungeon to your hearts content. DON'T forget to increment the number of dungeons and levels! Enjoy.