besoin d'un petit coup de pouce

Répondre
Partager Rechercher
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



Code:
  
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

Code:
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
Ce truc il change ton apparence de "humain" en "humain sur un cheval". Comme pour les halfelins ça n'existe pas halfelin sur un cheval (quoi mon avatar? ) ça ne marchera jamais. Pour le demi-elfe, normalement l'apparence humaine devrait fonctionner.

Ton problème c'est que tu as la même apparence pour deux persos différents maintenant.

Code PHP:

      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);
      } 
Un truc comme ça ne marche pas car seule la première condition est testée. Il faut que tu enregistres l'ancienne apparence au moment où tu fais la transformation (avec un SetLocalInt(oPC, nAppearance) que tu récupères ensuite dans la partie Dismount avec un GetLocalInt. Et tu t'en serviras dans l'appel à SetCreatureAppearance(). C'est clair ou tu veux plus de détails ?
ils servent à quoi les 752 - 753-754 ???
Car si j'utilise 751 le pj est transformé en poney
et le 750 en cheval

749 et a partir de 755 sa gèle le jeux

C'est une variable qui stock prvisoirement l'apparence du pj avaent sa transformation en homme, elf nain en homme sur cheval, elf sur cheval et nain sur cheval ??
752=Humain sur Cheval
753=Elfe sur Cheval
754=Nain sur Cheval ? et non perdu! Nain sur Poney
aip c'est pas gagné d'avance. En résumé, ils ont fournis un hak plus que vide. Et ils n'ont même pas laissé la possibilité de compléter leur system par l'amélioration de leur script si j'ai bien compris.
C'est pas mal ce que tu as fait, il faut juste que tu mémorises l'ancienne apparence et que tu la rappelles comme j ai déjà dit. Désolé je n'ai pas trop le temps de t'écrire le script mais tu devrais y arriver tout seul en utilisant SetLocalInt() et GetLocalInt().
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés