JeuxOnLineForumsPlusConnectés : 708 (sites) | 1215 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Portée des fonctions GetNearest??? ! RSS
   
Répondre
Partager Outils Rechercher
Avatar de Frolo Xeres
Frolo Xeres
Alpha & Oméga
 
Avatar de Frolo Xeres
 

Portée des fonctions GetNearest??? !

Y-a-t-il un endroit où il est précisé la porté d'un GetNearestCreature par exemple... est-il limité à la zone ? Au module ? ... ( non cela paraît stupide, les distance étant inconnues )
Est-il possible de limiter cette portée dans le cas d'une zone ? Ou au pire de récupérer la distance qui sépare l'objet repère du point d'origine ?
Hum.... Oui çà doit exister çà !
En fait je crois que j'ai la solution... Si çà intéresse quelqu'un qu'il le précise je mettrais le script si j'ai trouvé...
sinon... je repasserais si ma science est insuffisante
Lien direct vers le message - Vieux
Avatar de Caarheim/Mougeot
Caarheim/Mougeot [Epsi]
Alpha & Oméga
 
Avatar de Caarheim/Mougeot
 
il doit exister une fonction GetDistanceFromObject je pense ! tu as juste a faire :

Code PHP:
oCreature GetNearestCreature(OBJECT_SELF); // chui pas sur pour la fonction mai l algorithme sera bon ^^
nDistance GetDistanceFromObject(oCreature); // la encore, il y a des parametres que je ne connai pas

// si tu veux limiter, tu rajoute ca 
if ( nDistance<=50 )
{
//
// blabla script blabla

voila
Lien direct vers le message - Vieux
Avatar de mobidique
mobidique
Alpha & Oméga
 
Avatar de mobidique
 
A mon avis la porté est la zone ... TEST ... Tu fais une zone 32*32, tu poses dans un angle un mob, dans l'angle opposé un levier par exemple ou un trigger avec une téléportation du getnearestcreature du tag de la bestiole de l'autre coté et tu verras bien.
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
On peut aussi faire GetFirstObjectInShape pour limiter la recherche à une sphère d'un rayon précis.
Lien direct vers le message - Vieux
Avatar de Frolo Xeres
Frolo Xeres
Alpha & Oméga
 
Avatar de Frolo Xeres
 
Merci Jedaï ma version fait le test de la distance en plus...
Mais à mon avis GetFirstObjectInShape doit suivre le même principe que mon code !
Loin de moi l'idée que mon script est plus rapide

Mon truc fait çà :

Code PHP:
    object oKiller GetLastKiller();

   
// Blablabla

    
int iNth 1;

    while ( ( ( 
oKiller GetNearestCreatureCREATURE_TYPE_PLAYER_CHARPLAYER_CHAR_IS_PCOBJECT_SELFiNth ) ) != OBJECT_INVALID ) && ( GetDistanceBetweenOBJECT_SELFoKiller ) < 30.0 ) ) {
        if( 
CheckPartyForItemoKiller"Instructionsidoines" ) ) {
            
// Le PC a le parchemin qui permet de recuperer le sang du geant
            
object oParchemin GetObjectByTag"Instructionsidoines" );
            
ActionTakeItemoParcheminoKiller );
            
DestroyObjectoParchemin );
            
CreateItemOnObject"SangduGeant" );
        }
        
iNth iNth 1;
    } 
Ce code est sur le onDeath d'une créature... il cree une fiole de sang sur le monstre si un PC dans la zone a le parchemin necessaire a l'extraction de celui-ci ! ( le parchemin etant detruit au passage )

Zut y a un bug dans mon truc ! Si le GetNearestCreature prend vraiment par ordre du plus proche au plus éloigné... et que le PC qui a le parchemin est plus proche du monstre que celui qui l'a tué... chui marron !
Ve voir ce que je peut faire avec la fonction de Jedaï
Lien direct vers le message - Vieux
Avatar de Frolo Xeres
Frolo Xeres
Alpha & Oméga
 
Avatar de Frolo Xeres
 
Le problème devrait être résolu avec un do while !

Code PHP:
    int iNth 1;
    
oKiller GetNearestCreatureCREATURE_TYPE_PLAYER_CHARPLAYER_CHAR_IS_PCOBJECT_SELFiNth );

    do {
        if( 
CheckPartyForItemoKiller"Instructionsidoines" ) ) {
            
// Le PC a le parchemin qui permet de recuperer le sang du geant
            
object oParchemin GetObjectByTag"Instructionsidoines" );
            
ActionTakeItemoParcheminoKiller );
            
DestroyObjectoParchemin );
            
CreateItemOnObject"SangduGeant" );
        }
        
iNth iNth 1;
    }
    while ( ( ( 
oKiller GetNearestCreatureCREATURE_TYPE_PLAYER_CHARPLAYER_CHAR_IS_PCOBJECT_SELFiNth ) ) != OBJECT_INVALID ) && ( GetDistanceBetweenOBJECT_SELFoKiller ) < 30.0 ) ); 
Voilou... mon prob c'est que pour bien tester çà, je devrais avoir plusieurs persos sur la zone... quelqu'un sait comment faire çà en étant tout seul devant son PC ?
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Portée des fonctions GetNearest??? !
   

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 11h29.
   

© 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