導航:首頁 > 程序命令 > rct命令

rct命令

發布時間:2022-11-16 19:25:01

⑴ 怎麼使用stata做非RCT資料的系統比較並做森林圖

你可以看看《實用循證醫學方法學》,講的很詳細,簡單說來,一般命令是metan,
率的資料就是:metan rate ser_all, (random)
四格表資料就是:metan a b c d, (or) (random)
OR或RR資料就是:metan lnor lnlci lnuci
其中ser_all=sqrt(rate*(1-rate)/n)
lnor=ln(or)

⑵ 紅警中怎樣製造母牛

那是改得

自己看哈
NO.1:
我先教大家修改RULES.INI文件,這個文件可以到網上下載

1.查找TeamDelays,這是RULES中最重要的AI命令.如TeamDelays=1200,1350,1600,它分別對應冷酷的,中等的,簡單的敵人的部隊建造間隔.一般設為250,250,250,與下面的代碼連用的話你將體會到敵人連續攻擊的厲害!
MinimumAIDefensiveTeams 電腦最小的防禦部隊數量
MaximumAIDefensiveTeams 電腦最大的防禦部隊數量
AISafeDistance 電腦聚集部隊離敵方(我方)基地的距離
電腦識別幻影坦克的幾率
AttackInterval 電腦每次進攻的時間間隔(建議設為0)
AttackDelay電腦首次進攻的時間間隔(建議設為0)
PowerSurplus 電腦保留電量的大小(建議設為250)
repair and refit RefundPercent=50% 這是規定拍賣建築物時價格與實際造價的比例為50%,要是改為120%就是說賣 價比造價高(有點變態!)

2.空投規則
GEF
;************ American Paradrop Special Rules ***********
;These two lists _must_ have the same number of elements
;AmerParaDropInf=E1,GHOST,ENGINEER
;AmerParaDropNum=6,6,6 ;How many of each of those infantry

AmerParaDropInf=E1 ;(美國空投步兵類型)
AmerParaDropNum=8 ;(美國空投步兵數量)

AllyParaDropInf=E1 ;(盟軍佔有科技機場空投步兵類型)
AllyParaDropNum=6 ;(盟軍佔有科技機場空投步兵數量)

SovParaDropInf=E2 ;(蘇軍佔有科技機場空投步兵類型)
SovParaDropNum=9 ;(蘇軍佔有科技機場空投步兵數量)
可以把E1和E2改成COW(母牛)如:AmerParaDropInf=COW 你就會看到美國空投母牛了(搞笑!)E1是美國大兵,E2是動員

3. 這是遭遇戰模式下的玩家設置,加*的最好不要修改
[MultiplayerDialogSettings]
MinMoney=5000(可調最小資金)
Money=10000(默認資金)
MaxMoney=10000(可調最大資金,不要超過50000,否則數據有可能溢出)
MoneyIncrement=100
MinUnitCount=1(開始時最小單位數)*
UnitCount=10(開始時默認單位數)
MaxUnitCount=10(開始時最大單位數)
TechLevel=10*
GameSpeed=0*
AIDifficulty=0*
AIPlayers=0*
BridgeDestruction=yes(橋是否可摧毀)
ShadowGrow=no
Shroud=yes
Bases=yes*
TiberiumGrows=yes(礦石是否自然增長)
Crates=yes(升級工具箱)
CaptureTheFlag=no*
HarvesterTruce=no*
MultiEngineer=no*
AlliesAllowed=no(是否允許結盟)
ShortGame=yes(快速游戲)*
FogOfWar=no*
MCVRedeploys=yes(基地重新部署)*

4.自然規則
在RULES.INI中查找下列語句
RepairPercent=15% (修理建築物所耗資金與原價比例)
BuildSpeed=.7 (建造時花費1000元所用時間,默認42秒,若改為".1"則只用6秒,暴快!
SoloCrateMoney=2000 (獲得金錢升級工具箱所得資金)
ReloadRate=.3 (戰機或反潛直升機重新裝彈速度)
GrowthRate=5 (礦石自然增長速度,該值越大越慢)

5.單位注冊名字
步兵類:
[E1]美國大兵 [SNIPE]狙擊手 [E2]動員兵 [FLAKT]防空步兵 [SHK]磁暴步兵
[ENGINEER] 盟軍工程師 [SENGINEER]蘇軍工程師 [JUMPJET]火箭飛行兵
[GHOST]海豹部隊 [TANY]譚雅 [YURI]尤里 [IVAN]瘋狂伊萬 [DESO]輻射工兵
[CLEG]超時空軍團兵 [DOG]蘇軍警犬 [ADOG]盟軍警犬 [SPY]間諜 [TERROR]恐怖分子
戰車類
[APOC]天啟坦克 [DTRUCK]自爆卡車 [V3]V3火箭車 [DRON]恐怖機器人 [HARV]武裝采礦車
[CMIN]超時空采礦車 [AMCV]盟軍基地車 [SMCV]蘇軍基地車 [HTK]防空履帶車
[HTNK]犀牛坦克 [MTNK]灰熊坦克 [MGTK]幻影坦克 [FV]多功能戰斗車 [TNKD]坦克殺手
[TTNK]磁能坦克 [SREF]光棱坦克
艦船類
[SUB]攻擊潛艇 [DLPH]海豚 [AEGIS]神盾巡洋艦 [CARRIER]航空母艦 [DRED]無畏級戰艦
[HYD]海蠍 [DEST]驅逐艦 [SQD]烏賊 [LCRF]盟軍氣墊船 [SAPC]蘇軍氣墊船

帖子相關圖片:

作者: 61.161.70.* 2005-8-22 15:39 回復此發言

--------------------------------------------------------------------------------

2 紅警及尤里的復仇規則修改教程!!行少製作篇(獨家)!!!!!
戰機類
[ORCA]入侵者戰機 [SHAD]夜鷹直升機 [ZEP]基洛夫飛艇 [BEAG]黑鷹戰機
建築類
[GATECH]盟軍作戰實驗室 [NATECH]蘇軍作戰實驗室 [GAWEAP]盟軍戰車工廠
[NAWEAP]蘇軍戰車工廠 [GAREFN]盟軍礦廠 [NAREFN]蘇軍礦廠 [GAOREP]礦石精煉器 [GAYARD]盟軍船塢[NAYARD]蘇軍船塢 [GAAIRC]空指部 [AMRADR]美國空指部
[GASPYSAT]間諜衛星[GAGAP]裂縫產生器 [GAPOWR]盟軍發電廠 [NAPOWR]蘇軍發電廠
[NAHAND]蘇軍兵營 [NARADR]雷達 [NADEPT]蘇軍修理廠[NACLON]復制中心
[GAPILE]盟軍兵營 [GADEPT]盟軍修理廠[GAWALL]盟軍圍牆 [NAWALL]蘇軍圍牆
[NAIRON]鐵幕裝置 [GAWEAT]天氣控制器 [GACSPH]時空轉移器 [NAPSIS]心靈感應器
[TESLA]磁暴線圈 [ATESLA]光棱塔 [NAMISL]核彈井 [NALASR]哨戒炮
[GAPILL]碉堡 [NASAM]愛國者導彈 [NAFLAK]防空炮 [NANRCT]核電站 [GTGCAN]巨炮

如何提取紅警游戲裡面的文件:
紅警游戲目錄下有很多以mix為擴展名的文件,它們實際上是多個文件的集合,經過打包形成了一個文件(你可以把它想像成壓縮文件)。紅警游戲裡面的許多游戲屬性,都寫在ini為擴展名的文件內,而ini文件就被藏在mix文件里。我們要修改游戲,就是把ini文件從mix文件中提取出來,經過對ini文件進行修改,以達到我們修改游戲的目的。
要想把從mix文件中提取文件,目前最常用的工具就是「Xcc Mixer」。滌塵同志的主頁「紅警風暴」網站一直提供最新版本的「Xcc Mixer」系列工具,如果你手頭還沒有,趕快去下載吧。
下載後,解壓縮,直接執行裡面的「XCC Mixer.exe」文件即可運行該程序。
它的程序界面是這樣的(本篇以XCC Mixer 1.24版為例):

可以看到,這個窗口分為兩個部分,左側是一個目錄窗口,它顯示當前文件夾的內容及電腦內所有驅動器的分布情況:第一行「a:\」指的是電腦中的A盤驅動器,第二行至第五行指的是硬碟上從C盤到F盤四個分區,第六行「g:\」是光碟驅動器。當然了,每台電腦的分區各不相同,也許你的硬碟分區較多,「g:\」就不是光碟驅動器了。第七行「..」指的是當前文件夾的上一級目錄。你只要用滑鼠雙擊上面的任一行,就可進入相應的目錄。
我們利用上面的窗口就可以打開mix文件了。
下面以《陰雲密布》為例詳細介紹從mix文件中提取文件的方法:
在上面的窗口中用滑鼠左鍵單擊「文件」->「打開」,彈出一個標題為「打開」的窗口,在該窗口內找到並進入游戲目錄,找到一個「expandmd01.mix」文件,在該窗口內雙擊這個文件,我們就打開了這個mix文件。如下圖:

在左側的窗口中可以看到這個mix文件中所包含的全部文件信息,它顯示了每個文件的文件名、文件類型、文件大小等信息。用滑鼠左鍵單擊其中的某個文件(以「rulesmd.ini」為例),在右側窗口立即可以顯示這個文件的部分內容預覽。
如果你要編輯這個文件(這個文件很重要),必須把它提取出來。方法是:用滑鼠右鍵在左側窗口單擊這個文件,彈出的右鍵菜單中有一個選項是「釋放(E)...」,用滑鼠左鍵單擊一下這個選項,出現一個以「另存為」為標題的窗口,你可以把這個「rulesmd.ini」文件釋放到硬碟的任意一個地方,以方便你以後對它進行編輯。

作者: 61.161.70.* 2005-8-22 15:39 回復此發言

--------------------------------------------------------------------------------

3 回復:紅警及尤里的復仇規則修改教程!!行少製作篇(獨家)!!!
Rules編輯
士兵系列代碼

士兵屬性
Category=Soldier 只有士兵才能用,代表由訓練類建築(Factory=InfantryType)來「建造」他們

佔領建築
Occupier=yes 能否佔領平民建築=能
OccupyWeapon=UCMP5 佔領平民建築後使用的武器
EliteOccupyWeapon=UCMP5E 3級時佔領平民建築後使用的武器
OccupyPip= 建築下面的人口標志小格的顏色,一共有5種顏色:PersonBlue為藍色,盟軍專用;PersonRed為紅色,蘇軍專用;PersonPurple為紫色,尤里專用;PersonGreen為綠色,中國專用;沒有此語句默認為白色

IFV裝載時顯示的名稱
UseOwnName=true 一直使用自己的名稱,比如將伯里斯裝入步兵戰車後,顯示為「伯里斯 多功能步兵戰斗車」

不可升級
Trainable=no 用了這個以後該單位無論殺多少人都不會升級,所以只用於遙控性單位或自爆性的單位,還有狗狗。但是強行拖進部隊訓練場後仍然可以升3級。沒有此語句則默認可以升級。

盔甲類型 注意,盔甲類型和防禦能力無關,只和彈頭有關,即是說,有時候無盔甲比重型盔甲更經打
Armor=none 無盔甲
Armor=flak 英雄盔甲
Armor=Plate 重型盔甲

探測隱形
Sensors=yes 能探測隱形單位=能
SensorsSight=8 探測范圍=8格,即當靠近敵放隱形單位8格以內時,敵放隱形單位將現身

維修建築
Engineer=yes 凡是有了這個語句的單位都成了工程兵,可以進入己方受損建築進行維修或進入敵放建築強占

行動范圍
MovementZone=Infantry 專用於步兵,位置判定在地面上高度1層以下的范圍,只能在陸地上行走
MovementZone= 專用於飛行兵,位置判定在地面上高度1層以上的范圍,可以到達任何地方

動作類型
Locomotor={4A582744-9839-11d1-B709-00A024DDAFD1} 步兵專用「行走」,單點陣圖像為SHP,必須在Art里設置Sequence。默認SpeedType=Foot
SpeedType=Amphibious 兩棲步兵單位專用,必須有水中的SHP動畫以及對應的Sequence,同時需要加上語句「MovementZone=AmphibiousDestroyer」,這樣就可以水陸兩棲了。詳細代碼請見海豹。
Locomotor={4A582746-9839-11d1-B709-00A024DDAFD1} 飛行兵專用「飛行」,速度方式默認為SpeedType=Winged
SpeedType=Hover 使用了這個語句的飛行兵不會在空中不動,而是不停的上下浮動,同時需要加上語句「MovementZone=」,否則就是在地表懸浮了

IFV裝載時的武器
IFVMode=0 只能用於步兵,對飛行兵毫無意義。數字代表IFV的武器和炮塔圖形,共18種武器

免役
ImmuneToVeins=yes 機動部隊不會誤傷他
ImmuneToPsionics=yes 精神控制對他無效,通常用於智力底下的單位、遙控單位、飛行式空軍單位、英雄單位或召喚者單位
ImmuneToRadiation= yes 輻射對他無效

非人類單位
NotHuman=yes 動物專用,不知道究竟有什麼實際的用處,通常人類單位都有語句「Category=Soldier或Civilian」,而動物沒有
Natural=yes 野外生物專用,不知道有什麼實際用處,通常和「NotHuman=yes」同時存在。狂獸人居然還有「Unnatural=yes」,難道是指半人+半獸?

平民單位
Category=Civilian 使用了這個語句後單位將隨機地到處亂走,被攻擊後有逃跑的動作,但這個動作必須由Sequence指定

對戰初始兵力
AllowedToStartInMultiplayer=yes 使用yes的話就會在對戰開場時隨基地車出現,no則不出現。一個派別至少必須有一種士兵單位作為初始兵力,否則就會彈出出錯對話框

自動進入范圍防禦狀態
DefaultToGuardArea=yes 有了這個語句的單位,不需要人工指揮,只要達到GuardRange就會自動迎敵,通常用於射程較短的單位

永不畏懼
Fearless=yes 只用於控制單位的語音,永不畏懼即不管怎樣挨打都不會叫苦,「VoiceFeedback和DieSound」就失去作用了

人口數量限制
BuildLimit=1 一次最多隻能出這么多個這種單位,對機動部隊和建築同樣有效(載入物除外),這個限制的數值不能超過255,通常限制英雄和特殊建築只能有1個,對其他單位和建築只要限製得合理平衡就好

帖子相關圖片:

作者: 61.161.70.* 2005-8-22 15:45 回復此發言

--------------------------------------------------------------------------------

4 回復:紅警及尤里的復仇規則修改教程!!行少製作篇(獨家)!!!

機動部隊系列代碼
戰車屬性
Category=AFV 只有戰車和戰艦才能用,代表由陸軍工廠類建築(Factory=UnitType和WeaponsFactory=yes)來生產他們
Category=Support 用處同上,沒有什麼實際意義,「Support」難道是指「後勤部隊」?
Category=Transport 運輸工具專用,有了這個語句的戰車可以裝人或坦克

戰艦屬性
Naval=yes 除了必須使用戰車屬性的其中一種以外,還需要這個語句,代表由海軍工廠類建築(Factory=UnitType、WeaponsFactory=yes、Naval=yes和WaterBound=yes)來生產他們

空軍屬性
Category=AirPower 可以飛的機動部隊專用,代表由陸軍工廠類建築或機場類建築(Factory=AircraftType和Helipad=yes)來生產他們
ConsideredAircraft=yes 有此語句的飛機將從工廠的天窗出來
AirportBound=yes 有此語句的飛機將由機場類建築生產

裝甲類型 注意,裝甲類型和防禦能力無關,只和彈頭有關,即是說,有時候輕型裝甲比重型裝甲更經打
Armor=light 輕型裝甲
Armor=medium 中型裝甲
Armor=heavy 重型裝甲
Armor=special_1 輕型特殊裝甲,我用他來做攻擊機專用裝甲
Armor=special_2 重型特殊裝甲,我用他來做戰斗機專用裝甲

旋轉炮塔
Turret=yes 可以不動車身,只需轉動炮塔就可以打八方,海陸空通用。炮塔必須有對應的VXL和HVA

固定炮塔
Turret=no 沒有炮塔的單位專用,如果給灰熊用上,則灰熊沒了腦袋。通常用於戰斗機,只要其武器里有語句「OmniFire=yes」
那麼它不動機身就可以從固定的地方(如機翼兩端)發射出武器對付八方的敵人,這招叫全向開火。詳細請見飛龍

雷達隱形
RadarInvisible=yes 敵方在小地圖里看不到它的存在,只在大地圖里能看到。

可以探路
MoveToShroud=yes 默認的空軍是不能把黑幕探亮的,有了這個語句,飛機就可以當作「飛在空中的坦克」用,可飛進黑幕探路

陸軍動作方式
Locomotor={4A582741-9839-11d1-B709-00A024DDAFD1} 用於車輛單位,圖像為VXL的單位能夠正常的旋轉、移動、搖晃、上下山,若是SHP則沒有以上動作。它的速度方式默認為SpeedType=Wheel,只能在地面上行動

Locomotor={4A582742-9839-11d1-B709-00A024DDAFD1} 用於兩棲單位的「懸浮」,在半空上下浮動,位置判定在地表,可以下水,如果又有語句「SpeedType=Amphibious和MovementZone=AmphibiousCrusher」,那麼在水中的速度將大大快於岸上,但單位將與地面接觸,失去了懸浮效果。詳細請見風暴

不能停留於橋下
TooBigToFitUnderBridge=true 即使你讓他們運動到橋下時按「S」強行停止,他們也會自動出來,除非是任務腳本的設置

碾壓物體
Crusher=yes 陸軍單位專用,可以碾壓士兵
OmniCrusher=yes 戰斗要塞的特點,可以碾壓任何有生命的單位,包括圍牆,需要和語句「MovementZone=CrusherAll」連用
OmniCrushResistant=yes 禁止被戰斗要塞或其他戰車碾壓,效果和「Crusheable=no」相仿

隱藏於箱箱中
CrateGoodie=yes 在隨機部隊寶箱中能拾得它,千萬不要用於戰艦和飛機,否則小心出錯,最好不要用於人,否則BT

運輸單位
PipScale=Passengers 下方用小格表示容量空間
Passengers=10 容量空間大小,需要以被載者的體積來定可運載數量
OpenTopped=yes 被載者可以在裡面向外開火,戰斗要塞的特點
SizeLimit=6 裝載口徑,體積大於6的東西都無法進入
EnterTransportSound=EnterTransport 裝載聲音
LeaveTransportSound=ExitTransport 釋放聲音,這兩個聲音最好不要去更改

不可放入坦克堡壘
Bunkerable=no 沒有此語句時默認可以放入

不接受攻擊命令
StupidHunt=yes 常用於片面武器的單位,即使你強行叫它去打它不能攻擊的東西,它也不會動

移動攻擊
OpportunityFire=yes 可以一邊移動一邊開火,但命中率~~,所以通常用於武器為導彈、光束、機槍等的單位,如果武器為炮彈,則大有可能打偏。這個語句對沒有炮塔而且又不能全向開火的單位無效

作者: 61.161.70.* 2005-8-22 15:45 回復此發言

--------------------------------------------------------------------------------

5 回復:紅警及尤里的復仇規則修改教程!!行少製作篇(獨家)!!!

噴氣式飛行
JumpjetSpeed=32 平飛速度
JumpjetClimb=7 爬升速度,遇到山脈、樓房時抬升飛行高度時的上升速度
JumpjetCrash=15 被擊落後的下落速度,不可大於15,否則就會在地面上打轉,一直不死,且無法被攻擊,也無法接受指令,因為判定認為它為已經死亡
JumpJetAccel=10 啟動加速度,太大的話看不出加速的感覺
JumpJetTurnRate=2 掉轉方向的速度,數值越小轉彎半徑就越小,轉彎越快
JumpjetHeight=1000 平飛時離地面的高度,1000最為合適,大致在第6層到第8層之間
JumpjetNoWobbles=yes 禁止浮動,飛機在空中停留不動,不會上下浮動

永不落地
BalloonHover=yes 飛機從工廠出來以後就再不落地,除非遇到變形部署或被擊落

可以落地
Landable=yes 常用於運輸機,在地面上,只要沒有指令時就會自動著陸,除非有人占據了它的著陸點

空中攻擊
HoverAttack=yes 如果飛機在地面,那麼必須升空以後方可攻擊敵軍

上方攻擊
Fighter=yes 如果飛機處於它攻擊對象的頭頂上時仍然可以開火而且能夠命中,否則不行,多用於攻擊機和轟炸機

毫無主見
CanPassiveAquire=no 永遠只在得到指令後才按計劃行動,自己不會變通,更不會私自行動
CanRetaliate=no 打不還手,如果在執行指令(哪怕只是移動)的過程中遭到攻擊也不會自動還手,此二語句最好不要濫用,通常只用於不易控制的單位、積極性太高的單位、極度危險的單位(如血咒)或是飛行式攻擊機(如黑鷹)

展開部署
DeploysInto=DROD 按「D」展開後變成一個建築,比如基地車變成基地

變形部署 注意,部署後將只能使用副武攻擊
IsSimpleDeployer=yes 表示按「D」部署後仍然還是它自己,看似變成了另外一個單位,其實這只是障眼法
UnloadingClass=MMBTNK 部署後更換為MMBTNK的皮膚,這個MMBTNK必須是另一個有效的單位。其實完全可以繼續使用它自己的皮膚
DeployingAnim=MMBDEPL 部署過程的動畫,不要動畫則是立刻變,看起來不連貫
DeployFire=yes 部署後可以開火,當然要能開火,否則還部署它干什麼
Turret=yes 部署後使用旋轉炮塔,當然要使用,因為部署後單位不能轉動和移動,沒有旋轉炮塔還打什麼打

釋放部署
Deployer=yes 表示按「D」後使用副武攻擊,這種副武由於是以它為中心向四周發散,所以成為釋放型副武,通常有震盪波、混亂氣流等。可以連續釋放多次
DeployFire=yes 表示部署後立刻以副武開火
UndeployDelay=150 這個語句對戰車無效,只對士兵有效,代表他在釋放的時候將硬直這么多時間不能做其他任何動作,其硬直動作需要SHP支持並需要設置Sequence

建築系列代碼
建築屬性
BuildCat=Tech 科技類,沒有生產作用的建築,只提供建造前提,如作戰實驗室
BuildCat=Power 能源類,專門用於提供電力,只有這類建築當Power值為正時不會損失動畫效果
Factory=BuildingType 基地類,專門建造建築。
BuildCat=Resource 資源類,專門負責採集礦石,只有這類建築可以支持礦車進入並卸礦,需要和語句「DockUnload=yes及Refinery=yes」連用。前4類出現在建築欄
BuildCat=Combat 防禦類,出現在防禦欄

材料類型 注意,材料類型和防禦能力無關,只和彈頭有關,即是說,有時候木質材料比鋼精混凝土更經打
Armor=wood 木質材料
Armor=steel 鋼鐵材料
Armor=concrete 鋼精混凝土材料

生產類型
Factory=InfantryType 兵營類,訓練步兵,可以選擇集合點
Factory=UnitType 工廠類,生產戰車或噴氣式戰斗機,可以選擇集合點,需要與「WeaponsFactory=yes」連用。如果有「WaterBound=yes」則是海軍工廠,生產戰艦
Factory=AircraftType 機場類,生產飛行式攻擊機

維修作用
UnitRepair=yes 維修廠,維修破損的戰車,可以選擇出廠點

訓練作用
Armory=yes 步兵訓練場,非3級的步兵可以進入,出來後直接升成3級,不能選擇集合點,但如果把訓練場加上「Factory=InfantryType」,那麼就可以選擇集合點,但是訓練場就成了2號兵營了

作者: 61.161.70.* 2005-8-22 15:45 回復此發言

--------------------------------------------------------------------------------

6 回復:紅警及尤里的復仇規則修改教程!!行少製作篇(獨家)!!!
Ammo=9999 訓練數量,只能訓練9999個人,通常把這個數字設多些(不能用-1),以保證幾乎用不完的

載入作用
Upgrades=2 用於主體建築,以它為基礎,往它上面還可以載入2個部分
PowersUpBuilding=UAPOWR 用於附屬部分,載入於主體建築UAPOWR(地熱發電廠),即只能放在主體建築上面,不能放在空地或其他地方
PowersUpToLevel=-1 用於附屬部分,表示總共可以載入的次數,通常需要無限載入,直到用滿主體建築的載入量2個為止,詳細請見地熱發電廠和能量渦輪之間的關系

回收建築
UndeploysInto=FLMCV 建築可以被命令移動而被拖開成為戰車單位,通常用於基地的建立和回收

免費單位
FreeUnit=FLMIN 通常用於礦廠,建立以後出現一個免費贈送的單位。要是這個建築可以反復收起來再展開,那麼就可以生成一大堆免費單位,這么BT的招數專用於布雷戰車,如果免費單位不是地雷而是光棱,那麼就真的太BT了

用圍牆包圍
ProtectWithWall=yes 給電腦用的,電腦會給這個建築以圍牆保護

可被滲透
Spyable=yes 間諜可以進入,對於不同類的建築可以產生一些不同的效果,進入機場以外的生產類建築可以給單位加1級,進入雷達可以使對方地圖全黑,進入電力類建築可以斷電1分鍾,進入資源類建築(收起來的農民礦廠不算)可以偷錢,進入超級武器可以重置其充能時間,進入實驗室可以偷出一些科技單位。

可被吸取
Drainable=yes 飛碟可以吸取它的能量,或停止工作,或資金被吸收

可被佔領
Capturable=true 工程兵可以進入佔領,否則的話不能進入

特殊平台
Bib=yes 一些有特殊功能的建築需要這個平台,比如機場用來停飛機,地面單位可以從這個平台上經過,這個Bib需要圖形和ART的支持

無人控制
BaseNormal=no 這種建築不能作為連接基礎,通常用於防禦建築和船廠以及一些可以相隔很遠建造的建築
Crewed=no 這種建築被擊毀或賣掉後不會出來殘兵,這個語句對地面戰車也有效,但最好不要用於飛機和戰艦,否則小心出錯

過載建築
Overpowerable=true 這種建築可以被有「充能功能」的單位充能從而造成供能過多,實現攻擊力加強,過載前用主武攻擊,過載後的使用副武攻擊,比如磁暴線圈和光明聖碑。

彈體系列代碼
常規彈體
Damage=100 武器的攻擊力,對於一些特殊的武器它還表示其他一些量,比如混亂氣流的混亂時間、偵察機的探路面積、心靈控制可變敵人的總數等。1代表有特殊作用,可以攻擊,但不造成傷害,0和2代表不能攻擊,負數代表可以攻擊,但不是傷害而是加血,比如維修車
AmbientDamage=200 武器的穿偷攻擊力,只有當武器類型為聲波和粒子系統類時才可以有穿偷效應
ROF=80 武器的發射頻率,60表示1秒一次,數字越大就停頓得越久才發第二炮
Range=15 武器射程上限
MinimumRange=8 武器射程下限
Projectile=Cannon 武器的射彈形狀及飛行軌跡,最常用的是Invisible一類無實體的射彈類型
Speed=40 彈體飛行速度,數字越大就飛得越快,但這個速度只對炮彈和導彈兩類有實體的彈體有效
Warhead=ApocAP 彈體對應的彈頭
Report=ApocalypseAttackGround 開炮時的炮口聲音
Anim=GUNFIRE 開炮時的炮口動畫,比如坦克炮開火時炮口有火花
DecloakToFire=no 當使用這個武器的單位處於隱形狀態或被隱形屏蔽狀態時,他開火是不會顯形的
Burst=2 一炮發射2個炮彈,每一個炮彈都有攻擊力,所以2個炮彈將造成雙倍攻擊力,建議這個數字不要大於4
Bright=yes 彈頭擊中目標或地面時將爆出一團閃光,Damage的值越大那麼閃光面積就越大

隱蔽的彈體
RevealOnFire=no 這種單位在開火的時候不會顯示給對方看,通常用於隱形單位、幻影單位和狙擊單位

游戲平台定死了的彈體
IsLaser=true 激光類武器,其Projectile=Invisible類最好
IsMagBeam=yes 磁電波類武器,其Projectile=Invisible類最好

⑶ 網易我的世界手機版effrct指令提升生物血量無效,是生物種類限制嗎如果不是要怎麼加血量

因為它是亡靈生物,你給他醫療沒用,第一個health——boost是提高血量上限,
給個採納唄!

⑷ 電腦列印藍屏了怎麼辦什麼原因啊

出現藍屏,版主就該立即記錄下藍屏代碼,這樣就可以依據代碼對號入座,這樣問題就很容易解決了。回答版主的問題,首先我先說下藍屏的原因有哪些,這樣讓版主對藍屏有個大致的了解。其次,我在最後附上了一些藍屏代碼,供版主依代碼來解決問題,當然代碼很多我不可能全部列出來完。剩餘的,版主可以在最後的鏈接去查看更多代碼。電視機會出現藍屏,電腦也會出現"藍屏"。電腦出現"藍屏"時還會出現一連串警告,輕者只要按ESC就能返回,重者就會出現死機,使人十分煩惱。出現"藍屏"無外有二種情況,一種是軟體引起的,另一種是硬體引起的,軟體引起的"藍屏"故障,一般重裝系統都能解決。但也可以不重裝系統來解決。而硬體引起的"藍屏"故障,要根據具體的情況分別解決。 一、軟體引起的"藍屏"故障 1、重要文件損壞或丟失會引起"藍屏"故障(包括病毒所致)。 WIN中VxD(虛擬設備驅動程序)或.DLL(動態連接庫)之類的重要文件丟失會出現"藍屏警告"。解決的辦法是利用Win的啟動盤中的"Ext"來恢復被損壞或丟失的文件,步驟如下: (1)、先用WIN的啟動盤起動電腦,在提示符下敲入"Ext"命令; (2)、在提示"Please enter the path to the Windows CAB files (a) :" 後輸入WIN安裝壓縮包所在的完整路徑,回車,如"E:\Pwin2003\Win2003; (3)、在提示"Please enter the name (s) of the file (s) you want to extract:"後輸入你丟失的文件名,如"BIOS.Vxd",回車; (4)、在解壓路徑提示"Please enter path to extrct to (' Enter' for current directory): " 後輸入文件將被解壓到的完整路徑,如"C:\Windows\System" 並回車,後面出現的提示,只要按YES回車即可,得新啟動後就能恢復系統。註:因事先記下丟失的文件名,以便恢復) 如是病毒引起,可用殺毒軟體來殺毒,並及時恢復中毒前的備份; 如果能啟動圖形界面,可採取重裝主板以及顯示卡的驅動程序,和進行"系統文件掃描"來恢復被破壞或丟失的文件,可從開始菜單內附件中的系統工具中找到; 2、注冊表損壞導致文件指向錯誤所引起的"藍屏" 在注冊表被改動後或受到破壞,在開機或在調用程序時出現"藍屏",並且屏幕有出錯信息(包括出錯的文件名)。 --解決方法是恢復注冊表備份,重新啟動計算機,切換到MS-DOS方式,進入Windows子目錄,鍵入Scanreg\regstore 後回車,就可恢復最近一次注冊表 3、在卸載程序後出現"藍屏",多數是由於程序卸載不完善造成。解決辦法:首先記下出錯文件名,然後到注冊表中找到以下分支"HKEY_LOCAL_MACHINE\Sysytem\CurrentControlSet\Services\VxD",在"查找"中輸入出錯的文件名,把查到鍵值刪除即可。 4、在System.ini文件錯誤引起的"藍屏",由於軟體卸載或安裝時沒有即時更新System.ini造成"藍屏"的,解決辦法:禁用注冊表中該項或重裝相應軟體或驅動程序; 由於Win98的spl和Microsoft的Vxd_fix.exe補丁程序對Win98的穩定起著重要的作用,可到華軍網站下載補丁Vxd_fix.exe. 5、系統資源耗盡引起的藍屏。這一類故障主要是三個堆資源(系統資源、用戶資源、GDI資源)佔用有情況有關。 --打開資源監視器,看一下剩餘資源的情況,如這三種資源都 在50%甚至更低,就很容易出現"非法操作"、"藍屏"、"死機"。因此,必須減少資源浪費,減少不必要的程序載入,避免同時運行大程序(如圖形、聲音和視頻軟體),如載入計劃任務程序、輸入法和聲音指示、音效卡的DOS驅動程序,系統監視程序等; 6、DirexctX問題引起的"藍屏"故障。如DirectX版本過高、過低;游戲與它不兼容或是不支持;輔助文件丟失;顯卡對它不支持,都可能造成此故障。升級或重裝DirectX,嘗試更新顯卡的BIOS和驅動程序,或升級顯卡。 7.軟體不兼容導致的。二、硬體引起的"藍屏"故障

⑸ 打開文件時出現載入資源文件失敗如何處理

1、首先打開昨天工作的VS2012項目顯示載入失敗,如果多試幾次還是不行,提示該項目需要用戶輸入,或是去C盤看一下的文件夾。

⑹ 法蘭克數控銑床PLC功能指令解釋數控高手請進。。

⑺ tar命令是怎麼使用

tar
格式: tar [選項] [文件目錄列表]
功能: 對文件目錄進行打包備份
選項:
-c 建立新的歸檔文件
-r 向歸檔文件末尾追加文件
-x 從歸檔文件中解出文件
-O 將文件解開到標准輸出
-v 處理過程中輸出相關信息
-f 對普通文件操作
-z 調用gzip來壓縮歸檔文件,與-x聯用時調用gzip完成解壓縮
-Z 調用compress來壓縮歸檔文件,與-x聯用時調用compress完成解壓縮

1.用tar打包一個目錄下的文件:#tar -cvf /mnt/lgx/a1.doc
生成一個以.tar為擴展名的打包文件

2.用tar解開打包文件:#tar -xvf /mnt/lgx/a1.doc.tar
通常情況下,tar打包與gzip(壓縮)經常聯合使用。方法:
首先用tar打包,如:#tar -cvf /mnt/lgx/a1.doc (產生a1.doc.tar文件)
然後用gzip壓縮a1.doc.tar文件,如:#gzip /mnt/lgx/a1.doc.tar (產生a1.doc.tar.gz文件)
3.解壓a1.doc.tar.gz文件
方法1:
#gzip -dc /mnt/lgx/a1.doc.tar.gz (產生a1.doc.tar文件)
#tar -xvf /mnt/lgx/a1.doc.tar (產生a1.doc文件)
這兩次命令也可使用管道功能,把兩個命令合二為一:
#gzip -dc /mnt/lgx/a1.doc.tar.gz | tar -xvf
方法2:使用tar提供的自動調用gzip解壓縮功能
#tar -xzvf /mnt/lgx/a1.doc.tar.gz
經過tar打包後,也可用compress命令壓縮(註:gzip比compress壓縮更加有效),產生一個以.tar.Z的文件,在解包時,可先用 「uncompress 文件名」格式解壓,然後用「tar -xvf 文件名」解包。也可直接調用「tar -Zxvf 文件名」解包。

tar命令詳解(很好的中文說明)
怎樣使用tar命令打包(備份)文件?
A:The syntax of tar is:
tar [options][files]
The options used most often with tar are as follows:
c Creates a new backup,overwriting any files already on the backup destination.
x Extracts files from backup media.
t Lists the contents of backup media.
v Displays the name of each file being processed.
f Creates backups on a specified device.
u Adds files to the backup if they are not already there,or if they have been modified since they were last written on the backup.
步驟:
1)估算打包文件的大小,確定使用檔案媒體(archive media)的空間,用命令 -s
例如:
$ lf
a.out* fork.c mbox time.c
atoi.c int.c memcpy.c vi
$ -s
296 .
$
該例顯示的296代表the total number of 512-byte blocks,計算:512*296/1024=148kilobytes.
2)製作備份,用命令tar cvf /dev/fd0135ds18 .(將該目錄下的所有內容備份到1.44英寸軟盤中 where c causes a new backup to be created,v causes each file to be displayed as the backing up takes place,and f causes the subsequent argument–/dev/fd0135ds18 to be the destination of the backup.)
註:平時硬碟上的備份,我們一般用命令tar cvf filename.tar .
例如:
$ tar cvf wuyd.tar .
a ./.profile 2 tape blocks
a ./.lastlogin 0 tape blocks
a ./mbox 10 tape blocks
a ./fork.c 2 tape blocks
a ./memcpy.c 1 tape blocks
a ./.sh_history 3 tape blocks
a ./a.out 91 tape blocks
a ./time.c 1 tape blocks
a ./vi 169 tape blocks
a ./int.c 1 tape blocks
a ./atoi.c 1 tape blocks
tar: same as archive file: ./wuyd.tar
a ./.scoadmin.pref 1 tape blocks
$ lf
a.out* fork.c mbox time.c wuyd.tar
atoi.c int.c memcpy.c vi
我們還可以用命令tar cvf /dev/fd0135ds18 ./filename將該目錄下的名為filename的文件備份到archive media中
怎樣列出tar文檔的內容?
A:tar tvf /dev/fd0135ds18
tar tvf filename.tar
例如:
$ tar tvf wuyd.tar
tar: blocksize = 20
rw——-203/50 896 Sep 17 15:07 2003 ./.profile
r——–203/21 0 Sep 24 19:49 2003 ./.lastlogin
rw——-203/50 4720 Sep 21 11:17 2003 ./mbox
rw-r–r–203/50 583 Sep 17 15:27 2003 ./fork.c
rw-r–r–203/50 218 Sep 17 20:22 2003 ./memcpy.c
rw——-203/50 1474 Sep 24 20:26 2003 ./.sh_history
rwxr-xr-x203/50 46224 Sep 22 21:00 2003 ./a.out
rw-r–r–203/50 341 Sep 19 09:02 2003 ./time.c
rw-r–r–203/50 86283 Sep 21 09:14 2003 ./vi
rw-r–r–203/50 93 Sep 21 10:53 2003 ./int.c
rw-r–r–203/50 144 Sep 22 21:00 2003 ./atoi.c
rw-r–r– 0/3 41 Sep 23 20:34 2003 ./.scoadmin.pref
$
怎樣從tar文檔中導出文件?
A:tar xvf /dev/fd0135ds18
tar xvf filename.tar
例如:
$ mkdir uu;cp wuyd.tar ./uu
$ lf
a.out* fork.c mbox time.c vi
atoi.c int.c memcpy.c uu/ wuyd.tar
$ cd uu
$ tar xvf wuyd.tar
tar: blocksize = 20
x ./.profile, 896 bytes, 2 tape blocks
x ./.lastlogin, 0 bytes, 0 tape blocks
x ./mbox, 4720 bytes, 10 tape blocks
x ./fork.c, 583 bytes, 2 tape blocks
x ./memcpy.c, 218 bytes, 1 tape blocks
x ./.sh_history, 1474 bytes, 3 tape blocks
x ./a.out, 46224 bytes, 91 tape blocks
x ./time.c, 341 bytes, 1 tape blocks
x ./vi, 86283 bytes, 169 tape blocks
x ./int.c, 93 bytes, 1 tape blocks
x ./atoi.c, 144 bytes, 1 tape blocks
x ./.scoadmin.pref, 41 bytes, 1 tape blocks
$
我們可用命令tar xvf /dev/fd0135ds18 ./filename導出archive media中的單個文件
例如:
$ lf
wuyd.tar
$ tar xvf wuyd.tar ./time.c
tar: blocksize = 20
x ./time.c, 341 bytes, 1 tape blocks
$ lf
time.c wuyd.tar
$
怎樣使用tar命令提供的簡寫形式?
A:
$ more /etc/default/tar
# @(#) def135.src 25.2 94/07/25
#
# Copyright © 1987-1994 The Santa Cruz Operation, Inc.
# All Rights Reserved.
# The information in this file is provided for the exclusive use of
# the licensees of The Santa Cruz Operation, Inc. Such users have the
# right to use, modify, and incorporate this code into other procts
# for purposes authorized by the license agreement provided they include
# this notice and the associated right notice with any such proct.
# The information in this file is provided 「AS IS」 without warranty.
#
# default/tar - archive devices: tar©
#
# device block size tape
#
archive0=/dev/rfd048ds9 18 360 n
archive1=/dev/rfd148ds9 18 360 n
archive2=/dev/rfd096ds15 10 1200 n
archive3=/dev/rfd196ds15 10 1200 n
# archive4=/dev/rfd096ds9 18 720 n
archive4=/dev/rfd0135ds9 18 720 n
archive5=/dev/rfd1135ds9 18 720 n
# archive5=/dev/rfd196ds9 18 720 n
archive6=/dev/rfd0135ds18 18 1440 n
archive7=/dev/rfd1135ds18 18 1440 n
archive8=/dev/rct0 20 0 y
archive9=/dev/rctmini 20 0 y
archive10=/dev/rdsk/fp03d 18 720 n
archive11=/dev/rdsk/fp03h 18 1440 n
archive12=/dev/rdsk/fp03v21 10 20330 n
#
# The default device in the absence of a numeric or 「-f device」 argument
archive=/dev/rfd0135ds18 18 1440 n
$
從上面可以看出4代表/dev/rfd0135ds9設備,而默認的設備是/dev/rfd0135ds18,所以tar xvf /dev/rfd0135ds9 ./filename可以簡寫為tar xv4 ./filename,而 tar cvf /dev/fd0135ds18 .可以簡寫為tar cv。

⑻ React Native在虛擬運行app時,報錯RCTRootView not found,怎麼解決

幾個常見的linux下的ORACLE錯誤解決方法

必要的硬體信息檢查:

檢查內容 最小值 檢查命令參考

物理內存 512M # grep MemTotal /proc/meminfo

交換空間 max{1.0 GB,2倍內存} # grep SwapTotal /proc/meminfo

/tmp 空間 400 MB # df -k /tmp

軟體所需空間 2.5 GB # df -k

資料庫文件 1.2 GB # df -k

前提:tds7.1(kernel: 2.4.21-16)操作系統選擇[完全安裝]

一、建用戶組、用戶腳本creuser.sh

# For create the oracle user

#!/bin/sh

groupadd -g 600 dba

groupadd -g 601 oinstall

useradd -u 600 -g dba -G oinstall oracle -d /opt/oracle -p oracle

二、設置環境變數.bash_profile腳本如下(該腳本cp到$ORACLE_BASE目錄下,並更改文件里的SID。執行以下命令:

# chown –R oracle.dba /opt/oracle/ ):

# .bash_profile

# Use to set orale profile

# /opt/oracle/.bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

SOURCE ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

unset USERNAME

export ORACLE_BASE=/opt/oracle

export ORACLE_SID=ORA10G #此參數應根據節點修改

export ORACLE_HOME=$ORACLE_BASE/proct/ora10g

export TNS_ADMIN=$ORACLE_HOME/network/admin

export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export PATH=$PATH:$ORACLE_HOME/bin:/sbin

export LANG=en_US

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

export THREADS_FLAG=native

umask 022

三、編輯/etc/sysctl.conf,在該文件末尾加入如下內容:

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

編輯完之後,保存,執行 # /sbin/sysctl -p 命令操作來使我們所做的變更生效。

注意:核心參數配置可能需要根據實際環境進行適當的變動.

四、Trouble-Shooting

1、運行runInstaller,錯誤提示如下:

Checking requirements...

Checking operating system version: must be redhat-2.1,redhat-3,SuSE-9,SuSE-8,UnitedLinux-1.0

Failed<<<<

解決方法:

方法一:

在/etc下創建UnitedLinux-release文件

#cat > /etc/UnitedLinux-release << EOF

>UnitedLinux 1.0 (i586)

>VERSION=1.0

>EOF

然後就可以正常啟動安裝程序。注意不要使用vi編輯該文件,否則可能會引起ORA-12547: TNS: lost contact的錯誤。

方法二:

運行runInstaller -ignoreSysPrereqs,這樣會跳過檢查

方法三:

修改Oracle 的/.../disk1/install/linux/oraparam.ini這個參數文件

2、安裝界面或者netca界面、dbca界面顯示很多"口口"樣子的亂碼

解決辦法:查看locale輸出

# locale

LANG=zh_CN.GB18030

LC_CTYPE=zh_CN.GB18030

LC_NUMERIC="zh_CN.GB18030"

LC_TIME="zh_CN.GB18030"

LC_COLLATE="zh_CN.GB18030"

LC_MONETARY="zh_CN.GB18030"

LC_MESSAGES="zh_CN.GB18030"

LC_PAPER="zh_CN.GB18030"

LC_NAME="zh_CN.GB18030"

LC_ADDRESS="zh_CN.GB18030"

LC_TELEPHONE="zh_CN.GB18030"

LC_MEASUREMENT="zh_CN.GB18030"

LC_IDENTIFICATION="zh_CN.GB18030"

LC_ALL=

執行#export LANG=en_US 然後重新調用安裝程序.

3、Oracle10g自動檢查操作系統是否符合安裝的條件。當按照上面的腳本對系統進行配置後,會有警告提示。[Retry]會看到如下提示:

Checking for openmotif-2.1.30-11; found Not found. Failed <<<<

Check complete. The overall result of this check is: Failed <<<<

Problem: Some recommended packages are missing (see above)

下載並安裝openmotif-2.1.30-11軟體包後,通過驗證。

備註:有oracle文檔說明:對於在RHELAS3上安裝oracle10g,需要openmotif-2.2.2-16或更高版本;

但下載openmotif-2.2.2-16.src.rpm,在機器上編譯安裝,oracle自動檢查仍然有警告提示。

4、安裝程序在進行到74%的時,按照提示用root身份運行$ORACLE_HOME/root.sh,出現以下錯誤:

./root.sh: line 227: /var/opt/oracle/srvConfig.loc: 沒有那個文件或目錄

./root.sh: line 228: /var/opt/oracle/srvConfig.loc: 沒有那個文件或目錄

/bin/chown: 無法取得 『/var/opt/oracle/srvConfig.loc』的屬性:沒有那個文件或目錄

/bin/chgrp: 無法取得 『/var/opt/oracle/srvConfig.loc』的屬性:沒有那個文件或目錄

/bin/chmod: 無法取得 『/var/opt/oracle/srvConfig.loc』的屬性:沒有那個文件或目錄

Successfully accumulated necessary OCR keys.

Creating OCR keys for user 'root', privgrp 'root'..

OCR create keys failed, OCR error 26

Failed to initialize Oracle Cluster Registry for cluster

解決方法:

# mkdir /var/opt/oracle

# chown -R oracle.dba /var/opt/oracle

# ./root.sh

5、 資料庫啟動:

$sqlplus /nolog

SQL>connect / as sysdba

SQL>startup

ORA-00371: not enougsh shared pool memory, should be atleast 52132659 bytes.

解決方法:

這個錯誤並非是內核參數設置的問題,也和系統的物理內存大小無關。編輯$ORACLE_HOME/dbs/init$GID.ora文件:

shared_pool_size = 52132659

6、 資料庫啟動:

$sqlplus /nolog

SQL>connect / as sysdba

SQL>startup

ora-01102: cannot mount database in EXCLUSIVE mode

解決方法:

完全關閉資料庫,更改$ORACLE_HOME/dbs/init.ora文件里的db_name為建庫時定義的「全局資料庫名」,然後再重新啟動資料庫

7、 資料庫啟動:

$sqlplus /nolog

SQL>connect / as sysdba

SQL>startup

ora-00205:error in identifying conrolfile, check alert log for more info

解決方法:

SQL>show parameter control_files

SQL>CREATE CONTROLFILE

將$ORACLE_BASE/admin/$GID/pfile/init$SID.ora***************拷貝到$ORACLE_HOME/dbs下,命名為init$SID.ora,即可解決。

8、資料庫啟動:

$sqlplus /nolog

SQL>connect / as sysdba

SQL>startup

ORA-01990:error opening password file '$ORACLE_NAME/dbs/orapw'

ORA-27037:unable to obtain file status

Linux Error:2: No such file or directory

Additional information: 3

解決方法:

將$ORACLE_HOME/dbs下的orapw$db_name文件拷貝生成一個orapw文件。

8、建庫的過程中或者連接資料庫的時候提示:

ORA-12547: TNS: lost contact

引起該錯誤的環境比較復雜,原因可能是:

1、用vi編輯的/etc/UnitedLinux-release文件

2、內核參數設置不正確

3、察看一下listener是否正常啟動: lsnrct1 status

4、機器負載過大

⑼ 關於access中的匯總統計問題

1。首先使用命令 SELECT......
UNION.......
把10個表格合並為一張表格。
2。再在生成的表格中使用命令SELRCT......進行分類匯總,分類關鍵欄位是「工號」,生成的新表格就是你要的結果。

⑽ VB里如何改變命令按鈕中文字的顏色

不能直接通過屬性框修改按鈕中文本的顏色
根本沒有foreColor屬性
下邊是一個參考方法
首先請把要改的按鈕的Style設置為1

在工程中添加以下模塊(Mole):
Mole modExtButton.bas

Option Explicit

'==================================================================
' modExtButton.bas
'
' 本模塊可讓你改變命令按鈕的文本顏色。
' 使用方法:
'
' - 在設計時將文本的Style設為Graphical.
'
' - 隨意設定背景色和圖象屬性.
'
' - 在Form_Load中調用 SetButton :
' SetButton Command1.hWnd, vbBlue
' (你可以任意次的調用該過程甚至不必先調用 RemoveButton.)
'
' - 在Form_Unload中調用 RemoveButton :
' RemoveButton Command1.hWnd
'
'==================================================================

Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Private Declare Function GetParent Lib "user32" _
(ByVal hWnd As Long) As Long

Private Declare Function GetWindowLong Lib "user32" Alias _
"GetWindowLongA" (ByVal hWnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias _
"SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Const GWL_WNDPROC = (-4)

Private Declare Function GetProp Lib "user32" Alias "GetPropA" _
(ByVal hWnd As Long, ByVal lpString As String) As Long
Private Declare Function SetProp Lib "user32" Alias "SetPropA" _
(ByVal hWnd As Long, ByVal lpString As String, _
ByVal hData As Long) As Long
Private Declare Function RemoveProp Lib "user32" Alias _
"RemovePropA" (ByVal hWnd As Long, _
ByVal lpString As String) As Long

Private Declare Function CallWindowProc Lib "user32" Alias _
"CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, _
ByVal lParam As Long) As Long

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal Length As Long)

'Owner draw constants
Private Const ODT_BUTTON = 4
Private Const ODS_SELECTED = &H1
'Window messages we're using
Private Const WM_DESTROY = &H2
Private Const WM_DRAWITEM = &H2B

Private Type DRAWITEMSTRUCT
CtlType As Long
CtlID As Long
itemID As Long
itemAction As Long
itemState As Long
hwndItem As Long
hDC As Long
rcItem As RECT
itemData As Long
End Type

Private Declare Function GetWindowText Lib "user32" Alias _
"GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, _
ByVal cch As Long) As Long
'Various GDI painting-related functions
Private Declare Function DrawText Lib "user32" Alias "DrawTextA" _
(ByVal hDC As Long, ByVal lpStr As String, ByVal nCount As Long, _
lpRect As RECT, ByVal wFormat As Long) As Long
Private Declare Function SetTextColor Lib "gdi32" (ByVal hDC As Long, _
ByVal crColor As Long) As Long
Private Declare Function SetBkMode Lib "gdi32" (ByVal hDC As Long, _
ByVal nBkMode As Long) As Long
Private Const TRANSPARENT = 1

Private Const DT_CENTER = &H1
Public Enum TextVAligns
DT_VCENTER = &H4
DT_BOTTOM = &H8
End Enum
Private Const DT_SINGLELINE = &H20

Private Sub DrawButton(ByVal hWnd As Long, ByVal hDC As Long, _
rct As RECT, ByVal nState As Long)

Dim s As String
Dim va As TextVAligns

va = GetProp(hWnd, "VBTVAlign")

'Prepare DC for drawing
SetBkMode hDC, TRANSPARENT
SetTextColor hDC, GetProp(hWnd, "VBTForeColor")

'Prepare a text buffer
s = String$(255, 0)
'What should we print on the button?
GetWindowText hWnd, s, 255
'Trim off nulls
s = Left$(s, InStr(s, Chr$(0)) - 1)

If va = DT_BOTTOM Then
'Adjust specially for VB's CommandButton control
rct.Bottom = rct.Bottom - 4
End If

If (nState And ODS_SELECTED) = ODS_SELECTED Then
'Button is in down state - offset
'the text
rct.Left = rct.Left + 1
rct.Right = rct.Right + 1
rct.Bottom = rct.Bottom + 1
rct.Top = rct.Top + 1
End If

DrawText hDC, s, Len(s), rct, DT_CENTER Or DT_SINGLELINE _
Or va

End Sub

Public Function ExtButtonProc(ByVal hWnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
ByVal lParam As Long) As Long

Dim lOldProc As Long
Dim di As DRAWITEMSTRUCT

lOldProc = GetProp(hWnd, "ExtBtnProc")

ExtButtonProc = CallWindowProc(lOldProc, hWnd, wMsg, wParam, lParam)

If wMsg = WM_DRAWITEM Then
CopyMemory di, ByVal lParam, Len(di)
If di.CtlType = ODT_BUTTON Then
If GetProp(di.hwndItem, "VBTCustom") = 1 Then
DrawButton di.hwndItem, di.hDC, di.rcItem, _
di.itemState

End If

End If

ElseIf wMsg = WM_DESTROY Then
ExtButtonUnSubclass hWnd

End If

End Function

Public Sub ExtButtonSubclass(hWndForm As Long)

Dim l As Long

l = GetProp(hWndForm, "ExtBtnProc")
If l <> 0 Then
'Already subclassed
Exit Sub
End If

SetProp hWndForm, "ExtBtnProc", _
GetWindowLong(hWndForm, GWL_WNDPROC)
SetWindowLong hWndForm, GWL_WNDPROC, AddressOf ExtButtonProc

End Sub

Public Sub ExtButtonUnSubclass(hWndForm As Long)

Dim l As Long

l = GetProp(hWndForm, "ExtBtnProc")
If l = 0 Then
'Isn't subclassed
Exit Sub
End If

SetWindowLong hWndForm, GWL_WNDPROC, l
RemoveProp hWndForm, "ExtBtnProc"

End Sub

Public Sub SetButton(ByVal hWnd As Long, _
ByVal lForeColor As Long, _
Optional ByVal VAlign As TextVAligns = DT_VCENTER)

Dim hWndParent As Long

hWndParent = GetParent(hWnd)
If GetProp(hWndParent, "ExtBtnProc") = 0 Then
ExtButtonSubclass hWndParent
End If

SetProp hWnd, "VBTCustom", 1
SetProp hWnd, "VBTForeColor", lForeColor
SetProp hWnd, "VBTVAlign", VAlign

End Sub

Public Sub RemoveButton(ByVal hWnd As Long)

RemoveProp hWnd, "VBTCustom"
RemoveProp hWnd, "VBTForeColor"
RemoveProp hWnd, "VBTVAlign"

End Sub

然後回到FORM中:
添加CommandButton,不必更改它們的名稱,將它們的Style設為Graphical,給第3個按鈕設置一幅圖片。
CommandButton也可以放置在一個容器如PictureBox或Frame中,模塊會判斷,如果需要的話將CommandButton的容器也子類化。

在Form中的代碼:
Private Sub Form_Load()

'Initialize each button color.
SetButton Command1.hWnd, vbRed
SetButton Command2.hWnd, &H8000& '深綠色
'Assign this one a DT_BOTTOM alignment because
SetButton Command3.hWnd, vbBlue, DT_BOTTOM '含有圖片,將文本放置在按鈕底部
SetButton Command4.hWnd, &H8080& '暗棕黃色

End Sub

Private Sub Form_Unload(Cancel As Integer)

'手動解除按鈕的子類化
'這並不是必須的
RemoveButton Command1.hWnd
RemoveButton Command2.hWnd
RemoveButton Command3.hWnd
RemoveButton Command4.hWnd

End Sub

For m = 0 To 9
SetButton CmdNum(m).hWnd, vbBlue
Next
For n = 1 To 4
SetButton CmdCal(n).hWnd, vbRed
Next
For l = 2 To 4
SetButton CmdOth(l).hWnd, vbRed
Next

閱讀全文

與rct命令相關的資料

熱點內容
自動解壓失敗叫我聯系客服 瀏覽:482
易語言新手源碼 瀏覽:456
oa伺服器必須有固定ip地址 瀏覽:42
傳奇源碼分析是什麼 瀏覽:267
解放壓縮機支架 瀏覽:255
程序員禿頂搞笑相遇 瀏覽:6
IBM手機app商店叫什麼名字 瀏覽:834
jpeg壓縮質量 瀏覽:774
雲伺服器評測對比 瀏覽:145
java日期轉string 瀏覽:221
openfire源碼編譯 瀏覽:897
在線小工具箱引流網站源碼 瀏覽:337
非科班程序員自學 瀏覽:800
壓縮泡沫鞋底底材 瀏覽:219
程序員職場第一課2正確的溝通 瀏覽:679
遇到不合法app應該怎麼辦 瀏覽:91
匯編程序編譯後的文件 瀏覽:80
大智慧均線源碼 瀏覽:373
單片機排阻的作用 瀏覽:216
滴滴金融app被下架如何還款 瀏覽:212