La Vitesse De Coup Dépend Des Caractéristiques Str Et Spd
#1
Posté 07 juin 2010 - 04:57
Voilà je suis à la recherche d'un scrpit fonctionnant sous OBSE 18
à base de SetWeaponSpeed 1.200 if actor attribute speed (or strength) =50
En bref je veus scripter une bonne partie des armes d'oblivion pour faire en sorte que votre vitesse (pour les armes légères)
et votre force (pour les armes lourdes) modifie la vitesse de vos coups avec les dites armes...
Seulement voilà je suis une bille en script, et j'avoue ne pas trop savoir comment m'y prendre...
Je pensais à un script d'objet du genre
Scn IronDagger
Ref ActorRef
Begin OnEquip
SetWeaponSpeed 1.450 if Actor attribute speed 55
endif
Begin OnEquip
SetWeaponSpeed 1.500 if Actor Attribute speed 60
endif
Begin OnEquip
SetWeaponSpeed 1.550 if actor attribute speed 65
endif
etc...
END
Mais la syntaxe est fausse biensur... Et c'est éventuellement là où vous intervenez...
Merci d'avance à ceux qui auront la patience de me donner un ti coup de pouce...Cela rendra le jeu plus réaliste
Bon je crois que je tiens quelque chose en script cependant j'ai un souci mon Construction Set ne veut pas entendre parler
de fonctions issues des différentes versions de OBSE...
Quelqu'un serait il comment l'y forcer?
Ce script est important dans la mesure ou il permettra de faire en sorte que les créatures trés rapides et fortes puissent attaquer trés rapidement.
Ainsi vous pourrez visuellement évaluer la force l'agilité et la vitesse de votre adversaire en regardant la vitesse à laquelle il porte ces coups.
Cela commencera à donner aussi un vrai avantage à ce faire chier à gonfler des stats d'une manière ou d'une autre...
Ajouter à cela une forme de multiplication de dégats magiques fondés sur l'écart de INT ou WIL du lanceur et de la cible et on commencera à obtenir un jeu réaliste et beaucoup plus sympas....
OK problème résolu on apprend des choses avec google...(démarrer TESC avec OBSE loader lol waou c'était dur...)
Je vous donne des news dès que tout est ok...
Et j'essaye d'arréter les monologues dès que possible...
#2
Posté 07 juin 2010 - 07:19
Citation
SetWeaponSpeed 1.450 if Actor attribute speed 55
endif
Citation
If Actor attribute speed 55
SetWeaponSpeed 1.450
Endif
Citation
Citation
Citation
If Actor attribute speed >= 5555
SetWeaponSpeed 1.450
Endif
Citation
If Actor attribute speed >= 5555
SetWeaponSpeed 1.450
Endif
End
PS: As-tu jeté un oeil au wiwiki? Il est vraiment pas mal pour ça
Modifié par tenzaku, 07 juin 2010 - 07:22.
#3
Posté 07 juin 2010 - 13:34
DOnc en gros, dès que le joueur prend une arme en main, je dois enregistrer la référence, dans par exemple la variable "ArmeActuelle" et pouvoir remettre à zéro l'arme dont la référence est enregistrée dans "ArmePrecedente"
Bon voilà quand même le post :
L'idée est très bonne, mais pour être plus "réel", il faudrait prendre en compte autre chose que seulement la vitesse.
Et puis comme il y a des centaines d'armes, voir un bon millier, dans oblivion.esm et que ça sigifierait de vérifier chaque fois l'ID de l'objet équippé et donc de faire des dizaines de scripts de quête en chaîne car on est limité au niveau du nombre de lignes dans un script, il y a un moyen moin chiant et plus "simple", qui fonctionnera même avec les armes des autres mods.
1. Enregistrer la référence de l'objet équipé et son type
ref weapon set weapon to player.GetEquippedObject 16
2. Enregistrer :
- si l'arme est dans la catégorie "one hand"/"two hand"/"blunt one hand"/"blunt two hand"/"Staff"/"Bow"
- la masse de l'arme
- la portée de l'arme ?
- la vitesse de l'arme
- les dégât de l'arme
Les types d'armes :
0: Blade1H
1: Blade2H
2: Blunt1H
3: Blunt2H
4: Staff
5: Bow
ref weapon short DefType short DefWeight short DefReach short DefSpeed short DefDamage ; Valeur par défaut de l'arme set weapon to player.GetEquippedObject 16 set DefType to GetWeaponType weapon set DefWeight to GetWeight weapon set DefReach to GetWeaponReach weapon set DefSpeed to GetWeaponSpeed weapon set DefDamage to GetAttackDamage weapon
3. Maintenant, en fonction des caractéristiques tu vas pouvoir apporter des bonus malus, par exemple :
- les talents lame, arme contondante, précision jouent sur les dégats en fonction du type d'arme (précision pour les bâtons et arcs)
- la force joue sur les dégâts
- l'endurance joue sur le poids
- l'agilité joue sur la vitesse de frappe
- la vitesse joue sur la vitesse de frappe
- l'état actuel de la fatigue et celui de la santé jouent sur les dégâts infligés, le poids et la vitesse
On pourrait expliquer ça par le fait que plus un personnage est fort, plus il frappe dur, que plus il est endurant, plus il peut porter des objets, et que plus il est agile et rapide plus il frappe vite.
Mais les blessures et l'énergie dépensée au combat auraient l'effet inverse.
4. La vitesse de frappe ne doit pas être trop "grosbil" : une vitesse de 1.6 pour une épée longue, c'est très bien ! Surtout qu'il s'agit de la maniabilité d'une dague... Je propose donc les maximum suivant :
- one hand/blunt one hand : 1.6
- two hands/blunt two hands : 1.2
C'est ici qu'on s'aperçoit que vérifier la portée devient intéressant pour faire la distinction entre les armes "courtes" et très maniable, et les armes "longues" moins maniable.
Dans certains mods, une hallebarde peut être dans la catégorie "two hand" (plus pour les claymore).
Donc une portée inférieure à 1 en "one hand" permettrait de monter à 2 pour la vitesse et en "two hand" à 1.4 par exemple
5. Donc en observant le point 4, le modifiacteur de dégât = facteur talent + facteur force.
Le modificateur de poids = facteur endurance et le modificateur de vitesse = facteur agilité + facteur vitesse
Mais la fatigue et la santé on un effet général qui devra donc être repris sur tout les modificateurs. On va travailler en pourcentage.
C'est un script de quête
ref weapon short DefDamage short DefReach short DefSpeed short DefType short DefWeight short MaxDamage short MaxSpeed short MaxWeight float BaseFatigue float BaseHealth float CurrentHealth float CurrentHealth float FactorAgility float FactorBlade float FactorBlunt float FactorEndurance float FactorMarksman float FactorSpeed float FactorStrenght float fQuestDelayTime float ModFactorDamage float ModFactorFatigue float ModFactorHealth float ModFactorSpeed float ModFactorWeight float NewDamage float NewSpeed float ValueAgility float ValueBlade float ValueBlunt float ValueEndurance float ValueFatigue float ValueHealth float ValueMarksman float ValueSpeed float ValueStrenght Begin GameMode ; Eviter que l'application ne se fasse toute les 5s if (fQuestDelayTime != 0.01) set fQuestDelayTime to 0.01 endif if (Initialisation == 0) set OldWeapon to -1 set Initialisation to 1 elseif (Initialisation == 1) MessageBox "Pour réinitialiser, set IDQuête.Initialisation to 0 blablabla il y a de la place pour mettre des menus de config" set Initialisation to 100 elseif (Initialisation == 100) ; C'est ici que ça coince, car il faut mettre une condition sinon ça va foutre le bordel dans le jeu ! ; Vérifier que l'arme en main est la même qu'au cycle précédent if (weapon != oldweapon) set weapon to player.GetEquippedObject 16 elseif (weapon ; Valeur par défaut de l'arme set DefType to GetWeaponType weapon set DefWeight to GetWeight weapon set DefReach to GetWeaponReach weapon set DefSpeed to GetWeaponSpeed weapon set DefDamage to GetAttackDamage weapon ; Calcul de l'effet santé set CurrentHealth to player.GetAV Health set BaseHealth to player.GetBAV Health ; En cas de bonus de santé if (CurrentHealth > BaseHealth) set CurrentHealth to BaseHealth endif set ValueHealth to (CurentHealth/BaseHealth) ; Calcul du modificateur, on fait "1 - la valeur " : 100% de santé = 100% = 1. Il s'agit normalement d'un effet négatif, donc 100% de santé correspond à 0 effet négatif et 75% de santé à 25% d'effet négatif, soit à une veleur de 0.25 qui sera retiré de chaque modificateur. C'est clair ? set ModFactorHealth to (1-ValueHealth) ; Calcul de l'effet fatigue set CurrentFatigue to player.GetAV Fatigue set BaseFatigue to player.GetBAV Fatigue ; En cas de bonus de fatigue if (CurrentFatigue > BaseFatigue) set CurrentFatigue to BaseFatigue endif set ValueFatigue to (CurentFatigue/BaseFatigue) ; Calcul du modificateur set ModFactorFatigue to (1-ValueFatigue) ; Calcul du maximum de dégâts possible, par exemple, on peut faire au maximum 2x plus de dégât set MaxDamage to (DefDamage * 2) ; Calcul du maximum de vitesse pour les armes à une main if (Type == 0 || Type == 2) set MaxSpeed to 1.6 if (DefReach =< 1) set MaxSpeed to 2 endif ; Calcul pour les armes à deux mains elseif (Type == 1 || Type == 3) set MaxSpeed to 1.2 if (DefReach =< 1) set MaxSpeed to 1.4 endif ; Calcul pour les arcs et les bâtons, à voir elseif (Type == 4 || Type == 5) set MaxSpeed to 2 endif ; Calcul de la masse maximale, si le personnage est très affaibli, il pourrait avoir l'impression que son arme en main est d'un poids incroyable, on va quadrupler le poids pour être gentil lorsque le joueur est mort (comme ça il aura au moin eu le temps de voir le poids tripler) set MaxWeight to (DefWeight * 4) ; Calcul du modificateur de dégât if (Type == 0 || Type == 1) set ValueBlade to player.GetBAV Blade set FactorBlade to (ValueBlade/100) set FactorBlunt to 0 set FactorMarksman to 0 elseif (Type == 0 || Type == 1) set ValueBlunt to player.GetBAV Blunt set FactorBlunt to (ValueBlunt/100) set FactorBlade to 0 set FactorMarksman to 0 elseif (Type == 0 || Type == 1) set ValueMarksman to player.GetBAV Marksman set FactorMarksman to (ValueMarksman/100) set FactorBlade to 0 set FactorBlunt to 0 endif set ValueStrenght to player.GetBAV Strenght set FactorStrength to (ValueStrenght/100) ; On additionne les facteurs talent et le facteur force. On fait la moyenne set ModFactorDamage to ((FactorBlade + FactorBlunt + FactorMarksman + FactorStrenght)/2) ; Calcul du paramètre dégât sans les malus set NewDamage to (ModFactorDamage * DefDamage + DefDamage) ; Ajout des malus set NewDamage to (NewDamage - (ModFactorHealth + ModFactorFatigue) * DefDamage) ; Vérification qu'on ne dépasse pas le maximum ou qu'on n'est pas en négatif, même pas mal, frappe plus fort lopette if (NewDamage < 0) set NewDamage to 0 elseif (NewDamage > MaxDamage) set NewDamage to MaxDamage endif ; Calcul du modificateur de vitesse set ValueAgility to player.GetBAV Agility set FactorAgility to (ValueAgility/100) set ValueSpeed to player.GetBAV Speed set FactorSpeed to (ValueSpeed/100) set ModFactorSpeed to ((FactorAgility + FactorSpeed)/2) set NewSpeed to (ModFactorSpeed * DefSpeed + DefSpeed) set NewSpeed to (NewSpeed - (ModFactorHealth + ModFactorFatigue) * DefSpeed) ; Il ne faut pas être trop lent ou trop rapide if (NewSpeed < 0.5) set NewSpeed to 0.5 elseif (NewSpeed > MaxSpeed) set NewSpeed to MaxSpeed endif ; Calcul du modificateur de masse set ValueEndurance to player.GetBAV Endurance set FactorEndurance to (ValueEndurance/100) set ModFactorWeight to (FactorEndurance) ; C'est la diminution de fatigue/santé qui doit augmenter le poids, et une bonne endurance contribue à le diminuer set NewWeight to ((ModFactorHealth + ModFactorFatigue) * DefWeight + DefWeight) set NewWeight to (NewWeight - ModFactorWeight * DefWeight) ; Il ne faut pas être en poids négatif ou trop lourd if (NewWeight < 0) set NewWeight to 0 elseif (NewWeight > MaxWeight) set NewWeight to MaxWeight endif ; Application des valeurs SetAttackDamage NewDamage Weapon SetWeaponSpeed NewSpeed Weapon SetWeight NewWeight weapon endif End
Modifié par beeratwork, 07 juin 2010 - 13:46.
#4
Posté 10 juin 2010 - 05:22
J'avoue que j'ai toujours étais plus branché étoffage de contenu, retouchage et création textures et 3d que scripting mais je m'y met...(et ca me plait)
tenzaku tes conseils si basiques soient ils m'ont servi, et me serviront encore sans doute...
BeerAtWork j'ai un truc qui marche issu d'un mod obscur et délaissé trouvé sur nexus, je l'ai modifié à ma sauce je te le laisse ci après ainsi que le nom de l'original... pour autant que je sache il ne présente pas l'inconvénient qui te génait tant (accumulation d'accélération)
scn VitesseDesCoups
float fQuestDelayTime
short bDoOnce
short bNoOBSE
short InfoKey
short bKeySet
ref CurWeapon
ref OldWeapon
short WeaponType
float WeaponWeight
float WeightCheck
float HpRatio
short CurHp
short MaxHp
short EnchType
float CurCharge
short AnimType
ref BaseWeapon
float CurSpeed
short Agi
short OldAgi
short Spd
short OldSpd
short Str
short OldStr
float SpeedMod
long CurDmg
short bDoMod
short bDoMod2
float SpellTimer
begin GameMode
if bDoOnce == 0
PrintToConsole "Vitesse des coups activée."
set fQuestDelayTime to 0.2
if GetOBSEVersion < 9
set bNoOBSE to 1
endif
set bDoOnce to 1
endif
if bNoOBSE == 1
Return
endif
set AnimType to Player.GetWeaponAnimType
set OldWeapon to CurWeapon
set CurWeapon to Player.GetEquippedObject 16
set OldSpd to Spd
set Spd to Player.GetAV Speed
set OldAgi to Agi
set Agi to Player.GetAV Agility
set OldStr to Str
set Str to Player.GetAV Strength
if (CurWeapon != OldWeapon) || (Agi != OldAgi) || (Spd != OldSpd) || (Str != OldStr)
set BaseWeapon to Player.GetEquippedObject 16
set WeaponType to GetWeaponType BaseWeapon
set WeaponWeight to GetWeight BaseWeapon
set WeightCheck to Floor WeaponWeight
set WeightCheck to WeaponWeight - WeightCheck
set WeightCheck to WeightCheck * 10000
if WeightCheck < 1 && WeightCheck > 0 ;Rounding Errors
set WeightCheck to 1
endif
if WeightCheck > 1 && WeightCheck < 2 ;Rounding Errors
set WeightCheck to 1
endif
set WeightCheck to Ceil WeightCheck
if WeightCheck == 1 || WeightCheck == 11
;Message "DEBUG: This weapon has been modded already" 1
set bDoMod2 to 1
endif
if (WeightCheck >= 12)
;Message "DEBUG: Special Weapon cannot mod speed."
elseif (WeaponType == 4 || WeaponType == 5)
;Message "DEBUG: Bow or Staff cannot mod speed."
elseif AnimType == 0
;Message "DEBUG: Hand to Hand. Cannot mod speed."
elseif (BaseWeapon == BoundAxe || BaseWeapon == BoundDagger || BaseWeapon == BoundMace || BaseWeapon == BoundSword)
;Message "DEBUG: Bound Weapon. Cannot mod speed."
else
;Message "DEBUG: Old value doesnt match modding speed." 1
if bDoMod2 == 0
set bDoMod to 1
endif
endif
endif
if bDoMod2 == 1
set CurWeapon to Player.GetEquippedObject 16
set CurSpeed to GetWeaponSpeed CurWeapon
set WeaponType to GetWeaponType CurWeapon
PrintToConsole "CurSpeed: %.2f" CurSpeed
if (WeaponType == 0 || WeaponType == 2) ;1 handed
if Agi <=10
set SpeedMod to 1.0
elseif Agi <=20
set SpeedMod to 1.1
elseif Agi <=30
set SpeedMod to 1.2
elseif Agi <=40
set SpeedMod to 1.3
elseif Agi <=50
set SpeedMod to 1.4
elseif Agi <=60
set SpeedMod to 1.5
elseif Agi <=70
set SpeedMod to 1.6
elseif Agi <=80
set SpeedMod to 1.7
elseif Agi <=90
set SpeedMod to 1.8
elseif Agi <=100
set SpeedMod to 1.9
elseif Agi <=110
set SpeedMod to 2.0
elseif Agi <=120
set SpeedMod to 2.1
elseif Agi <=130
set SpeedMod to 2.2
elseif Agi <=140
set SpeedMod to 2.3
elseif Agi <=150
set SpeedMod to 2.4
elseif Agi <=160
set SpeedMod to 2.5
elseif Agi <=170
set SpeedMod to 2.6
elseif Agi <=180
set SpeedMod to 2.7
elseif Agi <=190
set SpeedMod to 2.8
elseif Agi <=200
set SpeedMod to 2.9
elseif Agi<=210
set SpeedMod to 3.0
elseif Agi <=220
set SpeedMod to 3.1
elseif Agi <=230
set SpeedMod to 3.2
elseif Agi <=240
set SpeedMod to 3.3
elseif Agi <=250
set SpeedMod to 3.4
endif
if Spd<=10
set SpeedMod to SpeedMod - 0.4
elseif Spd <=20
set SpeedMod to SpeedMod - 0.3
elseif Spd <=30
set SpeedMod to SpeedMod - 0.2
elseif Spd <=40
set SpeedMod to SpeedMod - 0.1
elseif Spd <=50
set SpeedMod to SpeedMod / 1
elseif Spd <=60
set SpeedMod to SpeedMod + 0.1
elseif Spd <=70
set SpeedMod to SpeedMod + 0.2
elseif Spd <=80
set SpeedMod to SpeedMod + 0.3
elseif Spd <=90
set SpeedMod to SpeedMod + 0.4
elseif Spd <=100
set SpeedMod to SpeedMod + 0.5
elseif Spd <=110
set SpeedMod to SpeedMod + 0.6
elseif Spd <=120
set SpeedMod to SpeedMod + 0.7
elseif Spd <=130
set SpeedMod to SpeedMod + 0.8
elseif Spd <=140
set SpeedMod to SpeedMod + 0.9
elseif Spd <=150
set SpeedMod to SpeedMod + 1.0
elseif Spd <=160
set SpeedMod to SpeedMod + 1.1
elseif Spd <=170
set SpeedMod to SpeedMod + 1.2
elseif Spd <=180
set SpeedMod to SpeedMod + 1.3
elseif Spd <=190
set SpeedMod to SpeedMod + 1.4
elseif Spd <=200
set SpeedMod to SpeedMod + 1.5
elseif Spd <=210
set SpeedMod to SpeedMod + 1.6
elseif Spd <=220
set SpeedMod to SpeedMod + 1.7
elseif Spd <=230
set SpeedMod to SpeedMod + 1.8
elseif Spd <=240
set SpeedMod to SpeedMod + 1.9
elseif Spd <=250
set SpeedMod to SpeedMod + 2.0
endif
if WeaponWeight >= 10
if Str <= 30
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 20
if Str <= 40
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 30
if Str <= 50
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 40
if Str <= 60
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 50
if Str <= 70
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 60
if Str <= 80
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 70
if Str <= 90
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 80
if Str <= 100
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 90
if Str <= 110
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 100
if Str <= 120
set SpeedMod to SpeedMod - 0.1
endif
endif
elseif (WeaponType == 1 || WeaponType == 3) ;2 handed
if Str<=10
set SpeedMod to 0.8
elseif Str <=20
set SpeedMod to 0.9
elseif Str <=30
set SpeedMod to 1.0
elseif Str <=40
set SpeedMod to 1.1
elseif Str <=50
set SpeedMod to 1.2
elseif Str <=60
set SpeedMod to 1.3
elseif Str <=70
set SpeedMod to 1.4
elseif Str <=80
set SpeedMod to 1.5
elseif Str <=90
set SpeedMod to 1.6
elseif Str <=100
set SpeedMod to 1.7
elseif Str <=110
set SpeedMod to 1.8
elseif Str <=120
set SpeedMod to 1.9
elseif Str <=130
set SpeedMod to 2.0
elseif Str <=140
set SpeedMod to 2.1
elseif Str <=150
set SpeedMod to 2.2
elseif Str <=160
set SpeedMod to 2.3
elseif Str <=170
set SpeedMod to 2.4
elseif Str <=180
set SpeedMod to 2.5
elseif Str <=190
set SpeedMod to 2.6
elseif Str <=200
set SpeedMod to 2.7
elseif Str <=210
set SpeedMod to 2.8
elseif Str <=220
set SpeedMod to 2.9
elseif Str <=230
set SpeedMod to 3.0
elseif Str <=240
set SpeedMod to 3.1
elseif Str <=250
set SpeedMod to 3.2
endif
if Spd <=10
set SpeedMod to SpeedMod - 0.4
elseif Spd <=20
set SpeedMod to SpeedMod - 0.3
elseif Spd <=30
set SpeedMod to SpeedMod - 0.2
elseif Spd <=40
set SpeedMod to SpeedMod - 0.1
elseif Agi <=50
set SpeedMod to SpeedMod / 1
elseif Spd <=60
set SpeedMod to SpeedMod + 0.1
elseif Spd <=70
set SpeedMod to SpeedMod + 0.2
elseif Spd <=80
set SpeedMod to SpeedMod + 0.3
elseif Spd <=90
set SpeedMod to SpeedMod + 0.4
elseif Spd <=100
set SpeedMod to SpeedMod + 0.5
elseif Spd <=110
set SpeedMod to SpeedMod + 0.6
elseif Spd <=120
set SpeedMod to SpeedMod + 0.7
elseif Spd <=130
set SpeedMod to SpeedMod + 0.8
elseif Spd <=140
set SpeedMod to SpeedMod + 0.9
elseif Spd <=150
set SpeedMod to SpeedMod + 1.0
elseif Spd <=160
set SpeedMod to SpeedMod + 1.1
elseif Spd <=170
set SpeedMod to SpeedMod + 1.2
elseif Spd <=180
set SpeedMod to SpeedMod + 1.3
elseif Spd <=190
set SpeedMod to SpeedMod + 1.4
elseif Spd <=200
set SpeedMod to SpeedMod + 1.5
elseif Spd <=210
set SpeedMod to SpeedMod + 1.6
elseif Spd <=220
set SpeedMod to SpeedMod + 1.7
elseif Spd <=230
set SpeedMod to SpeedMod + 1.8
elseif Spd <=240
set SpeedMod to SpeedMod + 1.9
elseif Spd <=250
set SpeedMod to SpeedMod + 2.0
endif
if WeaponWeight >= 10
if Str <= 30
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 20
if Str <= 40
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 30
if Str <= 50
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 40
if Str <= 60
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 50
if Str <= 70
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 60
if Str <= 80
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 70
if Str <= 90
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 80
if Str <= 100
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 90
if Str <= 110
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 100
if Str <= 120
set SpeedMod to SpeedMod - 0.1
endif
endif
endif
if SpeedMod < 0.1
set SpeedMod to 0.1
endif
Player.SetWeaponSpeed SpeedMod CurWeapon
set CurSpeed to GetWeaponSpeed CurWeapon
PrintToConsole "NewSpeed: %.2f" CurSpeed
set bDoMod2 to 0
endif
if bDoMod == 1
set CurHp to Player.GetEquippedCurrentHealth 16
set CurCharge to Player.GetEquippedCurrentCharge 16
set BaseWeapon to Player.GetEquippedObject 16
set EnchType to GetEnchantmentType BaseWeapon
set CurDmg to GetAttackDamage BaseWeapon
set MaxHp to GetObjectHealth BaseWeapon
set HpRatio to CurHp / MaxHp
PrintToConsole "WeaponWeight: %.4f" WeaponWeight
set CurWeapon to CloneForm BaseWeapon
set CurSpeed to GetWeaponSpeed CurWeapon
set WeaponType to GetWeaponType CurWeapon
Message " "
Message " "
Message " "
Player.RemoveItem BaseWeapon 1
Player.AddItem CurWeapon 1
Player.EquipItem CurWeapon
PrintToConsole "Hp: %.0f/%.0f %.2f" CurHp MaxHp HpRatio
PrintToConsole "CurSpeed: %.2f" CurSpeed
PrintToConsole "WeaponType: %.0f" WeaponType
PrintToConsole "WeaponWeight: %.0f" WeaponWeight
if (WeaponType == 0 || WeaponType == 2) ;1 handed
if Agi <=10
set SpeedMod to 1.0
elseif Agi <=20
set SpeedMod to 1.1
elseif Agi <=30
set SpeedMod to 1.2
elseif Agi <=40
set SpeedMod to 1.3
elseif Agi <=50
set SpeedMod to 1.4
elseif Agi <=60
set SpeedMod to 1.5
elseif Agi <=70
set SpeedMod to 1.6
elseif Agi <=80
set SpeedMod to 1.7
elseif Agi <=90
set SpeedMod to 1.8
elseif Agi <=100
set SpeedMod to 1.9
elseif Agi <=110
set SpeedMod to 2.0
elseif Agi <=120
set SpeedMod to 2.1
elseif Agi <=130
set SpeedMod to 2.2
elseif Agi <=140
set SpeedMod to 2.3
elseif Agi <=150
set SpeedMod to 2.4
elseif Agi <=160
set SpeedMod to 2.5
elseif Agi <=170
set SpeedMod to 2.6
elseif Agi <=180
set SpeedMod to 2.7
elseif Agi <=190
set SpeedMod to 2.8
elseif Agi <=200
set SpeedMod to 2.9
elseif Agi<=210
set SpeedMod to 3.0
elseif Agi <=220
set SpeedMod to 3.1
elseif Agi <=230
set SpeedMod to 3.2
elseif Agi <=240
set SpeedMod to 3.3
elseif Agi <=250
set SpeedMod to 3.4
endif
if Spd <=10
set SpeedMod to SpeedMod - 0.4
elseif Spd <=20
set SpeedMod to SpeedMod - 0.3
elseif Spd <=30
set SpeedMod to SpeedMod - 0.2
elseif Spd <=40
set SpeedMod to SpeedMod - 0.1
elseif Spd <=50
set SpeedMod to SpeedMod / 1
elseif Spd <=60
set SpeedMod to SpeedMod + 0.1
elseif Spd <=70
set SpeedMod to SpeedMod + 0.2
elseif Spd <=80
set SpeedMod to SpeedMod + 0.3
elseif Spd <=90
set SpeedMod to SpeedMod + 0.4
elseif Spd <=100
set SpeedMod to SpeedMod + 0.5
elseif Spd <=110
set SpeedMod to SpeedMod + 0.6
elseif Spd <=120
set SpeedMod to SpeedMod + 0.7
elseif Spd <=130
set SpeedMod to SpeedMod + 0.8
elseif Spd <=140
set SpeedMod to SpeedMod + 0.9
elseif Spd <=150
set SpeedMod to SpeedMod + 1.0
elseif Spd <=160
set SpeedMod to SpeedMod + 1.1
elseif Spd <=170
set SpeedMod to SpeedMod + 1.2
elseif Spd <=180
set SpeedMod to SpeedMod + 1.3
elseif Spd <=190
set SpeedMod to SpeedMod + 1.4
elseif Spd <=200
set SpeedMod to SpeedMod + 1.5
elseif Spd <=210
set SpeedMod to SpeedMod + 1.6
elseif Spd <=220
set SpeedMod to SpeedMod + 1.7
elseif Spd <=230
set SpeedMod to SpeedMod + 1.8
elseif Spd <=240
set SpeedMod to SpeedMod + 1.9
elseif Spd <=250
set SpeedMod to SpeedMod + 2.0
endif
if WeaponWeight >= 10
if Str <= 30
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 20
if Str <= 40
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 30
if Str <= 50
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 40
if Str <= 60
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 50
if Str <= 70
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 60
if Str <= 80
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 70
if Str <= 90
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 80
if Str <= 100
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 90
if Str <= 110
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 100
if Str <= 120
set SpeedMod to SpeedMod - 0.1
endif
endif
elseif (WeaponType == 1 || WeaponType == 3) ;2 handed
if Str<=10
set SpeedMod to 0.8
elseif Str <=20
set SpeedMod to 0.9
elseif Str <=30
set SpeedMod to 1.0
elseif Str <=40
set SpeedMod to 1.1
elseif Str <=50
set SpeedMod to 1.2
elseif Str <=60
set SpeedMod to 1.3
elseif Str <=70
set SpeedMod to 1.4
elseif Str <=80
set SpeedMod to 1.5
elseif Str <=90
set SpeedMod to 1.6
elseif Str <=100
set SpeedMod to 1.7
elseif Str <=110
set SpeedMod to 1.8
elseif Str <=120
set SpeedMod to 1.9
elseif Str <=130
set SpeedMod to 2.0
elseif Str <=140
set SpeedMod to 2.1
elseif Str <=150
set SpeedMod to 2.2
elseif Str <=160
set SpeedMod to 2.3
elseif Str <=170
set SpeedMod to 2.4
elseif Str <=180
set SpeedMod to 2.5
elseif Str <=190
set SpeedMod to 2.6
elseif Str <=200
set SpeedMod to 2.7
elseif Str <=210
set SpeedMod to 2.8
elseif Str <=220
set SpeedMod to 2.9
elseif Str <=230
set SpeedMod to 3.0
elseif Str <=240
set SpeedMod to 3.1
elseif Str <=250
set SpeedMod to 3.2
endif
if Spd <=10
set SpeedMod to SpeedMod - 0.5
elseif Spd <=20
set SpeedMod to SpeedMod - 0.4
elseif Spd <=30
set SpeedMod to SpeedMod - 0.3
elseif Spd <=40
set SpeedMod to SpeedMod - 0.2
elseif Spd <=50
set SpeedMod to SpeedMod - 0.1
elseif Spd <=60
set SpeedMod to SpeedMod / 1
elseif Spd <=70
set SpeedMod to SpeedMod + 0.1
elseif Spd <=80
set SpeedMod to SpeedMod + 0.2
elseif Spd <=90
set SpeedMod to SpeedMod + 0.3
elseif Spd <=100
set SpeedMod to SpeedMod + 0.4
elseif Spd <=110
set SpeedMod to SpeedMod + 0.5
elseif Spd <=120
set SpeedMod to SpeedMod + 0.6
elseif Spd <=130
set SpeedMod to SpeedMod + 0.7
elseif Spd <=140
set SpeedMod to SpeedMod + 0.8
elseif Spd <=150
set SpeedMod to SpeedMod + 0.9
elseif Spd <=160
set SpeedMod to SpeedMod + 1.0
elseif Spd <=170
set SpeedMod to SpeedMod + 1.1
elseif Spd <=180
set SpeedMod to SpeedMod + 1.2
elseif Spd <=190
set SpeedMod to SpeedMod + 1.3
elseif Spd <=200
set SpeedMod to SpeedMod + 1.4
elseif Spd <=210
set SpeedMod to SpeedMod + 1.5
elseif Spd <=220
set SpeedMod to SpeedMod + 1.6
elseif Spd <=230
set SpeedMod to SpeedMod + 1.7
elseif Spd <=240
set SpeedMod to SpeedMod + 1.8
elseif Spd <=250
set SpeedMod to SpeedMod + 1.9
endif
if WeaponWeight >= 10
if Str <= 30
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 20
if Str <= 40
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 30
if Str <= 50
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 40
if Str <= 60
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 50
if Str <= 70
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 60
if Str <= 80
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 70
if Str <= 90
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 80
if Str <= 100
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 90
if Str <= 110
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 100
if Str <= 120
set SpeedMod to SpeedMod - 0.1
endif
endif
endif
if SpeedMod < 0.1
set SpeedMod to 0.1
endif
set WeaponWeight to GetWeight BaseWeapon
set WeaponWeight to WeaponWeight + 0.0001
SetWeight WeaponWeight CurWeapon
set WeaponWeight to GetWeight CurWeapon
setEnchantmentType EnchType CurWeapon
SetAttackDamage CurDmg CurWeapon
PrintToConsole "WeaponWeight: %.4f" WeaponWeight
Player.SetWeaponSpeed SpeedMod CurWeapon
Player.SetEquippedCurrentHealth CurHp 16
Player.SetEquippedCurrentCharge CurCharge 16
set CurSpeed to GetWeaponSpeed CurWeapon
PrintToConsole "NewSpeed: %.2f" CurSpeed
set bDoMod to 0
endif
end
Pour l'original c'est: http://www.tesnexus....le.php?id=11191
Question maintenant que j'ai eu ce que je voulais (mes crocs ont poussés lol)
Je cojite une base de script dans le même genre pour que les dégats donc les gamesettings attribués aux dégats par armes et ataques spéciales(forward, backward powerattack etc...) augmentent en fonction du niveau que le perso possède en skill Blade ou Blunt...
Vous avez l'air d'avoir des ressources et la langue assez pendue (comme moi) pour partager vos connaissances alors j'attend vos contributions avec impatience...
Merci d'avance pour vos futures reponses sur lesquelles je compte fort...
désolé pour l'oubli de fermeture de balise code...
Au passage j'ajoute que biensur les scripts "comparatifs" de WIl et INT du lanceur de sort-->cible vont suivre,
avec peut être à la clef des choses amusantes telles que les coups critique de deadly reflex dont je veus m'inspirer.
Je souhaite cependant que cela tienne compte de plus de paramètres tels que le niveau du lanceur dans la skill magie à laquelle le sort appartient...
Le tout remanié à ma sauce...
revoici le code
scn VitesseDesCoups
float fQuestDelayTime
short bDoOnce
short bNoOBSE
short InfoKey
short bKeySet
ref CurWeapon
ref OldWeapon
short WeaponType
float WeaponWeight
float WeightCheck
float HpRatio
short CurHp
short MaxHp
short EnchType
float CurCharge
short AnimType
ref BaseWeapon
float CurSpeed
short Agi
short OldAgi
short Spd
short OldSpd
short Str
short OldStr
float SpeedMod
long CurDmg
short bDoMod
short bDoMod2
float SpellTimer
begin GameMode
if bDoOnce == 0
PrintToConsole "Vitesse des coups activée."
set fQuestDelayTime to 0.2
if GetOBSEVersion < 9
set bNoOBSE to 1
endif
set bDoOnce to 1
endif
if bNoOBSE == 1
Return
endif
set AnimType to Player.GetWeaponAnimType
set OldWeapon to CurWeapon
set CurWeapon to Player.GetEquippedObject 16
set OldSpd to Spd
set Spd to Player.GetAV Speed
set OldAgi to Agi
set Agi to Player.GetAV Agility
set OldStr to Str
set Str to Player.GetAV Strength
if (CurWeapon != OldWeapon) || (Agi != OldAgi) || (Spd != OldSpd) || (Str != OldStr)
set BaseWeapon to Player.GetEquippedObject 16
set WeaponType to GetWeaponType BaseWeapon
set WeaponWeight to GetWeight BaseWeapon
set WeightCheck to Floor WeaponWeight
set WeightCheck to WeaponWeight - WeightCheck
set WeightCheck to WeightCheck * 10000
if WeightCheck < 1 && WeightCheck > 0 ;Rounding Errors
set WeightCheck to 1
endif
if WeightCheck > 1 && WeightCheck < 2 ;Rounding Errors
set WeightCheck to 1
endif
set WeightCheck to Ceil WeightCheck
if WeightCheck == 1 || WeightCheck == 11
;Message "DEBUG: This weapon has been modded already" 1
set bDoMod2 to 1
endif
if (WeightCheck >= 12)
;Message "DEBUG: Special Weapon cannot mod speed."
elseif (WeaponType == 4 || WeaponType == 5)
;Message "DEBUG: Bow or Staff cannot mod speed."
elseif AnimType == 0
;Message "DEBUG: Hand to Hand. Cannot mod speed."
elseif (BaseWeapon == BoundAxe || BaseWeapon == BoundDagger || BaseWeapon == BoundMace || BaseWeapon == BoundSword)
;Message "DEBUG: Bound Weapon. Cannot mod speed."
else
;Message "DEBUG: Old value doesnt match modding speed." 1
if bDoMod2 == 0
set bDoMod to 1
endif
endif
endif
if bDoMod2 == 1
set CurWeapon to Player.GetEquippedObject 16
set CurSpeed to GetWeaponSpeed CurWeapon
set WeaponType to GetWeaponType CurWeapon
PrintToConsole "CurSpeed: %.2f" CurSpeed
if (WeaponType == 0 || WeaponType == 2) ;1 handed
if Agi <=10
set SpeedMod to 1.0
elseif Agi <=20
set SpeedMod to 1.1
elseif Agi <=30
set SpeedMod to 1.2
elseif Agi <=40
set SpeedMod to 1.3
elseif Agi <=50
set SpeedMod to 1.4
elseif Agi <=60
set SpeedMod to 1.5
elseif Agi <=70
set SpeedMod to 1.6
elseif Agi <=80
set SpeedMod to 1.7
elseif Agi <=90
set SpeedMod to 1.8
elseif Agi <=100
set SpeedMod to 1.9
elseif Agi <=110
set SpeedMod to 2.0
elseif Agi <=120
set SpeedMod to 2.1
elseif Agi <=130
set SpeedMod to 2.2
elseif Agi <=140
set SpeedMod to 2.3
elseif Agi <=150
set SpeedMod to 2.4
elseif Agi <=160
set SpeedMod to 2.5
elseif Agi <=170
set SpeedMod to 2.6
elseif Agi <=180
set SpeedMod to 2.7
elseif Agi <=190
set SpeedMod to 2.8
elseif Agi <=200
set SpeedMod to 2.9
elseif Agi<=210
set SpeedMod to 3.0
elseif Agi <=220
set SpeedMod to 3.1
elseif Agi <=230
set SpeedMod to 3.2
elseif Agi <=240
set SpeedMod to 3.3
elseif Agi <=250
set SpeedMod to 3.4
endif
if Spd<=10
set SpeedMod to SpeedMod - 0.4
elseif Spd <=20
set SpeedMod to SpeedMod - 0.3
elseif Spd <=30
set SpeedMod to SpeedMod - 0.2
elseif Spd <=40
set SpeedMod to SpeedMod - 0.1
elseif Spd <=50
set SpeedMod to SpeedMod / 1
elseif Spd <=60
set SpeedMod to SpeedMod + 0.1
elseif Spd <=70
set SpeedMod to SpeedMod + 0.2
elseif Spd <=80
set SpeedMod to SpeedMod + 0.3
elseif Spd <=90
set SpeedMod to SpeedMod + 0.4
elseif Spd <=100
set SpeedMod to SpeedMod + 0.5
elseif Spd <=110
set SpeedMod to SpeedMod + 0.6
elseif Spd <=120
set SpeedMod to SpeedMod + 0.7
elseif Spd <=130
set SpeedMod to SpeedMod + 0.8
elseif Spd <=140
set SpeedMod to SpeedMod + 0.9
elseif Spd <=150
set SpeedMod to SpeedMod + 1.0
elseif Spd <=160
set SpeedMod to SpeedMod + 1.1
elseif Spd <=170
set SpeedMod to SpeedMod + 1.2
elseif Spd <=180
set SpeedMod to SpeedMod + 1.3
elseif Spd <=190
set SpeedMod to SpeedMod + 1.4
elseif Spd <=200
set SpeedMod to SpeedMod + 1.5
elseif Spd <=210
set SpeedMod to SpeedMod + 1.6
elseif Spd <=220
set SpeedMod to SpeedMod + 1.7
elseif Spd <=230
set SpeedMod to SpeedMod + 1.8
elseif Spd <=240
set SpeedMod to SpeedMod + 1.9
elseif Spd <=250
set SpeedMod to SpeedMod + 2.0
endif
if WeaponWeight >= 10
if Str <= 30
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 20
if Str <= 40
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 30
if Str <= 50
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 40
if Str <= 60
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 50
if Str <= 70
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 60
if Str <= 80
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 70
if Str <= 90
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 80
if Str <= 100
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 90
if Str <= 110
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 100
if Str <= 120
set SpeedMod to SpeedMod - 0.1
endif
endif
elseif (WeaponType == 1 || WeaponType == 3) ;2 handed
if Str<=10
set SpeedMod to 0.8
elseif Str <=20
set SpeedMod to 0.9
elseif Str <=30
set SpeedMod to 1.0
elseif Str <=40
set SpeedMod to 1.1
elseif Str <=50
set SpeedMod to 1.2
elseif Str <=60
set SpeedMod to 1.3
elseif Str <=70
set SpeedMod to 1.4
elseif Str <=80
set SpeedMod to 1.5
elseif Str <=90
set SpeedMod to 1.6
elseif Str <=100
set SpeedMod to 1.7
elseif Str <=110
set SpeedMod to 1.8
elseif Str <=120
set SpeedMod to 1.9
elseif Str <=130
set SpeedMod to 2.0
elseif Str <=140
set SpeedMod to 2.1
elseif Str <=150
set SpeedMod to 2.2
elseif Str <=160
set SpeedMod to 2.3
elseif Str <=170
set SpeedMod to 2.4
elseif Str <=180
set SpeedMod to 2.5
elseif Str <=190
set SpeedMod to 2.6
elseif Str <=200
set SpeedMod to 2.7
elseif Str <=210
set SpeedMod to 2.8
elseif Str <=220
set SpeedMod to 2.9
elseif Str <=230
set SpeedMod to 3.0
elseif Str <=240
set SpeedMod to 3.1
elseif Str <=250
set SpeedMod to 3.2
endif
if Spd <=10
set SpeedMod to SpeedMod - 0.4
elseif Spd <=20
set SpeedMod to SpeedMod - 0.3
elseif Spd <=30
set SpeedMod to SpeedMod - 0.2
elseif Spd <=40
set SpeedMod to SpeedMod - 0.1
elseif Agi <=50
set SpeedMod to SpeedMod / 1
elseif Spd <=60
set SpeedMod to SpeedMod + 0.1
elseif Spd <=70
set SpeedMod to SpeedMod + 0.2
elseif Spd <=80
set SpeedMod to SpeedMod + 0.3
elseif Spd <=90
set SpeedMod to SpeedMod + 0.4
elseif Spd <=100
set SpeedMod to SpeedMod + 0.5
elseif Spd <=110
set SpeedMod to SpeedMod + 0.6
elseif Spd <=120
set SpeedMod to SpeedMod + 0.7
elseif Spd <=130
set SpeedMod to SpeedMod + 0.8
elseif Spd <=140
set SpeedMod to SpeedMod + 0.9
elseif Spd <=150
set SpeedMod to SpeedMod + 1.0
elseif Spd <=160
set SpeedMod to SpeedMod + 1.1
elseif Spd <=170
set SpeedMod to SpeedMod + 1.2
elseif Spd <=180
set SpeedMod to SpeedMod + 1.3
elseif Spd <=190
set SpeedMod to SpeedMod + 1.4
elseif Spd <=200
set SpeedMod to SpeedMod + 1.5
elseif Spd <=210
set SpeedMod to SpeedMod + 1.6
elseif Spd <=220
set SpeedMod to SpeedMod + 1.7
elseif Spd <=230
set SpeedMod to SpeedMod + 1.8
elseif Spd <=240
set SpeedMod to SpeedMod + 1.9
elseif Spd <=250
set SpeedMod to SpeedMod + 2.0
endif
if WeaponWeight >= 10
if Str <= 30
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 20
if Str <= 40
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 30
if Str <= 50
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 40
if Str <= 60
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 50
if Str <= 70
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 60
if Str <= 80
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 70
if Str <= 90
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 80
if Str <= 100
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 90
if Str <= 110
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 100
if Str <= 120
set SpeedMod to SpeedMod - 0.1
endif
endif
endif
if SpeedMod < 0.1
set SpeedMod to 0.1
endif
Player.SetWeaponSpeed SpeedMod CurWeapon
set CurSpeed to GetWeaponSpeed CurWeapon
PrintToConsole "NewSpeed: %.2f" CurSpeed
set bDoMod2 to 0
endif
if bDoMod == 1
set CurHp to Player.GetEquippedCurrentHealth 16
set CurCharge to Player.GetEquippedCurrentCharge 16
set BaseWeapon to Player.GetEquippedObject 16
set EnchType to GetEnchantmentType BaseWeapon
set CurDmg to GetAttackDamage BaseWeapon
set MaxHp to GetObjectHealth BaseWeapon
set HpRatio to CurHp / MaxHp
PrintToConsole "WeaponWeight: %.4f" WeaponWeight
set CurWeapon to CloneForm BaseWeapon
set CurSpeed to GetWeaponSpeed CurWeapon
set WeaponType to GetWeaponType CurWeapon
Message " "
Message " "
Message " "
Player.RemoveItem BaseWeapon 1
Player.AddItem CurWeapon 1
Player.EquipItem CurWeapon
PrintToConsole "Hp: %.0f/%.0f %.2f" CurHp MaxHp HpRatio
PrintToConsole "CurSpeed: %.2f" CurSpeed
PrintToConsole "WeaponType: %.0f" WeaponType
PrintToConsole "WeaponWeight: %.0f" WeaponWeight
if (WeaponType == 0 || WeaponType == 2) ;1 handed
if Agi <=10
set SpeedMod to 1.0
elseif Agi <=20
set SpeedMod to 1.1
elseif Agi <=30
set SpeedMod to 1.2
elseif Agi <=40
set SpeedMod to 1.3
elseif Agi <=50
set SpeedMod to 1.4
elseif Agi <=60
set SpeedMod to 1.5
elseif Agi <=70
set SpeedMod to 1.6
elseif Agi <=80
set SpeedMod to 1.7
elseif Agi <=90
set SpeedMod to 1.8
elseif Agi <=100
set SpeedMod to 1.9
elseif Agi <=110
set SpeedMod to 2.0
elseif Agi <=120
set SpeedMod to 2.1
elseif Agi <=130
set SpeedMod to 2.2
elseif Agi <=140
set SpeedMod to 2.3
elseif Agi <=150
set SpeedMod to 2.4
elseif Agi <=160
set SpeedMod to 2.5
elseif Agi <=170
set SpeedMod to 2.6
elseif Agi <=180
set SpeedMod to 2.7
elseif Agi <=190
set SpeedMod to 2.8
elseif Agi <=200
set SpeedMod to 2.9
elseif Agi<=210
set SpeedMod to 3.0
elseif Agi <=220
set SpeedMod to 3.1
elseif Agi <=230
set SpeedMod to 3.2
elseif Agi <=240
set SpeedMod to 3.3
elseif Agi <=250
set SpeedMod to 3.4
endif
if Spd <=10
set SpeedMod to SpeedMod - 0.4
elseif Spd <=20
set SpeedMod to SpeedMod - 0.3
elseif Spd <=30
set SpeedMod to SpeedMod - 0.2
elseif Spd <=40
set SpeedMod to SpeedMod - 0.1
elseif Spd <=50
set SpeedMod to SpeedMod / 1
elseif Spd <=60
set SpeedMod to SpeedMod + 0.1
elseif Spd <=70
set SpeedMod to SpeedMod + 0.2
elseif Spd <=80
set SpeedMod to SpeedMod + 0.3
elseif Spd <=90
set SpeedMod to SpeedMod + 0.4
elseif Spd <=100
set SpeedMod to SpeedMod + 0.5
elseif Spd <=110
set SpeedMod to SpeedMod + 0.6
elseif Spd <=120
set SpeedMod to SpeedMod + 0.7
elseif Spd <=130
set SpeedMod to SpeedMod + 0.8
elseif Spd <=140
set SpeedMod to SpeedMod + 0.9
elseif Spd <=150
set SpeedMod to SpeedMod + 1.0
elseif Spd <=160
set SpeedMod to SpeedMod + 1.1
elseif Spd <=170
set SpeedMod to SpeedMod + 1.2
elseif Spd <=180
set SpeedMod to SpeedMod + 1.3
elseif Spd <=190
set SpeedMod to SpeedMod + 1.4
elseif Spd <=200
set SpeedMod to SpeedMod + 1.5
elseif Spd <=210
set SpeedMod to SpeedMod + 1.6
elseif Spd <=220
set SpeedMod to SpeedMod + 1.7
elseif Spd <=230
set SpeedMod to SpeedMod + 1.8
elseif Spd <=240
set SpeedMod to SpeedMod + 1.9
elseif Spd <=250
set SpeedMod to SpeedMod + 2.0
endif
if WeaponWeight >= 10
if Str <= 30
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 20
if Str <= 40
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 30
if Str <= 50
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 40
if Str <= 60
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 50
if Str <= 70
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 60
if Str <= 80
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 70
if Str <= 90
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 80
if Str <= 100
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 90
if Str <= 110
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 100
if Str <= 120
set SpeedMod to SpeedMod - 0.1
endif
endif
elseif (WeaponType == 1 || WeaponType == 3) ;2 handed
if Str<=10
set SpeedMod to 0.8
elseif Str <=20
set SpeedMod to 0.9
elseif Str <=30
set SpeedMod to 1.0
elseif Str <=40
set SpeedMod to 1.1
elseif Str <=50
set SpeedMod to 1.2
elseif Str <=60
set SpeedMod to 1.3
elseif Str <=70
set SpeedMod to 1.4
elseif Str <=80
set SpeedMod to 1.5
elseif Str <=90
set SpeedMod to 1.6
elseif Str <=100
set SpeedMod to 1.7
elseif Str <=110
set SpeedMod to 1.8
elseif Str <=120
set SpeedMod to 1.9
elseif Str <=130
set SpeedMod to 2.0
elseif Str <=140
set SpeedMod to 2.1
elseif Str <=150
set SpeedMod to 2.2
elseif Str <=160
set SpeedMod to 2.3
elseif Str <=170
set SpeedMod to 2.4
elseif Str <=180
set SpeedMod to 2.5
elseif Str <=190
set SpeedMod to 2.6
elseif Str <=200
set SpeedMod to 2.7
elseif Str <=210
set SpeedMod to 2.8
elseif Str <=220
set SpeedMod to 2.9
elseif Str <=230
set SpeedMod to 3.0
elseif Str <=240
set SpeedMod to 3.1
elseif Str <=250
set SpeedMod to 3.2
endif
if Spd <=10
set SpeedMod to SpeedMod - 0.5
elseif Spd <=20
set SpeedMod to SpeedMod - 0.4
elseif Spd <=30
set SpeedMod to SpeedMod - 0.3
elseif Spd <=40
set SpeedMod to SpeedMod - 0.2
elseif Spd <=50
set SpeedMod to SpeedMod - 0.1
elseif Spd <=60
set SpeedMod to SpeedMod / 1
elseif Spd <=70
set SpeedMod to SpeedMod + 0.1
elseif Spd <=80
set SpeedMod to SpeedMod + 0.2
elseif Spd <=90
set SpeedMod to SpeedMod + 0.3
elseif Spd <=100
set SpeedMod to SpeedMod + 0.4
elseif Spd <=110
set SpeedMod to SpeedMod + 0.5
elseif Spd <=120
set SpeedMod to SpeedMod + 0.6
elseif Spd <=130
set SpeedMod to SpeedMod + 0.7
elseif Spd <=140
set SpeedMod to SpeedMod + 0.8
elseif Spd <=150
set SpeedMod to SpeedMod + 0.9
elseif Spd <=160
set SpeedMod to SpeedMod + 1.0
elseif Spd <=170
set SpeedMod to SpeedMod + 1.1
elseif Spd <=180
set SpeedMod to SpeedMod + 1.2
elseif Spd <=190
set SpeedMod to SpeedMod + 1.3
elseif Spd <=200
set SpeedMod to SpeedMod + 1.4
elseif Spd <=210
set SpeedMod to SpeedMod + 1.5
elseif Spd <=220
set SpeedMod to SpeedMod + 1.6
elseif Spd <=230
set SpeedMod to SpeedMod + 1.7
elseif Spd <=240
set SpeedMod to SpeedMod + 1.8
elseif Spd <=250
set SpeedMod to SpeedMod + 1.9
endif
if WeaponWeight >= 10
if Str <= 30
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 20
if Str <= 40
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 30
if Str <= 50
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 40
if Str <= 60
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 50
if Str <= 70
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 60
if Str <= 80
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 70
if Str <= 90
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 80
if Str <= 100
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 90
if Str <= 110
set SpeedMod to SpeedMod - 0.1
endif
elseif WeaponWeight >= 100
if Str <= 120
set SpeedMod to SpeedMod - 0.1
endif
endif
endif
if SpeedMod < 0.1
set SpeedMod to 0.1
endif
set WeaponWeight to GetWeight BaseWeapon
set WeaponWeight to WeaponWeight + 0.0001
SetWeight WeaponWeight CurWeapon
set WeaponWeight to GetWeight CurWeapon
setEnchantmentType EnchType CurWeapon
SetAttackDamage CurDmg CurWeapon
PrintToConsole "WeaponWeight: %.4f" WeaponWeight
Player.SetWeaponSpeed SpeedMod CurWeapon
Player.SetEquippedCurrentHealth CurHp 16
Player.SetEquippedCurrentCharge CurCharge 16
set CurSpeed to GetWeaponSpeed CurWeapon
PrintToConsole "NewSpeed: %.2f" CurSpeed
set bDoMod to 0
endif
end
oula je viens de piger
que je commence à être fatigué là[quote]Je suis "pareil" fort en scripting qu'en balisage élémentaire[/quote]
#5
Posté 10 juin 2010 - 06:04
Pour ce que j'en sais:
Citation
Modifié par tenzaku, 10 juin 2010 - 06:04.
#6
Posté 10 juin 2010 - 06:34
Tu peux remplacer tous les blocs conditionnels de ce type :
if Agi <=10 set SpeedMod to 1.0 elseif Agi <=20 set SpeedMod to 1.1 elseif Agi <=30 set SpeedMod to 1.2 elseif Agi <=40 set SpeedMod to 1.3 elseif Agi <=50 set SpeedMod to 1.4 elseif Agi <=60 set SpeedMod to 1.5 ...Par une ligne :
set SpeedMod to (0.9 + (Agi/100))Si l'agilité vaut 40, tu as donc SpeedMod = (0.9 + (40/100)) = 0.9 + 0.4 = 1.3, mais évidemment, plus d'évolution "par palier" comme dans le mod original. Ici c'est vraiment proportionnel puisque à une agilité de 39 tu auras un SpeedMod de 1.29
Si tu veux mettre une vitesse maxi, tu vérifie la valeur de l'agilité ou alors tu compare SpeedMod à un maximum :
if (SpeedMod > SpeedModMax) set SpeedMod to SpeedModMax endif
Modifié par beeratwork, 10 juin 2010 - 06:35.
#7
Posté 10 juin 2010 - 17:34
Merci de tes conseils
Affirmatif il marche top ingame, par contre ta petite équation me plait bien, et je t'en remercie. L'abolition du système palier qu'elle entraine est un point trés positif pour moi...
Merci de tes conseils
#8
Posté 16 juin 2010 - 22:59
http://www.tesnexus....le.php?id=10684
Je n'ai volontairement fixé aucun maximum de vitesse pour aucun type d'arme (ben ouais les vampires avec gros stats gonflés doivent avoir une vitesse surnaturelle)
---> Pour vous les scripteurs expérimentés de toute façon ca sera pas dur de les mettre à votre sauce...
Coté HIC maintenant: ( et ouais y'en a encore...) Je m'explique:
En fait les effets ne se mélange plus et sont biens indexés sur ce que je voulais et à l'échelle que je voulais sauf pour ces putains de saloperies d'arcs...weapon type 4 qui eux me font de la merde et ne s'indexent pas sur marksman comme ils le devraient mais s'indexent quand même sur les carac que j'ai indiqué ds le script...Bizarre...(le script de base que j'ai modifié comme j'ai pu n'influençait ni les bâtons ni les arcs) et comme je suis un scripteur de mes 2...Bon côté bâtons je m'en fout car je pense que la vitesse à laquelle la charge d'énergie contenue dans ce dernier part n'a rien à voir avec vos carac ou vos compétences d'armes (quoique WIL et INT peut être mais bon)...Cependant côté arc...c'est relou...
BeerAtWork je fini par croire en tes interventions comme en la divine providence...
sauve moi bordel! lol
Voici les scripts: le premier c'est un questscript et le 2eme un object script (prenez le mod et vous pigerez peut être comment ca marche vous...)
scn ANBDWSMainSct float fQuestDelayTime short bDoOnce short bNoOBSE short InfoKey short bKeySet ref CurWeapon ref OldWeapon short WeaponType float WeaponWeight float WeightCheck float HpRatio short CurHp short MaxHp short CurCharge short AnimType ref BaseWeapon float CurSpeed short Marksman short OldMarksman short Blade short OldBlade short Blunt short OldBlunt short Agi short OldAgi short Spd short OldSpd short Str short OldStr short End short OldEnd float SpeedMod long CurDmg short bDoMod short bDoMod2 float SpellTimer begin GameMode if bDoOnce == 0 PrintToConsole "Config01 active." set fQuestDelayTime to 0.2 if GetOBSEVersion < 9 Message "Cette config nécéssite OBSE v009 ou une version plus récente pour fonctionner." set bNoOBSE to 1 endif set bDoOnce to 1 endif if bNoOBSE == 1 Return endif if bKeySet == 0 MessageBox "Set the key to press to check you current weapons speed. Click ok and the next key you press will be used." "Ok" set bKeySet to 1 endif if bKeySet == 1 set InfoKey to GetKeyPress 0 if InfoKey == 65535 else PrintToConsole "InfoKey: %.0f" InfoKey MessageBox "The key is now set. You can use it to check your current weapons speed." set bKeySet to 2 endif endif if IsKeyPressed2 InfoKey == 1 set CurSpeed to Player.GetWeaponSpeed CurWeapon Message "Current Weapon Speed: %.2f" CurSpeed endif ANBDWSCaster.MoveTo Player, 0, 0, 128 ANBDWSCaster.Cast ANBDWSAOE Player set AnimType to Player.GetWeaponAnimType set OldWeapon to CurWeapon set CurWeapon to Player.GetEquippedObject 16 set OldBlade to Blade set Blade to player.GetAV Blade set OldBlunt to Blunt set Blunt to player.GetAV Blunt set OldMarksman to Marksman set Marksman to player.GetAV Marksman set OldSpd to Spd set Spd to Player.GetAV Speed set OldAgi to Agi set Agi to Player.GetAV Agility set OldStr to Str set Str to Player.GetAV Strength set OldEnd to End set End to Player.GetAV Endurance if (CurWeapon != OldWeapon) || (Agi != OldAgi) || (Spd != OldSpd) || (Str != OldStr) || (End != OldEnd) || (Blade != OldBlade) || (Blunt != OldBlunt) || (Marksman != OldMarksman) set BaseWeapon to Player.GetEquippedObject 16 set WeaponType to GetWeaponType BaseWeapon set WeaponWeight to GetWeight BaseWeapon set WeightCheck to Floor WeaponWeight set WeightCheck to WeaponWeight - WeightCheck set WeightCheck to WeightCheck * 10000 if WeightCheck < 1 && WeightCheck > 0 ;Rounding Errors set WeightCheck to 1 endif if WeightCheck > 1 && WeightCheck < 2 ;Rounding Errors set WeightCheck to 1 endif set WeightCheck to Ceil WeightCheck if WeightCheck == 1 || WeightCheck == 11 ;Message "DEBUG: This weapon has been modded already" 1 set bDoMod2 to 1 endif if (WeightCheck >= 12) ;Message "DEBUG: Special Weapon cannot mod speed." elseif AnimType == 0 ;Message "DEBUG: Hand to Hand. Cannot mod speed." else ;Message "DEBUG: Old value doesnt match modding speed." 1 if bDoMod2 == 0 set bDoMod to 1 endif endif endif if bDoMod2 == 1 set CurWeapon to Player.GetEquippedObject 16 set CurSpeed to GetWeaponSpeed CurWeapon set WeaponType to GetWeaponType CurWeapon PrintToConsole "CurSpeed: %.2f" CurSpeed if (WeaponType == 0) ;Tranchantes à 1 main set SpeedMod to (0.2 + (Agi/100) + (Str/200) + (spd/150) + (End/200) + (0.01*Blade)) set WeaponWeight to WeaponWeight / 50 set SpeedMod to SpeedMod - WeaponWeight elseif (WeaponType == 2) ;Contandantes à 1 main set SpeedMod to (0.2 + (Agi/200) + (Str/150) + (spd/100) + (End/200) + (0.01*Blunt)) set WeaponWeight to WeaponWeight / 50 set SpeedMod to SpeedMod - WeaponWeight elseif (WeaponType == 1) ;Tranchantes à 2 mains set SpeedMod to (0.2 + (Agi/125) + (Str/125) + (spd/200) + (End/200) + (0.01*Blade)) set WeaponWeight to WeaponWeight / 50 set SpeedMod to SpeedMod - WeaponWeight elseif (WeaponType == 3) ;Contandantes à 2 mains set SpeedMod to (0.2 + (Agi/200) + (Str/125) + (spd/200) + (End/125) + (0.01*Blunt)) set WeaponWeight to WeaponWeight / 50 set SpeedMod to SpeedMod - WeaponWeight elseif (WeaponType == 4) ;Arcs, Arbalètes set SpeedMod to (0.2 + (Agi/125) + (Str/200) + (spd/125) + (End/200) + (0.01*Marksman)) set WeaponWeight to WeaponWeight / 50 set SpeedMod to SpeedMod - WeaponWeight endif if SpeedMod < 0.1 set SpeedMod to 0.1 endif Player.SetWeaponSpeed SpeedMod CurWeapon set CurSpeed to GetWeaponSpeed CurWeapon PrintToConsole "NewSpeed: %.2f" CurSpeed set bDoMod2 to 0 endif if bDoMod == 1 set CurHp to Player.GetEquippedCurrentHealth 16 set CurCharge to Player.GetEquippedCurrentCharge 16 set BaseWeapon to Player.GetEquippedObject 16 set CurDmg to GetAttackDamage BaseWeapon set MaxHp to GetObjectHealth BaseWeapon set HpRatio to CurHp / MaxHp PrintToConsole "WeaponWeight: %.4f" WeaponWeight set CurWeapon to CloneForm BaseWeapon set CurSpeed to GetWeaponSpeed CurWeapon set WeaponType to GetWeaponType CurWeapon Message " " Message " " Message " " Player.RemoveItem BaseWeapon 1 Player.AddItem CurWeapon 1 Player.EquipItem CurWeapon PrintToConsole "Hp: %.0f/%.0f %.2f" CurHp MaxHp HpRatio PrintToConsole "CurSpeed: %.2f" CurSpeed PrintToConsole "WeaponType: %.0f" WeaponType PrintToConsole "WeaponWeight: %.0f" WeaponWeight if (WeaponType == 0) ;Tranchantes à 1 main set SpeedMod to (0.2 + (Agi/100) + (Str/200) + (spd/150) + (End/200) + (0.01*Blade)) set WeaponWeight to WeaponWeight / 50 set SpeedMod to SpeedMod - WeaponWeight elseif (WeaponType == 2) ;Contandantes à 1 main set SpeedMod to (0.2 + (Agi/200) + (Str/150) + (spd/100) + (End/200) + (0.01*Blunt)) set WeaponWeight to WeaponWeight / 50 set SpeedMod to SpeedMod - WeaponWeight elseif (WeaponType == 1) ;Tranchantes à 2 mains set SpeedMod to (0.2 + (Agi/125) + (Str/125) + (spd/200) + (End/200) + (0.01*Blade)) set WeaponWeight to WeaponWeight / 50 set SpeedMod to SpeedMod - WeaponWeight elseif (WeaponType == 3) ;Contandantes à 2 mains set SpeedMod to (0.2 + (Agi/200) + (Str/125) + (spd/200) + (End/125) + (0.01*Blunt)) set WeaponWeight to WeaponWeight / 50 set SpeedMod to SpeedMod - WeaponWeight elseif (WeaponType == 4) ;Arcs, Arbalètes set SpeedMod to (0.2 + (Agi/125) + (Str/200) + (spd/125) + (End/200) + (0.01*Marksman)) set WeaponWeight to WeaponWeight / 50 set SpeedMod to SpeedMod - WeaponWeight endif if SpeedMod < 0.1 set SpeedMod to 0.1 endif set WeaponWeight to GetWeight BaseWeapon set WeaponWeight to WeaponWeight + 0.0001 SetWeight WeaponWeight CurWeapon set WeaponWeight to GetWeight CurWeapon SetAttackDamage CurDmg CurWeapon PrintToConsole "WeaponWeight: %.4f" WeaponWeight Player.SetWeaponSpeed SpeedMod CurWeapon Player.SetEquippedCurrentHealth CurHp 16 Player.SetEquippedCurrentCharge CurCharge 16 set CurSpeed to GetWeaponSpeed CurWeapon PrintToConsole "NewSpeed: %.2f" CurSpeed set bDoMod to 0 endif end
le 2eme:
scn ANBDWSMiscTokenSct ref Me short bDoOnce short bDoUpdate short bDoMod short CurHp short MaxHp short HpRatio short CurCharge float CurSpeed short WeaponType float WeaponWeight float WeightCheck float SpeedMod short Marksman short OldMarksman short Blade short OldBlade short Blunt short OldBlunt short Agi short Spd short Str short End short OldAgi short OldSpd short OldStr short OldEnd short AnimType float Timer ref BaseWeapon ref OldWeapon ref CurWeapon begin OnAdd set Me to GetContainer ;Message "OnAdd Called." 1 end begin GameMode if Me.IsActor == 0 || Me.GetIsReference Player == 1 ;Message "Me doesn't exist." 1 Return endif if Me.GetDead == 1 ;Message "Me.GetDead Returning" Return endif set AnimType to Me.GetWeaponAnimType set OldWeapon to CurWeapon set OldBlade to Blade set Blade to Me.GetAV Blade set OldBlunt to Blunt set Blunt to Me.GetAV Blunt set OldMarksman to Marksman set Marksman to Me.GetAV Marksman set OldSpd to Spd set Spd to Me.GetAV Speed set OldAgi to Agi set Agi to Me.GetAV Agility set OldStr to Str set Str to Me.GetAV Strength set OldEnd to End set End to Me.GetAV Endurance set Timer to Timer + GetSecondsPassed if Timer > 1 if Me.GetItemCount "ANBDWSMisc001" > 1 RemoveMe endif set CurWeapon to Me.GetEquippedObject 16 set Timer to 0 if OldWeapon != CurWeapon ;Message "NPC: Timer > 2 CurWeapon != OldWeapon" 1 set bDoUpdate to 1 endif endif if bDoUpdate == 1 set BaseWeapon to Me.GetEquippedObject 16 set WeaponType to GetWeaponType BaseWeapon set WeaponWeight to GetWeight BaseWeapon set WeightCheck to Floor WeaponWeight set WeightCheck to WeaponWeight - WeightCheck set WeightCheck to WeightCheck * 10000 set WeightCheck to Ceil WeightCheck set bDoUpdate to 0 if (WeightCheck >= 12) ;PrintToConsole "NPC: Special Weapon cannot mod speed." elseif AnimType == 0 ;PrintToConsole "NPC: Hand to Hand. Cannot mod speed." else ;PrintToConsole "NPC: Old value doesnt match modding speed." set bDoMod to 1 endif endif if bDoMod == 1 ;PrintToConsole "bDoMod1 Entered." set CurHp to Me.GetEquippedCurrentHealth 16 set CurCharge to Me.GetEquippedCurrentCharge 16 set BaseWeapon to Me.GetEquippedObject 16 set MaxHp to GetObjectHealth BaseWeapon set HpRatio to CurHp / MaxHp set CurWeapon to CloneForm BaseWeapon set CurSpeed to GetWeaponSpeed CurWeapon set WeaponType to GetWeaponType CurWeapon set WeaponWeight to GetWeight CurWeapon ;PrintToConsole "Reached Item remove/add/equip." Me.RemoveItem BaseWeapon 1 Me.AddItem CurWeapon 1 Me.EquipItem CurWeapon ;PrintToConsole "Reached PrintToConsole." ;PrintToConsole "NPC: %.8f" Me ;PrintToConsole "NPCHp: %.0f/%.0f %.2f" CurHp MaxHp HpRatio ;PrintToConsole "NPCCurSpeed: %.2f" CurSpeed ;PrintToConsole "NPCWeaponType: %.0f" WeaponType ;PrintToConsole "NPCWeaponWeight: %.0f" WeaponWeight if (WeaponType == 0) ;Tranchantes à 1 main set SpeedMod to (0.2 + (Agi/100) + (Str/200) + (spd/150) + (End/200) + (0.01*Blade)) set WeaponWeight to WeaponWeight / 50 set SpeedMod to SpeedMod - WeaponWeight elseif (WeaponType == 2) ;Contandantes à 1 main set SpeedMod to (0.2 + (Agi/200) + (Str/150) + (spd/100) + (End/200) + (0.01*Blunt)) set WeaponWeight to WeaponWeight / 50 set SpeedMod to SpeedMod - WeaponWeight elseif (WeaponType == 1) ;Tranchantes à 2 mains set SpeedMod to (0.2 + (Agi/125) + (Str/125) + (spd/200) + (End/200) + (0.01*Blade)) set WeaponWeight to WeaponWeight / 50 set SpeedMod to SpeedMod - WeaponWeight elseif (WeaponType == 3) ;Contandantes à 2 mains set SpeedMod to (0.2 + (Agi/200) + (Str/125) + (spd/200) + (End/125) + (0.01*Blunt)) set WeaponWeight to WeaponWeight / 50 set SpeedMod to SpeedMod - WeaponWeight elseif (WeaponType == 4) ;Arcs, Arbalètes set SpeedMod to (0.2 + (Agi/125) + (Str/200) + (spd/125) + (End/200) + (0.01*Marksman)) set WeaponWeight to WeaponWeight / 50 set SpeedMod to SpeedMod - WeaponWeight ;PrintToConsole "NPC: Agi: %.0f Spd: %.0f End: %.0f Str: %.0f WeaponWeight: %.4f SpeedMod: %.2f" Agi Spd WeaponWeight SpeedMod endif if SpeedMod < 0.1 set SpeedMod to 0.1 endif Me.SetWeaponSpeed SpeedMod CurWeapon Me.SetEquippedCurrentHealth CurHp 16 Me.SetEquippedCurrentCharge CurCharge 16 set CurSpeed to GetWeaponSpeed CurWeapon ;PrintToConsole "NPCNewSpeed: %.2f" CurSpeed set bDoMod to 0 endif end
#9
Posté 17 juin 2010 - 07:24
En gros :
- vérifier si OBSE
- enregistrer la touche d'accélération (si j'ai bien compris, et proposer un livre qui explique comment en faire un bouton souri n°6 par exemple)
- vérifier si l'arme a changé ou non
- vérifier tous les types d'arme
- ignorer les armes qu'on veut ignorer (placer un "return" dans le if)
- checker les stats
- faire les calculs
0 utilisateur(s) li(sen)t ce sujet
0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)