La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 18/05/2024 14:26:16


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
zogzog59
Grand Chevalier
Inscrit le: 16 Jan 2005
Messages: 123
Répondre en citant
Posté le : 03/03/2006 13:29:18 Sujet du message : pierre de sauvegarde

glop glop à tous .....


Apres des recherches j'ai trouver pleins de scripts assez intéréssant pour mon MOD, mais je n'ai pas trouvé un script pour une pierre de sauvegarde ??!!!

si quelqu'un pourrait me donner un script, ou un post de ce forum, pour le script d'une pierre de sauvegarde, qui ce mettrait dans le "Onused" de la pierre, pour permèttre au PJ s' il l'utilise de reconnecter au dernier endroit ou il c'est déconnecté.

voilà en vous remerciant!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 03/03/2006 14:07:57 Sujet du message :

Bonjour bonjour,

Je te fais les scripts en direct alors si ils marchent pas du premier coup ce n'est pas grave. Tu n'auras qu'à me le dire.

Dans le OnUsed:
NWScript :

void main()
{
object oUser = GetLastUsedBy();
location lLoc = GetLocation(oUser);
SetCampaignLocation("Persistant_locations", "PLOC", oUser, lLoc);
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Dans le OnPlayerEnter du module:
NWScript :

void main()
{
object oPC = GetEnteringObject();
location lLoc = GetCampaignLocation("Persistant_locations", "PLOC", oPC);
AssignCommand(oPC , ClearAllActions());
AssignCommand(oPC , JumpToLocation(lLoc));
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Voilà à première vue ca devrait marcher.
_________________
La mort n'est rien seul le fait de mourir est terrible
Henry Fielding 1745

Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
zogzog59
Grand Chevalier
Inscrit le: 16 Jan 2005
Messages: 123
Répondre en citant
Posté le : 04/03/2006 14:55:30 Sujet du message :

tes scripts doivent marcher mais le problème c'est que je veux mettre cela dans un objet dans la catégorie objet et qu'il n'y a pas d'onglet script (la ou il y a les catégorie avec Onused, Onclose, Onmachin etc .....).

je c'est pas comment faire cela si tu as un script plus en rapport avec ce que je veux je t'en serais reconnaissant ^^.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Darkavanger
Grand Chevalier
Inscrit le: 15 Déc 2004
Messages: 114
Répondre en citant
Posté le : 04/03/2006 15:19:25 Sujet du message :

Salut

Ce que tu veux faire est impossible, il n'y a pas d'onglet Onused dans les objets portables, ce script, tu dois le mettre dans le OnactivateItem des propriétés de ton module.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 04/03/2006 15:19:52 Sujet du message :

Passe par le OnActivateItem du module.
NWScript :

void main()
{
    object oItem = GetItemActivated();
    object oUser = GetItemActivator();
    if (GetTag(oItem) == "Tag de ta pierre")
    {
    SetCampaignLocation("Persistant_locations", "PLOC", lLoc, oUser);

    }


}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


En revanche d'après mon experience et le lexicon, SetCampaignLocation marche pas (ptet ça a été réparé donc vérifie). Il faut coder ça à la main. Personellement je mets ça sur une chaine de caractère, y a plein de méthodes.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
zogzog59
Grand Chevalier
Inscrit le: 16 Jan 2005
Messages: 123
Répondre en citant
Posté le : 05/03/2006 12:47:57 Sujet du message :

d'abort merci a toi sith.

Et tu as raison le script ne ce compile pas donc si quelqu'un connait une solution ou une méthode qu'il a employé je suis preneur.

merci ....
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 07/03/2006 02:32:09 Sujet du message :

Pour les joueurs (enfin pour un objet aussi d'ailleurs) j'utilise ça :

NWScript :

void SvStoreLocation(object oPC)
{

        location lLoc = GetLocation(oPC);
        object oZone = GetAreaFromLocation(lLoc);
        string sAreaName = GetTag(oZone);
        float fX,fY,fZ,fFacing = 0.0;
        vector vVecteur = GetPositionFromLocation(lLoc);
        fFacing = GetFacingFromLocation(lLoc);
        fX = vVecteur.x;
        fY = vVecteur.y;
        fZ = vVecteur.z;
        string sPosition = GetStringLeft(FloatToString(fX,5),5);
        sPosition += GetStringLeft(FloatToString(fY,5),5);
        sPosition += GetStringLeft(FloatToString(fZ,5),5);
        sPosition += GetStringLeft(FloatToString(fFacing,5),5);
        sPosition += sAreaName;
        //tu stockes sPosition comme tu veux (database ou objet)
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Et dans le sens inverse :

NWScript :

location SvGetLocationFromString(string sPosition)
{
        float fX,fY,fZ,fFacing = 0.0;
        vector vVecteur;

        fX = StringToFloat(GetStringLeft(sPosition,5));
        fY = StringToFloat(GetSubString(sPosition,5,5));
        fZ = StringToFloat(GetSubString(sPosition,10,5));
        fFacing = StringToFloat(GetSubString(sPosition,15,5));
        string sTag = GetStringRight(sPosition,GetStringLength(sPosition)-20);
        vVecteur = Vector(fX,fY,fZ);
        location lNew;
        lNew = Location(GetObjectByTag(sTag),vVecteur,fFacing);
        return lNew;
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


En revanche c'est bizarre que ça compile pas les autres scripts, théoriquement ça compile mais juste ça marche pas (très pratique). Vérifie les déclaration, c'est ptet pas dans le bon ordre.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
zogzog59
Grand Chevalier
Inscrit le: 16 Jan 2005
Messages: 123
Répondre en citant
Posté le : 08/03/2006 01:30:45 Sujet du message :

merci sith mais ou place ton tes scripts ??? car je comprend pas ton truc de sens inverse ?? !!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 08/03/2006 02:19:05 Sujet du message :

De rien Wink

Ce sont plus des fonctions que des scripts, donc tu les place où tu veux, soit dans une biblio si tu vas t'en servir souvent, sinon directement dans le script ou tu l'utilises, avant le void main().
Le sens inverse c'est que la première fonction enregistre la position (il faut que tu rajoutes une ligne pour définir ou tu la stockes) sous forme d'une chaine de caractère, donc quand tu veux retrouver cette position (à la reco du joueur), il faut bien la décoder, la deuxième fonction sert à ça.

Imagines que tu stockes l'info sur un objet indropable qui a pour tag "infos". Dans le premier script tu rajoutes :
NWScript :

object oInfo = GetItemPossessedBy(oPC,"infos");
SetLocalString(oInfo,"POSITION",sPosition);
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


La fonction tu l'appeles quand quelqu'un utilise la pierre (par le OnActivateItem).

Et à la connection (enfin plutôt quand il rentre dans la zone de départ c'est mieux) du joueur tu retrouves ça par :
NWScript :

void main()
{
object oPC = GetEnteringObject();
object oInfo = GetItemPossessedBy(oPC,"infos");
string sPos = GetLocalString(oInfo,"POSITION");
if (sPos != "") AssignCommand(oPC,JumpToLocation(SvGetLocationFromString(sPos)));
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 1 sur 1 ¤


Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 41.617ms