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 06:02:00


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 08/05/2006 18:32:11 Sujet du message : While probleme

Bonjour.

Voila un script que j'ai fait qui sert que quand on se repose, et que on a des pièges, alors deux pièges apparaissent.

NWScript :
#include "generale"
void main()
{
object oPC = GetLastPCRested();
object oItem = GetFirstItemInInventory(oPC);
string sItem;
string sSS;
while(GetIsObjectValid(oItem))
{
sItem = GetResRef(oItem);
sSS = GetSubString(sItem, 0, 4);
if(sSS == "trap")
{
DestroyObject(oItem);
}
oItem = GetNextItemInInventory(oPC);
}
DelayCommand(1.5, SpawnTrap(oPC));
}
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 de SpawnTrap(object oPC); :

NWScript :
void SpawnTrap(object oPC)
{
if(HasItem(oPC, "PiegeFeuFaible") == TRUE){CreateItemOnObject("trap_1", oPC, 1);CreateItemOnObject("trap_1", oPC, 1);}
if(HasItem(oPC, "PiegeFeuMoyen") == TRUE){CreateItemOnObject("trap_3", oPC, 1);CreateItemOnObject("trap_3", oPC, 1);}
if(HasItem(oPC, "PiegeFeuMortel") == TRUE){CreateItemOnObject("trap_2", oPC, 1);CreateItemOnObject("trap_2", oPC, 1);}
if(HasItem(oPC, "PiegeFeuEpic") == TRUE){CreateItemOnObject("trap_4", oPC, 1);CreateItemOnObject("trap_4", oPC, 1);}

if(HasItem(oPC, "PiegeAcideFaible") == TRUE){CreateItemOnObject("trap_5", oPC, 1);CreateItemOnObject("trap_5", oPC, 1);}
if(HasItem(oPC, "PiegeAcideMoyen") == TRUE){CreateItemOnObject("trap_6", oPC, 1);CreateItemOnObject("trap_6", oPC, 1);}
if(HasItem(oPC, "PiegeAcideMortel") == TRUE){CreateItemOnObject("trap_7", oPC, 1);CreateItemOnObject("trap_7", oPC, 1);}
if(HasItem(oPC, "PiegeAcideEpic") == TRUE){CreateItemOnObject("trap_8", oPC);CreateItemOnObject("trap_8", oPC);}

if(HasItem(oPC, "PiegeFroidFaible") == TRUE){CreateItemOnObject("trap_9", oPC, 1);CreateItemOnObject("trap_9", oPC, 1);}
if(HasItem(oPC, "PiegeFroidMoyen") == TRUE){CreateItemOnObject("trap_11", oPC, 1);CreateItemOnObject("trap_11", oPC, 1);}
if(HasItem(oPC, "PiegeFroidMortel") == TRUE){CreateItemOnObject("trap_10", oPC, 1);CreateItemOnObject("trap_10", oPC, 1);}
if(HasItem(oPC, "PiegeFroidEpic") == TRUE){CreateItemOnObject("trap_12", oPC, 1);CreateItemOnObject("trap_12", oPC, 1);}

if(HasItem(oPC, "PiegeSonicFaible") == TRUE){CreateItemOnObject("trap_13", oPC, 1);CreateItemOnObject("trap_13", oPC, 1);}
if(HasItem(oPC, "PiegeSonicMoyen") == TRUE){CreateItemOnObject("trap_15", oPC,1);CreateItemOnObject("trap_15", oPC,1);}
if(HasItem(oPC, "PiegeSonicMortel") == TRUE){CreateItemOnObject("trap_14", oPC, 1);CreateItemOnObject("trap_14", oPC, 1);}
if(HasItem(oPC, "PiegeSonicEpic") == TRUE){CreateItemOnObject("trap_16", oPC, 1);CreateItemOnObject("trap_16", oPC, 1);}

if(HasItem(oPC, "PiegeElectriqueFaible") == TRUE){CreateItemOnObject("trap_17", oPC, 1);CreateItemOnObject("trap_17", oPC, 1);}
if(HasItem(oPC, "PiegeElectriqueMoyen") == TRUE){CreateItemOnObject("trap_19", oPC, 1);CreateItemOnObject("trap_19", oPC, 1);}
if(HasItem(oPC, "PiegeElectriqueMortel") == TRUE){CreateItemOnObject("trap_18", oPC, 1);CreateItemOnObject("trap_18", oPC, 1);}
if(HasItem(oPC, "PiegeElectriqueEpic") == TRUE){CreateItemOnObject("trap_20", oPC, 1);CreateItemOnObject("trap_20", oPC, 1);}
}
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.


Mon probleme est que, si on a deux même objets, le script s'éxécute une fois, aussi j'ai bien regarder, au lieu d'avoir 2 pièges on en a quatre! j'ai cherche mais j'ai pas trouvé, pourrait-on m'aidé svp? Les amis les roubs n'aime pas attendre!! ^^

Merci
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Fanboy
Acolyte
Inscrit le: 04 Avr 2006
Messages: 23
Répondre en citant
Posté le : 09/05/2006 01:53:13 Sujet du message :

bon j'essaye de comprendre les script...

tu fait une boucle qui détruit les piege (trap) sur le PJ si il en a donc..

ensuite tu fait créer avec spawntrapp, 2 piege suivant ce que possede le joueur comme piege.

déja la tu peut remarquer que si ton script fonction c'est uniquement du au faite que le destroye object met un certain temps a se faire..
et que quand tu appelle ta fonction spawntrap le script detecte encore les trap (normalement détruit avant) sur le PJ. !!!!!!!

le reste est simple. pour un piege ca t'en créer 2.
si le joueur en possede 2 de type différent , cela t'en créer 2*2 = 4.
tous simplement car ta suite de IF dit.
Si le joueur a piege de type XXX créer 2 piege..
SI le jouer a un piege de type XX crer 2 piege etc..

si le joueur a deux piege de type différent, 2 de tes if s'enclencherons tous simplment ce qui créera 4 piege 2 de chaque type que le joueur posséderais.

dans le principe de toute facon a tu réfléchi au joueur qui aurait disons déja 4 piege sur lui...(de meme type comme si ce que tu voulait faire marcher).
ca lui effacerais 4 piege pour lui en créer 2 ..
en faite si il a 4 piege de type différent ton script lui en créra 4*2 8

enfin si ca peut aider.
_________________
Kikoo
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 09/05/2006 20:52:12 Sujet du message :

Je crois que tu n'as pas compris, désolé j'ai peut-être mal formulé ma phrase, je ré-explique :

Dans mon serveur, il existe un marchand d'objets spéciaux : ces objets s'appellent tous PiegeXO (X = Domage du piège, O = Puissance du piège). Bon jusque là ça va, mais ces pièges ne sont pas des TRAPS, ce sont tous simplement des objets divers de taille moyenne! Dès qu'on dort, le script va effacer tous les pièges (tention, pas les objets!) et va redonner des pièges selon ce que a le joueur dans son inventaire. Pour exemple prenons, monsieur A :

Monsieur A possède 1 Piège de Feu Puissant (l'objet), il dort et là normalement, deux pièges de feu puissant apparaissent (traps). Monsieurs A re-dort, les deux anciens pièges se detruissent et laisse place à d'autre.

Autre :

Monsieur A possède 1 Piège d'Acide Mortel, et 1 Piège de Froid Puissant. Il dort, il reçoit 2 pièges d'acide mortel, et 2 pièges de froid puissant. Monsieur re-dort, les 2 pièges d'acide/froid mortel/puissant se retirent, pour faire place à deux autres!

Autre :

Monsieurs A possède 2 Pièges Sonic Epic, il dort, il reçoit 4 pièges de froid epic, il re-dort, ces 4 pièges se detruisent, et 4 autre reviennent!

Pourquoi ça? Car je ne veux pas que les joueurs possèdent plus de 30 pièges dans leur inventaire (donc 15 objets à traps). Voila Smile
Voila jespere que tu comprends mieux Smile
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Fanboy
Acolyte
Inscrit le: 04 Avr 2006
Messages: 23
Répondre en citant
Posté le : 10/05/2006 08:05:23 Sujet du message :

bon alors quelle piege sont tagger comme "trap" ?

et exist-il d'autre piege non tagger comme "trap" ?

les exemple qu tu prend et ce qu'on appelle en programmation un jeux d'essais qui sert simplment avec des exemple a tester si le code fait ce qu'on lui demande..

je te conseil de prendre donc comme exemple pour ton jeu d'essais.

1 piege dans l'inventaire.

2 de meme type puis deux de type différent

3 de meme type puis 3 de type défferent et ausi 3 avec 2 de meme type et 1 différent.


si j'ai bien compris ca va détruire les piege ne venant pas du marchant 1 pour en créer deux a la place venant du marchant.. ?
c'est ca ?

PS: les iten tagé "trap" que tu efface de l'inventaire du joueur, sont belle est bien des objets ^^
_________________
Kikoo
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 10/05/2006 12:15:51 Sujet du message :

Bon on va faire autrement Very Happy

Objet : on va dire que c'est ce que le joueur va acheter au marchand un objet divers moyen, qui a pour simple tag, le même nom que l'objet porte (inutilisable)

Trap : piège qui apparait, et qu'on peut utiliser pour deposer un carré vert au sol ^^

Bon on va employer ces deux mots pour pas ce perdre :

Les traps on un tag comme ça "trap_X" (ou X = 1,2,3, etc...) ceux sont les seuls "objets" qui porte ceux tag, donc j'ai utilisé la fonction GetSubString pour detruire tous les objets de l'inventaire du joueur commencent par "trap". Le serveur fait tous ce que je demande, son seul problème est que dès qu'on click sur "repos" on a bien la destruction de tous les pièges qui commence par "trap", deux apparaissent, mais à la fin du repos, 2 autres apparaissent, donc on obtient 4 traps du même type! L'autre probleme est que si le serveur vois que le joueur a deux objets de même type (donc de même tag), alors il va faire comme si il y en avait qu'un, même si il y a 3,4,5 etc... objets, il mettra que 4 pièges (à cause du bug ça).

Voila j'ai bien résumé ou pas? Razz
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 11/05/2006 20:05:16 Sujet du message :

up svp je le need vraiment ce script ^^
_________________
[http]
 
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 51.266ms