会脚本的进!辐射3动态准心,不支持mod武器,谁能修改下啊!
本帖最后由 wleizhen 于 2014-4-8 08:14 编辑辐射3动态准心,不支持mod武器,谁能修改下啊!
脚本
scn DynamicCrosshairTokenScript
float CurrentSize
float TargetSize
short skill
short skilltype
ref weapon
;Game settings used by the spread formula
float GunSpreadIronSightsBase
float GunSpreadIronSightsMult
float GunSpreadCrouchBase
float GunSpreadCrouchMult
float GunSpreadCondBase
float GunSpreadCondMult
float GunSpreadSkillBase
float GunSpreadSkillMult
float GunSpreadWalkBase
float GunSpreadWalkMult
float GunSpreadRunBase
float GunSpreadRunMult
float GunSpreadArmBase
float GunSpreadArmMult
float ArmCondition
float IronSightsBonus
float CrouchBonus
float ConditionPenalty
float SkillBonus
float WalkPenalty
float RunPenalty
float ArmPenalty
float Spread
float MinSpread
short walking
short running
short IsUsingIronSights
short WeaponType
float AimAngle
float SpreadAngle
float CrossTop
float CrossBottom
float CrossLeft
float CrossRight
float CrossSize
short Configuring
short button
begin OnEquip
set Configuring to 1
ShowMessage DynamicCrosshairConfigureMessage
end
begin MenuMode
if Configuring
set button to GetButtonPressed
if button == -1
return
endif
if button == 0
if Configuring == 1
set Configuring to 2
ShowMessage DynamicCrosshairTypeMsg
return
elseif Configuring == 2
set Configuring to 1
set DynamicCrosshairQuest.CrossMode to 0
ShowMessage DynamicCrosshairConfigureMessage
return
elseif Configuring == 3
set DynamicCrosshairQuest.AlwaysOn to (1-DynamicCrosshairQuest.AlwaysOn)
ShowMessage DynamicCrosshairBehaviorMsg DynamicCrosshairQuest.AlwaysOn DynamicCrosshairQuest.IronSights DynamicCrosshairQuest.HostileTarget DynamicCrosshairQuest.DuringCombat
return
elseif Configuring == 4
set Configuring to 1
set DynamicCrosshairQuest.Opacity to 255
ShowMessage DynamicCrosshairConfigureMessage
return
endif
elseif button == 1
if Configuring == 1
set Configuring to 3
ShowMessage DynamicCrosshairBehaviorMsg DynamicCrosshairQuest.AlwaysOn DynamicCrosshairQuest.IronSights DynamicCrosshairQuest.HostileTarget DynamicCrosshairQuest.DuringCombat
return
elseif Configuring == 2
set Configuring to 1
set DynamicCrosshairQuest.CrossMode to 1
ShowMessage DynamicCrosshairConfigureMessage
return
elseif Configuring == 3
set DynamicCrosshairQuest.IronSights to (1-DynamicCrosshairQuest.IronSights)
ShowMessage DynamicCrosshairBehaviorMsg DynamicCrosshairQuest.AlwaysOn DynamicCrosshairQuest.IronSights DynamicCrosshairQuest.HostileTarget DynamicCrosshairQuest.DuringCombat
return
elseif Configuring == 4
set Configuring to 1
set DynamicCrosshairQuest.Opacity to 191
ShowMessage DynamicCrosshairConfigureMessage
return
endif
elseif button == 2
if Configuring == 1
set Configuring to 4
ShowMessage DynamicCrosshairOpacityMessage
return
elseif Configuring == 3
set DynamicCrosshairQuest.HostileTarget to (1-DynamicCrosshairQuest.HostileTarget)
ShowMessage DynamicCrosshairBehaviorMsg DynamicCrosshairQuest.AlwaysOn DynamicCrosshairQuest.IronSights DynamicCrosshairQuest.HostileTarget DynamicCrosshairQuest.DuringCombat
return
elseif Configuring == 4
set Configuring to 1
set DynamicCrosshairQuest.Opacity to 127
ShowMessage DynamicCrosshairConfigureMessage
return
endif
elseif button == 3
if Configuring == 1
set Configuring to 0
player.UnequipItem DynamicCrosshairToken 1 1
player.additem ammo10mm 1 1
player.removeitem ammo10mm 1 1
return
elseif Configuring == 3
set DynamicCrosshairQuest.DuringCombat to (1-DynamicCrosshairQuest.DuringCombat)
ShowMessage DynamicCrosshairBehaviorMsg DynamicCrosshairQuest.AlwaysOn DynamicCrosshairQuest.IronSights DynamicCrosshairQuest.HostileTarget DynamicCrosshairQuest.DuringCombat
return
elseif Configuring == 4
set Configuring to 1
set DynamicCrosshairQuest.Opacity to 63
ShowMessage DynamicCrosshairConfigureMessage
return
endif
else
set Configuring to 1
ShowMessage DynamicCrosshairConfigureMessage
return
endif
endif
end
begin GameMode
if GetQuestRunning DynamicCrosshairQuest == 0
startquest DynamicCrosshairQuest
endif
set weapon to player.GetEquippedObject 5
if weapon != 0
set WeaponType to GetWeaponType weapon
else
set WeaponType to 0
endif
if DynamicCrosshairQuest.AlwaysOn == 0
short found
set found to 0
if Player.GetCombatTarget != 0 && DynamicCrosshairQuest.HostileTarget
set found to 1
endif
if Player.IsControlPressed 6 && DynamicCrosshairQuest.IronSights
set found to 1
endif
if Player.IsInCombat && DynamicCrosshairQuest.DuringCombat
set found to 1
endif
if found == 0
SetUIFloat "HUDMainMenu\AccuracyCircle\Active" 0
SetUIFloat "HUDMainMenu\AccuracyCross\Active" 0
return
endif
endif
if GetUIFloat "HUDMainMenu\ReticleCenter\Reticle_Center\Visible" == 0 || weapon == 0 || player.IsWeaponOut == 0 || WeaponType == 0 || WeaponType == 1 || WeaponType == 2 || WeaponType == 10 || WeaponType == 11 || WeaponType == 12
SetUIFloat "HUDMainMenu\AccuracyCircle\Active" 0
SetUIFloat "HUDMainMenu\AccuracyCross\Active" 0
return
else
if DynamicCrosshairQuest.CrossMode == 0
SetUIFloat "HUDMainMenu\AccuracyCross\Active" 0
SetUIFloat "HUDMainMenu\AccuracyCircle\Active" 1
else
SetUIFloat "HUDMainMenu\AccuracyCircle\Active" 0
SetUIFloat "HUDMainMenu\AccuracyCross\Active" 1
endif
set skilltype to GetWeaponSkill weapon
if skilltype == 33
set skill to player.GetAV BigGuns
elseif skilltype == 34
set skill to player.GetAV EnergyWeapons
elseif skilltype == 41
set skill to player.GetAV SmallGuns
else
set skill to 0
endif
if skill > 100
set skill to 100
elseif skill < 0
set skill to 0
endif
set GunSpreadIronSightsBase to GetNumericGameSetting fGunSpreadIronSightsBase
set GunSpreadIronSightsMult to GetNumericGameSetting fGunSpreadIronSightsMult
set GunSpreadCrouchBase to GetNumericGameSetting fGunSpreadCrouchBase
set GunSpreadCrouchMult to GetNumericGameSetting fGunSpreadCrouchMult
set GunSpreadCondBase to GetNumericGameSetting fGunSpreadCondBase
set GunSpreadCondMult to GetNumericGameSetting fGunSpreadCondMult
set GunSpreadSkillBase to GetNumericGameSetting fGunSpreadSkillBase
set GunSpreadSkillMult to GetNumericGameSetting fGunSpreadSkillMult
set GunSpreadWalkBase to GetNumericGameSetting fGunSpreadWalkBase
set GunSpreadWalkMult to GetNumericGameSetting fGunSpreadWalkMult
set GunSpreadRunBase to GetNumericGameSetting fGunSpreadRunBase
set GunSpreadRunMult to GetNumericGameSetting fGunSpreadRunMult
set GunSpreadArmBase to GetNumericGameSetting fGunSpreadArmBase
set GunSpreadArmMult to GetNumericGameSetting fGunSpreadArmMult
if Player.IsMoving
set running to player.IsRunning
set walking to 1-running
else
set running to 0
set walking to 0
endif
set IsUsingIronSights to IsControlPressed 6
set IronSightsBonus to GunSpreadIronSightsBase + GunSpreadIronSightsMult * IsUsingIronSights
set CrouchBonus to GunSpreadCrouchBase + GunSpreadCrouchMult * player.IsSneaking
set ConditionPenalty to GunSpreadCondBase + GunSpreadCondMult * (player.GetWeaponHealthPerc/100)
set SkillBonus to GunSpreadSkillBase + GunSpreadSkillMult * skill
set WalkPenalty to GunSpreadWalkBase * (1 - player.IsRunning) + GunSpreadWalkMult * walking
set RunPenalty to GunSpreadRunBase * player.IsRunning + GunSpreadRunMult * running
set ArmCondition to 1
if WeaponType == 3 || WeaponType == 4
if player.GetAV RightAttackCondition <= 0
set ArmCondition to ArmCondition - 0.5
endif
if player.GetAV LeftAttackCondition <= 0
set ArmCondition to ArmCondition - 0.5
endif
else
if player.GetAV RightAttackCondition <= 0
set ArmCondition to 0
endif
endif
set ArmPenalty to GunSpreadArmBase + GunSpreadArmMult * ArmCondition
set Spread to GetWeaponSpread weapon
set MinSpread to GetWeaponMinSpread weapon
set AimAngle to IronSightsBonus * CrouchBonus * (ConditionPenalty + SkillBonus) * (WalkPenalty + RunPenalty) + ArmPenalty
set SpreadAngle to MinSpread
set TargetSize to AimAngle * 126 + SpreadAngle * 42
if (TargetSize - (floor TargetSize)) < 0.5
set TargetSize to floor TargetSize
else
set TargetSize to ceil TargetSize
endif
if TargetSize < 0
set TargetSize to 0
endif
endif
set CurrentSize to GetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_50\Height"
if CurrentSize != TargetSize || GetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_25\Alpha" != DynamicCrosshairQuest.Opacity
if TargetSize - CurrentSize > 1 || TargetSize - CurrentSize < -1
set CurrentSize to CurrentSize + ((TargetSize - CurrentSize)/5)
else
set CurrentSize to TargetSize
endif
set CrossSize to CurrentSize/3
if CrossSize < 10
set CrossSize to 10
elseif CrossSize > 50
set CrossSize to 50
endif
set CrossTop to GetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_25\Y" - CrossSize
set CrossLeft to GetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_25\X" - CrossSize
set CrossBottom to CrossTop + CurrentSize + CrossSize
set CrossRight to CrossLeft + CurrentSize + CrossSize
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_25\Visible" 0
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_50\Visible" 0
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_100\Visible" 0
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_150\Visible" 0
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_200\Visible" 0
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_250\Visible" 0
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_300\Visible" 0
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_350\Visible" 0
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_400\Visible" 0
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_450\Visible" 0
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_500\Visible" 0
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_25\Alpha" DynamicCrosshairQuest.Opacity
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_50\Alpha" DynamicCrosshairQuest.Opacity
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_100\Alpha" DynamicCrosshairQuest.Opacity
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_150\Alpha" DynamicCrosshairQuest.Opacity
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_200\Alpha" DynamicCrosshairQuest.Opacity
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_250\Alpha" DynamicCrosshairQuest.Opacity
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_300\Alpha" DynamicCrosshairQuest.Opacity
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_350\Alpha" DynamicCrosshairQuest.Opacity
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_400\Alpha" DynamicCrosshairQuest.Opacity
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_450\Alpha" DynamicCrosshairQuest.Opacity
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_500\Alpha" DynamicCrosshairQuest.Opacity
SetUIFloat"HUDMainMenu\AccuracyCross\Accuracy_Cross_Top\Alpha" DynamicCrosshairQuest.Opacity
SetUIFloat"HUDMainMenu\AccuracyCross\Accuracy_Cross_Bottom\Alpha" DynamicCrosshairQuest.Opacity
SetUIFloat"HUDMainMenu\AccuracyCross\Accuracy_Cross_Left\Alpha" DynamicCrosshairQuest.Opacity
SetUIFloat"HUDMainMenu\AccuracyCross\Accuracy_Cross_Right\Alpha" DynamicCrosshairQuest.Opacity
SetUIFloat "HUDMainMenu\AccuracyCross\Accuracy_Cross_Top\Y" CrossTop
SetUIFloat "HUDMainMenu\AccuracyCross\Accuracy_Cross_Top\Height" CrossSize
SetUIFloat "HUDMainMenu\AccuracyCross\Accuracy_Cross_Bottom\Y" CrossBottom
SetUIFloat "HUDMainMenu\AccuracyCross\Accuracy_Cross_Bottom\Height" CrossSize
SetUIFloat "HUDMainMenu\AccuracyCross\Accuracy_Cross_Left\X" CrossLeft
SetUIFloat "HUDMainMenu\AccuracyCross\Accuracy_Cross_Left\Width" CrossSize
SetUIFloat "HUDMainMenu\AccuracyCross\Accuracy_Cross_Right\X" CrossRight
SetUIFloat "HUDMainMenu\AccuracyCross\Accuracy_Cross_Right\Width" CrossSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_25\Height" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_25\Width" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_50\Height" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_50\Width" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_100\Height" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_100\Width" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_150\Height" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_150\Width" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_200\Height" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_200\Width" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_250\Height" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_250\Width" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_300\Height" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_300\Width" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_350\Height" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_350\Width" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_400\Height" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_400\Width" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_450\Height" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_450\Width" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_500\Height" CurrentSize
SetUIFloat "HUDMainMenu\AccuracyCircle\Accuracy_Circle_500\Width" CurrentSize
if CurrentSize <= 25
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_25\Visible" 1
elseif CurrentSize <= 50
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_50\Visible" 1
elseif CurrentSize <= 100
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_100\Visible" 1
elseif CurrentSize <= 150
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_150\Visible" 1
elseif CurrentSize <= 200
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_200\Visible" 1
elseif CurrentSize <= 250
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_250\Visible" 1
elseif CurrentSize <= 300
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_300\Visible" 1
elseif CurrentSize <= 350
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_350\Visible" 1
elseif CurrentSize <= 400
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_400\Visible" 1
elseif CurrentSize <= 450
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_450\Visible" 1
else
SetUIFloat"HUDMainMenu\AccuracyCircle\Accuracy_Circle_500\Visible" 1
endif
endif
end
直接使用 内华达计划,什么MOD武器 的 动态准星都有了 我的都支持,仔细看说明 嗯...测试不同装扮的人群之间社会关系是否变化
页:
[1]