Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Détruire un objet.

Par Taerken le 21/7/2002 à 22:27:55 (#1839065)

Je n'arrive pas à comprendre comment on utilise DestroyObject ?

Le but c'est que le personnage donne 2 potions et 2 kits de soin et supprime ceux qui restaient.

Voici le code de quand il les donne :

void main()
{
object oPC = GetLastSpeaker();
CreateItemOnObject ( "nw_it_mpotion020", oPC, 2);
CreateItemOnObject ( "nw_it_medkit001", oPC, 2);
}

C'est pour une map à la TFC sur le module NWNTactics :rolleyes:


Merci. :)

Par Kemay le 21/7/2002 à 22:57:37 (#1839283)

Je n'ai pas très bien compris ce que tu voulais faire mais pour détruire un item qui se trouve dans l'equipement d'un PC lors d'une discussion :

//Definir le PC qui possede l'objet a detruire
object oPC = GetLastSpeaker();
//Definir l'objet a detruire (par exemple un healer's kit+1)
object oObjetaDetruire = GetItemPossessedBy(oPC,"NW_IT_MEDKIT001");
//Si le PC possede bien cet objet
if ( GetIsObjectValid(oObjetaDetruire) )
//Detruire l'objet
DestroyObject(oObjetaDetruire);

Par Taerken le 21/7/2002 à 22:59:33 (#1839294)

Merci je vais essayer ça de suite c'est exactement ce que je voulais :)

void main()
{
object oPC = GetLastSpeaker();
object oObjetaDetruire = GetItemPossessedBy(oPC,"nw_it_medkit001");
if ( GetIsObjectValid(oObjetaDetruire) )
DestroyObject(oObjetaDetruire);
if ( GetIsObjectValid(oObjetaDetruire) )
DestroyObject(oObjetaDetruire);
object oObjetaDetruire2 = GetItemPossessedBy(oPC,"nw_it_mpotion020");
if ( GetIsObjectValid(oObjetaDetruire2) )
DestroyObject(oObjetaDetruire2);
if ( GetIsObjectValid(oObjetaDetruire2) )
//Detruire l'objet
DestroyObject(oObjetaDetruire2);
CreateItemOnObject ( "nw_it_mpotion020", oPC, 2);
CreateItemOnObject ( "nw_it_medkit001", oPC, 2);
}

J'ai mit ça et ça ne veut toujours pas :/

Par Taerken le 22/7/2002 à 11:53:15 (#1841222)

J'ai essayé ça et ça rate encore..

void main()
{
object oPC = GetLastSpeaker();
object oItemToTake;

oItemToTake = GetItemPossessedBy(GetPCSpeaker(), "nw_it_medkit001");
if(GetIsObjectValid(oItemToTake) != 0)
DestroyObject(oItemToTake);
oItemToTake = GetItemPossessedBy(GetPCSpeaker(), "nw_it_mpotion020");
if(GetIsObjectValid(oItemToTake) != 0)
DestroyObject(oItemToTake);


CreateItemOnObject ( "nw_it_mpotion020", oPC, 2);
CreateItemOnObject ( "nw_it_medkit001", oPC, 2);
}

Le don des potions et medkit marchent mais la suppression de ceux restants dans l'inventaire [avant] le don: non.. j'accumule les potions quand je lui parle :D

Par Kemay le 22/7/2002 à 14:55:53 (#1842202)

Sinon tu peux esaayer ce script. Cela devrait marcher... enfin espérons :rolleyes:

void main()
{
object oPC = GetPCSpeaker();
object oItem = GetFirstItemInInventory(oPC);
while (oItem!=OBJECT_INVALID) {
if ( (GetStringLeft(GetTag(oItem),12) == "NW_IT_MEDKIT" ) || (GetStringLeft(GetTag(oItem),13) == "NW_IT_MPOTION") )
DestroyObject(oItem);
oItem = GetNextItemInInventory(oPC); }

CreateItemOnObject ("nw_it_mpotion020",oPC, 2);
CreateItemOnObject ("nw_it_medkit001", oPC, 2);
}

Par Taerken le 22/7/2002 à 15:30:35 (#1842411)

ca marche parfaiiiiiit merci :)

JOL Archives 1.0.1
@ JOL / JeuxOnLine