Deplacer des plaçables

Répondre
Partager Rechercher
Salut !

J'aimerais bien savoir si il y a un moyen de déplacer un plaçable en jeu via un script.
Une fonction du style "SetPosition" ou "SetLocation" serait parfaite, mais ça n'existe pas

Pour une créature, il n'y a aucun souci : ActionJumpToLocation, mais ça ne fonctionne qu'avec des créatures

Est ce que vous connaissez un moyen?
merci d'avance
Citation :
Détruit le plaçable avec DestroyObject, et recrée le à son nouvel emplacement avec CreateObject, ça devrait fonctionner
J'y avait pensé, mais ça ne fonctionne qu'avec un plaçable référencé dans la palette (et en plus il faut trouver son resref, ce qui n'est pas gagné)
je veux en fait pouvoir déplacer n'importe quel plaçable du module
Non je pense que tu détruit un objet désigné par son Tag, pas son resref, et tout objet a un tag. Bon, c'est sur que si tu veux détruire un objet créé par un script c'est peut être plus difficile de trouver son tag, mais ça doit pas être impossible.
Soyons clairs : ce que tu veux n'est pas possible.

Ça s'appelle créer un moteur physique dont Aurora ne dispose pas.

Comme tout ce qui est impossible, ça prend trois jours à faire mais je doute que ce soit bien souhaitable.

Souci 1 : les objets pour être déplacés doivent être dynamiques, or c'est une charge considérable au chargement de la zone. Donc si c'est pour un MP, paye ta dégringolade de performances.

Souci 2 : c'est compliqué à gérer pour faire bien. Gérer tous les événements et y répondre correctement, c'est une galère sans fin.

Dans le fond, NWN2 n'est pas fait pour ça. On peut le regrettter.
arf, c'est ce que je craignais...
merci de ta réponse Laban

bon, finalement, je vais utiliser un script comme ça, ça sera mieux que rien :

Code PHP:

else if(sFonction == "deplacer")
    {
    
vector vPos Vector(StringToFloat(sVar0), StringToFloat(sVar1), StringToFloat(sVar2));
    
location lDestination Location(GetArea(oDM), vPosGetFacing(oCible)); 
    
    if(
GetObjectType(oCible) == OBJECT_TYPE_CREATURE)
        {
        
AssignCommand(oCibleActionJumpToLocation(lDestination));
        }
    else
        {
        
string sResRef GetResRef(oCible);
        if(
sResRef!="" && GetObjectType(oCible)==OBJECT_TYPE_PLACEABLE)
            {
            
object oNouvelleCible CreateObject(OBJECT_TYPE_PLACEABLEsResReflDestination);
            if(
GetIsObjectValid(oNouvelleCible))
                {
                
DestroyObject(oCible);
                
oCible oNouvelleCible;
                
SetLocalObject(oResVar"T_oCibleToolbar"oCible);
                }
            else
                {
                
FloatingTextStringOnCreature("Déplacement impossible"oDMFALSE);
                }
            }
        else
            {
            
FloatingTextStringOnCreature("Déplacement réservé aux créatures et plaçables"oDMFALSE);
            }
        
        } 
c'est bourré d'erreurs si on le fait avec un plaçable personnalisé via l'éditeur et non référencé dans la palette (il reprend le resref du plaçable utilisé à l'origine), par contre pour un plaçable de la palette, ça fonctionne
Répondre

Connectés sur ce fil

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