Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
Troll-Brain Ri1kamoua
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
Posté le: 06/07/08 16:50 Sujet du message: [vJass] CastColorString |
|
|
Nom de la fonction : CastColorString
Créateur : Troll-Brain mais statistiquement le 18216 ème.
Fonctions requises : Aucune
Code : Jass: | library ColorString
globals
// definissez ici les couleurs en héxadécimal sur 8 caractères pour chaque type de string.
// les 2 premiers gèrent la transparence, les 2 suivants gèrent la couleur rouge,
// les 2 suivants gèrent la couleur verte, les 2 derniers gèrent la couleur bleu.
// Je pense que les noms des constantes sont assez clairs, non ? :p, bien sûr libre à vous d'en rajouter
// et de modifer la fonction en conséquence
constant string MINUSCULE = "FF0000FF"
constant string MAJUSCULE = "FF00FF00"
constant string CHIFFRE = "FFFF0000"
constant string AUTRE = "FFFFFF00"
endglobals
function CastColorString takes string source returns string
local integer i= StringLength(source)
local string dest= null
local string min
local string maj
local string s
loop
exitwhen i== 0
set i=i-1
set s= SubString(source,i,i+1)
set min= StringCase(s,false)
set maj= StringCase(s,true)
if s== min and s!= maj then
set dest = "|c"+MINUSCULE+s+"|r" + dest
elseif s== maj and s!= min then
set dest = "|c"+MAJUSCULE+s+"|r" + dest
elseif s== "0" or S2I(s) != 0 then
set dest = "|c"+CHIFFRE+s+"|r" + dest
else
set dest = "|c"+AUTRE+s+"|r" + dest
endif
endloop
return dest
endfunction
endlibrary |
Utilisation : La flemme :p
Copyright : Libre
Remarques : J'y vois pas une grande utilité à part pour un save and load...
Cela nécessite jasshelper et vous pouvez copier/coller ces lignes n'importe où dans l'éditeur.
Si vous utilisez l'éditeur officiel il faut déclarer dans l'éditeur de variable 4 chaines nommées MINUSCULE,MAJUSCULE,AUTRE,CHIFFRE .
Bien sûr il vous faudra définir la valeur de ces variables avant d'utiliser la fonction.
Ensuite copier/coller les lignes de code ci dessous dans la fenêtre code script personnalisé (nécessite le patch Frozen Throne).
Ou alors créez un trigger vide , convertissez le en script personnalisé (menu édition), ne laissez rien du trigger.
Puis copiez collez en dessous de ces lignes la fonction. _________________
Dernière édition par Troll-Brain le 05/12/11 18:34; édité 6 fois |
|
Revenir en haut |
|
|
Ayane Bot administrateur
Inscrit le: 17 Sep 2007 Messages: 2009 Sujets: 49
Médailles: 2 (En savoir plus...)
|
Posté le: 06/07/08 17:08 Sujet du message: |
|
|
Tu pourrais nommer la fonction CastString.
Sinon le if length== 0 then return null ne sert pas.
Tu pourrais aussi te passer de la variable i et te servir exclusivement de length en effectuant ce changement:
Jass: | set dest = "|c"+MINUSCULE+s+"|r" + dest |
_________________
|
|
Revenir en haut |
|
|
Troll-Brain Ri1kamoua
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
Posté le: 06/07/08 17:40 Sujet du message: |
|
|
Ayane a écrit: | Tu pourrais nommer la fonction CastString.
Sinon le if length== 0 then return null ne sert pas.
Tu pourrais aussi te passer de la variable i et te servir exclusivement de length en effectuant ce changement:
Jass: | set dest = "|c"+MINUSCULE+s+"|r" + dest |
|
Amen pour le nom avec le mot color en plus.
Mais je me demande quel est le meilleur choix dans l'ordre des trois mots qui définissent le nom de la fonction.
CastStringColor ?
A vrai dire au départ j'avais l'intention de mettre un debug, puis je me suis rendu compte que c'était assez inutile, j'ai oublié de remove le if.
Bien joué pour le string je me doutais que l'ordre de l'addition avait une importance mais je n'avais jamais essayé. _________________
|
|
Revenir en haut |
|
|
Magus Membre a fort taux de post
Inscrit le: 13 Oct 2007 Messages: 994 Sujets: 25 Spécialité en worldedit: Codeur
|
Posté le: 07/07/08 11:55 Sujet du message: |
|
|
Au fait, pourquoi avoir utilisé des constantes ?
Ce ne serait pas mieux de mettre des paramètres directement a la fonction ? Avec la possibilité au pire de spécifier une chaine vide si on ne veut pas appliquer de couleur à un certain type de caractère. _________________
- La théorie c'est quand rien ne fonctionne mais tout le monde sait pourquoi.
- La pratique c'est quand tout fonctionne mais personne ne sait pourquoi.
- Chez moi la théorie et la pratique sont réunies, rien ne fonctionne et personne ne sait pourquoi. |
|
Revenir en haut |
|
|
Troll-Brain Ri1kamoua
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
Posté le: 07/07/08 18:07 Sujet du message: |
|
|
[Master] a écrit: | Au fait, pourquoi avoir utilisé des constantes ?
Ce ne serait pas mieux de mettre des paramètres directement a la fonction ? Avec la possibilité au pire de spécifier une chaine vide si on ne veut pas appliquer de couleur à un certain type de caractère. |
Bah à vrai dire je suis parti dans l'optique d'un save and load type rpg.
Alors à priori une seule configuration de couleurs, d'où les constants.
J'évite de multiplier le nombre d'arguments inutiles sinon ca devient vite chiant à utiliser.
J'ai beau réfléchir je ne vois pas un ex d'utilisation qui nécessiterait des paramétrages de couleurs différents.
Tu en as un en tête ? _________________
|
|
Revenir en haut |
|
|
Magus Membre a fort taux de post
Inscrit le: 13 Oct 2007 Messages: 994 Sujets: 25 Spécialité en worldedit: Codeur
|
|
Revenir en haut |
|
|
Troll-Brain Ri1kamoua
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
|
Revenir en haut |
|
|
Magus Membre a fort taux de post
Inscrit le: 13 Oct 2007 Messages: 994 Sujets: 25 Spécialité en worldedit: Codeur
|
Posté le: 07/07/08 19:27 Sujet du message: |
|
|
Ahahah pour le if laisse tomber c'est moi qui délirait complètement, j'étais distrait par quelqu'un en même temps :/
Sinon je n'ai pour l'instant pas fais plus modulaire, sans doute par la suite mais pour l'instant je l'utilise comme telle. _________________
- La théorie c'est quand rien ne fonctionne mais tout le monde sait pourquoi.
- La pratique c'est quand tout fonctionne mais personne ne sait pourquoi.
- Chez moi la théorie et la pratique sont réunies, rien ne fonctionne et personne ne sait pourquoi. |
|
Revenir en haut |
|
|
Troll-Brain Ri1kamoua
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
Posté le: 07/07/08 19:48 Sujet du message: |
|
|
[Master] a écrit: | Ahahah pour le if laisse tomber c'est moi qui délirait complètement, j'étais distrait par quelqu'un en même temps :/
Sinon je n'ai pour l'instant pas fais plus modulaire, sans doute par la suite mais pour l'instant je l'utilise comme telle. |
En fait j'ai trouvé une optimisation, minime certes, et uniquement pour le 0
"amélioration" :
if originel :
_________________
|
|
Revenir en haut |
|
|
Anthelme Anomalie floodiforme
Inscrit le: 28 Aoû 2007 Messages: 1857 Sujets: 93
|
Posté le: 24/08/08 23:46 Sujet du message: |
|
|
Help sa marche pas chez moi le texte reste blanc même après le lancement du script. Je ne sais pas si le script est vraiment lancer
Le script:
Déclaration des variables couleurs:
Gui: | Trigger: -------- Couleur -------- Set MAJUSCULE = 00FF0101 Set MINUSCULE = 0021C000 Set CHIFFRE = 000201FF Set AUTRE = 007F0080 |
Fin de mon code de save:
Gui: | Trigger: Custom script: call CastColorString( udg_Code_Save[GetConvertedPlayerId(GetTriggerPlayer())] ) Partie - Display to (Player group((Triggering player))) for 60.00 seconds the text: (Code : + Code_Save[(Player number of (Triggering player))]) |
_________________
Ancien The.gosu |
|
Revenir en haut |
|
|
Troll-Brain Ri1kamoua
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
|
Revenir en haut |
|
|
Anthelme Anomalie floodiforme
Inscrit le: 28 Aoû 2007 Messages: 1857 Sujets: 93
|
Posté le: 25/08/08 11:46 Sujet du message: |
|
|
Merci Troll _________________
Ancien The.gosu |
|
Revenir en haut |
|
|
Anthelme Anomalie floodiforme
Inscrit le: 28 Aoû 2007 Messages: 1857 Sujets: 93
|
Posté le: 26/08/08 16:50 Sujet du message: |
|
|
Up dit moi j'ai une petite question est ce que sa serait possible de compter le nombre de majuscule minuscule ... avec le script actuel en rajoutant des variable de type entier qui s'incrémente a la fin de chaque ligne d script ?
re Up me suis débrouiller comme un grand c'est bon
Le script me permet d'avoir le nombre de caractère et donc d'ajouter une clé a la fin de mon code ( je peut aussi intégrer le nombre de caractère du pseudo du joueur ) _________________
Ancien The.gosu |
|
Revenir en haut |
|
|
|