War gerade im Mojave Outpost, dort wird nichts angezeigt, das die Gegenstände noch nicht 100% haben. Die Gegenstände sind schon auf 100%, obwohl ich erst 40 Punkte RepairSkill habe. Ich spiele allerdings auch im "normal Modus".
Das hier ist das Projekt Nevada RepairMainScript, vielleicht kann mir jemand damit helfen. Das Ziel wäre, das man nur soweit reparieren kann, wie der momentane RepSkill ist. Geht das, und kann man das überhaupt?
Code:
scn PNxRRepairMainScript
short stop
short init
short repairSkill
short lastRepairSkill
short i
ref obj
ref repairList
short size
short count
short tabId
short lastTabId
short refresh
short helpTrap
short weaponSkill
short weaponType
short i
short size
ref scrapList
ref item
short index
float armorDT
ref classList
ref element
short j
short size2
short noTools
short lastNoTools
short skillCheck
short enableScrap
;-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
; Control
Begin GameMode
if stop == 1
set init to 0
; Restore original repair kits
setName "Reparatursatz" NVRepairKit
set count to player.getItemCount PNxRRepairTools
if count > 0
player.removeItem PNxRRepairTools count 1
set count to count / PNxRRepairConversionMult
if count > 0
player.addItem NVRepairKit count
endif
endif
; Classify weapons and safe default lists
setStage PNxRRepairMain 2
; Reset to default repair lists
set i to 0
set size to (listGetCount PNxRRepairDefaultKeysList)
Label 50
if i < size
set item to listGetNthForm PNxRRepairDefaultKeysList i
set repairList to listGetNthForm PNxRRepairDefaultValuesList i
if item != 0 && isFormValid item == 1
if repairList != 0 && isFormValid repairList == 1
setRepairList repairList item
endif
endif
set i to i + 1
goto 50
endif
stopQuest PNxRRepairMain
return
endif
if init == 0 || getGameLoaded == 1
set init to 1
set lastRepairSkill to 0
setName "Reparatursatz" NVRepairKit
; Fix weapons with missing replair lists
if getRepairList WeapDeathclawGauntlet == 0
setRepairList PNxRRepairDeathClawGauntlet WeapDeathclawGauntlet
endif
if getRepairList WeapNVRiotShotgun == 0
setRepairList PNxRRepairThatGun WeapNVRiotShotgun
endif
if getRepairList WeapNVPlasmaDefender == 0
setRepairList PNxRRepairPlasmaDefender WeapNVPlasmaDefender
endif
if getRepairList WeapNVBattleRifleUnique == 0
setRepairList PNxRRepairBattleRifle WeapNVBattleRifleUnique
endif
if getRepairList WeapNVThatGun == 0
setRepairList PNxRRepairThatGun WeapNVThatGun
endif
if getRepairList WeapNVPlasmaDefenderArcade == 0
setRepairList PNxRRepairPlasmaDefender WeapNVPlasmaDefenderArcade
endif
endif
;-----------------------------
; Replace weapon repair kits by repair tools
set count to player.getItemCount NVRepairKit
if count > 0
player.removeItem NVRepairKit count 1
set count to count * PNxRRepairConversionMult
player.addItem PNxRRepairTools count
endif
set refresh to 1
End
;-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
; Dynamic repair lists
Begin MenuMode 1
; Show help message when enabled for the first time
if helpTrap == 0
set helpTrap to 1
showTutorialMenu PNxRRepairHelpMsg
endif
; Replace weapon repair kits by repair tools
set count to player.getItemCount NVRepairKit
if count > 0
player.removeItem NVRepairKit count 1
set count to count * 10
player.addItem PNxRRepairTools count
endif
set tabId to getUIFloat "InventoryMenu\GLOW_BRANCH\IM_Tabline\_CurrentTab"
;-----------------------------
;-----------------------------
; Weapons
if refresh == 1
; Classify weapons and safe default lists
setStage PNxRRepairMain 2
endif
set repairSkill to player.getAV Repair
set noTools to (player.getItemCount PNxRRepairTools == 0)
set enableScrap to player.hasPerk JuryRigging == 1
if repairSkill != lastRepairSkill || noTools != lastNoTools || refresh == 1
set i to 0
set size to player.getNumItems
Label 67
if i < size
set item to player.getInventoryObject i
if item != 0 && isFormValid item == 1 && isQuestItem item == 0 && getWeight item > 0 && getValue item > 0 && (getType item == 40 || getType item == 24)
; Empty repair list so repair option is blacked out
if noTools == 1
setRepairList PNxRRepairNullList item
else
; Fetch custom repair list
set index to (listGetFormIndex PNxRRepairDefaultKeysList item)
set repairList to (listGetNthForm PNxRRepairDefaultAltValuesList index)
setRepairList repairList item
; Completely clear the list
set PNxCUtilList.inputList to repairList
setStage PNxCUtilList 10
; Always add the item itself
listAddForm repairList item
; Weapon
if getType item == 40
; Add additional class items if repair skill > weapon skill req
if repairSkill >= getWeaponRequiredSkill item
set weaponSkill to getWeaponSkill item
set weaponType to getWeaponType item
; Unarmed (0)
if weaponSkill == 45
set scrapList to PNxRRepairUnarmedScrapList
set classList to PNxRRepairWeaponsClass0List
; Melee (1-2)
elseif weaponSkill == 38
set scrapList to PNxRRepairMeleeScrapList
; Class 1 One-handed Melee
if weaponType == 1
set classList to PNxRRepairWeaponsClass1List
; Class 2 Two-handed Melee
else
set classList to PNxRRepairWeaponsClass2List
endif
; Energy Weapons (3-6)
elseif weaponSkill == 34
set scrapList to PNxRRepairEnergyWeaponsScrapList
; Class 3 Energy Pistols
if weaponType == 4
set classList to PNxRRepairWeaponsClass3List
; Class 4 Energy Rifles (Laser)
elseif weaponType == 7
set classList to PNxRRepairWeaponsClass4List
; Class 5 Energy Rifles (Other)
elseif weaponType == 6
set classList to PNxRRepairWeaponsClass5List
; Class 6 Energy Weapons
else
set classList to PNxRRepairWeaponsClass6List
endif
; Guns (7-10)
elseif weaponSkill == 41
set scrapList to PNxRRepairGunsScrapList
; Class 7 One-handed Guns
if weaponType == 3
set classList to PNxRRepairWeaponsClass7List
; Class 8 Two-handed Automatic Guns
elseif weaponType == 6
set classList to PNxRRepairWeaponsClass8List
; Class 9 Bolt/Lever-action Guns
elseif weaponType == 5
set classList to PNxRRepairWeaponsClass9List
; Class 10 Miniguns
else
set classList to PNxRRepairWeaponsClass10List
endif
; Explosives (11-13)
elseif weaponSkill == 35
set scrapList to PNxRRepairExplosivesScrapList
; Class 11 Grenade Launchers
if weaponType == 5
set classList to PNxRRepairWeaponsClass11List
; Class 12 Grenade machine guns
elseif weaponType == 8
set classList to PNxRRepairWeaponsClass12List
; Class 13 Missile Launchers
elseif weaponType == 9
set classList to PNxRRepairWeaponsClass13List
endif
endif
; Add class lists
if classList != 0
; Add classList to repairList
set j to 0
set size2 to (listGetCount classList )
label 78
if j < size2
set element to listGetNthForm classList j
if listGetFormIndex repairList element == -1
listAddForm repairList element 0
endif
set j to j + 1
goto 78
endif
endif
; Add scrap lists
if enableScrap == 1 && scrapList != 0
; Add scrapList to repairList
set j to 0
set size2 to (listGetCount scrapList )
label 71
if j < size2
set element to listGetNthForm scrapList j
if listGetFormIndex repairList element == -1
listAddForm repairList element 0
endif
set j to j + 1
goto 71
endif
endif
endif
; Armors
elseif getType item == 24
set armorDT to getArmorDT item
; PA
if isPowerArmor item == 1
set skillCheck to 100
set classList to PNxRRepairPowerArmorList
; Use elements from original repair list for glasses
elseif listGetFormIndex RepairGlasses item != -1
set skillCheck to 0
set classList to RepairGlasses
else
; Clothing
if armorDT == 0
set skillCheck to 0
set classList to PNxRRepairClothingArmorList
; Light Armor
elseif armorDT < 10
set skillCheck to 25
set classList to PNxRRepairLightArmorList
; Medium Armor
elseif armorDT < 20
set skillCheck to 50
set classList to PNxRRepairMediumArmorList
; Heavy Armor
else
set skillCheck to 75
set classList to PNxRRepairHeavyArmorList
endif
endif
; No Extra repair options
if repairSkill >= skillCheck
; Add elements from class list to repair list
if classList != 0
set j to 0
set size2 to (listGetCount classList)
label 70
if j < size2
set element to listGetNthForm classList j
if getEquipType element == getEquipType item
if listGetFormIndex repairList element == -1
listAddForm repairList element 0
endif
endif
set j to j + 1
goto 70
endif
endif
endif
endif
endif
endif
set i to i + 1
goto 67
endif
endif
set lastRepairSkill to repairSkill
set lastNoTools to noTools
set refresh to 0
End
;-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Begin MenuMode
if menuMode 1035 == 1
if player.getItemCount PNxRRepairToken == 0
player.addItem PNxRRepairToken 1 1
endif
else
if player.getItemCount PNxRRepairToken > 0
player.removeItem PNxRRepairToken 1 1
endif
endif
End