alors, je sais, c'est pas la première fois qu'il en est question, mais là je séche. C'est pas vraiment important, ni grave, c'est juste pour la frime et ca dure deux seconde, mais maintenant que le reste marche bien, autant aller jusqu'au bout
je m'explique
j'ai un chef mercenaire qui doit confier une mission, donc on introduit les PJ ds le bureau pdt que mon chef s'entraine (pour la montre) ca patiente 2 sec, le chef range ses jouets, tape la discut, les pj sont virés et le chef reprend son entrainement. jusque la ca va.
j'ai mis ca dans un OnHeartBeat, parce que de toute facon c un module euh, one shot (c ca ?) pour pas bcp de gens, pis voila
donc le truc c'est que y a une variable sur le chef, et toute les 6 sec ca vérifie si il doit continuer l'entrainement
le onheartbeat
void main()
{
int nTraining01 = GetLocalInt(OBJECT_SELF, "TRAINING01");
int nTraining02 = GetLocalInt(OBJECT_SELF, "TRAINING02");
if(nTraining01 == 2)
{
//si l'entrainement est finit
if(nTraining02 == 1)
{
//arretez l'entrainement si c'est pas fait
ClearAllActions();
ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_LEFTHAND));
ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND));
//et lancer dialogue
object oPC = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC);
ActionMoveToObject(oPC);
ActionStartConversation(oPC);
ActionDoCommand(SetLocalInt(OBJECT_SELF, "TRAINING02", 0));
}
}
else
{
//entrainement
//pour trouver les 2 epee dans l'inventaire :
//-----------------------------------
int i1 = TRUE;
int i2 = TRUE;
object oEpee01 = GetFirstItemInInventory();
object oEpee02 = GetFirstItemInInventory();
while(i1 && GetIsObjectValid(oEpee01))
{
if(oEpee01 == GetObjectByTag("EPEE_01"))
i1 = FALSE;
else
oEpee01 = GetNextItemInInventory();
}
while(i2 && GetIsObjectValid(oEpee02))
{
if(oEpee02 == GetObjectByTag("EPEE_02"))
i2 = FALSE;
else
oEpee02 = GetNextItemInInventory();
}
//-----------------------------------
//une fois qu'elles sont trouvee, on les equipes
ActionEquipItem(oEpee01, INVENTORY_SLOT_RIGHTHAND);
ActionEquipItem(oEpee02, INVENTORY_SLOT_LEFTHAND);
//et on attaque le manequin
ActionAttack(GetNearestObjectByTag("MANNEQUIN"));
}
}
bon, alors je sais pas si les boucles servent à quelque chose, mais elles marchent bien :bouffon:
alors, ce qui marche pas :
c'est qu'il n'équipe pas "epee02"
il spawn, il s'entraine, mais avec une épée
mais le plus bizarre, c'est qu'il équipe les 2 épées quand il reprend l'entrainement
j'ai éssayé de mettre la phase d'quipement dans le onspawn, et ca sert à rien
alors bon, c'est du pinaillage de pinaillage, mais bon on est perfectionniste ou on l'est pas :lol: