Les Voltigeurs d'URU LIVE
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le deal à ne pas rater :
Cartes Pokémon EV6.5 : où trouver le Bundle Lot 6 Boosters Fable ...
Voir le deal

La Mixologie

3 participants

Aller en bas

La Mixologie Empty La Mixologie

Message  V@-Michel Jeu 28 Juin - 18:20

J'ai repris le terme "Mixologie" utilisé par nos amis de la Fun House pour désigner l'effet qui consiste à mixer des morceaux d'âges avec l'âge dans lequel votre avatar se trouve.

Voici les fonctions python que j'utilise :


def Insere(morceauage="",vrai=True): #Insère ou retire un morceau d'âge dans l'âge courant
....if vrai==True:
........PtConsoleNet('Nav.PageInNode '+ morceauage ,1)
....else:
........PtConsoleNet('Nav.PageOutNode '+ morceauage ,1)

def Mettre (objet="",age="", vrai=True): #Placer ou enlever un objet (de type SceneObject) dans l'âge courant
....ob=PtFindSceneobject(objet,age)
....ob.draw.netForce(1)
....ob.draw.enable(vrai)

def CloneAge (age="",pos=True): # C'est la commande que j'utilise de présérence à la commande Insere() ci-dessus car cela me permet de définir à l'avance les morceaux
# que je désire placer pour obtenbir le mixage escompté
#Watchers pub ou Great tree Pub
....if age=='WP' or age == 'GTP':
........Parties = ['GreatTree','Pub','BuiltIn','Textures']
#Relto de Phil
....elif age=='PR' or age == 'Phil' or age == 'Phils Relto':
........Parties = ['PhilsRelto']
#Cleft sous le soleil
....elif age=='CL' or age == 'Cleft' or age == 'Desert' :
........Parties = ['Desert']
#autre age que vous desirez
#...elif age==' ' or age == ' ' or age == ' ' :
#........Parties = ['Prp1','Prp2',etc]
....else:
........Parties = [age]
....for part in Parties:
........if part != "":
..........Insere (part, pos)

Tapez ces fonctions dans un fichier .py (en remplaçant les points en début de lignes par des espaces)

Rendez-vous dans votre quartier privé et essayez ceci : CloneAge ("CL",True)
En une fraction de seconde, votre quartier va se retrouver dans le desert de Cleft, où vous pourrez vous balader et admirer le décor.
Ensuite, retournez à votre Relto. Cleft est toujours présent ! Puis allez dans votre Teledahn : idem. Et ainsi de suite pour tous vos âges privés. Attention ne passez jamais par le Nexus et encore moins dans la ville publique (c'est interdit !).

Si vous désirez enlever ces morceaux d'âge et revenir à la normale , tapez : CloneAge ("CL",False)

Explications :
Vous remarquez que dans la fonction CloneAge(), j'ai indiqué en-dessous de chaque commentaire une liste correspondant aux morceaux d'âge désirés que je veux ajouter à l'âge dans lequel je me trouve.
Où trouver le nom exact des morceaux d'âge ?
Ouvrez le programme PlasmaShop et déroulez le répertoire Ages puis déroulez l'âge désiré, par exemple Cleft.
Là, vous voyez toute une série de fichier avec l'extension .prp et commençant par District_ . C'est les noms entre District_ et .prp qui nous intéresse et que nous utiliserons pour le morphing.
Bien évidemment, il y a plein de fichiers qui ne donneront aucun effet. Mais, pour Cleft, par exemple, les noms qui produiront un effet seront, par exemple, :

Desert : c'est tout le décor extérieur de cleft sous le soleil
Cleft : c'est la faille intérieure
tmnaDesert : c'est cleft sous la pluie
ClftZandiVis : c'est Zandi, debout près de sa caravane.

Attention de bien respecter la casse (Majuscules et minuscules).

Donc, si je voulais cloner l'âge dans lequel je me trouve avec Cleft sous la pluie et Zandi visible, je remplacerais les lignes écrites en rouge dans la fonction CloneAge()

#autre age que vous desirez
#...elif age==' ' or age == ' ' or age == ' ' :
#........Parties = ['Prp1','Prp2',etc]


par :

#Cleft sous la pluie avec Zandi
...elif age=='CP' or age == 'Cleft Pluie' or age == 'Tomahna' or age =='Ce que vous voulez':
........Parties = ['tmnaDesert','ClftZandiVis']

Puis, vous lancerez la fonction : CloneAge ("CP",True) ou CloneAge("Cleft Pluie",True) ou CloneAge("Tomahna",True) ou CloneAge("Ce que vous voulez",True)

Voici quelques exemples:
La Mixologie Kiimag38

Quartier +Cleft

La Mixologie Kiimag39

Quartier + Tomahna + Zandi

La Mixologie Kiimag40

Teledahn + Tomahna + Zandi

La Mixologie Kiimag41

Dereno + Tomahna + Zandi

La Mixologie Kiimag42

Dereno + Tomahna + Zandi



Je vous parlerai de la fonction Mettre() plus tard.
V@-Michel
V@-Michel
Admin
Admin

Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique

Revenir en haut Aller en bas

La Mixologie Empty Re: La Mixologie

Message  V@-Michel Sam 30 Juin - 21:41

Voici d'autres photos avec le morceau prp 'Harbor' de la ville

Kerath au quartier :
La Mixologie Kiimag43

Epave dans le coeur d'Er'cana:
La Mixologie Kiimag44

Et de l'autre côté:
La Mixologie Kiimag45
V@-Michel
V@-Michel
Admin
Admin

Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique

Revenir en haut Aller en bas

La Mixologie Empty Re: La Mixologie

Message  Lyrositeur Mar 3 Juil - 21:30

Si je peux suggérer une combinaison que je trouve particulièrement belle, je vous recommande d'essayer de fusionner Phil's Relto avec Teledahn. Téléportez-vous vers Phil's Relto pour bien voir la véritable beauté d'un tel mélange.
Lyrositeur
Lyrositeur
Escaladeur
Escaladeur

Messages : 96
Date d'inscription : 03/07/2012
Age : 28
Localisation : Montréal, Canada

http://www.lyros.net

Revenir en haut Aller en bas

La Mixologie Empty Re: La Mixologie

Message  V@-Michel Mer 4 Juil - 20:17

Et voici d'autres photos. Relto perso + Phil Relto + Teledahn Havest selon suggestion de Lyrositeur Very Happy

L'avantage c'est que l'on peut partir de notre Relto, utiliser les passerelles pour explorer tout le tour. Vraiment très joli et pratique !

La Mixologie Kiimag46

La Mixologie Kiimag47
V@-Michel
V@-Michel
Admin
Admin

Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique

Revenir en haut Aller en bas

La Mixologie Empty Re: La Mixologie

Message  V@-Michel Jeu 19 Juil - 20:59

La ville sous le ciel bleu : bien plus agréable en cette saison Very Happy

La Mixologie Kiimag65

La Mixologie Kiimag66

La Mixologie Kiimag67

La Mixologie Kiimag68
V@-Michel
V@-Michel
Admin
Admin

Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique

Revenir en haut Aller en bas

La Mixologie Empty Re: La Mixologie

Message  V@-Michel Mar 31 Juil - 15:59

Article d'Annabelle du 31 juillet 2012 déplacé ici pour maintenir la cohérence des sujets Very Happy

Nouveauté:

Voici le plus puissant petit code jamais inventé pour la mixologie:

Code:

def run():
    regions = Plasma.PtFindSceneobjects("Fence") #notice the 's'
    for region in regions:
        print "Disabling & Hiding ", region.getName()
        region.draw.netForce(1)
        region.draw.disable()
        region.physics.netForce(1)
        region.physics.disable()

Gracieuseté de boq qui a modifié le plClient suite à une de mes demandes. Vous ne pouvez pas utiliser ce code avec une version antérieure de plClient. La version que j'ai fournie dernièrement à Michel (la version plClient V3) est la première à prendre avantage dans ce puissant petit code.
(Note de Michel : vous pouvez télécharger PlClientV3 ici : https://voltigeurs.forum-canada.net/download.forum?id=7)

Faites la comparaison avec ce code (soit dit en passant, c'était le code le plus rapide à ce jour que Mirphak m'avait fabriqué gentilment il y a deux mois environ):

Code:

def hideDesertFences():
    age = '' #'Desert'
    n = 1
    while n < 1095:
        objectName = 'PropertyFence' + str(n).zfill(4)
        obj = None
        try:
            obj = PtFindSceneobject(objectName, '') #age)
            if (obj is not None):
                obj.draw.netForce(1)
                obj.draw.enable(0)
                print '{0} is hidden'.format(objectName)
        except NameError:
            print "{0} doesn't exist".format(objectName)
        finally:
            n += 1
    print 'All Desert fences are hidden!'

Dans la fonction run(), il suffit de changer la chaîne de caractères pour n'importe quoi...

Souvent pour avoir un aperçu de ce qui ne peut être enlevé, je lance 6 fois la commande en changement seulement la chaîne de caractères comme ceci: "a", "e", "i", "o", "u" et "y". Avec les voyelles vous prenez tout près de 99% de tous les objets d'un âge en particulier.

J'ai trouvé assez rapidement des objets "non identifiés" à Teledahn de cette façon. Avec plus de 1 500 objets pour le seul prp tldnHarvest, c'est à devenir fou de trouver l'objet qui reste collé au décor Mad
V@-Michel
V@-Michel
Admin
Admin

Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique

Revenir en haut Aller en bas

La Mixologie Empty Re: La Mixologie

Message  V@-Michel Mar 31 Juil - 18:28

Effectivement cette fonction run() est très intéressante pour visualiser les objets sur le terrain:D

Mais, vous me connaissez, partant de là j'ai un peu modifié le code afin de pouvoir non seulement retirer des objets mais aussi les placer. Pourquoi ?
Tout simplement parceque certains objets existants dans une prp n'apparaissent pas toujours à l'écran et il est aussi intéressant de les voir pour les manipuler par la suite.

Voici le code de la fonction run() modifiée en ONOFFSO() (pour On-Off Scene Objects)

Code:

def ONOFFSO(ensemble='a',on = False):
    regions = PtFindSceneobjects(ensemble)#notice the 's'
    for region in regions:
        region.draw.netForce(1)
        region.physics.netForce(1)
        if on == False:
            print "Retirer ", region.getName()
            region.draw.disable()
            region.physics.disable()
        if on == True:
            print "Placer ", region.getName()
            region.draw.enable()
            region.physics.enable()

Le premier paramètre ensemble est le mot qui est recherché parmi tous les objets de la scène danslaquelle se trouve votre avatar. Quand je dis tous les objets c'est vraiment tous les objets de toutes les prp chargées. Ainsi, même les objets du KI qui comportent dans leur nom le mot tapé seront sélectionnés !
Au plus le mot est précis, au plus on restreint le résultat, exactement comme lorsqu'on fait une recherche dans un répertoire en utilisant les *. Mais ici, on n'utilise pas des caractères de substitution.

Le second paramètre est soit True pour voir les objets trouvés ou False pour les enlever.

Remarquez que si vous sortez de l'âge, puis que vous y revenez, tout reprend sa configuration normale comme avant d'avoir utilisé la commande. Il s'agit donc d'une visualisation d'objets et non d'un placement ou enlèvement réel. Ce qui est pratique !

Par exemple, au Relto, on peut voir les piliers bahro en tapant : ONOFFSO('Pole_",True)

La Mixologie Kiimag69

Ou encore enlever tous les livres de la bibliothèque : ONOFFSO('Book',False) :

La Mixologie Kiimag70


J'ai une suggestion pour Boq : Ce serait bien de pouvoir intégrer le nom de l'âge où l'on veut effectuer la sélection des objets comme dans la fonctionPtFindSceneobject(obj,age) Wink


Dernière édition par V@-Michel le Mar 31 Juil - 22:21, édité 1 fois
V@-Michel
V@-Michel
Admin
Admin

Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique

Revenir en haut Aller en bas

La Mixologie Empty Re: La Mixologie

Message  V@-Annabelle Mar 31 Juil - 22:08

Si je l'ai mis en ligne c'est justement pour qu'il soit modifié pour diverses raisons.

Le code original de boq n'était que pour désactiver des objets avec des "simulation interface", c'est-à-dire des objets avec des barrières physiques tels que des cônes, des zones paniques, des barricades, etc.

En fait seule la composante "physics" était affectée. J'y ai ajouté la composante "draw" pour effacer visuellement les objets. Je trouve ça plus simple quand je vois un objet disparaître devant mes yeux.

À noter que mon code (non celui que Michel a dérivé du mien) est permanent. Une fois que vous avez désactivé ou rendu invisible un objet, si vous ne le faites pas réactivé ou ne le rendez pas visible à nouveau, il restera désactivé et/ou invisible.



-------

Concernant les prps chargés et les composantes à l'intérieur d'un "modifier" d'une variable SDL:

Je vous invite à faire le test suivant:

1) tapez sous la console plasma: nav pageinnode canyon (<--- notez mon appel de commande... referrez-vous à la section "Console Plasma" où je vous explique pourquoi je fonctionne ainsi)

2) sans quitter l'âge où vous avez importer le canyon d'Ae'gura, aller le visiter en Fly Mode et notez la présence de plusieurs barricades non présentes habituellement dans la ville "ordinaire", la présence du pont (bon ça vous me direz...il y est toujours Laughing )

3) quitter l'âge et dans le nouvel âge où vous vous êtes liez, retournez voir ce "même" canyon... Qu'y a-t-il de modifier?

Je me suis fait expliqué le truc suivant (par boq): le code du jeu fait en sorte que dans le prp chargé tous les SDL sont tournés à OFF. Ainsi les barricades supplémentaires (les fameux "islmCityBlockerXXVis" où XX va de 01 à 15) sont désactivées. Dans ces "blockers" se trouvent le pont de bois et de cordages et la tente et ses éléments rapprochés (si vous importez "courtyard" à la place). Cela ne se passe pas à la première importation, mais à la deuxième.

Exemple:

Je veux que 2 avatars (une sur client externe et une sur plClient) voient exactement la même chose... il faut que je fasse l'importation du prp (par commande python cette fois) en simultané pour les 2.

Si l'avatar sur client externe se lie après mon importation perso et je lui importe le même prp, elle aura la version modifiée.

Si l'avatar sur client externe change d'âge volontairement ou pas LOL après que lui ai importé un prp, elle aura la version modifiée.

Si après avoir importé aux 2 clients la version originale, je quitte l'âge, celle sur le client externe aura toujours la version originale, moi j'aurai la version modifiée.

Si après le 3e cas, je fais nav pageoutnode canyon + nav pageinnode canyon, j'aurai la version modifiée dès lors que le prp réapparaîtra.

Si après le 3e cas, je fais nav pageoutnode canyon, que je change d'avatar sur le même compte et que j'importe le même prp, j'aurai la version modifiée.


D'où la nécessité de se constituer des "patches". Pour la ville, je me suis fait un patch qui me redonne les trucs du passage du pub, le lake meter, la tente et les objets environnants et finalement le pont.

Ce patch doit être roulé à chaque liaison et si un avatar est sur un client externe, il doit forcément être présent ET NE PAS QUITTER l'âge faute de quoi ça retournera à "SDL turned to OFF state".

À noter qu'en faisant ce patch... je n'ai pas réimporté tous les objets... j'ai laissé tombé les fatiguantes "CamRegion" qui font que la caméra ne cesse de bouger et changer d'angle. Ainsi je profite de la tente en ayant toujours la caméra bien en place derrière mon avatar et ce que je grimpe au sommet ou que j'explore l'intérieur de la tente Very Happy ...mince consolation à ce problème qui me fait suer!
V@-Annabelle
V@-Annabelle
Modérateur
Modérateur

Messages : 340
Date d'inscription : 14/05/2010
Localisation : Canada

Revenir en haut Aller en bas

La Mixologie Empty Re: La Mixologie

Message  V@-Michel Sam 11 Aoû - 18:32

Mixologie du jour : Tsogal (débarassé de ses murs d'enceinte) au Relto

La Mixologie Kiimag15

La Mixologie Kiimag16

La Mixologie Kiimag17

A noter que l'on peut s'y ballader sans crainte car les murs et le sol, bien qu'invisibles sont bien présents.
La fonction ONOFFSO() m'a permis d'enlever rapidement : Les poursuites cameras gênantes, Tous les arrieres plans, les arbres en hauteur, les falaises, les zones Panic et le mur d'enceinte (Cam, Plane, tree,Cliff,Panic,Garden1 tous sur False)
V@-Michel
V@-Michel
Admin
Admin

Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique

Revenir en haut Aller en bas

La Mixologie Empty ONOFFSO modifié

Message  V@-Michel Mer 15 Aoû - 22:01

Je viens de modifier la fonction ONOFFSO() qui permet d'enlever ou placer un groupe de ScèneObjects.

Vous vous sevenez que cette fonction utilise PtFindSceneobjects() (remarquez le "s").
L'ennui avec cette fonction c'est qu' elle touche tous les objets de la scène courante, non seulement les prp chargées en plus de l'âge principal mais aussi le KI, les messages, etc..., bref vraiment tout !
Et cela ne me convenait pas Rolling Eyes.

Alors j'ai modifié cette fonction en donnant la possibilité de sélectrionner l'âge dans lequel on veut enlever ou placer des sceneobjects. Mais, j'ai malgré tout fait en sorte que la fonction fonctionne comme auparavant c'est-à-dire sans distinction des âges atteints par le processus. Voici le code :

Code:

def ONOFFSO(chaine = 'a',Nomage = '',on = False):
    """Placer ou enlever un groupe de Sceneobjets dans la scene courante d'un age donne ou de tous les ages charges"""
   
    Listobj = PtFindSceneobjects(chaine)                # Remarquez le 's'
    trouve = True
    for SCobj in Listobj:
        if Nomage != '':
            trouve = False
            try:
                NSCobj=SCobj.getName()
                PtFindSceneobject(NSCobj,Nomage)
                trouve = True
            except NameError:
                print "L'objet %s n'est pas dans cet age" % NSCobj
        if trouve == True:
            SCobj.draw.netForce(1)
            SCobj.physics.netForce(1)
            if on == False:
                print "Retirer ", SCobj.getName()
                SCobj.draw.disable()
                SCobj.physics.disable()
            if on == True:
                print "Placer ", SCobj.getName()
                SCobj.draw.enable()
                SCobj.physics.enable()
                   

Explications :

Je suis dans mon Relto et je charge la prp tsoGarden d'Eder Tsogal.
Ensuite je désire enlever les murs qui entourent ce décor, les arbres du dessus... et en outre j'aimerais voir le beau ciel bleu d'Eder Tsogal, donc enlever celui du Relto, ainsi que le brouillard, les poursuites cameras...

Pour enlever les objets d'Eder Tsogal je tape :

ONOFFSO('Plane','EderTsogal',False)
De cette manière j'enlève tous les objets d'Eder Tsogal qui contiennent le mot 'Plane' pour enlever tous les décors de fond d'âge. Mais les objets des autres âges qui comportent de mot 'Plane' ne seront pas affectés !

De-même je tape :
ONOFFSO('tree','EderTsogal',False)
ONOFFSO('Garden1','EderTsogal',False)

Pour nettoyer le Relto je tape :
ONOFFSO('Fog','Personal',False) pour enlever les différents brouillards du Relto
ONOFFSO('Sky','Personal',False) pour enlever le ciel du Relto et voir le magnifique ciel bleu de Tsogal !

Enfin, je tape :
ONOFFSO('Cam',"",False) pour supprimer toutes les caméras aussi bien du relto que de Tsogal . Remarquez que je place des guillements à la place du nom de l'âge pour dire à la fonction qu' elle doit enlever toutes les Cam de toutes les prp chragées (comme avec la fonction non modifiée).
J'ai aussi enlevé les zones de panique du Relto et de Tsogal car Tsogal est un peu en contre-bas du relto et donc il a risque de passer dans la zone panique quand on y descend :
ONOFFSO('Panic',"",False)

Dernière précision : si je m'aperçois qu'en lançant cette commande, l'effet escompté ne me convient pas, il me suffit de retaper la même commande mais en tapant True, au lieu de False comme 3ième paramètre afin de replacer ce que j'avais enlevé.
Par exemple si je tape : ONOFFSO('Cam','Personal',True) , les poursuites caméra au Relto vont être rétablies mais elles resteront inactives dans Eder Tsogal. Si j'avais voulu les réactiver partout, j'aurais tapé : ONOFFSO('Cam',"",True)

En résumé :
Si vous voulez supprimer des groupes d'objets utilisez False comme troisième paramètre (c'est la valeur par défaut)
Si vous voulez les placer tapez True à la place.
Si vous voulez que l'effet se produise partout, tapez simplement "" comme second paramètre (c'est la valeur par défaut)
Si vous souhaitez retirer ou placer un seul objet particulier, tapez le nom complet comme premier paramètre. Attention, ce premier paramètre est "case sensitive" c'est-à-dire qu'il tient compte des majuscules et minuscules.
exemple : ONOFFSO("Fog") va supprimer partout tous les objets qui contiennent le mot "Fog" dans leurs noms

Je pense que ceci donnera encore plus de souplesse à cette fonction très pratique !

Voici le résultat :

La Mixologie Kiimag22
V@-Michel
V@-Michel
Admin
Admin

Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique

Revenir en haut Aller en bas

La Mixologie Empty Re: La Mixologie

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


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