Aller au contenu


Script Ajoutant De L'or Toutes Les Semaines Dans Un Coffre


  • Veuillez vous connecter pour répondre
4 réponses à ce sujet

#1 Droug Ael

Droug Ael

Posté 23 août 2009 - 01:41

Bonjour ou bonsoir...

Le mod sur lequel je travaille doit faire une somme de septims dans un coffre, j'ai pensé d'abord à faire un script global mais la lecture du wiwiki m'a incité à faire un script d'objet sur le coffre :

Spoiler

Puis en poursuivant la lecture du wiwiki j'ai réalisé que le script ne serait testé que ci le PC est dans la CELL contenant le coffre ; ce n'est pas ce que je cherche à obtenir, le coffre doit se remplir en l'absence du PC...

Donc je pense devoir faire un script de quête ; après avoir regardé le script qui fourni le coffre du maître de guilde (des guerriers) j'ai adapté le code de Bethesda pour mon usage :

Spoiler

Mais ça ne me convient pas et ne fait que créer de nouvelles interrogations !

- Pourquoi la Priority de la quête de la guilde des guerriers passe de 60 pour les quêtes de progression à 61 pour la quête qui gère le coffre ?

- Je ne vois pas à quoi sert monthpay dans leur script et je ne trouve pas d'autres références avec la fonction Find Text...

- Et ce qui est vraiment important, comment faire pour que le script de quête n'alourdisse pas trop le jeu vu qu'il ne se terminera jamais ? Mais comme je maitrise mal le script j'ai peut-être tort, et un script d'objet pourrait convenir...

Tout ça pour avouer que je me sens un peu perdu...

Merci d'avance.

Edit :
Après d'autres recherches, Priority est pour les dialogues. (Je n'ai pas encore de dialogues donc pas de problème.)

Et ce que cherchais pour mon script global c'est la variable fQuestDelayTime pour ralentir l'exécution du script.

J'avance, j'avance...

Modifié par Droug Ael, 23 août 2009 - 08:01.

Le silence est honorable...

#2 Akeos

Akeos

Posté 23 août 2009 - 10:46

Je ne connais rien dans le domaine des scripts mais je voudrais juste faire une remarque.

Tu as parlé d'un script qui ne s'exécute qu'en présence du PJ.
Je suppose que la date dans le jeu peut être récupérée par une fonction ou une variable. Imaginons ceci :

La première fois qu'on rentre dans la Cell, le script s'exécute et note la date actuelle au jour près dans une nouvelle variable. Le coffre se remplit.
La deuxième fois que l'on rentre dans la Cell, le script s'exécute et compare la date actuelle à celle qu'il avait enregistré précédemment. Si le décalage est de 7 jours ou plus, le coffre se re-remplit. Sinon, rien ne se passe.

Voila, cela peut être une solution :)
À crétin, crétin et demi.

#3 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 23 août 2009 - 11:08

Bonjour, :)

Tout d'abord, dans ton script, la déclaration de variable "short payday" ne sert à rien, pas plus que la ligne "set payday to GameDay". sleeping.gif

Ensuite, ton script me semble bon...si tu souhaites que le coffre gagne de l'argent tous les mois.
Si tu souhaites reprendre le principe du gain toutes les semaines, il faudrait reprendre le même fonctionnement que ton script original, avec la fonction GetDayOfWeek et une variable quelconque.


Après, un script n'a que peu de conséquences sur les performances en jeu, mais rien ne t'empêche de le ralentir avec la variable fQuestDelayTime.

Et finalement, oui, la variable monthpay du script original de Beth' ne semble pas servir à grand chose, elle ne semble pas être appelée par un quelconque dialogue ou stage.


Quand aux scripts locaux, c'est effectivement assez foireux à l'utilisation, certains bogues du jeu de base sont dû à une mauvaise utilisation de ces derniers...

#4 Droug Ael

Droug Ael

Posté 23 août 2009 - 22:08

Merci pour vos réponses, j'ai encore du boulot mais ça avance.
Le silence est honorable...

#5 beeratwork

beeratwork

Posté 31 août 2009 - 13:43

Tu dois créer une quête et mettre un script du genre :

scn DgAlDeLOrTousLesJoursPourToujoursQuestScript

short step
short benefice

Begin GameMode

if (GetDayOfWeek == step && GetStage DgAlTrollFarci == 50)
    if (step == 6)
        set step to 0     ; On passe à dimanche
    else
        set step to step + 1 ; On passe au lendemain
    endif
    set benefice to ( 7 * GetRandomPercent + 123 )
    DgAlCaisseduBarREF.AddItem Gold001 benefice
endif

End

Avec ce script, c'est uniquement lorsque le troll sera farci que tu aura de l'or ! Si tu passe à table après et que le stage n'est plus à 50, plus d'or du tout !
A la place d'un calcul (sur 7 jour ?) j'aurais mis 5 po par jour ou quelque chose en fonction des actions du joueur.




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)