JeuxOnLineForumsPlusConnectés : 600 (sites) | 1201 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Comment faire pour que le PJ démarre à poil ? RSS
   
Répondre
Partager Outils Rechercher
Avatar de Mel Ethybem
Mel Ethybem
Roi
 
Avatar de Mel Ethybem
 

Comment faire pour que le PJ démarre à poil ?

Je me demandais : Comment faire pour que le PJ démarre le module/le serveur à poil ; c'est à dire sans rien, sans armes, sans armure, sans vêtements ?

Merci d'avance,
Mel Ethybem
Lien direct vers le message - Vieux
Amaranthe
Reine
 
RTFM
__________________
Mandragore.
Rosk du Kheysa Meatus.
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
Je dirait plutôt
RTFP*

http://forums.jeuxonline.info/showth...hreadid=127619



(*read the f**** persistant )


Non, plus sérieusement, les persistants sont la pour ca, Mel, et ca prouve que tu as vraiment envie qu'on t'aide, de les avoir lu avant, pas que tu as envie qu'on taff a ta place
Lien direct vers le message - Vieux
Avatar de RAT
RAT
Alpha & Oméga
 
Avatar de RAT
 
et voilà eM nous invente des mots
Lien direct vers le message - Vieux
Avatar de Blam
Blam
Roi
 
Avatar de Blam
 
curieusement ce script ne fonctionne pas
des problemes de compilation sans doute.

et les explications qui se veulent claires sur ce post ne le sont qu'a moitié.


j'utilise cela dans le OnEnter d'une zone mais il reste un problème, le sac a dos (inventaire pas équipé) ne se vide pas.

Code PHP:
void main()
{
object oEnteringPC//PC entering area
object oInvItem//Items that PC has equipped
object oHolder//Object that will hold the PC's items
object oHolderItem//New spawned replica of item for chest

// Get the object that last entered this area
oEnteringPC GetEnteringObject();
oHolder GetObjectByTag("it_pcItemChest");

// Make sure the object is a PC
if (GetIsPC(oEnteringPC))
{
// Only clear inventory if we haven't already done it before
if (GetLocalInt(oEnteringPC"CLEAR_INV_SCENE1") == 0)
{

// Go through each slot, creating a copy of the item in the
// chest and destroying the item on the character. This
// will leave the PC nekkid

if ( OBJECT_INVALID != (oInvItem GetItemInSlot(INVENTORY_SLOT_ARMSoEnteringPC)) )
oHolderItem CreateItemOnObject(GetTag(oInvItem), oHolder);
SetPlotFlag(oHolderItemGetPlotFlag(oInvItem));
SetIdentified(oHolderItemGetIdentified(oInvItem));
DestroyObject(oInvItem);
if ( 
OBJECT_INVALID != (oInvItem GetItemInSlot(INVENTORY_SLOT_ARROWSoEnteringPC)) )
oHolderItem CreateItemOnObject(GetTag(oInvItem), oHolder);
SetPlotFlag(oHolderItemGetPlotFlag(oInvItem));
SetIdentified(oHolderItemGetIdentified(oInvItem));
DestroyObject(oInvItem);
if ( 
OBJECT_INVALID != (oInvItem GetItemInSlot(INVENTORY_SLOT_BELToEnteringPC)) )
oHolderItem CreateItemOnObject(GetTag(oInvItem), oHolder);
SetPlotFlag(oHolderItemGetPlotFlag(oInvItem));
SetIdentified(oHolderItemGetIdentified(oInvItem));
DestroyObject(oInvItem);
if ( 
OBJECT_INVALID != (oInvItem GetItemInSlot(INVENTORY_SLOT_BOLTSoEnteringPC)) )
oHolderItem CreateItemOnObject(GetTag(oInvItem), oHolder);
SetPlotFlag(oHolderItemGetPlotFlag(oInvItem));
SetIdentified(oHolderItemGetIdentified(oInvItem));
DestroyObject(oInvItem);
if ( 
OBJECT_INVALID != (oInvItem GetItemInSlot(INVENTORY_SLOT_BOOTSoEnteringPC)) )
oHolderItem CreateItemOnObject(GetTag(oInvItem), oHolder);
SetPlotFlag(oHolderItemGetPlotFlag(oInvItem));
SetIdentified(oHolderItemGetIdentified(oInvItem));
DestroyObject(oInvItem);
if ( 
OBJECT_INVALID != (oInvItem GetItemInSlot(INVENTORY_SLOT_BULLETSoEnteringPC)) )
oHolderItem CreateItemOnObject(GetTag(oInvItem), oHolder);
SetPlotFlag(oHolderItemGetPlotFlag(oInvItem));
SetIdentified(oHolderItemGetIdentified(oInvItem));
DestroyObject(oInvItem);
if ( 
OBJECT_INVALID != (oInvItem GetItemInSlot(INVENTORY_SLOT_CARMOURoEnteringPC)) )
oHolderItem CreateItemOnObject(GetTag(oInvItem), oHolder);
SetPlotFlag(oHolderItemGetPlotFlag(oInvItem));
SetIdentified(oHolderItemGetIdentified(oInvItem));
DestroyObject(oInvItem);
if ( 
OBJECT_INVALID != (oInvItem GetItemInSlot(INVENTORY_SLOT_CHESToEnteringPC)) )
oHolderItem CreateItemOnObject(GetTag(oInvItem), oHolder);
SetPlotFlag(oHolderItemGetPlotFlag(oInvItem));
SetIdentified(oHolderItemGetIdentified(oInvItem));
DestroyObject(oInvItem);
if ( 
OBJECT_INVALID != (oInvItem GetItemInSlot(INVENTORY_SLOT_CLOAKoEnteringPC)) )
oHolderItem CreateItemOnObject(GetTag(oInvItem), oHolder);
SetPlotFlag(oHolderItemGetPlotFlag(oInvItem));
SetIdentified(oHolderItemGetIdentified(oInvItem));
DestroyObject(oInvItem);
if ( 
OBJECT_INVALID != (oInvItem GetItemInSlot(INVENTORY_SLOT_CWEAPON_BoEnteringPC)) )
oHolderItem CreateItemOnObject(GetTag(oInvItem), oHolder);
SetPlotFlag(oHolderItemGetPlotFlag(oInvItem));
SetIdentified(oHolderItemGetIdentified(oInvItem));
DestroyObject(oInvItem);
if ( 
OBJECT_INVALID != (oInvItem GetItemInSlot(INVENTORY_SLOT_CWEAPON_LoEnteringPC)) )
oHolderItem CreateItemOnObject(GetTag(oInvItem), oHolder);
SetPlotFlag(oHolderItemGetPlotFlag(oInvItem));
SetIdentified(oHolderItemGetIdentified(oInvItem));
DestroyObject(oInvItem);
if ( 
OBJECT_INVALID != (oInvItem GetItemInSlot(INVENTORY_SLOT_CWEAPON_RoEnteringPC)) )
oHolderItem CreateItemOnObject(GetTag(oInvItem), oHolder);
SetPlotFlag(oHolderItemGetPlotFlag(oInvItem));
SetIdentified(oHolderItemGetIdentified(oInvItem));
DestroyObject(oInvItem);
if ( 
OBJECT_INVALID != (oInvItem GetItemInSlot(INVENTORY_SLOT_HEADoEnteringPC)) )
oHolderItem CreateItemOnObject(GetTag(oInvItem), oHolder);
SetPlotFlag(oHolderItemGetPlotFlag(oInvItem));
SetIdentified(oHolderItemGetIdentified(oInvItem));
DestroyObject(oInvItem);
if ( 
OBJECT_INVALID != (oInvItem GetItemInSlot(INVENTORY_SLOT_LEFTHANDoEnteringPC)) )
oHolderItem CreateItemOnObject(GetTag(oInvItem), oHolder);
SetPlotFlag(oHolderItemGetPlotFlag(oInvItem));
SetIdentified(oHolderItemGetIdentified(oInvItem));
DestroyObject(oInvItem);
if ( 
OBJECT_INVALID != (oInvItem GetItemInSlot(INVENTORY_SLOT_LEFTRINGoEnteringPC)) )
oHolderItem CreateItemOnObject(GetTag(oInvItem), oHolder);
SetPlotFlag(oHolderItemGetPlotFlag(oInvItem));
SetIdentified(oHolderItemGetIdentified(oInvItem));
DestroyObject(oInvItem);
if ( 
OBJECT_INVALID != (oInvItem GetItemInSlot(INVENTORY_SLOT_NECKoEnteringPC)) )
oHolderItem CreateItemOnObject(GetTag(oInvItem), oHolder);
SetPlotFlag(oHolderItemGetPlotFlag(oInvItem));
SetIdentified(oHolderItemGetIdentified(oInvItem));
DestroyObject(oInvItem);
if ( 
OBJECT_INVALID != (oInvItem GetItemInSlot(INVENTORY_SLOT_RIGHTHANDoEnteringPC)) )
oHolderItem CreateItemOnObject(GetTag(oInvItem), oHolder);
SetPlotFlag(oHolderItemGetPlotFlag(oInvItem));
SetIdentified(oHolderItemGetIdentified(oInvItem));
DestroyObject(oInvItem);
if ( 
OBJECT_INVALID != (oInvItem GetItemInSlot(INVENTORY_SLOT_RIGHTRINGoEnteringPC)) )
oHolderItem CreateItemOnObject(GetTag(oInvItem), oHolder);
SetPlotFlag(oHolderItemGetPlotFlag(oInvItem));
SetIdentified(oHolderItemGetIdentified(oInvItem));
DestroyObject(oInvItem);
// Make sure this script doesn't run anymore for the current PC
SetLocalInt(oEnteringPC"CLEAR_INV_SCENE1"1);
}
}

Lien direct vers le message - Vieux
Avatar de RAT
RAT
Alpha & Oméga
 
Avatar de RAT
 
arggg heuu franchement si je peux me permettre tu t'embêtes pour un rien j'arrive je vous montre un script qui marche et qui est beaucoup plus rapide
Lien direct vers le message - Vieux
Avatar de RAT
RAT
Alpha & Oméga
 
Avatar de RAT
 
voila normalement , comme ça c'est plus rapide et il fait tout l'inventaire du pc quand il rentre .


Code PHP:

object oPC
=GetEnteringObject();
object oitem=GetFirstItemInInventory(oPC);

while(
GetIsObjectValid(oitem))
{

DestroyObject(oitem);
oitem=GetNextItemInInventory(oPC);

Lien direct vers le message - Vieux
Avatar de Blam
Blam
Roi
 
Avatar de Blam
 
Ne se compile pas

invalide declaration type sur le

while(GetIsObjectValid(oitem))

autrement c'est vachement plus court
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
Je commence vraiment a douter de l'interêt des persistants...

Code PHP:
void main()
{
object oPC=GetEnteringObject();
object oitem=GetFirstItemInInventory(oPC);

while(
GetIsObjectValid(oitem))
{
DestroyObject(oitem);
oitem=GetNextItemInInventory(oPC);
}

int nSlot 17;
while (
nSlot >=0)
    {
DestroyObject(GetItemInSlot(nSlot,oPC)); nSlot--;}


Lien direct vers le message - Vieux
Avatar de RAT
RAT
Alpha & Oméga
 
Avatar de RAT
 
Citation:
Provient du message de Blam
Ne se compile pas

invalide declaration type sur le

while(GetIsObjectValid(oitem))

autrement c'est vachement plus court

Heuu y a un problème car moi il se compile très bien chez moi

Enfin eM a remontré le reste de ce qui faut faire

Mais ne t'inquiète pas eM , cela sera les persistants j'en suis convaincu
Lien direct vers le message - Vieux
Avatar de Blam
Blam
Roi
 
Avatar de Blam
 
excellent
marche parfaitement, mais c un script capitaliste qui laisse l'or au joueur


et si je rajoute une ligne pour tout mettre dans un autre contenant ? ca marche ?


autre question; car la vous etes efficace non seulement en scripts mais en inspiration

j'explique dans une piece ou il y a deux joueurs comment intervertir leur equipement (pssst pas de commentaires sur le maitre de jeu, hein ? )

enfin si c'est possible
__________________
Congnois toy toy mesme. Nulle gloire dans le sang inutile
Lien direct vers le message - Vieux
Avatar de RAT
RAT
Alpha & Oméga
 
Avatar de RAT
 
huhu ^^
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
tu veux eviter la boucle infinie ?

Tu fais un On trigger qui declenche ca, avec 2 objet invisibles qui prennent chacun l'quipement d'un joueur, et une fois le vidage inventaire fait, il le donne a l'autre joueur...

Attention a ne pas utiliser destroyobject, mais
Code PHP:
void ActionTakeItem(
    
object oItem,
    
object oTakeFrom
); 
^^

Description (US)
Lien direct vers le message - Vieux
Avatar de Blam
Blam
Roi
 
Avatar de Blam
 
pour l'or
pour l'or qun a une idée ?
Lien direct vers le message - Vieux
Avatar de RAT
RAT
Alpha & Oméga
 
Avatar de RAT
 
essaye comme ca

Code PHP:

int igold
=GetGold(oPC);
TakeGoldFromCreature(igoldoPC,TRUE); 
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Comment faire pour que le PJ démarre à poil ?
   

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

© 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