Baies Invinsibles
#26
Posté 25 septembre 2005 - 14:35
#27
Posté 25 septembre 2005 - 14:53
pour detecter le type d'arme :
c'est page 38-39 du Scripting for Dummies
fonction "GetWeaponType"
pour detecter si une arme bien précise est equipé , c'est "HasItemEquipped"
#28
Posté 25 septembre 2005 - 14:57
Le moyen de detecter la distance et l'arme:
if ( GetDistance player <= 185 )
if ( player->HasItemEquipped "_nm_Faux_01" )
if ( player->GetWeaponDrawn == 1 )
Le script:
Begin Moisson_de_vil-blé
short pickmonth
short quantity
short addition
short chance
short pickquantity
short HerbCalculated
short btemp
long successratio
float increment
;shan
short fullgrown
short growing
If (MenuMode==1)
return
endif
if (planted == 0)
if (growing == 0)
set fullgrown to 1
endif
endif
if (fullgrown == 1)
if ( getdisabled == 1 )
if ( pickmonth != month )
enable
else
return
endif
endif
if ( OnActivate == 1 )
set HerbCalculated to ( player->getspear / 2 ) + Moissoner_skill + 40;calcul le niveau de compêtence qui faut avoir pour pouvoir ceuillir la plante
if ( HerbCalculated < 50 )
messagebox "Vous ne savez même pas comment couper la plante sans l'abimée.Travailler votre maniemant à la faux pourrait vous être utile..."
return
endif
set quantity to getitemcount "ingred_wickwheat_01"
if ( quantity == 0 )
messagebox "Vous n'avez rien trouvé d'intéressant sur cette plante tout est pourri."
set pickmonth to month
disable
return
endif
set chance to Random, 101
set successratio to ( ( player->getalchemy / 2 ) + Moissoner_skill ) - chance
if ( chance < HerbCalculated )
set addition to Random, 3
set increment to ( ( 100 / Moissoner_skill ) + addition ) / 100
set moissoner_skill to ( Moissoner_skill + increment )
;messagebox, "Increment is %.2f, Moissoner_skill is %.2f", increment, Moissoner_skill
set btemp to MoissonerStored + 1
if ( btemp<= Moissoner_skill ) ;if you are ready to advance one point in skill.
set MoissonerStored to Moissoner_skill
PlaySound, "skillraise"
Messagebox "Votre talent de Moissoneur passe à %.0f !", moissoner_skill
endif
if ( successratio > 70 )
set pickquantity to quantity * 3
if ( GetMasserPhase == 0 )
player->additem, "graine_wickwheat", 2
endif
messagebox "Grâce à votre habilité à la faux, vous obtenez %.0f vils blés !", pickquantity
elseif ( successratio > 30 )
set pickquantity to quantity * 2
if ( GetMasserPhase == 0 )
player->additem, "graine_wickwheat", 1
endif
messagebox "Vous avez brillamment coupé la plante collect %.0f vils blés.", pickquantity
else
set pickquantity to quantity
messagebox "Vous avez coupé la plante %.0f vil(s) blé(s).", pickquantity
endif
while ( pickquantity > 0 )
player->additem, "ingred_wickwheat_01", 1
set pickquantity to pickquantity - 1
endwhile
playsound "item misc up"
set pickmonth to month
disable
else ;If NOT passed skill check.
set increment to ( ( 100 / moissoner_skill ) ) / 200
set moissoner_skill to ( moissoner_skill + increment )
; messagebox, "Increment is %.2f, Herbalism_skill is %.2f", increment, Herbalism_skill
set btemp to moissonerStored + 1
if ( btemp<= moissoner_skill )
set moissonerStored to moissoner_skill
PlaySound, "skillraise"
Messagebox "Vous apprenez de vos erreurs, et votre talent de Moissoneur passe à %.0f !", moissoner_skill!
endif
messagebox "Vous avec rater votre coups, vous avez abimé le fruit de cette plante."
set pickmonth to month
disable
endif
endif
else
if (growing == 0)
set pickmonth to month
disable
set planted to 0
set growing to 1
endif
if ( growing == 1 )
if ( pickmonth != month )
enable
set growing to 0
set fullgrown to 1
else
return
endif
endif
endif
end
Modifié par Destruckt, 25 septembre 2005 - 15:23.
#29
Posté 25 septembre 2005 - 15:13
comme ca :
if ( ... ) blablabla if ( ... ) blablabla endif endif
parce que sinon, c'est illisible ...
EDIT : pense aussi aux commentaire, ca aide
Modifié par Fandorn Delavie, 25 septembre 2005 - 15:13.
#30
Posté 25 septembre 2005 - 15:25
Le script reste comme ça.
Modifié par Destruckt, 25 septembre 2005 - 15:26.
#31
Posté 25 septembre 2005 - 15:31
1 - Clique sur [EDITER] ton mesage
2 - Tape ton script avec les espaces bien comme il faut
3 - selectionne tout ton script
4 - clique sur [CODE]
5 - Clique sur [ENVOYER LE MESSAGE MODIFIE]
#32
Posté 25 septembre 2005 - 15:40
Voilà c'est un script d'herbalisme que j'ai un peu modifier(adapter c'est plus correct).Mais le problème je ne sais pas ou placer Le moyen de detecter la distance et l'arme: if ( GetDistance player <= 185 ) if ( player->HasItemEquipped "_nm_Faux_01" ) if ( player->GetWeaponDrawn == 1 ) Le script: Begin Moisson_de_vil-bléshort pickmonth short quantity;determine la quantité short addition short chance short pickquantity short HerbCalculated :permet le calcul de compétence short btemp long successratio float increment ;shan short fullgrown short growing If (MenuMode==1) return endif if (planted == 0) if (growing == 0) set fullgrown to 1 endif endif if (fullgrown == 1) if ( getdisabled == 1 ) if ( pickmonth != month ) enable else return endif endif if ( OnActivate == 1 ) set HerbCalculated to ( player->getspear / 2 ) + Moissoner_skill + 40;calcul le niveau de compêtence qui faut avoir pour pouvoir ceuillir la plante if ( HerbCalculated < 50 ) messagebox "Vous ne savez même pas comment couper la plante sans l'abimée.Travailler votre maniemant à la faux pourrait vous être utile..." return endif set quantity to getitemcount "ingred_wickwheat_01" if ( quantity == 0 ) messagebox "Vous n'avez rien trouvé d'intéressant sur cette plante tout est pourri." set pickmonth to month disable return endif set chance to Random, 101 set successratio to ( ( player->getalchemy / 2 ) + Moissoner_skill ) - chance if ( chance < HerbCalculated ) set addition to Random, 3 set increment to ( ( 100 / Moissoner_skill ) + addition ) / 100 set moissoner_skill to ( Moissoner_skill + increment ) ; messagebox, "Increment is %.2f, Moissoner_skill is %.2f", increment, Moissoner_skill set btemp to MoissonerStored + 1 if ( btemp<= Moissoner_skill );if you are ready to advance one point in skill. set MoissonerStored to Moissoner_skill PlaySound, "skillraise" Messagebox "Votre talent de Moissoneur passe à %.0f !", moissoner_skill endif if ( successratio > 70 ) set pickquantity to quantity * 3 if ( GetMasserPhase == 0 ) player->additem, "graine_wickwheat", 2 endif messagebox "Grâce à votre habilité à la faux, vous obtenez %.0f vils blés !", pickquantity elseif ( successratio > 30 ) set pickquantity to quantity * 2 if ( GetMasserPhase == 0 ) player->additem, "graine_wickwheat", 1 endif messagebox "Vous avez brillamment coupé la plante collect %.0f vils blés.", pickquantity else set pickquantity to quantity messagebox "Vous avez coupé la plante %.0f vil(s) blé(s).", pickquantity endif while ( pickquantity > 0 ) player->additem, "ingred_wickwheat_01", 1 set pickquantity to pickquantity - 1 endwhile playsound "item misc up" set pickmonth to month disable else;If NOT passed skill check. set increment to ( ( 100 / moissoner_skill ) ) / 200 set moissoner_skill to ( moissoner_skill + increment ) ; messagebox, "Increment is %.2f, Herbalism_skill is %.2f", increment, Herbalism_skill set btemp to moissonerStored + 1 if ( btemp<= moissoner_skill ) set moissonerStored to moissoner_skill PlaySound, "skillraise" Messagebox "Vous apprenez de vos erreurs, et votre talent de Moissoneur passe à %.0f !", moissoner_skill! endif messagebox "Vous avec rater votre coups, vous avez abimé le fruit de cette plante." set pickmonth to month disable endif endif else if (growing == 0) set pickmonth to month disable set planted to 0 set growing to 1 endif if ( growing == 1 ) if ( pickmonth != month ) enable set growing to 0 set fullgrown to 1 else return endif endif endif end
Modifié par Destruckt, 25 septembre 2005 - 15:41.
#33
Posté 25 septembre 2005 - 15:53
#34
Posté 25 septembre 2005 - 15:54
Modifié par Destruckt, 25 septembre 2005 - 15:55.
#35
Posté 25 septembre 2005 - 16:00
apres le :
if ( OnActivate == 1 )
tu rajoutes :
if ( player->HasItemEquipped "_nm_Faux_01" ) MessageBox, "Vous devez a voir la faux en mains pour faucher les blés" return endif if ( player->GetWeaponDrawn == 1 ) MessageBox, "Vous devez a voir la faux en mains pour faucher les blés" return endif
le "if ( GetDistance player <= 185 )" est inutile car si tu "actionne" le blé ( traducion : tu appuis sur espace quand tu est face au blé ) , tu est forcement a proximité de celui ci ( sauf si tu utilise telequinésie )
#36
Posté 25 septembre 2005 - 16:06
je vais tester mais est ce que la faux doit être dégainée?
Modifié par Destruckt, 25 septembre 2005 - 16:07.
#37
Posté 25 septembre 2005 - 16:09
#38
Posté 25 septembre 2005 - 16:11
Merci beaucoup
#39
Posté 25 septembre 2005 - 16:59
#40
Posté 25 septembre 2005 - 17:23
#41
Posté 25 septembre 2005 - 18:15
Les as tu demarré via console ou declaré dans le menu gameplay ?
#42
Posté 25 septembre 2005 - 19:04
je croyais l'avoir fait mais non j'ai oublié maintenant ça marche
Modifié par Destruckt, 25 septembre 2005 - 19:18.
#43
Posté 25 septembre 2005 - 21:18
Très bonnes idées, tout çà. Juste quelques remarques sur l'orthographe :
Citation
Correction : calcule le niveau de compétence qu'il faut avoir pour pouvoir cueillir la plante
Proposition : calcule le niveau nécessaire pour pouvoir cueillir la plante
Citation
Correction : Vous ne savez pas comment couper la plante sans l'abîmer. Travailler le maniement de la faux pourrait vous être utile...
Proposition : Vous ne savez pas manier une faux sans abîmer les plantes... Travailler son maniement pourrait vous être utile...
Citation
Correction : Vous n'avez rien trouvé d'intéressant sur cette plante. Tout est pourri.
Proposition : Cette plante est entièrement pourrie.
Citation
Correction : Vous avez raté votre coup, vous avez abîmé le fruit de cette plante.
Proposition : Vous avez manqué de précision dans votre mouvement. Vous avez abîmé le fruit de cette plante.
A+
Yr
---
"Se sent obligé de répondre par des mp en 4 points et 2 conclusions,
le tout engoncé dans un style académique des plus barbants."
#44
Posté 25 septembre 2005 - 21:26
Pour les fautes je les ai déjà corrigé mais je vais changer par tes propositions qui me paraissent mieux.
En fait j'avais fait ce script vite fait voilà ce qui explique les erreurs.
#45
Posté 25 septembre 2005 - 21:35
#46
Posté 25 septembre 2005 - 22:19
begin Armure short PCSkipEquip short DoOnce if (DoOnce == 0 ) ; si le test n'a pas encore été fait if ( ( player->GetRace, "Dark Elf" ) == 0 ) ; test race ( ici elfe noire ) set PCSkipEquip to 1 ; interdiction du port de l'objet ( definitif ) endif set DoOnce to 1 ; pour ne plus refaire le test apres endif end
Ce script ne s'execute qu'une seule fois. En effet, le PJ ne change pas de race en cours de partie, donc il suffit de faire le test 1 seule fois et d'interdire le port de l'objet si le test n'est pas bon
Modifié par Fandorn Delavie, 25 septembre 2005 - 22:22.
#47
Posté 25 septembre 2005 - 22:25
il t'a etait demandé d'utiliser : au lieu de double poster, merci de le faire.
"J'aime à voir les choses tomber en place."
Kerro Panille
Bloc-notes
#48
Posté 26 septembre 2005 - 12:27
pour le double post, j'y veillerai la prochaine fois.
Voilà j' ai une autre question: est ce qui serait possible de faire un script pour
un fauteuil.J'explique tu clique dessus et tu as un messagebox qui te dit "Voulez-vous vous reposer" "Oui" "Non"
Et si tu répond oui tu est téléporter dans le fauteuil et après 60 seconde on et téléporté à coté du fauteuil
Modifié par Destruckt, 26 septembre 2005 - 12:32.
#49
Posté 26 septembre 2005 - 20:28
C'est plus simple et au moins tu te repose vraiment ...
En plus, le script existe déja dans morrowind de base : celui des lits standard...
#50
Posté 26 septembre 2005 - 21:03
Parce que j'aimerai bien qu'on puisse voir le feu de cheminée
J'ai déjà fais le script,il marche mais je ne sais pas mettre le temps
Begin ab01_fauteuil
short button
short questionState
if ( OnActivate == 1 )
Set questionState to 1
Return
endif
if ( questionState == 0 )
Return
endif
if ( questionState == 1 )
MessageBox, "Voulez-vous reposer sur se fauteuil?", "Oui", "Non",
Set questionState to 2
endif
endif
endif
if ( questionState == 2 )
set button to GetButtonPressed
if ( button == 0 )
fadeto 100, 0.01
startscript "ab01_detente_fauteuil"
MessageBox"Vous pensez tranquilement à votre avenir "
Set questionState to 0
endif
if ( button == 1 )
MessageBox "Je ne suis pas fatigué."
Set questionState to 0
endif
endif
End ab01_fauteuil
Modifié par Destruckt, 26 septembre 2005 - 21:06.
0 utilisateur(s) li(sen)t ce sujet
0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)