Race et démarrage

Répondre
Partager Rechercher
Bonjour
Voila, je viens juste de me mettre a l'éditeur Aurora et au scripting.
En faites j'aurais 2 questions :
Est-il possible de créer une nouvelle race jouable? (genre des drows )
Apres je voudrais que quand quelqu'un creer son perso ce dernier commence au temple de sa race mais que ca ne le fasse que la premiere fois, c'est a dire que les autres fois ou il se connecte il reapparaisse la ou il a été deconnecter (je sais pas trop si je suis clair la lol )
Merci d'avance
voila j'ai essayer de faire un petit script pour le demarrage mais ca a pas l'air de trop marcher . Quand je creais le perso, je commence pas la ou je l'ai defini dnas le script et ma pierre de rappel ne se creer pas. Script que je met dans le OnClientEnter du module

Code PHP:

void main()
{
 
string sRace;
 
string sTagDest// string du tag reconstitué
 
string sItemTag "NW_IT_RECALL";
 
string sItemTemplate "it_recall001";
 
object oPc GetEnteringObject();
 
int iRace GetRacialType(oPc);

 
//on verifie si le PJ n'a pas deja l'item, sinon on le crée
 
if(GetIsObjectValid(GetItemPossessedBy(oPcsItemTag))==FALSE)
    {
        
CreateItemOnObject(sItemTemplateoPc);

        switch (
iRace)
        {
            case 
RACIAL_TYPE_DWARF:    sRace "Dwarf"; break;
            case 
RACIAL_TYPE_ELF:    sRace "Elf"; break;
            case 
RACIAL_TYPE_GNOME:    sRace "Gnome"; break;
            case 
RACIAL_TYPE_HALFELF:    sRace "HalfElf"; break;
            case 
RACIAL_TYPE_HALFLING:    sRace "Halfling"; break;
            case 
RACIAL_TYPE_HALFORC:    sRace "HalfOrc"; break;
            case 
RACIAL_TYPE_HUMAN:    sRace "Human"; break;
            default :             
sRace "Default"; break;
//alors là, on fait un "tag de waypoint" avec la subrace, plutot que la race, et si c pas un objet valid qu'on recupère, ba pn y saute pas ^_^

            
sTagDest "Spawn"+GetSubRace(oPc);
            
object oWP GetObjectByTag(sTagDest);
            if(
GetIsObjectValid(oWP))
            {
                
AssignCommand(oPcActionJumpToObject(oWP));
            }
        }
    }

Voile je met la derniere version que j'ai essayer. Que ce soit avec mes idées ou avec ce que je trouve ca veut vraiment pas marcher
Ton script est drôlement bien foutu pour quelqu'un qui vient de se mettre à Aurora

Pour ce qui est de l'objet qui ne se crée pas, voilà la raison : le ResRef que tu as spécifié n'est pas bon ! Si tu veux connaître le resref d'un objet Bioware, le plus simple est d'en créer un dans ton module et de regarder ses propriétés, au lie de faire "éditer et copier" (qui modifier le resref de manière inattendue ).

Ensuite, pour les waypoints : il y a quelque chose qui m'intrigue. Tu donne à sRace une valeur en fonction de la race du PJ, mais tu ne l'utilise pas après
En utilisant GetSubRace, c'est la valeur que le joueur a rentré dans le champ "Sous-race" que tu utilise. Peut-être que c'est de là que vient le problème ?

Dernière chose : la sécurité sur le ActionJumpToObject n'est pas nécessaire, puisque si le waypoint n'est pas valide la fonction n'aura aucun effet. Et si j'étais toi j'utiliserais JumpToObject tout court, comme ça tu est sûr que le PJ y va sur le champ
EN faite la premiere partie avec les case ca ne vient pas de moi, je l'ai juste repris enfin bon je vais bien finir par trouver
J'ai essayer de faire ca seul en plus simple mais bon marche toujours pas enfin la creation de l'objet marche maintenant au moins
Code PHP:

void main()
{
    
string sItemTag "NW_IT_RECALL";
    
string sItemTemplate "it_recall001";
    
object oPc GetEnteringObject();

    
//on verifie si le PJ n'a pas deja l'item, sinon on le crée
    
if(GetIsObjectValid(GetItemPossessedBy(oPcsItemTag))==FALSE)
    {
        
CreateItemOnObject(sItemTemplateoPc);
        if(
GetRacialType(oPc)==RACIAL_TYPE_HUMAN)
        {
            
object oWP GetObjectByTag("SpawnHuman");
            
AssignCommand(oPc,JumpToObject(oWP));
        }
        if(
GetRacialType(oPc)==RACIAL_TYPE_DWARF)
        {
            
object oWP GetObjectByTag("SpawnDwarf");
            
AssignCommand(oPc,JumpToObject(oWP));
        }
    }

Il me reste un petit probleme par exemple, quand je creais un nain et que je lance le module au depart il me charge bien la bonne zone mais juste apres il charge la mauvaise ou il y a le point de depart definit par aurrora La, je comprend vraiment pas pourquoi il veut pas marcher
D'après ce que j'ai compris de ton premier script ci-dessus, et ce que tu souhaites faire, je te suggère ça:


sTagDest = "Spawn"+GetSubRace(oPc);

tu le remplaces par:

sTagDest = "Spawn"+sRace;

Parce que GetSubRace(oPc) va te retourner une chaine vide, sauf chez ceux qui auront renseigné la sous-race avec les races que tu utilises dans ton script. Par exemple "dwarf"... Et comme apparemment tu fais tourner un module francophone, ça ne risque pas d'arriver.
Effectivement tu ne peux pas directement envoyer le joueur à un WP dès son arrivée dans le module.

La solution que je trouve la plus pratique consiste d'abord à créer une zone d'accueil, de 2x2 (pour que le chargement soit le plus rapide possible). Ensuite, sur l'évènement OnEnter de cette zone, tu peux mettre ton script
Par contre je te conseille un petit DelayCommand sur le JumpToObject, il me semble que sinon ça pose problème.

Sinon, je suis de l'avis de Azmathiel pour ce qui est du tag du waypoint. Evite d'utiliser les sous-races, vu que le joueur est libre de mettre tout et n'importe quoi dans ce champ.
Il existe plusieurs moyens d'ajouter des races, mais c'est un sujet très vaste
Répondre

Connectés sur ce fil

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