Herboriste

Répondre
Partager Rechercher
J voudrai que le pj druide puisse faire des potion ou des onguent en les préparant dans une marmitte avec différente herbe. G fais le script suivant mai ca compile pas et en plus je croi pas q c le bon ! Alors g un pti pb ! et j voudrai aussi, je pense que c un peu le meme script, que les pj puissent préparé de la nourriture avec de la viande ou autre chose, et qu'il soit obligé d'en avoir pr dormir. J c pas comment faire ? Pouvez vous éclairé mes torche !!
Et aussi c quoi exactement le blue print de l'objet ?

Code PHP:

void main ()
{
  
object oTarget OBJECT_SELF ;
  
string sItemTemplate "blueprintdelobjet";
  
int nStackSize 1;
  
object oBaguette GetItemPossessor (tagobjet);

if (
oBaguette ==OBJECT_INVALID)
{
ActionSpeackString ("Seul les Haut Druide..") ;
             }
 
else
           {
             if (
GetIsObjectValid (tagobjet)
                   {
                      
CreateItemOnObject (sItemTemplateoTargetnStackSize) ; 
                   }
           }

Re: Herboriste
Citation :
Et aussi c quoi exactement le blue print de l'objet ?
c expliqué un peu partout, donc c introuvable
le blueprint, c'est ce qui permet de retrouver un objet ds la palette, à ne pas confondre avec le TAG, le blueprint est unique
tu le trouve ds la palette, en faisant éditer sur l'objet, et en regardant l'onglet avancé

déjà,
Code PHP:

if (GetIsObjectValid (tagobjet
GetIsObjectValid demande un objet, et tu lui met .. ba on sait pas trop ^_^
il vaut mieux faire
Code PHP:

if (GetIsObjectValid(GetObjectByTag(tagobjet))) 

et pas oublier de parenthèse

ensuite,
Code PHP:

object oBaguette GetItemPossessor (tagobjet); 

met pas d'espace ca change p-e rein mais bon
ensuite, GetItemPossessor, renvoi le possessor
si tu veux retrouver la baguette, fait
Code PHP:

object oBaguette GetItemPossessedBy(oPossessor"tagobjet"); 

les tag ca se met entre guillemets, parce que c des strings

ensuite,
Code PHP:

ActionSpeackString ("Seul les Haut Druide..") ; 

si ton script est dans le onused du chaudron, alors tu demande au chaudron de dire qq chose, et je suis pas convaincu qu'il puisse, c'est un objet, tu peux faire un
Code PHP:

FloatingTextStringOnCreature("Seul les Haut Druide.."GetLastUsedby() ); 

bon, pour ton sript je ferais plutot ca :
Code PHP:

void main ()
{
  
object oTarget GetLastUsedBy();
  
//si c dans le onusedby du chaudron
  //ta cible c'est ce qui a utilisé le chaudron
  
string sItemTemplate "blueprintdelobjet";
  
int nStackSize 1;
  
object oBaguette GetItemPossessedBy(oTarget"tagobjet");

  if (!
GetIsObjectValid(oBaguette))//si oBaguette n'est pas un objet valid(si elle n'existe pas)
      
{
      
FloatingTextStringOnCreature"Seul les Hauts Druides.."oTarget);
      }
  else
     {
     
CreateItemOnObject(sItemTemplateoTargetnStackSize);
     }

j'ai pas trop vu ce que tu voulais faire avec le deuxieme if, donc g enlevé pas testé, mais ca devrait marcher
edit : inverserr le otarget et la string ds Foatingtextetc. :/ c corrigé
je confirme que ce n'est pas un Chan IRC, ici, donc tu peux prendre le temps de faire un minimum (je veux dire, les fautes, ca existe, mais par contre, evite d'abreger, ca ne sert a rien qu'a empecher ceux qui voudraient te repondre de le faire )

Ceci etant, ca marchera pas, deja, vu que tu utilise GetItemPossessor au lieu de GetItemPossessedBy, donc tu rammene le possesseur au lieu du possédé, donc GetIsObjectValid(oBalance) sera toujours valid, puisque egal a Object_SELF
(ou alors, toujours faux, suivant comment tu appele le script.)

Ton probleme de compilation vient du fait que tu as mal compté tes parenthèses.
(missing right parenthesis, ca veut dire ca ^^)

if (GetIsObjectValid (tagobjet))

En ce qui concerne les Blueprint, je ne re-expliquerait pas ce que les tutoriaux expliquent deja beaucoup mieux que moi.


Tiens : grille par Reyan : on voit que je suis en vacances
(PS : evite le script si tu ne maitrise pas les notion d'objet / tag / resref... avant. Un tutorial, c'est un peu chiant (quoi que ceux-la, je les ai pas trouvé ch*** du tout), mais ca sert bien )
Tu pourrais aussi créer la potion que si la personne qui clique sur le chaudron possède certains ingrédients (que tu auras crée).

Si elle les a le chaudron prend les ingrédients et lui donne une potion en échange

(Le blueprint indique au script quel objet il doit créer. Tu trouves le Blueprint de ton objet en faisant "éditer" (c'est le nom qui suit ResRef Blueprint après avoir éditer).

Si on utilise pas un TAG c'est que deux objets différents (une potion et une table par exemple) peuvent très bien avoir le même TAG mais par contre pas le même blueprint.
Merci a tt le monde d'avoir répondu même si g pas tt compris...
G déja lu les cours pr les quiches et g un peu compris quelque truc mai je pense qu'il fau que je m'entrain epr mieux comprendre. Voila.
C bien c que je voulais faire Florine, je voulais que si le pj met les plante dan l e chaudron, il se créé une potion. maintenant, je sai pa si le script q ma donné Reyan est bon et je peu pa l'essayer car g pas l'ordi approprié la..
Donc si c pa exactement celui ci, dit ele moi svp..
Merci déja pr tt, cela me fai déja bien avancé.
__________________
http://soiretoile.chez-alice.fr/Artisans/SignatureAzoun.jpg
si tu a suivit les cours pour les quiches, je te conseille ce tut ci =>> ci à potasser et essai après ca de décortiquer les scripts présents ici, enfin dans le sticky qui les rassemblent et après ca, tu te fais les include utilisés par bioware et hop, tu pourras faire un tas de trucs que t'aurait même pas eu l'idée envisager approcher dans tes rêves les plus fou bon, je m'enporte
le script donné (mais pas certifié, il compil mais g pas testé ) et pour le coup des druides le principes est le même pour la soupe

Code PHP:

void main ()
{
  
object oPC GetLastUsedBy();
  
//si c dans le onusedby du chaudron
  //ta cible c'est ce qui a utilisé le chaudron
  
string sItemTemplate "blueprintdelobjet";
//résultat de la tambouille
  
int nStackSize 1;
//nombre d'exemplaires
//les ingrédient maintenants :
  
object oIngredient1 GetItemPossessedBy(oPC "tagdel'ingredient1");
  
object oIngredient2 GetItemPossessedBy(oPC "tagdel'ingredient2");
  
object oIngredient3 GetItemPossessedBy(oPC "tagdel'ingredient3");
  
object oIngredient4 GetItemPossessedBy(oPC "tagdel'ingredient4");

  if ( 
!
GetIsObjectValid(oIngredient1) || 
!
GetIsObjectValid(oIngredient1) || 
!
GetIsObjectValid(oIngredient3) || 
!
GetIsObjectValid(oIngredient4))//si un seul des ingredient manque (  "||" signifi "ou")
     
FloatingTextStringOnCreature"Vous mélangez les ingredients mais n'aboutissez qu'a une drole de soupe"oPC );
 else 
//si tout les ingredient sont présent
     
CreateItemOnObject(sItemTemplateoPC nStackSize);

DestroyObject(oIngredient1);
DestroyObject(oIngredient2);
DestroyObject(oIngredient3);
DestroyObject(oIngredient4);
//et en plus on détruit les ingredient meme si ils n'ont pas tout, par pur sadisme niark niark niark

dans ce script (pas testé mais compilé ^_^), il faut changer les tags des ingredients, en s'arangant pour ne pas avoir mis ce tag à d'autres objets
et le blueprint de ce que tu veux donner
en faisant un dialogue avec des questions sur ce qu'ils désirent créer tu peux faire plusieurs soupeou alors faudrait faire un scirpt plus complexe, mais bon, le sadisme est compliqué ou aveugle dans ce cas (la suppression des ingredients)
pis là tt de suite g pas le tps, et y a déjà pas mal de script de recette sur le vault je pense
Besoin de beaucoup d'aide !
et si je veux que seul certain pj l'utilise je fais comme ca :

Code PHP:

void main ()
{
  
object oPC GetLastUsedBy();
  
//si c dans le onusedby du chaudron
  //ta cible c'est ce qui a utilisé le chaudron
  
string sItemTemplate "blueprintdelobjet";
//résultat de la tambouille
  
int nStackSize 1;
//nombre d'exemplaires
//les ingrédient maintenants :
  
object oIngredient1 GetItemPossessedBy(oPC "tagdel'ingredient1");
  
object oIngredient2 GetItemPossessedBy(oPC "tagdel'ingredient2");
  
object oIngredient3 GetItemPossessedBy(oPC "tagdel'ingredient3");
  
object oIngredient4 GetItemPossessedBy(oPC "tagdel'ingredient4");
  
object oBaguette GetItemPossessedBy(oTarget"tagobjet");

if (!
GetIsObjectValid(oBaguette))//si oBaguette n'est pas un objet valid(si elle n'existe pas)
      
{
      
FloatingTextStringOnCreature"Seul les Hauts Druides.."oTarget);
      }

  if ( 
!
GetIsObjectValid(oIngredient1) || 
!
GetIsObjectValid(oIngredient1) || 
!
GetIsObjectValid(oIngredient3) || 
!
GetIsObjectValid(oIngredient4))//si un seul des ingredient manque (  "||" signifi "ou")
     
FloatingTextStringOnCreature"Vous mélangez les ingredients mais n'aboutissez qu'a une drole de soupe"oPC );
 else 
//si tout les ingredient sont présent
     
CreateItemOnObject(sItemTemplateoPC nStackSize);

DestroyObject(oIngredient1);
DestroyObject(oIngredient2);
DestroyObject(oIngredient3);
DestroyObject(oIngredient4);
//et en plus on détruit les ingredient meme si ils n'ont pas tout, par pur sadisme niark niark niark

Dans ce script le pj qui porte l'object peu préparé des potions.
- Peut'on configurer dela pour que ce soit uniquement un PJ qui puisse le faire ou juste une classe, comme les dride ou les rodeurs ?
- Pour qu'il y ai plusieur potion différente tu ma dit qu'il fallait faire des dialogue, donc a chaque phrase qui sera une potion, j'attribuerai le script, c cela ?
- Je voudrais que si on clique, dans le dialogue, sur la potion souhaité, que l'inventaire de la marmitte s'ouvre pour que le joueur puisse y déposer les ingrédients.(dans ce cas de script(je ne l'ai pas encore testé), il suffit de cliqué sur l'object, es ce cela)
- De plus, je voudrai aussi qu'il fasse quelque heure pour préparer la potion, donc que le joueur revienne par exemple 1h après, et que quand il clique sur la marmite, d'autre dialogue s'affiche tels :
- "potion prète" (on clique dessu et el se met dans notre inventaire)
- "potion pas prète"
- "vous vous etes trompé d'ingrédient" (et donne une potion de soupe par exemple)
- Encore quelque truc, je que si le pjs place plusieur ingrédient de meme sorte il puisse récupéré plusieur potions de meme sorte.
- Et comment faire pour que les plante meurt au bout d'un moment. et aussi que la plante coupé par un certain type d'objet meure selement au bout de 1 semaine.

Voila, c tout..... nan je rigole c pas tout.
Je sais que ce vraiment beaucoup et je comprendrait si vous aviez autre chose a faire que répondre mais si au moins vous pouviez éclairé mes lanterne sur l moyens de les faire ces script, et pas dire, étudie les cours pour les quiches ou autre chose du style, car je les ai déja étudiez.
Et bien que je pense pouvoir réalisez certains de ces script (quoique pas sur)merci de m'aider, car la chauqe script que je fai je le foire et ca soul, mon mod peut pas avancer comme ça.
Merci beaucoup.
Re: Besoin de beaucoup d'aide !
Citation :
Provient du message de ambrosis
Dans ce script le pj qui porte l'object peu préparé des potions.
1- Peut'on configurer dela pour que ce soit uniquement un PJ qui puisse le faire ou juste une classe, comme les dride ou les rodeurs ?
2- Pour qu'il y ai plusieur potion différente tu ma dit qu'il fallait faire des dialogue, donc a chaque phrase qui sera une potion, j'attribuerai le script, c cela ?
3- Je voudrais que si on clique, dans le dialogue, sur la potion souhaité, que l'inventaire de la marmitte s'ouvre pour que le joueur puisse y déposer les ingrédients.(dans ce cas de script(je ne l'ai pas encore testé), il suffit de cliqué sur l'object, es ce cela)
4- De plus, je voudrai aussi qu'il fasse quelque heure pour préparer la potion, donc que le joueur revienne par exemple 1h après, et que quand il clique sur la marmite, d'autre dialogue s'affiche tels :
- "potion prète" (on clique dessu et el se met dans notre inventaire)
- "potion pas prète"
- "vous vous etes trompé d'ingrédient" (et donne une potion de soupe par exemple)
5- Encore quelque truc, je que si le pjs place plusieur ingrédient de meme sorte il puisse récupéré plusieur potions de meme sorte.
6- Et comment faire pour que les plante meurt au bout d'un moment. et aussi que la plante coupé par un certain type d'objet meure selement au bout de 1 semaine.

Voila, c tout..... nan je rigole c pas tout.
Je sais que ce vraiment beaucoup et je comprendrait si vous aviez autre chose a faire que répondre mais si au moins vous pouviez éclairé mes lanterne sur l moyens de les faire ces script, et pas dire, étudie les cours pour les quiches ou autre chose du style, car je les ai déja étudiez.
Et bien que je pense pouvoir réalisez certains de ces script (quoique pas sur)merci de m'aider, car la chauqe script que je fai je le foire et ca soul, mon mod peut pas avancer comme ça.
Merci beaucoup.
fouiouiou

bonbon
1 alors, ca dépend, soit tu a récupérer ton J qq part, genre, celui qui a dit tel truc, accompli tel quete
bref, il faut avoir mis un
Code PHP:

SetLocalInt(oPC"PAUTFAIRELASOUPE"TRUE); 

qq part dans ton module, ds ce cas, tu fais un test decu, par exemple dans ton dialogue, les phrases qui donnent accès à la soupe, tumets comme script de condition

Code PHP:

int StartingConditional()
{
if(
GetLocalInt(GetLastSpeaker(), "PAUTFAIRELASOUPE")) return TRUE; else return FALSE;

(si tu n'est pas habitué a ce genre de script, relis les tut de Lumina sur les dia (ou je charie ) )

alors seul les PJ marqué par un script comme l'avant dernier pouront acceder aux dialogue des soupes ...ca veut dire qu'en mettant plusieurs variable, tu peu faire en sorte que seul ceux qui ont telle recette peuvent acceder a ca, pas aux autre recettes si ils n'ont pas appris auparavant

pour les races, presque pareil : le test est le suivant :

Code PHP:


int StartingConditional
()
{
object oPC GetLastSpeaker();
int nRace GetRacialType(oPC);
if(
nRace == RACIAL_TYPE_DWARF) return TRUE;
//le nain a acces


if(nRace == RACIAL_TYPE_GNOME) return TRUE;
//le gnome aussi
//etc. liste exaustive dans les constantes, que tu filtre avec "RACIAL_TYPE_"

pour les classes c un peu plus compliquée mais a peine

Code PHP:

int StartingConditional()
{
//on a que :
int GetLevelByClass(int nClassTypeobject oCreature=OBJECT_SELF)

//donc on fait
int nClassDruid GetLevelByClass(CLASS_TYPE_DRUIDGetLastSpeaker());
if(
nClassDruid >=1) return TRUE;
//donc si il a au moins un nivo de druide, il peut faire la soupe

//mais aussi

int nClassPaladin GetLevelByClass(CLASS_TYPE_PALADINGetLastSpeaker());
if(
nClassPaladin >=1) return FALSE;
//la, si il a au moins un nivo de palouf, l'a pas droit, a mettre avant les condition qui renvoi TRUE

ici, le coup de palouf sert a rien, parce qu'il est dernier, mais si tu le met avant le test sur la class druide, et bien même si il est druid 19, si il est palouf 1 , il ne pourras pas faire le truc
alors evidement, ca permet toute sorte de condition, expérimente ou demande si tu a une idée précise

2 oui, a chaque recette une ligne de dia, et a chaque ligne de dia un script

4 pfioufiou
bon, alors pour ca, tu met un
Code PHP:

DelayCommand(3600.0CreateItemOnObject(sItemTemplateoPC nStackSize)); 

.. quoique la ca le crée la potion même si le perso est a tonbouctou ... pas top

donc faudrait un truc avec un variable qui gagna +1 toute les 6seconde dans le onheartbeat, puis qui au bout de 600 déclanche la création dela potion, avec dans le dialogue un test sur cette fonction.
bon c pas trop dure, mais j'aimerais savoir plusieurs chose avant de me lancer ds le truc :
est ce que tu veux que pdt tt ce tps le chaudront soit imobilisé ?
(que personne puisse marmitonner)
ou bien seulement le PC qui prepare la potion ?
ets ce que plusieurs potions en même tps c possible ?
quel tests tu veux ?
ca peut être facil à modifier, mais si t'as des idées detest plus compliqué, peut être que ca aiderai, pis j'avancerais moins à l'aveugle
encore une fois, c pas trop compliqué, mais bon, ce soir chuis Okupé et g pas envi de tt inventer au fur et a mesure pour une fois


bon, je post déjà ca
si c illisible, ou si c n'importe quoi, faites moi signe (vous vous generiez ? )
3 alors ca, je pense qu'il faut ouvirir un magasin, mais g vraiment pas encoe étudier ces trucs, donc bon ... moi ej te propose de détruire les objets qui servent ... si tu veux on fait des lignes de dia "je met ca ds la marmitte"
"je met ca dedans"
"ca aussi"
etc.
mais ouvrir l'inventaire, je sais pas faire

4 (voir mess precedent)

5 mm, y a un post la dessus qq part, enfin sur le destroyobject dans les boucles ...
si on raite ca avec un dialogue bien fait tt baigne
faut y réfléchir a partir du dialogue je pense

6 quelle plante ? si c des items .. euh ... p-e en faisant ca dans le onheartbeat du module, je sais pas ... qq idées, mais pas sure ... pis ca risque d'être lourd, je préfère attendre d'autres avis
Bon bah toujours pas testé le truc, alors peut pas me rendre compte si g bien compris...
Citation :
bon c pas trop dure, mais j'aimerais savoir plusieurs chose avant de me lancer ds le truc :
1. est ce que tu veux que pdt tt ce tps le chaudront soit imobilisé ?
(que personne puisse marmitonner)
2. ou bien seulement le PC qui prepare la potion ?
3. ets ce que plusieurs potions en même tps c possible ?
4. quel tests tu veux ?
1. Ouai le chaudron sera immobilisé pour tt le monde (on peu pas faire des potion pdt que ca cuit déja !)
2. ben non
3. plusieur potions de la meme composition.
4. cad, si g bien compris ca doit etre :
- seul celui qui a mi les ingrédient peu récupéré la potion

Citation :
alors ca, je pense qu'il faut ouvirir un magasin, mais g vraiment pas encoe étudier ces trucs, donc bon ... moi ej te propose de détruire les objets qui servent ... si tu veux on fait des lignes de dia "je met ca ds la marmitte"
"je met ca dedans"
"ca aussi"
etc.
ok mai dan ce cas j fai comment pour que le pj puisse perdre ses ingrédients si il se trompe, faudrai que je mette plein de ligne d'ingrédient, qu'il puisse cliqué sur tous san qu'il s'appercoivent qu'il c trompé, e que lorsqu'il reviennen, une soup lui soi remise.

Citation :
quelle plante ?
Les ingrédients en faites.

Merci pour tout... Ben je part 2m1 alors si ta une autre question faudra attendre le week prochain a moins que tu demande avan ce soir.
Encore merci de l'aide que tu m'apporte...
Et moi je vais me penché sur des cours de script
__________________
http://soiretoile.chez-alice.fr/Artisans/SignatureAzoun.jpg
Citation :
Provient du message de ambrosis
1. Ouai le chaudron sera immobilisé pour tt le monde (on peu pas faire des potion pdt que ca cuit déja !)
bon, ce que je proposerais, c'est de mettre un variable sur le chaudron, on lui donne la valeur TRUE si il est en train de faire de la soupe, on teste la valeur de cette variable dans le dialogue associé, si c'est TRUE alors ca répond "ocupé" si c'est FALSE alors ca offre la possibilité de faireune soupe.

Citation :
2. ben non
3. plusieur potions de la meme composition.
pffiu, faut que je regarde ca de plus près mais ca doit pa être bien dur

Citation :
4. cad, si g bien compris ca doit etre :
- seul celui qui a mi les ingrédient peu récupéré la potion
alors, rebelote, je propose mettre une variable sur le chaudron qd tu lance la soupe, a savoir un objet : le PC, ou bien son nom, au choix.
qd on clique dessus, tu teste si il est "occupé" et dans ce cas, tu test celui qui a cliqué, si c'est l'objet stocké comme "cuistot" alors tu lui donne la potion (si le tps est écoulé)
donc ca doit être un script du genre :
Code PHP:

object oCuistot GetLocalObject(GetObjectByTag("CHAUDRON"), "CUISTOT")
if(
oCuistot == GetLastSpeaker())
return 
TRUE
manque le int conditional truc devant

si tu as du mal a voir ce que donne le dialogue .. ba je peut te donner ce que g en tête comme arbre

Citation :
ok mai dan ce cas j fai comment pour que le pj puisse perdre ses ingrédients si il se trompe, faudrai que je mette plein de ligne d'ingrédient, qu'il puisse cliqué sur tous san qu'il s'appercoivent qu'il c trompé, e que lorsqu'il reviennen, une soup lui soi remise.
tu connais un peu les custom token de bioware ?
ba tu pourrais, en clikant sur le chaudron lancer un script qui vérifie les ingrédients présents dans l'inventaire, les assigner a des custom tokens, tester ce token dans ton dialogue et ainsi proposer au PJ exactement ce qu'il a ds sont invenaire
si T perdu, je vérifie deux trois truc et propose un pitit check d'inventaire


pour ton systeme de pourrisement ... g p-e une idée, mais là chuis occupé a un truc qui prend du tps, donc le week end prochain si rien n'est avancé d'ici là ?
Ben si ca te dérange pas on vois ca la semaine prochaine, j'essairai chez mon pote tou ça.
Bientot j'aurai un new ordi donc ca va etre plus facile, je pourrai plus essayer parceq la faut q je sois cher mon pote et il est pas trop chaud lui pour les script il préfère mapper que de perdre son temps a essayer inutilement..
Bref merci pour tou ça.
Citation :
Provient du message de ambrosis
il préfère mapper que de perdre son temps a essayer inutilement..
rooohh
c'est le seul moyen de s'ameliorer ou presque
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés