Aller au contenu
kumakuma215

Créer un bloc customisé sans variables! (RandomSK)

Messages recommandés

Bonjour à tous! J'ai remarqué que beaucoup de personnes voulaient créer des blocs customisés à partir de variables qui stockent les coordonnées du block. Simple, mais pas très optimisé (Imagine on te met plus de 1000 blocks customs, pas très opti :confused:)

 

Du coup, en faisant des recherches, j'ai vu une très belle expression :

Les metadatas values :o.

 

(Utilisation de l'expression : "metadata [value] %

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.
% of %

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.
/

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.
/

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.
/

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.
%" )

 

Donc, voici le code (après j'explique ligne par ligne)

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

C'est évident :p

Là, on rentre dans les metadatas :

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Là, c'est plus "compliqué":

Chaque block/entité/joueur/monde a une metadata value "Type". On va donc modifier cette metadata value pour reconnaitre le block/entité/joueur/monde parmit d'autres ^^. Donc la metadata value "Type" du block de faux bloc de diamant qu'on a mit est "FakeDiamondBlock"

 

Ensuite:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Encore évident.

Et puis, le truc intéressant :

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

On vérifie la metadata value "Type" du bloc cassé. Si cette metadata value set "FakeDiamondBlock", alors on passe à l'effet qu'on a mit (Dans mon code, c'est qu'on drop de la terre lol.). Les metadatas values servent donc à différencier un monde/block/entité/joueur des autres.

 

Petit exercice :

Essayez de faire un skript pour qu'un zombie spécial drop automatiquement 1 de diamant. (Vous pouvez clear les drops ou non.)

[spoiler=Indice]

METADATA VALUE

 

 

[spoiler=Indice 2]

Il faudrait d'abord pouvoir faire spawn le zombie. spawn a zombie par exemple c:. Ou on peut faire autrement. Il faut juste donner une metadata à un zombie lol.

 

 

[spoiler=Soluce]

[spoiler=T'es sur?"]

[spoiler=T'es sur?"]

[spoiler=T'es sur?"]

[spoiler=T'es sur?"]

[spoiler=T'es sur?"]

[spoiler=T'es sur?"]

[spoiler=T'es sur?"]

[spoiler=T'es sur?"]

[spoiler=T'es sur?"]

[spoiler=Ok tiens :]

Sans faire spawn de zombie :

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

En faisant spawn un zombie:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • J'aime 3

Partager ce message


Lien à poster
Partager sur d’autres sites
Bonjour/Bonsoir,

 

Pour moi ça ne fonctionne pas il me dit que l'effect n'existe pas ( dans le erreur skript ) j'utilise la version 2.7.1 de RandomSK

 

Cordialement, Elkios_

Pourtant ça marche très bien avec moi .-. Tu as quelle version de Skript? :x Qu'elle est la version java de ta machine?

Partager ce message


Lien à poster
Partager sur d’autres sites
Pourtant ça marche très bien avec moi .-. Tu as quelle version de Skript? :x Qu'elle est la version java de ta machine?

Désolé du retard :c. Alors Java 8 - Skript 2.2 - Spigot 1.8.8

 

Cordialement, Elkios_

Partager ce message


Lien à poster
Partager sur d’autres sites
Et donc, est-ce que le script peut fonctionner pour les versions supérieures à la 1.7.10 ?

Bah oui ^^.

Super les metadata ^^

 

Mais est-il possible d'enlever la metadata d'un mob/block ?

 

genre

remove metadata "Test" from targeted entity

Je ne sais pas, j'ai pas testé :3

Désolé du retard :c. Alors Java 8 - Skript 2.2 - Spigot 1.8.8

 

Cordialement, Elkios_

Tu peux me passer les logs quand tu restart le serveur? (Pour voir si RandomSK n'a pas d'erreurs etc)

Partager ce message


Lien à poster
Partager sur d’autres sites

Le problème avec les metadatas c'est qu'ils s'enlèvent lors du redémarrage du serveur. Les metadatas sont très utiles pour des choses qui durent pas longtemps (pour une flèche par exemple) mais pas pour quelques chose qui peut rester très longtemps :confused:

Partager ce message


Lien à poster
Partager sur d’autres sites
Le problème avec les metadatas c'est qu'ils s'enlèvent lors du redémarrage du serveur. Les metadatas sont très utiles pour des choses qui durent pas longtemps (pour une flèche par exemple) mais pas pour quelques chose qui peut rester très longtemps :confused:

 

Il n'existe pas d'alternative pour rendre un bloc reconnaissable indéfiniment ?

Je dois avouer que les metadata auraient été la solution radicale, mais vu qu'ils ne tiennent pas ...

Les blocs ne possédant pas de NBT tag ou de chose qui pourrait les distinguer, je vois pas comment je peux dire qu'une cobble stone est un peu spéciale, vis-à-vis d'une autre ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour les anglophones: (

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.
)

 

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Bonjour à tous! J'ai remarqué que beaucoup de personnes voulaient créer des blocs customisés à partir de variables qui stockent les coordonnées du block. Simple, mais pas très optimisé (Imagine on te met plus de 1000 blocks customs, pas très opti :confused:)

 

Du coup, en faisant des recherches, j'ai vu une très belle expression :

Les metadatas values :eek:.

 

(Utilisation de l'expression : "metadata [value] %text% of %player/entitie/block/world%" )

 

Donc, voici le code (après j'explique ligne par ligne)

on place of diamond block:
   if the player's tool is a diamond block named "&cFakeDiamondBlock":
       set the metadata value "Type" of the event-block to "FakeDiamondBlock"

on break of diamond block:
   if the metadata value "Type" of the event-block is "FakeDiamondBlock":
       cancel event
       drop 1 dirt at the event-block
       set the event-block to air

on place of diamond block:
   if the player's tool is a diamond block named "&cFakeDiamondBlock":

C'est évident :p

Là, on rentre dans les metadatas :

set the metadata value "Type" of the event-block to "FakeDiamondBlock"

Là, c'est plus "compliqué":

Chaque block/entité/joueur/monde a une metadata value "Type". On va donc modifier cette metadata value pour reconnaitre le block/entité/joueur/monde parmit d'autres ^^. Donc la metadata value "Type" du block de faux bloc de diamant qu'on a mit est "FakeDiamondBlock"

 

Ensuite:

on break of diamond block:

Encore évident.

Et puis, le truc intéressant :

if the metadata value "Type" of the event-block is "FakeDiamondBlock":

On vérifie la metadata value "Type" du bloc cassé. Si cette metadata value set "FakeDiamondBlock", alors on passe à l'effet qu'on a mit (Dans mon code, c'est qu'on drop de la terre lol.). Les metadatas values servent donc à différencier un monde/block/entité/joueur des autres.

 

Petit exercice :

Essayez de faire un skript pour qu'un zombie spécial drop automatiquement 1 de diamant. (Vous pouvez clear les drops ou non.)

[spoiler=Indice]

METADATA VALUE

 

 

[spoiler=Indice 2]

Il faudrait d'abord pouvoir faire spawn le zombie. spawn a zombie par exemple c:. Ou on peut faire autrement. Il faut juste donner une metadata à un zombie lol.

 

 

[spoiler=Soluce]

[spoiler=T'es sur?"]

[spoiler=T'es sur?"]

[spoiler=T'es sur?"]

[spoiler=T'es sur?"]

[spoiler=T'es sur?"]

[spoiler=T'es sur?"]

[spoiler=T'es sur?"]

[spoiler=T'es sur?"]

[spoiler=T'es sur?"]

[spoiler=Ok tiens :]

Sans faire spawn de zombie :

on rightclick:
   if the player is holding a stick named "&cBaton de super zombie :D":
       if the targeted entity is a zombie:
           set the metadata value "Type" of the event-entity to "Super Zonny"
on death of a zombie:
   if the metadata value "Type" of the victim is "Super Zonny":
       drop a diamond at the victim

En faisant spawn un zombie:

command /spawnsuperzombie:
   trigger:
       spawn a zombie at the player's location
       set the metadata value "Type" of the targeted entity to "Super Zonny"*
on death of a zombie:
   if the metadata value "Type" of the victim is "Super Zonny":
       drop a diamond at the victim

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Très bon tuto (la routine quoi)

Partager ce message


Lien à poster
Partager sur d’autres sites

Du coup quelqu'un a la solution pour donner à un bloc spécifique et existant un nouvel effet ?

Je veux dire par là, qu'il possède une condition pour qu'il soit différenciable avec ses congénères (exemple : un bloc de buche qui ouvre un GUI quand on clique dessus, tandis que les autres blocs de buche, s'ils ne sont pas assignés par cette condition, conservent leur caractéristiques normales).

 

Vu que les coordonnées c'est le bordel, que les metadata (comme on le voit dans ce tutoriels) se suppriment à chaque redémarrage du serveur ... Reste-t-il une solution ?

 

Merci d'avance.

Partager ce message


Lien à poster
Partager sur d’autres sites
Du coup quelqu'un a la solution pour donner à un bloc spécifique et existant un nouvel effet ?

Je veux dire par là, qu'il possède une condition pour qu'il soit différenciable avec ses congénères (exemple : un bloc de buche qui ouvre un GUI quand on clique dessus, tandis que les autres blocs de buche, s'ils ne sont pas assignés par cette condition, conservent leur caractéristiques normales).

 

Vu que les coordonnées c'est le bordel, que les metadata (comme on le voit dans ce tutoriels) se suppriment à chaque redémarrage du serveur ... Reste-t-il une solution ?

 

Merci d'avance.

Les coordonnées marchent bien dans ce genre de cas ^^

Partager ce message


Lien à poster
Partager sur d’autres sites
Du coup quelqu'un a la solution pour donner à un bloc spécifique et existant un nouvel effet ?

Je veux dire par là, qu'il possède une condition pour qu'il soit différenciable avec ses congénères (exemple : un bloc de buche qui ouvre un GUI quand on clique dessus, tandis que les autres blocs de buche, s'ils ne sont pas assignés par cette condition, conservent leur caractéristiques normales).

 

Vu que les coordonnées c'est le bordel, que les metadata (comme on le voit dans ce tutoriels) se suppriment à chaque redémarrage du serveur ... Reste-t-il une solution ?

 

Merci d'avance.

 

Sinon,

quand tu ajoutes la metadata au block, tu ajoutes aussi

les coordonnées du block dans un variable. Ensuite, tu mets "on load",

pour ensuite loop la variable et set la metadata à chaque coordonnées contenues dans la liste.

 

Après si c'est pour 1 block, cette methode ne sert à rien. Mais par exemple pour des blocks qui boost

pour nous lancer vers un direction (je pense aux minijeux, pour atteindre les portails de tp).

Partager ce message


Lien à poster
Partager sur d’autres sites
Sinon,

quand tu ajoutes la metadata au block, tu ajoutes aussi

les coordonnées du block dans un variable. Ensuite, tu mets "on load",

pour ensuite loop la variable et set la metadata à chaque coordonnées contenues dans la liste.

 

Après si c'est pour 1 block, cette methode ne sert à rien. Mais par exemple pour des blocks qui boost

pour nous lancer vers un direction (je pense aux minijeux, pour atteindre les portails de tp).

 

Je vois, en gros le metadata ne sert que de passerelle entre la liste des coordonnées et le bloc, la condition qui déclenche l'effet. C'est même pas une liste de coordonnées en soit qu'il faut créé, mais carrément une table avec des lignes comportant à chaque fois les trois coordonnées d'un bloc. C'est assez compliqué vu mon niveau... Je pourrais essayer.

 

Merci bien pour l'idée en tout cas.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut, je viens sur ton tutoriel, parce que je me rend compte qu'en utilisant les méta-données, j'ai des erreurs (can't understand, il ne comprend pas) et que comme tu as fait un tutoriel, tu t'y connais. =D

J'ai RandomSk, Skript 2.2. (Et les autres addons mais pourrais-tu me faire un lien de téléchargement pour RandomSK ?)

Partager ce message


Lien à poster
Partager sur d’autres sites
Salut, je viens sur ton tutoriel, parce que je me rend compte qu'en utilisant les méta-données, j'ai des erreurs (can't understand, il ne comprend pas) et que comme tu as fait un tutoriel, tu t'y connais. =D

J'ai RandomSk, Skript 2.2. (Et les autres addons mais pourrais-tu me faire un lien de téléchargement pour RandomSK ?)

Le plugin "RandomSk" est entièrement bugué. J'en déconseille l'utilisation.

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Le plugin "RandomSk" est entièrement bugué. J'en déconseille l'utilisation.

Non tu te trompes !

Touts les addons pour skript sont bugués xD

Partager ce message


Lien à poster
Partager sur d’autres sites
Non tu te trompes !

Touts les addons pour skript sont bugués xD

Tous c'est vrai, mais il existe quelques versions très stables que j'ai pu récupéré. Les seuls ADD-ON non bugués avec une version assez stable que j'ai vu sont :

 

> SkQuery

> SkRayFall

> Umbaska

> WildSkript

> PirateSk

> SkUtilities

> Skellet (A voir).

 

La majorité de ces ADD-ON sont disponibles dans ma signature (version stable et fixe).

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.