Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Affichage d'un livre

Par daemogorgon le 27/12/2002 à 22:44:24 (#2891979)

Voilà, est ce que qq1 sait comment faire apparaitre 1 livre (et non pas un sac qui contient le livre) sur 1 lutrin par exemple ?
Le livre doit pouvoir être récupéré par 1 PJ, et donc disparaitre du lutrin si le PJ le prend.

Par coolstar le 27/12/2002 à 23:19:23 (#2892155)

Une lacune NWN... :(

Par Kroll le 27/12/2002 à 23:34:23 (#2892233)

C'est impossible sans hak.

Par daemogorgon le 27/12/2002 à 23:52:13 (#2892332)

Il existe, le HAK ? :confus:
ou faut le faire :(

Par RAT le 28/12/2002 à 4:09:18 (#2893527)

oui totalement impossible sans hak. Car en fait, de base, tout ce qui est item apparait comme un sac si cela est posé sur le sol.
A ce moment là, tu dois en faire un placeable, un livre. Et après tu fais un petit script dans le onused du placeable livre, qui fait qu'il se détruit automatiquement et qu'il créé un livre en tant qu'item.

Et faire l'inverse dans le OnAcquireItem.

voilà :)

Par daemogorgon le 28/12/2002 à 11:30:05 (#2894252)

Bon, ben, je vais faire 1 hak de livre.
:merci:

Par daemogorgon le 29/12/2002 à 0:13:44 (#2898485)

Je comprend pas. Ca marche pas.
J'ai cree 1 livre (hak). Il est pose sur 1 lutrin. Le PJ s'approche, et le prend. Le livre disparait, jusqu'a la tout va bien.
Par contre, quand je regarde l'inventaire, il est pas dedans.

Le code est court. Le script est dans le OnUsed du placeable.

void main()
{
object oPJ = GetClickingObject();
// oLivre est le placeable
object oLivre = GetObjectByTag("objLivre");
// oLAnhp est un item de livre cree en objet de quete
object oLAnhp = GetObjectByTag("itemLivre");

DestroyObject(oLivre, 1.0);
ActionGiveItem(oLAnhp, oPJ);

}


Si qq1 a 1 idee pourquoi ca marche pas ?

Par Jaha Effect le 29/12/2002 à 1:03:08 (#2898759)

Je me trompe peut être mais un ActionGiveItem c'est pas plutôt dans une conversation que ça se passe, tu devrais plutôt faire une creation d'objet dans l'inventaire de ton PJ.

CreateItemOnObject ("resrefdetonitem", oPC);


Jaha Effect :D

Par daemogorgon le 29/12/2002 à 10:41:35 (#2900088)

j'ai essaye avec CreateItemOnObject , marche pas non plus. :enerve:
Quand RAT dit de faire l'inverse dans le OnAcquireItem, pour 1 PJ je vois pas ou il est .:confus:

Par coolstar le 29/12/2002 à 10:58:28 (#2900133)

Provient du message de daemogorgon
j'ai essaye avec CreateItemOnObject , marche pas non plus. :enerve:

Et peu space ton truc?? tu pourrais pas mettre ton Script en entier? :D

;)

Par daemogorgon le 29/12/2002 à 11:14:53 (#2900179)

euh, ... CoolStar, tu m'inquietes ?:confus:
C'est tout ce qui y'a en script pour ce que je veux faire :doute:
Y faudrait aut'chose ?

Par daemogorgon le 29/12/2002 à 11:17:29 (#2900186)

chui allez 1 peu vite. A la place de ActionGiveItem(oLAnhp, oPJ);
j'ai mis CreateItemOnObject ("resrefdetonitem", oPC);

Voila, c'est tout (j'ai modifie le "resref." aussi, quand meme !).

Par Jaha Effect le 29/12/2002 à 12:05:54 (#2900366)

heu oui pour que ça marche dans ton script faut remplacer mon oPC par ton oPJ :D

Jaha Effect :D

Par coolstar le 29/12/2002 à 12:25:43 (#2900444)

Mais ça devrait même pas compiler alors!! :mdr:

Par daemogorgon le 29/12/2002 à 12:44:43 (#2900542)

Ok, mais j'avais bien tout mis correctement .

void main()
{
object oPJ = GetClickingObject();
// oLivre est le placeable
object oLivre = GetObjectByTag("Livre");

DestroyObject(oLivre, 1.0);
CreateItemOnObject("It_Livre", oPJ);

}


Mais ca marche pas quand meme.:sanglote:

Par Jaha Effect le 29/12/2002 à 12:53:04 (#2900586)

heu y'a jamais de majuscules dans un resref, ton CreateItemOnObject utilise le resref pas le Tag.

Jaha Effect :D

Par daemogorgon le 29/12/2002 à 13:17:16 (#2900712)

merci pour l'info des resref, j'ai mis le resref du livre dans le CreateItemOnObject, mais ca marche toujours pas.....
C'est a pleurer !

:sanglote: :sanglote: :sanglote: :sanglote:

Par coolstar le 29/12/2002 à 13:26:11 (#2900756)

Heeuuu... t'es vraiment sûr que t'es dans le OnUser là?? :D

Par daemogorgon le 29/12/2002 à 14:02:01 (#2900935)

Dans le OnUsed du placeable livre .

Par Jaha Effect le 29/12/2002 à 14:13:58 (#2900996)

Perso j'aurais plutôt opté pour le OnAquireItem du module pour ce genre de manipulations.

Par Baltord Vlad Mortem le 29/12/2002 à 14:30:48 (#2901101)

Non, le livre est un placable useable pas un item, donc le OnAquireItem serait innéficace.

Par coolstar le 29/12/2002 à 15:09:35 (#2901281)

Essaye donc ça... ;)


void main()
{
object oBook = OBJECT_SELF;
object oPC = GetLastUsedBy();
string sItemTemplate = "livre";

DestroyObject(oBook);
CreateItemOnObject(sItemTemplate, oPC);
}

Par daemogorgon le 29/12/2002 à 15:35:13 (#2901402)

CoolStar, tu es vraiment un dieu (j'vois pas pourquoi tu es que Baron ;) )

Ca marche ......:merci:

Par coolstar le 29/12/2002 à 16:24:54 (#2901688)

Ben... La Promotion se gagne pas au Flood! :D






PS: N'oublions donc pas qu'un Evénement ne peut renvoyer qu'à une Cible de même nature... et donc pour le OnUser il faut un GetLastUsedBy
(alors que le GetClickingObject est de fait réservé au OnClick!)... ;)

JOL Archives 1.0.1
@ JOL / JeuxOnLine