设为首页收藏本站

塞爱维(CIV)文明联盟

 找回密码
 注册
查看: 3086|回复: 12

[转帖] 3.19补丁中dll新增内容

[复制链接]
发表于 2009-6-13 00:23:18 | 显示全部楼层 |阅读模式
如补丁更新贴所述,一些功能被移动到了dll中,内容包括:



Here's a more comprehensive list of the stuff that's been moved to the DLL:

CvCity

getBuildingArtInfo
getBuildingVisibilityPriority

These two give you greater control over how cities look. Haven't really thought of any great applications for them... will probably be mod-specific.

getMusicScriptId
getSoundscapeScriptId

These affect city sounds. I'd like to tweak these myself because I want there to be a distinction between the sounds of coastal and inland cities. When you open a coastal city screen, you might hear seagulls, a boat horn, etc.

getBuildQueue

Not sure why you'd want to mess with this, but there it is.

CvPlayer

getIntroMusicScriptId
getMusicScriptId

With these two, I think you could actually now have different music play under different circumstances. It already does it based on peace/war and era, but you could make it so that it'll play different music based on the other player's state religion, civic, or anything else you can think of. Maybe not extremely useful in the standard game, but could be interesting for specialized mods.

getGlobeLayerColors
getTradeLayerColors
getUnitLayerColors
getResourceLayerColors
getReligionLayerColors
getCultureLayerColors

Controls the colors for different things on the maps.. Not sure why you'd want to mess with this, but there it is anyway.

getUnitArtInfo

This'll provide a fairly easy and straightforward way to have units look different based on religion or civics among other things.

CvPlot

getSoundScriptId

Controls the tile's sound. Takes the improvement sound first, if there's none, goes to feature, if no feature, it goes to terrain. Could be modified to have culture-specific sounds I guess.

get3DAudioScriptFootstepIndex

You can use this to set conditions for what kind of footstep noises should play.

getAqueductSourceWeight

Tweaking this would make the aqueduct appear in more rational or more insane positions I think

shouldDisplayBridge

Pretty self-explanatory. The only reason why I might think one would want to mess with this is if you wanted to make bridges something that had to be specifically built and thus open to targetting by pillaging, bombing or sabotage. I'm seriously considering it

checkLateEra

This is obviously some kind of graphical display thing. It might be used to control the appearance of improvements?

CvUnit

getSelectionSoundScript

Want your Roman unit to shout in Latin when you click on him in the ancient era and in Italian when you click on him in the modern era? This is where you'd code that.

getLayerAnimationPaths

The greatest unexploited feature in BtS... the Layer Animation Paths. No Unit Maker that I know of has ever actually made units to take advantage of this fantastic feature. Previously, changing the layer animation paths was strictly reserved for promotions, but with this function exposed you can have it based on virtually any criteria you want.

isCombatVisible

Basically controls quick combat. Could use it to have certain types of units skip battle scenes even if the Quick Combat option isn't turned on

CvDLLInterfaceIFaceBase

setInterfaceMode
getInterfaceMode
getShowInterface
getMouseOverPlot

There some potential for some good interface changes with these... Being able to get the plot the mouse is currently over can be quite handy. I've already got some ideas about what I might do with this.

CvGameInterface

This file and the CvGameTextMgr have most changes made to them, and has potentially the most interesting new functionality.

getGlobeLayers
startFlyoutMenu
applyFlyoutMenu

Not sure, but I think the flyout menu concerns the bottom part of the screen... so the list of stuff you can build, draft buttons, hurry buttons, selecting units, etc.

getNewHighlightPlot
getPlotHighlightColor

More map stuff

getWidgetShow
There's two of these. One determines if a model should be shown in the civilopedia for a particular resource (prevents Hit Singles, Movies, etc. from showing on terrain). And the second determines if a water improvement is to be shown in water.

nextActivePlayer
Moves the next player in line to be the new active player.

getNextSoundtrack
getSoundtrackSpace
isSoundtrackOverride

More sound control

initSelection

Picks which unit to select first such as at the start of a new turn

shouldDisplayFlag

Controls when your player flag should appear at the bottom of the screen.

shouldDisplayUnitModel

Controls when your selected unit's model should appear at the bottom of the screen

shouldShowResearchButtons

Controls when your research options should appear at the top (like when you've finished research a tech)

shouldCenterMinimap

Controls when the map should be centered.

handleCityScreenPlotPicked
handleCityScreenPlotDoublePicked
handleCityScreenPlotRightPicked
handleMiddleMouse

This deals with mouse clicks on plots when the city screen is up. For me, this is very handy since I plan to make changes to how players manage their cities. Just how useful these functions will be I haven't determined yet.

handleDiplomacySetAIComment

Concerns diplomacy... not sure why you'd mess with this

CvGameTextMgr

getFontSymbols
assignFontIds

This is the meat and potatoes of the gamefont changes. If you want to add new stuff that will have a little icon associated with it that you want to appear in text, this is where you're going to mod it in. This does not pertain to adding new religions, corporations, yields, commerces, or general buttons like , , or . That you've always been able to do. These functions would only need to be modified if you wanted totally new stuff like civilization languages, or political ideologies, or something along those lines.

getPlotHelp
getRebasePlotHelp
getNukePlotHelp

This provides a bit more flexibility for modders in determining what text they want to appear on the left-hand side of the screen when a player mouses over a plot. THis could be very useful if you want to provide more info to players when they're using interface modes (such as when you select an air mission and you see the air range and the target cursor appear). So if you wanted to, you could program it to tell you the odds of being intercepted on that particular tile if you wanted.

getInterfaceCenterText

This controls the text that appears in the middle of the screen when a player wins.

getTurnTimerText

Looks like this controls the game turn info? Thought that was done in python...

There's also a bunch of functions controlling text when in Advanced Start mode or World Builder, but I decided not to list them all/
发表于 2009-6-16 15:30:05 | 显示全部楼层

请问一下 CvGameCoreDLL.dll 能在VS2008 里面导入吗?

A reference to "X...\CvGameCoreDLL.all" could not be added.
Please make sure that the file is accessible,and that it is a valid assembly or COM component.

E文不熟,不知何解.

[ 本帖最后由 100861027 于 2009-6-16 15:31 编辑 ]
发表于 2009-6-16 17:51:15 | 显示全部楼层

回复 #2 100861027 的帖子

VS2005可以导入,2008未用过不知道。
发表于 2009-6-16 18:20:28 | 显示全部楼层
原帖由 ztjal 于 2009-6-16 17:51 发表
VS2005可以导入,2008未用过不知道。


可以安装一下不
据说2008编译的程序比2005高效很多的吖
发表于 2009-6-16 20:56:43 | 显示全部楼层

回复 #4 100861027 的帖子

。NET的话可能吧,但文明4DLL源码不是。NET啊。
以前试过用2005来编译DLL,但VC8的MFC好像不能和VC71的MFC共存,运行不了。
你装了2008的话,不要装2005了,也不建议用2005去编译DLL,装个CodeBlocks吧,有多个window的话装个2003。
发表于 2009-6-17 10:56:33 | 显示全部楼层

回复 #5 ztjal 的帖子

CodeBlocks 只支持C++吖 尽管是跨平台的 我不会C++吖 有C#的工具不?
发表于 2009-6-17 11:51:04 | 显示全部楼层

回复 #6 100861027 的帖子

CvGameCoreDLL是C++。。。
发表于 2009-6-17 20:33:37 | 显示全部楼层
.Net 是跨语言的嘛……
有不有什么办法让我在 2008 里面加载 C++ 类库?
高手指点吖!
我想制作一个傻瓜版文明编辑器
目标就是文明所有的属性都可以自己设定
例如 傻瓜化创建 特色单位 特色建筑 特色领袖 特色城市……
发表于 2009-6-17 20:47:45 | 显示全部楼层

回复 #8 100861027 的帖子

看你的要求写个“文明4的XML编辑器”不就行了,语言你熟那样就那样。
编译DLL才要用C++。

.net里可以直接用imports来引用另一种语言啊。
发表于 2009-6-19 19:45:11 | 显示全部楼层

回复 #9 ztjal 的帖子

TXT_KEY_CIV_CARTHAGE_DESC
TXT_KEY_CIV_CELT_DESC
TXT_KEY_CIV_OTTOMAN_DESC
TXT_KEY_CIV_ZULU_DESC

大师 请问
这个4条标签 是指向哪个XML的吖?
在CI4/战神/BTS 的TETX Objects 里面都么有吖。
发表于 2009-6-19 20:42:30 | 显示全部楼层

回复 #10 100861027 的帖子

1,请勿用这种称呼!
2,你用有搜索文件夹功能的软件,搜索就能找到了,例如uedit
发表于 2009-6-19 23:28:01 | 显示全部楼层

回复 #11 ztjal 的帖子

对您的敬称 还是接受吧
因为你写东西 都说的很具体 我用了很方便
另外游戏中 处理 TXT_TAG 没有显示内容的问题 都出在 西班牙语字段上 打好所有补丁以后 只要对两处XML字段加上一个空格就可以解决所有 TXT_TAG 标识问题
发表于 2009-6-20 00:11:44 | 显示全部楼层

回复 #12 100861027 的帖子

你不需要抬我,抬我也没好处
欧洲语TEXT问题我签名第二行自己的工具有相关功能,把显示不正常的都编码掉,也能可逆的解码,以当前系统显示不出来的情况下加个空格会破坏原来的结构,那个显示不了的东西会变成真正的?了。
不过对普通玩家就没所谓了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|塞爱维(CIV)文明联盟    

GMT+8, 2024-4-29 23:31

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表