Pleins de compagnons..........
Re: Pleins de compagnons..........
Attend un peu qu'il grandisse comme ça on se fait soit un poulet cuit au feu de bois, soit un coq au fin....
Re: Pleins de compagnons..........
et bien et bien je en connaissais pas cette nouvelle recette => un coq au FIN ???
XD
"Qu'est ce que cela signifie être 'normal' ?
C'est en sortant de la norme qu'on se construit !" by Tim Burton
C'est en sortant de la norme qu'on se construit !" by Tim Burton
Re: Pleins de compagnons..........
Bon le tutoriel est terminé, il ne manque plus qu'une petite correction orthographique et que les uploads puissent reprendre.
- beeratwork
- Légende de la Confrérie

- Messages : 1881
Re: Pleins de compagnons..........
Ahh ! Tu veux faire grandir des poussins ! J'y avait aussi une fois pensé...
1er technique : S'il est possible de mettre des variables sur des ref classiques.
Tout serait plus facile si on pouvait travailler avec des ref non persistente. Alors autant s'en assurer.
Fait un plugin avec farmerslife, crée une nouvelle ID de poussin, et tape le script suivant dessus :
Crée un activateur avec un script comme celui-ci :
Si ça ne va pas, ça veut dire qu'il faudra travailler avec des ref persistente pour transformer le poussin en poulet.
Si ça marche, le poulet doit devenir géant en quelque jours. C'est pour tester après tout !
1er technique : S'il est possible de mettre des variables sur des ref classiques.
Tout serait plus facile si on pouvait travailler avec des ref non persistente. Alors autant s'en assurer.
Fait un plugin avec farmerslife, crée une nouvelle ID de poussin, et tape le script suivant dessus :
Code : Tout sélectionner
scn TestGrowUp
short StartToGrow
Begin GameMode
if (StartToGrow == 1)
if (GrowDayNumber < GetDaysPassed)
set GrowDay to GetDaysPassed
set Scale to GetScale
ModScale to (Scale + 1)
endif
endif
EndCode : Tout sélectionner
scn TestActGrowUp
ref Chick
Begin OnActivate
set Chick to PlaceAtMe IDdupoulet 1 1 1 1
set Chick.StartToGrow to 1
EndSi ça marche, le poulet doit devenir géant en quelque jours. C'est pour tester après tout !
Re: Pleins de compagnons..........
Bon le tutoriel est disponible à cette adresse:
Création d'un familier
Il faut que je pense à tester si le truc de beer fonctionne !
Création d'un familier
Il faut que je pense à tester si le truc de beer fonctionne !
- beeratwork
- Légende de la Confrérie

- Messages : 1881
Re: Pleins de compagnons..........
Non, je crois pas que ça fonctionnera, à l'époque je n'avais pas encore essayé, dans un script A, d'atteindre les variables d'une référence locale à ce script A, sur un objet Z avec un script Z où sont définies ces variables.
Peut-être est-ce possible avec OBSE (qui permettra un jour de faire des structures ?).
L'autre méthode consiste à créer X poussins de tailles différentes, à les scripter et à s'arranger via package/contrôle de collision qu'il soit nourris avec W légumes avant de désactiver et killer le poussin pour placer un autre...
A tester et a améliorer bien sûr puisque je n'ai pas pu encore tester.
Peut-être est-ce possible avec OBSE (qui permettra un jour de faire des structures ?).
L'autre méthode consiste à créer X poussins de tailles différentes, à les scripter et à s'arranger via package/contrôle de collision qu'il soit nourris avec W légumes avant de désactiver et killer le poussin pour placer un autre...
Code : Tout sélectionner
scn ScriptEvolutionPoussin
; Script d'objet
; Script prévu pour ne pas avoir besoin de références persistentes, il est important de killer les créatures qui ne sont plus utilisée
short step
short MustEvolve
short stepHit
short HitCount
float timer
ref Self
ref NextForm
Begin OnHit player
; Si le joueur frappe la créature on compte les coups.
if (stepHit == 0)
set stepHit to 1
elseif (stepHit >= 2 && stepHit < 5)
set HitCount to (HitCount + 1)
endif
End
Begin GameMode
; Si le joueur frappe la créature
if (stepHit == 1)
; Si la créature est frappée par le joueur, on compte un laps de temps de 1min et 30s pour ne pas que le joueur frappe trop souvent la créature.
set stepHit to 2
set timer to 90
elseif (stepHit == 2)
; Décompte du temps tant que le joueur ne frappe pas plus de 3x, sinon, défense.
if (timer > 0)
set timer to (timer - GetSecondsPassed)
if (HitCount < 3)
SetIgnoreFriendlyHits 1
else
set stepHit to 3
SetIgnoreFriendlyHits 0
ForceAttack player
elseif (stepHit < 3)
; Le temps est écoulé, réinitialisation
set stepHit to 0
set HitCount to 0
endif
elseif (stepHit == 3)
set stepHit to 4
set timer to 45
elseif (stepHit == 4)
; La créature se bat pendant 45s contre le joueur et si sa santé diminue en-dessous des 20%, elle arrête le combat et s'éloigne. Si le nombre de coups porté est trop important, elle part pour de bon.
if (timer > 0)
set timer to (timer - GetSecondsPassed)
if (GetAV health <= ((GetBasActorValue health) * 0.2))
StopCombat player
ForceTakeCover player 30
endif
else
StopCombat player
if (HitCount >= 9)
set stepHit to 5
SetForceRun 1
else
set stepHit to 0
endif
endif
elseif (stepHit == 5)
; Lorsque la créature est dégoutée et qu'elle a couru assez loin, elle redevient sauvage, donc il faut changer les factions.
if (GetDistance player >= 768)
MessageBox "Vous avez perdu Bibi à jamais, maintenant, si vous le recroisez, il vous mangera !"
set stepHit to 6
SetForceRun 0
RemoveScriptPackage
AddScriptPackage IDPackageSauvage
EvaluatePackage
SetFactionRank PlayerFaction -1
SetFactionRank IDFactionSauvage 1
endif
endif
; Si le joueur est en mode discrétion et que la créature l'accompagne
if (player.IsSneaking == 1 && Button == 1)
SetForceSneak 1
else
SetForceSneak 0
endif
; Si la créature possède assez de nourriture pour grandir
if (GetItemCount IDObjetGraine >= 10 && MustEvolve == 0 && IsInCombat == 0 && Button == 2)
set MustEvolve to 1
endif
; Si la créature doit évoluer, on la tue et on la désactive avant de faire apparaître le niveau suivant. Si la créature est en combat on attend qu'elle termine.
if (MustEvolve == 1 && IsInCombat == 0 && stepHit == 0)
set MustEvolve to 2
set Self to GetSelf
Self.Disable
Self.Kill
set NextForm to PlaceAtMe ObjetIDFormeSuivante 1 0 0 0
NextForm.MoveTo Self
NextForm.RemoveScriptPackage
NextForm.AddScriptPackage IDPackageSuivreJoueur
NextForm.EvaluatePackage
endif
End
Begin OnActivate
; Si la réature ne doit pas évoluer, qu'elle n'a pas encore commencé l'évolution, on peut faire quelques actions lorsqu'on l'active. Ne fonctionne pas si on frappe la créature.
if (step == 0 && MusEvolve == 0 && stepHit == 0)
if (IsActionRef player == 1)
MessageBox "Petit poussin","Attend-moi ici","Suis-moi","Voilà des bonnes graines","Je vai te manger"
set step to 1
endif
elseif (step == 1)
set Button to GetButtonPressed
if (Button == 0)
RemoveScriptPackage
AddScriptPackage IDpackagePourAttendre
EvaluatePackage
set step to 0
elseif (Button == 1)
RemoveScriptPackage
AddScriptPackage IDpackagePourSuivre
EvaluatePackage
set step to 0
elseif (Button == 2)
RemoveScriptPackage
AddScriptPackage IDpackagePourChercherApresObjetGraine
EvaluatePackage
set step to 0
elseif (Button == 3)
RemoveScriptPackage
AddScriptPackage IDpackagePourFuirJoueur
EvaluatePackage
set step to 0
endif
endif
End