TheYoshiX
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -26%
Bosch BBS8214 Aspirateur Balai Multifonction sans fil ...
Voir le deal
249.99 €

[GUIDE] Housing Script (script de logement) - bases et détails des fonctions utiles (niveau : expert)

Aller en bas

[GUIDE] Housing Script (script de logement) - bases et détails des fonctions utiles (niveau : expert) Empty [GUIDE] Housing Script (script de logement) - bases et détails des fonctions utiles (niveau : expert)

Message par Admin Lun 17 Fév - 18:09

Guide : Script Logement

Pour une raison stupide, il n'y a pas de véritables guides pour programmer des scripts de "housing" sur AION,  ni en français ni en anglais... Donc, je vais en faire un. Cela est traduit directement à partir des sites officiels coréens et russes Aion. Le site coréen m'a donné les parties importantes du code, mais les Russes sont sont très créatifs et sont excellent pour les manipuler. Je vais essayer d'expliquer ça vraiment bien, de sorte que même les blondes peuvent comprendre comment programmer cette merde Very Happy

Pour commencer, allez dans votre studio, ou votre maison, ou que ce soit, et parler à votre maître d'hôtel. Cliquez sur "script edit" et une nouvelle fenêtre s'ouvrira. Ici, vous pouvez ajouter de nouveaux scripts, et modifier ceux existants à votre guise.

Désolé c'est une image piquée sur le site Web russe. Peu importe. Vous aurez la même chose in-game (en jeu).

[GUIDE] Housing Script (script de logement) - bases et détails des fonctions utiles (niveau : expert) 0110

1 . C'est la ligne de vos scripts de logements existants. Cliquez sur chaque bouton de script pour le modifier.
2 . Cliquez sur le + pour ajouter un nouveau script.
3 . Mettez le nom de votre script ici.
4 . Mettez la description de votre script ici.
5 . Ce sont des boutons qui vous permettent de marquer des meubles. Vous faites un clic droit, cliquez sur "sortie de sélection" et cliquez sur un meuble. Ensuite, vous pouvez faire danser ou briller vos meubles, ou quelque chose d'autre, dans votre script réelle.
6 . Ceci est le bouton Importer. Cliquez sur celui-ci et coller un code de script compilé spécifique dedans, afin d'obtenir un nouveau script complet. Je serai loin de donner beaucoup de ces codes, dans ce guide !
7 . Ceci est le bouton Agrandir. Cliquez sur les petites flèches pour agrandir la fenêtre et commencer à coder votre script !

Partie 1 : Syntaxe et bases

Les scripts de logement ont un nombre maximum de 4599 caractères, y compris les espaces, donc quand vous en codez un, faites le avec attention, afin de ne pas perdre d'espace. Chaque commande de votre script doit se terminer par un symbole ; . Pour commenter quelque chose (ce qui signifie transformer une ligne dans le code en une sorte de note pour soi), mettez juste -- en face de la ligne. Ça deviendra grisé et vous pourrez l'utiliser pour écrire ce que vous voulez. Pour faire une variable String (ce qui signifie que c'est une chaîne de lettres ou une phrase ou quelques mots ou quelque chose), vous aurez besoin de mettre les mots entre guillemets , "Comme ça".

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function OnInit ( ) est ce qui décide les réglages initiaux. Vous devez toujours en avoir dans votre script. Quand vous faites un nouveau script, ça vous le fait automatiquement. Cette fonction est ici le point de départ ; c'est là que l'ordinateur commence à lire toutes vos commandes.

function OnInit()
 --Your code goes here.
end


A partir de maintenant, je vais prendre l'extrait de code ci-dessus comme modèle initial. Alors je serai capable de dire des choses comme "commencer par le modèle initial et ajouter soit ci, soit ça à l'intérieur de celui-ci". De cette façon , je peux expliquer ce que j'ai mis dans le code, où je l'ai mis, pourquoi je l'ai mis là, et ce qu'il fait Wink

Partie 2 : différentes façons de faire bouger les choses dans une maison

Avant que quelque chose d'intéressant se passe dans votre maison, comme votre canapé qui commence à sauter de haut en bas et ou bien à briller, ou la musique qui commence à jouer, vous devez comprendre ce qui se passe pour y arriver. Par exemple, votre canapé pourrait commencer à rebondir dès que quelqu'un vient dans votre maison. Ou peut-être il commence à rebondir seulement lorsque vous tapez le mot "rebond" . Mais de toute façon, voici la liste de ces déclencheurs. Ils sont appelés "les Fonctions d'Initialisation".

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

fonction OnUserEntered (desc) fait que quelque chose se passe lorsque vous approchez de votre majordome. Voici un exemple :

function OnInit()
H.SetSensor(2, 3);
end

function OnUserEntered(desc)
H.PlaySound(1, " x[1]x");
H.Say(1, desc);
end


Voici comment le code ci-dessus a été fait et ce qu'il signifie. Commencez avec le modèle initial, et ajouter H.SetSensor(2 , 3); à l'intérieur de la fonction OnInit. Le premier nombre entre parenthèses, ici, un 2, est la distance à laquelle vous devez être de votre maître d'hôtel pour que des choses se produisent. Le deuxième chiffre entre parenthèses, ici un 3, est la distance à laquelle vous devez être de votre maître d'hôtel, avant de pouvoir l'approcher à nouveau et que quelque chose se produise à nouveau.

Ensuite, vous devez mettre la fonction OnUserEntered(desc) et end, après tout ce que vous avez ajouté avant. Cette fonction s'active lorsque vous remplissez la condition d'approcher le maître d'hôtel. Le desc est une variable qui représente le nom d'un personnage.

Ensuite, à l'intérieur de la fonction OnUserEntered, mettez les commandes de ce que vous voulez qui arrive. Ici, il y a une commande pour faire un peu de bruit, et une autre commande, pour dire le nom d'un personnage. (Ne vous inquiétez pas si les commandes PlaySound et Say semblent confus pour l'instant. Elles sont expliquées en détail plus tard).

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function OnUserSay(str) fait que quelque chose se passe quand un personnage dit quelque chose. Voici un exemple :


function OnInit()
end

function OnUserSay(str)
   H.PlaySound(1, " x[1]x");
   H.AlertAll(1, str);
end


Voici comment le code ci-dessus a été fait et ce que cela signifie. Commencez avec le modèle initial, et ajouter la fonction function OnUserSay(str) et end juste après. La str est la chaîne de caractères de ce que le joueur dit dans la maison.

Ensuite, à l'intérieur de la fonction OnUserSay est ce que vous voulez qui arrive. Les deux commandes à l'intérieur de cette fonction feront un peu de bruit, et feront répéter au majordome ce que vous avez dit. (Ne vous inquiétez pas si ces commandes PlaySound et AlertAll semblent confus pour l'instant. Elles sont sont expliquées en détail plus tard).

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function OnUserSay(str, username) fait que quelque chose se passe quand un personnage dit quelque chose. Elle peut également utiliser le nom de la personne qui parle à l'intérieur de la maison. Voici un exemple :

function OnInit()
end

function OnUserSay(str, username)
  H.Say(1, username..": "..str);
  H.PlaySound(0, "r[1]r");
end


Voici comment le code ci-dessus a été fait et ce que cela signifie. Commencez avec le modèle initial et ajouter la fonction function OnUserSay(str, username) et end juste après. La str détient l'information de ce que quelqu'un a dit dans la maison. Le username dispose de l'information à propos de qui parle dans la maison.

Ensuite, à l'intérieur de la fonction OnUserSay, vous pouvez mettre des commandes sur ce que vous voulez qu'il se passe quand quelqu'un parle à l'intérieur de la maison. Dans ce cas, le maître d'hôtel répète ce que tout le monde dit, et dit le nom de tous ceux qui le dit. (Ne vous inquiétez pas si ces commandes PlaySound et Say semblent confus pour l'instant. Elles sont sont expliquées en détail plus tard).

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function OnUserEmotion(motion) fait que quelque chose se passe quand un personnage fait un emote. Voici un exemple.

function OnInit()
end

function OnUserEmotion(motion)
   H.PlaySound(1, "rx[1]xr");
   H.StartAnimation(0, 1, motion);
end


Voici comment le code ci-dessus a été fait et ce que cela signifie. Commencez avec le modèle initial et ajouter la fonction function OnUserEmotion(motion) et end juste après. La motion a l'information du mouvement qui a été fait à l'intérieur de la maison.

Ensuite, à l'intérieur de la fonction OnUserEmotion, vous pouvez mettre des commandes sur ce que vous voulez faire quand quelqu'un fait un emote à l'intérieur de la maison. Dans ce cas, le maître d'hôtel répète l'emote qui a été fait. (Ne vous inquiétez pas si ces commandes PlaySound et StartAnimation semblent confus pour l'instant. Elles sont expliquées en détail plus tard).

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function OnMenu(menuNum) crée de nouvelles options de menu et fait que quelque chose se passe lorsque vous faites un clique droit sur ​​votre majordome et que sélectionnez une de ces options de menu. Voici un exemple :

function OnInit()
 H.RegisterMenu("Melody 1",1);
 H.RegisterMenu("Melody 2",2);
end

function OnMenu(menuNum)  
 if  (menuNum == 1)  then
   Melody1()
 elseif  (menuNum == 2 )  then
   Melody2()
 end
end

function Melody1()
 H.SetInstrument(1, H.Instrument.piano);
 H.PlaySound(1,  "o6gabo7cdef#g");
end

function Melody2()
 H.SetInstrument(2, H.Instrument.aguitar);
 H.PlaySound(2, "o4ef#gabo5cde");
end


Voici comment le code ci-dessus a été fait et ce que cela signifie. Commencez avec le modèle initial et ajouter H.RegisterMenu("Melody 1",1); à l'intérieur. "Melody 1" est le nom qui va être affiché dans le menu. 1 est le numéro de l'ordre dans lequel il sera affiché dans le menu.

Vous pouvez ajouter autant de boutons de menu que vous le souhaitez. Il suffit d'ajouter plus de commandes H.RegisterMenu("Melody 1",1);. Mais n'oubliez pas de changer "Melody 1" pour le nom de votre prochain bouton de menu, et le 1 qui vient après, à l'ordre approprié des boutons dans le menu : 1, 2, 3, 4, 5, et ainsi de suite , selon le nombre de boutons que vous voulez avoir.

Ensuite, après votre code à ce moment là, vous devez ajouter la fonction function OnMenu(menuNum) et end. Et à l'intérieur de cette fonction OnMenu, vous allez créer des petites options pour faire le lien avec d'autres fonctions et faire des choses à l'intérieur. Donc, si vous n'avez que deux boutons, vous écrirez if (menuNum == 1) then Melody1() et après cela, ajoutez elseif (menuNum == 2 ) then Melody2(). Ne pas oublier d'ajouter un end et à fermer la séquence if. Le Melody1() et Melody2() renvoient aux prochaines fonctions que vous écrirez, une fonction par bouton. Vous pouvez modifier les noms et nommer vos fonctions comme vous le voulez. Il faut juste être sûr de garder le () à la fin de ceux-ci.

Si vous avez plus de deux boutons, vous aurez besoin d'ajouter plus d'options. Pour ce faire, il suffit d'ajouter une autre ligne elseif. Par exemple, elseif  (menuNum == 3 )  thenMelody3(). N'oubliez pas de changer la MenuNum pour correspondre à l'ordre de la touche que vous ajoutez, dans le menu.

Ce qui vient après sont des fonctions différentes pour chaque bouton. Pour chaque bouton que vous avez, vous devez écrire la fonction function Melody1() et end. N'oubliez pas de changer Melody1() pour correspondre au nom de la fonction que vous avez décidé tout à l'heure, pour chaque bouton. Et à l'intérieur de cette fonction, vous écrivez les commandes que de ce que vous souhaitez qui arrive. Dans l'exemple ci-dessus, quelques notes de musique sont jouées. (Ne vous inquiétez pas si ces commandes PlaySound et SetInstrument semblent confus pour l'instant. Elles sont expliquées en détail plus tard).

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function OnPlayerJumpEnd(outletIndex) fait que quelque chose se produit après que quelqu'un saute au-dessus d'un élément de mobilier dans la maison. Voici un exemple :

function OnInit()
  H.SetOutletCount(3);
end

function OnPlayerJumpEnd(outletIndex)
   H.PlaySound(1, "rx[1]xr");
   H.AlertAll(1, outletIndex);
   H.Glow(outletIndex, 1, 1, 0, 0, 255);
end


Voici comment le code ci-dessus a été fait et ce que cela signifie. Commencez avec le modèle initial et ajouter H.SetOutletCount(3); à l'intérieur de la fonction OnInit. Vous pouvez modifier le 3 en un nombre quelconque de 1 à 16. C'est le nombre de meubles que vous allez utiliser.

Ensuite, ajouter la fonction function OnPlayerJumpEnd(outletIndex) et end. A l'intérieur de cette fonction OnPlayerJumpEnd, vous pouvez mettre les commandes que de ce que vous souhaitez qui arrive quand vous sautez au-dessus des meubles que vous avez marqués. outletIndex est le numéro de l'objet, de 1 à 16, ou bien le nombre que vous avez. Dans le cas de l'exemple ci-dessus, les commandes font qu'une alerte s'affiche sur l'écran indiquant le numéro de l'objet en question où vous avez sauté desses et de le faire briller.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function OnSoundPlay(channel, note, len, label) fait que quelque chose se produit en réaction à une note de musique jouée par le même script. Voici un exemple :

function OnInit()
   H.SetOutletCount(7);
   H.EnableSoundCallback(1);
end

function PlayNow()
H.PlaySound(0, "r[1]r[2]r[3]r[4]");
H.SetInstrument(1,H.Instrument.piano);
H.SetInstrument(2,H.Instrument.accordion);
H.SetInstrument(3,H.Instrument.accordion);
H.SetInstrument(4,H.Instrument.abass);
H.PlaySound(1,"t130rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrrrrrrrrro5bo6c#d____c#d__f#__c# ______");
H.PlaySound(2,"t130o5f#__o5b______a__a__f#ed__do4gbo5de______edc#de______ f#______o5b______a__a__f#ed__do4bo5d ee____de__c#__o4b______");
H.PlaySound(3,"t130o4f#__o5f#______d__d__o4b______brrrb______brrrb______a ______o5f#______d__d__o4b______rrr rb____rb__a__f#______");
H.PlaySound(4,"t130rro3bo4f#bo5c#d__f#__o3go4dgab__o5d__o3ebo4ef#g__b__f# o5c#__c#o4f#o5c#__o5c#o3bo4f#bo5c#d__ f#__o3go4dgab__o5d__o3ebo4ef# g__b__o3bo4f#bo5c#d__f#__o3bo4f#bo5c#");
end

function OnUserSay(str)
 if (string.find(str, "laputa")) then
    PlayNow()
 end
end

function OnSoundPlay(channel, note, len, label)
 if (note=="c") then
     n=1;
 elseif (note=="d") then
     n=2;
 elseif (note=="e") then
     n=3;
 elseif (note=="f") then
     n=4;
 elseif (note=="g") then
     n=5;
 elseif (note=="a") then
     n=6;
 elseif (note=="b") then
     n=7;
 else
     n=0;
 end
 H.GlowNow(n, len, 0, 0, 255);
end


Voici comment le code ci-dessus a été fait et ce que cela signifie. Commencez avec le modèle initial et ajouter H.SetOutletCount(7); et H.EnableSoundCallback(1); à l'intérieur de la fonction OnInit. Vous pouvez changer le 7 par n'importe quel nombre allant de 1 à 16, mais 7 est un bon nombre pour une macro réponse-musique car il ya sept notes de musique.

Ensuite, ajouter la fonction function PlayNow() et end. A l'intérieur de cette fonction, vous devez faire en sorte que la musique se joue. Pour savoir comment cela se fait, ce sera expliqué plus tard.

Ensuite, ajouter la fonction function OnUserSay(str) et end. Vous pouvez utiliser une autre fonction d'initialisation à la place de celle-ci, bien sûr, mais dans mon exemple, j'ai ajouté if (string.find(str, "laputa")) then PlayNow() end dans une fonction de OnUserSay, de sorte que quand un joueur écris "laputa" à l'intérieur de la maison, la fonction PlayNow dit de commencer l'exécution de ses commandes, dans ce cas, la lecture du Laputa Ending Theme.

Mais voici la partie qui relie la musique aux lumières, la fonction finale de OnSoundPlay est ajoutée, et si vous lisez l'exemple, en fonction de la note de musique qui est jouée, un meuble différent brille. Une fois de plus, le système de commande de brillance peut sembler confus. Ne vous inquiétez pas. La section suivante explique comment faire briller les meubles plus en détail.

Partie 3 : faire briller vos meubles "Glow Effect"

Je vais vous expliquer cela en commençant avec un simple script, puis en le rendant de plus en plus complexe, avec des explications. Ce qui suit est le code d'un effet de brillance très simple d'un objet :

function OnInit()
 H.SetOutletCount(3);
end

function OnUserSay(str)
  H.PlaySound(0, "rrrrrrrrrrrr");
  if (string.find(str, "a")) then
    H.GlowNow(1, 10, 0, 0, 255);
    H.GlowNow(2, 10, 0, 0, 255);
    H.GlowNow(3, 10, 0, 0, 255);
 end
end


Tout d'abord, H.SetOutletCount(3); définit le nombre d'objets. Vous pouvez modifier le 3 à un nombre quelconque de 1 à 16, selon le nombre d'articles que vous voulez faire briller .

Ensuite, H.PlaySound(0, "rrrrrrrrrrrr"); joue un son de silence, lorsqu'il est activé. Le r signifie « repos », qui est d'environ une demi-seconde de silence. La raison pour laquelle vous avez besoin de cela, est de régler un timer pour que quelque chose se mette à briller .

Ensuite, if (string.find(str, "a")) then encapsule un peu plus de commandes et se termine par un end. Cette commande attend jusqu'à ce que quelqu'un dans la maison, dit " a ". Puis elle va exécuter les commandes d'effet de brillance qui ont été encapsulés. Donc, si je suis dans la maison avec cette macro, et je dis « cake » ou « rawr », cette commande va voir la lettre "a" qui est dit, et les meubles vont s'allumer un peu.

Ensuite, les trois commandes qui ressemblent à H.GlowNow(1, 10, 0, 0, 255); sont ce qui permettent aux meubles de briller. Le 1 est l'objet choisi. Ne pas oublier de mettre des ordres différents pour chacun des trois GLowNow ! Le 10 correspond au de temps que vous voulez pour que le meuble se mette à briller. Cepandant, il ya un hic à cela. La nombre de fois que quelque chose brille doit être égale ou inférieure à la quantité de temps qu'il faut pour jouer le son de silence. Ainsi, par exemple , si votre son de silence dure 5 secondes, mais vous avez fait que le meuble brille pendant 10 secondes, cela ne fonctionnera pas. Il s'allumera seulement pendant 5 secondes. Donc, pour résoudre ce problème, il faudrait augmenter la quantité de r dans la commande du son de silence. Les trois derniers numéros 0, 0, 255 décrivent la couleur de la lueur. Cubes, peintures et tapis peuvent briller de n'importe quelle couleur. Tout le reste sera juste de lueur blanche, peu importe l'objet. Ces trois chiffres sont les valeurs Rouge-Vert-Bleu. Vous pouvez consulter en ligne plus de couleurs, mais voici quelques exemples de base :

[GUIDE] Housing Script (script de logement) - bases et détails des fonctions utiles (niveau : expert) 0210

Réglage du marquage des objets :

Dans la partie du code, écrivez

function OnInit()
H.SetOutletCount( 6 );
end


Le 6 est le nombre du marquage de l'objet (ici ce sont des meubles marqués). Le maximum est de 16.
Vous pouvez faire un clic droit sur les numéros de marquage et cliquez sur "Vérifier le tag" pour vérifier ce que celui que vous avez marqué, si vous oubliez.

[GUIDE] Housing Script (script de logement) - bases et détails des fonctions utiles (niveau : expert) 0310

Voilà, j'espère que ce guide peut vous aider à comprendre un peu mieux sur le fonctionnement des script de housing.

P.S: Un lien très intéressant du forum NA qui répertorie quelques musiques créées pour votre logement AION que vous pouvez utiliser pour vous : ★☆ Free Music Scripts! ☆★ (and other scripts too!)

P.P.S: Si vous comprenez le Russe ou si vous voulez vous amusez à traduire un guide ultra bien fait et complet, voici un lien utile : GUIDE HOUSING COMPLET RUSSE
Admin
Admin
Admin

Messages : 26
Date d'inscription : 16/12/2013
Age : 35
Localisation : Aix-en-Provence / Marseille

https://theyoshix.forumgaming.fr

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum