找回密码
 点一下
查看: 4296|回复: 7

Beta P2 (0.19.0) Native函数变更,开放作弊功能,增加了一些物品栏相关API及其他

[复制链接]
发表于 2010-7-8 02:31:54 | 显示全部楼层 |阅读模式
获得最后创建的演算体以及演算体组的函数。

native actorscope   ActorScopeLastCreated ();
native actorscope   ActorScopeLastCreatedSend ();

native actor        ActorLastCreated ();
native actor        ActorLastCreatedSend ();


决定战报显示数量的函数(其实是战役里的,目前用不上)

native void     BattleReportSetShownInMissionTotal (int inBattleReportId, bool inShown);



用于调节面板位置的函数,这个不错

native void         BoardSetPosition (int inBoard, int inX, int inY);
native void         BoardResetPosition (int inBoard);



控件类型常数中,增加了一个常数,代表Flash控件(不错不错)

const int c_triggerControlTypeFlash                     = 10;



对话框控件函数中增加了获得对话框的函数(奇怪,这函数干嘛用的,获得对话框控件的对话框是啥?得等BN上线后试试看才行)

native int      DialogControlGetDialog (int control);



以下两个函数经过了修改:

native int      PowerLevel (int inPlayer, point inPos, string inLink);
native bool     PowerIsProvidedBy (int inPlayer, point inPos, string inLink, unit inSource, int inMinLevel);


相比上个版本,这两个函数都增加了string inLink这个参数,可以更好地按照行为来区分指定坐标的水晶能量层级。



现在你可以用函数来允许作弊了。


const int c_gameCheatAny               = -1;
const int c_gameCheatCooldown          = 0;
const int c_gameCheatDefeat            = 1;
const int c_gameCheatFastBuild         = 2;
const int c_gameCheatFastHeal          = 3;
const int c_gameCheatFood              = 4;
const int c_gameCheatFree              = 5;
const int c_gameCheatGimme             = 6;
const int c_gameCheatGod               = 7;
const int c_gameCheatMinerals          = 8;
const int c_gameCheatNoDefeat          = 9;
const int c_gameCheatNoVictory         = 10;
const int c_gameCheatResourceCustom    = 11;
const int c_gameCheatShowmap           = 12;
const int c_gameCheatTechTree          = 13;
const int c_gameCheatTerrazine         = 14;
const int c_gameCheatTimeOfDay         = 15;
const int c_gameCheatUpgrade           = 16;
const int c_gameCheatVespene           = 17;
const int c_gameCheatVictory           = 18;
const int c_gameCheatProgress          = 19;
const int c_gameCheatScene             = 20;
const int c_gameCheatTV                = 21;
const int c_gameCheatCredits           = 22;
const int c_gameCheatResearch          = 23;

const int c_gameCheatCategoryPublic         = 0;
const int c_gameCheatCategoryDevelopment    = 1;




启用和允许作弊的函数

native bool     GameCheatsEnabled (int category);


native void     GameCheatAllow (int cheat, bool allow);




增加了一个判断,判断本图是否为暴雪官方地图

native bool     GameMapIsBlizzard ();



增加事件,游戏存储完成

native void     TriggerAddEventSaveGameDone (trigger t);


增加事件,玩家启动作弊(以后抓作弊容易了)

native void     TriggerAddEventCheatUsed (trigger t, int player, int inCheat);


这个函数返回玩家作弊的类型

native int      EventCheatUsed ();



增加两个雇佣兵面板设置函数~~又是战役里的~~现在用不到~~

native void     MercenaryPanelSetCloseButtonEnabled (playergroup players, bool inEnabled);
native void     MercenaryPanelSetDismissButtonEnabled (playergroup players, bool inEnabled);




增加一些行星面板的设置函数,又是战役的

native void         PlanetPanelSetDismissButtonEnabled (playergroup players, bool inEnabled);
native void         PlanetPanelSetBackButtonText (playergroup players, text inText);
native void         PlanetPanelSetBackButtonShortcut (playergroup players, text inText);
native void         PlanetPanelSetBackButtonTooltip (playergroup players, text inText);


增加一些胜利面板设置函数,又是战役的

native void         VictoryPanelSetVictoryText (text inText);

native void         VictoryPanelSetBackgroundFilePath (string inFilePath);
native void         VictoryPanelSetSummaryBackgroundFilePath (string inFilePath);


允许所有玩家积分的函数

native void PlayerScoreValueEnableAll (int player, bool enable);


设置玩家当前显示的头像的模型和动画的函数

native void         PortraitSetModelAnim (int p, string modelLink, string anim, int flags, bool waitUntilLoaded);




现在可以调节和重置计时器窗口的位置

native void     TimerWindowSetPosition (int inWindow, int inX, int inY);
native void     TimerWindowResetPosition (int inWindow);



现在向玩家传输对白文本时可以选择是否隐藏警告面板。以后可能有更多配置选项

const int c_transmissionOptionHideAlertPanel    = 1;

native void                 TransmissionSetOption (int inOptionIndex, bool inValue);



物品栏系列增加一些函数

获得物品栏容器(Container)数量(每个物品栏技能都由数个容器组成,简单地说就是单位身上有好几个包包)
native int       UnitInventoryContainer (unit inUnit);

获得物品在单位的物品栏里的索引(也就是编号)
native int       UnitInventoryIndex (unit inItem);

移动物品,可以指定物品和移动到的目标
native void      UnitInventoryMove (unit inItem, int inContainer, int inSlot);

获得物品所在的格子数(和索引有所不同)
native int       UnitInventorySlot (unit inItem);

获得拥有该物品的单位(应该是吧?其实这些函数还得测试下才能完全确定)
native unit      UnitInventoryUnit (unit inItem);



现在增加了物品栏变更事件,单位拾取物品终于能用事件捕捉到了。
而且比war3的事件精细的多,还分使用、用尽、获得、丢失、拾取、丢弃、购买、典当、给予、接受、移动等等多种事件。

// Inventory changes
const int c_unitInventoryChangeUses             = 0;
const int c_unitInventoryChangeExhausts         = 1;
const int c_unitInventoryChangeGains            = 2;
const int c_unitInventoryChangeLoses            = 3;
const int c_unitInventoryChangePicksUp          = 4;
const int c_unitInventoryChangeDrops            = 5;
const int c_unitInventoryChangeBuys             = 6;
const int c_unitInventoryChangeSells            = 7;
const int c_unitInventoryChangeGives            = 8;
const int c_unitInventoryChangeReceives         = 9;
const int c_unitInventoryChangeMoves            = 10;

native void     TriggerAddEventUnitInventoryChange (trigger t, unitref u, int inChangeType, unitref inItem);



在捕捉上述事件后,还可以获得触发物品、触发物品所在的容器(包包)、在容器内所在的格子、物品目标点、目标单位等等。

// - c_unitEventInventoryChange
native unit     EventUnitInventoryItem ();
native int      EventUnitInventoryItemContainer ();
native int      EventUnitInventoryItemSlot ();
native point    EventUnitInventoryItemTargetPoint ();
native unit     EventUnitInventoryItemTargetUnit ();



消息区域增加了一个,作弊消息区

const int   c_messageAreaCheat              = 9;



增加一些同步帧相关常数

const int c_syncFrameTypeFirst                = 0;

const int c_syncFrameTypeBattleUI             = 20;
const int c_syncFrameTypeMinimapPanel         = 21;
const int c_syncFrameTypeCommandPanel         = 22;
const int c_syncFrameTypeLast                 = 22;


可以强制显示和隐藏飞行单位的界面辅助模型(帮助用户更好定位和选中空中单位)

native void         UIFlyerHelperOverride (playergroup inPlayers, int display);
native void         UIFlyerHelperClearOverride (playergroup inPlayers);


设置小地图镜头雾是否显示

native void         UISetMiniMapCameraFoVVisible (bool visible);






===================以下部分是只有BLZ官方地图才能调用的新函数==============

新增大量成就相关函数,部分只能由官方地图调用(就是你编的地图不能用这些函数)

native void AchievementAward (int player, string name);     //  Blizzard maps only
native void AchievementErase (int player, string name);     //  Blizzard maps only
native void AchievementPanelSetCategory (playergroup players, string name);

native text AchievementPercentText (int player, string category); // Blizzard maps only
native void AchievementTermQuantitySet (int player, string term, int quantity);     //  Blizzard maps only
  

以及一个删除所有战役存档的函数,又是只有blz能用。(怕你不小心把别人的战役存档给删了)

native void     BankDeleteCampaignBanks (int player);     //  Blizzard maps only


这个版本似乎终于有游戏存档函数了,可是为什么是“Blizzard maps only”的?鄙视啊!严重抗议!不能让它持续到正式版去!

native void     GameSaveCreate (text inName, text inDescription, string inImage, bool inAutomatic);     //  Blizzard maps only


现在有函数可以把游戏录成视频然后输出到指定目录和指定文件名哦,而且还可以添加字幕,但是这些函数仍然是只有BLZ能用的函数,鄙视!

native void     MovieStartRecording (string inName);     //  Blizzard maps only
native void     MovieStopRecording ();     //  Blizzard maps only
native void     MovieAddSubTitle (string title, int duration, int timeStamp);     //  Blizzard maps only
native void     MovieAddSubTitleText (text title, int duration, int timeStamp);     //  Blizzard maps only
native void     MovieAddTriggerFunction (string function, int timeStamp);     //  Blizzard maps only


又两个只有blz能用的函数,改变战役设置和进入战役模式。

native void     StorySetChange ();     //  Blizzard maps only
native void     CampaignMode (playergroup players, bool campaignMode);     //  Blizzard maps only


一些挑战模式(一种游戏方式)的界面设置函数,又是只允许blz地图使用的。

native void         UISetChallengeMode (playergroup players, bool challengeMode);     //  Blizzard maps only
native void         UISetChallengeScoreText (playergroup players, string challengeId, text scoreText);     //  Blizzard maps only
native void         UISetChallengeHighScore (playergroup players, string challengeName, int highScore);     //  Blizzard maps only
native void         UISetChallengeCompleted (playergroup players, string challengeName, bool completed);     //  Blizzard maps only
 楼主| 发表于 2010-7-8 02:32:34 | 显示全部楼层
记得之前就有人提问如何捕捉物品获得事件的?现在可以了呢。
回复

使用道具 举报

发表于 2010-7-8 03:04:16 | 显示全部楼层
头目V5

什么时候技能栏不再这么死板就好了
回复

使用道具 举报

发表于 2010-7-8 07:25:05 | 显示全部楼层
呜……还是没有触发可以捕捉镜头转动的事件,只有个玩家操作滚屏的镜头移动事件
回复

使用道具 举报

发表于 2010-7-8 08:40:19 | 显示全部楼层
头目,没更新也能捕捉单位获得物品的事件

就是单位在第6阶段使用物品栏的技能,这个事件就会捕捉到单位获取物品
技能目标就是获取的物品
回复

使用道具 举报

发表于 2010-7-8 08:42:39 | 显示全部楼层
但是现在能在游戏里用脚本修改物品的提示和名字么?不能的话,随即物品系统是不是还得自己画UI了~~
回复

使用道具 举报

发表于 2010-7-8 08:59:55 | 显示全部楼层
http://pastebin.com/zxd1uzKV
咦这里怎么说Point和Wait函数都暂时被去掉了


测试了一下,至少point和 wait都米问题
回复

使用道具 举报

发表于 2010-7-8 13:13:37 | 显示全部楼层
Wait函数当然在~~怎么可能不在~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-22 23:11 , Processed in 0.036563 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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