La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 04/05/2024 03:08:20


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Macadam
Grand Chevalier
Inscrit le: 07 Avr 2006
Messages: 132
Répondre en citant
Posté le : 11/04/2006 15:32:42 Sujet du message : mettre/enlever une cape en visible (fctions)

NWScript :

//fonction qui equipe la cape lorsqu'on la vet

void EquipCap (object oPC, object oItem);

//fonction qui desequipe la cape lorsqu'on l'enleve

void DesEquipCap (object oPC, object oItem);


//////////////////////////////
void EquipCap (object oPC, object oItem)
{
string sText;
string sTag = GetTag(oItem);
object oArmur=GetItemInSlot(INVENTORY_SLOT_CHEST, oPC);
int iOldApp = GetItemAppearance(oArmur, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_NECK);
int iOldValue=0;
object oCape = GetItemInSlot(INVENTORY_SLOT_CLOAK, oPC);
AssignCommand(oPC, ClearAllActions());
if (sTag != GetTag(oCape)) return;
    if(iOldApp!=112)
        {
        //Mettre la cape
        iOldValue=112;
        sText = "*Met une cape*";
        }
      object oNewItem = CopyItemAndModify(oArmur, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_NECK, iOldValue, TRUE);
    AssignCommand(oPC, ActionUnequipItem(oArmur));
    DestroyObject(oArmur, 0.1);
    DelayCommand(0.3,AssignCommand(oPC, ActionEquipItem(oNewItem, INVENTORY_SLOT_CHEST)));
    DelayCommand(0.5, AssignCommand(oPC, SpeakString(sText)));
}

////////////////////////////// /////
void DesEquipCap (object oPC, object oItem)
{
string sText;
string sTag = GetTag(oItem);
object oCape = GetItemInSlot(INVENTORY_SLOT_CLOAK, oPC);
object oArmur=GetItemInSlot(INVENTORY_SLOT_CHEST, oPC);
int iOldApp = GetItemAppearance(oArmur, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_NECK);
int iOldValue=0;
if (sTag != GetTag(oCape)) return;
AssignCommand(oPC, ClearAllActions());
    if(iOldApp!=0)
        {
        //Enlever la cape
        iOldValue=0;
        sText = "*Enleve sa cape*";
        }
      object oNewItem = CopyItemAndModify(oArmur, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_NECK, iOldValue, TRUE);
    AssignCommand(oPC, ActionUnequipItem(oArmur));
    DestroyObject(oArmur, 0.1);
    DelayCommand(0.3,AssignCommand(oPC, ActionEquipItem(oNewItem, INVENTORY_SLOT_CHEST)));
    DelayCommand(0.5, AssignCommand(oPC, SpeakString(sText)));
}


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
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 11/04/2006 15:40:34 Sujet du message :

Salut !

Très intéressant Macadam, je suis en train d'essayer de faire la même chose avec des gants pour pouvoir trancher la main d'un joueur et éventuellement la remplacer par une main mécanique.

Merci pour toutes ces fonctions !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Macadam
Grand Chevalier
Inscrit le: 07 Avr 2006
Messages: 132
Répondre en citant
Posté le : 11/04/2006 16:19:19 Sujet du message :

de rien Wink

oui en fait pour des gants ou autre il suffit de changer la constante ITEM_APPR_ARMOR_MODEL_NECK par celle qui correspond et de changer le numero par la reference de l'apparence qui convient (le iOldValue de mon script, 112 pour le modele de cape)

et ça modifierait l'armure en fonction Cool
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 11/04/2006 19:06:27 Sujet du message :

N'hésite pas à ajouter ton script dans le sujet en post-it "Vos scripts" ; c'est toujours intéressant de le conserver quelque part.
_________________
» Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine
» 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
edisnotdead
Grand Chevalier
Inscrit le: 19 Fév 2005
Messages: 132
Répondre en citant
Posté le : 12/04/2006 05:41:19 Sujet du message :

il est bien de marquer l auteur aussi http://www.deepblack.be/forum/viewtopic.php?t=739
qui est spidermac si je ne m abuse
celui si a été posté a 15heur et plus et l autre a 14 heur et plus
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Macadam
Grand Chevalier
Inscrit le: 07 Avr 2006
Messages: 132
Répondre en citant
Posté le : 12/04/2006 08:06:51 Sujet du message :

lol spidermac = macadam ^^

j'ai deux pseudo dsl, autant pour moi:lol
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
edisnotdead
Grand Chevalier
Inscrit le: 19 Fév 2005
Messages: 132
Répondre en citant
Posté le : 12/04/2006 09:31:42 Sujet du message :

oki au temp pour moi ^^
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Argyl
Grand Sage du Conseil
Inscrit le: 09 Fév 2005
Messages: 704
Répondre en citant
Posté le : 12/04/2006 19:33:16 Sujet du message :

Question d'un gros nul en script ou plutôt demande de confirmation :

Si j'ai bien compris, cette fonction permet de "déséquiper/rééquiper" un slot d'armure (dont une constante est définie) par une autre partie d'armure.

Genre : je change la main 001 par la main 008 et cela sans que l'armure (ensemble des bodyparts de la nouvelle armure) pré-existe en tant qe telle dans la palette ? C'est en quelque sorte ce que fait la compétence Craft_armor, non ?

Comment fais-tu le lien entre la valeur que prend la constante et le numéro du bodypart, le n° de la ligne de la partie en question dans son 2da ?

Et enfin est-ce que cela peut fonctionner pour la tête/casque ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Starkanas
Grand Chevalier
Inscrit le: 14 Mai 2004
Messages: 110
Répondre en citant
Posté le : 12/04/2006 20:42:18 Sujet du message :

En fait moi si j'ai bien compris, ça fait le même effet que pour les carquois de la DLA.

Si tu t'équipes d'une cape, ton armure se modifie automatiquement pour avoir une cape visible. Juste pour un peu plus de réalisme quoi Very Happy

Pour les autres question, désolé j'ai rien compris Embarassed, il se fait tard ...
_________________
LSDA 3ème Âge : Serveur RôlePlay basé sur les écrits de J.R.R.Tolkien ...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 12/04/2006 21:15:54 Sujet du message :

C'est le même système que le craft, et pour les numéros c'est ceux du model duhak pack (enfin je sais que le système que j'avais fait, j'avais pris les numéro du CEP ça marchait), ça donnait un truc du genre :

112 - Cape Simple : Tissu 1
113 - Cape Simple ; Tissu 2
154, 155, 156 les autres capes.

Pour le système je le post mais maintenant ça doit être obselète.

Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.
Spoiler :
// OnUnEquip du module \\

void main()
{
object oLast = GetPCItemLastUnequipped();
object oPC = GetPCItemLastUnequippedBy();
int iItemBase = GetBaseItemType(oLast);
int iEquipCape = GetLocalInt(oPC, "EquipCape");
object oEquipA = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC);
object oEquipC = GetItemInSlot(INVENTORY_SLOT_CLOAK, oPC);

if(iEquipCape == TRUE)
{
SetLocalInt(oPC, "EquipCape", FALSE);

if(iItemBase == BASE_ITEM_CLOAK)
{
string sResRef = GetResRef(oEquipA);
object oCape = CreateItemOnObject(sResRef, oPC, 1);
SetIdentified(oCape, TRUE);
AssignCommand(oPC, ActionEquipItem(oCape, INVENTORY_SLOT_CHEST));
DestroyObject(oEquipA);
}

if((iItemBase == BASE_ITEM_ARMOR) && (oEquipC != OBJECT_INVALID))
{
string sResRef = GetResRef(oLast);
object oCape = CreateItemOnObject(sResRef, oPC, 1);
DestroyObject(oLast);
}
DelayCommand(0.1, SetLocalInt(oPC, "EquipCape", TRUE));
}
}


Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.
Spoiler :
// OnEquip du module \\

#include "x2_inc_switches"
#include "x2_inc_intweapon"

void main()
{
/* declarations */
object oLast = GetPCItemLastEquipped();
object oPC = GetPCItemLastEquippedBy();
object oEquipA = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC);
object oEquipC = GetItemInSlot(INVENTORY_SLOT_CLOAK, oPC);
string sLeftA = GetStringLeft(GetTag(oLast), 5);
string sLeftC = GetStringLeft(GetTag(oEquipC), 5);
int iItemBase = GetBaseItemType(oLast);
int iEquipCape = GetLocalInt(oPC, "EquipCape");

if(iEquipCape == TRUE)
{
SetLocalInt(oPC, "EquipCape", FALSE);
/* si le dernier objet equiper est une cape */
if(iItemBase == BASE_ITEM_CLOAK)
{
if(sLeftA == "CapS_") // Cape Simple
{
object oCape = CopyItemAndModify(oEquipA, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_NECK, 112, TRUE);
AssignCommand(oPC, ActionEquipItem(oCape, INVENTORY_SLOT_CHEST));
DestroyObject(oEquipA);
}

else if(sLeftA == "CapA_") // Cape Appliquée
{
object oCape = CopyItemAndModify(oEquipA, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_NECK, 154, TRUE);
AssignCommand(oPC, ActionEquipItem(oCape, INVENTORY_SLOT_CHEST));
DestroyObject(oEquipA);
}

else if(sLeftA == "CapL_") // Cape Large
{
object oCape = CopyItemAndModify(oEquipA, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_NECK, 155, TRUE);
AssignCommand(oPC, ActionEquipItem(oCape, INVENTORY_SLOT_CHEST));
DestroyObject(oEquipA);
}

else if(sLeftA == "CapO_") // Cape Ornée
{
object oCape = CopyItemAndModify(oEquipA, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_NECK, 156, TRUE);
AssignCommand(oPC, ActionEquipItem(oCape, INVENTORY_SLOT_CHEST));
DestroyObject(oEquipA);
}
}

else if((iItemBase == BASE_ITEM_ARMOR) && (oEquipC != OBJECT_INVALID))
{
if(sLeftC == "CapS_")
{
object oCape = CopyItemAndModify(oLast, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_NECK, 154, TRUE);
AssignCommand(oPC, ActionEquipItem(oCape, INVENTORY_SLOT_CHEST));
DestroyObject(oLast);
}

else if(sLeftC == "CapA_")
{
object oCape = CopyItemAndModify(oLast, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_NECK, 155, TRUE);
AssignCommand(oPC, ActionEquipItem(oCape, INVENTORY_SLOT_CHEST));
DestroyObject(oLast);
}

else if(sLeftC == "CapL_")
{
object oCape = CopyItemAndModify(oLast, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_NECK, 156, TRUE);
AssignCommand(oPC, ActionEquipItem(oCape, INVENTORY_SLOT_CHEST));
DestroyObject(oLast);
}

else if(sLeftC == "CapO_")
{
object oCape = CopyItemAndModify(oLast, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_NECK, 112, TRUE);
AssignCommand(oPC, ActionEquipItem(oCape, INVENTORY_SLOT_CHEST));
DestroyObject(oLast);
}
}
DelayCommand(0.1, SetLocalInt(oPC, "EquipCape", TRUE));
}
}

_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
edisnotdead
Grand Chevalier
Inscrit le: 19 Fév 2005
Messages: 132
Répondre en citant
Posté le : 13/04/2006 07:20:30 Sujet du message :

juste un truc tu devrai mettre un test que si il n a pas d armure sur lui il ne puisse pas metre sa cape avec un petit message "vous ne pouvez attachez votre cape a votre armure car vous n en portez pas ^^"

car la si il s equippe de sa cape puis aprés de son armure ca fais quoi ?^^
et que si il desequipe son armure ca lui enleve la cape aussi et sa desequippe la cape en meme temp
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Argyl
Grand Sage du Conseil
Inscrit le: 09 Fév 2005
Messages: 704
Répondre en citant
Posté le : 13/04/2006 08:18:24 Sujet du message :

Pourquoi ne pourrait-on pas mettre une cape lorsqu'on est nu ?

De plus, si ça marche comme le système de craft_armor, il faut être équipé d'une armure pour que cela fonctionne (je vois mal comment modifier une armure inexistante).

Par contre, vu que c'est l'armure avec cape que tu déséquipes (et si cela se comporte comme le craft_armor), tu enlèveras tout, mais en la remettant tu la remettras automatiquement avec la cape, à moins qu'il y est une ligne qui annule la cape vers un neck000 que je n'aurai pas vu dans le script.

Sinon, c'est super sympa comme script et j'ai plein d'usage en tête pour un intense gaspillage de ressource Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 13/04/2006 20:02:59 Sujet du message :

Dans mes vieux scripts, je crois que je gère ça ^^.
Après pourquoi pas créer une armure bidon pour mettre une cape même nu.
(le mieu serait tout de même de les mettre en vfx voilà ^^)
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Argyl
Grand Sage du Conseil
Inscrit le: 09 Fév 2005
Messages: 704
Répondre en citant
Posté le : 13/04/2006 20:29:06 Sujet du message :

Nan, le vfx c'est pas bien Very Happy

Et puis pour l'armure type nu, je l'ai déjà fait pour une autre raison et c'est une simple copie renumérotation des pSRP_<bodypart>.mdl et plt et déclarations dans les 2da.

C'est pas la mer à boire pour y arriver.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
edisnotdead
Grand Chevalier
Inscrit le: 19 Fév 2005
Messages: 132
Répondre en citant
Posté le : 14/04/2006 05:43:31 Sujet du message :

ouep mais ca fai un hak argyl

la soluce de ivellios et pas mal le seul truc c est les tatouages Sad
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Argyl
Grand Sage du Conseil
Inscrit le: 09 Fév 2005
Messages: 704
Répondre en citant
Posté le : 14/04/2006 09:18:26 Sujet du message :

Existe-t-il actuellement 1 seul module sans hak ? et on n'oublie pas que le CEP est un ramassis de Haks Wink
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 14/04/2006 10:59:10 Sujet du message :

Oui, tous ceux qui utilisent l'override ! Embarassed


Enki > Tu Sors !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Argyl
Grand Sage du Conseil
Inscrit le: 09 Fév 2005
Messages: 704
Répondre en citant
Posté le : 14/04/2006 13:58:49 Sujet du message :

*Donne 2 - 3 coups de hache à Enki afin qu'il retrouve ses esprits* Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
edisnotdead
Grand Chevalier
Inscrit le: 19 Fév 2005
Messages: 132
Répondre en citant
Posté le : 15/04/2006 07:56:32 Sujet du message :

c est pas si con en fait ce que dit enky

explication
la plus part du temp il faut mettre un hak car on ragoute des model 3d
mais les model 3d on les a dejas la on les utilise juste pour autre chose
donc si on arrive a ajouter des pointeur sur des model existant bein c est jouable ,mais pour ca faut que les 2da soient ceux du serveur ^^
un peu comme celui du polymorphe en fait ^^
 
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 : 29/06/2006 01:51:29 Sujet du message :

Argyl> pourquoi les vfx c'est pas bien pour toi?

Sinon, il faudra forcemment un hak puisqu'il n'y pas de capes dans le jeu de base.
_________________
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
 
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 38.365ms