C'est encore moi, après mes misères de constante que j'ai résolu (encore merci pour les réponses) j'ai là vraiment besoin d'aide.
Voilà je regarde pour modifier le script des chevaux utilisable mis en ligne par Death gate sur le vault.
Le script original limite l'usage des chevaux au humain, elf et nain. Ce qui limite énormément son usage dans un module. Donc malgré mes très faible connaissance en script, j'ai regardé comment il était fait pour permettre à l'ensemble des races de fonctionner.
voici le script original
void main()
{
object oItem=GetItemActivated();
object oPC=GetItemActivator();
object oTarget=GetItemActivatedTarget();
int nAppearance=GetAppearanceType(oPC);
if (GetResRef(oItem)=="saddleback")
{
if (GetResRef(oTarget)=="horse")
{
if (GetDistanceBetween(oPC,oTarget)<2.5)
{
if ((nAppearance!=752) && (nAppearance!=753) && (nAppearance!=754))
{
if (nAppearance==0) //Dwarf
{
SendMessageToPC(oPC,"You can't reach this horse! It's too big for you.");
}
else if (nAppearance==1) //Elf
{
DestroyObject(oTarget);
SetCreatureAppearanceType(oPC,753);
}
else if (nAppearance==6) //Human
{
DestroyObject(oTarget);
SetCreatureAppearanceType(oPC,752);
}
else SendMessageToPC(oPC,"You can't ride this horse!");
}
}
else SendMessageToPC(oPC,"You are too distant!");
}
else if (GetResRef(oTarget)=="pony")
{
if (GetDistanceBetween(oPC,oTarget)<2.5)
{
if ((nAppearance!=752) && (nAppearance!=753) && (nAppearance!=754))
{
if (nAppearance==0) //Dwarf
{
DestroyObject(oTarget);
SetCreatureAppearanceType(oPC,754);
}
else SendMessageToPC(oPC,"You can't ride this horse! It's too small for you.");
}
}
else SendMessageToPC(oPC,"You are too distant!");
}
else if (oTarget==oPC) //Dismount
{
if (nAppearance==752)
{
CreateObject(OBJECT_TYPE_CREATURE,"horse",GetLocation(oPC));
SetCreatureAppearanceType(oPC,6);
}
else if (nAppearance==753)
{
CreateObject(OBJECT_TYPE_CREATURE,"horse",GetLocation(oPC));
SetCreatureAppearanceType(oPC,1);
}
else if (nAppearance==754)
{
CreateObject(OBJECT_TYPE_CREATURE,"pony",GetLocation(oPC));
SetCreatureAppearanceType(oPC,0);
}
else SendMessageToPC(oPC,"Use it on horses!.");
}
}
}
et voici le script que j'ai fais
void main()
{
object oItem=GetItemActivated();
object oPC=GetItemActivator();
object oTarget=GetItemActivatedTarget();
int nAppearance=GetAppearanceType(oPC);
if (GetResRef(oItem)=="saddleback")
{
if (GetResRef(oTarget)=="horse")
{
if (GetDistanceBetween(oPC,oTarget)<2.5)
{
if ((nAppearance!=752) && (nAppearance!=753) && (nAppearance!=754)&& (nAppearance!=751))
{
if ((nAppearance==0)&& (nAppearance==2) && (nAppearance==3))
{
SendMessageToPC(oPC,"Vous ne pouvez prendre ce cheval! il est trop grand.");
}
else if (nAppearance==1) //Elf
{
DestroyObject(oTarget);
SetCreatureAppearanceType(oPC,753);
}
else if (nAppearance==6) //Human
{
DestroyObject(oTarget);
SetCreatureAppearanceType(oPC,752);
}
else if (nAppearance==4) //1/2 elf
{
DestroyObject(oTarget);
SetCreatureAppearanceType(oPC,753);
}
else if (nAppearance==5) //1/2 orc
{
DestroyObject(oTarget);
SetCreatureAppearanceType(oPC,752);
}
else SendMessageToPC(oPC,"Vous pouvez prendre ce cheval");
}
}
else SendMessageToPC(oPC,"Vous etes trop loin!");
}
else if (GetResRef(oTarget)=="pony")
{
if (GetDistanceBetween(oPC,oTarget)<2.5)
{
if ((nAppearance!=752) && (nAppearance!=753) && (nAppearance!=754))
{
if ((nAppearance==1) && (nAppearance==4) && (nAppearance==5) && (nAppearance==6))
{
SendMessageToPC(oPC, " vous ne pouvez prendre ce cheval.");
}
else if (nAppearance==0)// nain
{
DestroyObject(oTarget);
SetCreatureAppearanceType(oPC,754);
}
else if (nAppearance==2)// gnome
{
DestroyObject(oTarget);
SetCreatureAppearanceType(oPC,754);
}
else if (nAppearance==4)//halflin
{
DestroyObject(oTarget);
SetCreatureAppearanceType(oPC,754);
}
else SendMessageToPC(oPC, "Vous pouvez prendre ce cheval.");
}
}
else SendMessageToPC(oPC,"Vous etes trop loin");
}
else if (oTarget==oPC) //Dismount
{
if (nAppearance==752)
{
CreateObject(OBJECT_TYPE_CREATURE,"horse",GetLocation(oPC));
SetCreatureAppearanceType(oPC,6);
}
else if (nAppearance==753)
{
CreateObject(OBJECT_TYPE_CREATURE,"horse",GetLocation(oPC));
SetCreatureAppearanceType(oPC,1);
}
else if (nAppearance==752)
{
CreateObject(OBJECT_TYPE_CREATURE,"horse",GetLocation(oPC));
SetCreatureAppearanceType(oPC,5);
}
else if (nAppearance==753)
{
CreateObject(OBJECT_TYPE_CREATURE,"horse",GetLocation(oPC));
SetCreatureAppearanceType(oPC,4);
}
else if (nAppearance==754)
{
CreateObject(OBJECT_TYPE_CREATURE,"pony",GetLocation(oPC));
SetCreatureAppearanceType(oPC,0);
}
else if (nAppearance==754)
{
CreateObject(OBJECT_TYPE_CREATURE,"pony",GetLocation(oPC));
SetCreatureAppearanceType(oPC,2);
}
else if (nAppearance==754)
{
CreateObject(OBJECT_TYPE_CREATURE,"pony",GetLocation(oPC));
SetCreatureAppearanceType(oPC,3);
}
else SendMessageToPC(oPC,"Use it on horses!.");
}
}
}
Dans le jeu le demi-orc peut enfin monter à cheval, mais il prend l'apparence d'un humain et une fois descendu de cheval le reste.
Pour le demi elf même chose, il prend l'aspect de l'elf ( même si sa ne choque pas) mais à la descente reste en elf.
Le gnome peut prendre le cheval mais devient et reste un nain.
L'helflin lui ne peut même pas prendre de cheval.
A mon avis mon problème doit venir des 752 - 753 -754 qui doivent certainement être des constante qui définissent des aspects.
J'ai bien bidouillé avec des 751, 755, 756 mais j'ai rien eu de bon.
Quelqu'un pourrait-il m'aider .
Merci d'avance