I am looking for help for volcano minimod

hrochland

Prince
Joined
Apr 9, 2006
Messages
2,376
Location
Czech Kingdom
I make on VOLCANO with many smoke and animated lava in these days and I am looking for to someone who can make mini mod with reveal volcano in different eras and different places what place volcano model in map for two turns (for examle). Would be excellent write some restrictions for a number surrounding squares too.

Is here somebody, who can and want cooperate on this minimod by programmers work?

Thank you
HROCHland
 

Jeckel

Great Reverend
Joined
Nov 16, 2005
Messages
1,637
Location
Peoria, IL
After the volcano is placed on the map, do you want lava to flow out into random surrounding tiles around the volcano?
 

hrochland

Prince
Joined
Apr 9, 2006
Messages
2,376
Location
Czech Kingdom
I work on model now, I made it so that in peak tile can be revealed volcano and component of volcano model is dark map for surrounding tiles + defluent lava from one side volcano. It is in one nif file all.
I can not write code for it because python is closed for me :(

I know, this event is in BtS already, but I was deficient this model in game just, so I makes on it :)

If you want make this code, I can for example make second or 3rd model so that in first round was lava volcano, second round volcano with smoke and 3rd round out of blast volcano and dark layer... but it will be sufficient, I think, with one nif file...
I don't know possibilities of python...
I look for programmer partner for this minimod
 

Fierabras

Emperor
Joined
Dec 26, 2006
Messages
1,114
I'd like to have a go at it. Could you make the 1 nif available for me somehow, so I can test it? Has it been published yet? If not, could you post it zipped as an attachment?
 

hrochland

Prince
Joined
Apr 9, 2006
Messages
2,376
Location
Czech Kingdom
I'd like to have a go at it. Could you make the 1 nif available for me somehow, so I can test it? Has it been published yet? If not, could you post it zipped as an attachment?

WOW, excellent. Thanks. Here is model. It is no final variant but base is same as will be :):):) I think is need set scale a bit bigger over peak ?????
http://hrochland.valka.cz/prog/hrochvolcano.rar

I very hope that we all will have volcano with volcano ;) (in game in enemy land)
 

Fierabras

Emperor
Joined
Dec 26, 2006
Messages
1,114
I forgot to ask what kind of model it is. Is it:

- building graphic?
- terrain graphic (to replace TERRAIN_PEAK)?
- improvement graphic (like IMPROVEMENT_FORT)?
- resource graphic (like BONUS_MARBLE)?
- feature graphic (like FEATURE_JUNGLE)?
 

hrochland

Prince
Joined
Apr 9, 2006
Messages
2,376
Location
Czech Kingdom
I think this replace terrain_peak on one place sometime for x y turn plus maybe restrictions for some of surrounding squares ??? as it will be possible :):):)
 

Fierabras

Emperor
Joined
Dec 26, 2006
Messages
1,114
Looks like the Romans have found Mount Vesuvius. Roman scientists are currently trying to figure out if the volcano goes dormant again and what kind of effects it has on the surroundings



The XML for the volcano is done. I have made it as a terrain feature because it's animated (exhumes smoke). I'm now rewriting the BTS volcano event to make it replace a peak, have effects on the tiles around it and make it return to a peak after a couple of turns.
 

Fierabras

Emperor
Joined
Dec 26, 2006
Messages
1,114
I have made the changes to the BTS volcano event. I have added the following in bold:

Code:
def applyVolcano1(argsList):
	iEvent = argsList[0]
	kTriggeredData = argsList[1]
	
	[B]plot = gc.getMap().plot(kTriggeredData.iPlotX, kTriggeredData.iPlotY)
	plot.setPlotType(PlotTypes.PLOT_LAND, True, True)
	plot.setFeatureType(gc.getInfoTypeForString('FEATURE_VOLCANO'), 0)[/B]
	
	listPlots = []
	for iDX in range(-1, 2):
		for iDY in range(-1, 2):
			loopPlot = plotXY(kTriggeredData.iPlotX, kTriggeredData.iPlotY, iDX, iDY)
			if not loopPlot.isNone():
				if (iDX != 0 or iDY != 0):
					if loopPlot.getImprovementType() != -1:
						listPlots.append(loopPlot)
					
	listRuins = []
	listRuins.append(CvUtil.findInfoTypeNum(gc.getImprovementInfo,gc.getNumImprovementInfos(),'IMPROVEMENT_COTTAGE'))
	listRuins.append(CvUtil.findInfoTypeNum(gc.getImprovementInfo,gc.getNumImprovementInfos(),'IMPROVEMENT_HAMLET'))
	listRuins.append(CvUtil.findInfoTypeNum(gc.getImprovementInfo,gc.getNumImprovementInfos(),'IMPROVEMENT_VILLAGE'))
	listRuins.append(CvUtil.findInfoTypeNum(gc.getImprovementInfo,gc.getNumImprovementInfos(),'IMPROVEMENT_TOWN'))
	
	iRuins = CvUtil.findInfoTypeNum(gc.getImprovementInfo,gc.getNumImprovementInfos(),'IMPROVEMENT_CITY_RUINS')

	for i in range(3):
		if len(listPlots) > 0:
			plot = listPlots[gc.getGame().getSorenRandNum(len(listPlots), "Volcano event improvement destroyed")]
			iImprovement = plot.getImprovementType()
			szBuffer = localText.getText("TXT_KEY_EVENT_CITY_IMPROVEMENT_DESTROYED", (gc.getImprovementInfo(iImprovement).getTextKey(), ))
			CyInterface().addMessage(kTriggeredData.ePlayer, false, gc.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_BOMBARDED", InterfaceMessageTypes.MESSAGE_TYPE_INFO, gc.getImprovementInfo(iImprovement).getButton(), gc.getInfoTypeForString("COLOR_RED"), plot.getX(), plot.getY(), true, true)
			if iImprovement in listRuins:
				plot.setImprovementType(iRuins)
			else:
				plot.setImprovementType(-1)
			listPlots.remove(plot)
			
			if i == 1 and gc.getGame().getSorenRandNum(100, "Volcano event num improvements destroyed") < 50:
				break

Below are some screenshots of the event in action.

 

johny smith

Deity
Joined
Mar 10, 2007
Messages
2,273
All I can say is this really cool. I want to sacrifice some virgins to the volcano now.
 

Fierabras

Emperor
Joined
Dec 26, 2006
Messages
1,114
Ok, I'll post all the code as a zip in this thread when I'm done (cleaning up some minor things). I expect to finish this week.
 

hrochland

Prince
Joined
Apr 9, 2006
Messages
2,376
Location
Czech Kingdom
@ Fierabras
o sorry, I was out of city last 3 days. If have you separated files what need it, link it, please, I will still play with model, I think. I don´t make in game test of volcano I dont know if is fuctional smoke. Here was problem betwen lava aniation version and soke aimation version. I finished work on alpha must too...

For future I will be glad et next cooperation, if you will be want :hatsoff::woohoo::thumbsup:
 

Fierabras

Emperor
Joined
Dec 26, 2006
Messages
1,114
Yes, the smoke works nicely. It's not visible on the screenshots I have done before, but it's there. I'm still working on the follow-up event which returns the volcano to a peak. I'll add that later.

Ok, this is what I have so far. This modlet is a working version and can be tested as a mod in Sid Meier's Civilization 4/Beyond the Sword/Mods

Basically the mod has 3 parts:

- XML and art

I have made it in modular XML, so all you need to add volcanoes to your map through worldbuilder is Volcano/Assets/Modules/. (If you integrate this in another mod, make sure to set ModularLoading=1 in your ini)

- Python

Modified version of CvRandomEventInterface.py in Volcano/Assets/Python/EntryPoint/. The only modification compared to the original is the addition of

Code:
plot = gc.getMap().plot(kTriggeredData.iPlotX, kTriggeredData.iPlotY)
plot.setPlotType(PlotTypes.PLOT_LAND, True, True)
plot.setFeatureType(gc.getInfoTypeForString('FEATURE_VOLCANO'), 0)

in the BTS applyVolcano1 Python function

- XML/Events

I have only added this to change the trigger for the volcano event to "always" by changing

Code:
<iPercentGamesActive>100</iPercentGamesActive>
<iWeight>-1</iWeight>

This is for testing purposes only. You can safely remove the XML folder from this mod when integrating it in another mod. If you want to test this mod, make sure you have a peak inside your borders with 1 or more improvements around it in a 2-square radius and that your civ has the following techs:

  • TECH_WRITING
  • TECH_MONOTHEISM
  • TECH_HORSEBACK_RIDING
  • TECH_IRON_WORKING

Hrochland, you might want to take a look at the scale of the volcano. I have tested some smaller scales, but have left it on 1.0 (see <fScale>1.0</fScale> in Volcano_CIV4ArtDefines_Feature.xml). The problem is that the bottom of the volcano overlaps with parts of the tiles around it. Although you could see this as a mudslide with volcanoes in reality.
 

Attachments

  • Volcano.zip
    222.5 KB · Views: 262

hrochland

Prince
Joined
Apr 9, 2006
Messages
2,376
Location
Czech Kingdom
Thank you very much. I will be waiting when you send word that it is finished, of course. I reworked file system as no modular now for my easier model test.
I must add lava defluent part... if it will be possible.
I have now two models
First with lava defluent and second with smoke. Smoke a defluent animations are various animation versions and in this time no compatible :( :( :( :cry:

EDIT: Yes, volcano parts overlapping central tile are intended. I must tune alpha canal in texture for natural physique.
 

Fierabras

Emperor
Joined
Dec 26, 2006
Messages
1,114
If you are wondering where I got the button for the volcano feature, it's from the Fall from Heaven mod. That mod also has a volcano feature (although the art is less appealing), but it also uses an effect named "lava" on top of the feature.

We could do the same for this mini-mod: combine 2 animations, 1 in the feature (smoke) and 1 in the effect (lava) or vice versa. Can you post the model with the lava? Maybe I can make the smoke as an effect.
 
Top Bottom