JeuxOnLineForumsPlusCréer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > OnActivateItem et CreateItem, les parchemins infinis RSS
   
Répondre
Partager Outils Rechercher
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 

OnActivateItem et CreateItem, les parchemins infinis

Oui, un deuxieme, chuis en forme, enfin je crises surtout là
bref
J'ai eu besoin de créer un pachemins sans sorts, comme déclencheur de pouvoir unique en fait.
Donc, je fais mon parch, je lui met pouvoir unique, et Ho! stupeur, pas moyen de mettre pouvoir unique illimité
Là je me dis, "arg, bon tant pis je le recrérais dans l'inventaire"
Et ben kedal
pas moyen d'executer ni un copyobject ni un createitemonobject dans le onactivateitem
Il a un probleme avec ces fonctions ?
J'ai vérifié les Resrerf, en mettant des GetResRef, en choppant les resref dans l'editeur, en prenant des resref commun (épée longue) R I E N
le test
Code PHP:
if(!GetIsObectValid(CreateItemOnObject("ResRef"oPC)))PrintString("ObjectInvalid"); 
Me renvoi T J R S "ObjectInvalid" dans le log, c'est super frustrant . . . j'ai manqué qq chose ?
Quelqu'un aurait un technique pour des parchemins illimité ?
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
Moi je sais qu'on peut le faire parce que je l'ai déjà fait mais sinon...
(GetIsObectValid() ? )
Lien direct vers le message - Vieux
Elvorfirimathrel
Dauphin
 
Choisis de créer un miscellanous item , mets lui un portrait de parchemin et le tour est joué.
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
Oui bon ok j'ai pas aurora sur le bon pici alors c'est de tête
mais si tu pouvais me donner ton code que je compare
moi j'avais fais un machin du style
(avec passage par diskette 3.5 pc svp)
pour tester :
Code PHP:
void main()
{
 
object oItem GetItemActivated();
   
object oPC GetItemActivator();
object oArea;
vector vVec;
float fPos;
       
object oParch CopyObject(oItemlocation(oAreavVecfPos), oPC);
       
CreateItemOnObject("wswls002",  oPC);
       if(!
GetIsObjectValid(oParch))
       
PrintString("Parche cree invalide");
       }

et RIEN, si ca n'est "Parche cree invalide" dans le log :sangloter:

edit : MERCI *est déjà parti essayer*
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
bon, ben evidement ca marche . . . donc plus de problème, je me demande si je dois en rire ou en pleurer *ahem*

bref, merci

mais n'empêche que j'arrive toujours pas à créer un objet dans le onactivateitem . . . là maintenant tout de suite ca me sert à rien, mais bon, j'aimerai bien comprendre quand même !
Lien direct vers le message - Vieux
Elvorfirimathrel
Dauphin
 
Alors, personnellement je te conseillerais de faire ceci :

1 cliques sur "Paint items"
2 cliques sur "Custom"
3 cliques droit et choisis "New"
4 Choisis "Miscellaneous Medium"
5 Attribues lui un nom
6 Places le dans "Miscellaneous/Scrolls"
7 Coches "Launch item properties" puis sur "Finish"
8 Cliques sur l'onglet "Appeareance", choisis le portrait que tu veux
9 Cliques sur l'onglet "Properties", choisis "Cast Spell/Unique Power ", ajoutes le
10 Edites les propriétés, met "unlimited used/day"
11 Cliques sur "OK"

Voilà ton objet est créé.


A présent le code, à mettre dans le OnActivateitem :




Code PHP:
void main()
{
 
object oItemActivatedoItemActivatedTargetoItemActivator;
 
string sItemActivated;

 
oItemActivated GetItemActivated();
 
oItemActivatedTarget GetItemActivatedTarget();
 
oItemActivator GetItemActivator();
 
sItemActivated GetTag(oItemActivated);

 if ( 
sItemActivated == "TagDeTonParchemin")
  {
   
/*
     Ici tu mets ce que tu veux que l'activation de ton parchemin fasse
   */
  
}


Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
merci, c'est ce que j'avais fais (sauf que j'avais mis "divers fin (petit ?)" )
ca marche, mais mon "problème", c'est que bien que j'ai trouvé une solution de "rechange" (bien plus logique et éfficace soit dt en passant merci ) je ne comprend toujours pas pourquoi ca marchait pas :/
fin bon, de toute facon ca va pas non plus m'empêcher de dormir hein !
Lien direct vers le message - Vieux
Elvorfirimathrel
Dauphin
 
Je regarderais comment créer un item pour essayer de te donenr la réponse
Allez hop, retour sous SoU
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
J'ai retrouver mon code planqué sous 2000 tonnes de posts (ça fait les bras quand on doit se soulever tout ça !!) :
http://www.hellfire.firstream.net/ph...pic.php?t=2044

Mais je te préviens, je crois que ce code ne marche que de façon un peu hasardeuse.... (pas de problème avec ce qui t'intéresse néanmoins : la buche est bien recréée si tu n'as pas de silex ou si tu n'as pas le droit de faire de feu, je sais plus trop, par contre la dernière fois que j'ai essayé, la création du feu déconnait, je crois (parce que ça remonte déjà à....pfiou, longtemps) )
Je remets mon code débarrassé de quelques scories :
Code PHP:
//Dans le OnActivateItem

void SpawnFire(location lFireobject oPJ)
{
  
object oFire CreateObject(OBJECT_TYPE_PLACEABLE"plc_campfr"lFire);
  
AssignCommand(oFirePlayAnimation(ANIMATION_PLACEABLE_ACTIVATE));
  
DelayCommand0.2fRecomputeStaticLighting(GetArea(oFire)));
  
SendMessageToPC(oPJ"Vous allumez rapidement un petit feu avec votre silex, une chaleur agréable vous envahit.");
       

  
//Durée de vie du feu (en s), le 12.0 permet de régler au dixième d'heure près.
  
float fDur HoursToSeconds(1) * 12.0;

  
AssignCommand(GetModule(), DestroyObject(oFirefDur));
}

void main()
{
  
//Récupère l'item qui a utilisé un pouvoir unique
  
object oItem GetItemActivated();

  
//Vérifie s'il s'agit du "bois"
  
if (GetTag(oItem) == "it_bois")
  {
    
//Récupère le PC qui a activé l'item
    
object oPC GetItemActivator();
    
//Et le l'area où est ce PC
    
object oArea GetArea(oPC);

    
//Vérifie si le PC se trouve en ville ou dans un batiment
    
switch (GetLocalInt(oArea"nRest_Status"))
    {
    case 
:
    case 
:
    case 
:
     
      
//Le PC ne peut pas faire de feu de camp ici
      
SendMessageToPC(oPC"Vous ne pouvez pas faire de feu de camp ici !");
      
//Recrée le bois qui a été détruit lors de son utilisation
      
CreateItemOnObject("it_bois"oPC);     
      break;

    case 
//Le PC est dans une zone où on peut faire un feu
     
      
object oSilex GetItemPossessedBy(oPC"it_silex");

      
//Vérifie si le PC n'a pas de silex
      
if (!GetIsObjectValid(oSilex))
      {
        
//Le PC n'a pas de silex, il ne peut pas faire de feu
        
SendMessageToPC(oPC"Vous ne pouvez pas faire de feu de camp sans silex !");
        
//Recrée le bois qui a été détruit lors de son utilisation
        
CreateItemOnObject("it_bois"oPC);
      }
      else 
//Le PC peut enfin faire son feu
      
{
        
location lFeu GetItemActivatedTargetLocation();
        
//Pour faire du feu à distance, vous devez être très fort !
        
AssignCommand(oPCClearAllActions());
        
AssignCommand(oPCActionMoveToLocation(lFeu));
        
AssignCommand(oPCActionPlayAnimation(ANIMATION_LOOPING_GET_LOW1.03.0));
        
AssignCommand(oPCSpawnFire(lFeuoPC));
        
SetCommandable(FALSEoPC);
        
DelayCommand(6.0SetCommandable(TRUEoPC));
      }

    }
  }

Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
pour l'utilisation infinie, il ne faut pas une certaine qualite lors de la creation de l'item (genre Divin, ou je sais plus les stades proposes ?)
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > OnActivateItem et CreateItem, les parchemins infinis
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 09h10.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite