creation de placeable

Répondre
Partager Rechercher
Est il possible de créer des placeables dans une zone où on n'est pas ?
Je m'explique : un PJ est devant une porte, il l'ouvre, et utilise le OnAreaTransitionClick pour aller dans la zone qui est liée à la porte. Dans le OnAreaTransitionClick, j'aimerais pouvoir créer via un script des placeables dans la zone liée (mais qui n'est pas encore affichée).
Essai de mettre un script de ce genre :

Code PHP:

void main()
{
location lSource GetLocation(GetObjectByTag("waypoint tag 1"));
CreateObject(OBJECT_TYPE_PLACEABLE,"resref plaçable 1",lSource);

Quelqu'un peut me dire pourquoi le placeable n'apparait pas dans l'orientation que je lui donne avec la variable orient ? Je pense que ça vient du assigncommand, mais je vois pas comment faire passer le SetFacing (le script est dans le OnAreaTransitionClick de la porte).

Code PHP:

  for (ncpt 1ncpt 5ncpt++)
  {
    
// FALSE si le contenant existe et est a creer
    
if (GetLocalArrayInt(oZAppsMai "_existe"ncpt) == FALSE)
    {
      
template "contenant0" IntToString(ncpt);
      
loc GetLocation(GetWaypointByTag("LC_" sNum "0" IntToString(ncpt)));

      
CreateObject(OBJECT_TYPE_PLACEABLEtemplateloc);
      
orient IntToFloat(GetLocalArrayInt(oZAppsMai "_orient"ncpt));
      
AssignCommand(GetObjectByTag(template), SetFacing(orient));

    }
  } 
(Le Tag et le ResRef sont de la mêmes forme).
Essaie voir ça:
Code PHP:

for (ncpt 1ncpt 5ncpt++)
  {
    
// FALSE si le contenant existe et est a creer
    
if (GetLocalArrayInt(oZAppsMai "_existe"ncpt) == FALSE)
    {
      
template "contenant0" IntToString(ncpt);
      
loc GetLocation(GetWaypointByTag("LC_" sNum "0" IntToString(ncpt)));

      
object oPlaceable CreateObject(OBJECT_TYPE_PLACEABLEtemplateloc);
      
orient IntToFloat(GetLocalArrayInt(oZAppsMai "_orient"ncpt));
      
AssignCommand(oPlaceableSetFacing(orient));

    }
  } 


Sinon ya toujours le SpawnScriptDeb... ok ok j'arrête les bétises
Ca y est, j'ai trouvé pour l'orientation, il faut utiliser la fonction Location.

Code PHP:

for (ncpt 1ncpt 5ncpt++)
  {
    
// FALSE si le contenant existe et est a creer
    
if (GetLocalArrayInt(oZAppsMai "_existe"ncpt) == FALSE)
    {
      
vPos     GetPosition(GetWaypointByTag("LC_" sNum "0" IntToString(ncpt)));
      
orient   IntToFloat(GetLocalArrayInt(oZAppsMai "_orient"ncpt));
      
loc      Location(oZonevPosorient);
      
template "contenant0" IntToString(ncpt);

      
oPlaceable CreateObject(OBJECT_TYPE_PLACEABLEtemplateloc);

    }
  } 
Par contre, j'ai un autre problème sur le OnOpen du Contenant.

Quand je compile le script suivant :
Code PHP:

#include "nw_o0_itemmaker"
#include "NW_O2_CONINCLUDE"
void main()
{
  
object oPJ   GetLastOpener();
  
object oZApp GetLocalObject(oPJ"ZInitiale");

  
string sNum GetStringRight(GetTag(OBJECT_SELF), 2);
  
string sMai "Mai" sNum;
  
int    nNum StringToInt(sNum);

  
int nType GetLocalArrayInt(oZAppsMai "_type"nNum);

  if (
nType == 0) return;
  else
  {
    
GenerateTreasure(nTypeoPJOBJECT_SELF);
    
SetLocalArrayInt(oZAppsMai "_type"nNum0);
  }

j'ai le message d'erreur suivant :

NW_O2_CONINCLUDE.nss(111): ERREUR : DUPLICATE FUNCTION IMPLEMENTATION

Une petite idée ?
Mouarf, c est normal si ton premier include comporte deja le second (en clair, si dans l itemmaker il ya deja le coninclude, ou inversement)
La solution la moins elegante serait de sauvegerder coninclude sous un autre nom et l appeler dans la fonction par le nouveau.
Prince Nexus.
Répondre

Connectés sur ce fil

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