Hello,
I had problems with multiple blobs - just use one by one and add them to a class, then make a class constraint!
Another point is, that your blob size is larger than the distance constraint, which can cause problems especially with multiple blobs.
Try this one - works great and looks nice:
/* Lava Lakes - Author: M0nTy_PyTh0n */
/* Define some variables */
int lavabeautyINT = 0;
int failCount = 0;
int myRandomInt = 0;
/* Define some classes */
int myLavaClass = rmDefineClass("Lava Class");
int myAvoidLavaClass = rmCreateClassDistanceConstraint("Avoid Lava Class Distance Constraint",myLavaClass,20.0);
/* Define some constraints */
int myAvoidFarSettlementConstraint = rmCreateTypeDistanceConstraint("avoid settlement constraint","AbstractSettlement",40.0);
int myAvoidStalagmiteConstraint = rmCreateTypeDistanceConstraint("avoid Stalagmite constraint","Stalagmite",5.0);
/* Start making Lava Lakes */
failCount = 0;
myRandomInt = rmRandInt(5,15);
for(j=1; <= myRandomInt){
int id6 = rmCreateArea("Lava Patch 1 No"+j);
rmSetAreaSize(id6,rmAreaTilesToFraction(rmRandInt(200,300)),rmAreaTilesToFraction(rmRandInt(200,300)));
rmSetAreaTerrainType(id6,"HadesCliff");
rmSetAreaMinBlobs(id6,1);
rmSetAreaMaxBlobs(id6,1);
/* Fix this to your elevation if needed */
rmSetAreaBaseHeight(id6,0);
rmSetAreaHeightBlend(id6,1);
rmAddAreaToClass(id6,myLavaClass);
rmAddAreaConstraint(id6,myAvoidLavaClass);
/* Make sure the following is an area constraint! */
rmAddAreaConstraint(id6,farStartingSettleConstraint);
/* Or use this: rmAddObjectDefConstraint(id6,myAvoidFarSettlementConstraint); */
myRandomFloat = rmRandFloat(0,1);
if(myRandomFloat<0.33){
rmAddAreaTerrainLayer(id6,"Hades3", 2, 3);
rmAddAreaTerrainLayer(id6,"Hades5", 3, 30);
}
else {
rmAddAreaTerrainLayer(id6,"Hades3", 1, 2);
rmAddAreaTerrainLayer(id6,"Hades6", 2, 30);
}
rmSetAreaMinBlobDistance(id6, 0.0);
rmSetAreaMaxBlobDistance(id6, 0.0);
rmSetAreaCoherence(id6,0.4);
rmSetAreaWarnFailure(id6,false);
if(rmBuildArea(id6)==false){
/* Stop trying once we fail 3 times in a row. */
failCount++;
if(failCount==3)
break;
}
else failCount=0;
/* Lava Beautification */
myRandomInt = rmRandInt(3,6);
for(lavabeautyINT=1;<=myRandomInt){
int id6Stalagmite = rmCreateObjectDef("Stalagmite"+lavabeautyINT+"No"+j);
rmAddObjectDefConstraint(id6Stalagmite,myAvoidStalagmiteConstraint);
rmAddObjectDefItem(id6Stalagmite,"Stalagmite",1,1.0);
rmPlaceObjectDefInArea(id6Stalagmite,0,id6,1);
}
int id6Smoke = rmCreateObjectDef("smoke"+j);
if(myRandomFloat<0.33){
rmAddObjectDefItem(id6Smoke,"Smoke",1,0.0);
rmPlaceObjectDefInArea(id6Smoke,0,id6,2);
}
else{
rmAddObjectDefItem(id6Smoke,"Smoke Big",1,0.0);
rmAddObjectDefItem(id6Smoke,"Lava Bubbling",1,2.0);
rmPlaceObjectDefInArea(id6Smoke,0,id6,1);
}
}
/* END Lava Lakes */- Acredits are always welcome if you use it -
MP
[This message has been edited by M0nTy PyTh0n (edited 12-18-2002 @ 12:18 PM).]