La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 20:33:06


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Damonya
Novice
Inscrit le: 16 Avr 2003
Messages: 12
Localisation: Quelques part dans ces lieux là
Répondre en citant
Posté le : 19/09/2003 18:11:30 Sujet du message : Destruction d'une créature par CopyObject

Voila j'ai un problème j'ai créer dans un script une copie conforme de mon joueur (c'est pour un système de lootable corpse pour PC), mais j'ai un problème il me devient impossible de le détruire par la suite. Sad
Il parait que l'on peut pas se servir du tag proprement dit de la copie pour la détruire. Je veux pouvoir le détruire par distance de plus.



J'ai d'abord essayé avec Set/GetlocalObject mais il me faut un système qui marche avec la bdd, hors Set/GetcampaignObject n'existe pas.

Bon mais je pense avoir trouvé mieux. En fait il faut que j'explique un truc ou deux avant. Dans ce systéme au moment de la mort du joueur je créé un objet invisible (utilisable) que l'on va nommer cadavre (ca me sert pour stoquer l'inventaire du joueur et le reprendre par la suite), je créé aussi une copie conforme du joueur que l'on va nommer corps.

On connait le tag de mon pseudo-cadavre (l'objet invisible). On le cherches par GetObjectByTag() (très rapide) et pn cherches le cadavre du PJ par GetNearestObjectToLocation() sur la position de l'objet invisible et pour finir on vérifies qu'il s'agit bien d'un cadavre, ou un truc comme ça.

le Tag du coprs (la copie) va me servir tout de même pour cette boucle

Code :

object oPC = Le Joueur;
object oCorps = L'inventaire invisible;
object oCopy = GetNearestObject( OBJECT_TYPE_CREATURE, oCorps, 1);
string sName = GetName( oPC);
int i;

while (GetTag(oCopy) != sName)
{
i++;
oCopy = GetNearestObject( OBJECT_TYPE_CREATURE, oCorps, i);
}


Bien j'avoue j'ai du mal avec les boucles.

Voila enfin le script final qui ne marche pas bien evdemment. j'ai un gros TOO MANY INSTRUCTION qui m'arrive dans la face au moment de jouer.

Code :

void main()
{
SpawnScriptDebugger() ;
object oPC = GetPCSpeaker() ; // Sets the object oPC as the PC speaking to the corpse
string sName = GetName(oPC);
string sTable = "LOOT_" + sName + "_PJ_" + GetPCPlayerName(oPC);
location lLoc = GetCampaignLocation( sTable, "POSITION_CADAVRE");
object oCadavre = GetNearestObjectToLocation(OBJECT_TYPE_PLACEABLE, lLoc, 1);
object oTag = GetObjectByTag("CADAVRE_" + sName);



object oItem = GetFirstItemInInventory(OBJECT_SELF) ; // Gets the first item in the corpse's inventory
int iLvl = GetHitDice(oPC);



while (GetIsObjectValid(oItem)) // As long as it finds item in inventory
{
AssignCommand(OBJECT_SELF, ActionGiveItem(oItem, oPC)) ; // The corpse puts the items into the PC's inventory
oItem = GetNextItemInInventory(OBJECT_SELF) ; // Checks for other items

}
int nGiveBack = 50 * iLvl ; // calcul 50 fois Lvl
GiveXPToCreature(oPC, nGiveBack) ; // Donne Xp au PC

if (oTag==oCadavre)//si l'object proche de la location de la mort est le bon objet invisible
{

object oCopy = GetNearestObject( OBJECT_TYPE_CREATURE, oTag, 1);

int i;

while (GetTag(oCopy) != sName)
{
i++;
oCopy = GetNearestObject( OBJECT_TYPE_CREATURE, oTag, i);
}
DestroyObject(oTag,1.0f) ; // Detruit le cadavre apres 1 sec
DestroyObject(oCopy,1.0f); //detruit le corps apres 1 sec
}
}


Ce script se place en action consequente dans le dialogue avec l'objet invisible. Ca permet deux choses. De donner au joueur l'inventaire contenu dans cet objet invisible et aussi et là j'aimerais bien que ça marche de détruire l'objet invisible et le corps.

Pliiiiiiize j'ai vraiment besoin d'aide car là je cale. 1 mois que je suis sur ce système de lootable corpse pour PJ via BDD. je suis presque à la fin, mais je bloque pour détruire le cadavre et le coprs, alors que ca devrait être tout con. Sad

Merci. Si vous avez des questions ou des points sont trop obscures pour pouvoir m'aider, je vous répondrais dans les plus brefs délais
_________________
Et bla et bla et bla. J'aime le blabla et surtout avec beaucoup de blabla. Dès le matin un p'tit blabla et ça va beaucoup mieux.
Message de la comunauté des blablavores.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM Yahoo Messenger MSN Messenger Ignorer l'utilisateur
 
Damonya
Novice
Inscrit le: 16 Avr 2003
Messages: 12
Localisation: Quelques part dans ces lieux là
Répondre en citant
Posté le : 20/09/2003 14:44:21 Sujet du message :

Bopn laissez tombé les scripts j'ai finit par trouver une solution toute conne.

SetIsDestoyable(True,False,False);

fallait le savoir aussi

pfffff
_________________
Et bla et bla et bla. J'aime le blabla et surtout avec beaucoup de blabla. Dès le matin un p'tit blabla et ça va beaucoup mieux.
Message de la comunauté des blablavores.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM Yahoo Messenger MSN Messenger 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 34.702ms